Skip to content

tracking: ControlFS roadmap prioritized with MoSCoW #95

Description

@nextestudios

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

  1. enhancement: improve controller focus visuals and focus restoration #31 — enhancement: improve controller focus visuals and focus restoration
  2. feat: detect the active controller family (Xbox, PlayStation, Nintendo, generic) #32 — feat: detect the active controller family (Xbox, PlayStation, Nintendo, generic)
  3. 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
  4. feat: add dynamic controller button prompts to action bar #34 — feat: add dynamic controller button prompts to action bar
  5. enhancement: make the action bar fully context-sensitive #35 — enhancement: make the action bar fully context-sensitive
  6. enhancement: redesign the virtual keyboard layout after the PS5 structural model #41 — enhancement: redesign the virtual keyboard layout after the PS5 structural model
  7. 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
  8. enhancement: improve text cursor navigation (visible caret, jump to start/end) #43 — enhancement: improve text cursor navigation (visible caret, jump to start/end)
  9. feat: integrate native Windows file and folder icons #24 — feat: integrate native Windows file and folder icons
  10. enhancement: improve List View density, details and state indicators #28 — enhancement: improve List View density, details and state indicators
  11. feat: add navigable breadcrumbs #30 — feat: add navigable breadcrumbs
  12. enhancement: add Select all and Clear selection actions #23 — enhancement: add Select all and Clear selection actions
  13. feat: retry a failed operation #18 — feat: retry a failed operation
  14. feat: retry only the failed items of an operation #19 — feat: retry only the failed items of an operation
  15. feat: add recursive file search #46 — feat: add recursive file search
  16. feat: add favorites for folders #48 — feat: add favorites for folders
  17. enhancement: responsive layout for TV, desktop and handheld screens #36 — enhancement: responsive layout for TV, desktop and handheld screens
  18. security: handle-based destination checks against junction races #81 — security: handle-based destination checks against junction races
  19. feat: clean up leftover staging folders from interrupted operations #82 — feat: clean up leftover staging folders from interrupted operations
  20. feat: add a mapping wizard for controllers without a known profile #79 — feat: add a mapping wizard for controllers without a known profile
  21. test: validate the controller matrix on real hardware #78 — test: validate the controller matrix on real hardware

Should have

  1. 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
  2. feat: add recent folders and recent files #49 — feat: add recent folders and recent files
  3. 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)
  4. feat: edit the current path with the virtual keyboard #54 — feat: edit the current path with the virtual keyboard
  5. feat: add operation history #20 — feat: add operation history
  6. feat: pause and resume running file operations #21 — feat: pause and resume running file operations
  7. feat: undo and redo reversible file operations #22 — feat: undo and redo reversible file operations
  8. feat: add Grid View #29 — feat: add Grid View
  9. feat: add file navigation tabs #50 — feat: add file navigation tabs
  10. feat: add the Recycle Bin as a browsable location #26 — feat: add the Recycle Bin as a browsable location
  11. enhancement: screen reader (Narrator) support pass #40 — enhancement: screen reader (Narrator) support pass
  12. feat: add in-app image preview #57 — feat: add in-app image preview
  13. feat: add in-app text preview #58 — feat: add in-app text preview
  14. feat: extract several selected archives at once (one folder per archive) #69 — feat: extract several selected archives at once (one folder per archive)
  15. enhancement: improve archive browser UX #68 — enhancement: improve archive browser UX
  16. feat: add archive integrity testing #66 — feat: add archive integrity testing
  17. feat: add ZIP64 archive support (validation and fixtures) #63 — feat: add ZIP64 archive support (validation and fixtures)
  18. feat: add AES-encrypted ZIP support (validation and fixtures) #64 — feat: add AES-encrypted ZIP support (validation and fixtures)
  19. feat: add file search filters #47 — feat: add file search filters
  20. feat: calculate folder size on demand #55 — feat: calculate folder size on demand
  21. feat: switch the active controller explicitly and diagnose duplicate devices #80 — feat: switch the active controller explicitly and diagnose duplicate devices
  22. 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
  23. chore: set up code signing for releases #84 — chore: set up code signing for releases
  24. 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

  1. feat: add light theme and configurable accent color #37 — feat: add light theme and configurable accent color
  2. feat: add dual-pane file management #56 — feat: add dual-pane file management
  3. feat: persist open tabs between sessions #51 — feat: persist open tabs between sessions
  4. feat: restore recently closed tabs #52 — feat: restore recently closed tabs
  5. feat: duplicate a file navigation tab #53 — feat: duplicate a file navigation tab
  6. feat: show network locations already mapped by Windows #27 — feat: show network locations already mapped by Windows
  7. feat: add in-app PDF preview #59 — feat: add in-app PDF preview
  8. feat: add lightweight text editing from preview #62 — feat: add lightweight text editing from preview
  9. feat: support split and multi-volume archives #65 — feat: support split and multi-volume archives
  10. feat: add 7z archive creation #67 — feat: add 7z archive creation
  11. test: validate RAR and 7z archives with encrypted headers #70 — test: validate RAR and 7z archives with encrypted headers
  12. feat: add batch rename #71 — feat: add batch rename
  13. feat: add disk usage analysis #72 — feat: add disk usage analysis
  14. feat: add ISO mounting support #73 — feat: add ISO mounting support
  15. feat: add ISO unmount support #74 — feat: add ISO unmount support
  16. feat: add local text suggestions to the virtual keyboard #45 — feat: add local text suggestions to the virtual keyboard
  17. security: support update-signing key rotation #86 — security: support update-signing key rotation
  18. feat: add in-app audio preview #60 — feat: add in-app audio preview

Won't have (for 1.0)

  1. feat: add in-app video preview #61 — feat: add in-app video preview
  2. feat: show Git status indicators in repositories #75 — feat: show Git status indicators in repositories
  3. feat: add optional integrated terminal #76 — feat: add optional integrated terminal
  4. experiment: investigate DualSense gyro typing #77 — experiment: investigate DualSense gyro typing

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

  • 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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationtype: epicTracking issue that groups related work

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions