Repository navigation
fix(cli): render setup validation errors cleanly - #966
Merged
Merged
Conversation
Keep unsupported user-scope combinations inside the command error boundary so intentional refusals print remedies without a stack trace. Document current registration and installation scope limits. Refs #891 AIDD-Session-Id: 01a111bd-4959-7be1-9ad4-093a46ef8295
Record the approved review and outcome challenge for #891, mark the plan reviewed, and clarify that dependency construction assertions apply to the setup action. AIDD-Session-Id: 01a111bd-4959-7be1-9ad4-093a46ef8295
The table carried a second subject — plugin install file scope — and a closing paragraph that restated it, then recited what the change does not do. Both are out of what #891 asks, which is the refusal and the state already shipped. It also stated the support list by hand next to a --help list generated from supportsUserScopeActivation. Two sources for one fact, and only one of them can drift. The table now says the minimum and points at the generated one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> AIDD-Session-Id: bf713ca4-3c1b-491d-ac0a-4d4533330b5c
`referenced-paths` anchors on whatever top-level entry is on disk, so `.aidd/` becomes an anchor the moment a contributor runs the CLI in this checkout. From then on the two pages documenting `.aidd/config.json` — the telemetry opt-in switch a repository commits to turn measurement on — were refused for naming a file this repository deliberately does not hold. Its absence is the state those pages describe. The checker now skips that path where it skips a command or a placeholder. The test states the case with the anchor present, so it is red on a clean clone too, where the old gate passed by accident. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> AIDD-Session-Id: bf713ca4-3c1b-491d-ac0a-4d4533330b5c
… gates on `git push --delete` runs the pre-push gates over a push that carries no commit: 41 seconds of the cli suite to remove a branch. Three measurements say no fix is reachable from inside the hook — lefthook forwards git pre-push stdin to no command, the hook environment is byte-identical to a normal push, and a glob filter still matches. Owning the git hook file to read that stdin is a structural change for a rare operation, so the limit is written down instead, inside the paragraph that already rules on --no-verify rather than beside it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> AIDD-Session-Id: bf713ca4-3c1b-491d-ac0a-4d4533330b5c
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 & why
aidd setup --scope user --ai claude --plugins allnow prints the existing refusal and remedies and exits 1 without a stack trace or minified bundle dump. Help and README explain the shipped user-scope limits.🛠️ How it works
Construct
SetupFlowinside the existing command error boundary. Cover constructor refusals through command and built-binary tests, derive help support from the registry, and update the setup help snapshot. Domain validation and installation capabilities stay as shipped.🧪 How to verify
pnpm --dir cli test: 6,805 passed; one existing opt-in runtime test skipped.The unchanged startup update-check hook may construct dependencies before the setup action runs. The regression proves that a refused setup action does not create its own dependencies. Existing unrelated lint and Vitest deprecation warnings remain.
🔗 Linked issue
Closes #891
✅ I certify