refactor(web): dock chat inline below the summary, integrated view (ADR-027)
The chat was a separate page — opening it left the summary behind, the very
context you're asking about. Now the chat docks open IN PLACE below the summary:
"Dig deeper" reveals the chat section (HTMX, outerHTML over the closed dock) so
the summary stays on screen above it; no navigation. The no-JS fallback renders
the full summary AND the open chat on one page (the same integrated view), so
progressive enhancement holds.
Extracts a shared summaryBody templ so the detail page and the chat page render
one identical summary, not two divergent ones. GET /v/{id}/chat returns just the
open chat section as a fragment for the inline reveal, or the full summary+chat
page for a no-JS navigation; POST swaps the panel inline or re-renders the whole
page. Tests assert summary+chat coexist on the page and the reveal is a fragment.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -731,9 +731,11 @@ a.btn, a.btn:visited { color: var(--accent-fg); }
|
||||
.detail ul { margin: 0; padding-left: 1.2rem; line-height: 1.6; }
|
||||
.detail li { margin-bottom: var(--s1); }
|
||||
|
||||
/* deeper-dive chat (ADR-027) */
|
||||
.dig-deeper { margin: var(--s3) 0 0; }
|
||||
.chat .chat-scope { margin: 0 0 var(--s4); font-size: .9rem; }
|
||||
/* deeper-dive chat (ADR-027) — docks in place below the summary */
|
||||
.chat-dock { margin-top: var(--s5); border-top: 1px solid var(--line); padding-top: var(--s4); }
|
||||
.chat-dock .chat-open { display: inline-block; }
|
||||
.chat-heading { font-size: 1.1rem; margin: 0 0 var(--s2); }
|
||||
.chat-scope { margin: 0 0 var(--s3); font-size: .9rem; }
|
||||
.chat-panel { display: flex; flex-direction: column; gap: var(--s3); }
|
||||
.chat-log { display: flex; flex-direction: column; gap: var(--s3); }
|
||||
.chat-turn { border-radius: var(--radius); padding: var(--s2) var(--s3); }
|
||||
|
||||
Reference in New Issue
Block a user