Problem
8sync clean was silently auto-deleting Python/conda virtual environments based solely on LastWriteTime. An env set up once and never modified (but still actively used) could be deleted without warning.
Changes
8sync clean (default)
Env section is now skipped entirely. Prints a hint:
skipped by default for safety. Use: 8sync clean --envs (list) or --envs --delete (manual select).
8sync clean --envs
List-only mode. No deletion. Output:
[ 1] tools/deepagents-cli 177.6 MB 14d 2026-03-18 08:39:20Z
[ 2] projects/.venv 45.2 MB 3d 2026-03-29 10:11:00Z ACTIVE
^ currently active in this shell (will be skipped)
Fields: index, parent/name, size, age in days, last-write UTC, ACTIVE tag if currently activated.
8sync clean --envs --delete
Prompts for comma-separated index selection. Only deletes what you explicitly pick. Active envs (VIRTUAL_ENV / CONDA_PREFIX) are always skipped even if selected.
8sync clean --envs --delete --all
Deletes all listed stale envs. Still skips: active envs, project-path envs, git-repo envs.
Safety guards
Invoke-CleanPath now calls Test-IsProjectPath at entry -- if TEMP/TMP points inside a project it is skipped entirely
Test-IsInsideGitRepo now detects .git files (worktrees) in addition to directories
- Fixed
C:\Users\Admin readonly clash (renamed local variable to `` to avoid collision with PS automatic variable)
--envs --delete double-checks Test-IsProjectPath and Test-IsInsideGitRepo before every removal
Commit
5dfea7e
Problem
8sync cleanwas silently auto-deleting Python/conda virtual environments based solely onLastWriteTime. An env set up once and never modified (but still actively used) could be deleted without warning.Changes
8sync clean(default)Env section is now skipped entirely. Prints a hint:
8sync clean --envsList-only mode. No deletion. Output:
Fields: index, parent/name, size, age in days, last-write UTC, ACTIVE tag if currently activated.
8sync clean --envs --deletePrompts for comma-separated index selection. Only deletes what you explicitly pick. Active envs (
VIRTUAL_ENV/CONDA_PREFIX) are always skipped even if selected.8sync clean --envs --delete --allDeletes all listed stale envs. Still skips: active envs, project-path envs, git-repo envs.
Safety guards
Invoke-CleanPathnow callsTest-IsProjectPathat entry -- if TEMP/TMP points inside a project it is skipped entirelyTest-IsInsideGitReponow detects.gitfiles (worktrees) in addition to directoriesC:\Users\Adminreadonly clash (renamed local variable to `` to avoid collision with PS automatic variable)--envs --deletedouble-checksTest-IsProjectPathandTest-IsInsideGitRepobefore every removalCommit
5dfea7e