Skip to content

feat(perch): hide the Sessions column on desktop while a chat is open - #529

Merged
kh0pper merged 3 commits into
mainfrom
feat/perch-sessions-collapse
Oct 20, 2026
Merged

kh0pper merged 3 commits into
mainfrom
feat/perch-sessions-collapse

Conversation

@kh0pper

@kh0pper kh0pper commented Oct 20, 2026

Copy link
Copy Markdown
Owner

On wide screens (900 px and up) with a chat open, a button beside the Sessions heading hides the session list and the chat takes the full width. A "Sessions" button at the start of the chat header brings it back. Focus moves to whichever button is still on screen, and both work with Enter and Space.

  • The choice is saved per device (crow-perch-sessions-collapsed) and applied before the page opens a session, so a direct link to a chat opens already collapsed.
  • While the list is hidden it stops refreshing; showing it reloads it at once.
  • With no session open, and on phones, nothing changes.
  • The CSS lives in its own module (perch-hub/sessions-collapse-css.js), so css.js and layout.js are untouched.
  • New strings perch.hideSessions / perch.showSessions (en/es). No keyboard shortcut in this PR.

Tests: static, unit and live headless-Chrome checks at 1280×900 (collapse, reload, keyboard, Send stays reachable, artifact pane open) and 412×730 (phone pixel-identical), plus a Turbo listener-leak guard. Full suite 10152 pass, 0 fail.

https://claude.ai/code/session_018NdSnyJQFrSGdr7cGnVoXL

…open

A collapse button beside the Sessions heading hides the list; a Sessions
button at the start of the chat head brings it back. The choice persists
per device in localStorage, is applied before the bootstrap opens a session,
and a collapsed list stops polling. The rules live in their own CSS module,
scoped to the split breakpoint and an open chat, so the phone is unchanged.

Claude-Session: https://claude.ai/code/session_018NdSnyJQFrSGdr7cGnVoXL
…ot name beside the reveal button

In a real browser at 1280x900: a real click hides the column and the chat
gains its width, focus moves to the reveal control, the choice survives a
reload without loading the hidden list, Enter and Space toggle it, Send stays
reachable, and it holds with the artifact split pane open. At 412x730 the
phone is unchanged whatever is stored, and five Turbo visits with toggling
add no window or document listeners. The collapsed chat head now keeps the
bot name next to the Sessions button instead of at the far edge.

Claude-Session: https://claude.ai/code/session_018NdSnyJQFrSGdr7cGnVoXL
…t a text size

The single-source-of-truth guard rejected any localStorage mention in the
Perch client. It still rejects every text-size key or scale; the two
accesses of crow-perch-sessions-collapsed are taken out before the check.

Claude-Session: https://claude.ai/code/session_018NdSnyJQFrSGdr7cGnVoXL
@kh0pper
kh0pper merged commit 061b43e into main Oct 20, 2026
4 checks passed
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.

1 participant