# Upgrade Guide — v0.28.34

<!-- bump: patch -->

## What Changed

- **SessionWatchdog: robust Claude-process detection** — The watchdog's getClaudePid helper previously assumed Claude runs as a child of the tmux pane's shell (pgrep -P pane_pid -f claude). When instar spawns claude directly as the pane's root process, Claude IS the pane_pid and has no claude-named child, so the helper returned null and checkSession early-exited — silently disabling both stuck-command detection AND compaction-idle detection for those sessions. Now checks the pane's own command first (ps comm=) and returns pane_pid directly when it's claude. checkSession also now runs checkCompactionIdle even when getClaudePid returns null (defense-in-depth: the compaction-idle path is tmux-output-based and its own internal process guard is null-safe). Net effect: compaction auto-resume (added in earlier releases as PreCompact + watchdog-poll + hook paths) now actually runs for instar-spawned sessions instead of being silently gated off.

## What to Tell Your User

- **Auto-resume after compaction actually works now**: "When the conversation gets compacted mid-task, I'll pick right back up without you needing to send a nudge. The monitor that catches stalled sessions was silently skipping my sessions because of how it was looking up my process — that's fixed, so the recovery path that shipped in earlier releases finally runs the way it was supposed to."

## Summary of New Capabilities

| Capability | How to Use |
|-----------|-----------|
| Compaction auto-resume (really, this time) | automatic |
