Repository navigation
chore(objectql): retire the PR-10d.1 dry-run-hash-compat probe and its scripts program - #21865
Conversation
…s scripts program The one-time ADR-0008 PR-10d.1 compatibility probe finished its job when PR-10d.2 aligned the repository; nothing ships it (objectql's `files` is `dist` only) and nothing runs it. Delete it rather than repair its type-blind `hashSpec(body)` call. - delete `packages/objectql/scripts/dry-run-hash-compat.ts` and its test `src/dry-run-hash-compat.test.ts` (no other importer of `runDryRun`); - `scripts/` is now empty, so `tsconfig.scripts.json` and the `typecheck` leg that named it go too (an empty program fails TS18003); - drop the two EXEMPT_FILES rows in `check-error-code-casing.mjs`; - reword the comments that stated the deleted files as present: the `tsconfig.test.json` rootDir note, the two `.pin.ts` docblocks quoting the `typecheck` line, and four spots in `check-type-check-coverage.mjs` (dated census rows and measurements are kept as history). Claude-Session: https://claude.ai/code/session_017ErfyP2Rx7XWHJA27QjyUi Co-authored-by: Claude <noreply@anthropic.com>
…tire-dry-run-hash-compat
📓 Docs Drift Check
What this run could not see
Coarse fallback — 17 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
…sh-compat Claude-Session: https://claude.ai/code/session_017ErfyP2Rx7XWHJA27QjyUi Co-authored-by: Claude <noreply@anthropic.com>
ACCEPT (seat review) — PR #21865 at head
|
Fixes #21853
Clause-②: no
Retires the one-time ADR-0008 PR-10d.1 compatibility probe, per triage's grade and direction on the card (comment 5991365223: retire, do not repair). PR-10d.2 finished that audit. Nothing ships the script (
@objectstack/objectql'sfilesisdist,README.md,CHANGELOG.md) and nothing runs it. Its type-blindhashSpec(body)call is therefore deleted, not corrected.What changes
Deleted (678 lines):
packages/objectql/scripts/dry-run-hash-compat.ts, the probe. The directory is now gone.packages/objectql/src/dry-run-hash-compat.test.ts, its test.packages/objectql/tsconfig.scripts.json, and thetsc --noEmit -p tsconfig.scripts.jsonleg of objectql'stypecheckscript. Withscripts/gone, that program has no inputs: the exact deleted config (blob28a4b91ab6), put back untracked beside the empty package, giveserror TS18003: No inputs were found in config fileand tsc exit 2. No placeholder file keeps it alive.EXEMPT_FILESrows for those two files inscripts/check-error-code-casing.mjs.Reworded (comments only), because they stated the deleted files as present:
packages/objectql/tsconfig.test.json. TherootDirbullet's measured example named the deleted test; the bullet now states the rule without it. The closing sentence about the siblingscripts/program is dropped.rootDir: "."itself is kept (see Acceptance notes).packages/objectql/src/datasource-def-credentials-ref.pin.tsandregister-object-authored-shape.pin.ts. Both docblocks quote the package'stypecheckline "stated to today's tree"; the quote now matches the new line. Neither file reachesdist(measured below).scripts/check-type-check-coverage.mjs, four spots:The
packages/objectql/CHANGELOG.mdline stays: it is history.Hypotheses measured
H1, every reference.
git grep -n dry-run-hash-compatat origin/main 9f9510f gives 17 hits, 16 outsidepackages/objectql/CHANGELOG.md. The file lines are unchanged since dispatch at 0fe0a59.tsconfig.scripts.json(line 4)tsconfig.test.json(lines 42-43)check-error-code-casing.mjs(lines 85-86)check-type-check-coverage.mjs(line 1399)check-type-check-coverage.mjs(line 1428)check-type-check-coverage.mjs(lines 4154-4155)check-type-check-coverage.mjs(lines 5740-5741)At this PR's head the same search leaves 6 hits: the CHANGELOG line and the five kept
check-type-check-coverage.mjslines above.Searching by the program instead of the file name found four more present-tense statements, all reworded:
check-type-check-coverage.mjsabout lines 1442-1444 and 1494-1495, and the two.pin.tsquotes. Thirteen sibling configs cite "the distinction #10756 drew forpackages/objectql/scripts":tsconfig.scripts.json:platform-objects, five plugins, three services;plugin-auth/tsconfig.examples.json;tsconfig.typecheck.json.That cites a decision and remains true, so they stay, as do the past-tense mentions at
check-type-check-coverage.mjslines 183 and 1378. No doc, ADR orscripts/adr-anchors/entry names the file, the directory or the probe (searched also ashash-compat,dryRunHashandPR-10d.1).H2, the scripts-layer program.
scripts/held only this file. It is removed the way the gates accept: the config is deleted and thetypecheckleg dropped. No ledger row names it:DEBT,TEST_DEBTandUNCHECKED_SOURCE_DEBTin the coverage gate, andpackages/objectql/test-typecheck-debt.json, carry no objectql scripts entry. After the change:check:type-check-coveragereports "79/80 workspace packages type-checked" and "source layer: 0 directory(ies) of non-test source in 0 ledgered entr(y/ies) sit outside every tsc program";check:type-check-debtreports "1 ledger entr(ies) re-measured ... 26 raw tsc error(s) total, none above its recorded number".H3, no other importer. At this PR's head,
runDryRunoccurs only in the CHANGELOG line, andLegacyMetadataRownowhere.Changeset: the
skip-changesetlabelThe changeset gate in
pr-automation.ymlexempts a PR that declares no release by this label (its route 2). It rejects a newly added empty changeset (its closed route 3), so that is not the route. Route 0 does not apply: the diff touches no.changeset/*.md.The diff publishes nothing:
src/index.tsandsrc/core.ts.pnpm --filter @objectstack/objectql build,grep -rlFoverdistfinds 0 files for each ofrunDryRun,LegacyMetadataRow,dry-run-hash-compat,checksum_driftandtsconfig.scripts.json. It also finds 0 for the.pin.tsdocblock text (stated to today, and the new quotedtypecheckline), which is present insrc.ObjectQLhits 10 files andassertEngineDeleteDispatch5.The only tarball byte this touches is the dev-only
scripts.typecheckstring inpackage.json. The commit that added that leg,3854376e3d, carried no changeset;cb954f1708, which added the same kind of leg to eight other packages, carried none either.node scripts/check-changeset-no-major.mjs --base origin/mainexits 0 ("This diff introduces nomajorbump"); its level axis is given this body below.Verification (HEAD cc46841, after merging origin/main 9f9510f)
These readings were taken on a resumed run. The first run was stopped by a container restart before it reported, so none of its readings is quoted here.
pnpm --filter '@objectstack/objectql...' build, thenpnpm --filter @objectstack/objectql typecheck, each under the verify lock: VERDICT command-exit 0 both. The typecheck output readstsc --noEmit && pnpm check:test-typecheck, then "check:test-typecheck: OK ... 40 file(s) / 234 error(s) / 65 pinned signature(s) held". That is unchanged, because the deleted test had no ledger entry.pnpm --filter @objectstack/objectql exec vitest run --project local --maxWorkers=2: Test Files 373 passed (373), Tests 7460 passed (7460), VERDICT command-exit 0.turbo run build --filter=!@objectstack/docs --concurrency=2: 72 successful, 72 total, VERDICT command-exit 0. It was run so thatcheck:dual-build-cjs-loadscould measure.node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackwith no paths derived 87 commands. All 87 exit 0,check:dual-build-cjs-loadsincluded ("106 published require entry point(s) across 66 package(s) load").--ranprints "✓ dispatch-gates --ran: 87 derived famil(ies) accounted for — 87 run, 0 NOT-MEASURED (a DERIVED zero — all 87 recorded an exit code and none of them is 3)".check:adr-symbol-anchors,check:scripts-symbol-anchors,check:spec-docblock-symbol-anchors,check:adr-anchors) all exit 0. So doescheck:dispatcher-error-vocabulary, which was named at dispatch and is not derived now.check-closing-target-claim,check-partof-closing-keywordandcheck-single-claim-paths. Each was rerun with this PR's context and this body; the results are in the report on the card.check-error-code-casing.mjs,check-type-check-coverage.mjs): their own suites are their--self-tests, run insidepnpm check:error-code-casing("46 recognizer case(s) + 5 registry case(s) pass") andpnpm check:type-check-coverage, both exit 0. No*.test.*file executes either script; the 21 test files that name them do so in comments.pnpm lint:eslint.config.mjsmatches**/*.{ts,tsx,mts,cts,js,jsx,mjs,cjs}, so it lints the four changed.mjs/.tsfiles. The.jsonfiles are outside it.--format jsonwith--no-inline-config: 4 files, 0 errors, 0 warnings.parserOptions.project, noprojectService). No ignore list or baseline in it names a deleted path. So this diff cannot move a verdict on any untouched file.pnpm check:nul-bytes: OK (10209 text files, no raw ASCII control bytes).Deviations
scripts/check-type-check-coverage.mjs(about:1399)" for deletion. That line is one row of a census dated "on main @ 5886ee6", whose total (11 files) counts it. Deleting the row would make the dated total wrong, so the row is annotated "deleted since, with its directory" instead. No comment now presents the file as live..pin.tsdocblocks andcheck-type-check-coverage.mjsabout lines 1442-1444 and 1494-1495. Each stated the deletedtypecheckleg or config as present, and this change would have made it false.Acceptance notes
packages/objectql/tsconfig.test.jsonkeepsrootDir: ".". A static scan ofsrcnow finds no import that leavessrc. The six hits are string literals inside compiler-probe templates inscoped-repository-return-narrowing.test.ts. So the widening is no longer load-bearing today, but it is harmless undernoEmit. Narrowing it is a separate decision and is not taken here..pin.tsdocblocks, and "251" intsconfig.test.json.srcholds 374 test files after this change. Each count is a dated reading this change does not make false, so it is noted, not edited.content/docs,docsorapps/docsnamespackages/objectql/scripts,tsconfig.scripts.jsonor either.pin.tsfile. The 17 coarse-fallback pages that mention objectql contain none ofdry-run-hash,tsconfig.scripts,test-typecheck,checksum_driftorhashSpec(control: 11 of them contain the literal@objectstack/objectql).Generated by Claude Code