chore: suppress existing type errors so lint:tsc can run in CI - #10251
Open
cryptodev-2s wants to merge 9 commits into
Open
cryptodev-2s wants to merge 9 commits into
cryptodev-2s wants to merge 9 commits into
Conversation
cryptodev-2s
force-pushed
the
tsc-suppressions
branch
from
September 15, 2026 15:50
c28d40a to
6a7a76d
Compare
Contributor
Author
|
@mcmire I am still reviewing this however does the idea sounds to you ? |
Collaborator
|
@cryptodev-2s Yeah if you can get this working this would be great! |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit b396a87. Configure here.
cryptodev-2s
force-pushed
the
tsc-suppressions
branch
from
September 21, 2026 12:47
6247710 to
4e4678f
Compare
cryptodev-2s
added this pull request to stack #10315
September 21, 2026 12:47
cryptodev-2s
force-pushed
the
tsc-suppressions
branch
from
September 22, 2026 17:01
4e4678f to
9cef92a
Compare
Adds tsc-suppressions.json, which records how many type errors of each code every file currently produces, in the same shape as eslint-suppressions.json. yarn lint:tsc:check typechecks the repo and fails when a file produces an error the suppressions do not cover, or when a suppression no longer covers anything. yarn lint:tsc:suppress regenerates the file. Also gives the package lint configs a rootDir so that declarations for files outside a package, such as tests/helpers.ts, are emitted into the lint cache rather than into the repo.
Main gained 104 type errors and fixed 10 of them since the suppressions were last generated, which is what the failing lint:tsc:check run on the previous commit reports.
Drops the uuid suppressions now that the mock typings are fixed on main, and picks up the remaining drift.
…eaks Drops a redundant second pass over the errors, unused regex captures, and speculative handling for errors that tsc reports without a file. That last case mattered for a different reason: tsc's exit code was being discarded, so a missing config or a crash produced no parseable errors and the check reported success. It now fails when tsc exits non-zero without reporting any type errors, which covers crashes too.
tsc --build carries on typechecking the remaining projects after one fails to load, so a broken project reference emitted TS6053 alongside 1540 ordinary type errors. The previous guard only fired when no errors were parsed at all, so the check reported success while a whole package went unchecked.
cryptodev-2s
force-pushed
the
tsc-suppressions
branch
from
September 23, 2026 13:26
9cef92a to
9aed625
Compare
This branch was successfully deployed
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 free
to 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.

Explanation
lint:tsctypechecks every package, but the repo currently has 1,591 type errors, nearly all of them in test files. That makes it impossible to enforce typechecking in CI without fixing everything first.This adds
tsc-suppressions.json, which records how many errors of each code every file currently produces, in the same shape aseslint-suppressions.json.yarn lint:tsc:checktypechecks the repo and fails when a file produces an error the suppressions don't cover, or when a suppression no longer covers anything.yarn lint:tsc:suppressregenerates the file.Existing errors stay parked so they can be worked through package by package, while packages that are already clean can't regress. A cold run takes about 12 seconds, so the check is wired back into CI and into
yarn lint.Error messages are deliberately left out of the suppression key. Their wording changes between TypeScript releases, which would invalidate the whole file at once.
Checklist
Note
Low Risk
Changes are CI/tooling and a checked-in suppressions baseline; runtime package behavior is unchanged, though contributors may need
yarn lint:tsc:suppresswhen fixing types.Overview
Adds a suppression-based TypeScript lint gate so the monorepo can run full
tsc --build tsconfig.lint.jsonin CI without fixing ~1,591 existing errors first.tsc-suppressions.jsonrecords allowed error counts per file and TS code (same idea aseslint-suppressions.json, without message text).yarn lint:tsc:checkruns the build, parses output, and fails on new unsuppressed errors or stale suppressions;yarn lint:tsc:suppressregenerates the file. Supporting logic lives underscripts/lib/with Jest coverage.yarn lintand the lint CI matrix now includelint:tsc:check.tsconfig.packages.lint.jsonsetsrootDir: "."so lint declaration emit does not spill into the repo root when tests import cross-package helpers.Reviewed by Cursor Bugbot for commit 9aed625. Bugbot is set up for automated code reviews on this repo. Configure here.