16 KiB
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
- Group locations into
This PC,NetworkandCloud - Optional grouping via Settings
- Remove locations from Workbench
- Remove associated index/database data
- Do not modify Windows mappings when removing Workbench locations
- Add network/cloud locations
- Discover/import existing Windows network drives
- Restore a previously removed Workbench location from Windows discovery
UI
- Classic application menu
- Icon-based toolbar
- Settings dialog
- Help menu with About and in-app Documentation
- Expandable Settings architecture
- Show
Free Spacenext toSizewhere meaningful - Consistent capacity information for local/network/cloud providers
- Organize folder (classify → preview → queue moves)
Search / Index
- Central filesystem index
- Fast indexed search
- Search offline locations
- Search archive contents
- Store originating machine/location
- Multi-PC search
- Richer metadata indexing
Storage Analysis
- Storage usage analysis
- WinDirStat-style functionality
- Duplicate detection
- Duplicate classification
- Distinguish intentional duplicates
- Recognize Sync copies
- Recognize Backup copies
- Detect hardlinks
File Operations Queue
Implemented
- Central File Operations Queue
- Copy
- Move
- Move to Recycle Bin
- Queue Rename
- Queue Extract
- Queue Compress
- Sequential execution
- Pause / Resume
- Pause all
- Progress display
- Queue status
- Reorder operations
- Remove queued operations
- Clear finished operations
- Auto-clear when done
- Compact queue status in main UI
- Persist queue across Workbench restarts
- Retry failed operations
Waiting for destinationstate- Resume automatically when destination becomes available
- Handle temporarily unavailable network shares
- Handle removable media (wait until reachable)
- Detect file locks (Failed + Retry)
- Operation history (append-only)
Planned
- Conflict resolution
- 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
- Hidden file support
- Setting:
Show protected system locations - Detect
FileAttributes.Hidden - Detect
FileAttributes.System - Classify known protected Windows locations
- Distinguish
Access deniedfrom empty folders
Known examples:
System Volume Information$RECYCLE.BINRecoverypagefile.syshiberfil.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
- Classify
$RECYCLE.BINspecially - Do not expose it merely as a normal filesystem folder
- Show logical Recycle Bin information
- Number of deleted items
- Used space
- Open Recycle Bin
- Empty Recycle Bin
Folder Sync
Goal: Replace the relevant AllSync workflows.
Sync modes
- Copy / Update
- Mirror
- Two-way sync
- Versioned backup
Two-way sync should be implemented later because it requires proper conflict and deletion tracking.
Integration
- Analyze differences
- Generate operation plan
- Submit operations to File Operations Queue
- Preview before execution
- Conflict detection
- Sync history
Offline / removable locations
- Detect target availability
- Wait when target is offline
- Automatically continue when target returns
- Identify removable media using stable volume identity
- Do not depend only on drive letters
- 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:
AccidentalSynchronizedBackupUnknown
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
- Search / Replace
- Regex
- Prefix
- Suffix
- Counter
- Counter padding
- Case conversion
- Extension handling
- Metadata placeholders
Potential placeholders:
{CreatedDate}{ModifiedDate}{Counter}{Width}{Height}{Artist}{Title}{Project}{Extension}
Workflow
Select -> Configure -> Preview -> Validate -> Queue
- Preview all resulting names
- Detect collisions
- Detect invalid filenames
- Add Rename operations to File Operations Queue
- Store
OldPath -> NewPath - Support Undo for completed rename batches
File Operation Profiles
Reusable workflows built from Workbench operations.
Core
- Create profile
- Edit profile
- Delete profile
- Duplicate profile
- Run profile
- Preview operation plan
- Add resulting operations to queue
Example: Archive Project
- Verify Git status
- Require clean working tree
- Exclude
.git,bin,obj,.vs - Compress using 7-Zip
- Generate SHA-256
- Copy archive to NAS
- Verify destination
- Recycle source only if all previous steps succeeded
Example: Phone Videos
- Find matching videos
- Convert to configured format
- Preserve timestamps
- Copy converted files to Media
- Archive originals
- 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
- Manual
- Context menu:
Run Profile - Drag files onto profile
- When location becomes available
- When removable media is connected
- Scheduled
- Folder watcher
Archives
Supported concepts
- ZIP
- 7z
- RAR
- Additional archive formats through providers
Indexing
- Scan archive contents without extraction
- Add archive entries to search index
- Search inside archives
- 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
- Extract
- Compress
- Add to archive
- Verify archive
- Queue archive operations
Potential provider:
7-Zip
File Classification
Goal: Understand what files and folders represent rather than relying only on extensions.
Initial categories
- Media (Photos / Video / Audio)
- Photos
- Video
- Audio
- Documents
- Code repositories
- Installers
- Backups (classified; left in place)
- Archives
- System data
- Unknown
Detection signals
- File extension
- MIME/content signature
- Folder structure
- Git metadata
- Media metadata
- Known application structures (
node_modules,bin,obj,.vs) - File age (old installers flagged in preview)
- File relationships
- Index metadata
Reorganization / Consolidation
Use file classification and metadata to propose better organization.
Concepts
- Analyze directory
- Classify contents
- Detect misplaced files
- Detect redundant files
- Detect old installers
- Detect old build output
- Detect archived projects
- Generate reorganization proposal
- Preview proposed operations
- 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.datLaptop -> C:\Archive\wallet.datNAS -> 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
- Detect Git repositories
- Show current branch
- Show modified count
- Show untracked count
- Show ahead/behind state
Example:
Explorer-Workbench main 3 modified 1 untracked
Actions
- Status
- View Changes
- Diff
- Commit
- Stage / Unstage / Discard
- Merge (ours / theirs / continue / abort)
- Pull
- Push
- Fetch
- Open terminal here
- 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:
- Exclude unnecessary files
- Clean temporary data
- Compress
- Encrypt
- Upload
- Create expiring share link
- Copy link to clipboard
- 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, IGitCommandProvider)
Discovery: Settings path, then Program Files, then PATH. Missing git.exe means no badge. Git is not bundled. Status / View Changes lists porcelain paths. Diff is unified git diff. Commit stages checked files then git commit --only. Stage / unstage / discard, ours / theirs / mark resolved, continue / abort wrap git.exe. Fetch / fast-forward pull / merge pull / push use GIT_TERMINAL_PROMPT=0. No mergetool, stash, branch UI, or credential dialog. Failed fast-forward pull offers merge pull or a terminal.
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.
😎