Skip to content

feat(sync): add per-file mobile-data transfer policies #366

Description

@veryCrunchy

User problem

A sync pair currently chooses one network policy for every file: any connection or unmetered only. Users need smaller or important files to continue over mobile data while large files or selected media types wait for Wi-Fi or another unmetered network.

Acceptance criteria

  • Allow ordered network-policy rules based on path, extension, MIME or media type, and file size.
  • Support any validated connection, unmetered only, never transfer automatically, and an explicit one-time manual override.
  • Keep deferred files pending with a clear waiting-for-unmetered-network state instead of marking them failed.
  • Continue transferring eligible files from the same sync pair while restricted files wait.
  • Make newly eligible work runnable after network transitions without duplicating operations.
  • Preview which files are currently eligible and which will wait.
  • Clearly state whether manual sync respects or temporarily overrides network policies.
  • Use the same policy semantics for uploads and downloads unless directions are configured deliberately.
  • Resume interrupted transfers without unnecessary restarts after a network transition.
  • Add deterministic coverage for mixed-size queues, metered-to-unmetered transitions, roaming, loss of validation, policy edits, retries, and process death.

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 capability

    Type

    No type

    Projects

    Status
    In Progress

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions