Skip to content
sysout.dev

treeger - File Manager Roadmap

Product principles, delivered foundations, exploratory features, and delivery direction for the Treeger file manager.

Product Principles

Customisable by composition

Users should shape treeger by arranging a small set of useful Home modules rather than navigating a large settings surface. Recent files, pinned folders, quick access, saved searches, storage, and future modules should all be hideable and reorderable. Folder-level view and sort choices should be remembered independently.

Clean by progressive disclosure

The default view should remain quiet: one primary action, direct file and folder rows, and no permanent toolbar full of commands. Editing actions should appear in selection mode or a contextual sheet. Advanced features should be discoverable, but should not compete with browsing.

Safe and reversible

Destructive actions should use a treeger Trash with an undo window. Copy and move operations should have visible progress, conflict handling, and cancellation. The app should never silently overwrite a file.

Local-first and respectful

History, pins, saved views, and preferences stay on-device. Content indexing is opt-in, understandable, and removable. Network or cloud providers should be additions, not requirements.

Home as a Personal File Dashboard

Home should evolve into an ordered list of modules. The initial modules are:

  • Recently Used: files the user recently opened, recorded locally when an internal preview opens successfully or a file is successfully handed to another app. The section is always present, shows up to six items, and provides a clear- history action when it contains entries.

  • Pinned folders: user-selected and reorderable.

  • Quick access: standard public folders that are present and readable.

The next customisation step should allow drag-reordering and hiding every module from an Edit Home mode. Later modules can include starred files, saved searches, storage health, active transfers, and user-defined Spaces.

Definition of Recent Files

Recent means recently opened by the user. Opening a file again moves it to the top and refreshes its opened time. Merely browsing past a file or generating a thumbnail does not count.

Created, downloaded, and modified files do not enter Recent unless the user opens them. Those are properties of the file rather than evidence of user activity, and combining them would make the list surprising. Future views such as New downloads or Changed this week belong under search filters or Smart Stacks and should use the file’s created/modified metadata explicitly.

Folders are excluded from this list. Important folders are already represented by pins and Quick access; a future navigation-history feature should be named and designed separately if it proves useful.

Standard File Manager Foundation

Capability Clean interaction Important behavior

Multi-select

Long-press enters selection mode; the top bar changes contextually

Select all, range selection, and accessible selection count

Copy and move

A small operation shelf follows the user to the destination

Progress, cancel, name conflicts, no silent overwrite, background-safe work

Rename and create folder

Inline or compact dialog with immediate validation

Preserve extensions by default and explain invalid names

Trash and delete

Trash is the default; permanent delete is secondary

Undo, retention setting, storage-provider capability checks

Share and Open with

Context sheet from a file or selection

Multiple-file MIME handling and URI permission grants

Search

Fast search in the current folder first; explicit scope expansion

Filters for type, date, size, and location; cancellable recursive search

Properties

Calm bottom sheet with useful metadata

Path, type, dates, size, permissions, and checksum on demand

Archives

Browse archives like folders; extract is an explicit action

ZIP first, progress and conflict handling, protection against unsafe paths

View modes

List and grid, chosen per folder

Density, thumbnail policy, grouping, sort, and hidden-file preference

Distinctive Features Worth Exploring

Unlike the standard file-manager foundation, the ideas in this section are not commitments. Each must state the user problem before proposing an interaction. A feature moves into delivery only when its decision criteria are met and its benefit justifies the additional concepts in the interface.

Spaces

The detailed feature history, constraints, ordered deliveries, and release evidence are maintained in Spaces Feature Brief.

Product thesis: treeger should be able to replace both a conventional file manager and a local gallery. The same device files need a location-first view when the user wants filesystem control and a visual, content-first view when the user wants to browse media. Switching between those views is a core product behavior, not a persona to infer or a demand signal that must be established first.

