feat(quick-pane): add follow-up chat renewal
This commit is contained in:
@@ -6,36 +6,43 @@
|
||||
|
||||
- Valid defaults load when no Quick Pane configuration exists.
|
||||
- Valid configuration round-trips through native storage.
|
||||
- Invalid workspace, model, prompt, time, and tool values show field errors and retain prior saved state.
|
||||
- Invalid workspace, model, prompt, and tool-call values show field errors and retain prior saved state.
|
||||
- Quick model picker affects quick request only; follow-up model remains configured default.
|
||||
|
||||
### Runtime guardrails
|
||||
|
||||
- Quick runtime receives immutable advisory read-only/no-subagent prompt text plus supplemental prompt.
|
||||
- Mutation, subagent, multi-step, and likely-over-budget requests are instructed to preflight-escalate.
|
||||
- Runtime applies best-effort configured 60-second/6-tool caps from observed events and exposes reason.
|
||||
- Partial result survives a cap; pane transcript is removed and runtime cleanup requested after pane close.
|
||||
- Mutation, subagent, multi-step, and complex requests are instructed to preflight-escalate.
|
||||
- Quick Pane has no time-based abort; configured tool-call guidance remains prompt-only.
|
||||
- Full ordered user/assistant transcript remains visible for follow-ups. Each follow-up clears prior answer/partial-handoff state before model, thinking, or prompt submission.
|
||||
- Reflected user messages are resolved by exact submitted raw-prompt mapping. Supplemental instructions and entered requests containing `\n\nUser request:` render only the exact entered multiline request; unknown Quick Pane advisory prompts are hidden and ordinary user text remains visible.
|
||||
- Tests/documentation state current limitations: Pi RPC cannot trusted-enforce prompt policy or guarantee memory-only temporary sessions.
|
||||
|
||||
### UI and bridge
|
||||
|
||||
- Quick Pane opens/focuses through dedicated native command without changing normal `--new` or `--toggle` behavior.
|
||||
- Workspace and quick-model picker values reach runtime creation.
|
||||
- Permission and clarification extension requests render inline and send correct response payloads.
|
||||
- Retry, model change, and normal-session actions appear for startup/model/crash errors.
|
||||
- Handoff creates normal session with original request, escalation note, workspace, and follow-up model.
|
||||
- Permission and clarification extension requests remain visible inline and send correct response payloads; runtime errors do not erase partial transcript or pending extensions.
|
||||
- `Esc` and **Close** hide without cleanup. Reopening an idle chat at or under three minutes preserves runtime, draft/catalog, and transcript; reopening after more than three minutes renews it.
|
||||
- `Ctrl+N` prevents browser default, aborts active work when needed, retries queued cleanup, clears draft/transcript/raw-prompt mappings, and prepares a fresh runtime/catalog. Idle reset does not send an abort.
|
||||
- Stale runtimes created by superseded preparation are queued after cleanup failure and retried before later stale-chat renewal.
|
||||
- Quick Pane opens at 640×360 with a 520×360 native minimum. Content-driven native growth stops at 520px tall; transcript and model results scroll internally after that.
|
||||
- Settings-startup and model-catalog errors show **Retry**. Catalog retry cleans up failed runtime before replacement preparation; model selection and Send stay disabled until ready.
|
||||
- **Continue in full session** appears after first completed assistant answer with valid handoff settings, plus preserved request/runtime escalation notices. It never starts automatically. Handoff creates normal session with transcript-derived current-chat context, workspace, and follow-up model. Current answer extraction starts only after exact mapped submitted prompt in snapshot transcript; failed follow-ups with no current assistant message never reuse prior answer as partial findings.
|
||||
|
||||
## Manual smoke checklist
|
||||
|
||||
1. Configure default workspace, models, prompt, and 60-second/6-tool limits.
|
||||
1. Configure default workspace, models, prompt, and tool-call guidance.
|
||||
2. Add desktop/WM hotkey using Settings launch command.
|
||||
3. From no running GUI process, invoke hotkey and verify Quick Pane opens/focuses.
|
||||
4. Submit short answer-only request; verify result within 60 seconds.
|
||||
4. Submit a short answer-only request; verify no time-based abort and visible manual **Continue in full session** after completion.
|
||||
5. Submit read-only inspection request; answer any external-read permission prompt inline.
|
||||
6. Submit mutation or multi-step request; verify reason and **Continue in full session**.
|
||||
7. Continue; verify normal session receives handoff and follow-up model.
|
||||
8. Close Quick Pane; reopen and verify quick transcript is absent.
|
||||
9. Select unavailable model or induce startup failure; verify inline recovery options.
|
||||
8. Close Quick Pane and reopen within three minutes; verify idle runtime, draft/catalog, and full transcript remain. Repeat after more than three idle minutes; verify fresh chat/runtime appears.
|
||||
9. Press `Ctrl+N` while idle and active; verify fresh empty chat in both cases and active work aborts before replacement.
|
||||
10. Verify pane opens at 640×360, grows only to 520px tall as transcript grows, then keeps transcript/model results scrolling internally.
|
||||
11. Induce settings-startup or model-catalog failure; verify visible **Retry**, disabled model/Send controls until recovery, and successful retry. Verify empty catalog stays blocked without unsupported actions.
|
||||
|
||||
## Exit criteria
|
||||
|
||||
|
||||
Reference in New Issue
Block a user