feat(ui): chat auto-scrolls only while pinned to the bottom — submitting reveals your message, scrolling up holds the viewport
This commit is contained in:
+11
-1
@@ -6,7 +6,8 @@
|
||||
> **Revisions (2026-08-21, owner permission):** A7/A8/A9 revised (multi-format
|
||||
> ingestion, hybrid FTS+vector retrieval, re-tuned honesty gate); dark tech
|
||||
> theme (Phase 08); clickable document viewer (Phase 10); thinking display
|
||||
> (Phase 17, owner permission 2026-08-23). See roadmap §12.
|
||||
> (Phase 17, owner permission 2026-08-23); follow-the-bottom scroll
|
||||
> (Phase 18, owner choice 2026-08-23). See roadmap §12.
|
||||
|
||||
---
|
||||
|
||||
@@ -308,9 +309,13 @@ Rules:
|
||||
| **Error** | Red banner (`role="alert"`) with retry hint; button re-enabled. |
|
||||
| **KB offline** | Amber banner at top of chat ("start Postgres…"); chat disabled with explanation. |
|
||||
| **Guard** | 120s client-side timeout → error state (a button can never sit "stuck" forever). |
|
||||
| **Scroll (follow-the-bottom, phase 18)** | The page auto-scrolls only while the user is pinned to the bottom (≤200px band, `NEAR_BOTTOM_PX` — the composer zone; submitting reveals the user's message through the same gate, which holds in real use); scrolling up holds the viewport for the rest of the turn (thinking and answer alike); restore lands one-shot on the latest message. |
|
||||
|
||||
> The **Thinking (model reasoning)** row is a phase-17 addition (owner
|
||||
> permission 2026-08-23) — see the §4 SSE revision.
|
||||
>
|
||||
> The **Scroll** row is a phase-18 addition (owner choice 2026-08-23 —
|
||||
> option 1: follow-the-bottom, no "↓ new content" pill).
|
||||
|
||||
### 7.5 Component inventory (ids used by tests)
|
||||
`#messages` (stream), `#empty-state`, `#suggestions`, `.suggestion-chip`,
|
||||
@@ -410,9 +415,14 @@ ranks live hybrid results for a question (retrieval tuning).
|
||||
| 09 | `09_story_retrieval_quality.md` | `retrieval-quality.md` | `tests/e2e/test_retrieval_quality.py` |
|
||||
| 10 | `10_story_document_viewer.md` | `document-viewer.md` | `tests/e2e/test_document_viewer.py` |
|
||||
| 17 | `17_thinking_display.md` | `thinking-display.md` | `tests/e2e/test_thinking_display.py` |
|
||||
| 18 | `18_follow_bottom_scroll.md` | `follow-bottom-scroll.md` | `tests/e2e/test_follow_bottom_scroll.py` |
|
||||
|
||||
> Row 17 (thinking display) added 2026-08-23 with owner permission — the
|
||||
> A15 SSE extension recorded in §4.
|
||||
>
|
||||
> Row 18 (follow-the-bottom scroll) added 2026-08-23 with owner choice —
|
||||
> option 1: follow-the-bottom, no "↓ new content" pill (UI-behavior-only
|
||||
> change; no anchor revised).
|
||||
|
||||
Completion = unit+integration green, coverage >90%, story E2E green in
|
||||
isolation, UI verification passed, **one `--no-gpg-sign` commit**.
|
||||
|
||||
Reference in New Issue
Block a user