feat: add multi-session desktop workspace

This commit is contained in:
2026-08-13 21:34:04 +02:00
parent 12b9b83d51
commit 475f95ba70
56 changed files with 8998 additions and 3805 deletions
+7 -21
View File
@@ -46,28 +46,14 @@ Prove that the always-running Pi bridge is correctly scoped, recoverable, and us
## Manual Noctalia checklist
### Startup and routing
### Aggregate launcher
- [ ] Starting the bridge creates the home agent and shows it in the bar/popover.
- [ ] Shortcut on a known focused worktree opens that worktree’s agent.
- [ ] Missing or ambiguous focus opens the selector with home preselected.
- [ ] Popover project/session manager switches agents explicitly and visibly.
- [ ] Escape closes the popover without aborting streaming work.
### Status and conversation
- [ ] Bar shows state glyph/color, active project, and attention badge.
- [ ] Popover streams assistant text and tool activity without blocking the composer.
- [ ] Prompt, steer, follow-up, and abort map to the intended Pi action.
- [ ] Queue changes are visible and do not reorder or lose user messages.
- [ ] Pi model/thinking values display correctly and forwarded changes round-trip from Pi.
### Extension prompts
- [ ] Select, confirm, input, and editor requests render as native popover UI.
- [ ] The response reaches the originating extension unchanged.
- [ ] A pending request produces an attention badge while the popover is closed.
- [ ] TUI-only unsupported custom UI is presented as an explicit unsupported/error state, never silently approved.
- [ ] The widget shows aggregate open, working, attention, recovering, and error counts from `get_workspace_summary`.
- [ ] A background session requiring extension attention increases the aggregate attention count.
- [ ] Clicking the widget starts the bridge when needed and toggles the desktop UI.
- [ ] Noctalia contains no composer, session switcher, or extension-response control.
- [ ] The configured `PI_STATUS_UI_BINARY` and fallback binary both launch with `--toggle`.
- [ ] Restarting Noctalia reconnects to the bridge summary without changing active session runtimes.
## Soak and fault scenarios