cScan Safety Assessment Fixes

Issue Identified

The safety assessment was being too aggressive and marking all files as “critical”, preventing any deletions.

Root Causes

  1. Overly broad critical path matching: Using substring matching (if any(critical in filepath for critical in self.critical_paths)) was catching too many files
  2. Running process protection too aggressive: Every directory containing a running executable was marked as critical
  3. File-in-use check failing: Non-existent test files were being marked as “in use”

Fixes Applied

1. Improved Critical Path Detection

# Before: if any(critical in filepath for critical in self.critical_paths)
# After: Proper startswith() check on normalized paths
for critical_path in self.critical_paths:
    if path_lower.startswith(critical_path):
        return 'critical'

2. Smarter Running Process Protection

3. Better Safety Categorization

4. Fixed File-in-Use Detection

5. Enhanced File Categorization

6. Improved Smart Suggestions

7. Added Safety Controls

Result

The safety assessment now correctly identifies:

Files are no longer incorrectly marked as critical, while still protecting important system files and data.