docs(oxc): retain tsc with shadow evidence (sc-1680) - #399
Conversation
## Summary - compare Devkit's authoritative TypeScript 6.0.3 check with Oxc's current type-aware lint path on the exact repository input set - prove a focused two-error fixture is diagnosed identically by both engines - retain `tsc --noEmit` because the candidate does not yet preserve compiler/configuration semantics - save fresh-cache paired CPU, wall-time, and process-tree RSS evidence for the future revisit ## Decision Oxc's type-aware path is much faster, but it is not a drop-in TypeScript compiler authority today. Devkit remains on TypeScript 6.0.3 while the tested `tsgolint` path uses TypeScript 7.0.2 semantics; broad directory arguments also select config-excluded tests, and project-reference/build-emission behavior is not proven. Repository parity was evaluated over the exact 236 TypeScript inputs selected by Devkit. Both tools were also run against a temporary focused fixture and reported exactly the same two `TS2322` diagnostics at 1:7 and 4:3. That is encouraging shadow evidence, not enough semantic coverage to replace `tsc`. ## Benchmark | Runner | Median wall | Median CPU | Median tree RSS | | --- | ---: | ---: | ---: | | `tsc --noEmit` | 3.315 s | 5.020 s | 461.0 MiB | | Oxc + tsgolint | 0.500 s | 0.990 s | 405.4 MiB | | Delta | -84.9% | -80.3% | -12.1% | Method: Node 24.19.0, 3 discarded warm-ups, 10 alternating measured samples, with every measured command run in its own fresh `git archive` fixture/cache location while sharing installed dependencies. ## Ownership retained - `tsc --noEmit`: authoritative TypeScript diagnostics and configured project semantics - `tsc -p tsconfig.build.json`: JavaScript build emission/import-extension rewriting; declarations are disabled - Oxc type-aware checks: shadow/revisit candidate only ## Validation - exact 236-input manifest assertion - focused 2/2 diagnostic parity fixture - fresh-fixture benchmark arithmetic/assertions - decision-record checker - `bun run lint` - `git diff --check` - GitNexus staged change analysis: LOW, documentation/evidence only Shortcut: sc-1680
|
Warning Review limit reached
Next review available in: 47 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
tsc --noEmitbecause the candidate does not yet preserve compiler/configuration semanticsDecision
Oxc's type-aware path is much faster, but it is not a drop-in TypeScript compiler authority today. Devkit remains on TypeScript 6.0.3 while the tested
tsgolintpath uses TypeScript 7.0.2 semantics; broad directory arguments also select config-excluded tests, and project-reference/build-emission behavior is not proven.Repository parity was evaluated over the exact 236 TypeScript inputs selected by Devkit. Both tools were also run against a temporary focused fixture and reported exactly the same two
TS2322diagnostics at 1:7 and 4:3. That is encouraging shadow evidence, not enough semantic coverage to replacetsc.Benchmark
tsc --noEmitMethod: Node 24.19.0, 3 discarded warm-ups, 10 alternating measured samples, with every measured command run in its own fresh
git archivefixture/cache location while sharing installed dependencies.Ownership retained
tsc --noEmit: authoritative TypeScript diagnostics and configured project semanticstsc -p tsconfig.build.json: JavaScript build emission/import-extension rewriting; declarations are disabledValidation
bun run lintgit diff --checkShortcut: sc-1680