fix: repair the typecheck CI gate and three related hygiene bugs - #16
Open
sreekar2403 wants to merge 1 commit into
Open
fix: repair the typecheck CI gate and three related hygiene bugs#16sreekar2403 wants to merge 1 commit into
sreekar2403 wants to merge 1 commit into
Conversation
The commit that added quality gates shipped with one of them red. - `pnpm typecheck` failed on every clean checkout with 100+ errors. Running `tsc --noEmit` on `shared` never produced `packages/shared/dist/*.d.ts`, but `server` declares a project reference to it, so TS emitted TS6305 and a large TS2339/TS2353 cascade. None were real type errors. Use `tsc --build` for the referenced projects and keep the standalone `noEmit` pass for the client. - `GET /api/tasks` now defaults to `LIMIT 50`, but the Kanban board still fetched without `limit`/`offset` and ignored `total`, so any project with more than 50 cards silently lost cards off the board. Page through `total`. - The `.gitignore` rules for the root build artifacts still named the pre-rename `vitest.config.js`/`.d.ts`; since the rename to `.mts`, `pnpm build` emitted four untracked files that nothing ignored. - `hive.config.json` was both tracked and gitignored, so the ignore rule did nothing and every contributor got a dirty tree and could commit their local machine config. Untrack it and ship `hive.config.example.json` instead. Verified: typecheck exit 0 from a wiped dist/tsbuildinfo state, lint clean, prettier clean, 458 tests passing. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
The commit that added the quality gates ships with one of those gates red. This fixes that, plus three hygiene bugs found alongside it.
The headline bug
pnpm typecheckfails on every clean checkout with 100+ TypeScript errors, which means the newlint-typecheckCI job is red on every push and PR.The cause is the script, not the code. Running
tsc --noEmitonsharedmeanspackages/shared/dist/*.d.tsis never produced — butserverdeclares a project reference toshared, so TS demands the built declarations and emitsTS6305, cascading intoTS2339,TS2353and friends. None of them are real type errors: the tree is type-clean oncesharedis built.The fix is to let
tsc --buildhandle the referenced projects and keep the standalone--noEmitpass for the client (which is not part of the reference graph).Also fixed
GET /api/tasksnow defaults toLIMIT 50, butKanbanPage.tsxstill called it with nolimit/offsetand never read the newtotal, so any project with more than 50 cards lost the rest off the board. It now pages throughtotalat the server's 100-row cap..gitignorebuild-artifact rules. They still named the pre-renamevitest.config.js/.d.ts; since the rename to.mts,pnpm buildemitsvitest.config.mjs,vitest.config.d.mtsand two.mapfiles that nothing ignored — four untracked files in the repo root awaiting the nextgit add -A.hive.config.jsonwas tracked and gitignored. Because it was already in the index the ignore rule did nothing, so every contributor gets a permanently dirty tree and can commit their local machine config over someone else's. Untracked, withhive.config.example.jsonas the tracked copy and a README note.Verification
pnpm typecheck— exit 0 from a wiped state (bothdist/dirs and everytsbuildinfodeleted); previously 100+ errorspnpm lint— cleanpnpm format:check— cleanvitest run— 38 files, 458 tests passinggit check-ignore -vconfirms all four post-build artifacts andhive.config.jsonnow match🤖 Generated with Claude Code