Skip to content

docs(platform-objects): correct the vitest config's trailing effect claim - #16911

Merged
os-musk merged 1 commit into
mainfrom
claude/issue-16189-platform-objects-vitest-config-comment
Sep 8, 2026
Merged

docs(platform-objects): correct the vitest config's trailing effect claim#16911
os-musk merged 1 commit into
mainfrom
claude/issue-16189-platform-objects-vitest-config-comment

Conversation

@os-musk

@os-musk os-musk commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Fixes #16189

Clause-②: no

One comment, at the end of packages/platform-objects/vitest.config.ts. No code changes.

The card asserts two sentences are false — each was judged separately

Read on the worktree at 44c849c7d6 (= origin/main tip at fetch time). ⛔ Not accepted as a package.

claim standing in the file verdict the reading
"No test block" FALSIFIED lines 7-15 are a test block
"keeps this file's only effect the alias above" FALSIFIED that block sets disableConsoleIntercept: true — a second effect
"Leaving discovery untouched" STILL TRUE zero include / exclude / dir keys anywhere in the file
the include argument (narrowing it would silently drop cases while the gate went green) STILL TRUE and load-bearing vitest list --filesOnly discovers 37 files under this config, the affordance sweep among them

⭐ The two surviving clauses are kept intact and now stand on their own. Flattening the paragraph would have destroyed the include constraint, which is the half the card itself asked to preserve.

The code the replacement sentence describes, quoted from the current tree:

  test: {
    disableConsoleIntercept: true,
  },

That is the whole test block — one key, and not a discovery key.

The fossil agrees with the card

