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
Ruled: 5770444804 · letter A · 2026-09-22T02:40Z — batch #210 item 1 (Q1 A; Q2 ruled on #19620 as B); closed completed
Path: P2 | none | 对向事实 — 裁决批 #132 item 2 letter ② 的一句前提被实测推翻
⏱️ Filed by the domain:spec execution seat 2 (session session_01UDXER3sdqfeVYpEWZs5mZx) at 2026-09-21T14:40Z, under the standing clause: 裁决明令的动作实施中测出对向事实 ⇒ 照字面执行,冲突立成 needs-user-decision 卡,该 PR ⛔ 不挂 auto-merge 留异议窗口. PR #19600 is therefore ⛔ NOT enqueued and ⛔ NOT auto-merged pending your word.
⛔ The ruled DIRECTION was executed literally and is not in question. Two linked questions follow from one measurement.
The measurement — first-hand, ⛔ not adopted from any review record
Ruling ② (comment 5653315643 on #15178, decision batch #132 item 2) item 4 reads: 「a per-app bundle carrying settingswas inert, so the conversion drops the group and records a note; no deprecation window」.
「Inert」 is still false —— 那个键确实生效、确实被服务。但它做的事不是覆盖:
Question 1 — does the corrected fact reopen 「no deprecation window」?
The ruled remedy is unchanged either way; what moves is how visible the removal is.
A. Keep the ruling as issued. 「Inert」 was a supporting belief, not the subject; the subject is the namespace separation. The shipped records (ADR-0087 entry, conversion docblock, changeset) are written on the MEASURED reason rather than reciting the false one, which is already done on the branch. — seat's lean, and the dev's
B. Re-rule item 4 on the corrected fact, because 「no deprecation window」 (「创业阶段不渐进」) was decided against a belief that nothing would visibly change.
⭐ 本次重写把天平推向 A。 初版基于「覆盖」时,删键意味着所有这么用的部署屏幕文案回到平台版本;实测之后,两边都有的键根本不变,只有 app 独有的键回落到 manifest 的英文字面量。可见面比初版小得多,所以 B 的理由也比初版弱。
Question 2 — the refusal reaches one door and not the other
From the moment #19600 lands, packages/spec declares settings platform-only on the file-authored bundle, while TranslationItemSchema — the Studio metadata door — still accepts it.
C. Rule the item door deliberately OPEN — platform settings copy IS admin-overridable at runtime by design — in which case the file door's refusal owes a sentence saying so, rather than reading as an oversight.
Ruled: 5770444804 · letter A · 2026-09-22T02:40Z — batch #210 item 1 (Q1 A; Q2 ruled on #19620 as B); closed completed
Path: P2 | none | 对向事实 — 裁决批 #132 item 2 letter ② 的一句前提被实测推翻
⏱️ Filed by the
domain:specexecution seat 2 (sessionsession_01UDXER3sdqfeVYpEWZs5mZx) at 2026-09-21T14:40Z, under the standing clause: 裁决明令的动作实施中测出对向事实 ⇒ 照字面执行,冲突立成needs-user-decision卡,该 PR ⛔ 不挂 auto-merge 留异议窗口. PR #19600 is therefore ⛔ NOT enqueued and ⛔ NOT auto-merged pending your word.⛔ The ruled DIRECTION was executed literally and is not in question. Two linked questions follow from one measurement.
The measurement — first-hand, ⛔ not adopted from any review record
Ruling ② (comment
5653315643on #15178, decision batch #132 item 2) item 4 reads: 「a per-app bundle carryingsettingswas inert, so the conversion drops the group and records a note; no deprecation window」.「Inert」 is still false —— 那个键确实生效、确实被服务。但它做的事不是覆盖:
kernel:ready),两边都定义的键mailapp_only_ns机制:
packages/core/src/kernel.ts先 Phase 2「Start plugins」再 Phase 3kernel:ready;AppPlugin.start()直接调loadTranslations(无 hook),而service-settings把自己的loadTranslations包在kernel:ready钩子里;deepMerge把叶子给后到的那一份。⇒ 应用包里的
settings是一个补缺者(gap filler):只在平台包对那个 key、那个语言没有字符串时才显示。Question 1 — does the corrected fact reopen 「no deprecation window」?
The ruled remedy is unchanged either way; what moves is how visible the removal is.
⭐ 本次重写把天平推向 A。 初版基于「覆盖」时,删键意味着所有这么用的部署屏幕文案回到平台版本;实测之后,两边都有的键根本不变,只有 app 独有的键回落到 manifest 的英文字面量。可见面比初版小得多,所以 B 的理由也比初版弱。
Question 2 — the refusal reaches one door and not the other
From the moment #19600 lands,
packages/specdeclaressettingsplatform-only on the file-authored bundle, whileTranslationItemSchema— the Studio metadata door — still accepts it.⭐ 这一问被实测加强了,不是削弱。 两道门的机制不同:Studio 那道门经
authored-translation-sync的replaceAuthoredTranslations写进一个独立图层,getTranslations以deepMerge(static, authored)服务、authored 作 source ⇒ 不论启动顺序,authored 恒胜。也就是说:本 PR 关掉的那道门只能补缺,而真能覆盖平台文案的那道门还开着。settingsleavesTranslationItemSchema, its liveness row goes, the D2 conversion learns the item shape, and the accept-set narrowing is declared a second time. — the dev's lean, strengthened by the measurement above; the file's own docblock records that retiring at one door and not the other is the asymmetry i18n: two unbridged bundle shapes — file-authoredobjects.<name>vs the runtimetranslationmetadata type'so.<object>, so translations cannot be authored in the product #3778 got wrong维护者速读
发生了什么 — 你在批 #132 裁的「把翻译包拆成平台包和应用包」已按字面实现,PR #19600 在飞。执行时实测发现裁决里的一句依据不成立:原话说应用包写
settings是「没用的」,实际上它生效。为什么还要问你 — 方向不受影响,但两处跟着动:①「不做渐进弃用窗口」当初是基于「反正没影响」决定的;现在的实测是「影响比原先说的小得多,但不是零」—— 只有平台没翻译的那些键会回落到英文字面量。②这次只堵了文件那道门;Studio 那道门还开着,而实测表明那道门才是真能覆盖平台文案的,绕一下就到。
风险与代价 — ①选 A 零成本(记录已按实测原因写好);选 B 要补窗口、延后落地,而实测把 B 的理由削弱了。②选 A 零成本、留一张后续卡;选 B 是第二次收窄加一次账本编辑,是决策不是实现;选 C 只要补一句话。
你要做的 — 两个字母即可:Q1 选 A 还是 B;Q2 选 A、B 还是 C。
Generated by Claude Code