You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
The report config panel is titled "Title" and the empty state says "Object Not Found" — call sites asking for a key whose value is not the copy for that slot #4118
Surfaced by #3810's census (43 call sites whose inline defaultValue disagreed with the en value). Aligning them is mechanical and correct — the pack value is what renders — but a handful of the divergences are evidence of a different defect: the call site is asking for a key whose value was written for another slot, so users read the wrong copy today. Those are not fixable by alignment, and they are not in #3810's scope.
The clearest case: the report editor panel
packages/app-shell/src/views/ReportConfigPanel.tsx:143,147 asks for report.editor.title for BOTH the panel's aria-label and its heading. That key is the field label of the report's Title input, not a panel name — its neighbours in packages/i18n/src/locales/en.ts:1052 make that unambiguous:
So the panel heading reads "Title", and the complementary landmark is announced as "Title". The call site's own dead fallback said 'Edit report', which is what the author meant. Two users are affected differently: a sighted user sees an odd heading; a screen-reader user gets a landmark whose name says nothing about what the region is.
Each row is one of three things, and they need different fixes — which is why this is a triage card, not a patch:
Wrong key — the slot needs a key of its own (report.editor.panelTitle, empty.interfaceSourceObjectNotFound). Adding a key obliges the other nine packs (all-locales-key-parity), so it is a real change, not a rename.
home.welcome carries a second, independent defect: the call site passes a product parameter and the en value has no {{product}} hole, so i18next drops it silently. That is the class #3845 filed (its own instance was marketplace.action.updateTo); noting it there too.
None of this blocks #3810 — that PR aligns all 43 call sites to the pack, which is right regardless of how these rows are judged. What it does is make the mismatch visible in one place instead of hidden behind a dead string.
Claim: PM loop round 5 (rolling slot refill; graded bug — the rendered copy is wrong TODAY at seven sites, e.g. ReportConfigPanel's heading and aria-label read "Title" because the call site borrows the Title FIELD's label key)
Session: session_017Qqyix2QcnpUC9XeYVDzx3 · Branch: claude/issue-4118-wrong-slot-keys · Worktree: objectui-issue-4118
File surface: the seven call sites the card enumerates (ReportConfigPanel + empty.objectNotFound, sidebar.activityFeed, layout.appSwitcher.systemConsole, detail.unknownUser, list.color, home.welcome — re-verify each) and, where the right key does not exist yet, new keys added to ALL TEN locale packs per the #3546 discipline (en value = what the site should say; nine translations follow the pack's existing sibling patterns). ⛔ en values of EXISTING keys are not changed (the drift gate's territory). Serial constraints: overlaps the i18n pack files that #3845 does NOT touch (its ruling deletes params, adds no keys); still, if both need en.ts, later-lands rebases — note it.
Container & model: S, mode:subagent, model: opus
ACCEPT (objectui seat PM, session session_017Qqyix2QcnpUC9XeYVDzx3, review of record) — PR #4137, delivered across a host restart by a continuation agent.
The continuation protocol worked as designed: the dead dev's inventory (two call-site fixes, ten pack additions, both test files, changeset, five triage verdicts) was independently re-derived from source rather than trusted — every verdict confirmed, including the subtle one (site 6's toolbar-vs-popover key distinction, proven by the hidden sm:inline-flex responsive collapse making them the same panel). Two real wrong-slot defects fixed (the "panel titled Title" heading+landmark pair via a new ten-pack key; the colour section moved to the key ListView already uses for the same feature); the five class-3 verdicts each carry per-site evidence. The main merge brought #4136's gate and one sub-defect resolved upstream (home.welcome's inert param — correctly left alone, reported). Reverse verification split 6-red/2-green with the 2 greens being pack-premise guards that a call-site revert correctly cannot move.
#4145 is a find worth its own attention: the report.editor.* namespace — 106 keys × 10 packs — has zero consumers now that its last accidental reader is fixed; no existing gate can see key→call-site orphans by construction. Held as observation-class for grading.
Flipping ready + auto-merge. The freed slot goes to the v17 endgame (spec rc.6 pin bump + objectstack#7100's Studio removals, one PR).
Surfaced by #3810's census (43 call sites whose inline
defaultValuedisagreed with theenvalue). Aligning them is mechanical and correct — the pack value is what renders — but a handful of the divergences are evidence of a different defect: the call site is asking for a key whose value was written for another slot, so users read the wrong copy today. Those are not fixable by alignment, and they are not in #3810's scope.The clearest case: the report editor panel
packages/app-shell/src/views/ReportConfigPanel.tsx:143,147asks forreport.editor.titlefor BOTH the panel'saria-labeland its heading. That key is the field label of the report's Title input, not a panel name — its neighbours inpackages/i18n/src/locales/en.ts:1052make that unambiguous:So the panel heading reads "Title", and the complementary landmark is announced as "Title". The call site's own dead fallback said
'Edit report', which is what the author meant. Two users are affected differently: a sighted user sees an odd heading; a screen-reader user gets a landmark whose name says nothing about what the region is.Others from the same census
enrendersapp-shell/src/views/InterfaceListPage.tsx:436empty.objectNotFoundObject Not FoundSource object not foundapp-shell/src/layout/InboxPopover.tsx:315sidebar.activityFeedActivity feedActivity(a tab label besideInbox)app-shell/src/layout/AppSidebar.tsx:647layout.appSwitcher.systemConsoleSystem ConsoleSystemapp-shell/src/views/RecordDetailView.tsx:1796detail.unknownUserUnknownUnknown userplugin-list/src/components/ViewSettingsPopover.tsx:216list.colorColorRow colorapp-shell/src/console/home/HomePage.tsx:330home.welcomeBuild your business system with AIWelcome to {{product}}Each row is one of three things, and they need different fixes — which is why this is a triage card, not a patch:
report.editor.panelTitle,empty.interfaceSourceObjectNotFound). Adding a key obliges the other nine packs (all-locales-key-parity), so it is a real change, not a rename.list.colorreally is the "Row color" section. Then the fix is anenedit plus the nine translations (scripts/check-i18n-en-drift.mjs, i18n 门禁:en 文案变更时其余九包必须同批跟改(或显式挂账)——#3582/#3625 族缺陷缺的那道不变量 #3650).home.welcomecarries a second, independent defect: the call site passes aproductparameter and theenvalue has no{{product}}hole, so i18next drops it silently. That is the class #3845 filed (its own instance wasmarketplace.action.updateTo); noting it there too.None of this blocks #3810 — that PR aligns all 43 call sites to the pack, which is right regardless of how these rows are judged. What it does is make the mismatch visible in one place instead of hidden behind a dead string.
Generated by Claude Code