Skip to content

Commit 931299c

Browse files
kckernclaude
andcommitted
test(parity): pieces after a cross-book range
/john.3.16;mal.4.5-matt.1.2;3 in html, api and meta (John 3), and the junk pieces after a leading range (/acts.28.31-rom.1.1;16.1, /gen.50.26-ex.1.2;3.4) in meta and html. Their html keeps PHP's junk heading and raw-path title out of reach: a narrow allow for paths that are one cross-book range followed by bare numeric pieces. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 72243ab commit 931299c

2 files changed

Lines changed: 10 additions & 0 deletions

File tree

‎apps/web/test/parity/allow.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
2+
"html re:^/(?:[A-Za-z0-9*]+/)?[1-4]?[A-Za-z]+\\.[\\d.]+-[1-4]?[A-Za-z]+\\.[\\d.]+(;[\\d.]+)+$": "A bare piece after a leading cross-book range (/acts.28.31-rom.1.1;16.1, /gen.50.26-ex.1.2;3.4) has no book to read it by. PHP's getBook read junk from it: a \"not found\" section headed \" 16:1\" or \"3: 3:4\" and, when its verse_ids came back false, the raw path as the title. Node's meta and api reproduce those blocks; the html page shows the range and an empty section without the junk heading (PHP junk, reviewer decision 2026-10-22). Only paths that are one cross-book range followed by bare numeric pieces",
23
"passage check:singleHeadingDrop": "PHP single_heading bug: passage_script.php drops the first verse (or verse part) of every section after the first, with that section's summary, background or headnote (Matthew 5:2b, 13, 17, 21 in NIV Matthew 5; Genesis 2:1 in /passage options[start]=1..34; Matthew 1:1 after Malachi 4:6). Node keeps all verses and shows only the first heading. Allowed only where live is Node with exactly one paragraph-opening verse span (and its extras and paragraph tags) removed per run, between verses live shows, every other line equal, and each removed verse starts a section (§) in live's raw text",
34
"html /%2eenv": "Locally the search runs on the MySQL fallback, which stops at its time budget (SEARCH_FALLBACK_MAX_MS) before finishing a scan for a short word and says \"Showing partial results\". Same 0 results; production searches through Sphinx, which has no budget.",
45
"html re:^/(search/)?[^/?]*(%22|\")[^/?]*$": "Live returns no results for quoted phrases (PHP breaks the quotes before querying Sphinx); Node searches the phrase, as Sphinx does — owner decision 2026-10-20",

‎apps/web/test/parity/corpus.mjs‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,15 @@ const EXTRA = [
5858
['raw', '/john.3.16;mal.4.5-matt.1.2'],
5959
['plain', '/john.3.16;mal.4.5-matt.1.2'],
6060
['latex', '/john.3.16;mal.4.5-matt.1.2'],
61+
// A bare piece after a cross-book range keeps the book before the range (John 3)
62+
['html', '/john.3.16;mal.4.5-matt.1.2;3'],
63+
['api', '/john.3.16;mal.4.5-matt.1.2;3'],
64+
['meta', '/john.3.16;mal.4.5-matt.1.2;3'],
65+
// ... and with no book before the range PHP read junk
66+
['meta', '/acts.28.31-rom.1.1;16.1'],
67+
['meta', '/gen.50.26-ex.1.2;3.4'],
68+
['html', '/acts.28.31-rom.1.1;16.1'],
69+
['html', '/gen.50.26-ex.1.2;3.4'],
6170
['passage', '/passage?ref=Malachi+4%3A6&version=KJV&hversion=KJV&options%5Bstart%5D=23144&options%5Bend%5D=23147&searchterm='],
6271
];
6372

0 commit comments

Comments
 (0)