Skip to content

fix(ci): make typecheck follow the project references - #1143

Open
itsmunzir wants to merge 1 commit into
TabularisDB:mainfrom
itsmunzir:fix/typecheck-project-references
Open

itsmunzir wants to merge 1 commit into
TabularisDB:mainfrom
itsmunzir:fix/typecheck-project-references

Conversation

@itsmunzir

Copy link
Copy Markdown
Contributor

What

pnpm run typecheck (the CI "Typecheck" step) runs tsc --noEmit. The root tsconfig.json has "files": [] and only references tsconfig.app.json and tsconfig.node.json. Without -b, tsc doesn't follow references, so the step type-checks nothing and always passes.

To check, I added a file with a deliberate error on main:

const x: number = "nope";
Command Exit
tsc --noEmit (current typecheck) 0 — the error isn't reported
tsc -b 2 — TS2322: Type 'string' is not assignable to type 'number'

build already runs tsc -b, but the build job is skipped on pull requests, so a type error would only surface after merging.

Change

"typecheck": "tsc -b", the same check build runs. Both referenced configs already set noEmit: true, so nothing is emitted; tsc -b only writes its .tsbuildinfo files under node_modules/.tmp/, as build does today.

main is clean under the real check (0 errors), so this doesn't turn CI red.

Not in this PR

tsconfig.app.json includes src but only a few files under tests/, so most test files still aren't type-checked. Widening that is a separate change and may surface existing errors.

AI assistance disclosure

I made this change with help from Claude Code: it found the issue, verified both commands and drafted this description, and the change was reviewed before this PR was opened.

@kilo-code-bot

kilo-code-bot Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

The change switches typecheck from tsc --noEmit to tsc -b. The root tsconfig.json has "files": [] and only project references, so the old command checked nothing. tsc -b follows the references to tsconfig.app.json and tsconfig.node.json, matching what the build script already runs. Both referenced configs set noEmit: true and write only .tsbuildinfo under node_modules/.tmp/. The only other caller is the CI step in .github/workflows/ci.yml, which needs no change.

Files Reviewed (1 file)
  • package.json

Reviewed by claude-sonnet-5.5 · Input: 252 · Output: 1.4K · Cached: 152.5K

Review guidance: REVIEW.md from base branch main

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant