From 05d4dc997c3d09682d7cb275b1842867f7c289a2 Mon Sep 17 00:00:00 2001 From: Alexander Payne Date: Thu, 26 Feb 2026 09:15:40 -0500 Subject: [PATCH] =?UTF-8?q?fix:=20chat=20panel=20scroll=20=E2=80=94=20inte?= =?UTF-8?q?rnal=20scroll=20on=20#chat-log,=20auto-scroll=20on=20new=20mess?= =?UTF-8?q?ages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Set overflow:hidden on mc-main to prevent page-level scrolling - Add max-height:100% to sidebar and chat panel to contain within viewport - Use flex-wrap:nowrap on layout row to prevent column stacking on desktop - Move scrollChat() to hx-on::after-settle for reliable post-swap scrolling - Use requestAnimationFrame for smooth scroll-to-bottom timing Co-Authored-By: Claude Opus 4.6 --- .../templates/partials/timmy_panel.html | 17 +++++++++++------ static/style.css | 5 ++++- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/dashboard/templates/partials/timmy_panel.html b/src/dashboard/templates/partials/timmy_panel.html index 7c3a0abd..663a9977 100644 --- a/src/dashboard/templates/partials/timmy_panel.html +++ b/src/dashboard/templates/partials/timmy_panel.html @@ -2,9 +2,9 @@
- + {% if agent %} - + {% endif %} // TIMMY INTERFACE @@ -28,7 +28,8 @@ hx-indicator="#send-indicator" hx-sync="this:drop" hx-disabled-elt="find button" - hx-on::after-request="if(event.detail.successful){this.querySelector('[name=message]').value=''; scrollChat()}" + hx-on::after-settle="scrollChat()" + hx-on::after-request="if(event.detail.successful){this.querySelector('[name=message]').value='';}" class="d-flex gap-2">
@@ -52,8 +53,12 @@ diff --git a/static/style.css b/static/style.css index fad69562..4549352f 100644 --- a/static/style.css +++ b/static/style.css @@ -251,24 +251,27 @@ a:hover { color: var(--orange); } .mc-main { padding: 16px; height: calc(100dvh - var(--header-h)); - overflow: clip; + overflow: hidden; } .mc-content { height: 100%; } .mc-content > .row { height: 100%; + flex-wrap: nowrap; } /* ── Sidebar ─────────────────────────────────────── */ .mc-sidebar { overflow-y: auto; min-height: 0; + max-height: 100%; } /* ── Chat column ─────────────────────────────────── */ .mc-chat-panel { min-height: 0; + max-height: 100%; } .mc-chat-panel > .card { height: 100%;