From f7f843cdd6c2ad704f792322e32ca33653b7b241 Mon Sep 17 00:00:00 2001 From: harshitsinghbhandari <24b4506@iitb.ac.in> Date: Tue, 19 May 2026 12:57:52 +0530 Subject: [PATCH] fix(web): make dashboard body scroll as one unit (closes #1923) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #1925 added internal scroll on .done-bar__cards, but the desired UX is page-level scroll — kanban above, Done/Terminated below, scrolling as one unit (the pre-#927 behavior). Internal scroll on the cards container produced a separate scrollable region inside an otherwise locked layout. Root cause: af2af115 (#927, Warm Terminal design refresh) added `flex: 1; min-height: 0` to .kanban-board-wrap. That made the wrap greedily consume all remaining body height, so body content always equalled body height exactly — `.dashboard-main__body { overflow-y: auto }` never triggered. Drop .kanban-board-wrap from the combined flex:1 rule. It now takes its content size (= the inner .kanban-board's fixed `calc(100vh - 240px)`). When done-bar expands below, body content exceeds body height and the existing overflow-y: auto produces natural page scroll. .board-wrapper (empty state + loading skeleton) keeps flex:1 — it relies on filling space to vertically center its CTA. Also revert the now-unneeded .done-bar__cards max-height + overflow-y + scrollbar styling from #1925. Co-Authored-By: Claude Opus 4.7 (1M context) --- .changeset/fix-done-bar-scroll.md | 2 +- packages/web/src/app/globals.css | 16 ---------------- 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/.changeset/fix-done-bar-scroll.md b/.changeset/fix-done-bar-scroll.md index edac04f39..f049da4a8 100644 --- a/.changeset/fix-done-bar-scroll.md +++ b/.changeset/fix-done-bar-scroll.md @@ -2,4 +2,4 @@ "@aoagents/ao-web": patch --- -Fix Done/Terminated section on the dashboard not scrolling. The expanded cards grid now has an internal scroll container (mirroring the kanban column body pattern), so older terminated sessions are reachable when many accumulate. +Fix Done/Terminated section on the dashboard not scrolling. The dashboard body now scrolls as a single page — kanban above, Done/Terminated below — so older terminated sessions are reachable when many accumulate. Restores the pre-Warm-Terminal-refresh behavior by dropping the `flex: 1` that was making `.kanban-board-wrap` greedily consume all remaining body height and defeat the body's `overflow-y: auto`. diff --git a/packages/web/src/app/globals.css b/packages/web/src/app/globals.css index d85a5c6c0..ec83364c8 100644 --- a/packages/web/src/app/globals.css +++ b/packages/web/src/app/globals.css @@ -1545,7 +1545,6 @@ html.light .xterm .xterm-viewport:hover::-webkit-scrollbar-thumb:active { padding: 0 16px 16px; } -.dashboard-main__body .kanban-board-wrap, .dashboard-main__body .board-wrapper { flex: 1; min-height: 0; @@ -5858,21 +5857,6 @@ html.light .xterm .xterm-viewport:hover::-webkit-scrollbar-thumb:active { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px; margin-top: 12px; - /* 320px ≈ dashboard header + subhead + body padding + done-bar toggle/margins. - Mirrors the .kanban-board viewport-anchored height pattern (line 5107). */ - max-height: calc(100vh - 320px); - overflow-y: auto; -} - -.done-bar__cards::-webkit-scrollbar { - width: 4px; -} -.done-bar__cards::-webkit-scrollbar-track { - background: transparent; -} -.done-bar__cards::-webkit-scrollbar-thumb { - background: var(--color-scrollbar); - border-radius: 0; } /* ── Done card (compact grid card) ──────────────────────────────────── */