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).

Activity

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