test(desktop): lock sidebar-long-sessions footer-visibility geometry in e2e - #1317
Merged
Conversation
…in e2e
Add a Playwright E2E contract that boots the `sidebar-long-sessions`
fixture (60 sessions) and asserts the rendered sidebar geometry the
retired screenshot baseline used to guard:
- the sidebar list scroller overflows its own constrained grid row and
scrolling it moves its own scrollTop while the chat viewport's
scrollTop is unaffected (the seed opens a short session, so chat
stays pinned at 0), and
- the Settings/version footer's bounding rect stays fully inside both
the sidebar panel and the window viewport, before and after scrolling
the list to the bottom.
This locks the P0 (WAWQAQ msg `761141c5`) footer-off-screen invariant
that #1308 left unlocked when it retired the screenshot harness: the
static `sidebar-scroll-contract.test.ts` only greps the CSS, and
`scroll-geometry.spec.ts` probes the chat viewport, not the sidebar.
Adds the `sidebarLongSessionsWindow` fixture following the
`longTranscriptWindow` pattern.
Fixes #1311
Astro-Han
force-pushed
the
fix/1311-sidebar-footer-geometry
branch
from
July 22, 2026 01:39
a584147 to
2a025bd
Compare
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 free
to 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.
Summary
Closes #1311.
#1308 retired the screenshot harness, leaving the sidebar footer-visibility geometry invariant (the P0 WAWQAQ flagged in msg
761141c5) with no rendered regression lock:sidebar-scroll-contract.test.tsis a static grep gate over the CSS grid constraints, andscroll-geometry.spec.tsbootslong-transcriptand probes the chat viewport, not the sidebar.This adds the rendered-geometry lock as a Playwright E2E: a new
sidebarLongSessionsWindowfixture boots thesidebar-long-sessionsscenario (60 seeded sessions, sidebar expanded), andsidebar-geometry.spec.tsasserts against the live shell that (a) the session list scroller actually overflows its constrained grid row and scrolling it moves only its ownscrollTop, and (b) the footer (Settings + version) bounding rect stays fully inside both the sidebar panel and the window viewport, before and after scrolling the list to the bottom.Notable finding from the red-proof work, now documented in the spec header: at this fixture size the historically-cited grid constraints (
min-height: 0/minmax(0, 1fr)) are mutually redundant — the declaration this spec actually bites on is.maka-session-panel { height: 100% }, which the source-grep contract does not pin. The two layers deliberately lock different declarations.Scroll-independence caveat, documented in the spec: the scenario's active session has a short transcript, so the chat viewport never overflows; independence is asserted as "list scrollTop moves, chat scrollTop stays 0" — the meaningful form for this seed.
Externally reviewed (Codex + Kimi K3, both PASS); the accepted finding — a row-total assertion that coupled the geometry contract to unrelated baseline seed sessions — has been removed.
Verification
npm --workspace @maka/desktop run e2e -- sidebar-geometry.spec.ts→ 1 passed (independently re-run by the reviewer session)..maka-session-panel { height: 100% }reproduces the exact fix(desktop): lock the sidebar-long-sessions footer-visibility geometry invariant #1311 regression (footer atbottom=2520.9vs the 820px window, list overflow collapsed to 0) and the spec fails on both locked assertions.npm run format:checkandnpm run lintclean.