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
{{ message }}
Repository navigation
Commit 24f2191
Browse filesBrowse the repository at this point in the historyBrowse files
chore(pm): the root-program change kind names typecheck:root
With the root graduated, check:type-check-debt no longer measures the
root program, so a card editing a root TypeScript file was sent to a gate
that cannot red on it. The family parser now reads pnpm typecheck:root as
a family, and the root-program change kind names it with a rewritten why.
Claude-Session: https://claude.ai/code/session_01ENjVvxdwZxosWSS4Fqazu1
Co-authored-by: Claude <noreply@anthropic.com>
why: 'the ROOT ledger entry (@objectstack/spec-monorepo) IS this program, so a file here moves its raw tsc count even though your diff touches no package — measured, one added bench file put it 19 over and cost a CI round. It is a shrink-only ratchet: the repair is to make the file typecheck, and raising the entry is maintainer-only — ⛔ MAINTAINER-ONLY under the #8435 convention — never the co-equal option. Most of this class is one missing setting rather than real breakage — the root config carries lib ES2020 and no types, so process and console are absent unless the file declares them ambiently. Needs the workspace closure BUILT — on an unbuilt worktree it refuses outright, and that throw means NOT MEASURED, never `not applicable to me`. Build first, exactly as lint.yml does: pnpm exec turbo run build --filter=./packages/* --filter=./packages/*/* (quote the filter values for your shell)',
981
+
name: 'typecheck:root',
982
+
why: 'nothing else type-checks this program: it belongs to no package, so the turbo typecheck never reads a file here, and the root has no ledger entry left to absorb an error. lint.yml runs this script in the Type Check source-gates lane, and one new error reds that lane. The repair is to make the file typecheck, never to add an exclude or bring back a DEBT entry. It needs no build: the program reads no package dist. The program carries lib ES2022 and types node, so `process`, `console` and the `node:*` builtins resolve without a reference line',
t('the root-program line refuses an exclude or a returning ledger entry and states the real repair', /never to add an exclude/.test(rootLine) && /make the file typecheck/.test(rootLine));
4439
+
t('and says it needs no build, unlike the ratchet lines', /needs no build/.test(rootLine) && !/closure BUILT/.test(rootLine));
4430
4440
// Re-pointed rather than deleted (#12074). This case pinned one property —
4431
4441
// a `.mjs` checker script is NOT in the ROOT tsc program, unlike the `.mts`
4432
4442
// bench file above — and the gate-script kind below now makes the same path
t('a root-level test file hits both kinds, so the ratchet renders STALE under each', stale.filter((l) => l.includes('\u26a0 check:type-check-debt: STALE')).length === 2);
5831
+
t('a root-level test file hits both kinds: the ratchet renders STALE under the test kind, the root type check under the root kind', stale.filter((l) => l.includes('\u26a0 check:type-check-debt: STALE')).length === 1 && stale.filter((l) => l.includes('\u26a0 typecheck:root: STALE')).length === 1);
5821
5832
// Per NAME, anchored on both sides of the rendered name (`⚠ x: STALE`), so the
5822
5833
// pair that shares one script is reported apart: a count alone stays green if
5823
5834
// one of the two is dropped from the table and something else is added, and a
0 commit comments