# Explorer Workbench - Backlog > Personal file management workbench. > > Goal: Make working with files faster - not necessarily the filesystem itself. > > **Primary success metric:** One happy customer. 😎 --- ## Core Principles ### Windows remains the source of truth Explorer Workbench may discover, index, display and organize Windows resources, but should not silently modify Windows configuration. Example: - Removing `Z:` from Workbench removes the Workbench location and its index data. - It does **not** disconnect the Windows network drive. - Existing Windows resources should be discoverable/importable again. ### Workbench owns the workflow Specialized tools may provide execution capabilities. Possible providers: - Robocopy - robust file transfers - 7-Zip - archive operations - FFmpeg - media conversion - Git - repository operations Explorer Workbench provides: - UI - orchestration - metadata - index - profiles - queue - status - history ### File Operations Queue is the execution engine Whenever possible, features that modify files should create operations instead of modifying the filesystem directly. Examples: - Copy - Move - Recycle - Delete - Rename - Extract - Compress - Convert - Sync - Reorganize ### Analyze aggressively, modify conservatively Analysis may be ambitious. Filesystem modifications should be predictable, reviewable and safe. Complex operations should preferably follow: `Analyze -> Preview -> Operation Plan -> Queue -> Execute` ### Configuration rule If both behaviors are useful depending on the situation: **Make it an option.** --- # Current Features ## Navigation - [x] Group locations into `This PC`, `Network` and `Cloud` - [x] Optional grouping via Settings - [x] Remove locations from Workbench - [x] Remove associated index/database data - [x] Do not modify Windows mappings when removing Workbench locations - [x] Add network/cloud locations - [x] Discover/import existing Windows network drives - [x] Restore a previously removed Workbench location from Windows discovery ## UI - [x] Classic application menu - [x] Icon-based toolbar - [x] Settings dialog - [x] Help menu with About and in-app Documentation - [x] Expandable Settings architecture - [x] Show `Free Space` next to `Size` where meaningful - [x] Consistent capacity information for local/network/cloud providers - [x] Organize folder (classify → preview → queue moves) ## Search / Index - [x] Central filesystem index - [x] Fast indexed search - [ ] Search offline locations - [x] Search archive contents - [ ] Store originating machine/location - [ ] Multi-PC search - [ ] Richer metadata indexing ## Storage Analysis - [x] Storage usage analysis - [x] WinDirStat-style functionality - [x] Duplicate detection - [x] Duplicate classification - [x] Distinguish intentional duplicates - [x] Recognize Sync copies - [ ] Recognize Backup copies - [x] Detect hardlinks --- # File Operations Queue ## Implemented - [x] Central File Operations Queue - [x] Copy - [x] Move - [x] Move to Recycle Bin - [x] Queue Rename - [x] Queue Extract - [x] Queue Compress - [x] Sequential execution - [x] Pause / Resume - [x] Pause all - [x] Progress display - [x] Queue status - [x] Reorder operations - [x] Remove queued operations - [x] Clear finished operations - [x] Auto-clear when done - [x] Compact queue status in main UI - [x] Persist queue across Workbench restarts - [x] Retry failed operations - [x] `Waiting for destination` state - [x] Resume automatically when destination becomes available - [x] Handle temporarily unavailable network shares - [x] Handle removable media (wait until reachable) - [x] Detect file locks (Failed + Retry) - [x] Operation history (append-only) ## Planned - [ ] Conflict resolution - [x] Undo last rename batch - [ ] Undo copy / move - [ ] Resource-aware scheduling ### Resource-aware scheduling Potential future behavior: Instead of always running exactly one operation, allow concurrent operations when they do not compete for the same I/O resources. Example: `C: -> D:` and `NAS -> USB` may run simultaneously. Two operations using the same physical source/target should normally remain serialized. --- # Protected Windows Filesystem Locations ## Visibility - [x] Hidden file support - [x] Setting: `Show protected system locations` - [x] Detect `FileAttributes.Hidden` - [x] Detect `FileAttributes.System` - [x] Classify known protected Windows locations - [x] Distinguish `Access denied` from empty folders Known examples: - `System Volume Information` - `$RECYCLE.BIN` - `Recovery` - `pagefile.sys` - `hiberfil.sys` ## Size calculation Never display: `0 B` when the actual state is: `Unknown because access was denied` Possible states: - Calculated - Partial - Unknown - Access denied ## Elevated scan - [ ] Detect when elevation would provide additional information - [ ] Optional elevated/deep scan - [ ] Never silently elevate - [ ] Keep normal Workbench operation non-elevated ## Recycle Bin - [x] Classify `$RECYCLE.BIN` specially - [x] Do not expose it merely as a normal filesystem folder - [x] Show logical Recycle Bin information - [x] Number of deleted items - [x] Used space - [x] Open Recycle Bin - [x] Empty Recycle Bin --- # Folder Sync Goal: Replace the relevant AllSync workflows. ## Sync modes - [x] Copy / Update - [x] Mirror - [ ] Two-way sync - [ ] Versioned backup Two-way sync should be implemented later because it requires proper conflict and deletion tracking. ## Integration - [x] Analyze differences - [x] Generate operation plan - [x] Submit operations to File Operations Queue - [x] Preview before execution - [x] Conflict detection - [ ] Sync history ## Offline / removable locations - [x] Detect target availability - [x] Wait when target is offline - [x] Automatically continue when target returns - [x] Identify removable media using stable volume identity - [x] Do not depend only on drive letters - [x] Trigger sync when known media is connected Example: `When PhotosBackup becomes available -> run Photos Sync` ## Duplicate awareness Files intentionally created by Folder Sync should be marked as intentional duplicates. Possible classification: - `Accidental` - `Synchronized` - `Backup` - `Unknown` The Duplicate Finder hides intentional duplicates by default. Sync and backup tags are written when those operations exist. --- # Batch Rename Goal: Replace FileRenamer workflows. ## Rename rules - [x] Search / Replace - [x] Regex - [x] Prefix - [x] Suffix - [x] Counter - [x] Counter padding - [x] Case conversion - [x] Extension handling - [ ] Metadata placeholders Potential placeholders: - `{CreatedDate}` - `{ModifiedDate}` - `{Counter}` - `{Width}` - `{Height}` - `{Artist}` - `{Title}` - `{Project}` - `{Extension}` ## Workflow `Select -> Configure -> Preview -> Validate -> Queue` - [x] Preview all resulting names - [x] Detect collisions - [x] Detect invalid filenames - [x] Add Rename operations to File Operations Queue - [x] Store `OldPath -> NewPath` - [x] Support Undo for completed rename batches --- # File Operation Profiles Reusable workflows built from Workbench operations. ## Core - [x] Create profile - [x] Edit profile - [x] Delete profile - [x] Duplicate profile - [x] Run profile - [x] Preview operation plan - [x] Add resulting operations to queue ## Example: Archive Project 1. Verify Git status 2. Require clean working tree 3. Exclude `.git`, `bin`, `obj`, `.vs` 4. Compress using 7-Zip 5. Generate SHA-256 6. Copy archive to NAS 7. Verify destination 8. Recycle source only if all previous steps succeeded ## Example: Phone Videos 1. Find matching videos 2. Convert to configured format 3. Preserve timestamps 4. Copy converted files to Media 5. Archive originals 6. Queue cleanup ## Example: Clean Downloads Classify files and propose: - Installers -> Software - Images -> Pictures - Video -> Media - Archives -> Archive - Git repositories -> Development - Unknown -> Leave untouched Available as **Tools → Organize folder…** and **Organize this folder…** on a directory. Suggestions only; nothing moves until Queue. ## Profile triggers - [x] Manual - [x] Context menu: `Run Profile` - [x] Drag files onto profile - [x] When location becomes available - [x] When removable media is connected - [ ] Scheduled - [ ] Folder watcher --- # Archives ## Supported concepts - [x] ZIP - [x] 7z - [x] RAR - [x] Additional archive formats through providers ## Indexing - [x] Scan archive contents without extraction - [x] Add archive entries to search index - [x] Search inside archives - [x] Display archive path as virtual hierarchy Example search result: `\\NAS\Archive\2019-backup.7z\Projects\Explorer\README.md` even when the NAS is currently offline. ## Operations - [x] Extract - [x] Compress - [x] Add to archive - [x] Verify archive - [x] Queue archive operations Potential provider: `7-Zip` --- # File Classification Goal: Understand what files and folders represent rather than relying only on extensions. ## Initial categories - [x] Media (Photos / Video / Audio) - [x] Photos - [x] Video - [x] Audio - [x] Documents - [x] Code repositories - [x] Installers - [x] Backups (classified; left in place) - [x] Archives - [x] System data - [x] Unknown ## Detection signals - [x] File extension - [ ] MIME/content signature - [x] Folder structure - [x] Git metadata - [ ] Media metadata - [x] Known application structures (`node_modules`, `bin`, `obj`, `.vs`) - [x] File age (old installers flagged in preview) - [ ] File relationships - [ ] Index metadata --- # Reorganization / Consolidation Use file classification and metadata to propose better organization. ## Concepts - [x] Analyze directory - [x] Classify contents - [x] Detect misplaced files - [ ] Detect redundant files - [x] Detect old installers - [x] Detect old build output - [ ] Detect archived projects - [x] Generate reorganization proposal - [x] Preview proposed operations - [x] Submit approved operations to queue Important: **Never automatically reorganize based only on classification.** Always prefer: `Analyze -> Suggest -> Review -> Queue` --- # Multi-PC Goal: Search and manage the user's complete file environment rather than only the current PC. ## Machines - [ ] Register Workbench machine - [ ] Assign machine identity - [ ] Store machine name with indexed files - [ ] Track last-seen timestamp - [ ] Track online/offline state ## Search Example: Search: `wallet.dat` Results: - `Desktop-PC -> D:\Backup\wallet.dat` - `Laptop -> C:\Archive\wallet.dat` - `NAS -> backup-2019.7z\Crypto\wallet.dat` ## Offline behavior - [ ] Keep index searchable while machine is offline - [ ] Show last known location - [ ] Show last indexed timestamp - [ ] Queue operations requiring offline machine - [ ] Resume when machine becomes available ## Future - [ ] Transfer files between Workbench machines - [ ] Remote filesystem browsing - [ ] Remote indexing - [ ] Shared operation queue / agent model --- # Secure Storage ## Concepts - [ ] CryptDrive/Vault integration - [ ] Secure Storage location category - [ ] Detect mounted/unmounted state - [ ] Index policy for encrypted locations - [ ] Optional metadata-only index - [ ] Security-sensitive search behavior Workbench should preferably integrate existing encryption technology rather than implement cryptography itself. --- # Conversion Conversions should be represented as File Operations. ## Media Potential provider: `FFmpeg` Possible operations: - [ ] Video conversion - [ ] Audio conversion - [ ] Codec conversion - [ ] Resolution conversion - [ ] Extract audio - [ ] Generate thumbnails ## Images - [ ] HEIC -> JPEG - [ ] PNG -> JPEG - [ ] Resize - [ ] Rotate - [ ] Metadata preservation/removal ## Workflow Conversions should support: `Input -> Conversion Profile -> Preview -> Queue` and be usable inside File Operation Profiles. --- # Git Integration Workbench should recognize repositories but not reimplement Git. Potential provider: `git` ## Repository detection - [x] Detect Git repositories - [x] Show current branch - [x] Show modified count - [x] Show untracked count - [x] Show ahead/behind state Example: `Explorer-Workbench main 3 modified 1 untracked` ## Actions - [ ] Status - [ ] View Changes - [ ] Commit - [ ] Pull - [ ] Push - [ ] Fetch - [x] Open terminal here - [x] Open in Cursor ## Profiles Git state may be used as a profile condition. Example: `Archive Project` requires: `Working tree clean` before archive operations continue. --- # Sharing ## Basic sharing - [ ] Share file - [ ] Share folder - [ ] Copy share link - [ ] Temporary shares - [ ] Expiration - [ ] Password protection - [ ] Read-only permissions ## Providers Potential integrations: - [ ] Nextcloud - [ ] Network shares - [ ] Other cloud providers ## Package for Sharing Example profile: 1. Exclude unnecessary files 2. Clean temporary data 3. Compress 4. Encrypt 5. Upload 6. Create expiring share link 7. Copy link to clipboard 8. Queue temporary archive cleanup --- # External Tool / Provider Integration ## Robocopy Status: **Documentation review / knowledge transfer pending. 😏** Potential uses: - [ ] Restartable copies - [ ] Network transfers - [ ] Retry handling - [ ] Backup-mode access - [ ] Mirror operations - [ ] Metadata/ACL preservation Possible architecture: `RobocopyTransferProvider` Workbench retains ownership of: - Queue - Progress - State - UI - Retry policy - History Robocopy performs selected low-level transfers. ## 7-Zip `SevenZipArchiveExecutor` (`IArchiveExecutor`) Discovery: Settings path, then Program Files, then PATH. Missing 7-Zip fails the queued job with an install hint. 7-Zip is not bundled. ## FFmpeg Potential: `MediaConversionProvider` ## Git `WindowsGitStatusProvider` (`IGitStatusProvider`) Discovery: Settings path, then Program Files, then PATH. Missing git.exe means no badge. Git is not bundled. Workbench does not commit, push, or pull. Potential later: `IGitCommandProvider` --- # Future Intelligence ## File relationships Workbench should eventually understand relationships between files. Examples: - Duplicate - Sync copy - Backup copy - Converted version - Archived version - Renamed version - Source/output relationship This allows questions such as: > Which duplicates are accidental? instead of merely: > Which files have the same hash? ## Forgotten Files Potential analysis: - Files not modified for many years - Files not accessed for many years - Old backups - Forgotten projects - Large unused files - Old installers - Historical archives Possible feature name: `Forgotten Files` --- # Architectural Direction Long-term conceptual model: Filesystems / Providers | v Scanner | v Metadata Index | v Intelligence Layer | +-----+-----+ | | v v Workbench Profiles | | +-----+-----+ | v File Operations Queue | v Execution Providers The Workbench should increasingly understand: - What is this? - Where is it? - Which machine has it? - Is it currently available? - Is there another copy? - Why does another copy exist? - Is it part of a sync or backup? - How much space does it consume? - What operations are safe? - What does the user want to do with it? --- # Replaced / Potentially Replaced Tools | Tool | Workbench capability | | --- | --- | | Windows Explorer | Navigation / file management | | WinDirStat | Storage analysis | | WhereIsIt? | Indexed catalog / offline search | | AllSync | Folder synchronization | | FileRenamer | Batch rename | | Archive tools | Archive workflows | | Conversion tools | Profile-driven conversion | | Various sharing workflows | Integrated sharing | The goal is not necessarily to completely replace every specialized tool. The goal is to make Explorer Workbench the **central working environment** from which those capabilities are orchestrated. --- # Definition of Done Explorer Workbench is never truly finished. A feature is useful when it improves the actual workflow of the primary user. A release is successful when: > Domi realizes he has not voluntarily opened Windows Explorer all week. 😎