The daemon’s restart story got two solid fixes today. Restoring a session now resumes it through its backlog wrapper rather than a bare resume, so an interrupted run picks up where it left off instead of starting cold — I tore out the old discoverClaudeSessionId guesswork in favour of a watchClaudeSessionId watcher that reads the real session id as the process emits it. The companion fix makes a daemon restart resume the correct session, threading the Claude session id through executePhase and spawnClaude so a restart can’t reattach to the wrong terminal.

Most of the day went into the web dashboard. The toolbar now shows git status counts — ahead/behind and changed-file tallies parsed out of git status (parseGitStatus, GitStatusCounts, useGitStatusCounts) — so you can see a repo’s state without leaving the page. Card selection got a proper going-over: it defaults to the top card on load, reselects the top card when one closes, and shows a loading state while a new card spins up, all reconciled through reconcileActiveId and a useActiveIdReconciler hook. I also cached backlog items across view switches (backlogItemsCache, itemsEqual, revalidateBacklog) so flipping between views no longer refetches and flickers, narrowed the session sidebar to 25%, evened out the top-nav spacing, reordered the toolbar actions, and fixed the cursor on the active card.

The web prompt input got friendlier too — it submits on Enter, and the prompt dropdowns now handle multiline content properly via a shared FreePromptForm. The terminal renders clickable links. On the backlog side, a refine job can now be kicked off straight from a session card, auto-run reuses an existing draft or bug card instead of spawning a fresh one (reuseSessionForRun, respawnedIds), and refine cards auto-run correctly when marked done.

Finally, assist review got more trustworthy: findings are now validated against the actual diff before they’re posted, so the reviewer can’t comment on lines that aren’t part of the change. I built out a diff line index (buildDiffLineIndex, annotateDiffWithLineNumbers) and a partitionFindingsByDiff split that keeps in-diff findings and warns about the rest. Reviews now persist under the home dir, and maintainability runs accept an --ignore glob to skip paths.