# Upgrade Guide — v0.24.11

<!-- bump: patch -->

## What Changed

- **Health endpoint no longer blocks on stale sessions**: The health check previously called synchronous tmux operations for every tracked session, blocking the event loop. With many stale sessions (common after restart loops), this caused health check timeouts, which triggered MORE restarts — a death spiral. Now uses a cached session count updated asynchronously by the monitor tick.

- **Startup session purge**: Before monitoring starts, the server now does a fast one-pass purge of all session records whose tmux sessions no longer exist. Uses a 1-second timeout per session to fail fast. This prevents the startup overload where the server spent all its boot time polling dead sessions.

- **CoherenceMonitor suppresses known-pending updates**: When the AutoUpdater has already applied a version and a restart is pending (deferred for active sessions), the CoherenceMonitor no longer flags the version mismatch as a failure. This eliminates the race condition where both systems fought over restart decisions.

## What to Tell Your User

- **Stability improvement**: "The server should be much more resilient to restart loops now. Even if many sessions build up, the health check stays fast and the server won't get stuck in a crash-restart cycle. Stale sessions are cleaned up instantly on boot instead of dragging things down."

## Summary of New Capabilities

| Capability | How to Use |
|-----------|-----------|
| Non-blocking health endpoint | Automatic — no action needed |
| Startup session purge | Automatic — runs on every server boot |
| CoherenceMonitor update suppression | Automatic — no action needed |
