Skip to content

docs(drivers): retire the dissolved #5499 freeze claims at the 15 untriaged group-A sites - #13210

Merged
os-zhuang merged 2 commits into
mainfrom
claude/issue-13194-dissolved-freeze-residue-24
Aug 29, 2026
Merged

docs(drivers): retire the dissolved #5499 freeze claims at the 15 untriaged group-A sites#13210
os-zhuang merged 2 commits into
mainfrom
claude/issue-13194-dissolved-freeze-residue-24

Conversation

@claude

@claude claude Bot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Part of #13194

The #5499 investment freeze dissolved 2026-08-11. Evidence, quoted from the head note of packages/spec/src/data/aggregation-conformance.ts (the card's own cited source):

Every row is struck through: the maintainer lifted the #5499 investment freeze for driver-mongodb on 2026-08-11 and for driver-memory later the same day, and both cells were enrolled rather than argued.

This PR rewrites 17 of that card's 24 sites and deliberately leaves 7 untouched.

The 15 mechanical group-A sites landed first. The remaining 2 were NOT group-A shaped and were reported rather than rewritten, because each needed a judgement; both have since been ruled by the coordinator and are now applied here (see section 4). The 7 untouched sites are untouched because they are correct as they stand or belong to an undecided card.

1. The denominator, reproduced before anything was changed

Run in a fresh worktree at 33184fd29:

$ grep -rn 5499 packages --include=*.ts | wc -l
53
$ grep -c 'packages/spec/src/migrations/registry.ts' raw.txt     # GENERATED, excluded
5
$ grep -v '^packages/spec/src/migrations/registry\.ts:' raw.txt | wc -l
48
$ grep -v '^packages/spec/src/migrations/registry\.ts:' raw.txt | cut -d: -f1 | sort -u | wc -l
39
$ grep -v '^packages/spec/src/migrations/registry\.ts:' raw.txt | grep -v '#5499' | wc -l
0

48 hits, zero bare-number false positives — matching the card exactly. Confirmed as not-drift at both refs the card names, using the same exclusion:

