You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(tooling): make check:type-source-resolution per-program, not per-package (#11922)
The gate built each package's program from `join(pkg.dir, 'tsconfig.json')`
and nothing else, so every other tsc program in the package was outside its
declared population. That is not an exotic case here: the repair this repo
PRESCRIBES for a hidden test layer -- AGENTS.md and check-type-check-coverage's
TESTS_COVERED docs -- is a SIBLING `tsconfig.test.json` named in the `typecheck`
script, and CI runs it on every PR. Following the house pattern was therefore
what made an exposure invisible.
Measured on packages/triggers/trigger-record-change before the change, the
same 7 test files with the same four dist-resolved type imports:
through the BUILD config exit 1, "NEW dist-resolved type import(s):
driver-sql, formula, objectql, service-automation"
through the SIBLING config exit 0, count unchanged
The population is now every `tsconfig*.json` a package's `typecheck` script
NAMES -- not every one on disk. `packages/cli/tsconfig.build.json` is present
and named by nothing, and stays out: a gate that measures a program nobody
runs looks stronger while reading as covered.
The predicate is `configsNamedByTypecheck`, extracted from
check-type-check-coverage.mjs into scripts/typecheck-configs.mjs so both gates
share one answer; its cases moved with it and both gates fold them in.
Registry re-baseline, both figures from `--list` on the same checkout:
before 77 programs / 77 packages, 51 entries, 221 package-dep pairs
after 93 programs / 77 packages, 54 entries, 233 package-dep pairs
Claude-Session: https://claude.ai/code/session_015ahemw8RcTgqtxrj15PEZx
Co-authored-by: Claude <noreply@anthropic.com>
0 commit comments