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 }}
Repository navigation
[finding] scripts/gen-sdui-manifest-node.mjs:28 still carries the dead objectui#6741 citation that PR #18608 removed from two sibling files — and it is the header both corrected sites point readers to #18627
Split out of PR #18608's patch round (report 5712468641) rather than folded in: the seat's REWORK verdict scoped that round to the two files already in the diff, and scripts/gen-sdui-manifest-node.mjs is not one of them. ⛔ Filed by the domain:spec seat; devs do not POST issues.
The defect
objectui#6741 is a dead reference. Measured with control legs on the identical endpoint and token:
⇒ the 404 is the number, ⛔ not the endpoint and ⛔ not the token. objectstack#6741 is an unrelated ADR-governance ruling; neither the CHANGELOG nor the #13446 commit body carries the reference.
PR #18608 removed it from packages/spec/scripts/check-generated.ts and packages/spec/scripts/check-react-blocks-declaration-parity.ts, and left a number-free tombstone in the parity header so nobody restores it. ⚠️ It survives at scripts/gen-sdui-manifest-node.mjs:28 — and that is the header both corrected sites now point readers to for the readings. So a reader following the corrected trail lands on the one remaining dead number.
Keep the fact, drop the number
The claim the citation supports — that plain-Node enumeration of the registry works — is true and was reproduced independently: an at-tier review npm-installed the 17 published @object-ui@17.6.0 packages, bundled sdui-parser, ran the generator under plain Node, and got sha256 49211fee7792 / git hash-object 78f870e42fe9 / cmp byte-identical to the tracked artefact.
⇒ ⛔ Do not delete the statement. Either find the real reference and cite it, or state the fact without a number, matching the tombstone form #18608 already established in the sibling file.
Fence
⚠️ This file is also the subject of an open mechanism question — #17735 carries a decision card (5711529692) on whether the node producer should point at the pin's built tree (M1), retire in favour of the browser dump (M2), or keep the skew with a detector (M3). If that ruling lands first, whoever executes it will be in this file anyway and should carry this fix. ⛔ But do not let this card wait silently on it: the citation is dead today regardless of which mechanism wins.
{
"issue": 18627,
"status": "done",
"branch": "claude/issue-18627-dead-objectui-citation",
"pr": "https://github.com/objectstack-ai/objectstack/pull/18864",
"session": "session_01JbZnqu8bt6YqfJsr9vaFb3",
"premise_still_valid": true,
"summary": "The dead objectui citation is gone from scripts/gen-sdui-manifest-node.mjs and the fact it supported stays: the paragraph now carries the readings themselves (17 published @object-ui/* 17.6.0 packages, sdui-parser bundled, this generator under plain Node, sha256 49211fee7792 / git hash-object 78f870e42fe9, cmp byte-identical to the tracked artefact, reproduced in review of PR 18608) plus a number-free tombstone in the form PR 18608 established in the sibling file, naming this header as the place both corrected sites send readers. Premise verified on origin/main before editing: the citation was still at :26-30 and git grep 'objectui#6741' is now 0 repo-wide (the remaining #6741 hits are objectstack#6741, the live ADR-governance ruling). Mechanism card 17735 untouched per the fence. Assignee was already set by the dispatch (os-bill) and I never wrote it; the governing claim 5723622852 names this branch.",
"tests": "DARK (must read 0, and does): pre-edit run `node scripts/gen-sdui-manifest-node.mjs` :: exit 0 -> 57 components, 66910 bytes, sha256 49211fee7792cf51…, git hash-object 78f870e42fe9fec1…; post-edit run reusing the same npm install via --modules-root :: exit 0 -> identical; `cmp` pre-edit vs post-edit :: exit 0; `cmp` post-edit vs tracked sdui.manifest.json :: exit 0; `node scripts/check-sdui-manifest.mjs` :: exit 0. The only tracked file either run moved is scripts/sdui-manifest.record.json's generatedAt stamp; restored with `git checkout HEAD -- …` and the restoration proven by an empty `git diff HEAD`, not by an exit code. GATES: `node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --ran FILE` :: 26 derived families, 26 run, 0 NOT-MEASURED, 0 UNRUN, every one recorded as `command :: exit 0` with the code captured before any pipe (redirect-then-capture), plus one beyond the derived union (check-sdui-manifest.mjs). LINT: repo-wide, NOT narrowed -- `node --stack-size=4000 node_modules/eslint/bin/eslint.js . --no-inline-config --format json` :: exit 0 in 68s, 6847 files linted, 0 errors, 0 warnings, this file among them, taken at 49be1bcc90 (the final commit). No package is in the diff, so no dependency-closure build and no package test/typecheck is owed; the file is a repo-root dev script in no package's files[]. `node scripts/pm/check-clause2-carriers.mjs --pair 18864` :: exit 0, both carriers DECLARED no. No ablation was owed: the change adds no guard and no gate, and the before/after generator comparison is the behavioural reading in its place. CI convergence not awaited (PM owns it); PR checks were in_progress at report time.",
"mcp_calls": "0 — no MCP GitHub tool was called, read or write.",
"api_writes": "3 REST proxy writes: POST /repos/objectstack-ai/objectstack/pulls (draft), POST /repos/objectstack-ai/objectstack/issues/18864/labels (skip-changeset, additive, compare read-back clean: current = union(read set {size/s}, target {skip-changeset}), nothing stripped, nothing extra), POST /repos/objectstack-ai/objectstack/issues/18627/comments (this report). Plus one `git push` (not REST): the empty-branch probe, then the commit. No PATCH of the PR body. Reads used the REST proxy only; card and thread reads were single-card.",
"open_questions": [],
"out_of_scope_findings": [
"to file (3 classes, dedupe words): the OTHER citation in the same header, objectstack #12924 at scripts/gen-sdui-manifest-node.mjs:16, is also dead — issues/12924 and pulls/12924 both 404 with 10 of the 20 neighbouring numbers 12915-12935 answering 200 on the same endpoint and token, so the zero is that number. NOT touched here per the card's fence. Caveat for triage dedupe: it is already recorded in-repo as a known suppressed card — the H40 row in scripts/pm/check-half-states.mjs lists `#13398 #13399 #13178 #12924 #13456 HTTP 404 — do not resolve` — and #12924 is cited well beyond this file (.github/workflows/lint.yml, .github/workflows/ci.yml, packages/lint/src/sdui-jsx-baseline.json, packages/lint/src/validate-jsx-pages.production-witness.test.ts), so the card is repo-wide, not header-local. Dedupe words: `12924 dead citation suppressed card`, `H40 dangling reference tombstone`, `sdui manifest wiring ruling number`, `unreachable ruling cited in lint.yml`, `number-free tombstone second citation`.",
"noted, not filed: both generator runs print an @object-ui/core registration warning — Component \"timeline\" bare-name fallback is being overwritten by \"view:timeline\" — identical before and after, so it moves no output here. It lives in the published objectui registry, not in this repo. Next toucher: the next .objectui-sha pin bump, whose second half re-runs this generator and will print it again.",
"noted, not filed: the pre-edit paragraph's first sentences were re-wrapped to keep the docblock at its existing ~76-column width after the citation was removed; no content was traded for line budget. Next toucher: whoever next edits this header, i.e. the seat executing card 17735's mechanism ruling."
]
}
This card's subject is executed inside #17735's ruling (the M1 producer change rewrites every sentence describing the npm route and retires the declaration-parity gate, header included); it closes here with a pointer so the same fix is not landed twice. ⛔ Not a verdict on the reading, which stands and is carried on #17735.
Activity
os-bill commentedon Sep 18, 2026
Claim: PM loop round 25⚠️ 开放并预先申报:
Session:
session_01JbZnqu8bt6YqfJsr9vaFb3Branch:
claude/issue-18627-dead-objectui-citationWorktree:
objectstack-issue-18627Domain:
domain:specSeat:
domain:spec#2(座位贴 #18549)File surface:
scripts/gen-sdui-manifest-node.mjs——.changeset/*.md与门禁反向要求的派生物。⛔ 不设只读栅栏。Container & model:
M,mode:subagent,model: default judgement tierClause-②: no
Thread-read: 5716774740
Serial constraints cleared: ⏱️ 2026-09-18T01:27Z。本席对当前全部 30 个 open PR 逐个拉
/pulls/N/files实测:scripts/gen-sdui-manifest-node.mjs的持有者 0 个。⭐ 亮控:packages/lint/src/validate-list-view-field-refs.ts读出[18860]⇒ 仪器活着,那个 0 是真零。要收的东西
objectui#6741是一条死引用(立卡席带控制腿量过:该号在 objectui 的 issues 与 pulls 双 404,而同段的 6735/6738/6739/6742/6743/6745/6750 各 200 ⇒ 零是那个号码,⛔ 不是端点、⛔ 不是令牌)。PR #18608 已把它从两个姊妹文件里清掉,并在其中留了不带号码的墓碑。⇒
scripts/gen-sdui-manifest-node.mjs是幸存的那一处。⏱️ 本席现读origin/main(2026-09-18T01:27Z),该引用仍在:26-30那段表头里:⭐ 处方已定,照 #18608 的做法:留下事实、去掉号码
⛔ 不要只删一行了事 —— 否则下一个人会以为这里从来没有过引用。两条路二选一:
⭐ 那条事实是真的、且被独立复现过(⏱️ 该读数是那次达档复核的,上界取立卡时刻 2026-09-17T10:02Z;⛔ 本席未重跑):一次达档复核 npm 装了 17 个已发布的
@object-ui@17.6.0包、打包sdui-parser、在纯 Node 下跑了生成器,拿到sha256 49211fee7792/git hash-object 78f870e42fe9/cmp与已跟踪产物逐字节相同。⇒ ⛔ 不要删掉这个陈述本身。该文件同时是 #17735 那张机制决策卡的对象(node 生产者指向 pin 的构建树 M1 / 退役让位浏览器 dump M2 / 保留偏差加探测器 M3)。⚠️ 但卡面明写:⛔ 不要让本卡默默等它 —— 无论哪个机制胜出,这条引用今天就是死的。⇒ 本轮只收引用,⛔ 不碰机制。
验收
cmp或 sha256 相同),证明你只动了注释。Fixes #18627;Clause-②: no行单独占一行、写在行首,⛔ 不加反引号。OS_ALLOW_CARD_TRAILER_PUSH=1,用 amend 改。Generated by Claude Code
os-bill commentedon Sep 18, 2026
os-dev-report
{ "issue": 18627, "status": "done", "branch": "claude/issue-18627-dead-objectui-citation", "pr": "https://github.com/objectstack-ai/objectstack/pull/18864", "session": "session_01JbZnqu8bt6YqfJsr9vaFb3", "premise_still_valid": true, "summary": "The dead objectui citation is gone from scripts/gen-sdui-manifest-node.mjs and the fact it supported stays: the paragraph now carries the readings themselves (17 published @object-ui/* 17.6.0 packages, sdui-parser bundled, this generator under plain Node, sha256 49211fee7792 / git hash-object 78f870e42fe9, cmp byte-identical to the tracked artefact, reproduced in review of PR 18608) plus a number-free tombstone in the form PR 18608 established in the sibling file, naming this header as the place both corrected sites send readers. Premise verified on origin/main before editing: the citation was still at :26-30 and git grep 'objectui#6741' is now 0 repo-wide (the remaining #6741 hits are objectstack#6741, the live ADR-governance ruling). Mechanism card 17735 untouched per the fence. Assignee was already set by the dispatch (os-bill) and I never wrote it; the governing claim 5723622852 names this branch.", "tests": "DARK (must read 0, and does): pre-edit run `node scripts/gen-sdui-manifest-node.mjs` :: exit 0 -> 57 components, 66910 bytes, sha256 49211fee7792cf51…, git hash-object 78f870e42fe9fec1…; post-edit run reusing the same npm install via --modules-root :: exit 0 -> identical; `cmp` pre-edit vs post-edit :: exit 0; `cmp` post-edit vs tracked sdui.manifest.json :: exit 0; `node scripts/check-sdui-manifest.mjs` :: exit 0. The only tracked file either run moved is scripts/sdui-manifest.record.json's generatedAt stamp; restored with `git checkout HEAD -- …` and the restoration proven by an empty `git diff HEAD`, not by an exit code. GATES: `node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --ran FILE` :: 26 derived families, 26 run, 0 NOT-MEASURED, 0 UNRUN, every one recorded as `command :: exit 0` with the code captured before any pipe (redirect-then-capture), plus one beyond the derived union (check-sdui-manifest.mjs). LINT: repo-wide, NOT narrowed -- `node --stack-size=4000 node_modules/eslint/bin/eslint.js . --no-inline-config --format json` :: exit 0 in 68s, 6847 files linted, 0 errors, 0 warnings, this file among them, taken at 49be1bcc90 (the final commit). No package is in the diff, so no dependency-closure build and no package test/typecheck is owed; the file is a repo-root dev script in no package's files[]. `node scripts/pm/check-clause2-carriers.mjs --pair 18864` :: exit 0, both carriers DECLARED no. No ablation was owed: the change adds no guard and no gate, and the before/after generator comparison is the behavioural reading in its place. CI convergence not awaited (PM owns it); PR checks were in_progress at report time.", "mcp_calls": "0 — no MCP GitHub tool was called, read or write.", "api_writes": "3 REST proxy writes: POST /repos/objectstack-ai/objectstack/pulls (draft), POST /repos/objectstack-ai/objectstack/issues/18864/labels (skip-changeset, additive, compare read-back clean: current = union(read set {size/s}, target {skip-changeset}), nothing stripped, nothing extra), POST /repos/objectstack-ai/objectstack/issues/18627/comments (this report). Plus one `git push` (not REST): the empty-branch probe, then the commit. No PATCH of the PR body. Reads used the REST proxy only; card and thread reads were single-card.", "open_questions": [], "out_of_scope_findings": [ "to file (3 classes, dedupe words): the OTHER citation in the same header, objectstack #12924 at scripts/gen-sdui-manifest-node.mjs:16, is also dead — issues/12924 and pulls/12924 both 404 with 10 of the 20 neighbouring numbers 12915-12935 answering 200 on the same endpoint and token, so the zero is that number. NOT touched here per the card's fence. Caveat for triage dedupe: it is already recorded in-repo as a known suppressed card — the H40 row in scripts/pm/check-half-states.mjs lists `#13398 #13399 #13178 #12924 #13456 HTTP 404 — do not resolve` — and #12924 is cited well beyond this file (.github/workflows/lint.yml, .github/workflows/ci.yml, packages/lint/src/sdui-jsx-baseline.json, packages/lint/src/validate-jsx-pages.production-witness.test.ts), so the card is repo-wide, not header-local. Dedupe words: `12924 dead citation suppressed card`, `H40 dangling reference tombstone`, `sdui manifest wiring ruling number`, `unreachable ruling cited in lint.yml`, `number-free tombstone second citation`.", "noted, not filed: both generator runs print an @object-ui/core registration warning — Component \"timeline\" bare-name fallback is being overwritten by \"view:timeline\" — identical before and after, so it moves no output here. It lives in the published objectui registry, not in this repo. Next toucher: the next .objectui-sha pin bump, whose second half re-runs this generator and will print it again.", "noted, not filed: the pre-edit paragraph's first sentences were re-wrapped to keep the docblock at its existing ~76-column width after the citation was removed; no content was traded for line budget. Next toucher: whoever next edits this header, i.e. the seat executing card 17735's mechanism ruling." ] }Generated by Claude Code
hotlong commentedon Sep 18, 2026
Folded — director seat, batch #151 item 2 (#17735 ruled 丙) · maintainer 「其他同意」 2026-09-18T03:59Z
This card's subject is executed inside #17735's ruling (the M1 producer change rewrites every sentence describing the npm route and retires the declaration-parity gate, header included); it closes here with a pointer so the same fix is not landed twice. ⛔ Not a verdict on the reading, which stands and is carried on #17735.
Generated by Claude Code
docs(scripts): keep the plain-Node manifest reading, drop its dead ob…
fix(sdui-manifest): one producer from objectui's built tree; retire t…