Proposed solution: Home is the application-wide dashboard and is outside every Space. It presents a Spaces section alongside shared Recently Used, pinned folders, and Quick Access. A Space is a persistent definition over the same local files: name, icon, included folders, hierarchical or aggregate-content browsing, permanent content-type membership, and a default shared layout. The built-in Explorer Space navigates direct folder contents; the built-in Gallery Space recursively presents images and videos as a visual, date-grouped collection.

Search, temporary filters, sort, grouping, selection, file actions, opening, properties, thumbnails, transfers, Recent history, and Trash are shared capabilities rather than per-Space implementations or policies. Their behavior is derived from current results, selected files, filesystem capabilities, and viewer support. Switching a Space never moves or duplicates files and should preserve each Space’s browsing context.

List and Grid use the shared SpaceLayout axis rather than separate Gallery and folder-view concepts. Explorer retains backward-compatible per-folder overrides; Gallery can project the same filtered results as either a visual grid or a source-aware list without rescanning or changing Space membership.

Space membership and file ownership are separate. Permanent content membership is also separate from temporary result filters: clearing a Gallery filter never makes non-media files Gallery members. Removing an item from a custom Space, if that becomes supported, changes only that Space’s configuration. It must not delete the underlying file. Delete has the same meaning in every Space and uses the existing treeger Trash behavior. The initial Gallery prototype lacked Delete only because shared selection and actions had not yet been integrated; Gallery now uses the same selection, action, transfer-shelf, and Trash flows as Explorer.

Prototype disposition: The first debug-only prototype used a compact Files / Gallery dropdown on Home and Gallery. That navigation has been superseded by the decided model: Home gains a Spaces section, no Space is selected on Home, and an Explorer / Gallery dropdown switches Spaces only from Space screens. A centered vertical icon rail remains a possible later interaction experiment, not part of the foundation. Gallery may continue using the existing recursive search while the shared content browse engine derives its roots and permanent membership from the Space definition. Explorer uses the corresponding hierarchical engine and retains its current folder when switching Spaces. Neither engine adds a media index, new delete semantics, or Space-specific file-operation state.

Every Spaces-lab delivery should rebuild the local debug application for device testing. The tracked artifacts/treeger-debug.apk is refreshed only when an APK artifact delivery is explicitly requested.

Decision point: Promotion from the debug lab depends on whether the existing infrastructure can produce a fast, understandable Gallery, a credible Explorer, and seamless navigation from the application Home. Refine source grouping, capture-date ordering, internal preview, video thumbnails, shared actions, and retained navigation state incrementally. Persona- or interest-based custom Spaces remain a later extension of the same definition axes rather than a prerequisite for the two built-ins.

Smart Stacks

Problem: Useful groups often cross folder boundaries or change continuously. Users otherwise repeat the same search for things such as PDFs changed this week, large downloads, or screenshots not yet organised. A static pinned folder cannot represent these sets.

Proposed solution: A Smart Stack is a saved search whose results update from explicit rules for location, type, date, and size. It can be placed on Home like a module without moving files. Rules must remain visible and editable; opaque AI classification must not be the only explanation for why an item appears.

Terminology: the live rule is the saved, continuously evaluated query; the Smart Stack is its optional presentation as a module on Home.

Decision point: Build only after scoped search and filters are dependable. Prototype without a permanent index first, then measure performance. Any later index must be opt-in, local, removable, and clearly explain its storage cost.

Current disposition: Deferred. Scoped search covers the current need, and there is not yet evidence that people repeatedly need the same changing, cross-folder result sets or want them as Home modules.

Operation Shelf

Problem: Copy and move require choosing files in one location and a destination in another. A modal folder picker hides context, while an invisible clipboard makes it easy to forget what will be pasted or whether an operation is active.

Proposed solution: A temporary operation shelf holds the selected files while the user navigates normally. It shows what is being carried, offers Copy here or Move here, and then becomes compact progress UI with cancel and conflict handling. A later version could collect files from multiple locations.

