Summary
Roadmap for ControlFS, organized as milestones, epics and issues. Priorities use the MoSCoW method , scoped to the 1.0 release, and the lists below are in implementation order: work top to bottom. Each issue's moscow: * label replaces the old priority: * labels.
Label
Meaning
moscow: must
Required for 1.0: without it, ControlFS isn't a usable controller-first file manager
moscow: should
Important, planned for 1.0 if time allows; there's a workaround without it
moscow: could
Nice to have; only after Must and Should
moscow: won't
Not planned for 1.0; kept open for later
Order rule: an issue never comes before its blockers, and a Must never depends on a lower-priority issue.
Epics
Must have
enhancement: improve controller focus visuals and focus restoration #31 — enhancement: improve controller focus visuals and focus restoration
feat: detect the active controller family (Xbox, PlayStation, Nintendo, generic) #32 — feat: detect the active controller family (Xbox, PlayStation, Nintendo, generic)
feat: create original vector button glyphs for Xbox, PlayStation, Nintendo and generic layouts #33 — feat: create original vector button glyphs for Xbox, PlayStation, Nintendo and generic layouts
feat: add dynamic controller button prompts to action bar #34 — feat: add dynamic controller button prompts to action bar
enhancement: make the action bar fully context-sensitive #35 — enhancement: make the action bar fully context-sensitive
enhancement: redesign the virtual keyboard layout after the PS5 structural model #41 — enhancement: redesign the virtual keyboard layout after the PS5 structural model
enhancement: hold-to-repeat for Backspace and cursor keys in the virtual keyboard #42 — enhancement: hold-to-repeat for Backspace and cursor keys in the virtual keyboard
enhancement: improve text cursor navigation (visible caret, jump to start/end) #43 — enhancement: improve text cursor navigation (visible caret, jump to start/end)
feat: integrate native Windows file and folder icons #24 — feat: integrate native Windows file and folder icons
enhancement: improve List View density, details and state indicators #28 — enhancement: improve List View density, details and state indicators
feat: add navigable breadcrumbs #30 — feat: add navigable breadcrumbs
enhancement: add Select all and Clear selection actions #23 — enhancement: add Select all and Clear selection actions
feat: retry a failed operation #18 — feat: retry a failed operation
feat: retry only the failed items of an operation #19 — feat: retry only the failed items of an operation
feat: add recursive file search #46 — feat: add recursive file search
feat: add favorites for folders #48 — feat: add favorites for folders
enhancement: responsive layout for TV, desktop and handheld screens #36 — enhancement: responsive layout for TV, desktop and handheld screens
security: handle-based destination checks against junction races #81 — security: handle-based destination checks against junction races
feat: clean up leftover staging folders from interrupted operations #82 — feat: clean up leftover staging folders from interrupted operations
feat: add a mapping wizard for controllers without a known profile #79 — feat: add a mapping wizard for controllers without a known profile
test: validate the controller matrix on real hardware #78 — test: validate the controller matrix on real hardware
Should have
feat: show drive-type icons for fixed, USB, optical and network drives #25 — feat: show drive-type icons for fixed, USB, optical and network drives
feat: add recent folders and recent files #49 — feat: add recent folders and recent files
enhancement: add text selection to the virtual keyboard (select all, select stem) #44 — enhancement: add text selection to the virtual keyboard (select all, select stem)
feat: edit the current path with the virtual keyboard #54 — feat: edit the current path with the virtual keyboard
feat: add operation history #20 — feat: add operation history
feat: pause and resume running file operations #21 — feat: pause and resume running file operations
feat: undo and redo reversible file operations #22 — feat: undo and redo reversible file operations
feat: add Grid View #29 — feat: add Grid View
feat: add file navigation tabs #50 — feat: add file navigation tabs
feat: add the Recycle Bin as a browsable location #26 — feat: add the Recycle Bin as a browsable location
enhancement: screen reader (Narrator) support pass #40 — enhancement: screen reader (Narrator) support pass
feat: add in-app image preview #57 — feat: add in-app image preview
feat: add in-app text preview #58 — feat: add in-app text preview
feat: extract several selected archives at once (one folder per archive) #69 — feat: extract several selected archives at once (one folder per archive)
enhancement: improve archive browser UX #68 — enhancement: improve archive browser UX
feat: add archive integrity testing #66 — feat: add archive integrity testing
feat: add ZIP64 archive support (validation and fixtures) #63 — feat: add ZIP64 archive support (validation and fixtures)
feat: add AES-encrypted ZIP support (validation and fixtures) #64 — feat: add AES-encrypted ZIP support (validation and fixtures)
feat: add file search filters #47 — feat: add file search filters
feat: calculate folder size on demand #55 — feat: calculate folder size on demand
feat: switch the active controller explicitly and diagnose duplicate devices #80 — feat: switch the active controller explicitly and diagnose duplicate devices
test: add WinUI automation tests for focus, dialogs and the virtual keyboard #83 — test: add WinUI automation tests for focus, dialogs and the virtual keyboard
chore: set up code signing for releases #84 — chore: set up code signing for releases
enhancement: reduce package size by trimming unused Windows App SDK components #85 — enhancement: reduce package size by trimming unused Windows App SDK components
Could have
feat: add light theme and configurable accent color #37 — feat: add light theme and configurable accent color
feat: add dual-pane file management #56 — feat: add dual-pane file management
feat: persist open tabs between sessions #51 — feat: persist open tabs between sessions
feat: restore recently closed tabs #52 — feat: restore recently closed tabs
feat: duplicate a file navigation tab #53 — feat: duplicate a file navigation tab
feat: show network locations already mapped by Windows #27 — feat: show network locations already mapped by Windows
feat: add in-app PDF preview #59 — feat: add in-app PDF preview
feat: add lightweight text editing from preview #62 — feat: add lightweight text editing from preview
feat: support split and multi-volume archives #65 — feat: support split and multi-volume archives
feat: add 7z archive creation #67 — feat: add 7z archive creation
test: validate RAR and 7z archives with encrypted headers #70 — test: validate RAR and 7z archives with encrypted headers
feat: add batch rename #71 — feat: add batch rename
feat: add disk usage analysis #72 — feat: add disk usage analysis
feat: add ISO mounting support #73 — feat: add ISO mounting support
feat: add ISO unmount support #74 — feat: add ISO unmount support
feat: add local text suggestions to the virtual keyboard #45 — feat: add local text suggestions to the virtual keyboard
security: support update-signing key rotation #86 — security: support update-signing key rotation
feat: add in-app audio preview #60 — feat: add in-app audio preview
Won't have (for 1.0)
feat: add in-app video preview #61 — feat: add in-app video preview
feat: show Git status indicators in repositories #75 — feat: show Git status indicators in repositories
feat: add optional integrated terminal #76 — feat: add optional integrated terminal
experiment: investigate DualSense gyro typing #77 — experiment: investigate DualSense gyro typing
Key dependency chains
Controller family detection feat: detect the active controller family (Xbox, PlayStation, Nintendo, generic) #32 + glyphs feat: create original vector button glyphs for Xbox, PlayStation, Nintendo and generic layouts #33 → dynamic prompts feat: add dynamic controller button prompts to action bar #34 → contextual action bar enhancement: make the action bar fully context-sensitive #35 → virtual keyboard redesign enhancement: redesign the virtual keyboard layout after the PS5 structural model #41
Virtual keyboard redesign enhancement: redesign the virtual keyboard layout after the PS5 structural model #41 → hold-to-repeat enhancement: hold-to-repeat for Backspace and cursor keys in the virtual keyboard #42 → caret navigation enhancement: improve text cursor navigation (visible caret, jump to start/end) #43 → text selection enhancement: add text selection to the virtual keyboard (select all, select stem) #44
Virtual keyboard redesign enhancement: redesign the virtual keyboard layout after the PS5 structural model #41 → search feat: add recursive file search #46 → search filters feat: add file search filters #47
Operation engine feat: add a shared file operation engine (plan, progress, per-item results) #10 (done) → retry feat: retry a failed operation #18 → retry failed items feat: retry only the failed items of an operation #19 ; history feat: add operation history #20 → undo/redo feat: undo and redo reversible file operations #22
Native Windows icons feat: integrate native Windows file and folder icons #24 → drive icons feat: show drive-type icons for fixed, USB, optical and network drives #25 / Grid View feat: add Grid View #29 / Recycle Bin location feat: add the Recycle Bin as a browsable location #26
Tabs feat: add file navigation tabs #50 → persist feat: persist open tabs between sessions #51 / restore feat: restore recently closed tabs #52 / duplicate feat: duplicate a file navigation tab #53
Virtual keyboard redesign enhancement: redesign the virtual keyboard layout after the PS5 structural model #41 + rename feat: rename files and folders with extension-preserving selection #11 (done) → batch rename feat: add batch rename #71
Done
Operation engine #10 , rename #11 , Recycle Bin delete #12 , copy #13 , move #14 , cut #15 , paste #16 , conflict resolution #17 , About screen and logo #39 .
Must items done: #31 , #32 , #33 , #34 , #35 , #41 , #42 , #43 , #24 , #28 , #30 , #23 , #18 , #19 , #46 , #48 , #36 , #81 , #82 . Code for #79 is merged (wizard #121 , two-button fallback #128 ) and awaits a real-joystick check; #78 awaits the maintainer's hardware run using the in-app controller test screen (#127 ).
Notes
DeckCrate is used only as a functional reference; no code, assets, UI or identity are copied.
Already implemented before this roadmap: extraction of ZIP/7z/RAR4/RAR5/TAR/TAR.GZ/GZ, ZIP/TAR.GZ creation, create folder, open with Windows, automatic updates, installer and single-file portable build.
Licensing: the project is AGPL-3.0-only (see docs/LICENSING.md).
Summary
Roadmap for ControlFS, organized as milestones, epics and issues. Priorities use the MoSCoW method, scoped to the 1.0 release, and the lists below are in implementation order: work top to bottom. Each issue's
moscow: *label replaces the oldpriority: *labels.moscow: mustmoscow: shouldmoscow: couldmoscow: won'tOrder rule: an issue never comes before its blockers, and a Must never depends on a lower-priority issue.
Epics
Must have
Should have
Could have
Won't have (for 1.0)
Key dependency chains
Done
Operation engine #10, rename #11, Recycle Bin delete #12, copy #13, move #14, cut #15, paste #16, conflict resolution #17, About screen and logo #39.
Must items done: #31, #32, #33, #34, #35, #41, #42, #43, #24, #28, #30, #23, #18, #19, #46, #48, #36, #81, #82. Code for #79 is merged (wizard #121, two-button fallback #128) and awaits a real-joystick check; #78 awaits the maintainer's hardware run using the in-app controller test screen (#127).
Notes
docs/LICENSING.md).