mark_session_dead_with_worktree_settlement cloned the session under the lock, dropped it, did async work, then wrote the stale clone to the sidecar. A haiku rename (or any other metadata update) that landed between the clone and the write was silently overwritten, so the sidecar reverted to name_source: Generated and the next daemon recovery re-triggered autoname. Re-read record.session under the lock at write time so the sidecar always reflects the latest state. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>