Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/adr/0004-bug-session-lifecycle.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ The Report-a-Bug entry point spawns a **bug session** — a single-purpose Sessi

**Considered:** deleting filed sessions too (rejected — the transcript is the only record of what diagnostics were attached and what was edited at the confirm gate; provenance beats maximal ephemerality); no auto-close, an end-card waiting for the user to dismiss (rejected — adds a click at the exact moment the flow should feel finished); archiving abandoned sessions like filed ones (rejected — an abandoned capture has no artifact worth restoring, and invisible accumulation is how history gets noisy); detecting filing by parsing tool calls or server-event payloads (rejected — fragile against the browser-fallback path, and part text is not reliably on the event bus).

**Accepted costs:** closing a surface now means deleting a session on this one dock — the opposite of everywhere else in the app, so the dock's two affordances must stay unambiguous (chevron collapses and keeps alive, the close control kills); the skill gains a terminal-line contract that any future rewrite must preserve; in-flight bug sessions need a metadata marker plus a list filter to stay out of history before reaching their terminal state.
**Accepted costs:** closing a surface now means deleting a session on this one dock — the opposite of everywhere else in the app, so the dock's two affordances must stay unambiguous (chevron collapses and keeps alive, the close control kills); the skill gains a terminal-line contract that any future rewrite must preserve; in-flight bug sessions need a metadata marker plus a list filter to stay out of history before reaching their terminal state. The arm target (`/session/:id/command`) resolves against the **server's** command set, not the extension's staged skill paths — a non-extension-hosted server (launchd, SSH, remote) must re-stage skills on extension updates to stay in sync; the extension pre-flights the arm (GET `/command`) and fails actionably when the skill is absent server-side (#296).

**Flip condition:** if users start treating bug sessions as real conversations (continuing past filing, or expecting drafts to survive), revisit toward archive-always and a visible drafts list.
Loading