Added
ait statusnow surfaces reclaimable worktrees via a newcleanup_hintblock (JSON + text): counts reclaimable / retained-succeeded / anomalous worktrees so you know when.ait/workspaces/has stale worktrees worth reclaiming. Deletion stays user-driven viaait cleanup --apply(no background auto-delete; rejected after design review for TOCTOU races with resume/recover/continue reentry). Read-onlyait statusnever crashes on a malformed workspace_ref.
Fixed
- Cleanup engine ref/symlink/containment hardening: containment-before-sizing (no DoS walk outside
.ait/workspaces), skip symlinked worktree/artifact candidates (never follow/size/delete the target), safe-resolve malformed/relative refs (anomalous-refinstead of crashing), and delete-time containment recheck (TOCTOU). New skip reasons: symlink-skip, outside-worktree, anomalous-ref, delete-time-unsafe.
See CHANGELOG.md for full details.