Skip to content

Commit eb23966

Browse files
chore(objectql): retire the PR-10d.1 dry-run-hash-compat probe and its scripts program (#21865)
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`'s `files` is `dist`, `README.md`, `CHANGELOG.md`) and nothing runs it. Its type-blind `hashSpec(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 the `tsc --noEmit -p tsconfig.scripts.json` leg of objectql's `typecheck` script. With `scripts/` gone, that program has no inputs: the exact deleted config (blob `28a4b91ab6`), put back untracked beside the empty package, gives `error TS18003: No inputs were found in config file` and tsc exit 2. No placeholder file keeps it alive. - The two `EXEMPT_FILES` rows for those two files in `scripts/check-error-code-casing.mjs`. Reworded (comments only), because they stated the deleted files as present: - `packages/objectql/tsconfig.test.json`. The `rootDir` bullet's measured example named the deleted test; the bullet now states the rule without it. The closing sentence about the sibling `scripts/` program is dropped. `rootDir: "."` itself is kept (see Acceptance notes). - `packages/objectql/src/datasource-def-credentials-ref.pin.ts` and `register-object-authored-shape.pin.ts`. Both docblocks quote the package's `typecheck` line "stated to today's tree"; the quote now matches the new line. Neither file reaches `dist` (measured below). - `scripts/check-type-check-coverage.mjs`, four spots: - the census row dated main @ 5886ee6 is annotated "deleted since", not removed (see Deviations); - the AGAINST argument no longer names the file; - the SEEDED-AT note no longer says objectql "now has" a scripts program; - the "shape these eight copy" pointer no longer sends a reader to a deleted config. The `packages/objectql/CHANGELOG.md` line stays: it is history. ## Hypotheses measured **H1, every reference.** `git grep -n dry-run-hash-compat` at origin/main 9f9510f gives 17 hits, 16 outside `packages/objectql/CHANGELOG.md`. The file lines are unchanged since dispatch at 0fe0a59. | Site | Hits | Disposition | |---|---|---| | the script | 4 | deleted | | its test | 1 | deleted | | `tsconfig.scripts.json` (line 4) | 1 | deleted with the file | | `tsconfig.test.json` (lines 42-43) | 2 | reworded | | `check-error-code-casing.mjs` (lines 85-86) | 2 | rows deleted | | `check-type-check-coverage.mjs` (line 1399) | 1 | dated census row: annotated, kept | | `check-type-check-coverage.mjs` (line 1428) | 1 | reworded to not name the file | | `check-type-check-coverage.mjs` (lines 4154-4155) | 2 | stays: a measurement dated "on main @ 5886ee6" | | `check-type-check-coverage.mjs` (lines 5740-5741) | 2 | stays: self-test fixture using the name as a sample string | At this PR's head the same search leaves 6 hits: the CHANGELOG line and the five kept `check-type-check-coverage.mjs` lines above. Searching by the program instead of the file name found four more present-tense statements, all reworded: `check-type-check-coverage.mjs` about lines 1442-1444 and 1494-1495, and the two `.pin.ts` quotes. Thirteen sibling configs cite "the distinction #10756 drew for `packages/objectql/scripts`": - nine `tsconfig.scripts.json`: `platform-objects`, five plugins, three services; - `plugin-auth/tsconfig.examples.json`; - three `tsconfig.typecheck.json`. That cites a decision and remains true, so they stay, as do the past-tense mentions at `check-type-check-coverage.mjs` lines 183 and 1378. No doc, ADR or `scripts/adr-anchors/` entry names the file, the directory or the probe (searched also as `hash-compat`, `dryRunHash` and `PR-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 the `typecheck` leg dropped. No ledger row names it: `DEBT`, `TEST_DEBT` and `UNCHECKED_SOURCE_DEBT` in the coverage gate, and `packages/objectql/test-typecheck-debt.json`, carry no objectql scripts entry. After the change: - `check:type-check-coverage` reports "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-debt` reports "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, `runDryRun` occurs only in the CHANGELOG line, and `LegacyMetadataRow` nowhere. ## Changeset: the `skip-changeset` label The changeset gate in `pr-automation.yml` exempts 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: - objectql's tsup entries are `src/index.ts` and `src/core.ts`. - After `pnpm --filter @objectstack/objectql build`, `grep -rlF` over `dist` finds 0 files for each of `runDryRun`, `LegacyMetadataRow`, `dry-run-hash-compat`, `checksum_drift` and `tsconfig.scripts.json`. It also finds 0 for the `.pin.ts` docblock text (`stated to today`, and the new quoted `typecheck` line), which is present in `src`. - Positive controls: `ObjectQL` hits 10 files and `assertEngineDeleteDispatch` 5. The only tarball byte this touches is the dev-only `scripts.typecheck` string in `package.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/main` exits 0 ("This diff introduces no `major` bump"); 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`, then `pnpm --filter @objectstack/objectql typecheck`, each under the verify lock: VERDICT command-exit 0 both. The typecheck output reads `tsc --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. - Whole-workspace `turbo run build --filter=!@objectstack/docs --concurrency=2`: 72 successful, 72 total, VERDICT command-exit 0. It was run so that `check:dual-build-cjs-loads` could measure. - Gates: - `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack` with no paths derived 87 commands. All 87 exit 0, `check:dual-build-cjs-loads` included ("106 published require entry point(s) across 66 package(s) load"). - `--ran` prints "✓ 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)". - The four symbol-anchor sweeps (`check:adr-symbol-anchors`, `check:scripts-symbol-anchors`, `check:spec-docblock-symbol-anchors`, `check:adr-anchors`) all exit 0. So does `check:dispatcher-error-vocabulary`, which was named at dispatch and is not derived now. - Artifact-roster block (53 commands printed outside the total): 50 exit 0. Three exit 2 as NOT WIRED without PR context: `check-closing-target-claim`, `check-partof-closing-keyword` and `check-single-claim-paths`. Each was rerun with this PR's context and this body; the results are in the report on the card. - Gate scripts edited (`check-error-code-casing.mjs`, `check-type-check-coverage.mjs`): their own suites are their `--self-test`s, run inside `pnpm check:error-code-casing` ("46 recognizer case(s) + 5 registry case(s) pass") and `pnpm check:type-check-coverage`, both exit 0. No `*.test.*` file executes either script; the 21 test files that name them do so in comments. - eslint, a proven narrowing rather than the repo-wide `pnpm lint`: - Population: `eslint.config.mjs` matches `**/*.{ts,tsx,mts,cts,js,jsx,mjs,cjs}`, so it lints the four changed `.mjs`/`.ts` files. The `.json` files are outside it. - Count, from `--format json` with `--no-inline-config`: 4 files, 0 errors, 0 warnings. - Invariance: the config never enables type-aware linting (no `parserOptions.project`, no `projectService`). 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 1. The ruling lists "the comment in `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. 2. The file surface goes beyond the claim by two files and two comment spots. These are the `.pin.ts` docblocks and `check-type-check-coverage.mjs` about lines 1442-1444 and 1494-1495. Each stated the deleted `typecheck` leg or config as present, and this change would have made it false. ## Acceptance notes - `packages/objectql/tsconfig.test.json` keeps `rootDir: "."`. A static scan of `src` now finds no import that leaves `src`. The six hits are string literals inside compiler-probe templates in `scoped-repository-return-narrowing.test.ts`. So the widening is no longer load-bearing today, but it is harmless under `noEmit`. Narrowing it is a separate decision and is not taken here. - Dated counts in comments were not touched: "299" test files in both `.pin.ts` docblocks, and "251" in `tsconfig.test.json`. `src` holds 374 test files after this change. Each count is a dated reading this change does not make false, so it is noted, not edited. - The docs-drift comment lists 3 changed files with no anchor. Read by hand: no page under `content/docs`, `docs` or `apps/docs` names `packages/objectql/scripts`, `tsconfig.scripts.json` or either `.pin.ts` file. The 17 coarse-fallback pages that mention objectql contain none of `dry-run-hash`, `tsconfig.scripts`, `test-typecheck`, `checksum_drift` or `hashSpec` (control: 11 of them contain the literal `@objectstack/objectql`). --- _Generated by [Claude Code](https://claude.ai/code/session_017ErfyP2Rx7XWHJA27QjyUi)_ Co-authored-by: Claude <noreply@anthropic.com>
1 parent 568dc0b commit eb23966

9 files changed

Lines changed: 29 additions & 678 deletions

‎packages/objectql/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"build": "tsup && node ../../scripts/check-dts-emitted.mjs",
2222
"test": "vitest run --project local",
2323
"test:repo": "vitest run --project repo",
24-
"typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.scripts.json && pnpm check:test-typecheck",
24+
"typecheck": "tsc --noEmit && pnpm check:test-typecheck",
2525
"check:test-typecheck": "tsx ../../scripts/check-test-typecheck.mts --self-test && tsx ../../scripts/check-test-typecheck.mts --package packages/objectql --project tsconfig.test.json",
2626
"gen:test-typecheck-debt": "tsx ../../scripts/check-test-typecheck.mts --update --package packages/objectql --project tsconfig.test.json"
2727
},

‎packages/objectql/scripts/dry-run-hash-compat.ts‎

Lines changed: 0 additions & 330 deletions
This file was deleted.

‎packages/objectql/src/datasource-def-credentials-ref.pin.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
*
3030
* ⚠ It is NOT that a directive in a `*.test.ts` here would go unevaluated —
3131
* this docblock used to say so, and that is FALSE on this tree. This package's
32-
* `typecheck` is `tsc --noEmit && tsc --noEmit -p tsconfig.scripts.json &&
33-
* pnpm check:test-typecheck`, and the last leg runs
32+
* `typecheck` is `tsc --noEmit && pnpm check:test-typecheck`, and the last
33+
* leg runs
3434
* `--project tsconfig.test.json`, whose `include` is `src/**\/*` with no test
3535
* exclusion: 299 of this package's `src` test files are in that program,
3636
* measured with `tsc --listFiles` (0 in the build program — the firing control

0 commit comments

Comments
 (0)