Repository navigation
ci: typecheck with ts-rust (~10x faster) - #2531
Merged
Merged
Conversation
Contributor
|
@flamboh is attempting to deploy a commit to the Cap Software Inc Team on Vercel. A member of the Team first needs to authorize it. |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
richiemcilroy
marked this pull request as ready for review
October 14, 2026 00:51
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.
Feel free to close. Mostly for the bit.
Note
🤖 Claude Opus 5.5 on behalf of Oliver
Why
The
TypecheckCI job spends most of its time inbun run typecheck→tsc -b. On recent greenmainruns that step takes ~95–103 s onubuntu-latest. tsc-rs is a Rust port of the TypeScript 7 compiler with the Effect language-service diagnostics built in, so it checks this workspace (Effect rules included) in a fraction of that.What changed
typechecknow runstsc-rs -b(pinnedtsc-rs@0.6.0).typescriptstays for Next, editors and the othertscjobs.tsc5.9:baseUrl(removed in TS 7) fromapps/web,apps/chrome-extension,packages/ui,packages/utilsandpackages/env, and madepathstargets./-relative.apps/webgets ahooks/*path for the 31 barehooks/...imports that relied onbaseUrl.apps/chrome-extension:"types": ["chrome"], since TS 7 no longer auto-includes every@types/*package.noUncheckedSideEffectImports: falsewhere CSS side-effect imports are used (apps/web,apps/chrome-extension,packages/ui), since TS 7 enables the check by default.packages/ui-solid: explicitrootDir: "./src"(TS5011 in TS 7), which is the valuetscalready computed.ignoreEffectWarningsInTscExitCode: trueinpackages/config/base.tsconfig.json. CLItscnever ran the Effect plugin, so its warnings now print in CI without failing it. Effect errors still fail.VideosPolicy.ts:yield* Effect.fail(...)→return yield* Effect.fail(...)at the two sites flagged by Effect'smissingReturnYieldStarerror. Runtime behavior is unchanged because the failure already short-circuited.Benchmarks
Full
-bbuild from a clean state: every*.tsbuildinfoand emitteddistremoved before each run.hyperfine, 1 warmup + 5 runs, same commit, afternext typegen. Both checkers exit 0 with the same tree, and both report planted type errors inpackages/web-domainandapps/web.tsc5.9tsc-rstsc-rs --fasttaskset -c 0-3, ≈ubuntu-latest)--fastdoesn't help here because in build mode it keeps 4 checkers.--fast --checkers 8on the M4 Pro got 1.99 s (~7%) for +15% memory, so this PR uses the default mode. Peak memory also drops: 3.6 GiB → 2.7 GiB on the M4 Pro.Projected CI: the ~100 s
Typecheckstep should land around 15 s. This PR's own CI run will show the real number.Caveats
tsc -b/ monorepo issues, and none of them reproduced here. If you'd rather be cautious, this can run as an extra non-blocking job next totscfirst.Made with Claude Opus 5.5 in Claude Code (T3 Code).

Confidence Score: 5/5
The PR appears safe to merge; no actionable regression was established.Summary
Switches the root
typecheckcommand to pinnedtsc-rs@0.6.0while keeping TypeScript for other tooling.tsc-rs.Acknowledgment: flamboh explicitly notes that the new compiler has known build-mode and monorepo caveats and that this workspace still uses TypeScript 5.9 for other tooling. These intentional trade-offs are not reported as findings.
Reviews (1) · Last reviewed commit: "ci: typecheck the workspace with tsc-rs" · Reviewed by Greptile