diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml index f6cdbe4d98..013c2e5ca6 100644 --- a/.github/workflows/quality.yml +++ b/.github/workflows/quality.yml @@ -143,6 +143,20 @@ jobs: - run: npm run check:complexity-ratchets - name: Typecheck (core) run: npm run typecheck:core + # WS4.2 (v3.8.49 plan): TypeScript 7 native-compiler SHADOW — advisory only. + # TS7 went GA 2026-07-08 with 8-12x type-check speedups; its Compiler API only + # arrives in 7.1, so typescript-eslint / type-coverage / Stryker stay on 6.x + # (the hybrid is the officially documented pattern). Isolated npx on purpose: + # installing an alias package could collide node_modules/.bin/tsc with 6.x. + # Promote to the blocking gate after ~1 week of parity with the step above. + - name: Typecheck (core) — TS7 native shadow (advisory) + continue-on-error: true + run: | + RC=0 + START=$(date +%s) + npx -y -p typescript@7 tsc --pretty false -p tsconfig.typecheck-core.json || RC=$? + echo "[ts7-shadow] exit=$RC elapsed=$(( $(date +%s) - START ))s — the 6.x step above stays authoritative" + exit $RC # TIA: build the impact map at runtime (gitignored, ~21MB) and run only the # unit tests impacted by this PR's changed files. On hub/unmapped changes the # selector returns __RUN_ALL__ — full-suite authority is the parallel diff --git a/changelog.d/maintenance/ts7-shadow-typecheck.md b/changelog.d/maintenance/ts7-shadow-typecheck.md new file mode 100644 index 0000000000..e73b70f8de --- /dev/null +++ b/changelog.d/maintenance/ts7-shadow-typecheck.md @@ -0,0 +1 @@ +- **CI**: TypeScript 7 (native compiler, GA 2026-07-08) now runs as an advisory SHADOW of the blocking `typecheck:core` gate on the fast path — same tsconfig, isolated `npx` (no dependency change; the Compiler API only lands in TS 7.1, so typescript-eslint/type-coverage/Stryker stay on 6.x). Local parity proven (0 errors on both, exit 0); promotion to the blocking gate after ~1 week of CI parity