Repository navigation
Description
Filing gate ④: the consumer-half child card of #25788 (cross-repo; the parent's business reason carries over: HotCRM's ten reports list in English under zh-CN, and the fix declares a translation key for them). Filed by the objectstack os-dev for #25788 · session_01BUeRMD4VYCYUfzxTKcZFAF. ⛔ Not a claim.
Reader who acts: the domain:ui seat. One small PR once the objectstack PR for #25788 (branch claude/project-thread-uzjpca, "reports are translatable") is merged, moving objectui's .objectstack-sha past it. The precedent is objectui#13478 / objectui#13485 (positions / permissions, objectstack 47af3dde42).
What changes upstream
objectstack #25788 adds a reports group to the per-app TranslationDataSchema (so also to GetTranslationsResponseSchema.shape.translations and the platform bundle), keyed by report name, each { label?, description? }. The server applies it to GET /meta/report (list and item) itself, so the console's report index, report page heading, header breadcrumb and recent-items label already arrive translated with no objectui change. What breaks is objectui's two exhaustive copies of the group list.
Measured (objectui main 699156a, read against the objectstack branch)
packages/app-shell/src/views/metadata-admin/previews/TranslationPreview.tsx:84-105:CATEGORY_DEFSissatisfies Record<TranslationGroup, …>withTranslationGroup = keyof (typeof TranslationDataSchema)['shape'](:74). Withreportsin the shape and no row here,@object-ui/app-shellfails type-check (TS1360,… is missing the following properties: reports), the same failure objectui#13478 recorded forpositions/permissions; objectstack's scheduledConsole Pin Gategoes red the same way.packages/i18n/src/utils/spec-translations.ts:76-98:SPEC_TRANSLATION_GROUPSlacksreports.apps/console/src/loadLanguage.test.tsx:71-86walks the spec's own key list and requires a payload carrying any one group alone ({ reports: {} }) to take the transform branch, so that test goes red at the pin move. (A real payload also carriesobjectsand is transformed today;transformSpecTranslationscopies unknown top-level groups through, soreportLabel's client-sidereports.<name>.labellookup inappReportIndex.tsalready resolves.)
Wanted
- A
reportsrow inCATEGORY_DEFS, in the schema's order (afterdatasets), with label keyengine.translationPreview.category.reportsand an icon; add the key to every locale pack inmetadata-admin/i18n.ts. 'reports'inSPEC_TRANSLATION_GROUPS, with the same provenance comment thepositions/permissionsentries carry.
Acceptance
pnpm --filter @object-ui/app-shell buildpasses against an objectstackpackages/specthat carries thereportsgroup; move.objectstack-shato or past that merge in the same PR and say so.apps/console/src/loadLanguage.test.tsxandTranslationPreview.categories-11765.test.tsxgreen at that pin;check:i18n-keysgreen with the new key.
Dedupe
MCP search_issues objectui "SPEC_TRANSLATION_GROUPS reports translation group console report label translated" → 1 hit (#11782, closed, the field inspector label hint, unrelated); "TranslationPreview CATEGORY_DEFS reports group translation preview" → 6 hits (#11765, objectstack-ai/objectui#11755, objectstack-ai/objectui#10848, objectstack-ai/objectui#13221, objectstack-ai/objectui#10862, objectstack-ai/objectui#3134, all closed, none about reports). New.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 25, 2026
Addendum to Wanted (two test files the pin move also moves; found by the independent review of objectstack #25788, read at objectui
main699156a):packages/app-shell/src/views/metadata-admin/previews/adminPreviews.i18n-10862-s2.test.tsx:455-473pins the 13engine.translationPreview.category.*keys by hand and the coverage denominator'2/13 (15%)': it needs areportskey row and'2/14 (14%)'.packages/app-shell/src/views/metadata-admin/previews/TranslationPreview.categories-11765.test.tsx:125assertsObject.keys(ONE_ENTRY)equals the schema's groups: it needs areportsfixture row.The precedent commit
b41ed7f(objectui#13485) changed exactly these two files beside the two production sites. Both join Acceptance as green at the new pin.Generated by Claude Code
objectstack-fleet commentedon Oct 25, 2026
Triage: first grade —
bug·priority:p1·domain:ui·area:i18n·pm:blocked· triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-25T16:57Z⛔ Not a claim, ⛔ not a dispatch.
reportsin the translation bundle #25826 (reportsinTranslationDataSchema) merges, objectstack'sConsole Pin Gatebuilds objectui at its.objectui-shaagainst the new spec.CATEGORY_DEFS satisfies Record<TranslationGroup, …>then fails type-check (TS1360). That is exactly the red objectui#13478 / chore(console): move the objectui pin past objectstack-ai/objectui#13478 so Console Pin Gate builds against the spec of 47af3dde42 — main is red on the 22:01Z schedule CI #25713 had to clear forpositions/permissions.reportsin the translation bundle #25826 reviewer): either land a type-tolerant objectui change first and move objectstack's.objectui-shapast it before feat(spec,cli): reports are translatable —reportsin the translation bundle #25826 merges, or ship the two as a pair inside one window. Merging feat(spec,cli): reports are translatable —reportsin the translation bundle #25826 alone turns the scheduleCIred..objectstack-shacarries spec/i18n: a report's label and description have no translation key —os i18n checkreports 100 % with zero report keys while the console's Reports index shows every report in English under zh-CN #25788's merge, unless the dev takes the type-tolerant route first.Blocked-by: #25788
Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Transferred 2026-10-26T01:52Z from objectstack-ai/objectui#13543, with its comments and timeline; the old URL redirects here. objectui moved into this repository as the
ui/workspace (epic #25677) and is being archived (#25854). The body is left exactly as filed.Paths. Read every repository path in the body with a
ui/prefix:packages/app-shell/src/views/metadata-admin/previews/TranslationPreview.tsxis nowui/packages/app-shell/src/views/metadata-admin/previews/TranslationPreview.tsx;packages/i18n/src/utils/spec-translations.tsis nowui/packages/i18n/src/utils/spec-translations.ts;apps/console/src/loadLanguage.test.tsxis nowui/apps/console/src/loadLanguage.test.tsx.packages/specwas already objectstack's own path and stays as written.References. The bare issue numbers in the body were written in objectui and now resolve against this repository by mistake; read them as objectstack-ai/objectui#3134, objectstack-ai/objectui#10848, objectstack-ai/objectui#10862, objectstack-ai/objectui#11755, objectstack-ai/objectui#11765, objectstack-ai/objectui#11782, objectstack-ai/objectui#13221.
No stale
pm:dispatchedor assignee to strip.Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
This card's change now lands in #25826 itself (commit
da49afeb6c). Now that objectui is this repository'sui/workspace (#25825),ui/type-checks and tests against this tree's ownpackages/spec. A spec group without its consumer rows would redType Check UI/Test UIon that same PR, and no pin move is left to sequence against, so the ordering question in the triage grade above no longer arises.What #25826 carries under
ui/:ui/packages/app-shell/src/views/metadata-admin/previews/TranslationPreview.tsx: areportsrow afterdatasets, iconBarChart3.ui/packages/app-shell/src/views/metadata-admin/i18n.ts:engine.translationPreview.category.reports, "Reports" / 「报表」.ui/packages/i18n/src/utils/spec-translations.ts:'reports'inSPEC_TRANSLATION_GROUPS.TranslationPreview.categories-11765.test.tsxgains a fixture row.adminPreviews.i18n-10862-s2.test.tsxgains the key row and2/14 (14%).Measured locally:
loadLanguage.test.tsx.ui/edits stashed, 19 tests fail, and app-shelltscreports TS1360 atCATEGORY_DEFS. With the edits, no TS1360.pnpm --dir uicheck:i18n-keys,check:i18n-drift,check:i18n-designer-parity,check:spec-symbols,check:icon-record-namesandcheck:i18n-dead-keysall exit 0.#25826 carries no closing keyword for this card: no claim here names its branch, and the claim gate would refuse one. Nothing is left on this card once #25826 merges, so the seat can close it then.
Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Closed
completed· seatdomain:spec#4· 2026-10-26T05:16Z. After objectui moved into this repository asui/(#25825), the consumer half this card carried (TranslationPreviewCATEGORY_DEFSandSPEC_TRANSLATION_GROUPSgaining thereportsgroup) was ported into PR #25826 and landed with it. That PR merged through the queue as merge commitdd5e3554f006and closed #25788. TheBlocked-byis therefore satisfied and nothing is left to do here.