Skip to content

Record the minor findings left after PR 36 (D9, D14, ISSUES) - #40

Merged
rorychatt merged 1 commit into
mainfrom
docs/pr36-followups
Nov 2, 2026
Merged

rorychatt merged 1 commit into
mainfrom
docs/pr36-followups

Conversation

@rorychatt

Copy link
Copy Markdown
Contributor

What this records

The independent check that closed PR 36 (9047807, tag v0.2.1-r2) left a set of minor findings standing. This PR writes them down where a maintainer will find them. Docs only: docs/ISSUES.md (D9, D14 and two new groups D14a to D14f and D15a to D15c) and one paragraph of docs/brand/WORKFLOWS-LISTS-DASHBOARDS.md. No product code, test or script is changed. Nothing is fixed here; every limit says why it was left and what the fix would be.

Where each finding landed

Finding Landed in Note
F-A (callback parameter makes a translator) docs/ISSUES.md D14a, pointer in the D14 row The reader rated it medium, both skeptics low. Effect, proposed fix and negative fixtures written; follow-up, not done
F-B (wrappers, parametersOf) D14b Also records one more shape from the same check, export const title = (t("x") + "y"), which errs the other way (a missed translator); it is the same function
F-C (unspaced <) D14c
F-D (scopeAt reads non-parameter groups) D14d
F-E (unpinned guard code, vacuous row) D14e Six mutants, each with the input that kills it. The finding's sixth mutant ("comma cut in marked()") was dropped: marked() has no comma cut, so there is nothing to pin; the k = first - 1 mutant of the mutation matrix (M20) took its place
F-F (block comment with code between) D14f (1)
BD4-4 (161-column header line) D14f (2)
BD4-1 (D9 list leaves out the two-factor panel) D9 Added packages/ui/src/twofactor.tsx, ImportDialog.tsx, connectors/ConnectionDetail.tsx
BD4-2 (GROUPABLE sentence) WORKFLOWS-LISTS-DASHBOARDS.md Reworded: GROUPABLE limits only what is picked; the Kanban totals and useCurrencyOf also group by currency
DT-1 (test 16 ends too early) D15a Proposed waitForResponse fix included. The 404 teardown race is written as a possibility, not a defect
M26 (useRecord glue untested) D15b Proposed test: extract the glue into a pure function and test it
M20 (marker above multi-line block) D14e (6)
M14a/b (PlanDialog wording) D9 sentence + D15c Proposed e2e test under a non-English language
BD4-3 (PR 36 description) not in this PR It is the text of the PR 36 body, not a repo file

Three things I added that were not in the list, so you can drop them: DriveBrowser.tsx in the D9 list (it came in with PR 39, after the PR 36 check, and the D9 search finds it); a correction of D9's own wording about connectors/Sections.tsx (its checklist keeps its sentence in setState({ error }), which the setError(/setFailure( search does not find; only the register export is found); and the (t("x") + "y") shape in D14b.

What I verified, and how

Every sentence was checked against origin/main at 9555614 before it was written.

  • The guard (i18nGuard.ts): ran it from a scratch script outside the repo (Node 26 type stripping) on fixtures built like the ones in i18nDeps.test.ts, and on the real tree (132 files, 60 hooks, 0 flagged). Reproduced: F-A for six parameter shapes ((t) =>, t =>, ({ t }) =>, function (t), catch (t), for (const t of ...)), plus the real-tree effect (Tabs, Navigation in the translator set; dismiss, notify, submitQuick among the locals; notify a member; a scratch useMemo over <Tabs> and over d.notify flagged); F-B for the five wrapper shapes and the parenthesised initialiser; F-C for < and <= unspaced, with the spaced and &&/> forms still flagged; F-D for all eight forms; F-F.
  • The test file (i18nDeps.test.ts): ran it through a small stand-in for vite-plus/test: 30 tests, 139 assertions, 0 failed. Then six mutants of the guard (declared(header) dropped, the t => branch and the function branch of parametersOf dropped, <= 1 to <= 2, the => guard of argumentComplete dropped, k = first - 1 to k--): all six still pass 139/139, and each is killed by the input named in D14e. A sanity mutant (<= 0) is killed, so the stand-in does fail when it should. The fourth header of the F1 loop flags once under the old reading of the header too; with the body fmt.money(1) it flags once now and zero times under the old reading.
  • Greps for the rest: line and function names in twofactor.tsx, Security.tsx, ImportDialog.tsx, ConnectionDetail.tsx, Sections.tsx, PlanDialog.tsx, useServer.ts, lastRecord.ts, KanbanView.tsx, useAggregate.ts, aggregate.rs (cmp_keys, TextOrder), F::new (default FieldKind::Text) and the sales and invoicing currency fields; the e2e fixtures (allowHttpErrors, the module.uninstall teardown) and UnknownCommand mapping to 404; no test file under web/ mentions PlanDialog or setFailure; no DOM or hook test library in the back office.
  • Collation: the 162 ISO 4217 codes of Intl.supportedValuesOf("currency") sort into one order in all seven languages with Intl.Collator(lang, { numeric: true, sensitivity: "base" }). That is the browser collator; the server's icu_collator was not run.
  • Merge safety: all edits are in the D section of ISSUES.md and one paragraph of the brand doc. git merge-tree against feat/oidc-core (PR 37), feat/mileage-ios and feat/mileage-app auto-merges docs/ISSUES.md without conflict (those branches have conflicts of their own elsewhere, none in these two files).
  • Markdown: table rows of the new groups have the same number of columns as their headers (checked with a script). Four older rows (B3, B5, I1, K4) have unescaped pipes inside code spans; I did not touch them.

Not run, or not reproduced

  • Not run: vp check, vp test, the end-to-end suite, CI, cargo, a browser. The markdown was not rendered.
  • Taken from the check, not repeated: that the M26 change and the M14a/b changes pass the end-to-end and unit suites (D15b, D15c say so). The 404 race of D15a is a possibility read from the code; neither skeptic reproduced it.
  • D15b: that the M26 change is visible only after a longer sequence is read from the code, not run. The sequence is written out in the row.
  • Nothing from the list failed to reproduce. One mutant and one proposed fixture of F-E were wrong as written (see the table and D14e).

🤖 Generated with Claude Code

Docs only. The independent check of PR 36 (9047807, v0.2.1-r2) left eleven
minor findings standing. Each was read again in the code and probed (guard
on fixtures and on the real tree, its test file with six mutants) before
it was written down:

- D9: the shared two-factor panel (twofactor.tsx), ImportDialog,
  ConnectionDetail and DriveBrowser keep a finished sentence in state;
  the Sections checklist is not found by the setError/setFailure search;
  the two PlanDialog setFailure calls are checked by nothing.
- D14 (new D14a to D14f): a callback parameter named like an import makes
  a function a translator; wrapper forms and parenthesised initialisers in
  parametersOf; an unspaced comparison hides the dependencies; a function
  type in a return annotation and if/while/switch conditions bind names;
  six mutants no fixture kills and one vacuous row; two nits.
- D15 (new D15a to D15c): the end of e2e test 16, the useRecord to
  remember() glue, and the PlanDialog wording have no test that fails.
- WORKFLOWS-LISTS-DASHBOARDS.md: GROUPABLE limits only what a person
  picks; the Kanban totals also group by the currency field.

No product code, test or script is changed.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@rorychatt
rorychatt merged commit 33f48c6 into main Nov 2, 2026
5 checks passed
@rorychatt
rorychatt deleted the docs/pr36-followups branch November 2, 2026 09:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant