- Header: no SSO chip ("Sign in again" only on expiry), state dot on the
session chip, LIVE as a dot, ⋯ menu for text size/notifications/fullscreen,
Panels badge for waiting sessions and alerts.
- Session switcher on the chip; bare URL reattaches the last session; + New
opens the panel form with project folders.
- Notifications when other sessions start waiting; alerts polled with the
panels closed; one tab polls for all tabs over BroadcastChannel.
- Sidebar: context bar per session instead of the Context panel; compact
Repo/CI with "Ask Claude to fix CI"; legible labels.
- Phone: key bar, drawer with backdrop, visualViewport-aware layout, DOM
renderer on touch, compact connection dot.
- devdesk-notify-matrix: one Matrix message per wait that lasts
DEVDESK_MATRIX_DELAY seconds with nobody attached.
Closes#8Closes#13Closes#14Closes#15Closes#16Closes#17Closes#28
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- devdesk-state-hook (Claude UserPromptSubmit/PostToolUse/Notification/Stop/
SessionStart/SessionEnd) records whether each session is working, waiting on
you or idle; --list carries it. The sidebar shows it, the header shows the
current session's state, and a pulsing "needs you" chip jumps to sessions
waiting for input. Session refresh no longer depends on the sidebar being open.
- `devdesk attach --upload SESSION FILE BYTES` receives a file as base64
terminal input (raw mode, exact length, size-checked, sanitised name) into
/var/lib/devdesk/uploads/<session>/. The UI uploads dropped or pasted files and
pastes the path into Claude, which attaches images itself.
- `devdesk alerts` / `--alerts`: firing and pending Grafana alert rules with
severity, instances, summary and a link. The panel's "Ask Claude" types an
investigation prompt into the current session.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>