Skip to content

[DYN-024] Durable adaptive workspace data and offline sync #381

Description

@veryCrunchy

Roadmap

Scope

Provide one shared, account-isolated persistence and synchronization layer for semantic app workspaces. Mail is an important acceptance fixture, but the implementation must remain contract-driven and reusable by Pantry, Chores, Budget, and untested apps exposing equivalent resources and actions.

Acceptance criteria

  • Persist bounded collection pages, detail records, relationship data, pagination checkpoints, and revalidation metadata by account, app, resource, parent scope, and request identity.
  • Render cached collection and detail data immediately after navigation or process restart, then refresh non-blockingly when online.
  • Keep previously loaded read-only workspace data available offline with clear freshness and connectivity state.
  • Queue only fully verified mutations whose target identity, provenance, payload, and conflict strategy can be persisted safely.
  • Replay queued mutations after connectivity returns only when the authoritative server state still satisfies the recorded precondition or has no conflict.
  • Pause and surface a resolvable conflict instead of overwriting when ETags, versions, record identity, or authoritative postconditions diverge.
  • Show pending, synced, stale, failed, and conflicted state consistently on Android and desktop without app-specific UI branches.
  • Enforce account isolation, bounded storage, expiry/invalidation, sensitive-field policy, and logout/account-removal cleanup.
  • Cover restart, offline read, offline mutation, reconnect, duplicate replay, conflict, pagination, and cache-eviction behavior with synthetic Mail, Pantry, Chores, and generic contract fixtures.
  • Add cross-platform visual QA for immediate cached content, background refresh, offline state, pending writes, and conflict resolution.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:dynamic-appsAdaptive contracts, semantic UI, and app integrationsplatform:androidAndroid-specific implementation or validationplatform:desktopDesktop-specific implementation or validationpriority:P0Required for a trustworthy mobile replacement or prevents data losstype:featureNew product capability

    Type

    No type

    Projects

    Status
    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions