refactor: move sniffler CLI to cac#3
Merged
Merged
Conversation
Track imports and re-exports by entity so barrel changes only reach real consumers.
Thread source extensions through resolver context, add file-only candidate probing, and cover the new resolution order with regression tests.
Normalize tsconfig alias targets and workspace package roots before they enter the graph, and cover the relative path behavior with regression tests.
Select impacted tests, append them to a runner command, and exit with the runner status.
Add an opt-in Vitest benchmark that measures Sniffler's core impact pipeline on a synthetic in-memory project, plus a dedicated benchmark script and README entry.
Add concise AGENTS.md rule for performance-sensitive changes and PR benchmark attachment.
Add recursive .DS_Store rules so Finder metadata stays out of the repo.
Replace hand-rolled argument parsing with cac command definitions. Keep CLI output routed through injected IO and update coverage for positional files.
Adds missing coverage for the run command with --base/--head and updates docs to show positional changed-file arguments.
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.
What is this?
This PR moves Sniffler's CLI from hand-rolled parsing to
cac. It changes the CLI contract to use positional changed files or--base/--head, removes--changed, and adds explicit--versionsupport.How does it work?
This PR builds a fresh
cacinstance for eachrunClicall, definesimpactandruncommands with variadic positional file args, and maps parsed options into the existing impact/run command inputs. Validation for selection mode, output format, and runner command boundaries stays in the CLI layer, so command execution and dependency injection remain unchanged.Why is this useful?
--changedcompatibility shim.