Uh oh!
There was an error while loading. Please reload this page.
docs(devx): correct the stale collector claim on the js-comment-mask entry - #13140
Merged
Conversation
…entry The `@objectstack/cli` entry's rationale still claimed in the present tense that this gate did NOT demand the js-comment-mask declaration, and that a relative import specifier escaping the package is not one of the spellings its literal collector knows. #10452 made both false: the collector reads escaping relative specifiers and resolves them, so the pair is demanded rather than volunteered. Comment-only. Four other sites in the same file (#10452 at the client entry, the translation.zod.ts entry, the dogfood ledger trio, and the filing note four lines below this one) already describe the post-#10452 truth; this aligns the one residue with them and keeps the history the neighbouring sites carry. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CPrUz21stTFhJRUirdc4yw
os-elon
marked this pull request as ready for review
August 29, 2026 06:41
os-elon
enabled auto-merge
August 29, 2026 06:41
Contributor
⛔ merge queue 构建失败 — 先分诊,再决定要不要重排队列构建 33240915666 红了。队列跑的是全量套件(PR 侧 CI 只跑 affected 子集), 失败的 job(日志抽取,best effort):
跨 PR 相同签名(24h,按失败测试文件聚合):
历史信号:
分诊清单:
Generated by Claude Code · merge-queue-triage workflow (#4859) |
github-merge-queueBot
removed this pull request from the merge queue due to failed status checks
Aug 29, 2026
Uh oh!
There was an error while loading. Please reload this page.
This was referenced Aug 29, 2026
Merged
os-zhuang
approved these changes
Aug 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#12934
Comment-only correction to one entry's rationale in
scripts/cross-package-test-inputs.mjs. One hunk, zero non-comment lines changed.What was wrong
The
@objectstack/clientry's rationale for declaring thejs-comment-mask.mjspair claimed, in the present tense, that this gate "did NOT demand the declaration" and that a relative import specifier escaping the package "is not one of the spellings it knows". #10452 made both false, and the rationale was never re-read against it.That claim is load-bearing in the direction that costs something: it tells the next author an import-only coupling is a hand-maintained courtesy the gate will not ask for, which is the belief this gate exists to make unnecessary (#7802).
What it says now
Past-tensed as history, then corrected, naming #10452 as the point the behaviour changed. Deliberately not deleted: before #10452 the gate genuinely did not demand it, and that history is what the neighbouring sites in this file carry.
The correction is verified against the gate, not against its neighbours
Two comments agreeing with each other is not evidence about behaviour, so the claim was reproduced on a scratch mutation, reverted after each leg. Both legs of the instrument are shown — the same gate returns zero and non-zero in this run:
Baseline (instrument can return zero) —
node scripts/check-cross-package-test-inputs.mjs --self-test && node scripts/check-cross-package-test-inputs.mjs, exit 0:Leg A — undeclared package. One escaping relative import specifier added to
packages/objectql/src/action-activation.test.ts(a package with no declaration). Mutation proved on disk before the reading: injected-marker count 1, blob hash moved1232bb3ftoa936970f. Gate exit 1:Leg B — declared package, path not covered. The
@objectstack/runtimeentry'sscripts/js-comment-mask.mjsglob deleted, its.d.mtssibling left in place. Mutation proved on disk: glob-line count 10 to 9, blob hash movede5d5da04to310e2c89. Gate exit 1:Leg B is the one that settles the wording: the gate resolves the escaping relative specifier to a repo-relative path and attributes it to the importing test. It does not merely see the spelling.
Restore proved on both legs by observation, not by exit code: worktree clean and each file's hash back to its HEAD blob.
One refinement of the card's evidence, reported rather than written into the comment: the card says the gate "printed the exact
inputslist each one needed". Neither failure shape printed an inputs list here. Leg A points at the turbo.json inputs as a second step ("then run this gate again for the turbo.json inputs it requires") and Leg B says "Widen the package's globs to cover them". The inputs list belongs to the turbo.json limb, which fires once the globs are declared. The comment therefore claims only what was measured — that the gate names the resolved path and the test that imports it.Scope held
The four sites in this file that already describe the post-#10452 truth were read and left byte-identical (verified against
origin/main). The collector and every gate behaviour are untouched — this card owed prose and nothing else.Note for the reader locating these: the triage line numbers were from 2026-08-28 and three of the four have since moved by 30 lines. Located by content.
Verification
Gate family derived with
node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack. The first derivation printed STALE TREE and still exited 0; the branch was synced ontoorigin/mainand re-derived clean. All runs below are at commit9e5a9e873d, which is the branch tip.All 12 derived families green, each exit captured before any pipe:
check-ci-filter-parityandcheck-shard-attestationfirst answered exit 1 withPREREQUISITE NOT MET — the dependency yaml is not installed. That is not measured and is not a red gate; both are green above afterpnpm installin the worktree.Convention pair for a gate-script edit, both green:
scripts/pm/bare-root-worklist.mjs --self-test(exit 0) andpnpm check:pm-dispatch-gates(exit 0, "dispatch-gates self-test: 872 cases pass").check-test-completeness.mjsanswers a standalone run with exit 1 and a usage line. That is an invocation error, not a finding — the known shape recorded on #13110. Not treated as a failure and not touched here.No changeset, derived not asserted
check:published-filespasses and no packagefileswhitelist reaches repo-rootscripts/; the edited file is named only by the rootpackage.jsonscript wiring. The change ships to no consumer, so no changeset is owed andskip-changesetapplies.No ablation owed
Stated rather than manufactured: the diff changes zero executable lines, so there is nothing whose removal could move a test verdict. The mutation discipline was still applied in full to the two verification legs above, where it does bite.
Generated by Claude Code
Generated by Claude Code