Skip to content

feat(viewer): make the sidebar wordmark a home link#123

Merged
benvinegar merged 1 commit into
mainfrom
feat/brand-home
Jun 24, 2026
Merged

feat(viewer): make the sidebar wordmark a home link#123
benvinegar merged 1 commit into
mainfrom
feat/brand-home

Conversation

@benvinegar

Copy link
Copy Markdown
Member

What

The sidebar wordmark is now a home link. Clicking "sideshow" (in the aside, or the mobile topbar) clears the current session and returns to the session-less base route — a guaranteed way back to the board from anywhere. It's a real <button>, so it's keyboard- and screen-reader-reachable.

Why

On an empty board, the way you leave a host-projected full-pane view is by clicking a session in the sidebar — but with zero sessions there are no rows to click, so there was no in-app exit (only browser-back). sideshow cloud's full-page Settings (rendered through the ss:main slot from #119) hits exactly this: open Settings on a fresh, session-less account and the only way out was the back button.

The new goHome() always asks the host to navigate — it never short-circuits on the engine's own selection — so an embedding host that layers its own view over the board gets a reliable exit through the same click; the host dedupes a no-op move. applyRoute ignores a null sessionId, so back/forward to home doesn't thrash a session load, and we deselect in goHome itself.

Scope / parity

  • Pure engine-internal enhancement — no Host contract change, no new slot, nothing for embedders to adopt.
  • Self-hosted behaviour is otherwise unchanged: the wordmark looks identical and now also navigates home (a standard, expected affordance).
  • The mobile topbar wordmark stays content-width; only the aside wordmark fills the sidebar as a full-row tap target.

Tests

  • New e2e (url-routing.spec.ts): select a session → click the wordmark → URL drops /session/:id and the row deselects.
  • Full suite green locally: 205 unit tests, viewer + embed e2e (incl. the phone-width drawer test that exercises the topbar wordmark).

🤖 Generated with Claude Code

Clicking "sideshow" (aside or mobile topbar) now clears the current
session and returns to the session-less base route — a guaranteed way
back to the board from anywhere. The wordmark is a real <button> so it's
keyboard- and screen-reader-reachable.

New goHome() always asks the host to navigate; it never short-circuits
on the engine's own selection, so an embedding host that layers a view
over the board (e.g. sideshow cloud's full-page Settings, which has no
session rows to click out of on an empty board) gets a reliable exit
through the same click. The host dedupes a no-op move, and applyRoute
ignores a null sessionId, so back/forward to home doesn't thrash a load.
Self-hosted behaviour is otherwise unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@benvinegar benvinegar merged commit f8fb7b3 into main Jun 24, 2026
9 checks passed
@benvinegar benvinegar deleted the feat/brand-home branch June 24, 2026 03:50
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