{"version":"2.1.203","anchor":"bug-fixes","canonical_anchor":"bug-fixes","heading":"","tier":null,"area":null,"scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.203\/e\/bug-fixes","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.203","markdown":"- Worktree `deleteJob` now correctly detects live-process locks when deciding whether to remove an owned worktree (search for `\"locked by a live Claude Code process, or with a reason we did not write\"`)\n- `reapJobWorktreeIfSafe` now logs why it kept a worktree that had a non-owned lock, instead of silently skipping it (search for `\"reapJobWorktreeIfSafe: kept\"`)\n- Transcript retention cleanup is now skipped (with a logged reason) when settings contain parse errors that prevent reading `cleanupPeriodDays`, to avoid deleting transcripts with an unknown retention period (search for `\"Transcript retention cleanup is paused until the settings errors above are fixed\"`)\n- `stream-json` stdin errors now produce a proper diagnostic message instead of a generic failure (search for `\"getInputPrompt: stream-json stdin unreadable\"`)"}