Skip to content

app-shell + i18n: add the reports translation group objectstack #25788 adds — TranslationPreview's CATEGORY_DEFS fails type-check at the next pin, and the console loader does not recognise a reports-only payload #25859

Closed

Description

@objectstack-fleet

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_DEFS is satisfies Record<TranslationGroup, …> with TranslationGroup = keyof (typeof TranslationDataSchema)['shape'] (:74). With reports in the shape and no row here, @object-ui/app-shell fails type-check (TS1360, … is missing the following properties: reports), the same failure objectui#13478 recorded for positions / permissions; objectstack's scheduled Console Pin Gate goes red the same way.
  • packages/i18n/src/utils/spec-translations.ts:76-98: SPEC_TRANSLATION_GROUPS lacks reports. apps/console/src/loadLanguage.test.tsx:71-86 walks 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 carries objects and is transformed today; transformSpecTranslations copies unknown top-level groups through, so reportLabel's client-side reports.<name>.label lookup in appReportIndex.ts already resolves.)

Wanted

  • A reports row in CATEGORY_DEFS, in the schema's order (after datasets), with label key engine.translationPreview.category.reports and an icon; add the key to every locale pack in metadata-admin/i18n.ts.
  • 'reports' in SPEC_TRANSLATION_GROUPS, with the same provenance comment the positions / permissions entries carry.

Acceptance

  • pnpm --filter @object-ui/app-shell build passes against an objectstack packages/spec that carries the reports group; move .objectstack-sha to or past that merge in the same PR and say so.
  • apps/console/src/loadLanguage.test.tsx and TranslationPreview.categories-11765.test.tsx green at that pin; check:i18n-keys green 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

  1. objectstack-fleet commented on Oct 25, 2026

    @objectstack-fleet
    ContributorAuthor

    Addendum to Wanted (two test files the pin move also moves; found by the independent review of objectstack #25788, read at objectui main 699156a):

    • packages/app-shell/src/views/metadata-admin/previews/adminPreviews.i18n-10862-s2.test.tsx:455-473 pins the 13 engine.translationPreview.category.* keys by hand and the coverage denominator '2/13 (15%)': it needs a reports key row and '2/14 (14%)'.
    • packages/app-shell/src/views/metadata-admin/previews/TranslationPreview.categories-11765.test.tsx:125 asserts Object.keys(ONE_ENTRY) equals the schema's groups: it needs a reports fixture 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

  2. objectstack-fleet commented on Oct 25, 2026

    @objectstack-fleet
    ContributorAuthor

    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.

    Blocked-by: #25788


    Generated by Claude Code

  3. added
    area:i18nThe customer's own language, across UI, metadata and notifications
    bugSomething isn't working
    domain:uiDomain lane — seat card indexed by label:pm:seat
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    priority:p1High: required for production / M2
    on Oct 25, 2026
  4. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    ContributorAuthor

    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.tsx is now ui/packages/app-shell/src/views/metadata-admin/previews/TranslationPreview.tsx; packages/i18n/src/utils/spec-translations.ts is now ui/packages/i18n/src/utils/spec-translations.ts; apps/console/src/loadLanguage.test.tsx is now ui/apps/console/src/loadLanguage.test.tsx.

    packages/spec was 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:dispatched or assignee to strip.


    Generated by Claude Code

  5. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    ContributorAuthor

    This card's change now lands in #25826 itself (commit da49afeb6c). Now that objectui is this repository's ui/ workspace (#25825), ui/ type-checks and tests against this tree's own packages/spec. A spec group without its consumer rows would red Type Check UI / Test UI on 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: a reports row after datasets, icon BarChart3.
    • ui/packages/app-shell/src/views/metadata-admin/i18n.ts: engine.translationPreview.category.reports, "Reports" / 「报表」.
    • ui/packages/i18n/src/utils/spec-translations.ts: 'reports' in SPEC_TRANSLATION_GROUPS.
    • Tests:
      • TranslationPreview.categories-11765.test.tsx gains a fixture row.
      • adminPreviews.i18n-10862-s2.test.tsx gains the key row and 2/14 (14%).

    Measured locally:

    • The affected ui tests pass: 91 files, including loadLanguage.test.tsx.
    • With the ui/ edits stashed, 19 tests fail, and app-shell tsc reports TS1360 at CATEGORY_DEFS. With the edits, no TS1360.
    • pnpm --dir ui check:i18n-keys, check:i18n-drift, check:i18n-designer-parity, check:spec-symbols, check:icon-record-names and check:i18n-dead-keys all 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

  6. objectstack-fleet commented on Oct 26, 2026

    @objectstack-fleet
    ContributorAuthor

    Closed completed · seat domain:spec#4 · 2026-10-26T05:16Z. After objectui moved into this repository as ui/ (#25825), the consumer half this card carried (TranslationPreview CATEGORY_DEFS and SPEC_TRANSLATION_GROUPS gaining the reports group) was ported into PR #25826 and landed with it. That PR merged through the queue as merge commit dd5e3554f006 and closed #25788. The Blocked-by is therefore satisfied and nothing is left to do here.

  7. removed
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    on Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:i18nThe customer's own language, across UI, metadata and notificationsbugSomething isn't workingdomain:uiDomain lane — seat card indexed by label:pm:seatpriority:p1High: required for production / M2

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions