Repository navigation
finding(app-shell,fields,plugin-*): one narrowed-t shape is declared 11 times under 9 names — 8 of them invisible to the one-authority gate, which matches on NAME #8203
Description
Activity
- addeddomain:devxobjectui devx stream: fix lands on .github/, scripts/ or release pipeline — devx lane cross-repoobjectui devx stream: fix lands on .github/, scripts/ or release pipeline — devx lane cross-repo
on Sep 7, 2026 Cross-reference from the director seat (decision batch #72, 2026-09-07): the maintainer ruled on #8165 that the one authority for this shape lands in
@object-ui/i18n— filed as #8261. Once that home exists, this card's remedy is a mechanical re-point of the remaining declarations onto it, rather than an open vocabulary question. Sequence: #8261 first, then this.
Generated by Claude Code
State:
pm:queue→pm:blocked,Blocked-by: #8261written as the first body line —domain:devx @ objectuiexecution seat, PM sessionsession_01FhBNJcLRZLe8M87VcUgpKr, 2026-09-07T07:44Z. Read at candidate selection: the director cross-reference above (5565870010) sequences this card behind #8261 (the one authority for the narrowed-tshape lands in@object-ui/i18n), and #8261 is open, unassigned,pm:queueindomain:ui(read 2026-09-07T07:44Z). Until that home exists there is nothing to re-point the eleven declarations onto, so this seat does not dispatch it; the unlock scan returns it when #8261 closes, and the dispatch is then the mechanical re-point the cross-reference describes (fields cannot import from app-shell — dependency direction — so every site moves DOWN onto the i18n export). Labels otherwise untouched.
Generated by Claude Code
objectstack-fleet commented
on Sep 24, 2026 ContributorMore actions关闭
not_planned—— 11 处重复的翻译函数类型别名只影响类型层面,运行时零影响;它等的统一出处 #8261 还没动。请 #8261 的接手人顺手处理分诊席(
session_01Tw7jnJinGHvoGSi8aFkhPJ,objectstack 座位贴 #6015),2026-09-24T03:34Z。objectui 清理第三批:本席逐张读完卡面与全部评论(2 条都已读),并读了 #8261,把结论和理由报给维护者,维护者答「第③批 同意」后执行。本卡要什么
(key, options?) => string这个 i18nextt的收窄形状,在 6 个包里以 9 个名字声明了 11 次。one-authority 门禁按名字匹配,所以大多数看不见。维护者在 #8165 上裁定统一出处放在@object-ui/i18n(决策批 #72),由 #8261 执行;本卡是之后的"把其余声明改指向它"。读数(本席本地 objectui
main0cf2d6644b)packages/i18n/src里还没有TranslateFn的导出 ⇒ spec(i18n): the one authority forTranslateFn— the narrowed-tshape — lands in@object-ui/i18n;app-shellandfieldsre-export it #8261 还没做。它是domain:ui、p3、pm:queue、没人认领、没有评论。- 11 处声明都还在:app-shell 6 处、fields 1、plugin-chatbot 1、plugin-detail 3、plugin-grid 1(
usePublishAllDrafts.ts的参数名仍是opts)。
为什么现在关
- 全是类型别名,运行时行为零影响,用户看不到任何差别。
- 本卡 p2,却排在一张 p3 卡(spec(i18n): the one authority for
TranslateFn— the narrowed-tshape — lands in@object-ui/i18n;app-shellandfieldsre-export it #8261)后面,优先级是反的。 - 规则:NORTH-STAR 优先级规则 3,objectui 还有开放的 P1(例如 finding(release):
changeset-release.yml's SCHEDULED lane has failed 9 fires in a row (~48h) at «Validate the post-version tree» — the polarity census asserts 2 where it requires 0 (three assertions inchangeset-polarity-census.test.ts), so publish and the version-PR refresh are skipped while every push fire stays green because that job is SKIPPED there #10010),不派 p2/p3 工具卡。
给 #8261 的接手人
建好
@object-ui/i18n的TranslateFn之后,如果顺手,可以在同一个 PR 里把上面其余名字改成指向它(fields不能从app-shell引入,都要往下指向 i18n)。改指向之前先确认形状逐字相同。⛔ 不要用"改个名字"的办法让门禁变绿,#8261 的裁定已经拒绝了这条路。标签:摘
pm:blocked;以not_planned关闭。
Generated by Claude Code
Blocked-by: #8261
Filed unassigned and ungraded by the objectui#8165 dev seat as an out-of-scope finding. No
domain:*, no priority, nopm:*— triage's.The fact
One function shape — i18next's
tnarrowed to(key, options?) => string— is declared 11 times across 6 packages under 9 distinct names. Measured on158d75bb3withgit grepoverpackages/(the exported/local split cross-checked with a fixed-string control that fires):packages/app-shell/src/providers/writeWarningToast.ts:26TranslateFnpackages/fields/src/widgets/file-size-guard.ts:26TranslateFnpackages/app-shell/src/utils/managedByEmptyState.ts:37TranslateFnpackages/app-shell/src/preview/usePublishAllDrafts.ts:28TranslateFnopts, notoptionspackages/app-shell/src/console/organizations/orgErrorMessage.ts:61OrgTranslatepackages/app-shell/src/console/ai/AiChatPage.tsx:2570TranslationFnpackages/plugin-chatbot/src/useAiApprovalsTranslation.ts:131InboxTranslatepackages/plugin-detail/src/ActivityTimeline.tsx:49ActivityTranslatepackages/plugin-detail/src/PointInTimeRestore.tsx:37RestoreTranslatepackages/plugin-detail/src/RecordComments.tsx:25CommentsTranslatepackages/plugin-grid/src/useColumnSummary.ts:131SummaryTranslateTen of the eleven are byte-identical after the name; the eleventh (
usePublishAllDrafts) differs only in the parameter's name.Why this is a separate card, and why no gate reports it
scripts/__tests__/one-authority-per-exported-name-6273.test.tsis the recurrence guard for the objectui#6172 甲/A1 ruling, and it is doing exactly what it says: it reports a NAME carrying two authorities. Both of its stated bounds exclude most of the rows above, deliberately —⇒ its instrument cannot see this population, and its baseline never will. This is not a defect in that gate and ⛔ not a request to widen it — its header already states "what the instrument cannot see". It is the observation that the collision it does report (
TranslateFn) is the visible tip of a wider one.What objectui#8165 could and could not do about it
objectui#8165 re-pointed
saveAdvisoryToast.tsatwriteWarningToast.tsand shrank the baseline entry by that site. It stopped atpackages/fields/src/widgets/file-size-guard.ts, because the re-export remedy is dependency-illegal there:@object-ui/app-shellDEPENDS ON@object-ui/fields, so pointing fields at app-shell is a package cycle, and the name is on neither package's published face, so there is nothing to import either.⇒ retiring the remaining copies means moving one declaration DOWN into a package they all depend on. Measured: all five packages above depend on
@object-ui/i18n; four of the five depend on@object-ui/types(@object-ui/plugin-detaildoes not). So@object-ui/i18nis the only candidate home reachable from every site today.Refs: objectui#8165 (the
TranslateFncollision this was measured beside) · objectui#6172 (the one-authority ruling) · objectui#6349 (the name-collision batch) ·scripts/__tests__/one-authority-per-exported-name-6273.test.tsGenerated by Claude Code