The commit that introduced the sentence (#7934 / PR #8314) records why it said what it said:

This package had no vitest.config.* at all, so the fix is the package's first one. It carries the alias and nothing else: no test block, so suite discovery stays on the vitest defaults it ran on before (17 files / 351 tests, unchanged) and this file's only effect is the resolution.

So both halves were true as written. They were falsified in place by d890f2fdeb (#10374 / PR #13522), which inserted the test block above them and left them standing — the diff touches only lines 4-15 and never the trailing paragraph.

⚠️ The triage comment's "both strings are gone from main" was a false negative

The triage round reported 0 hits for both quoted sentences and advised the claiming seat to verify and very likely just close the card. Re-measured, that instrument was reporting artifacts, not absences:

git grep -F 'No test block'            -> 0    # the file writes it with backticks
git grep -F 'No `test` block'          -> 1
git grep -F 'only effect the alias'    -> 0    # the phrase is split across a line wrap
git grep -F 'effect the alias above'   -> 1

Line-based grep cannot see a phrase that wraps, and the backticks defeat the literal. The card's premise was live the whole time. Had it been closed on that reading, the stale sentence would have stayed.

Evidence — per-sentence absence check

Measured on the file's comment prose (// stripped, whitespace collapsed, case-folded), so a line wrap cannot hide a phrase. Both sides in the same run, each with controls proving the instrument answers both ways:

probe at 44c849c7d6 (before) worktree (after)
A — removed claim "no `test` block" 1 (fires) 0
B — removed claim "only effect the alias above" 1 (fires) 0
C1 control — kept clause "narrowing `include` here would silently drop cases" 1 1 (survives)
C2 control — never-present phrase 0 0
C3 control — disableConsoleIntercept: true, in the raw source 1 1 (untouched)

C1 and C3 answer ≥1 and C2 answers 0 in the same run, so the two zeros in column three are real absences.

⚠️ First attempt at this diff quoted the retired sentence verbatim, and the check caught it: A and B still read 1. A future census grep — exactly the kind that nearly closed this card — would have landed straight back on this file. The retired wording is now paraphrased, not quoted, and the comment says so.

Ablation: inapplicable. This diff adds no guard, so there is nothing to disarm. ⛔ No ablation was invented to fill the slot.

Changeset: route 2 (skip-changeset label), measured

The floor sentence, read on the worktree at 44c849c7d6, AGENTS.md:1036 (⚠️ the line differs on other trees):

A bug fix in a released package takes a patch changeset — never none, and ⛔ never skip-changeset: that label is for a diff that publishes nothing from any released package.

Measured against that carve-out, rather than assumed — this package does carry comment text into published output, so the probe needed a firing control:

probe result
CONTROL — a src JSDoc that reaches dist 6 dist files — fires
text from the touched file, 4 phrases 0 dist files each
npm pack --dry-run — 69 tarball entries vitest.config.ts ABSENT; control dist/index.d.ts present

⇒ This diff publishes nothing from any released package. ⛔ Not an empty changeset.

Verification

Everything below ran on the final commit 46ad903292, on a settled tree. Heavy runs went through scripts/pm/os-verify-lock.sh; verdicts are quoted from the lines the tools printed, ⛔ never a bare $?.

run verdict
pnpm --filter @objectstack/platform-objects test Test Files 37 passed (37) · Tests 545 passed (545)VERDICT command-exit 0
pnpm --filter @objectstack/platform-objects typecheck VERDICT command-exit 0; check:test-typecheck: OK
vitest list --filesOnly 37 files discovered, incl. src/managed-api-method-affordance-sweep.test.ts
dependency closure + full pnpm build Tasks: 73 successful, 73 total
40 derived gate commands 40 exit 0

⚠️ Two gates first answered exit 3 = PREREQUISITE NOT MET, which is NOT MEASURED and ⛔ not a pass. Both named their closure; a full build cleared it and both were re-run to a real verdict:

  • check:dual-build-cjs-loads — now EXIT=0, "104 published require entry point(s) across 67 package(s) load"
  • check:i18n — now EXIT=0, "OK (9 package(s) — all bundles in sync)"

Coverage reconciliation, verbatim (⚠️ this is COVERAGE, not verdicts — verdicts are the table above):

Run reconciliation — 40 derived, 40 run, 0 NOT-MEASURED, 0 UNRUN.
✓ dispatch-gates --ran: 40 derived famil(ies) accounted for — 40 run, 0 NOT-MEASURED.

Repo-wide lint: a declared narrowing, with its three readings

pnpm lint is CI's whole-farm run. Narrowed here to the one touched file, and the narrowing is measured rather than asserted:

  1. Population, read from eslint itselfeslint --print-config on the path resolves 6 active rules (comment-swallow/no-code-inside-block-comment, no-restricted-imports, no-restricted-syntax, query-options/no-any-erasure, slot-lookup/no-any-assignment, verify-stand-in/no-asserted-driver-argument). Not my guess.
  2. File count, from --format json — 1 file linted, errorCount 0 / warningCount 0.
  3. Invariance for untouched fileseslint.config.mjs records, in its own words, that this repo "runs one eslint.config.mjs, which never enables type-aware linting (no parserOptions.project, no typed @typescript-eslint rules) for ANY file". With no type-aware linting and eslint.config.mjs untouched, a one-file comment diff cannot move any untouched file's verdict.

⚠️ Non-vacuity was not assumed: two candidate controls stayed silent (they targeted rules this config does not enable), so a third was built against a rule that is resolved for this path — a restricted @objectstack/spec root import — and it reported 1 error. The green is a measurement, not a silence.

验收备注

  • Census, reported and ⛔ not swept in. packages/cloud-connection/vitest.config.ts carries the same paragraph with the same two dead claims, above the same disableConsoleIntercept: true block (its lines 7-15 vs. the comment at 45-48). ⛔ Out of this card's scope and left untouched; it is in the report for the PM to route.
  • The population floors "76 object files / 51 in-scope / 9 packages" are carried over unchanged, not re-measured here. They are consistent with the sweep test's own header, which records the same three numbers against assertions of ≥70 / ≥45 / ≥6.
  • Collision fences honoured: packages/metadata-protocol/src/protocol.ts and packages/spec/src/contracts/scoped-context.ts are untouched — the diff is one file.
  • The worktree was clean when created: no predecessor work to recover. A clean negative, stated as a reading.

🤖 Generated with Claude Code

https://claude.ai/code/session_01ADLdAs2pVcH17h9tZKWMBg


Generated by Claude Code

…laim

The trailing comment opened "No `test` block" and closed "this file's only
effect the alias above". Both were true as written (#7934/#8314): the file was
this package's first vitest config and carried the alias and nothing else, as
its own commit message records — "It carries the alias and nothing else: no
`test` block".

Both were falsified in place when the console-intercept disarm landed ABOVE
them and left them standing (#10374/#13522). Measured on 44c849c: the file
opens with a `test` block whose one key is `disableConsoleIntercept: true`, so
there IS a test block and the alias is NOT the only effect.

The load-bearing half of that sentence is kept intact and now stands on its
own: discovery is still untouched (zero `include`/`exclude`/`dir` keys in the
file), and narrowing `include` here would still silently drop cases while the
gate this file answers went green.

The retired wording is paraphrased rather than quoted, so a census grep for the
old phrasing does not land back on this file.

Config-only, publishes nothing: the file is absent from the package tarball and
its text reaches zero dist files, while a control src JSDoc reaches six.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ADLdAs2pVcH17h9tZKWMBg
@github-actions github-actions Bot added the size/s label Sep 8, 2026
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

⚠️ 1 changed file(s) yielded no anchor (packages/platform-objects/vitest.config.ts), so the pages documenting them are NOT COVERED by this run — this is not a clean bill of health for those files. Nothing else in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 1 changed package(s)).

What this run could not see
  • 1 changed file(s) yielded no anchor (packages/platform-objects/vitest.config.ts) — pages documenting those are invisible to this run
  • a page that states a rule by its inputs shares no identifier with the emitter that implements the rule, so an emitter-only diff cannot list it — not on this run and not on any run. Measured on fix(driver-sql): emit varchar(maxLength) for a text field a declared index keys on #11430: content/docs/protocol/objectql/types.mdx documents the text-family column mapping by the ObjectQL type names it maps FROM (text / textarea / html) while the diff changed createColumn; it went unlisted, and it was the page that diff falsified, in four places. No shared token exists to detect this on, so a rule your change carries has to be re-read by hand in the pages that restate it.

Coarse fallback — 2 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): node scripts/docs-audit/affected-docs.mjs --json 0939ba008b1f8c4417d219bd3b89c7c0468d035epackageMentionDocs.

@os-musk os-musk added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Sep 8, 2026 — with Claude
@github-actions github-actions Bot added the tests label Sep 8, 2026
@os-musk
os-musk marked this pull request as ready for review September 8, 2026 18:27
@os-musk
os-musk enabled auto-merge September 8, 2026 18:27
@os-musk
os-musk added this pull request to the merge queue Sep 8, 2026
Merged via the queue into main with commit fcddd15 Sep 8, 2026
39 checks passed
@os-musk
os-musk deleted the claude/issue-16189-platform-objects-vitest-config-comment branch September 8, 2026 18:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/s skip-changeset PR has no user-facing published change; bypasses the changeset gate tests

Projects

None yet

2 participants