Commit bea91b6
committed
fix(devx): pin test-typecheck debt by error IDENTITY, not per-file count
The EXACT ratchet in scripts/check-test-typecheck.mts recorded ONE INTEGER
per file. An integer measures a quantity, never an identity, so a file's
entire error population could rotate underneath a constant number and the
gate printed OK.
Measured by ablation in packages/rest, not argued (#13470): src/rest.test.ts
was recorded at 2, PR #13466 replaced both hand-built IHttpRequest literals
with a typed builder, and it measured 2 again -- while NEITHER error was the
same error. tsc reports at most ONE argument-assignability error per call, so
the request literals had been MASKING response-literal errors at the very same
two call sites; repairing the request unmasked the response one line down.
A ledger entry is now a map of normalized error SIGNATURE to count. A
signature is the TS code plus the diagnostic message with churn-prone spans
collapsed, and it carries NO line or column -- so unrelated edits above an
error do not touch the ledger, and only a change to WHICH error is present
does. Both halves of the set difference are named: which signature ARRIVED
and which VANISHED.
Counts are provably unmoved by the migration: rest 1 file / 2 errors, spec
54 files / 262 errors, identical before and after.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Pk26oZ12t5N1hwGW1m1MgC1 parent 0e810dd commit bea91b6
3 files changed
Lines changed: 624 additions & 129 deletions
File tree
- packages
- rest
- spec
- scripts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | | - | |
| 2 | + | |
| 3 | + | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
0 commit comments