From 81236bd05234c0074ac42adba1d1ce176b8a787f Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 23 Apr 2026 05:11:49 +0000 Subject: [PATCH] Overview tab first, pin console compose to bottom of screen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tab order: Overview | Console (was Console | Overview). Console layout: flexbox column filling viewport height. Events div gets flex:1 and scrolls. Compose form is flex-shrink:0 at the bottom with a border-top separator — stays pinned like a messenger input even when the events list is short or long. Tab toggle uses display: flex (not block) for the console so the column layout works. --- home/home.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/home/home.go b/home/home.go index 1fcf7b53..c0f6deff 100644 --- a/home/home.go +++ b/home/home.go @@ -322,7 +322,7 @@ document.getElementById('home-date-weather').textContent=w.temp+'°C '+(e||''); viewerID = sess.Account } b.WriteString(`
`) - for _, t := range []struct{ id, label string }{{"console", "Console"}, {"cards", "Overview"}} { + for _, t := range []struct{ id, label string }{{"cards", "Overview"}, {"console", "Console"}} { b.WriteString(fmt.Sprintf(`%s`, t.id, t.label)) } b.WriteString(`
`) @@ -330,17 +330,17 @@ document.getElementById('home-date-weather').textContent=w.temp+'°C '+(e||''); // ── Console view (stream) ── consoleEvents := stream.Recent(stream.StreamLimit, viewerID) consoleEvents = stream.DedupeAdjacent(consoleEvents) - b.WriteString(`