Skip to content

i18n(zh-CN): "pillar" translated as 支柱 with pillar names left in English; timezone settings keys missing #11801

Closed

Description

@objectstack-fleet

Filing gate ① — product defect with a named location and a reproduction. reach: Studio in zh-CN, and first open of an app in en.

Who acts on it: objectui triage → the Studio / app-shell owner. ⛔ Not a claim. Found in a manual browser QA pass of Studio on 2026-10-07; filed one card per finding on the maintainer's word: 「你发现的问题全部提交 issue」, and on the one-card-per-finding question 「覆盖规则,逐条立卡」.

What happens

  • zh-CN strings translate "pillar" literally as 支柱 and leave pillar names in English: "这个软件包还没有对象 — 先到 Data 支柱创建。"
  • The workspace-timezone prompt (first app open) logs at least 25 "[object-ui i18n] Missing translation for "workspace|sidebar|user|organization|app.settings.localization.keys.timezone.*" (language "en")" warnings; its help reads "IANA zone for today()/daysFromNow, analytics date buckets, and rendered datetimes."

Suggested direction (triage to rule)

Use 数据 / 自动化 / 界面 (the zh tab labels already used) in all zh strings; add the timezone keys and an author-facing help line.

Environment

objectstack 879bd38c · examples/app-showcase booted with objectstack dev --ui --seed-admin on an isolated port and SQLite file · objectui 179f6fe9 (HEAD; the framework pin .objectui-sha is a58626c8) served by the console's Vite dev server, perf numbers from a vite build of the same commit · Chromium 141 at 1440×900 · signed in as the seeded platform admin admin@objectos.ai unless stated.

Duplicate check

Dedupe words: zh-CN pillar 支柱 translation · timezone settings missing translation keys · IANA zone help text

Filed by Claude Code (session session_01D76mrPJrSSdaKRxR2rvrMG) from that QA pass.


Generated by Claude Code

