-
Notifications
You must be signed in to change notification settings - Fork 44
2. Offline & Sync
This epic focuses on ensuring the diVine experience remains uninterrupted by connectivity issues, allowing for "Sovereign Creation" even when the device is disconnected from the network.
This flow covers how a creator captures, edits, and saves content while disconnected, ensuring no creative moment is lost due to poor signal.
User Stories:
Offline Video Recording (#538, #590): As a creator, I want to record and edit video segments without an internet connection so that I never lose a creative moment.
Local Data Persistence (#543, #592): As a creator, I want my unfinished videos to be saved as local drafts so that I can resume editing them later.
Draft Warning (#545): As a user, I want to be warned before logging out if I have unsynced drafts so that I don't accidentally lose my local content.
This flow handles the transition from offline to online, ensuring that queued Nostr events and media files are broadcasted to relays automatically.
User Stories:
Auto-Sync on Reconnect (#540, #591): As a user, I want my pending posts and social interactions to automatically upload in the background once my connection is restored.
Sync Progress & Status (#541): As a user, I want to see a clear sync progress indicator so I know when my content has successfully reached the network.
Conflict Resolution (#542): As a developer, I want a robust mechanism to handle sync conflicts to ensure that the local event queue matches the relay state accurately.
This flow ensures the user is aware of their connection status and can still enjoy previously loaded content while offline.
User Stories:
Offline Feed Viewing (#539): As a user, I want the app to cache recent videos from my feed so that I can continue watching content when I lose my connection.
Offline Detection (#537, #321): As a user, I want to be clearly notified via an "Offline" indicator when the app loses connectivity so I know why the feed isn't updating.
Cache Management (#544): As a developer, I want to implement an efficient cache management system to prevent local storage bloat from offline video files.
As diVine grows globally, users in regions with high data costs or metered connections will need more control over how "Sovereign Sync" consumes their resources.
Smart-Sync Scheduling: As a user, I want to restrict large video uploads to "Wi-Fi Only" so that I don't exhaust my mobile data plan unexpectedly.
Adaptive Cache Priority: As a user, I want the app to prioritize caching videos from my "Favorite" creators while offline to ensure I see the content I care about most first.
Delta-Syncing: As a developer, I want to implement delta-syncing for metadata so that only changed event information is pulled from relays, reducing data overhead.
Since drafts are stored locally, they represent a privacy risk if the device is lost or compromised before the content is broadcasted to the "sovereign" network.
Encrypted Local Vault: As a creator, I want my offline drafts to be encrypted using my device's biometrics or PIN so that my unreleased content remains private.
Remote Wipe for Unsynced Data: As a user, I want the ability to trigger a "local purge" of unsynced events if I suspect my account/device is compromised.
Vine was known for "remix" culture. Future sync logic should handle how multiple people edit a single "sovereign" event offline.
Offline Remixing: As a creator, I want to download a "remix pack" (audio + video stems) to my local cache so I can edit a response while offline.
Version Conflict Resolution (NIP-specific): As a developer, I want to use Merkle trees or CRDTs (Conflict-free Replicated Data Types) to merge offline edits from multiple devices belonging to the same pubkey.
-
Project Navigation