Skip to content

feat(files): allow large manual downloads and offline files #383

Description

@veryCrunchy

User problem

Explicit user actions are blocked by fixed 64 MiB Download and 512 MiB available-offline limits. Camera and video files commonly exceed those limits. A person who deliberately requests a local copy should be limited by available storage and server policy, not by an arbitrary application cap.

Acceptance criteria

  • Allow a person to download a remote file regardless of its declared size when local storage and server policy permit it.
  • Allow a person to make an individual remote file available offline regardless of its declared size when local storage and server policy permit it.
  • Use streaming writes to a temporary file followed by validation and atomic promotion; never hold the complete file in memory or expose a partial file as complete.
  • Check destination capacity and the configured free-space reserve before transfer, including safe behavior for unknown file sizes.
  • Show progress and support cancellation and resumable retry for large transfers.
  • Preserve the selected ETag or generation and reject a mixed or changed remote version.
  • Keep downloaded exports, offline pins, and disposable cache entries as distinct retention classes.
  • Replace hard rejection with a useful storage warning when an operation may consume substantial space.
  • Recover safely after process death, network loss, authentication expiry, quota failure, and a destination that becomes unavailable.
  • Add deterministic coverage for multi-gigabyte metadata, unknown sizes, insufficient space, cancellation, resume, ETag changes, and atomic promotion failure.

Relationships

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:files-syncFiles, offline storage, transfer, and synchronizationarea:uxNavigation, accessibility, responsive design, and interactionin-progressImplementation is currently activeneeds-designRequires interaction or visual design before completionplatform:androidAndroid-specific implementation or validationpriority:P1Required for the pre-release product experiencetype:featureNew product capabilitytype:reliabilityCorrectness, crash prevention, recovery, and data safety

    Type

    No type

    Projects

    Status
    In Progress

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions