fix(uncheck): second whole-package review: safer fixes, fewer false greens, faster tsc plans - #21
Merged
Merged
Conversation
… folder, place hook lines around husky 4 and quoted setup
…ymlinked --cwd, test the hook lock deterministically
…port-only sherif read-only
- use the nearest tsconfig.json above a folder that has none, scoped to the folder's files - add the projects of workspace packages that depend on a selected one - check reference graphs whose projects would emit next to their sources with tsc -p --noEmit - pass config paths starting with - or @ to tsc with ./ - leave unreachable tsconfig paths to tsc instead of aborting the run - skip shared bases named tsconfig.json, select the extenders of a deleted base
- build the clean projects that -p checked ones reference first, so -p reads fresh declarations - look for a tsconfig.json above the folder only inside its git repository - test workspace dependents reached through references and peer or optional dependencies
…block and checks the agent's project
…ts and ends with the verdict
…iew-3101ec # Conflicts: # packages/uncheck/src/commands/uncheck.ts
… --cwd, verdict last
…ves a dying commit index and names what it skipped
…reads setup without comments, keeps lines in blocks
…s solutions in the -p fallback, uses the config above a folder without its own, and names a missing typescript - R5: a references member that emits beside its sources stays in tsc -b when git ignores its would-be JavaScript - R8: an affected solution without sources in a -p graph is checked with -p, so a missing reference fails with TS6053 - R6: the config above cwd is used whenever cwd has no tsconfig.json of its own, next to the nested ones - R7: workspace dependents also come from the packages owning the given files, before the not-covered exit - R9: a deleted base extended by package name selects its extenders - R11/R17: no tsconfig.json fails even for unrelated files; a missing typescript reads 'not installed' - R19: README scopes deleted or moved files to the hooks
…etc/gitattributes and ancestor ignore files, wait for parallel prepares
…ows links, reads Copilot's sessionId and reports a repository git refuses
… repositories in every command
- the runner skips a check that plans no commands, replacing the guards in oxlint and oxfmt and the evenIfRequired flag; literal runs imply the fixes stay within the given files - shared helpers replace copies (fileKind, resolveFolders, isOutside, logLines, a batched git listing, one copyBack); rawDiff always ends with -- - the agent hook finds its repository with one git call and looks it up once when the agent works in its project folder - tsc reads each config and its extends chain once per run and asks git once which projects build in place, so planning a 300-package monorepo drops from about 2-5 s to under 0.2 s with the same plans - tests share their repeated constants and assertion helpers
|
This run was cut short: your Pullfrog Router balance ran out mid-run. OpenRouter stopped the agent because the per-run budget was exhausted. Your wallet is now negative; top up or enable auto-reload to keep runs flowing. Top up balance → · Enable auto-reload →
|
commit: |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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.

A second review of the whole package. Every finding was reproduced with the real CLI and checked by independent reviewers before it was fixed.
--fixno longer rewrites installed packages. The hooks and file-scoped runs now catch the type errors a full run catches. The pre-commit hook keeps working through package renames, sparse checkouts and hooks written by older versions.Fixes
uncheck --fix, the agent hook and the pre-commit hook never hand oxlint or oxfmt a file innode_modules, or a link into it or out of the project. With pnpm, this rewrote the shared store.tsconfig.jsonabove it;vite.config.jsnext tovite.config.tsin Vite 4/5 projects, and projects built in place are checked against fresh declarations.execare moved to where they run.--cwdlines are left alone.uncheck staged:git commit -i/-pputs the unstaged changes back.--amend./goal) continued the turn.sessionIdis read.--dirthat names a file gives a clean error."fix": trueno longer rewrites files on report-only runs.pnpm-workspace.yamlis not treated as a workspace root.prepare,stagedand the agent hook all report a repository git refuses (dubious ownership), and a symlinked--cwdresolves correctly.Output changes
▶ oxlint --ignore-pattern=node_modules --no-error-on-unmatched-patternand▶ oxfmt --check --no-error-on-unmatched-pattern. A folder with nothing to lint or format now passes.git --literal-pathspecs diff --cached --quiet -- "dir" || [ ! -d "dir" ] || (cd "dir" && …) || exit 1. The nextpreparerewrites existing lines in place.Performance
Docs
prepareflags belong in thepreparescript;|| exit 0;Testing
uncheckpasses on this repo, and the production bundle builds and runs.