Tracked under ADR 0002 — Phase A. Implementation detail: docs/implementation-plans/multi-persona-multi-format.md.
Problem
The current interview surfaces one question at a time but renders the conversation inside a max-height: 340px scroll-locked div (static/css/style.css:273). Past answers are not clickable, not editable, and not visually grouped with their parent fixed question. There is no way to fork the session if the user realises an earlier answer should be revised — the only escape is to start a fresh session, losing accumulated context.
This blocks the "feels like Claude/ChatGPT" comparison the project owner wants.
Scope
- Replace the bounded
question-log div with a full-height scrolling transcript pinned to the centre column.
- Render every
BriefAnswer as a clickable bubble; clicking opens an inline edit affordance.
- Editing an answer creates a new session that forks at that answer (server:
POST /api/sessions/{id}/answers/{answer_id}/edit, returns the new session_id and parent_session_id). The original session is retained.
- Deep-dive question bubbles render visually nested under their parent fixed question, with the parent answer quoted as context.
- Keyboard:
↑ recalls the previous unsubmitted answer; Cmd/Ctrl+Enter submits.
- Question bubbles left-aligned, answers right-aligned (familiar chat metaphor).
Acceptance criteria
Out of scope
- Streaming (covered by Phase A2).
- Editable draft preview (covered by Phase A3).
- Persona switching (Phase B / C).
Files likely touched
static/index.html
static/js/script.js
static/css/style.css
internal/handlers/workflow.go (new fork-on-edit endpoint)
internal/application/brief/service.go (fork-on-edit logic)
Tracked under ADR 0002 — Phase A. Implementation detail: docs/implementation-plans/multi-persona-multi-format.md.
Problem
The current interview surfaces one question at a time but renders the conversation inside a
max-height: 340pxscroll-locked div (static/css/style.css:273). Past answers are not clickable, not editable, and not visually grouped with their parent fixed question. There is no way to fork the session if the user realises an earlier answer should be revised — the only escape is to start a fresh session, losing accumulated context.This blocks the "feels like Claude/ChatGPT" comparison the project owner wants.
Scope
question-logdiv with a full-height scrolling transcript pinned to the centre column.BriefAnsweras a clickable bubble; clicking opens an inline edit affordance.POST /api/sessions/{id}/answers/{answer_id}/edit, returns the newsession_idandparent_session_id). The original session is retained.↑recalls the previous unsubmitted answer;Cmd/Ctrl+Entersubmits.Acceptance criteria
[1, 2', …].parent_session_id.Out of scope
Files likely touched
static/index.htmlstatic/js/script.jsstatic/css/style.cssinternal/handlers/workflow.go(new fork-on-edit endpoint)internal/application/brief/service.go(fork-on-edit logic)