P1 — build the Quick Copilot summon window and full-chat handoff #86

Closed
opened 2026-08-12 14:42:07 +00:00 by lost-rob0t · 0 comments
lost-rob0t commented 2026-08-12 14:42:07 +00:00 (Migrated from github.com)

Motivation

Zara needs a fast Spotlight/Raycast-style interaction surface that can be summoned, used entirely from the keyboard, and expanded into the persistent chat without losing state.

Scope

  • Add a lightweight Quick Copilot PySide6 window backed by the same conversation/context models as #85.
  • Autofocus the composer on show.
  • Escape hides, Enter submits, Shift+Enter inserts newline.
  • Show compact assistant response, cancel/stop, model/provider indicator, voice/attachment affordances, and context chips.
  • Add one-action handoff into Full Chat while preserving the exact conversation ID, turn state and context attachments.
  • Recover sensible geometry on multi-monitor/display changes.
  • Keep show/hide fast; do not eagerly initialize heavy runtime components on every summon.

Acceptance criteria

  • Quick Copilot and Full Chat reference the same conversation model/service.
  • Expand/handoff does not duplicate messages or context.
  • Keyboard behavior matches the documented contract.
  • Repeated show/hide is stable and restores focus correctly.
  • Active generation can be cancelled from Quick Copilot.
  • Quick window works when invoked from tray even before global shortcuts are implemented.
  • Multi-monitor recovery prevents reopening entirely offscreen.

Testing requirements

  • Qt tests for focus, keyboard submit/newline/Escape, show/hide, cancellation and handoff.
  • Tests proving the same conversation ID/context survives handoff.
  • Geometry recovery tests.
  • Full repository/Nix suite.

Dependencies

  • #84 desktop shell.
  • #85 shared conversation/full chat.
  • Design: #81.

Explicit non-goals

  • No platform global-shortcut implementation in this issue.
  • No separate quick-mode LLM/runtime.
  • No always-on screen capture.
  • No duplicated persistence model.
## Motivation Zara needs a fast Spotlight/Raycast-style interaction surface that can be summoned, used entirely from the keyboard, and expanded into the persistent chat without losing state. ## Scope - Add a lightweight Quick Copilot PySide6 window backed by the same conversation/context models as #85. - Autofocus the composer on show. - `Escape` hides, `Enter` submits, `Shift+Enter` inserts newline. - Show compact assistant response, cancel/stop, model/provider indicator, voice/attachment affordances, and context chips. - Add one-action handoff into Full Chat while preserving the exact conversation ID, turn state and context attachments. - Recover sensible geometry on multi-monitor/display changes. - Keep show/hide fast; do not eagerly initialize heavy runtime components on every summon. ## Acceptance criteria - [ ] Quick Copilot and Full Chat reference the same conversation model/service. - [ ] Expand/handoff does not duplicate messages or context. - [ ] Keyboard behavior matches the documented contract. - [ ] Repeated show/hide is stable and restores focus correctly. - [ ] Active generation can be cancelled from Quick Copilot. - [ ] Quick window works when invoked from tray even before global shortcuts are implemented. - [ ] Multi-monitor recovery prevents reopening entirely offscreen. ## Testing requirements - Qt tests for focus, keyboard submit/newline/Escape, show/hide, cancellation and handoff. - Tests proving the same conversation ID/context survives handoff. - Geometry recovery tests. - Full repository/Nix suite. ## Dependencies - #84 desktop shell. - #85 shared conversation/full chat. - Design: #81. ## Explicit non-goals - No platform global-shortcut implementation in this issue. - No separate quick-mode LLM/runtime. - No always-on screen capture. - No duplicated persistence model.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nsaspy/zara#86
No description provided.