make sidebar filter boxes CLI-addressable via the MessageBus (T-270)
The sidebar/dock filter fields (the shared ClideFilterBox) had no CLI peer — a one-way, UI-only affordance that broke D-6 parity. Add the drive+observe verb `clide ui filter <address> [<text>]`, routed entirely through the kernel MessageBus pub/sub so a box reacts to a published message identically whether the trigger was a UI keystroke or the CLI — keeping extensions first-class (no dispatcher→widget wiring). - ClideFilterBox gains an `address`; when set it listens on `filter.set` for its address and republishes its value on `filter.state`. Null address keeps the box a kernel-free UI widget. - FilterStateCache (new kernel service) caches the latest `filter.state` per address — the bus has no retention, so this backs the observe-half. - ui.filter: with text → publishes `filter.set` (drive); without → reads the cache (observe). Honest toolError when there is no live UI. - Address every box: decisions/tickets/files/git/output/problems panes, the four search boxes, and the pql search/query/markdown inputs. Addresses are the ids from `clide pane list` (e.g. decisions.panel). settings.json: allow the `clide` CLI + relevant skills. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -18,6 +18,13 @@ heading, and (b) bumping `pubspec.yaml` `version:` in the same commit.
|
||||
|
||||
### Added
|
||||
|
||||
- The sidebar/dock **filter boxes are now CLI-addressable** (D-6 parity): `clide
|
||||
ui filter <address> <text>` drives a pane's filter exactly as typing in it
|
||||
would, and `clide ui filter <address>` reads the current value back. Addresses
|
||||
are the box ids from `clide pane list` (e.g. `decisions.panel`, `files.tree`,
|
||||
`search.findInFiles`). Routed entirely through the MessageBus pub/sub — a box
|
||||
reacts to a published `filter.set` the same whether the trigger was a click or
|
||||
the CLI, keeping extensions first-class. (T-270)
|
||||
- Click an inline image card to open it in a full-screen **lightbox** — zoom
|
||||
(scroll/pinch), pan, double-click to reset, `Esc`/backdrop to dismiss — since
|
||||
the cards are often too small to read. `clide image show <path> --fullscreen`
|
||||
|
||||
Reference in New Issue
Block a user