feat: add reusable JSON-driven option picker - #80
Merged
Merged
Conversation
Contributor
Author
Independent Agent review: approvedReview round 1/2 for A reusable JSON-driven option picker (openStatusPicker) covers the requested capability set — data-driven icon/label/description/selected items, four-corner viewport-clamped anchoring, fuzzy token search, keyboard/pointer interaction, and height/width caps with list scrolling and ellipsis — and the model, thinking, effort, and context-budget status-bar pickers now use it via a request/apply protocol while slash-command paths keep the native picker. Pure helpers (filtering, clamping, static option builders) and wiring are covered by focused tests, and all validation passes. Findings
Reviewer checks
Generated by the independent sandboxed Reviewer Agent. The PR still requires human review and merge. |
auchan
force-pushed
the
feat/issue-79-custom-option-picker
branch
from
September 6, 2026 12:17
bd78048 to
0abbd8b
Compare
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.
Summary
Added a reusable webview option picker component (openStatusPicker) with JSON-driven options (icon/label/description/selected), fuzzy token search, keyboard navigation, viewport-clamped four-corner anchoring, and height/width caps with scrolling and ellipsis. The model, thinkingLevel, effort, and contextBudget bottom-bar pickers now request JSON option payloads from the host (PiService buildStatusPickerOptions / applyStatusPickerOption) and open this picker anchored above the clicked status item instead of VS Code's native QuickPick; slash-command entry points keep the native picker as a fallback. Protocol schemas and focused tests cover filtering, placement clamping, static option builders, and end-to-end wiring.
Validation
Closes #79