Repository navigation
docs(fields,roadmap): the built-in locale count is ten, and the shipped docblock stops restating it - #9872
Merged
Conversation
…ed docblock stops restating it `@object-ui/i18n` ships ten built-in locale packs. Seven sites in this tree said eleven, and one of them is published source: the shared `fields.file.exceedsMaxSize` docblock in `file-size-guard.ts` is emitted into `dist/widgets/file-size-guard.d.ts`, which is in the package's `files` — so the false count went out in every tarball and is what a consumer's editor shows on hover. `ROADMAP.md:632` carried the arithmetic that manufactured the eleven: its list reads `(en, zh, ja, de, fr, es, ar, ru, pt, ko, + ar)` — eleven entries, ten unique, with `ar` counted once in the list and once as the `+ ar` suffix. That duplicate is removed, not just the number corrected, so the next enumerator does not recount it. In published source the number is removed rather than corrected. A restated count is the construct that permits the error, and this repository has now watched it recur three times over the same fact (objectui#3351 in a changeset file, objectui#7989 in the i18n README, this one in shipped source). The sentence now claims only what it needs — the key is translated in every locale the package ships — and names `all-locales-key-parity.test.ts` as the instrument that re-derives it, per AGENTS.md commandment #9. An eleventh pack now makes that sentence more true rather than false. `ROADMAP.md` is a planning document and stays prose: the six sites there get the correct number and the duplicate removed, with no new mechanism. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xm4WFhEe5mwcgyqHjxR2hn
…s already spell it The changeset quoted the removed numeral in plain text. Every other post-mortem of this same defect in the tree — objectui#7989's changeset and the docblock of the pin it landed — writes it bolded, and the difference is not cosmetic: the census that finds live instances of this defect matches a bare numeral followed by whitespace, so a plain-text quote in a historical record registers as a live site while a bolded one does not. Measured at the merge-base, the same census run two ways: 7 sites over 2 files matching a bare numeral, 9 sites over 4 files once the pattern tolerates bold. The two extra are this repository describing the defect in the past tense, not claiming it. That blind spot is reported in the pull request rather than fixed here — widening the census is not this card. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xm4WFhEe5mwcgyqHjxR2hn
Contributor
✅ Console Performance Budget
The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it. 📦 Bundle Size Report
Size Limits
|
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 free
to 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 #9615
Clause-②: no
@object-ui/i18nships ten built-in locale packs. Seven sites in this tree said eleven,and one of them is published source.
The count, enumerated rather than trusted
The card states the shipped count as ten. That number was re-derived here rather than adopted:
readme-locale-count-7989.test.tsruns both published doors and asserts they agree —BUILT_IN_LANGUAGE_CODESfrom the package entry, and thebuiltInLocalesmap behind the@object-ui/i18n/localessubpath. Run at this branch's head, it passes: 4 tests, 1 file.The codes are
en zh ja ko de fr es pt ru ar. Deliberately NOT counted by listingsrc/locales/*.ts: that directory holds thirteen files and three of them are not packs, whichis the very miscount this card is about — the 7989 pin says so in its own header.
My census differs from the card's, and the difference is the card's own premise moving
Re-run at my head, not adopted:
packages/i18n/README.mdsites are already repaired99 built-in localesobjectui#7989 is closed; its repair landed as
e1c27e49. So what this card carries is not "sevenmore besides that one" — it is the whole live population of the wrong count. The triage comment
read the same thing.
A blind spot in the instrument, reported and not swept
The census pattern matches a bare numeral followed by whitespace. Run bold-tolerant at the same
merge-base it reads 9 sites over 4 files, not 7 over 2. The two extra are
.changeset/7989-i18n-readme-locale-count.mdand the 7989 pin's own docblock, both of whichwrite the numeral bolded and both of which describe the defect in the PAST TENSE. They are
historical record, not live claims, so they are correctly out of scope — but the card's lit
control ("exactly three files carry the string") was taken with a bold-blind instrument and
therefore under-counted its own population. Widening the census is not this card; the reading is
recorded so the next seat does not take that control as complete.
What changed
packages/fields/src/widgets/file-size-guard.ts— published source. The docblock assertedthe shared
fields.file.exceedsMaxSizekey was "already translated in all 11 built-in locales".Measured, not assumed, that this actually ships: after building the package, the docblock's text
is present in
dist/widgets/file-size-guard.d.ts, which is in this package'sfiles— so thefalse count went out in every tarball and is what a consumer's editor shows on hover. Positive
controls
exceedsMaxSizeandmaxSizeErrorboth fire in the same grep.⭐ The number is removed, not corrected. Correcting it to ten reproduces the construct that
permitted the error, and this repository has now watched that construct recur three times over
this one fact: objectui#3351 in a changeset file, objectui#7989 in the i18n README, this one in
shipped source. The sentence now claims only what it needs — the key is translated in every
locale the package ships — and names
all-locales-key-parity.test.tsas the instrument thatre-derives it. That test asserts the stronger invariant (every pack defines every
enkey) overwhatever the pack set is on the day it runs, so an eleventh pack makes the sentence MORE true
rather than false. There is no figure left to rot, which is AGENTS.md commandment #9 applied
rather than restated. The key is in fact present in all ten packs today, checked pack by pack
with a negative control.
left a corrected NUMBER in the prose; this repair leaves no number, so there is nothing for a pin
to compare. If a reviewer wants the stricter shape — a pin asserting this docblock never regains a
hardcoded count — say so and it is a small follow-up.
ROADMAP.md— six sites, prose, no new mechanism. Per the dispatch, a roadmap gets thecorrect number and the arithmetic error, not a mechanism.
ROADMAP.mdline 632 carried thearithmetic that manufactured the eleven: its list read
(en, zh, ja, de, fr, es, ar, ru, pt, ko, + ar)— eleven entries, ten unique,
arcounted once in the list and once as the suffix. The duplicate isremoved, not merely the number corrected, so the next enumerator does not recount it. The three
sibling lines each claimed eleven while enumerating ten codes ON THE SAME LINE. Ten is already the
house convention in that document, which states "all 10 locales" at eight other sites.
No line numbers move:
ROADMAP.mdis 1899 lines before and after. Nothing in the tree cites a lineaddress into either changed file, checked both directions.
Changeset
patchon@object-ui/fields, matching objectui#7989's ownpatchon@object-ui/i18nfor thesame class of defect on the same kind of surface. The reason is measured, not conventional: the
docblock reaches
dist/*.d.ts, anddistis in this package'sfiles, so a published byte moved.check-changeset-presence.mjsclassifies the diff the same way — "1 of them published source of apackage the release covers".
Verification
Every exit code below was captured before any pipe.
vitest run packages/fields/+ the two cited i18n instrumentspnpm --filter @object-ui/fields type-checktsc --noEmit && tsc -p tsconfig.test.json, both echoed)@object-ui/fieldsdependency-closure buildcheck:control-bytescheck:new-line-citationscheck:changeset-claimscheck:i18n-keys·check:i18n-driftdocs:check-linkscheck:comment-mask-corpuscheck:pending-changeset-literals·check-changeset-presenceThe test-file arithmetic is stated because a filtered run that silently matches nothing also reads
green:
packages/fieldsholds 166 test files, plus the 2 i18n instruments this branch's commentnow cites, which is the 168 vitest reported. Both cited instruments therefore really ran.
check:doc-snippetsreturned exit 2 — "could not run", which is NOT MEASURED, not a failure: itneeds a scoped 34-package build first. Narrowed away with proof rather than skipped — that gate
type-checks fenced snippets, and this diff changes none. All six edited
ROADMAP.mdlines areoutside code fences (checked with a fence-state walk), the changeset has zero fences, and the
TypeScript diff is comment-only: 19 changed lines, 0 of them non-comment, with a classifier proven
able to fire on a known code line.
pnpm lintis a repository-wide scan that belongs to CI. The narrowed run is declared with its threereadings: the population comes from the config's own
files: ['**/*.{ts,tsx}']; the run reports1 file, 0 errors, 0 warnings from
--format json; and the invariance holds becauseeslint.config.jsenables no type-aware linting (noprojectService, noparserOptions.project),so a comment-only edit in one file cannot move any untouched file's verdict. The same command was
shown able to report a finding, on a control file created inside the tree and removed with cleanup
verified by observing state rather than by reading an exit code.
Acceptance notes
Out of scope, noted and NOT filed:
packages/i18n/src/index.tsandpackages/i18n/package.jsonboth hedge "10+" where the figure isexactly ten. The card excludes both on purpose and objectui#7989's ruling protects them as
already-correct. A hedge on an exact number is a weaker defect than a wrong one. Successor: the
next card that touches the i18n package description.
ROADMAP.md's locale counts stay RESTATED rather than derived. That is the dispatch's explicitboundary for a planning document, not an oversight. Successor: none — nothing re-derives a
roadmap, and nothing should.
next runs a figure census in this repository; the reading is recorded here rather than filed
because the sites it newly finds are historical records that want no repair.
Generated by Claude Code, session
session_01Xm4WFhEe5mwcgyqHjxR2hn.Generated by Claude Code