You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A session thread at the bottom of each session in the viewer: a composer
for messaging the agent without picking a snippet.
Feedback now reaches agents without polling: publish/update/reply responses
carry a userFeedback array with any comments the user left since the
agent's last call (delivered once; a consumed wait also counts as seen).
The design guide, setup block, and Claude Code skill teach the background
watch pattern: arm sideshow wait as a background process after publishing
and react when it exits, instead of blocking or polling.
Agents can name their session at creation: sessionTitle on the publish
body and both MCP publish_snippet tools, --session-title on sideshow publish. Applied only when the publish creates the session —
it never overwrites a title, including renames made in the viewer.
A snippet kit baked into every snippet doc, so agents publish compact
markup instead of hand-written inline CSS: bare button/input/select/ textarea pre-styled to match the viewer, SVG utility classes (t/ts/ th text presets, box, arr, leader, node, c-* color ramps with
dark-mode-aware text), and a shared #arrow marker injected into every
doc. The design guide documents it as a compact reference table.
Changed
New snippets no longer steal the scroll position: the viewer only follows
them when already at the bottom of the stream, and shows a "new snippet ↓"
pill otherwise.
Activity the user isn't looking at — another session, or any session while
the tab is hidden — badges the tab title with an unread count.
The Claude Code skill now documents the repo-local CLI fallback and a
checkpoint-drain feedback pattern for harnesses that cannot surface
background watcher output.
Fixed
Feedback was re-delivered when channels were mixed: a fresh sideshow wait
process (or restarted stdio MCP server) started from seq 0 and replayed
comments the agent had already received via piggyback or another channel. author=user session reads with no explicit after now resume from the
server-side agent cursor, and the CLI and stdio MCP keep no cursor of their
own — delivery is exactly-once across CLI, MCP, and piggyback. Pass --after <seq> (CLI) or afterSeq (MCP at /mcp) to deliberately re-read.
A comment that failed to send was silently lost (input cleared, no error).
The viewer now echoes comments immediately (pending until confirmed) and on
failure restores the text to the input with an error toast.
After an SSE reconnect the viewer refetches the selected session, so
snippets and comments that arrived during the gap can no longer be
silently missing from a live-looking board.
The viewer layout no longer breaks at phone widths: below 700px the
sidebar collapses into a drawer behind a slim top bar (hamburger toggle,
unread dot), the stream takes the full width, and hover-only actions
(card open/delete, session delete) stay visible on narrow or touch
screens.
Comments not attached to a snippet (e.g. sideshow comment without --snippet) were stored and delivered to agents but never shown in the
viewer; they now render in the session thread.
The viewer is now usable by keyboard and assistive tech: session rows are
focusable and activate with Enter/Space (focus survives live re-renders),
hover-only actions (session delete, card open/delete) are reachable and
shown on focus, the editable session title is labeled and Escape cancels
an edit, snippet iframes carry the snippet title, and toasts are announced
via a polite live region.