{"version":"2.1.247","anchor":"worktree-cleanliness-checks-and-removal-use-the-same-pinned-","canonical_anchor":"worktree-cleanliness-checks-and-removal-use-the-same-pinned-","heading":"Worktree cleanliness checks and removal use the same pinned config, and removal aborts when unsure","tier":"notice","area":"Git Safety","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.247\/e\/worktree-cleanliness-checks-and-removal-use-the-same-pinned-","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.247","markdown":"### Worktree cleanliness checks and removal use the same pinned config, and removal aborts when unsure\n\nWorktree cleanup aborts rather than deleting a tree whose state it cannot safely determine.\n\n**What**\n\nThe dirty-check (`git status --porcelain`) and the agent-worktree removal path now run with the same filter-neutralizing settings. If those settings cannot be applied, the worktree is treated as dirty or as a git error, and removal is aborted rather than deleting a tree whose state is unknown.\n\n**Details**\n\n- The helper that builds the pinned arguments returns nothing on failure, and callers fall back to dirty\/gitError.\n- Removal reports a new abort reason when cleanliness could not be established.\n- The `tengu_worktree_removed` event still carries `changed_files` and `aborted`.\n\n**Evidence**\n\n`could not verify the worktree is clean (git status failed or repository git config unpinnable)`\n\n- Area: Git Safety\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5"}