Skip to content

test(desktop): lock sidebar-long-sessions footer-visibility geometry in e2e - #1317

Merged
Astro-Han merged 1 commit into
mainfrom
fix/1311-sidebar-footer-geometry
Jul 22, 2026
Merged

test(desktop): lock sidebar-long-sessions footer-visibility geometry in e2e#1317
Astro-Han merged 1 commit into
mainfrom
fix/1311-sidebar-footer-geometry

Conversation

@Astro-Han

@Astro-Han Astro-Han commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

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.ts is a static grep gate over the CSS grid constraints, and scroll-geometry.spec.ts boots long-transcript and probes the chat viewport, not the sidebar.

This adds the rendered-geometry lock as a Playwright E2E: a new sidebarLongSessionsWindow fixture boots the sidebar-long-sessions scenario (60 seeded sessions, sidebar expanded), and sidebar-geometry.spec.ts asserts against the live shell that (a) the session list scroller actually overflows its constrained grid row and scrolling it moves only its own scrollTop, 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

  • New spec green: npm --workspace @maka/desktop run e2e -- sidebar-geometry.spec.ts → 1 passed (independently re-run by the reviewer session).
  • Full e2e suite green: 32 passed.
  • Non-vacuity (break-and-restore, never committed): removing .maka-session-panel { height: 100% } reproduces the exact fix(desktop): lock the sidebar-long-sessions footer-visibility geometry invariant #1311 regression (footer at bottom=2520.9 vs the 820px window, list overflow collapsed to 0) and the spec fails on both locked assertions.
  • npm run format:check and npm run lint clean.

…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
Astro-Han force-pushed the fix/1311-sidebar-footer-geometry branch from a584147 to 2a025bd Compare July 22, 2026 01:39
@Astro-Han
Astro-Han merged commit 7b2f80a into main Jul 22, 2026
3 checks passed
@Astro-Han
Astro-Han deleted the fix/1311-sidebar-footer-geometry branch July 24, 2026 09:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(desktop): lock the sidebar-long-sessions footer-visibility geometry invariant

1 participant