Repository navigation
refactor(i18n, plugin-designer)!: retire the unread designer.versionHistory key - #29616
Conversation
The version-history panel left @object-ui/plugin-designer, so no reader of designer.versionHistory remains. Drop it from the ten locale packs and from DESIGNER_DEFAULT_TRANSLATIONS. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QsR2jRTYHhqj3r6SiMnrkT
|
Contract-review-claim: session_01QsR2jV5sBSzCYNEDgpYLJw · head d3c179c · 2026-11-02T21:52Z Generated by Claude Code |
|
director#1 · zhuangjianguo · session_01QsR2jV5sBSzCYNEDgpYLJw Contract reviewServed-tier: Read-only; nothing was built or run here. CI on ① Derived judgments
② Semver level
③ Boundary flags
④ Design judgment
Must-fix (1):
Should-fix: none. Implemented-by: VERDICT: FAIL Generated by Claude Code |
…ed default map DESIGNER_DEFAULT_TRANSLATIONS is exported from the plugin-designer entry, so its lost designer.versionHistory row is a published change too. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QsR2jRTYHhqj3r6SiMnrkT
|
Contract-review-claim: session_01QsR2jV5sBSzCYNEDgpYLJw · head 9502086 · 2026-11-02T21:57Z Generated by Claude Code |
|
director#1 · zhuangjianguo · session_01QsR2jV5sBSzCYNEDgpYLJw Contract reviewServed-tier: Re-review of the one must-fix in record 6589388719. Read-only; nothing was built or run here. The eleven source deletions are byte-identical to ① Derived judgments
② Semver level
③ Boundary flags
④ Design judgment
No must-fix. No should-fix. Implemented-by: VERDICT: PASS Generated by Claude Code |
|
domain:ui#5 · zhuangjianguo · session_01QsR2jQjvWkZ7is6GXbC6DB 席位核对 — ACCEPT ·
|
domain:ui#5 · zhuangjianguo · session_01QsR2jQjvWkZ7is6GXbC6DB
Requested by Steedos · project thread
Part of #25921. This batch retires the
designer.versionHistoryi18n key that #29529 (389de4aa) left with no reader when it deleted theVersionHistorymodule from@object-ui/plugin-designer. It runs under claim 6587895888. The umbrella stays open; nothing else it lists is touched.Clause-②: no (narrowing)
Metadata-protocol: none
维护者速读
DESIGNER_DEFAULT_TRANSLATIONS里删除designer.versionHistory这一条文案,共 11 行。TranslationKeys类型少了这个键,外部若引用会编译报错;导出的兜底表读这一行会得到 undefined。changeset 为两个包写明了删掉引用即可。回滚即 revert 本 PR。ui/packages/i18n/src/locales/en.ts(类型来源)、ui/packages/plugin-designer/src/hooks/useDesignerTranslation.ts、.changeset/25921-designer-version-history-key.md。git grep -n "designer.versionHistory" -- ui ':!**/CHANGELOG.md',预期无输出(退出码 1)。What changes
ui/packages/i18n/src/locales/{ar,de,en,es,fr,ja,ko,pt,ru,zh}.ts: theversionHistoryentry underdesigneris deleted (one line each).designer.undo,designer.redoanddesigner.canvasMinimapstay.ui/packages/plugin-designer/src/hooks/useDesignerTranslation.ts: the'designer.versionHistory'row leavesDESIGNER_DEFAULT_TRANSLATIONS. The map is exported from the package entry (src/index.tsx) and app-shell's mirror gate imports it, so a read of that row now yieldsundefined; the map's type is unchanged..changeset/25921-designer-version-history-key.md:@object-ui/i18nand@object-ui/plugin-designerpatch, BREAKING (TypeScript only for i18n; the plugin-designer sentence names the exported map's lost row and refactor(ui)!: retire plugin-designer's dead collaboration code, VersionHistory and the useConfirmDialog entry export #29529 as the predecessor), with the ADR-0087 markernot-required (runtime-interface-only ui/packages/i18n/src/locales/en.ts#TranslationKeys)beside a| Removed key | Replacement |table whose replacement is "none".Tests
No test file changes. Neither i18n pin moves:
dead-key-batch-retired-4730.test.tsdoes not list the key in its SURVIVING list, and the de value "Versionsverlauf" carries no quote pair, so thede-quote-pairing-3876.test.tscensus is unchanged.Acceptance notes
origin/main50e35a28,git grep -n versionHistory -- ui ':!**/CHANGELOG.md'found the 11 definitions above plusui/packages/types/src/designer.ts:1416(CollaborationConfig.versionHistory?: boolean, a different symbol, not an i18n key). There is not('designer.versionHistory'), nodesigner.template composition that could produce it (the onlydesigner.template isdesigner.object.reqPerms.op.OPinObjectDefaultInspector.tsx), and no test pin. After this PR the same grep returns only thetypesline.CollaborationConfig.versionHistory(ui/packages/types/src/designer.ts:1416) has no reader either. It is a dead declared field, out of scope here and not filed (zero-pull, carrier: none)..changeset/25921-plugin-designer-dead-collaboration-version-history.md(from refactor(ui)!: retire plugin-designer's dead collaboration code, VersionHistory and the useConfirmDialog entry export #29529, not yet released) says the key "stays in the locale packs for now, with no reader". Once this lands, that sentence is outdated. It is outside this PR's declared file surface, so it is left as is for the seat to decide.Verification
Diff readings on head
1a4bf460, treeobjectstack-ai/objectstack.Dead-key report, suites, type-check, reverse check
node scripts/check-i18n-dead-keys.mjs(fromui/):origin/main4120 pack keys, 318 candidates,designer.versionHistorylisted as needs-review; this head 4119 pack keys, 317 candidates, key absent. Exit 0 both.pnpm turbo run build --filter=@object-ui/app-shell^...: 64/64 tasks, exit 0.pnpm --filter @object-ui/i18n test: 95 files, 1443 passed, 13 skipped, exit 0.pnpm --filter @object-ui/plugin-designer test: 49 files, 456 passed, exit 0.vitest run packages/app-shell/src/__tests__/defaults-maps-mirror-en-pack.test.tsx: 15 passed, exit 0.type-check:@object-ui/i18nexit 0,@object-ui/plugin-designerexit 0,@object-ui/app-shellexit 0,turbo run type-check --filter=@object-ui/console71/71 tasks, exit 0.app-shell/src/__probe.tsreadingTranslationKeys['designer']['versionHistory']givesTS2339: Property 'versionHistory' does not exist on type '{ readonly undo: "Undo"; readonly redo: "Redo"; readonly canvasMinimap: "Canvas minimap"; }'; the control line readingcanvasMinimapcompiles. Probe deleted.Derived gates and dogfood battery
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackat1a4bf460: 28 commands, every one exit 0 (incl.check-adr-0087-registration,check-changeset-no-major,check-empty-changeset,check-closing-keyword-parity,check-sdui-manifestand their--self-tests,check:published-files,check:nul-bytes,vitest run scripts/inui/170 passed, 2 skipped files).--ran: 28 derived, 28 run, 0 NOT-MEASURED.check-partof-closing-keywordon this body: exit 0.8ad4e199(closure@objectstack/dogfood^...built, 68/68 tasks): VERDICT command-exit 0, Test Files 398 passed, 3 skipped (401), Tests 3280 passed, 28 skipped (3308), no failures.9502086d(contract-review fix: plugin-designer added to the changeset) touches only the changeset;check-adr-0087-registration,check-changeset-no-majorandcheck-empty-changesetre-ran there, all exit 0.d3c179cdonly merges fourorigin/maincommits outside this diff (lint, runtime, spec permission). The derived list is unchanged; the changeset, ADR-0087, closing-keyword, sdui-manifest and nul-byte gates re-ran there, all exit 0.Generated by Claude Code