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
    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.

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:uipriority: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