iris
f60a90d752
shared terminal + docs: migrate sticky-scroll + backfill prose (#714 batch 1)
Substantial prose migration from @hive/shared/terminal.js (the
shared HiveTerminal factory backing #msgflow + #live across both
dashboard and per-agent UIs) into a new docs subsection.
Added to docs/web-ui.md as a new ### Shared terminal pane
subsection under ## Shape (shared by both) — ~78 lines of new
substantive prose:
- **api shape**: row / details / detailsDiff factory contract
- **Sticky-bottom + snap animation**: stickToBottom semantics +
140ms ease-out vs 500ms browser default + 24px short-circuit;
per-frame target re-eval extends destination through
mid-animation mutations
- **Mid-animation scroll-event guard**: smoothScrollingUntil
timestamp swallows the rAF-driven scroll events so the eased
positions don't flip stickToBottom false partway
- **Post-append MutationObserver**: catches renderer mutations
after api.row returns (badges, multi-line bodies, tool panes)
+ why programmatic scrollTop writes don't feedback-loop
- **Backfill + SSE**: history/stream envelope shape (seq, events),
kind-aware seq dedupe at the boundary, .no-anim during replay,
optional streamFactory for SharedWorker integration
- **linkify**: text-node-only autolink, XSS-safe by construction,
trailing-punctuation strip
Collapsed in terminal.js (cookies en passant):
- #400 (snap animation timing — closed) × 3 → docs pointers
- #393 (post-append MutationObserver — closed) × 1 → docs pointer
- #375 (pre-append nearBottom snapshot — closed) × 1 → docs pointer
- #448 (streamFactory SharedWorker hook — closed) × 1 → docs pointer
- #163 (seq dedupe + onStreamOpen resync — closed) × 2 → drop
cookies; substance lives in docs
- #233 (linkify) × 1 → docs pointer + terminal.css cookie scrub
terminal.js: 8 → 0 #NNN cookies (100% reduction).
terminal.css: 1 → 0 issue-ref cookies (remaining 1 match is a
hex color literal).
Net effect: ~50 lines of substantive WHY-prose moved out of
shared frontend into docs/web-ui.md, where it documents the
factory's contract for both consumer pages.
|
2026-05-31 15:18:31 +02:00 |
| .. |
|
agent-hierarchy.md
|
docs(agent-hierarchy): drop missed manager-root mention from apply_set_parent refuses list (argus on #758)
|
2026-05-31 13:27:30 +02:00 |
|
approvals.md
|
lifecycle: drop manager port special case (#753) — manager hashes into 8100..8999 like every other agent
|
2026-05-31 13:25:13 +02:00 |
|
boundary.md
|
docs: move backlog to forge issue tracker, extract boundary doc
|
2026-05-20 12:19:16 +02:00 |
|
conventions.md
|
lifecycle: drop manager port special case (#753) — manager hashes into 8100..8999 like every other agent
|
2026-05-31 13:25:13 +02:00 |
|
damocles-migration.md
|
Phase 7e: damocles migration plan; CLAUDE.md phase status
|
2026-05-15 00:32:26 +02:00 |
|
gateway.md
|
nix/hive-gateway: static not-found + unreachable pages for /agent/<name>/ (#755)
|
2026-05-31 15:04:54 +02:00 |
|
gotchas.md
|
docs: extract 3 substantive harness-base.nix prose blocks (#718, first pass)
|
2026-05-31 14:44:12 +02:00 |
|
persistence.md
|
docs: extract 3 substantive harness-base.nix prose blocks (#718, first pass)
|
2026-05-31 14:44:12 +02:00 |
|
security.md
|
docs: catch up post-#658/#604/#660 + add operator hivectl section (#124)
|
2026-05-31 10:13:33 +02:00 |
|
terminal-rendering.md
|
agent/terminal: neutral [resolved] label for closed asks (argus #668)
|
2026-05-30 21:45:33 +02:00 |
|
turn-loop.md
|
docs: get_agent_meta response gains hive_name + swarm_name (follow-up to #741)
|
2026-05-31 13:03:12 +02:00 |
|
web-ui.md
|
shared terminal + docs: migrate sticky-scroll + backfill prose (#714 batch 1)
|
2026-05-31 15:18:31 +02:00 |