Skip to content

fix: use actual TypeScript project configs for unused checks - #834

Open
dtdannen wants to merge 1 commit into
peteromallet:mainfrom
dtdannen:codex/fix-typescript-unused-projects
Open

dtdannen wants to merge 1 commit into
peteromallet:mainfrom
dtdannen:codex/fix-typescript-unused-projects

Conversation

@dtdannen

Copy link
Copy Markdown

The unused detector always extended ./tsconfig.app.json from the current project root. Projects with tsconfig.json, nested packages, or an external scan path could silently lose their actual exclusions and compiler options. A missing-config diagnostic could be ignored while declarations from an unintended scope were reported.

Discover the nearest real TypeScript/JavaScript config for scanned files, use the compiler to resolve JSONC and extends, follow project references, and filter rebased diagnostics to scanned files. Find ancestor-installed compilers for nested configs. Configuration errors and interrupted compiler runs now fail explicitly; normal source errors can coexist with valid unused diagnostics. Temporary incremental state stays outside the project's compiler cache.

Validation: 468 TypeScript tests pass, including real-compiler config, exclusion, nested/external path, project-reference, cache, and error regressions. The original excluded-file reproduction now returns no findings. Verified the patched CLI against Alinery (zero unused findings). Independent review reproduced and verified the path/compiler edge cases. Ruff is clean. Full upstream suite: 6,695 passed, 165 skipped, with three unrelated Bash parser failures reproduced on pristine HEAD.

A solution config intentionally validates all referenced projects, even for a narrower source scan; invalid referenced configs remain visible failures.

Fixes #831.

github-actions Bot added a commit to citizenadam/desloppify that referenced this pull request Oct 10, 2026

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.

TypeScript unused detector ignores tsconfig.json and silently uses missing tsconfig.app.json

1 participant