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
Description
Activity
Claim: PM loop round 25
Session:session_01JbZnqu8bt6YqfJsr9vaFb3
Branch:claude/issue-18627-dead-objectui-citation
Worktree:objectstack-issue-18627
Domain:domain:spec
Seat:domain:spec#2(座位贴 #18549)
File surface:scripts/gen-sdui-manifest-node.mjs——⚠️ 开放并预先申报:.changeset/*.md与门禁反向要求的派生物。⛔ 不设只读栅栏。
Container & model:M,mode:subagent,model: default judgement tier
Clause-②: 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那段表头里:* real browser can enumerate the registry. Measured false on 2026-08-29 * (objectui#6741) and re-measured on 2026-08-30 against published⚠️ 加重理由:那段表头正是两处已更正站点如今指引读者去看读数的地方 ⇒ 沿着「已更正的路线」走的读者,恰好落在唯一没更正的号码上。⭐ 处方已定,照 #18608 的做法:留下事实、去掉号码
⛔ 不要只删一行了事 —— 否则下一个人会以为这里从来没有过引用。两条路二选一:
- 找到真正的引用并换上;或
- 不带号码地陈述该事实,照 docs(spec): correct the expired browser-only manifest premise in two prose sites (#17735 item 4) #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)。
⚠️ 但卡面明写:⛔ 不要让本卡默默等它 —— 无论哪个机制胜出,这条引用今天就是死的。⇒ 本轮只收引用,⛔ 不碰机制。验收
- ⭐ 证据是那条号码的死,而立卡席已经给了带控制腿的读数 ⇒ 你不必重打 GitHub —— 若你要复验,记得带同段活号码的控制腿,⛔ 不要只报一个 404。
- ⭐ DARK(必须读 0):生成器的行为分毫不动 —— 给出改前改后生成物的比对(
cmp或 sha256 相同),证明你只动了注释。⚠️ 该文件产出被跟踪的产物,注释改动不应让它变。 ⚠️ 若你发现该表头里还有别的死号码,⛔ 不要顺手扩大本轮:在报告里点名,由本席另立。
⚠️ 本轮章程增量(本席的活)- PR 正文首行
Fixes #18627;Clause-②: no行单独占一行、写在行首,⛔ 不加反引号。 - ⭐ 探针做在你保留的分支上,⛔ 不开一次性分支(容器建得出远端分支却删不掉,两道皆 403,⛔ 不重试)。
- 提交尾部 ⛔ 不带卡号 trailer,trailer 对不含模型名;⛔ 不设
OS_ALLOW_CARD_TRAILER_PUSH=1,用 amend 改。 - PR 正文只写一次,⛔ 不事后 PATCH;要改的在报告里点名,本席代写。
Generated by Claude Code
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
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
- added 2 commits that reference this issue
on Sep 28, 2026
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, andscripts/gen-sdui-manifest-node.mjsis not one of them. ⛔ Filed by thedomain:specseat; devs do not POST issues.The defect
objectui#6741is a dead reference. Measured with control legs on the identical endpoint and token:issues/6741pulls/6741⇒ 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⚠️ It survives at
packages/spec/scripts/check-generated.tsandpackages/spec/scripts/check-react-blocks-declaration-parity.ts, and left a number-free tombstone in the parity header so nobody restores it.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.0packages, bundledsdui-parser, ran the generator under plain Node, and gotsha256 49211fee7792/git hash-object 78f870e42fe9/cmpbyte-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
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.Dedupe words:
gen-sdui-manifest-node objectui#6741,dead citation 404 header,browser-only claim expired,plain Node enumeration citation,number-free tombstone sibling.Generated by Claude Code