Part of #1303 (surfaced by Codex review of #1308).
Context
The sidebar-long-sessions fixture (60 sessions) exists so the sidebar scroll container can be verified end-to-end: the list scrolls independently and the footer (Settings + Version info) stays visible at the bottom regardless of session count. This was the P0 WAWQAQ flagged in msg 761141c5.
Before #1308, the only regression lock for this geometry was the screenshot baseline of sidebar-long-sessions — which never ran in CI. #1308 retired the screenshot harness, so the invariant is now explicitly unlocked:
apps/desktop/src/main/__tests__/sidebar-scroll-contract.test.ts is a static-analysis gate over the sidebar scroll CSS; it does not assert the rendered footer-visibility geometry.
apps/desktop/e2e/scroll-geometry.spec.ts boots the long-transcript fixture (not sidebar-long-sessions) and checks .maka-chatViewport content-visibility, not the sidebar.
Acceptance
- A Playwright E2E (or rendered computed-style) contract boots the
sidebar-long-sessions fixture and asserts: the sidebar list scrolls independently of the chat, and the Settings/Version footer stays inside the sidebar panel viewport (not pushed off-screen) with 60 sessions loaded.
- Green in CI. Reference the
sidebar-long-sessions fixture by name.
Notes
The fixture seed and its on-disk 60-session contract are already pinned by visual-smoke-fixture.test.ts; this issue is only about the rendered geometry lock.
Part of #1303 (surfaced by Codex review of #1308).
Context
The
sidebar-long-sessionsfixture (60 sessions) exists so the sidebar scroll container can be verified end-to-end: the list scrolls independently and the footer (Settings + Version info) stays visible at the bottom regardless of session count. This was the P0 WAWQAQ flagged in msg761141c5.Before #1308, the only regression lock for this geometry was the screenshot baseline of
sidebar-long-sessions— which never ran in CI. #1308 retired the screenshot harness, so the invariant is now explicitly unlocked:apps/desktop/src/main/__tests__/sidebar-scroll-contract.test.tsis a static-analysis gate over the sidebar scroll CSS; it does not assert the rendered footer-visibility geometry.apps/desktop/e2e/scroll-geometry.spec.tsboots thelong-transcriptfixture (notsidebar-long-sessions) and checks.maka-chatViewportcontent-visibility, not the sidebar.Acceptance
sidebar-long-sessionsfixture and asserts: the sidebar list scrolls independently of the chat, and the Settings/Version footer stays inside the sidebar panel viewport (not pushed off-screen) with 60 sessions loaded.sidebar-long-sessionsfixture by name.Notes
The fixture seed and its on-disk 60-session contract are already pinned by
visual-smoke-fixture.test.ts; this issue is only about the rendered geometry lock.