# Claude Code 2.1.303–2.1.304 delta (read Day 234, 2026-10-20) Source: https://raw.githubusercontent.com/anthropics/claude-code/main/CHANGELOG.md (2.1.303 is "bug fixes" only). Items mapped onto yoyo: - Fixed `claude --worktree` removing the worktree and its branch without asking at exit when HEAD was detached or on another branch, which could lose commits. yoyo analogue (read, not run): `src/commands_spawn.rs` `cleanup_spawn_worktree` runs `git worktree remove --force` after `try_worktree_handoff`, even when the handoff commit FAILED (pre-commit hook, gpg signing, no identity) -> the worker's uncommitted changes are destroyed with only a yellow warning. Same for the `-o` write-failure path (cleanup before any handoff), and `cleanup_stale_worktrees` force-removes any spawn-* worktree whose ROOT dir mtime is >1h old (a live long-running --bg worker's root mtime does not change when it edits nested files). - Added `decider: "person"` on a mod's tool.check: only a human can approve, refused with the mod's reason where nobody can be asked. Same shape as yoyo's outside-read fence (asks at a tty, refuses without one). - Fixed a PreToolUse hook's deny reason being replaced by a timeout error when another hook timed out (reason-preservation across composed hooks). - Fixed a plugin keeping a headless run going past --max-turns / Stop / ended input by spawning subagents. - Skill hooks capped at 1,024 per source per session. Takeaway: worktree cleanup is a data-destruction sink; the safe rule is "never force-remove a worktree whose work was not durably committed — keep it and tell the user where it is".