Check text that follows a closing comment in the product-name guard (#1168) - #1203
Conversation
…#1168, c1) The 38 bare "Bridge" words in the displayed text of `outstandings-copy.ts`, `tally-error-copy.ts`, `tally-capability-evidence.tsx` and `tally-company-selection.ts` now read "ComplyEaze Bridge"; no other word changes. The tests that compare those texts are changed with them, each to the fuller text, and a guard over the four files fails on a bare "Bridge" outside comments. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 26 bare "Bridge" words in the displayed text of the mirror-proof, all-clients, ledger-entries, outstandings, source-draft and outstandings-evidence screens now read "ComplyEaze Bridge"; no other word changes. Four test expectations that quote those texts, and the client-grouping harness's copy of the group-label error, take the fuller text, and the guard's list gains the six files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The persisted-profile test matched two fragments of the action with a pattern; it now compares the whole guidance, category and action, with assert.deepEqual, like the other tests in the file. A change to the sentence's last clause passed the patterns and fails this. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…full-name # Conflicts: # scripts/frontend-product-name.test.mjs # scripts/tally-error-copy.test.mjs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ens (#1168, c2) The 29 bare "Bridge" words in the displayed text of main.tsx (including the sidebar brand and the navigation's aria-label, as the maintainers chose on #1168), JournalPostingScreen.tsx, NativeLifecycleController.tsx and ErrorBoundary.tsx now read "ComplyEaze Bridge"; no other word changes. The tests that quote those texts or find the navigation by its label take the fuller text. The guard's list gains the four files, and it now skips every line of a block comment that spans several lines, such as main.tsx's multi-line JSX comment. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ll-name # Conflicts: # scripts/frontend-product-name.test.mjs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…1168, from #1190's review) The guard skipped the whole line on which a multi-line comment closes, and a `{/*` line that closes its comment and then shows text, so a bare "Bridge" after `*/` passed. The scan is now a function that keeps only the text outside comments on each line, tested on both cases. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sing-line # Conflicts: # scripts/frontend-product-name.test.mjs
|
Independent review (local, Opus) of b399978 Verdict: no P1/P2; 2 optional P3. Test only; no pinned path. Reviewed clean at b399978. Mark it ready and I'll queue that same head.
|
|
Thank you for the review of b399978, and for the extra mutant. 1, 2 (K1, K2) and 4. Gap closed, mutants and scope: nothing to change. This head stays b399978. I'll mark it ready when its CI is green. Optional P3s: both taken, in one small follow-up after this merges, so the head you reviewed is the one queued:
Open: the two P3s, in one follow-up after this merges. |
|
Ready for review at b399978 |
|
Queued at b399978 (the reviewed head): it enters the merge queue as soon as this head's pull-request checks finish green. Please push nothing more here. If it leaves the queue, I'll say why here. |
|
Understood, and sorry for going over: I counted only PRs still waiting for review, not every open one. From now on the cap counts every open PR of mine, reviewed or not. I'll open nothing new until at most two are open, so the next one makes three. Two small follow-ups are built locally and will wait: #1188's doc comment and #1203's P3s. |
|
Thank you, and a correction to my earlier note: the rule as written (step 2) is at most 3 PRs waiting for review, and you counted it right. A PR that has been reviewed at its current head and is armed for the queue is not waiting for review, so it does not count. My "one over the cap" was wrong, and you do not need to count every open PR. What the cap does ask: do not have more than 3 PRs awaiting a first or delta review at once, and a PR with unanswered review points counts as waiting. Keep the follow-ups you built locally until their predecessors merge, as you planned. |
|
Follow-up: both optional P3s (the |
Part of #1168
Summary
The optional P3 from the review of #1190 ((c2) of #1168), as promised there.
Measured, from that review: the product-name guard (
scripts/frontend-product-name.test.mjs) skipped the whole line on which a multi-line comment closes. A line starting with{/*that closes its comment and then shows text was skipped as well. So a bare "Bridge" after*/passed. The reviewer appended<span>Bridge</span>after the*/closing the comment atmain.tsx:1651, and the guard still passed.The change:
bareBridges(text). For each line it keeps only the text outside comments, and reports a bare "Bridge" there as{ line, text }.//(or*, inside a doc block), and every/* … */span, whether it opens and closes on one line or across several.*/on the same line.bareBridgesfinds nothing in the 14 files, and names each finding asfile:line: text.text after a comment closes is checked, and text inside one is not, pins:{/* x */}line that then shows text;//,*andComplyEaze Bridgelines pass;<p>Bridge</p>is found.One limit: a
/*inside a string literal would hide what follows it on that line. None of the 14 files has a/*that does not open a comment (checked line by line).Test
At
92c123f8(the code commit), with master merged in after #1190.The guard passes on all 14 files, so no displayed text was hiding behind a closing comment.
P4
Net LOC
From
git diff --numstatagainst mastere506d219: +54 / −17 inscripts/frontend-product-name.test.mjs, so net +37. All test code. The file is not pinned, so there is no ack.Mutants
Each was applied to a saved copy, run with the guard file, and restored. All were killed.
breakafter*/instead of scanning on)text after a comment closes is checked, and text inside one is not/*ends the line's scan, so a one-line{/* x */}hides what follows<span>Bridge</span>appended after the*/atmain.tsx:1651the front end's displayed text names the product in full, which now namessrc/main.tsx:1651Not measured
//,/* */and{/* */}, such as a/*inside a string or a template literal. See the limit above.Needs a lab run: none
This changes a test file only.
Migration, security and rollback
Review checklist
review-checklist.md line 10: Errors are actionable without exposing sensitive values.
🤖 Generated with Claude Code