Most of the day went into usage telemetry. Session cards now show token usage and context-window usage right on the card (TokenUsage, an expanded StatusRow), and behind that I reworked how per-phase numbers are recorded: peak context-window percentage per phase (recordPhasePeakContext), phase token totals sourced straight from the transcript (recordWindowTokens, replacing the old recordWindowPeak guesswork), and near-live, restart-safe per-phase active-time that flushes as it goes (flushPhaseActiveMs) so the figure survives a daemon restart instead of resetting. formatTokens moved into shared since both the CLI status line and the web cards now render it.

Starring got more general. Sessions can be starred whether or not they’re backlog-backed (useStarredKeys/useStarredSessions), the star flag is persisted and restored across restarts, and I fixed a merge bug where restoring star state clobbered token-usage state (and vice versa).

On the fixes side, a run now fails fast when the conversation it’s meant to resume is missing (verifyResumeConversation) rather than silently starting fresh, sessions web honors --no-open so it won’t pop a browser when you don’t want one, and duplicate verify:* commands are de-duplicated so verify doesn’t run the same check twice.