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.
顺带记录一处已核准确、不需要动的地方,免得后来者重复排查:packages/types/src/form.ts:1076-1085 关于 previousValues 的注释把这条链路讲对了 —— 「faulting on an unbound root and failing OPEN — which let a user edit a locked field and have the change silently dropped on save」,正是本条要补上的那个后果。
Premise re-verified: objectui origin/main @ 99ba5fb — the unconditional "fails to evaluate ⇒ fail-open" sentence is still live in ADR-0036's Server enforcement section. objectstack origin/main @ 86e6f6c — rule-validator.ts:601 (unbound scope root treated as LOCKED, i.e. fail-closed) versus :606 (every other fault "change allowed through") confirms the sentence is now false for one readonlyWhen fault class, exactly as the card states.
Activity
claude commentedon Aug 9, 2026
Findings round — promoted:
finding→pm:queue.origin/main@99ba5fb— the unconditional "fails to evaluate ⇒ fail-open" sentence is still live in ADR-0036's Server enforcement section. objectstackorigin/main@86e6f6c—rule-validator.ts:601(unbound scope root treated as LOCKED, i.e. fail-closed) versus:606(every other fault "change allowed through") confirms the sentence is now false for one readonlyWhen fault class, exactly as the card states.fieldRules.ts的模块头自称 readonly fail-open「与服务端一致」——#4889 之后对未绑定根这一类已不成立(服务端是 fail-CLOSED) #3828 (the code-comment copy, closed via PR docs(core): fieldRules 模块头收窄 readonly fail-open 的「与服务端一致」断言 (#3828) #3887); no other open ADR-0036 card.本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
yinlianghui commentedon Aug 17, 2026
认领(objectui 车道分片 PM,会话
session_01GTRjn8xBqp75dk7kFupVRt,批次 19):branchclaude/issue-3888-adr36-failopen-sentence。按晋级评论方向 1 实施:ADR-0036 Server enforcement 段的无条件「fails to evaluate ⇒ fail-open」句收窄(readonlyWhen 未绑定根一类是 fail-CLOSED,引 objectstack#4889),并注记 ADR-0057 编号冲突;#3828 的代码注释副本已由 PR #3887 修正,本卡收掉最后一份未改副本。Generated by Claude Code
yinlianghui commentedon Aug 17, 2026
实施完成,草稿 PR #4952(会话
session_01GTRjn8xBqp75dk7kFupVRt,批次 19,branchclaude/issue-3888-adr36-failopen-sentence)。premise 成立。
:67-68那句仍在、仍是无条件写法。framework 行号按硬规重新定位 —— 卡片正文按fec784863写的:599-603/:604/:606-607与晋级评论按86e6f6c写的:601vs:606都已漂移;objectstackorigin/main@23abe2782的packages/objectql/src/validation/rule-validator.ts上是:未绑定根记treating the field as LOCKED在:607-611、return true(LOCKED)在:612;其他 fault 记failed to evaluate — change allowed through在:614、return false在:615;stripReadonlyWhenFields:530/delete :545,批量孪生:749/:780;requiredWhenfault 仍 fail-OPEN(记日志后continue)在:1695-1712。方向断言不变,仅位置更新。按方向 1 实施:概括 bullet 带上例外并指向新增的
### The one fail-CLOSED fault (objectstack#4889)小节;## Client enforcement (objectui)段的「the same posture as the server」同样收窄(它断言的是同一件事),并点明两端在这一格方向相反、附静默症状与排障方向,措辞与 PR #3887 的 docblock 对齐。requiredWhen(objectstack#4977)与visibleWhen复核仍准确,改为显式的非例外。ADR-0057 编号有两层,我只修了一层。 本仓撞号已按卡片处理(写明是 framework 编号,并指出本仓
0057-console-ai-chat-one-conversation-docked.md无关)。但顺手核验发现 framework 侧那个 D 锚点本身不可解:framework 的两份 ADR-0057 里都没有内容对得上的 D10(ERP authorization 那份:422的 D10 是 "Setup-nav surfacing follows the capability";system-data-lifecycle 那份没有任何 D 编号决策,用 P0–P4),而 20 个 framework 文件 + 一条adr-anchors/invariant 骑在这个锚点上。规则本身是真的、代码自证,不成立的只是锚点 —— 所以本 PR 把引用写成归属式(「framework 的 rule-validator / lint 诊断 / QA runner 都这么引」)而非断言锚点可解:本卡的要点就是不要在权威记录里保存查不实的断言,在同一次改动里新种一个会很讽刺。已另立 objectstack#9255(观察类,finding,未认领未定级),本 PR 不修。验证(文档类正向判据):control-bytes 门 + 门外自扫、
check-doc-links(13 scan roots 全绿,docs/**在其扫描面内)、check-doc-component-types、两个 changeset 门,仓根turbo run type-check --concurrency=2在 flock 下 81/81。零代码改动,故无新增测试 —— 每条新声称配一个 frameworkfile:line指针作为替代判据,明细在 PR 正文。Generated by Claude Code
docs(adr): ADR-0036 服务端 fault 策略收窄,未绑定根一类是 fail-CLOSED (objectstack-a…