ref hits files
33184fd29 (this branch's base) 48 39
39d5d8a60 (the card's ref) 48 39
56470d86b (the earlier card's ref) 48 39

The generated packages/spec/src/migrations/registry.ts is excluded explicitly by path in every command above, and pnpm --filter @objectstack/spec check:migration-registry confirms it is still current and unedited (see gates below).

One correction to the card, in the FILE count only. The card reports "48 hits / 40 files". The hit count is exact; the file count is 39 after the exclusion, stable across all three refs above. 39 + the 1 excluded generated file = 40, so this is the card's arithmetic and not a measurement that moved. The load-bearing number, 48, reproduces exactly.

The partition closes. The 24 accounted to the earlier card plus this card's 24 = 48, with no remainder.

2. What changed — 17 sites in 14 files

Each rewrite is past tense, dated, names the dissolution and its evidence, and KEEPS whatever the sentence was explaining. No reasoning was deleted.

# Site Was asserted Now
1 driver-memory/src/filter-refusal.ts:65 building per-aggregation filter eval "is not (#5499 freeze)" freeze dissolved; the build is UNCLAIMED, not forbidden — the refusal is still the honest answer for an uncompiled key
2 driver-memory/src/memory-aggregation-filter-refusal.test.ts:14 the freeze "rules out" the build-out "ruled out while it stood"; dissolved; refusal path remains this file's scope until someone claims it
3 driver-memory/src/memory-comparand-type-conformance.test.ts:11 "driver is under the #5499 investment freeze, so NOTHING here patches it" scope unchanged, but now resting on the DOOR (parseFilterAST) — the reason that actually survives
4 driver-memory/src/memory-driver-document-not.test.ts:223 "this package is inside the #5499 investment freeze" excuse LAPSED; direction is now #13166's / #13195's to settle, not this pin's and not a sweep's
5 driver-memory/src/memory-driver-document-not.test.ts:229 (describe title) ... — behaviour frozen (#5499) ... — divergence pinned, disposition open (#13166/#13195)
6 driver-memory/src/memory-driver.ts:412 "The #5499 freeze exception granted here is the limit door only" the #6577 exception is stated as past and scoped; since the freeze dissolved, SCOPE no longer holds the line — the identity-slice argument does
7 driver-memory/src/memory-like-pattern.test.ts:13 siblings refuse "because they have no arm and are in the #5499 frozen family" their refusal now rests on the missing arm ALONE
8 driver-memory/src/memory-tenancy-guard.ts:49 "Route A stays behind the #5499 investment freeze" Route A "sat behind" it; now unbuilt and owned by #6915 rather than blocked. Notes the maintainer ruling POSTDATES the dissolution (ruling 2026-08-12 vs dissolution 2026-08-11), so it is untouched by it
9 driver-memory/src/memory-tenancy-guard.ts:146 batch path is "investment in a driver whose capabilities are frozen (#5499)" now merely unasked-for; the package still advertises no supports.batchSchemaSync
10 driver-mongodb/src/mongodb-comparand-type-conformance.test.ts:20 "(#5499 freeze — nothing here patches the driver)" patching now UNCLAIMED rather than forbidden
11 driver-mongodb/src/mongodb-comparand-type-conformance.test.ts:171 "This driver stays frozen (#5499), so the silent edit is expected to persist" now an UNTRIAGED divergence rather than a frozen one — stated plainly that no card owns it
12 driver-mongodb/src/mongodb-icontains.test.ts:8 "this package is in the #5499 frozen family and its real-mongod suites are OPT-IN" the OPT-IN gate (#5517) is what actually carries the argument and is unaffected; the freeze is a dated parenthetical
13 driver-sql/src/sql-driver.ts:8524 (HOT FILE — see below) memory's half "stays open under the #5499 freeze" stays open; the freeze that explained it dissolved and nothing has claimed it since
14 plugin-dev/src/dev-plugin-security-enforcement-warning.test.ts:65 "a frozen driver under a retirement census (#5499/#5704/#6664)" census re-anchored to #5704/#6664, whose census it is; #5499 named as the INVESTMENT freeze that was never the census, and dissolved
16 driver-mongodb/src/test-mongod.ts:45 (ruled — see 4a) the freeze as the REASON not to build single-flight/prewarm premises separated: the retirement now stands on the MEASURED merge-queue hazard alone; the freeze premise is named as GONE, and the text says explicitly that this reads as "nobody has built it", NOT as a prohibition
17 qa/dogfood/test/read-coercion-conformance.test.ts:11 (ruled — see 4b) the RETIREMENT hung on #5499 re-anchored to #5704/#6664, wording MATCHED to the landed twin packages/runtime/src/datasource-autoconnect.test.ts, present progressive KEPT
15 service-analytics/src/__tests__/read-scope-undefined-comparand.test.ts:51 "remain pin-only under the #5499 freeze ... (a debt owed at thaw, recorded in #6125)" the thaw ARRIVED — the #6125 debt is now DUE rather than deferred, and nothing has been triaged against it

Where a sentence used the freeze to EXCUSE a divergence, the excuse is stated as lapsed and the card that now owns the disposition is NAMED (#13166 / #13195 / #6915 / #6125) rather than a new justification being invented. Where no card owns it (site 11), the PR says exactly that instead of inventing one.

Site 13 named separately, as required

packages/drivers/driver-sql/src/sql-driver.ts is this lane's hot file and NO CI gate protects it. The entire diff to that file is one comment line becoming two, inside the same sentence:

-   *   stays open under the #5499 freeze; this driver's half never was silent.
+   *   stays open; the #5499 freeze that explained it dissolved 2026-08-11 and
+   *   nothing has claimed it since. This driver's half never was silent.

Nothing else in the 8,900-line file is touched. Verified with git diff -- packages/drivers/driver-sql/src/sql-driver.ts (3 lines changed: 1 removed, 2 added).

The two describe() titles

Site 5 is a describe() title, so the false claim was in TEST OUTPUT and not only in a comment. Before renaming, confirmed nothing references it by name — its only occurrence in the repo is its own definition, and there is no testNamePattern anywhere. Verified rendering after the change:

✓ src/memory-driver-document-not.test.ts > [#5324] InMemoryDriver.find compiles a document-level $not
  > [#5299] the settled cells, live vs reference — divergence pinned, disposition open (#13166/#13195)
  > $exists on a present-but-null field: mingo says "the key is there", the matcher says "no value"

The card's OTHER describe() title (memory-matcher-not-null-safe.test.ts:174) is one of the three sites this PR does not touch — see below.

3. The SEVEN sites deliberately NOT touched

Verified absent from the diff by path, mechanically, after the edits:

Four dated group-C records — sweeping them would turn history into a false statement.

Site Why it is correct as it stands
driver-memory/src/memory-pagination-conformance.test.ts:125 "The #5499 investment freeze was lifted for this door specifically (maintainer ruling on #6577), and for nothing else in this package." Already past tense, and it records a PARTIAL lift that PREDATES the full dissolution. Sweeping it would destroy a finer piece of history than the dissolution itself.
driver-mongodb/src/mongodb-filter-text-conformance.test.ts:18 A table cell recording #6520 as "a sanctioned one-off inside the #5499 freeze" — a dated record of a then-live state.
service-storage/src/tombstone-hydration-download-agreement.test.ts:58 Already past tense: "#5499 froze investment in the in-memory driver; #5704 migrated the test backends".
service-storage/vitest.config.ts:47 Already past tense, same sentence shape.

Three pins owned by #13166, whose disposition is UNDECIDED.

driver-memory/src/memory-matcher-not-null-safe.test.ts:148, :174 (a describe title), :188. That card's triage explicitly forbids rewriting this wording ahead of its ruling; touching it would presuppose an outcome nobody has decided. Left byte-for-byte, including the title.

Plus the generated file, packages/spec/src/migrations/registry.ts (5 look-alike hits), excluded by path from every grep above and confirmed untouched and current by its own gate.

4. The two that are NOT group-A shaped — reported first, then RULED and applied

Neither was rewritten in the first commit; each was reported with a reading and a proposed wording so a ruling could be applied directly. The coordinator has since ruled both. The readings are kept below because they are the justification for what landed.

4a. driver-mongodb/src/test-mongod.ts:45 — a fourth group-B DESIGN RATIONALE

Original text:

The maintainer's call was to RETIRE the download rather than build single-flight / prewarm infrastructure for a driver family whose investment is frozen (#5499). So: no globalSetup pre-download, no cross-worker lock, no workflow cache warming.

Reading: the conclusion survives, but one of its two premises is gone, and that changes what the comment LICENSES.

The decision rests on two independent premises. The first is a MEASURED hazard documented in the same comment immediately above (lines 20-41): the download races between workers; the loser's rename throws ENOENT inside a fire-and-forget async listener, so the rejection reaches nobody and the enclosing promise never settles — costing the merge queue at least three red builds in one day and ejecting unrelated PRs. None of that depends on investment posture. The second premise is the freeze, whose ONLY job in the sentence was to answer "why not just build the infrastructure instead?" — it justified not SPENDING, not the retirement itself.

RULED: option A — restate on the surviving grounds, with one binding constraint: the rewrite must not silently preserve the PROHIBITION. After 2026-08-11 the prohibition has no source, so the text has to land as "nobody has built it, and here is the measured reason it was not worth building", never as "it must not be built".

Applied exactly that way. The new text separates the two premises, keeps the retirement on the measured hazard alone, and closes with:

So, still: no globalSetup pre-download, no cross-worker lock, no workflow cache warming — but read that as NOBODY HAS BUILT IT, and never as "it must not be built". Nothing forbids building it now; the measured hazard above is why it was not worth building. Whether the opt-in coverage now justifies that infrastructure is a maintainer call about coverage versus CI cost — a separate card, not this file's to settle.

Whether that infrastructure is now worth building was explicitly NOT settled here; it is a separate card if anyone wants it.

4b. qa/dogfood/test/read-coercion-conformance.test.ts:11 — a second RETIREMENT mis-attribution

Original text:

The driver-memory arm was removed in #5704 (batch 0): driver-memory is the project's legacy test-convenience backend and its in-project test surface is being replaced by sqlite :memory: (#5499).

Reading: two separable defects, and only the second is freeze staleness.

The first is a plain MIS-ATTRIBUTION, wrong even if the freeze were still live. The parenthetical hangs a RETIREMENT proposition on #5499, but #5499 was an INVESTMENT FREEZE — a decision not to SPEND on the driver, which is a different proposition from a decision to REPLACE it. The retirement is owned by #5704 (already cited correctly in the same sentence) and #6664 (which replaced the prose census with the ledger check:driver-memory-census enforces).

The second concerns tense. My initial recommendation was to also change "is being replaced" to the past — and that half was DECLINED, correctly.

RULED: option A, matched to the landed twin, NOT the tense repair. The twin at packages/runtime/src/datasource-autoconnect.test.ts has landed on main and KEPT the present progressive, because the retirement is ongoing — check:driver-memory-census is still enforcing it, so the tense is accurate rather than stale. Changing it here would have made this site DIVERGE from its twin, which is the one outcome the "match the twin" instruction existed to prevent.

Applied as a close match to the twin's landed sentence rather than a parallel wording. Seven clauses were checked against it mechanically and all seven appear verbatim in both files:

is being retired · by #5704, which migrated the test backends · #6664, which replaced the prose census with the ledger · check:driver-memory-census` enforces · NOT by #5499: that was an INVESTMENT freeze · a different proposition on the same anchor · it was lifted on 2026-08-11 while the retirement carried on

The only addition is this site's own fact, in favour of sqlite :memory:``, which the twin has no reason to carry. The surrounding "Nothing is lost here — SQLite is the driver that actually stores booleans as integers" reasoning is untouched.

5. Verification

All runs below are on the final commit 9c1ff95e8, clean working tree. Every gate was re-run on this head after the two rulings landed — not carried over from the earlier commit.

Gate family, re-derived with node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack on the new head: 14 paths, three-dot, committed 14 / working tree 0 / untracked 0; repo assertion confirmed against this checkout's origin. Adding packages/qa/dogfood/** pulled in five families the first derivation did not name, all run and green:

Gate Why it is new Its own verdict line
check:driver-memory-census CI-scheduled on every PR; this PR's dogfood edit cites it by name OK — every declaration is ledgered, every ledger entry is live, and every ruled file states "#6664 census: 2 ruled consumers"
spec check:liveness spec-liveness-check.yml triggers on packages/qa/dogfood/** every governed-type property classified; state-counts.md current, 31 rows
spec check:empty-state same trigger all classified (1 closed, 2 open, 4 output, 9 scope)
spec check:strictness-ledger same trigger 437 site(s) measured, 1 authorable strip site(s) left
spec check:variant-docs same trigger 18 discriminated union(s) — 8 governed, 10 exempt

The 17 families from the first derivation were all re-run on this head and stayed green, including every ratchet: cross-package-test-inputs, engine-double-contract, where-matcher, query-options-erasure, slot-lookup, driver-conformance, test-source-alias, type-check-coverage, dispatcher-error-vocabulary, published-files, page-declaration-shape, logger-receiver-detach, objectql-double-limit, changeset-gate-self-tests, type-source-resolution, dual-build-cjs-loads, and check:type-check-debt — the last reporting --re-measure: OK — 31 ledger entr(ies) re-measured in 264.2s, 1570 raw tsc error(s) total, none above its recorded number.

Plus pnpm --filter @objectstack/spec check:migration-registry -> src/migrations/registry.ts is current (135 semantic, 69 retired-key, 71 retired-def), confirming the generated file is still unedited. (Note: there is no root-level check:migration-registry script; invoking it bare gives ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL / Command not found, which is a wrong script name and NOT a red gate.)

pnpm lint — the FULL repo scan (eslint . --no-inline-config), exit 0, zero findings. No narrowing is claimed and none is owed.

Tests for every package touched on this branch, after rebuilding the workspace closure (turbo run build, 70/70 successful). All six green, zero failure lines:

Package Result
@objectstack/driver-memory Test Files 29 passed (29) · Tests 849 passed (849)
@objectstack/driver-mongodb Test Files 21 passed | 5 skipped (26) · Tests 484 passed | 143 skipped (627)
@objectstack/driver-sql Test Files 147 passed | 9 skipped (156) · Tests 2241 passed | 132 skipped (2373)
@objectstack/plugin-dev Test Files 6 passed (6) · Tests 58 passed (58)
@objectstack/service-analytics Test Files 83 passed (83) · Tests 1805 passed (1805)
@objectstack/dogfood Test Files 127 passed | 1 skipped (128) · Tests 945 passed | 3 skipped (948)

Skips are the pre-existing opt-in real-mongod and dialect suites, unchanged by this PR.

typecheck green for every touched package that declares the script (tsc --noEmit echoed for each, so not a zero-match silent pass). Both files edited in the ruling commit were confirmed to be INSIDE their package's tsc program with tsc --listFiles: test-mongod.ts is not a *.test.ts so driver-mongodb's exclusion does not reach it, and dogfood includes test/**/* with no test exclusion.

Stated as NOT MEASURED rather than as a pass:

  • @objectstack/service-analytics declares NO typecheck script, so pnpm typecheck measured nothing for it. It is a registered DEBT-ledger entry (10 frozen errors), covered instead by check:type-check-debt --re-measure, green above.
  • driver-mongodb's tsconfig.json excludes **/*.test.ts, so its typecheck does not compile the two mongodb test files edited in the first commit (confirmed absent via tsc --listFiles). They are covered by that package's TEST_DEBT ledger entry — whose own note records exactly this exclusion — re-measured green, plus pnpm lint and the vitest run. Both edits there are comment-only.
  • The gate derivation printed a STALE TREE warning: this branch's base is behind origin/main, and three files the derivation reads (check-type-check-coverage.mjs, cross-package-test-inputs.mjs, check-skill-line-ratchet.mjs) changed across that range. The branch was deliberately not merged with main to keep the diff to this card's sites, so the local family list is derived from the branch's tree. CI runs the farm against the real merge base and is the authority.

No ablation was performed or claimed: this change is comment prose plus one describe() title, so there is no behaviour to ablate and no rebuild is claimed for one.

Control-byte self-scan over all changed files: 0 hits.

Fences re-verified mechanically after the ruling commit, against the branch base rather than only the last commit: all seven untouched sites and the generated registry.ts are absent from the whole-branch diff by path, and memory-matcher-not-null-safe.test.ts (the three #13166 pins, its describe() title included) is byte-identical to the base via git diff --exit-code.

6. Changeset

None. This PR changes comment prose and one describe() title; it publishes nothing and changes no behaviour. It takes the skip-changeset label.

7. One out-of-scope finding, filed not fixed

Filed as #13211 (unassigned, unlabelled, for triage): the dissolved freeze is asserted in the present tense in a population NO card in this family ever measured. All three cards used grep -rn 5499 packages --include=*.ts, which by construction cannot see .mjs gate scripts, .yml workflows or .json ledgers. Repo-wide the count is 143; 47 sit inside that denominator and 96 outside it, and setting the CHANGELOGs aside the remainder includes scripts/check-driver-memory-census.mjs (9), scripts/check-driver-conformance.mjs (7), .github/workflows/lint.yml (2) and scripts/pm/check-half-states.mjs (2).

Three are sharper than anything in this card: a false sentence printed in check:driver-memory-census's own GREEN success output on every run; a mirrored pair between that script and lint.yml where a one-sided repair may trip a mirror check; and a PM restart latch whose condition is the literal Restart-when: line naming the anchor as a close-event on issue 5499 (spelled without the # here on purpose, so this PR body does not itself become a close directive) — and issue 5499 is still OPEN, so the latch waits on an event that the 2026-08-11 lift bypassed. That last one is a live machinery condition, not prose.

This card's own triage anticipated this and named the response — "本卡把 48 的分母补齐了,理论上不该有第四张。若还有第四张,那说明分母算法本身有问题,⛔ 届时不要再扩范围,回来重估。" — so it is filed as a denominator re-evaluation rather than a fourth sweep, and NOTHING in that population was touched here.

Scope

Nothing outside this card's enumerated sites was changed. No test was skipped, disabled or quarantined, and nothing was added to any baseline or ledger.


Generated by Claude Code


Generated by Claude Code

…riaged group-A sites

The #5499 investment freeze dissolved 2026-08-11 (maintainer lifted it for
driver-mongodb, then driver-memory the same day - evidence in the head note of
packages/spec/src/data/aggregation-conformance.ts). 24 sites still asserted it
in the PRESENT tense outside the packages the earlier sweep opened. This
rewrites the 15 that are mechanical: past tense, dated, naming the dissolution,
keeping whatever each sentence was actually explaining.

Where a sentence used the freeze to EXCUSE a divergence, the excuse is now
stated as lapsed and the card that owns the disposition is named rather than a
new justification being invented:
  - memory-driver-document-not.test.ts  -> #13166 / #13195 (undecided)
  - memory-tenancy-guard.ts (Route A)   -> #6915
  - mongodb-comparand-type-conformance  -> untriaged, no card owns it
  - read-scope-undefined-comparand      -> the #6125 debt "owed at thaw" is DUE

Deliberately NOT touched (7 sites): the four dated group-C records
(memory-pagination-conformance.test.ts:125, mongodb-filter-text-conformance
.test.ts:18, tombstone-hydration-download-agreement.test.ts:58,
service-storage/vitest.config.ts:47) and the three pins #13166 owns
(memory-matcher-not-null-safe.test.ts:148/:174/:188). The generated
packages/spec/src/migrations/registry.ts is excluded from the sweep grep.

Reported, not rewritten (2 sites): driver-mongodb/src/test-mongod.ts:45
(group-B design rationale) and qa/dogfood/test/read-coercion-conformance
.test.ts:11 (retirement mis-attribution). Both need a judgement, not a sweep.

Comment and test-title prose only - no behaviour change.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LZbWd2jNV1FErXTPSS4Dry
@claude claude Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Aug 29, 2026
@github-actions

github-actions Bot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 3 package(s): @objectstack/driver-memory, @objectstack/driver-mongodb, @objectstack/driver-sql, touching 1 documentable anchor(s). ⚠️ 3 changed file(s) yielded no anchor (packages/drivers/driver-memory/src/filter-refusal.ts, packages/drivers/driver-memory/src/memory-tenancy-guard.ts, packages/drivers/driver-mongodb/src/test-mongod.ts), so the pages documenting them are NOT COVERED by this run — this is not a clean bill of health for those files.

6 hand-written doc(s) NAME something this change touched and may need an implementation-accuracy re-verification:

  • content/docs/data-modeling/drivers.mdx (via SqlDriver (symbol))
  • content/docs/data-modeling/index.mdx (via SqlDriver (symbol))
  • content/docs/plugins/packages.mdx (via SqlDriver (symbol))
  • content/docs/protocol/kernel/index.mdx (via SqlDriver (symbol))
  • content/docs/protocol/kernel/lifecycle.mdx (via SqlDriver (symbol))
  • content/docs/protocol/objectql/query-syntax.mdx (via SqlDriver (symbol))

1 release-owned page(s) also name something this change touched. These are read-only:

  • content/docs/releases/v17.mdx (via SqlDriver (symbol))

content/docs/releases/ is RELEASE-OWNED (AGENTS.md "Documentation Guardrails"): release
notes are written centrally at release time, and a code PR that edits them is the exact PR
that guardrail exists to stop. They are still audited — read-only. If one of them is actually
wrong, file an issue or open a dedicated docs-only PR; do not edit it here.

What this run could not see
  • 3 changed file(s) yielded no anchor (packages/drivers/driver-memory/src/filter-refusal.ts, packages/drivers/driver-memory/src/memory-tenancy-guard.ts, packages/drivers/driver-mongodb/src/test-mongod.ts) — pages documenting those are invisible to this run
  • 1 name(s) were too generic to anchor anything (single lowercase words)
  • 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 — 11 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 ce7e497448a49d86469392f6e9992618ee0f18fdpackageMentionDocs.

Which tree this was computed on

This run read content/docs from 84670be4f7ff2c7d276a1956428369790c6c063f — the merge of head 9c1ff95e8c4723fdeab2b89e4ba5f51fdd9881f3 into base ce7e497448a49d86469392f6e9992618ee0f18fd, which is what actions/checkout gives a pull_request run. Not the PR head.

A worktree cut from an older main holds a different content/docs, so re-deriving there can legitimately return a different list — that is a different tree, not a wrong row. To answer on the same tree:

# while this PR is open — GitHub drops the merge commit once it closes
git fetch origin 84670be4f7ff2c7d276a1956428369790c6c063f && git checkout 84670be4f7ff2c7d276a1956428369790c6c063f
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin ce7e497448a49d86469392f6e9992618ee0f18fd 9c1ff95e8c4723fdeab2b89e4ba5f51fdd9881f3 && git checkout -B drift-repro ce7e497448a49d86469392f6e9992618ee0f18fd && git merge --no-ff 9c1ff95e8c4723fdeab2b89e4ba5f51fdd9881f3

node scripts/docs-audit/affected-docs.mjs --json ce7e497448a49d86469392f6e9992618ee0f18fd

⚠️ That checkout carried uncommitted changes, so the commit above does not fully identify what was read.

Advisory only, and a precision-first one (#9192): a page is listed because it names a
symbol, wire route or SDK method this diff touched — not because it mentions a changed
package. Each row says which anchor put it there, so a wrong row is reportable rather than
merely annoying. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs ce7e497448a49d86469392f6e9992618ee0f18fd → pass the list as
args.docs, on the commit named under Which tree this was computed on.

@github-actions github-actions Bot added the tests label Aug 29, 2026
Both sites were reported rather than rewritten in the first commit because each
needed a judgement. The coordinator ruled both; this applies them.

test-mongod.ts (group-B design rationale) - option A, restate on the surviving
grounds. The retirement had two premises and only one survives: the MEASURED
merge-queue hazard (the unsettleable promise, three red builds in one day
ejecting unrelated PRs), which is independent of investment posture. The #5499
freeze was the other, and it only ever answered "why not build the
infrastructure instead"; it dissolved 2026-08-11. Per the ruling, the new text
must NOT silently preserve the prohibition: it now reads as "nobody has built
it, and here is the measured reason it was not worth building", says plainly
that nothing forbids building it now, and defers the coverage-versus-CI-cost
question to a separate card rather than settling it here.

read-coercion-conformance.test.ts (retirement mis-attribution) - option A,
MATCHED to the landed twin at packages/runtime/src/datasource-autoconnect.test.ts
rather than independently worded. The twin KEPT the present progressive, so the
tense half of the earlier recommendation is declined: the retirement is ongoing
because check:driver-memory-census still enforces it, making "is being retired"
accurate rather than stale. Seven clauses now match the twin verbatim,
re-anchoring to #5704/#6664 and stating "NOT by #5499: that was an INVESTMENT
freeze, a different proposition on the same anchor".

The seven deliberately untouched sites remain absent from the branch diff,
re-verified mechanically by path; the three #13166 pins are byte-identical to
the branch base.

Comment prose only - no behaviour change, no ablation, no rebuild claimed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LZbWd2jNV1FErXTPSS4Dry

Copy link
Copy Markdown
Contributor

PM 复核:两条裁定逐条验过,七个禁区机械验证未动,CI 36/36

⛔ 全部读的是 head 9c1ff95e8git show <head>:),⛔ 不是本地工作区(本 clone 是 shallow,停在较旧 main)。

✅ Q1 —— test-mongod.ts禁令已被拆掉,不是被保留

本席给的裁定把「⛔ 不得静默保留 PROHIBITION」定为约束而非脚注。落地文字:

Two premises stood behind that call and only one of them survives.

So, still: no globalSetup pre-download, no cross-worker lock, no workflow cache warming — but read that as NOBODY HAS BUILT IT, and never as "it must not be built". Nothing forbids building it now; the measured hazard above is why it was not worth building. Whether the opt-in coverage now justifies that infrastructure is a maintainer call … a separate card, not this file's to settle.

⇒ ⭐ 三件事同时做到:两个前提被显式拆开、幸存的那个(实测合并队列风险)被点名为与投入姿态无关、消失的那个(#5499)被点名连同它当初回答的问题("why not just build the infrastructure instead")。⛔ 且明确把重开决定推给单独的卡,没有顺手裁掉它。

✅ Q2 —— 匹配孪生,保留进行时

落地文字与 packages/runtime/src/datasource-autoconnect.test.ts(已在 main 上)逐句同形is being retired · by #5704, which migrated the test backends · #6664, which replaced the prose census with the ledger check:driver-memory-census enforces · NOT by #5499: that was an INVESTMENT freeze, a different proposition on the same anchor, and it was lifted on 2026-08-11 while the retirement carried on

唯一的增量是本站点自己的事实(in favour of sqlite :memory:),孪生没有理由携带它。⇒ ⭐ 匹配,不是复述。

⚠️ 记一句:dev 最初推荐的是 B(A + 时态改成过去时),本席否掉了时态那一半——因为孪生保留了进行时,而 B 会让本站点偏离孪生,正是 dev 自己警告过的事。⭐ 而 dev 在动手前自己去 origin/main 复核了这条裁定,没有直接采信。这是对的做法。

✅ 七个禁区 —— 机械验证,⛔ 非目测

对分支 base 逐路径 git diff --quiet

路径
memory-pagination-conformance.test.ts#6577 局部解冻记录) ✅ 未动
mongodb-filter-text-conformance.test.ts#6520 一次性特许) ✅ 未动
tombstone-hydration-download-agreement.test.ts ✅ 未动
service-storage/vitest.config.ts ✅ 未动
memory-matcher-not-null-safe.test.ts#13166 的三处 pin,含 describe 标题) ✅ 未动
packages/spec/src/migrations/registry.ts(生成物) ✅ 未动

热文件 driver-sql/src/sql-driver.tsgit diff --numstat = 2 增 1 删 ⇒ 正是「一行注释变两行」,⛔ 该文件再无其他改动。(本车道无 CI gate 护它,故单独量。)

✅ CI

36/36 完成:33 success + 3 skipped,零失败。 Test Core (1/6) 本轮一次即绿,⛔ 没撞上 #13158Check Changeset skipped 与 skip-changeset 标签一致。

⭐ 值得记在 PR 上的一件事:一次被拦下的静默关闭

dev 报告其 PR body 初稿引用了 PM 重启闩的字面行,而那行把一个 close 关键字紧挨着 issue 引用。GitHub 在 PR body 里按该形状解析为关闭指令,不问上下文 ⇒ 合并会静默关掉 #5499,也就是这一整族卡挂着的锚点。dev 自行发现、打断邻接、用正则复查全部关闭关键字与 issue 引用的相邻(0 命中)、并在更新后确认锚点仍 open。

⇒ ⛔ 这不是本席要求的检查,是 dev 自己加的。记在这里因为下一个引用闩文本的人会踩同一个坑。

⛔ 落地

保持 draft。本卡(#13194)无条款②,但落地是 PM 的动作,且本席要先把 dev 顺带产出的 #13211(分母重估:那三张卡的 .ts-only grep 按构造看不见 .mjs/.yml/.json)分诊完 —— 已定级 bug·tooling·p1·pm:queue·domain:devx


Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants