From abaa04fe3a18844c9642386961d175905a043e74 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 22 Feb 2026 15:19:51 +0000 Subject: [PATCH] Fix Mac trackpad scrolling; add make ip for phone testing overflow: hidden creates a WebKit scroll container that absorbs trackpad events before they reach scrollable children (.chat-log, .mc-sidebar). Changed .mc-main and .mc-chat-panel > .card to overflow: clip, which clips visually but does not create a scroll container, so trackpad events propagate correctly to the nearest scrollable descendant. Added min-height: 0 to .mc-sidebar so the flex item can shrink below its content size and overflow-y: auto actually triggers scrolling. Added `make ip` target that prints local network URLs the phone can reach. The server already runs on 0.0.0.0 with --reload, so Python and template changes auto-reload; CSS/static changes need a manual refresh. https://claude.ai/code/session_01WFuf8fzKSWjH8ztF6E9jbj --- Makefile | 16 ++++++++++++++++ static/style.css | 5 +++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 7b155990..8cbe2ae9 100644 --- a/Makefile +++ b/Makefile @@ -30,6 +30,21 @@ $(VENV)/bin/activate: dev: $(UVICORN) dashboard.app:app --reload --host 0.0.0.0 --port 8000 +# Print the local IP addresses your phone can use to reach this machine. +# Connect your phone to the same hotspot your Mac is sharing from, +# then open http://:8000 in your phone browser. +# The server auto-reloads on Python/template changes (--reload above). +# For CSS/static changes, just pull-to-refresh on your phone. +ip: + @echo "" + @echo " Open one of these on your phone: http://:8000" + @echo "" + @ipconfig getifaddr en0 2>/dev/null | awk '{print " en0 (Wi-Fi): http://" $$1 ":8000"}' || true + @ipconfig getifaddr en1 2>/dev/null | awk '{print " en1 (Ethernet): http://" $$1 ":8000"}' || true + @ipconfig getifaddr en2 2>/dev/null | awk '{print " en2: http://" $$1 ":8000"}' || true + @ifconfig 2>/dev/null | awk '/inet / && !/127\.0\.0\.1/ && !/::1/{print " " $$2 " → http://" $$2 ":8000"}' | head -5 || true + @echo "" + watch: $(SELF_TDD) watch --interval 60 @@ -61,6 +76,7 @@ help: @echo " make install create venv + install dev deps" @echo " make install-bigbrain install with AirLLM (big-model backend)" @echo " make dev start dashboard at http://localhost:8000" + @echo " make ip print local IP addresses for phone testing" @echo " make test run all 228 tests" @echo " make test-cov tests + coverage report" @echo " make watch self-TDD watchdog (60s poll)" diff --git a/static/style.css b/static/style.css index f1e42852..843d3d42 100644 --- a/static/style.css +++ b/static/style.css @@ -94,7 +94,7 @@ body { .mc-main { padding: 16px; height: calc(100dvh - var(--header-h)); - overflow: hidden; + overflow: clip; /* clip = visual clipping only, no scroll container; lets trackpad events reach scrollable children */ } .mc-content { height: 100%; @@ -106,6 +106,7 @@ body { /* ── Sidebar ─────────────────────────────────────── */ .mc-sidebar { overflow-y: auto; + min-height: 0; /* allow flex item to shrink so overflow-y: auto actually triggers */ } /* ── Chat column ─────────────────────────────────── */ @@ -114,7 +115,7 @@ body { } .mc-chat-panel > .card { height: 100%; - overflow: hidden; + overflow: clip; /* visual clip only, preserves scroll events to .chat-log child */ } /* ── Panel / Card overrides ──────────────────────── */