Uh oh!
There was an error while loading. Please reload this page.
fix(amicode): sessions flyout — 'Show all' scrolls, nothing overlaps; panel matches the defaults capsule - #25
Merged
Conversation
… list scrolls Expanding to all sessions blew past the flyout's max-height, and every flex child was allowed to shrink: the project column got squeezed far below its content (which then painted over the search box and session rows), and ScrollView's height:100% viewport can't resolve under the flyout's max-height-only auto-height chain — it inflated to full content height and was clipped, so nothing scrolled (headless repro: viewport clientHeight == scrollHeight == 2851px, wheel moved nothing). Fix: project column and search keep natural height (shrink-0; the column caps at 38vh and scrolls internally if projects ever exceed it), and the sessions list is its own scroll container via used flex size + overflow-y — the same pattern as the multi-server project list and the search results panel. Measured after: list scrolls 298px over 2851px of content, zero overlap, collapsed state pixel-identical. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…tyling Kate: the two chrome-strip dropdowns should read as one family. The sessions panel now wears amicode-defaults-pop's surface — bg-base (was layer-01), the same 0 14px 40px -18px floating shadow, 14px padding, 12px gap — plus role="dialog" semantics like the capsule, and the compact "Projects" label matches the popover's section-label spec (0.08em tracking). Width and max-height stay flyout-specific; the session list needs the room. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…psule system Kate: the flyout's spacing read as off next to the model+solver popover. Measured both panels live (CDP, computed styles): the shells matched (14px pad / 12px gap) but the flyout's inner components carried legacy insets that fought the panel padding — left edges landed at 30px (search: ml-4/mr-2 width hack), 20px (project header: pl-1.5 + an mt-2 whose compact 'mt-0' override lost the class-order battle and never applied), and 14px (list), three different alignments in one panel. Now every row sits flush at the panel's 14px inset, matching the capsule: - search box: w-full, no side margins - project header: compact mode genuinely drops mt-2 AND pl-1.5 (conditional base classes instead of the losing classList override) - project column rhythm: gap-3 in the flyout (panel rhythm), gap-4 on home - session list: mt-3 dropped — the inner pt-3 already provides the 12px Verified by re-measuring the live panels after the change. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bug
Pressing Show all (64) in the sessions dropdown made the panel unusable: content painted on top of itself and nothing scrolled.
Root cause (verified in a headless-Chromium repro of the exact DOM/CSS)
The flyout is an auto-height column flex container capped only by
max-height. When the expanded list blows past that cap, two things go wrong at once:min-h-0on the project column, default shrink on the search). The project column got squeezed to 44px while its content stayed 221px tall — withoverflow: visible, those project rows painted straight over the search box and session rows. That's the overlap.ScrollViewcan't work here. Its viewport needsheight: 100%, and percentage heights never resolve under a max-height-only auto-height ancestor chain — the viewport inflated to full content height (measuredclientHeight == scrollHeight == 2851px) and theoverflow: hiddenroot simply clipped it. Wheel events moved nothing. The outer flyout didn't scroll either, because its children had "shrunk to fit".Fix (commit 1)
shrink-0); the column self-caps at 38vh and scrolls internally if a pathological project count ever exceeds it.overflow-y: auto, no percentage heights involved. Same pattern this file already uses for the multi-server project list and the search-results panel.Measured after (same harness): list scrolls a 326px window over 2851px of content, wheel scrolls, zero overlap, collapsed state pixel-identical.
Styling (commit 2)
Kate: the two chrome-strip dropdowns should read as one family. The sessions panel now wears the defaults-capsule popover's surface —
bg-base, the same0 14px 40px -18pxfloating shadow, 14px padding, 12px gap — plusrole="dialog"semantics, and the "Projects" label matches the popover's section-label spec (0.08em tracking).Verification
tsgo -b(packages/app typecheck): cleanoxlinton home.tsx: 0 errors, 18 warnings — identical count on the base branch, zero new🤖 Generated with Claude Code