This release removes false positives on disposable work in temporary directories: the analyzer now tracks a literal cd, so recursive deletes and Git discards inside a temp-root repository unrelated to your workspace are recognized as safe.
Highlights
- Git discards and forced worktree removals that target a temp-root repository unrelated to your workspace are now allowed without any toggle, while force pushes and anything that reaches your workspace stay blocked.
Added
- Added a
Temp-root relaxationstep toexplainoutput that names the Git working directory permitting a discard.
Changed
- Changed the analyzer to stop tracking the working directory when a segment assigns or appends to
CDPATH, and to leave a barecdoperand untracked whileCDPATHcould redirect it, so a relaxation is never granted for a directory the shell may not actually enter. - Changed the rule reported for a self-targeting delete after a tracked
cd, such ascd /tmp; rm -rf ., to the more specificrm.recursive-force-cwd-selforrm.git-metadatainstead ofrm.recursive-force-outside-cwd. The command is still blocked; only theruleIdinexplain --jsonchanges.
Fixed
- Fixed
rm -rfwith a relative target being blocked after acdinto a temporary directory. The analyzer now resolves a literalcdoperand past-L,-P, and--and treats the target as a temp delete. (#124) - Fixed Git discards such as
git reset --hardandgit clean -fdxbeing blocked in a temp-root repository reached through a trackedcd, including acdwhose operand expands from a literal assignment or from a literalforlist of at most eight words. A force push, a discard aimed throughGIT_DIRor another explicit Git context, and a repository that is or contains your workspace remain blocked. (#125) - Fixed
git worktree remove --forcebeing blocked when its operand is an existing absolute temp-root directory unrelated to your workspace. A relative, missing, symlinked, or dynamically built operand still keeps the rule. (#126)