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 }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
components: ConfigPanelRenderer's undoLabel / redoLabel default to English — dormant today, and #4750 records the opposite #4752
Found while implementing #4750 (routing the same file's saveLabel / discardLabel defaults through the locale pack). Filed unassigned and deliberately not fixed there — see "why not in that PR" below.
What was measured (on origin/main at ef0d1502f, and identically at 616a2a547)
packages/components/src/custom/config-panel-renderer.tsx gives two more of its parameters English literals as defaults:
undoLabel = 'Undo',
redoLabel = 'Redo',
Both are rendered as the title attribute of the header's undo / redo buttons (config-panel-undo, config-panel-redo) — a visible tooltip and the buttons' accessible name, since neither carries text.
This contradicts #4750's issue body, which states that closeTitle, ariaLabel, undoLabel and redoLabel "have no default at all, so they contribute no English". That is true of closeTitle and ariaLabel; it is false of these two, at the commit that card was measured on.
Why it is dormant rather than user-visible
The two buttons render only when the caller passes onUndo / onRedo:
No caller wires either handler, so neither button — and therefore neither label — reaches a user today. useConfigDraft does expose undo / redo / canUndo / canRedo, so the wiring is one prop away from being live; the day a panel adds it, the tooltip ships English in all ten locales.
Same defect class and same file, but the key choice is a fresh decision rather than a mechanical one, which is what the in-place exemption requires:
the packs carry nocommon.undo / common.redo (common.save did exist, which is why the footer fix could just reuse it);
the four spellings that do exist are each scoped to one surface — grid.bulk.undo, gantt.toolbar.undo, designer.undo / designer.redo, appDesigner.undo / appDesigner.redo;
so fixing it means either adding a shared common.undo / common.redo pair to ten packs or picking one surface's namespace for a shared primitive — a judgement, not a re-spelling.
Whoever picks this up should also decide whether closeTitle and ariaLabel (genuinely defaulted to nothing, so the close button and the panel have no accessible name unless a caller supplies one) belong in the same change; that is an a11y gap rather than an i18n one, and #4750 explicitly left all four alone.
First-touch grading (repo:objectui PM seat, session session_01RnQd8iMMUwXQEV1crFmQiQ) — recorded as finding, no queue, same disposition family as #4716: dormant (no caller wires onUndo/onRedo, so the buttons never render), and the deferred half is a genuine fresh decision (the packs carry no common.undo/common.redo; the four existing spellings are surface-scoped), not a mechanical fix.
Re-grade triggers, either of which promotes this to the queue: (a) any caller wiring onUndo/onRedo — at that moment this becomes a live English-in-translated-console bug and the fix is one defaults-map row per label plus the key-choice measurement #4753's PR body models; (b) a shared common.undo/common.redo appearing in the packs for another surface's need, which removes the key-choice question entirely. Whoever touches ConfigPanelRenderer's undo/redo path next folds this in; this card is the spec for it.
State normalization (triage seat): finding → pm:on-hold. The 2026-08-16 first-touch grading by the repo:objectui seat (comment 5305082816) is a completed hold with named triggers; the label now matches. Ruling unchanged — this card is the spec for whoever touches ConfigPanelRenderer's undo/redo path next.
Restart-when: any caller wires onUndo/onRedo on ConfigPanelRenderer (grep for onUndo= outside components/src turning nonzero), OR common.undo/common.redo keys appear in the locale packs.
Routed via the maintainer direct-dispatch channel, this session, verbatim: 「然后 批 4–5」. PM session session_0124Qg8rLvpXnQDwCmpKUmaJ. objectui three-stream split (maintainer 2026-08-21); not a Routine triage fire — the triage seat may re-grade.
Activity
yinlianghui commentedon Aug 16, 2026
First-touch grading (repo:objectui PM seat, session
session_01RnQd8iMMUwXQEV1crFmQiQ) — recorded asfinding, no queue, same disposition family as #4716: dormant (no caller wiresonUndo/onRedo, so the buttons never render), and the deferred half is a genuine fresh decision (the packs carry nocommon.undo/common.redo; the four existing spellings are surface-scoped), not a mechanical fix.Re-grade triggers, either of which promotes this to the queue: (a) any caller wiring
onUndo/onRedo— at that moment this becomes a live English-in-translated-console bug and the fix is one defaults-map row per label plus the key-choice measurement #4753's PR body models; (b) a sharedcommon.undo/common.redoappearing in the packs for another surface's need, which removes the key-choice question entirely. Whoever touchesConfigPanelRenderer's undo/redo path next folds this in; this card is the spec for it.Generated by Claude Code
os-support-ai commentedon Aug 18, 2026
State normalization (triage seat):
finding→pm:on-hold. The 2026-08-16 first-touch grading by the repo:objectui seat (comment 5305082816) is a completed hold with named triggers; the label now matches. Ruling unchanged — this card is the spec for whoever touchesConfigPanelRenderer's undo/redo path next.Restart-when: any caller wires
onUndo/onRedoonConfigPanelRenderer(grep foronUndo=outsidecomponents/srcturning nonzero), ORcommon.undo/common.redokeys appear in the locale packs.Generated by Claude Code
os-zhuang commentedon Aug 23, 2026
Triage:
domain:ui(lane only —pm:on-holduntouched). Landing:packages/components—ConfigPanelRenderer'sundoLabel/redoLabel.Routed via the maintainer direct-dispatch channel, this session, verbatim: 「然后 批 4–5」. PM session
session_0124Qg8rLvpXnQDwCmpKUmaJ. objectui three-stream split (maintainer 2026-08-21); not a Routine triage fire — the triage seat may re-grade.Generated by Claude Code
objectstack-fleet commentedon Sep 24, 2026
关闭
not_planned—— 维护者同意:按钮目前没有任何地方会显示,用户看不到这两个英文默认值分诊席(
session_01Tw7jnJinGHvoGSi8aFkhPJ,objectstack 座位贴 #6015),2026-09-24T12:47Z。objectui 清理第八批(#8587 的挂起卡一次性清点):本席读完了卡面和评论(3 条,全部读到),并在本地 main(62597c5)上重新测量,把建议报给维护者。维护者答:「第⑧批 同意」。本卡说的是什么
ConfigPanelRenderer 的
undoLabel = 'Undo'、redoLabel = 'Redo'是英文默认值,用作按钮的 title 和无障碍名称。但这两个按钮只有调用方传入onUndo/onRedo时才会渲染,而目前没有调用方这样做。本席实测(本地 main
62597c5)config-panel-renderer.tsx:191-192没有变。components/src之外,onUndo=/undoLabel=/redoLabel=的调用一处都没有。en.ts里的撤销/重做键只在 grid(:694)和 gantt(:923)下面,没有通用的common.undo/common.redo。5331064522(components/src之外有调用方接入onUndo/onRedo,或语言包出现common.undo/common.redo)没有发生。为什么关
今天没有用户能看到这两个按钮。等有人接入撤销功能时,修法就是改一行默认值再选定一个翻译键,这张卡的内容可以直接当作说明。
什么时候重开
components/src之外有调用方接入onUndo/onRedo;或者语言包新增了通用的common.undo/common.redo键时。标签:摘
pm:on-hold;以not_planned关闭。Generated by Claude Code