Build a Windows-first file explorer that feels faster than Files by keeping the navigation hot path in Rust and using Tauri/Svelte as a thin desktop shell.
- Product Vision: product identity and UX posture.
- Architecture Blueprint: target module boundaries.
- Design Brief: visual and interaction authority.
- Development Workflow: verification standard.
- Rust owns directory enumeration, sorting, filtering, search, file operations, archive handling, preview orchestration, caching, and job cancellation.
- Tauri transports typed intents and incremental state updates.
- Svelte renders panes, tabs, lists, path controls, menus, dialogs, and settings without owning filesystem logic.
- Windows integrations live behind platform modules so future macOS/Linux support can share the core contracts.
- Expensive enrichments stay off the navigation hot path and must be cancelable when they can race navigation.
- Cold start to interactive shell: under 900 ms on a modern desktop.
- Warm folder switch: first visible rows in under 100 ms.
- Large folder navigation: incremental rows immediately, no UI freeze.
- Sort on cached 10k-item directory: under 120 ms.
- Details-view scrolling: stable 60 fps in virtualized lists.
- Cancellation: stale navigation jobs never overwrite current view state.
Goal: establish the repo and architecture boundary for a Rust-owned explorer.
- Define Rust crate boundaries.
- Define IPC around request ids, job ids, and streamed deltas for the first explorer slice.
- Build benchmark harness for startup, navigation, search, sort, and file operations.
- Lock down renderer-only frontend rules for the Tauri/Svelte shell.
- Add docs, handbook, and ADR structure.
Goal: make local directory navigation fast, incremental, and stable.
- Create Rust directory engine with Windows-first enumeration for the current single-pane explorer slice.
- Return cheap item fields first and enrich later.
- Add snapshot cache and cancellation-aware job scheduler.
- Build a virtualized details view in Svelte.
- Support basic selection, focus, keyboard navigation, and breadcrumbs.
- Add Rust-owned in-folder filtering and sort specs.
Goal: become useful as a daily-driver shell for common file work.
- Add tabs.
- Add rename, delete-to-recycle-bin, and create-folder actions.
- Add dual-pane state model.
- Add omnibar and command palette shell.
- Add queued copy/move operations with progress and conflict handling.
- Add developer settings for artificial navigation delay and UI testing toggles.
- Add developer timing traces for navigation/render visibility.
- Add persistent metrics collection for startup, navigation, sort, search, and scroll budgets.
- Add native or shell-backed context menu flow.
- Add full session restore across app restarts.
Goal: add deeper file management without slowing the navigation hot path.
- Add preview pane with lazy adapters.
- Add archive browsing, extraction, and creation.
- Add file properties and hashes.
- Add advanced columns.
- Add tags.
- Add keyboard remapping.
Goal: add optional external context behind explicit boundaries.
- Add Git status and branch actions.
- Add cloud drive providers without polluting core navigation latency.
- Add FTP/SFTP.
- Define third-party integration boundaries and plugin safety rules.
- Add ADRs for integrations that touch credentials, shell execution, or the navigation hot path.
Goal: preserve Windows excellence while making future platform backends possible.
- Extract remaining Windows assumptions into platform modules.
- Add portable core tests.
- Define platform backend contracts.
- Introduce macOS/Linux backends only after Windows performance targets are consistently met.
Safety and file operations:
- Keep frontend filesystem behavior behind Tauri commands.
- Keep first navigation slice Rust-owned.
- Make destructive operations queue-aware and progress-reporting.
- Prefer recycle-bin behavior where Windows supports it.
- Add ADR before exposing broad shell execution or plugin execution.
UX and shell fidelity:
- Match system light/dark theme by default.
- Keep the main list virtualized.
- Keep same-path refresh stable rather than clearing the list.
- Add shell-native context menu behavior.
- Add drag/drop affordances.
- Add dual-pane workflows.
Agent and maintainer discipline:
- Add docs index and agent guide.
- Add engineering handbook.
- Add architecture decision records directory.
- Add checked-in pre-commit or validation hook if size/secrets checks need enforcement.
- Keep roadmap/TODO items updated as milestones land.
- No large one-shot folder payloads.
- No non-virtualized large lists.
- No heavy metadata on first paint.
- No UI-thread sorting for real directories.
- No long-running integrations inline with navigation.
- No frontend-owned filesystem operations.