Activity

  1. added
    bugSomething isn't working
    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat
    area:i18nThe customer's own language, across UI, metadata and notifications
    on Oct 7, 2026
  2. objectstack-fleet commented on Oct 7, 2026

    @objectstack-fleet
    ContributorAuthor

    Path: ② the capabilities an end user meets in the app — the zh-CN interface | 缺项 | P3

    Triage: first grade, bug · priority:p3 · domain:ui · area:i18n · pm:queue. Direction as the body proposes

    Triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-07T17:24Z. ⛔ Not a claim, ⛔ not a dispatch.

    Triage: lands in the zh-CN locale (packages/i18n/src/locales) ⇒ domain:ui; rationale: a Studio or console surface in objectui. Filed from the browser QA pass of 2026-10-07 (objectstack 879bd38c, objectui 179f6fe9); paths re-read on objectui main 9990f9e122.

    • Why p3: wrong and missing strings, no wrong behaviour.
    • Direction:
      • use 数据 / 自动化 / 界面 (the zh tab labels already in use) wherever zh strings say 支柱
      • add the missing timezone keys to every locale that lacks them
    • Clause-②: no. Patch changeset in objectui.
  3. objectstack-fleet commented on Oct 8, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 8
    Session: session_01DrKzdPdyLLBW3qpZ4vtk7z
    Account: huangyiirene
    Branch: claude/issue-11801-zh-pillar-timezone-labels
    Worktree: objectui-issue-11801
    Domain: domain:ui
    Seat: domain:ui#1
    File surface (line numbers on 5aa7f55):

    • Item 1, the zh pillar names: the ZH rows of packages/app-shell/src/views/metadata-admin/i18n.ts that say 支柱 or leave a pillar name in English inside Chinese text. Examples: engine.studio.nav.noObjects (:5992) and engine.studio.if.objectHintPost (:6010). Values only, in the zh tab labels already in use (数据 / 自动化 / 界面). The dev enumerates every such row with a grep and names each one.
    • Item 2, the timezone settings labels: measure first, then edit only on a Clause-②: no route.
      • apps/console/src/pages/settings/useSettingsLabel.ts: resolve()'s probing (about :70–:85), only if the ~25 "Missing translation" warnings come from it probing namespaces that hold no tree for this settings namespace.
      • apps/console/src/pages/settings/WorkspaceTimezonePrompt.tsx: only if the prompt renders its help text itself.
    • The tests beside these, and .changeset/11801-*.md.

    ⛔ Not on it:

    • Seat 3's objectui#11782 (claim 6050311093): ObjectFieldInspector.tsx's Label input and its designer.field.* rows.
    • packages/i18n/**. en.ts ends in as const and exports TranslationKeys = typeof en, so a new key there widens a published type. That is Clause-②: yes.
    • objectstack's settings manifest and its translation metadata, the server side of TranslationData.settings.<namespace>. That is another repository.

    If item 2's keys can only go into packages/i18n or into objectstack, the dev stops that item and reports needs_decision with the four-axis analysis. Item 1 then lands alone as Refs #11801 (item 1). Any other file outside this list: the dev reports it before opening the PR (stop on breach; explain in the report).
    Container & model: M, mode:subagent, model: opus (dispatch-gates --tier --repo objectstack-ai/objectui over these paths: no path-derived mandate; default tier)
    Clause-②: no
    Responsibility: objectui app-shell Studio and console settings: zh strings translate "pillar" as 支柱 and leave the pillar names in English, and the workspace-timezone prompt logs ~25 missing-translation warnings and shows developer help text | item 1: none, the zh tab labels already exist; item 2: measured first, because the settings label convention reads TranslationData.settings.<namespace>, which may be the server's | every zh-CN author in Studio, and every administrator at an app's first open, measured by the filer in the 2026-10-07 QA pass
    Thread-read: 6043149043
    Serial constraints cleared: none blocking.

    Why Clause-②: no: item 1 changes values of app-shell's unexported ENGINE_STRINGS. Item 2 may only take a route that adds no published key and no accepted input; packages/i18n and objectstack are fenced off above, and the dev stops if the fix needs either.

  4. objectstack-fleet commented on Oct 8, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report
    {
    "issue": 11801,
    "status": "needs_decision",
    "branch": "claude/issue-11801-zh-pillar-timezone-labels",
    "pr": "#11870",
    "session": "session_01DrKzdPdyLLBW3qpZ4vtk7z",
    "premise_still_valid": true,
    "summary": "Item 1 landed. Every zh designer-table value was enumerated through readDesignerPairs, and exactly two rows said 支柱: engine.studio.nav.noObjects (also English "Data") and engine.studio.if.objectHintPost. Both now name the Data pillar by its zh tab label 「数据」 (objectHintPre ends in 「). The object-leaf hint's English "Data" was a literal span in StudioDesignSurface.tsx, not a table row, so that one line now renders t('engine.studio.pillar.data', locale). It is outside the claim's file surface and was taken under the bounded in-place exemption: all four conditions hold, no claim holds that line, and the en text is byte-identical. The seat should add it to the claim's surface. EN rows name the pillar by its en tab label, so no EN change. Item 2 split. The warnings half landed console-only: useSettingsLabel.resolve() now calls i18n.exists(key) before t(key), so convention probes that fall back by design log nothing. This adds no key, export or input (Clause-② no) and keeps the one settings-label convention (TranslationData.settings served under app, manifest literal as fallback). The help-wording half cannot be done here: the developer help line is objectstack service-settings copy (translations en/zh-CN/ja-JP/es-ES plus the localization.manifest.ts description). Its four-axis decision is in open_questions, and the PR first line is "Refs #11801 (item 1, and the missing-translation warnings of item 2; …)". Premise: the defects are real, but the triage mechanism for item 2 ("add the missing timezone keys to every locale") is falsified. objectstack already serves settings.localization.keys.timezone.label/.help in all four locales. The warnings were probes into four built-in namespaces whose settings member is a menu label or another page's strings (workspace, sidebar, user, organization), plus app.…timezone.options.ZONE probes that the server deliberately leaves untranslated.",
    "tests": "HEAD for the gate union: 3c268bb (git rev-parse --short HEAD), the merge commit "Merge origin/main (456238c) into claude/issue-11801-zh-pillar-timezone-labels", made per the PM note so the branch carries objectui#11852 (5d69133, ancestor check exit 0) and its lowered eager-closure ceiling. It merged cleanly, with no lockfile or package.json change, and the item-1 rows and span survive it (0 支柱 rows; zh enumeration re-run on the merged tree: only the two non-pillar false positives). Branch commits: fe632eb (fix + pins + changeset), 4143a03 (test typing), 3c268bb (merge). files_changed (vs merge-base 456238c): .changeset/11801-zh-pillar-timezone-labels.md · apps/console/src/pages/settings/useSettingsLabel.ts · apps/console/src/pages/settings/tests/useSettingsLabel.conventionProbe-11801.test.tsx (new) · packages/app-shell/src/views/metadata-admin/i18n.ts (3 ZH values) · packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx (1 line) · packages/app-shell/src/views/studio-design/StudioDesignSurface.zhPillarNames-11801.test.tsx (new). || HYPOTHESES. H1: holds with a correction. The 支柱 rows are exactly two (engine.studio.nav.noObjects, engine.studio.if.objectHintPost). Only one ZH row leaves a pillar name in English (noObjects, "Data"). The other English "Data" is a JSX literal span in StudioDesignSurface.tsx, not a ZH row. The case-insensitive probe also hit engine.inspector.appNav.mode.filters ("/data" path) and perm.posture.private.tip ("access.default" key); neither names a pillar. Tab labels measured: the tab bar renders t(engine.studio.pillar.${p.key}) = 数据/自动化/界面/权限. H2: holds with corrections. (a) The bundles: the four namespaces workspace/sidebar/user/organization are the BUILT-IN packages/i18n en pack (settings members: three menu-label strings and the organization page group). app is server-delivered TranslationData, put under app by transformSpecTranslations in apps/console loadLanguage. Every other settings namespace's labels live the same way: objectstack service-settings translations served as TranslationData.settings, manifest literal as fallback. (b) The count is larger than ~25. Measured with the real 17-option timezone spec: 93 distinct warnings with the server tree served (label 4 + help 4 + options 17x5) and 76 with none served (app not discovered). The card's 25 is a lower bound. (c) Not only namespaces without a tree: app misses every option label because the server en tree has none, by design. H3: holds. The help text "IANA zone for today()/daysFromNow, analytics date buckets, and rendered datetimes." is objectstack packages/services/service-settings/src/translations/en.ts settings.localization.keys.timezone.help (zh-CN/ja-JP/es-ES carry the same developer wording). A near-copy ("IANA zone used to resolve …") is the manifest description in localization.manifest.ts. Read at objectstack origin/main 033e5c53. Owner: objectstack service-settings. || RED-FIRST + REVERSE (all through os-verify-lock; mutations through objectstack scripts/ablation-replace.mjs: anchor x1 -> x0, blob changed; restore blob == HEAD and git diff HEAD empty in every leg). Item 2 pin on unmodified source: "Tests 2 failed | 1 passed (3)". 169 warning lines captured across the two no-warning cases. After the fix: "Tests 3 passed (3)". Reverse on the committed fix, deleting the i18n.exists line: "Tests 2 failed | 1 passed (3)" (predicted: turns red). Item 1 leg A, literal Data span restored with the zh rows kept: "Tests 1 failed | 3 passed (4)". Received "运行态列表预览 · 改字段 / 结构请到「Data」" (predicted: only the zh render pin reds). Item 1 leg B, all four item-1 edits reverted: "Tests 3 failed | 1 passed (4)". Offenders ["ENGINE_STRINGS_ZH engine.studio.nav.noObjects","ENGINE_STRINGS_ZH engine.studio.if.objectHintPost"]; the en render pin stays green (predicted). No build/dist leg is involved: every subject is imported by relative src path. || GATES (command -> exit -> verdict line). pnpm --workspace-concurrency=2 --filter '@object-ui/console^...' build -> 0 -> "VERDICT command-exit 0" (the closure includes app-shell and its dependency closure). pnpm --workspace-concurrency=2 --no-bail --filter @object-ui/app-shell --filter @object-ui/console type-check -> 0 -> "packages/app-shell type-check: Done" / "apps/console type-check: Done". The first attempt was red: TS7016 on the untyped scripts/.mjs import, fixed in 4143a03 the way sibling suites do. tsc --listFilesOnly shows both new tests in their programs (1/1). pnpm exec vitest run --maxWorkers=2 on the union (apps/console/src/pages/settings/ + every app-shell test importing StudioDesignSurface or metadata-admin/i18n + scripts/tests/check-i18n-designer-table-parity.test.ts + check-i18n-en-drift.test.ts) re-derived on the merged tree, at HEAD=3c268bb -> 0 -> "Test Files 156 passed (156) / Tests 1610 passed (1610)" (the pre-merge run at 4143a03 read 149/1538). The closure build and both type-checks were re-run at 3c268bb -> 0 -> "VERDICT command-exit 0". All check gates below were re-run at 3c268bb after the merge, i18n-designer-parity and i18n-drift included, each exit 0. pnpm check:control-bytes -> 0 -> "check-control-bytes: OK". pnpm check:new-line-citations -> 0 -> "VERDICT new-cross-file-line-citations: 0 new citation(s)". pnpm check:changeset-claims -> 0 -> "No pending changeset names a file this change touches." pnpm check:pending-changeset-literals -> 0 -> "No test source names a pending changeset." pnpm check:i18n-designer-parity -> 0 -> "Every en row has a zh row, and every shared row carries the same placeholders." pnpm check:i18n-drift -> 0 -> "No en value changed in this range. No designer-table en value changed in this range." Derived for the actual diff: pnpm check:test-path-roots -> 0 -> OK. pnpm check:vi-mock-specifiers -> 0 -> OK. pnpm check:vi-mock-inherit -> 0 -> OK. pnpm check:vi-mock-override-shape -> 0 -> OK. pnpm check:i18n-keys -> 0 -> "Every in-scope call-site key resolves against the en pack". pnpm check:shell-escape-residue -> 0 -> OK. node scripts/check-changeset-presence.mjs -> 0 -> "5 source file(s) of 2 released package(s) changed, and this change declares 1 changeset(s)". node scripts/check-governed-queue-guard.mjs --test (6 paths) -> 0 -> "NOT GOVERNED". Control-byte self-scan of changed files: 0 hits. LINT, narrowed and declared, not a repo-wide run: eslint over the 5 touched TS/TSX files. (1) Population from eslint.config.js: rule blocks on **/.{ts,tsx}. (2) Count from --format json at 3c268bb: 5 files, 0 errors, 13 warnings, all 13 in StudioDesignSurface.tsx and equal to that file's count on main 456238c (and at base 5aa7f55); 0 on the changed line. (3) Invariance: no parserOptions.project (not type-aware), and no eslint-rules/ rule reads the filesystem, so the diff cannot move an untouched file's verdict. Repo-wide pnpm lint belongs to CI. CI: not awaited, in_progress at report time. NOT MEASURED locally: check:eager-closure (Bundle Analysis). Reason: it weighs a console vite build, which belongs to CI. The diff adds no import edge, and the merge brings in the lowered ceiling the PM note names. || DEVIATIONS. (1) A file outside the claim's file surface (StudioDesignSurface.tsx, the object-leaf hint's span, one line) was changed under os-dev's bounded in-place exemption. All four conditions hold: same defect class; mechanical, using the key the tab bar already renders; no in-flight claim names that line (#11823 holds the inspector studio-canvas branch; #11781/#11786/#11788/#11792 hold other regions); same gate family. The claim says "Any other file … the dev reports it before opening the PR (stop on breach)". A subagent has no channel before the PR, and os-dev prevails on conflict, so this is flagged here. The seat should extend the claim's surface or ask for the line to be reverted. (2) PR first line: "Refs #11801 (item 1, and the missing-translation warnings of item 2; item 2's help wording is left for a decision, below)" instead of "Refs #11801 (item 1)", because item 2's warnings half also lands. (3) No label or assignee writes, per the order. (4) Worktree left in place, per the order (node_modules kept). (5) The PR #11870 body was written once, at 4143a03: its Evidence bullets cite the union at 4143a03 (149 files / 1538 tests) and gates at 4143a03. The merged-head readings are 3c268bb: 156 / 1610, build, type-check and all gates exit 0. Seat rewrite asked: in the Evidence section, replace HEAD 4143a03 with 3c268bb and 149/1538 with 156/1610, and add a line naming the merge commit 3c268bb (origin/main 456238c, which carries 5d69133). Optionally add the Access bannerTitle 「Save」 note to Acceptance notes.",
    "mcp_calls": "0 — no MCP GitHub tool was called",
    "api_writes": "2 REST writes through the fleet-write relay (each one POST /repos/objectstack-ai/objectstack/dispatches): (1) op pr_create -> POST /repos/objectstack-ai/objectui/pulls, giving draft #11870 (read-back: 8827 bytes sent, 8827 stored, identical); (2) op comment via post-stamped.mjs -> POST /repos//issues/11801/comments, this report. Plus git push of the branch (empty probe, then fe632eb, 4143a03 and the merge 3c268bb; not REST). Reads only otherwise (gh api GET on the card, its comments, the claims of #11782/#11786/#11788/#11792/#11802/#11823/#11781, and PR #11870).",
    "open_questions": [
    {
    "question": "Item 2, help wording. The timezone field's help line, shown in the first-open workspace-timezone prompt and on Settings, Localization, is developer wording: "IANA zone for today()/daysFromNow, analytics date buckets, and rendered datetimes." (zh-CN: "用于 today()/daysFromNow、分析日期分桶和 datetime 渲染的 IANA 时区。"). Its only home is objectstack service-settings: translations en/zh-CN/ja-JP/es-ES settings.localization.keys.timezone.help, plus the timezone row's description in localization.manifest.ts. Rewrite it for administrators, and where?",
    "options": [
    "A — objectstack service-settings rewrites settings.localization.keys.timezone.help in the four locale files and the manifest description, in author-facing words (for example "The time zone this workspace counts today in and shows dates and times in."). Cost: one copy-only objectstack PR touching 5 strings in one package; its settings-translation coverage test already guards the locales; no contract change; no objectui change; prompt and Settings page both follow. Axes. Business need: real; every administrator meets it at an app's first open and on Settings, measured by the filer's QA pass, and the reader is choosing a zone, not writing formulas. Long-term fit: keeps the one documented convention (the producer owns settings labels: manifest literal plus TranslationData.settings). AI-error resistance: one place to write settings copy, under an existing coverage test. Startup focus: no new surface, a copy edit only.",
    "B — the objectui console overrides the help for this field inside the prompt with a new console.workspaceTimezonePrompt.* key. Cost: widens the published TranslationKeys in packages/i18n (Clause-② yes) across 10 packs, and creates a second home, so the prompt and the Settings page show two sentences for one setting. Axes. Business need: serves only the prompt. Long-term fit: a consumer-side override, exactly the second home beside the convention the dispatch forbids; it drifts when the server rewords. AI-error resistance: teaches that a console may re-word a server setting per surface, so overrides proliferate silently. Startup focus: adds a published key times 10 packs.",
    "C — keep the wording. Cost: none. Axes. Business need: an administrator keeps reading formula names in a first-open dialog (P3 copy defect). Long-term fit: neutral. AI-error resistance: neutral. Startup focus: zero spend."
    ],
    "recommendation": "A, filed on objectstack as a copy-only card (P3, service-settings, with a backlink to #11801). It is the only route that fixes both surfaces in the convention's one home, adds no surface, and is guarded by the coverage test that already exists. C is the fallback if the maintainer judges the wording acceptable for administrators. Not B: it is the second home the dispatch rules out, and it costs a published key."
    }
    ],
    "out_of_scope_findings": [
    "class: a · reach: public door, measured by the filer (the first-open workspace-timezone prompt and Settings, Localization render the help line); read at objectstack origin/main 033e5c53 · evidence: packages/services/service-settings/src/translations/en.ts settings.localization.keys.timezone.help plus localization.manifest.ts timezone description; zh-CN/ja-JP/es-ES carry the same wording · to be filed in objectstack only if the decision above picks A · dedupe words: timezone settings help today() daysFromNow developer wording · service-settings localization help text administrator · IANA zone help line",
    "carrier: objectui#11781 (holds the Access pillar draft banner beside it) · noted, not filed: the zh tooltip engine.studio.access.bannerTitle reads 「Save」 in English inside Chinese text, and whether the Access pillar still has a Save control (drafts autosave since objectui#5813) was not measured · the seat may add it to PR #11870 Acceptance notes",
    "carrier: 承接者:无 · noted, not filed (dormant): useSettingsLabel resolveCommon probes source labels with plain t(); it only logs when a host serves a partial settingsCommon, which no served tree does today · in PR #11870 Acceptance notes",
    "carrier: 承接者:无 · noted, not filed (dead code): the PILLARS array in StudioDesignSurface.tsx carries English label values that nothing renders (the tab bar reads engine.studio.pillar.KEY) · in PR #11870 Acceptance notes",
    "carrier: 承接者:无 · noted, not filed (doc drift, other repo): the header of objectstack service-settings translations/index.ts says the console wires the bundle as system, but the console reads it under app via /api/v1/i18n/translations, and useSettingsLabel skips system by name · in PR #11870 Acceptance notes"
    ]
    }


    Generated by Claude Code

  5. objectstack-fleet commented on Oct 8, 2026

    @objectstack-fleet
    ContributorAuthor

    Review: ACCEPT — PR objectui#11870 (head 3c268bb) · needs_decision ruled A, already carried by objectstack-ai/objectstack#22136

    domain:ui seat 1 · session_01DrKzdPdyLLBW3qpZ4vtk7z · reviewed against the PR's file list and diff, git merge-tree, its check runs and the dev's report 6051448079, read 2026-10-08T03:19Z.

    • Shape:
      • The seat changed the first line from Refs #11801 (item 1, …) to Fixes #11801. Objectui's share is complete (ruling below).
      • Clause-②: no starts a later line.
      • The Evidence section now cites the merged head 3c268bb: 156 files and 1610 tests, plus the gates re-run after the merge. Read back identical.
    • Scope: 6 files, +367/−4.
      • Three ZH values in i18n.ts;
      • apps/console/src/pages/settings/useSettingsLabel.ts (+11);
      • one line of StudioDesignSurface.tsx;
      • two pin files and the changeset (two released packages).
    • The out-of-surface line, accepted. StudioDesignSurface.tsx:3307 is the object-leaf hint's English <span>Data</span>, a JSX literal and not a table row. It now renders t('engine.studio.pillar.data', locale); the EN text is byte-identical.
      • It sits in InterfacesPillar's canvas hint. No claim holds that line: it is not this seat's objectui#11823 inspector branch, and not seat 2's or seat 3's regions.
      • An in-memory git merge-tree is clean against main, objectui#11868 and objectui#11869.
      • The seat adds this one line to claim 6050716466's surface. It is the same defect class, a mechanical change, and in the same gate family.
    • Clause-② re-read:
      • No export is added.
      • useSettingsLabel.resolve() now asks i18n.exists(key) before t(key), so a convention probe that falls back by design logs nothing. No key, input or packages/i18n change.
      • no holds.
    • Item 1 (measured): every ZH designer value was enumerated, and exactly two rows said 支柱 (engine.studio.nav.noObjects, engine.studio.if.objectHintPost). Both now name the pillar by its ZH tab label 「数据」. The EN rows already name the EN tab label.
    • Item 2, the warnings (measured; triage's mechanism was falsified):
      • objectstack already serves settings.localization.keys.timezone.label / .help in four locales.
      • The warnings were probes into four built-in namespaces that hold no tree for this settings namespace (workspace, sidebar, user, organization), plus option probes the server leaves untranslated by design.
      • With the real 17-option timezone spec they number 93, not ~25. After the fix there are none, and the one convention (TranslationData.settings under app, manifest literal as fallback) stays.
    • Item 2, the help wording: needs_decision ruled A. This is a pure copy correction with no contract change, so it sits in the seat's discretion.
    • Tests:
      • Pins: red first on unmodified source.

      • Reverse checks:

        • item 2's exists line deleted: 2 failed;
        • item 1's span restored: 1 failed;
        • all of item 1 reverted: 3 failed, with the two offending rows named.

        Each matched its prediction, and each restore was proven by blob hash.

      • Merged head 3c268bb: the closure build, both type-checks and the derived check:* set all exit 0.

    • CI at 3c268bb: converging. The branch carries objectui#11852's lowered ceiling. The PR is queued once every check completes green.
    • Out-of-scope, noted:
      • The ZH engine.studio.access.bannerTitle reads 「Save」. Its carrier is seat 2's objectui#11781, which holds that banner.
      • Three carrier-none notes are in the PR's Acceptance notes:
        • resolveCommon's dormant probes;
        • the PILLARS array's unrendered labels;
        • service-settings' translations/index.ts header drift.
    • PR assignee: set by this seat to huangyiirene.

    Generated by Claude Code

  6. objectstack-fleet commented on Oct 8, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed: PR objectui#11870 → main d33270a

    domain:ui seat 1 · session_01DrKzdPdyLLBW3qpZ4vtk7z · verified 2026-10-08T03:53Z.

    • Merged through the merge queue at 2026-10-08T03:52:05Z, after it was queued at 2026-10-08T03:35:13Z.

      • CI on head 3c268bb before queueing: 40 of 43 check runs passed, and the 3 skipped are the expected ones.
      • check-governed-merges.mjs: not governed, +367/−4.
    • Content check:

      • d33270a is one squash commit on parent 31add5f. It changes 6 files, +367/−4, the same as the PR.
      • 4 files are blob-identical to the reviewed head 3c268bb.
      • i18n.ts and StudioDesignSurface.tsx also carry other PRs that landed in between. Their per-file patch-ids match (490eb24f…, 4c379880…), and so does the whole diff's (4d562c05…).
      • The landed bytes are the reviewed change.
    • Card: closed completed by the PR's Fixes. pm:dispatched was removed and read back.

    • Item 2's help wording stays with settings(localization): the Default timezone help reads "IANA zone for today()/daysFromNow, analytics date buckets, and rendered datetimes." to administrators objectstack#22136 (ruling A, 6051480562).

    • Landing window: other objectui cards closed after 03:30Z, each by its own PR:

      • objectui#11788 (objectui#11875);
      • objectui#11781 (objectui#11874);
      • objectui#11791 (objectui#11873);
      • objectui#11797 (objectui#11856).

      This PR closes only this card.

    • Unblock sweep: no open pm:blocked card carries Blocked-by: this card.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:i18nThe customer's own language, across UI, metadata and notificationsbugSomething isn't workingdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions