hermes-agent/apps/desktop/src/app/chat
brooklyn! 8bb6529553
fix(desktop): sidebar sections never overlap — two-mode CSS scroll + collapse/cap groups (#43147)
* fix(desktop): prevent sidebar section overlap

Use a shared sidebar section scroller only on short windows so sections do not overlap, while preserving per-section scrolling on taller layouts.

* fix(desktop): measure section stack for compact sidebar mode

Window-height media query kept big windows in compact mode whenever the OS chrome ate into 830px; observe the section stack element instead so compact only engages when the stack is actually short.

* refactor(desktop): drive sidebar compact mode with CSS, not JS

Replace the matchMedia hook with a `short` (max-height: 830px) Tailwind
variant so the per-section scrollers flatten into one shared scroll stack on
short windows purely in CSS. Taller windows keep their per-group scrollers and
recents virtualization unchanged.

* refactor(desktop): pure-CSS two-mode sidebar scroll + collapse/cap groups

Drop the JS-measured compaction in favour of a single `compact` height
variant (max-height: 768px):
- tall: every section is its own capped, independent scroller; Sessions
  is the lone flex-1 scroller.
- short: sections flatten and the stack scrolls as one.

Every section is now `shrink-0`, so nothing is squeezed below its
content and bled onto a sibling — the root cause of the header overlap
(flexbox implied min-size). Sessions keeps its virtualized scroller in
short mode only when it's the long list.

Non-session groups (messaging, cron) collapse by default — expanded ids
persist per platform — and render 3 rows, revealing 10 more on demand.
Extract the shared SidebarLoadMoreRow. Stress harness seeds 50 recents
to mirror the real first page.

* chore(desktop): trim sidebar comments, unify "compact" naming

Self-review polish: condense the over-long mode comments, use "compact"
consistently (matching the variant) instead of mixing "short", and drop a
no-op useCallback around revealMoreMessaging.

* chore(desktop): drop dev sidebar stress harness from the PR

Remove stress-probe.ts and its main.tsx import — it was a throwaway
testing aid, not something to ship.
2026-06-10 01:11:45 +00:00
..
composer fix(desktop): send on Enter from live editor text, not stale composer state (#39639) 2026-06-10 00:51:23 +00:00
hooks fix(desktop): stage dropped files into the remote session workspace 2026-06-09 16:50:08 -05:00
right-rail fix(desktop): stage dropped files into the remote session workspace 2026-06-09 16:50:08 -05:00
sidebar fix(desktop): sidebar sections never overlap — two-mode CSS scroll + collapse/cap groups (#43147) 2026-06-10 01:11:45 +00:00
chat-drop-overlay.tsx Refactor desktop i18n field copy into nested structures 2026-06-06 07:51:44 -07:00
chat-swap-overlay.tsx Refactor desktop i18n field copy into nested structures 2026-06-06 07:51:44 -07:00
index.tsx fix(desktop): stage dropped files into the remote session workspace 2026-06-09 16:50:08 -05:00
perf-probe.tsx chore(desktop): zero eslint/typecheck debt + prettier pass (#39100) 2026-06-04 14:10:38 +00:00
thread-loading.test.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
thread-loading.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00