Skip to content

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

Closed

Description

@Astro-Han

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.

Activity

  1. added a commit that references this issue on Jul 22, 2026
    2a025bd
  2. self-assigned this
    on Jul 22, 2026
  3. added a commit that references this issue on Jul 22, 2026
    7b2f80a
  4. Astro-Han commented on Jul 22, 2026

    @Astro-Han
    ContributorAuthor

    Landed via #1317 (squash commit 7b2f80a30).

    The lock boots the sidebar-long-sessions fixture in the live shell and asserts that the list is a genuinely constrained scroller (it overflows and its own scrollTop moves) and that the footer rect stays inside both the sidebar panel and the window viewport, before and after scrolling to the bottom.

    One thing the red-proof work turned up, now recorded in the spec header: at this fixture's window size the historically cited grid constraints (min-height: 0 / minmax(0, 1fr)) are mutually redundant. The declaration the spec actually bites on is .maka-session-panel { height: 100% }, which the source-grep contract never pinned. The two layers now lock different declarations on purpose.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions