The day leaned toward reliability. Launching a session now survives a transient database outage instead of falling over — getDb retries and restartManagedSession copes with a DB that isn’t ready yet. Session status delivery got more robust too: sendToDaemon and setSessionStatus now retry rather than dropping a status update if the daemon momentarily doesn’t answer, so a card can’t get stuck showing a stale state.

On the web side I added a React error boundary around the app layout, so a crash in one view (a bad usage-history page, say) shows a contained error instead of blanking the whole page.

For usage tracking I added average context per rate-limit cycle (recordPhaseCycleContext), which reads better than a single peak when you’re trying to see how heavily a phase leans on the context window across a cycle. A couple of smaller usage-view fixes came with it: the table dates no longer wrap, and the “usage started” figure folds into the reset tooltip rather than taking its own line.

Two tooling touch-ups closed out the day: refactor extract now handles const arrow functions (not just function declarations) via a smarter findTarget, and the comment gate now covers Bicep files (collectBicepComments, isBicepFile).