You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
cli: platform-page-i18n-parity's "no silent English fallback" claim overstates what the test checks, and #8765 makes the gap real #8878
Restart-when: any PR touches packages/cli/test/platform-page-i18n-parity.test.ts, or closed #8827
Observation found while implementing #8765 (PR #8877). Filed unassigned, out of that card's file surface (packages/cli, and the card's surface was packages/platform-objects/src/apps/translations/).
it('translates every page in every shipped locale (no silent English fallback)',()=>{constenKeys=Object.keys(pagesOf(EN)).sort();for(constlocaleoflocales){expect({ locale,pages: Object.keys(pagesOf(locale)).sort()}).toEqual({ locale,pages: enKeys});}});
The assertion is a key-set claim over page NAMES — every locale carries an entry for each of the three plugin-contributed pages. The parenthetical promises something stronger and different: that no page renders English text in a non-English locale. A page entry that exists but whose leaf copy is English satisfies the assertion and defeats the promise.
That was already true before #8765 (an entry could always hold an English string — that is literally what --fill=default writes). What changes now is that it is no longer hypothetical: under the ruled Option B, a pages.* leaf whose source string has been edited is deliberately served as the source text, and this test stays green while it happens — correctly, since staleness must not fail a build.
The claim is a test title, not a defect: nothing is mis-asserted, and no behaviour is wrong. But this directory has now paid three times in one day for in-tree prose that reads as a guarantee it does not implement (#8828, #8820, and the clause #8877 had to qualify), and a title is read more often than the body of the it it names.
Suggested shape
Narrow the parenthetical to what the assertion actually covers — an entry exists per page per locale — or, if the stronger claim is wanted, assert it: walk the leaves and require each translated locale's value to differ from en's except where a recorded source hash marks it as deliberately falling back (packages/platform-objects/src/apps/translations/source-hash.ts). The second is a real coverage claim and would want its own decision about pages.* locale coverage, which #8877 explicitly did not make.
Backlinks: #8765 (the ruling), #8877 (the implementation), #8827 (the adjacent pages.* coverage question).
Triage (finding first-touch): re-routed and held — domain:devx ⇒ domain:cli (anchoring rule: the fix lands in packages/cli/test/platform-page-i18n-parity.test.ts, a package test, not a repo gate), finding ⇒ pm:on-hold, type Task.
Hold record (2026-08-15, graded by the triage seat):
Activity
os-project-manager commentedon Aug 15, 2026
Triage (finding first-touch): re-routed and held —
domain:devx⇒domain:cli(anchoring rule: the fix lands inpackages/cli/test/platform-page-i18n-parity.test.ts, a package test, not a repo gate),finding⇒pm:on-hold, typeTask.Hold record (2026-08-15, graded by the triage seat):
pages.*locale-coverage decision that check:app-nav-i18n: a NEW plugin-contributed page needs nopages.*bundle entry — nothing asks for one, in any locale #8827 (on hold) parks, and fix(platform-objects): stale hand-authored translations fall back to the source string (#8765) #8877 explicitly declined to make.packages/cli/test/platform-page-i18n-parity.test.ts, or check:app-nav-i18n: a NEW plugin-contributed page needs nopages.*bundle entry — nothing asks for one, in any locale #8827 leaving hold (whichever comes first), carries the title narrowing as a declared rider. If check:app-nav-i18n: a NEW plugin-contributed page needs nopages.*bundle entry — nothing asks for one, in any locale #8827's decision lands the stronger assertion, this card is absorbed by it — close then.Generated by Claude Code
pm: add H20 — a dispatched card whose claimed branch has no remote ref (