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

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

    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

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions