Uh oh!
There was an error while loading. Please reload this page.
docs(platform-objects): refresh stale pages.* exclusion comment - #8861
Merged
Conversation
app-nav-translation-parity.test.ts's block comment above the default-locale describe still said pages.* had "no source comparison in ANY locale" and tracked the gap as #8764. PR #8826 closed that: check:app-nav-i18n (packages/cli/scripts/check-app-nav-i18n.mjs) now asserts the `en` copy of pages.* against the composed page metadata verbatim. Keep the structural explanation (the sources live in packages platform-objects must not depend on), replace the stale sentence with a pointer to the gate that now covers it, retire the closed-issue forward reference, and state plainly what still isn't covered: per-locale (zh-CN / ja-JP / es-ES) coverage of those pages.* keys remains unasserted anywhere in the repo. Comment-only change; no behaviour, gate, or test-count change. Fixes#8828
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
Contributor
📓 Docs Drift CheckNo hand-written docs reference the 0 changed package(s). ✅ |
hotlong
marked this pull request as ready for review
August 15, 2026 11:45
hotlong
enabled auto-merge
August 15, 2026 11:45
Uh oh!
There was an error while loading. Please reload this page.
akarma-synetal pushed a commit
to akarma-synetal/framework
that referenced
this pull request
Aug 17, 2026
…the source string (objectstack-ai#8765) (objectstack-ai#8877) * fix(platform-objects): stale hand-authored translations fall back to the source string (objectstack-ai#8765) Ruled Option B: record the source hash at translation time; a hash mismatch marks the translation stale, and stale falls back to the source text. The apps/dashboards/pages half of this package's i18n is hand-authored, and every gate over it judges presence or ownership — a stale VALUE satisfies all of them. A source-string edit therefore left zh-CN / ja-JP / es-ES serving the previous translation under a fully green build. Each translated locale now ships a <locale>.source-hashes.ts table recording, per leaf, the digest of the en source string it was translated from; setup.translation.ts compares them when assembling the served bundle and substitutes the source string for any leaf whose source has moved. - missing hash is legacy-trusted, not stale (backfilled once, so nothing degraded on landing) - updating one translation's value AND hash recovers that locale alone - substitution rather than deletion, so no key set moves and no gate turns a translation lag into a red build Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XeQRiAa7vYRVX5Fog7Zby8 * docs(platform-objects): qualify objectstack-ai#8861's pages.* clause now that those keys carry staleness (objectstack-ai#8765) PR objectstack-ai#8861 landed the sentence "per-locale coverage of those pages.* keys in zh-CN / ja-JP / es-ES remains unasserted anywhere in this repo" while this change was in flight. The coverage half stays true; the freshness half does not — those leaves now carry recorded source hashes like every other hand-authored leaf, so a pages.* source edit makes the three translated copies fall back to the source string. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XeQRiAa7vYRVX5Fog7Zby8 --------- Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#8828
What
app-nav-translation-parity.test.tscarries a block comment above itsdefault-locale
describeexplaining whypages.*is out of that file'swalk. Two sentences went stale once PR #8826 merged (05:47:13Z on
2026-08-15) and closed the card that comment was pointing at:
That leaves the third of this bundle with no source comparison in ANY locale, en included— no longer true.check:app-nav-i18nnow comparesall three
pages.*entries against the composed page metadata in thedefault locale.
Tracked as #8764; the gate that can see those pages is check:app-nav-i18n, which already boots the real composition— aforward reference to a card that is now closed.
This PR is a comment-only refresh, following the four bounded moves from
triage:
pages.*is out ofthis walk (the sources live in
@objectstack/cloud-connection/@objectstack/mcp, packagesplatform-objectsdoes not and must notdepend on) is unchanged.
to the assertion that now exists, in
packages/cli/scripts/check-app-nav-i18n.mjs, and named specificallywhat it checks (the
encopy ofpages.*— label, description, andevery
page:headertitle/subtitle — against the composed pagemetadata, verbatim, default locale only).
Tracked as #8764forward reference.pages.*keys inzh-CN/ja-JP/es-ESremains unassertedanywhere in this repo — I read
check-app-nav-i18n.mjsend to end toconfirm this before writing the sentence; the gate's own coverage
verdict (
missingLabels) walks merged Setup nav ids, not thepages.*bundle, and itspages.*verdict (defaultLocalePageDrift)is explicitly gated to the default locale only (
DEFAULT_LOCALE = 'en').No behaviour, gate, or assertion change. Test count is unchanged (only
comment lines 182-193 of the file moved).
Verification, at HEAD
fe920978aGate families re-derived against the actual changed path with
node scripts/pm/dispatch-gates.mjs: no family names this path in its ownsource; the two convention-triggered families named by the dispatch
prompt (test-file edit; i18n-extract.config.ts-owning package) are exactly
the ones the derivation surfaces — no additional family implicated.
Notes
pages.*exclusion comment in app-nav-translation-parity.test.ts goes stale once the parity gate lands #8828 (this card), test(cli): extend check:app-nav-i18n with pages.* default-locale content parity #8826 (the PR that fired the condition),platform-objects: the
pages.*third of the hand-authored bundles is outside the new default-locale parity walk — its sources live in other packages, so nothing compares them at all #8764 (the closed card the removed forward reference pointed at).skip-changesetapplied.Generated by Claude Code