-
Release 2.1.0: security hardening, UI fixes, version sync
发布于
2026-04-22 00:33:02 +00:00 | 102 次提交 在此版本后已推送到 mainSecurity fixes:
- CleaningEngine: isSafeToDelete requires trailing "/" prefix to reject
sibling paths (#47); Downloads/Documents/Desktop no longer whole-subtree
deletable (#48); cleanItems now deletes through the resolved URL and
re-verifies immediately before unlink to narrow the TOCTOU window (#49) - ScanEngine.scanBrewCache: strips HOMEBREW_* from child env and validates
the returned path against a known-roots allow-list (#48) - SchedulerService: discards a stale nextRunDate loaded from defaults (#48)
- AppState: gates scheduler.start() on OnboardingComplete (#48); refuses
to send high-risk home dotpaths through trashViaFinder (#50/#51) - AppPathFinder: minimum 5-char token length on name/path/letters/base
matches (#50); bundleIDMatchesCondition anchors bundle-family matching
(#50); discoverContainers requires 5-char bundle ID (#50) - Locations.appSearch: bare $HOME no longer scanned (root cause of #51
Claude-dir regression); scoped subdirs retained - Conditions: new highRiskHomeDotPaths list (~/.claude, ~/.ssh, ~/.aws,
~/.kube, ~/.docker, ~/.gnupg, ~/.config, etc.) unconditionally skipped - OrphanSafetyPolicy: trailing-"/" in allow-list check (#47); explicit
highRiskHomeDotPaths reject
UI fixes:
- MainWindow: Smart Scan pinned to a new "Home" section at the top of the
sidebar so it is always reachable (#69) - AppListView: sortable Application/Size columns via KeyPathComparator
(#59); appTable maxWidth=600 to prevent layout break when dragging the
HSplitView (#60)
Versioning:
下载附件
- CleaningEngine: isSafeToDelete requires trailing "/" prefix to reject