Repository navigation
fix(app-shell): the metadata-admin designer's own i18n table uses the typographic ellipsis (#4377) - #4385
Merged
Conversation
) The metadata-admin designer carries its own flat en/zh table rather than reading the ten locale packs, so #3878 -- which converged those packs on U+2026 per the consistency pass on objectstack#6015 -- left it behind. Ten values across five keys still ended in three ASCII full stops, and the designer renders inside the console shell, so `Select...` sat on screen beside the packs' `Select...` in its typographic form. All ten now use U+2026. The table's header records the convention and why it is held by a note rather than a gate: `ellipsis-glyph-3878.test.ts` scans the ten packs by design, and generalising it to this second table shape was costed as more machinery than the defect is worth. Fixes #4377
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
Collaborator
Author
|
ACCEPT — PM 复核 (session
Flipping ready + arming auto-merge. Generated by Claude Code |
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 #4377
The metadata-admin designer does not read the ten locale packs — it carries its own flat
en/zhtable — so objectui#3878, which converged those packs on the typographic ellipsis U+2026 per the consistency pass on objectstack#6015, left it behind. The designer renders inside the console shell, so itsSelect...sat on screen beside the packs'Select….Entry count: 10 — the card's table was exhaustive
Swept the whole file for ASCII
...in values, not just the five keys the card names:All ten are the card's five keys in each of the two blocks —
engine.form.select,engine.form.selectObjectDots,engine.form.addObjects,engine.form.selectFieldDots,engine.form.addFields. No sixth key, and no mid-sentence occurrence. After the change the only...left in the file are the two inside the new header note, where the rejected form is quoted deliberately.For scale: the file already held 126 values using
…, so the ten were a genuine minority pocket rather than a table-wide convention.Before / after
Pin sweep: zero tests to move
Measured before editing, over
packages/,apps/,examples/,scripts/:Ten hits were the table itself. The other three hits are not pins on these values and are untouched here:
packages/components/src/custom/action-param-dialog.tsx:198— an independent hardcoded'Select...'fallback placeholder in a different package (filed, see below).packages/components/src/__tests__/action-param-label-association.test.tsx:22— a comment describing that component's accessible name, not this table.examples/schema-catalog/src/schemas/components-form-select/with-placeholder.json— an example schema's ownplaceholdervalue.A looser sweep for
getByText/getByPlaceholderTextnear these keys found nothing either.pins_moved: 0, measured rather than assumed.The header note, and why no gate
The five keys' only consumers are
widgets.tsx:396andwidgets.tsx:527; the convention is now recorded in the table's header, citing objectstack#6015, objectui#3878 andpackages/i18n/src/__tests__/ellipsis-glyph-3878.test.ts— whose own header already records that it scans the ten packs by design and so cannot reach this table. Per the card's costing, which the dispatch accepted, generalising that pin to a second table shape (flatRecordof dotted keys,enandzhin one file, no ten-pack parity) is more machinery than the defect is worth. No pin was added.Verification
pnpm exec vitest run packages/app-shell/src/views/metadata-admin/ --maxWorkers=2tsc --noEmit -p tsconfig.json(app-shell)tsc -p tsconfig.test.json(app-shell)pnpm exec eslinton the touched filenode scripts/check-control-bytes.mjsnode scripts/check-changeset-presence.mjsnode scripts/check-changeset-no-major.mjsBoth type-checks first failed with
TS2307 Cannot find modulein a fresh worktree; that is the build-closure trap, not this change —pnpm --filter '@object-ui/app-shell^...' buildfirst, then both are clean.Changeset:
patchfor@object-ui/app-shell(user-visible copy), nevermajor.Filed, not fixed here
action-param-dialogrenders a hardcoded EnglishSelect...placeholder — untranslated in zh, and ASCII after #3878 moved the packs to U+2026 #4386 —action-param-dialog.tsx:198renders a hardcoded EnglishSelect...fallback with not()anywhere in the file. Both untranslated and ASCII; a different shape from Two call sites build a search placeholder ast(key) + '...'— the ellipsis is concatenated in code, so it stays ASCII in all ten locales and cannot be translated away #4375's two concatenation sites, and in a package this PR does not touch.engine.form.selecthas no consumer at all #4387 (finding) — three key pairs in this table now hold byte-identical values, because each ofengine.form.select/.selectObjectDots/.selectFieldDotshad a sibling that already carried….engine.form.selectadditionally has no consumer at all. Collapsing them would put the twowidgets.tsxcall sites in scope, which the dispatch carved out for the in-flight app-shell: publishing a draft view does not invalidate the adapter's view caches — the console's real create-view flow bypasses ObjectStackAdapter entirely #4373, so it is recorded rather than done.Generated by Claude Code