Decision point: Compare this flow with a conventional destination picker during the copy/move prototype. Keep the shelf only if it reduces navigation mistakes without becoming permanent screen furniture or creating accessibility problems.

Folder Memory

Problem: A single global view is wrong for different content. Photos benefit from a spacious grid, Documents from a dense list, and Downloads from modified- date grouping. Reconfiguring the view on every visit creates repeated work.

Proposed solution: Remember list/grid mode, density, grouping, and sort for an individual folder after the user changes it there. Global settings remain the default for folders without a remembered preference.

Decision point: Add after list and grid modes exist. Provide a clear Use default reset and monitor whether per-folder state makes behavior feel surprising. The first delivery remembers view mode only; global Sort remains unchanged. The following information-density polish derives List/Grid section groups from global Sort rather than storing an independent grouping choice. Per-folder Sort and density remain future Folder Memory work.

Calm-up Suggestions

Problem: Storage cleanup tools often use alarming totals and opaque one-tap actions. Users still need help finding a few understandable sources of clutter, but should remain in control of deletion.

Proposed solution: Optional, local-only suggestions surface reviewable sets such as stale installer files, duplicate downloads, empty folders, or unusually large items. Every suggestion explains its rule and opens a normal selection screen; there is no clean everything action.

Decision point: Consider only after Trash, properties, search filters, and safe multi-select deletion exist. Each rule needs a low false-positive rate and must be useful without content uploading or opaque classification.

Peek and Spatial View

Problem: Opening files one by one in other apps breaks browsing context and is slow when visually checking several nearby items. A normal list or thumbnail grid is efficient but flattens a collection, making exploration and comparison harder.

Proposed solution — Phase 2, Peek: Add a focused in-app preview for any file treeger can render or represent with a useful thumbnail. Examples include an image, a PDF page, a video frame, album art, or a text excerpt. When content cannot produce a thumbnail, use a typographic tile built from the file name and extension rather than excluding it. Peek supports adjacent-item navigation, useful metadata, share, and Open with; format-specific controls such as pinch zoom are additive. Entering Peek counts as opening the file and therefore updates Recently Used. Long-press remains reserved for multi-select, so Peek should use a tap or explicit preview action rather than a conflicting gesture.

Possible extension — Phase 3, Spatial View: Explore an optional visual canvas that represents every file as either its thumbnail or its file-name tile and lets people move through groups with depth or zoom. Photos are a particularly strong use case, but the interaction is not photo-only. The canvas could group by time, type, or folder and reveal detail as the user moves closer. It remains an alternative to the predictable list/grid, not a replacement for normal browsing.

Decision point: Add preview formats incrementally and ship Peek only if it is fast and memory-safe on large folders while preserving normal Android sharing and opening behavior. Treat the spatial view as a separate prototype: decide its exact user task, test it with mixed libraries as well as photo-heavy ones, and require a clear advantage over list/grid plus zoom before committing to 3D rendering, motion, and accessibility costs.

Delivery Order

  1. Always-visible Recently Used on Home with local history and clear-history.

  2. Shared selection model, create folder, rename, share, and properties.

  3. Copy/move operation engine with progress, conflicts, cancellation, and an operation shelf.

  4. Trash, restore, permanent delete, and retention settings.

  5. Scoped search plus filters. Saved searches and Smart Stacks remain deferred until a recurring cross-folder use case is validated.

  6. Grid/thumbnails and per-folder Folder Memory.

  7. Archive browsing/extraction.

  8. Run the built-in Explorer/Gallery Spaces thesis in a debug-only lab using the shared search, grouping, thumbnail, opening, and operation foundations; promote it only after its performance and interaction are credible. Edit Home and custom Spaces remain later work.

  9. Peek, then a separate mixed-file spatial-view prototype; optional local maintenance suggestions only after the safety foundation exists.

This order builds the safety and operation primitives once, then lets the more inventive features reuse them instead of creating parallel interaction models.