fix(desktop): restore compact sidebar session-row density (38px → 26px rows)#138
Conversation
The sidebar consolidation commit (1dff62b) raised session rows from 26px to 38px min-height while fixing the timestamp overlap, leaving ~12px of dead air around each single-line title. Restore upstream's density tokens (min-h 1.625rem, py-0.5, ROW_ESTIMATE_PX 28) and keep the fork's always-visible age column and presence features. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
🔎 Lint report:
|
|
Live verification on ko-mac (post-merge deploy): rebuilt packaged app from main @ 42ba4ea ( |
Why
Fork commit 1dff62b ("consolidate sidebar, i18n, stale-build, session fixes") raised sidebar session rows from 26px to 38px min-height while fixing the timestamp overlap. Every single-line row now carries ~12px of dead air above and below its title, so the session list reads sparse and unpolished — the operator flagged it against Claude Desktop's compact list (~27pt row pitch). Upstream NousResearch/hermes-agent is still at 26px, so this is a fork-only regression; no upstream PR is needed.
What changed
apps/desktop/src/app/chat/sidebar/session-row.tsx— row containermin-h-[2.375rem]→min-h-[1.625rem](38px → 26px, upstream's value); title buttonpy-1→py-0.5(also upstream's value).apps/desktop/src/app/chat/sidebar/virtual-session-list.tsx—ROW_ESTIMATE_PX40 → 28 so the virtualizer's pre-measure estimate matches real row height again.The fork-specific sidebar features from 1dff62b (always-visible age column, presence dot, hover slide-in actions menu) are untouched; this restores only the density tokens.
How to review
session-row.tsxdiff: two className token changes, no structural edits.h-full/self-stretchdriven by the samemin-h, so it tracks the new height automatically.virtual-session-list.tsx,ROW_ESTIMATE_PXonly seeds the virtualizer;measureElementre-measures real rows, so the constant just needs to be close (28 = 26px row + ~2px).upstream/main:apps/desktop/src/app/chat/sidebar/session-row.tsx— these are exactly upstream's density values.Evidence
session-row.tsxusesmin-h-[1.625rem]+py-0.5, and upstreamvirtual-session-list.tsxusesROW_ESTIMATE_PX = 28; the fork diverged in commit 1dff62b (2026-06-09).min-h-7, 28px) already match the restored density — same pairing upstream ships.Verification
npm run type-check(tsc -b): pass.npx eslinton both changed files: pass, no warnings.npx vitest run --environment jsdom: 456 passed / 9 failed — the identical 9 failures reproduce at baselineorigin/main(ab33859) with this change stashed; baseline-red, none sidebar-related.npm run build(production vite build): pass.Risks / gaps
mainunrelated to this diff — already tracked as baseline-red under the hermes-agent lane.Collaborators