Uh oh!
There was an error while loading. Please reload this page.
fix(lint): wire test layer into check:test-typecheck (#14173) - #14494
Merged
Conversation
…ne rule pin file is type-checked (#14173) Onboarded by wiring to the mechanism #14062 (PR #14420) landed on, per the triage ruling on this card (comment 5502888897): a sibling tsconfig.test.json matching vitest's real module semantics, named by `typecheck`. Measured: 6 residual TS6059 errors over 2 files (rootDir violations from imports outside this package, pre-existing, config-tier), recorded in the new test-typecheck-debt.json as a CONVERSION of the coverage gate's existing 16-error TEST_DEBT entry, which is deleted as the graduation that pairing forces. Co-Authored-By: Claude Code <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WLJQhde67SeTccsmnBVarV
Contributor
📓 Docs Drift Check
What this run could not see
Coarse fallback — 5 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
baozhoutao
marked this pull request as ready for review
September 2, 2026 10:07
baozhoutao
enabled auto-merge
September 2, 2026 10:07
Uh oh!
There was an error while loading. Please reload this page.
This was referenced Sep 2, 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#14173
What
packages/lint'stypecheckscript was a baretsc --noEmitagainst atsconfig.jsonthatexcluded**/*.test.tsand**/*.spec.ts, so no gateanywhere read a lint test file with a type checker (vitest transpiles through
esbuild, types stripped, never resolved).
src/validate-expressions.test.tsalone is ~2,700 lines built almost entirely out of compile-time and meta pins
(the #5017 receiver scan, the
TRACKED_UNDECLARED_READSshrink-only list, theresidual-root table) — none of it type-checked by anything.
Wired per the triage ruling (comment 5502888897) to the mechanism #14062 (PR
#14420) landed on:
scripts/check-test-typecheck.mts, per package, with asibling
tsconfig.test.jsonthetypecheckscript NAMES.Measurement
--listFilesonorigin/main6aea1f559(workspace closure built first):New
packages/lint/tsconfig.test.json(module semantics only —esnext/bundler/lib: ["ES2022"]— matching how vitest actually executes thesefiles; strictness and
rootDiruntouched, inherited):The TS7006/TS2835 pile (16 errors — exactly the coverage gate's recorded
@objectstack/lintTEST_DEBT total) dissolves underbundlerresolution, thesame "config tier, not the tests" effect
packages/spec/packages/rest/thepackages/plugins/**family measured. The 6 residual TS6059 arerootDir-violation errors from two test files importing example-app fixturesoutside this package (
examples/app-showcase) — pre-existing, and (per thecoverage gate's own historical note on this exact entry) never this package's
debt;
rootDiris inherited untouched here, so they surface rather than beingsuppressed.
Authority boundary: this is a CONVERSION of the coverage gate's existing
@objectstack/lintTEST_DEBT entry (errors: 16) to per-file/per-signatureform, not a new debt-opening decision — legitimate while the measured total
stays ≤ 16. Measured: 6 ≤ 16. Within bounds.
check:type-check-coverage: GREEN with the'@objectstack/lint'TEST_DEBTentry deleted and the
#14062graduation docblock carrying lint's line (68/78packages type-checked, no
lintexception listed). The RECONCILED rule thisgate documents ("a TEST_DEBT entry ONLY where no tsconfig the typecheck script
invokes reads the tests") is what forces the entry's removal once
typechecknames a test program — I attempted to capture the RED reading directly (entry
restored on top of the already-wired
typecheckscript, via a temporarygit checkout HEAD --/git applyround-trip, nothing left uncommitted) but threeattempts under heavy shared-box contention each hit
os-verify-lock'squeue-timeout (one holder alone held the lock 12+ minutes on an unrelated
command) without ever acquiring; I did not keep retrying past that and report
this one specific reading as NOT MEASURED rather than fabricate it. The final
GREEN state (below) is measured, and re-confirmed again after merging
origin/main(ledger re-regenerates identically: 2 files / 6 errors / 2signatures, unchanged by the concurrent PR #14437 that also touches
packages/lint/src/**).Not in scope
Per the file-surface constraint, no edits to
packages/lint/src/**— the 6TS6059errors are ledgered, never fixed here.Gates
node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --ran RUN_RECORD_PATHat
0a2b43d11(post-merge, no staleness warning): 46 derived, 46 run, 0NOT-MEASURED, 0 UNRUN. Of those 46, three exit 3 (documented PREREQUISITE
NOT MET, not a red):
check:dual-build-cjs-loadsandcheck:type-check-debt --re-measure(both need a fullpnpm buildworkspace closure this run neverbuilt) and
check:test-completeness(needs a savedturbo run testlog CIproduces). Everything else passed. Also ran (touched
scripts/**):check:ratchet-remedy-authority,check:declared-population-live,check-self-test-wired.mjs,check-self-test-workflow-commands.mjs,check-type-check-coverage.mjs --self-test— all green.Generated by Claude Code
Generated by Claude Code