fix(cli): render multi-select prompts with checkbox markers - #1463
Conversation
The init/update tool picker and the schema init artifact picker are multi-selects but rendered radio-button symbols, so users read them as single-choice. Use the [x]/[ ] markers the config profile picker already uses. Closes #647 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughInteractive selection prompts now display checkbox-style markers instead of radio-style symbols, with tests covering selection and deselection states. ChangesCheckbox marker rendering
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
test/prompts/searchable-multi-select.test.ts (1)
224-230: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winAssert the
[ ]marker after deselection.The current assertion only checks that
[x]disappears, so it would still pass if the marker reverted to○or disappeared entirely. AssertrenderOutputcontains[ ]after the second Space press.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@test/prompts/searchable-multi-select.test.ts` around lines 224 - 230, Update the deselection test case to assert that renderOutput contains the “[ ]” marker after the second pressKey('space') call, while retaining the existing assertion that “[x]” is removed.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@test/prompts/searchable-multi-select.test.ts`:
- Around line 224-230: Update the deselection test case to assert that
renderOutput contains the “[ ]” marker after the second pressKey('space') call,
while retaining the existing assertion that “[x]” is removed.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 44d35acd-8d74-44ca-9826-d82c145eb904
📒 Files selected for processing (3)
src/commands/schema.tssrc/prompts/searchable-multi-select.tstest/prompts/searchable-multi-select.test.ts
Deploying openspec-docs with
|
| Latest commit: |
bcacf2d
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://a115a7bc.openspec-docs.pages.dev |
| Branch Preview URL: | https://fix-multiselect-checkbox-mar.openspec-docs.pages.dev |
CodeRabbit nit: the deselect test passed even if the marker reverted to a radio symbol instead of [ ]. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
alfred-openspec
left a comment
There was a problem hiding this comment.
Reviewed at c177063. The init/update and schema multi-selects now use the established [x]/[ ] markers while status glyphs remain unchanged; 36 focused tests, build, lint, the 2,282-test cross-platform suite, and all CI/security checks pass.
Status: LGTM — one-line rendering fix plus one theme override, no behavior change.
What was wrong: The tool picker in
openspec init/openspec updatesupports selecting multiple agents, but drew radio-button symbols (◉/○), so first-time users read it as single-choice (#647). The artifact picker inopenspec schema inithad the same problem via the stock inquirer icons.How it was fixed: Both prompts now draw the
[x]/[ ]checkbox markers theopenspec config profileworkflow picker already uses:src/prompts/searchable-multi-select.ts— selection icon◉/○→[x]/[ ](one line).src/commands/schema.ts— the sametheme.iconoverrideconfig.tsalready applies to its checkbox.The
openspec viewdashboard keeps its◉/○glyphs on purpose: there they mark change status, not a selection, and checkboxes would falsely imply toggleability.Replication / proof:
openspec init— every tool row shows a radio circle (screenshot in OpenSpec agent selection should use checkboxes instead of radio buttons since allows multiple #647).[ ], pressing Space renders[x], zero radio glyphs in the transcript; same verified foropenspec schema init.Notes / nits:
◉is East-Asian-Ambiguous (2 cells in some CJK terminals) and tofus on legacy Windows consoles.init.ts,update.ts) only read the returned value array, and no test or doc pins the old glyphs — checked repo-wide.Closes #647
🤖 Generated with Claude Code
Summary by CodeRabbit
[x]for selected items and[ ]for unselected items.