feat: add searchable Active Profile picker
This commit is contained in:
@@ -4,16 +4,16 @@
|
||||
|
||||
**Blocked by:** 02 — Deliver the Operations Console dashboard; 04 — Unify operation coordination and status feedback.
|
||||
|
||||
**Status:** ready-for-agent
|
||||
**Status:** done
|
||||
|
||||
- [ ] A dashboard action opens a keyboard-only modal Profile picker.
|
||||
- [ ] The Active Profile is pinned first and all remaining Profiles are sorted by name.
|
||||
- [ ] The picker supports filtering and scrolling across more Profiles than fit in the terminal.
|
||||
- [ ] Enter activates the selected Profile and Escape closes the picker without mutation.
|
||||
- [ ] Activation uses the unified progressive operation contract and displays per-Target progress on the dashboard.
|
||||
- [ ] Docker restart confirmation appears when required, with cancellation as the safe default.
|
||||
- [ ] Partial failure retains successful Target updates, closes or preserves the picker predictably, and focuses the first failed Target.
|
||||
- [ ] Search text and selection survive resize when the selected Profile still exists.
|
||||
- [ ] Empty and no-match states provide clear next actions without conflating switching with creation.
|
||||
- [ ] Profile names and all operation text are defensively redacted before rendering.
|
||||
- [ ] Complete-Model tests cover ordering, search, keyboard selection, resize, activation, confirmation, cancellation, partial failure, and empty states.
|
||||
- [x] A dashboard action opens a keyboard-only modal Profile picker.
|
||||
- [x] The Active Profile is pinned first and all remaining Profiles are sorted by name.
|
||||
- [x] The picker supports filtering and scrolling across more Profiles than fit in the terminal.
|
||||
- [x] Enter activates the selected Profile and Escape closes the picker without mutation.
|
||||
- [x] Activation uses the unified progressive operation contract and displays per-Target progress on the dashboard.
|
||||
- [x] Docker restart confirmation appears when required, with cancellation as the safe default.
|
||||
- [x] Partial failure retains successful Target updates, closes or preserves the picker predictably, and focuses the first failed Target.
|
||||
- [x] Search text and selection survive resize when the selected Profile still exists.
|
||||
- [x] Empty and no-match states provide clear next actions without conflating switching with creation.
|
||||
- [x] Profile names and all operation text are defensively redacted before rendering.
|
||||
- [x] Complete-Model tests cover ordering, search, keyboard selection, resize, activation, confirmation, cancellation, partial failure, and empty states.
|
||||
|
||||
Reference in New Issue
Block a user