When 'Store Audio on Phone' is enabled, local WAL files are kept on the device but are not used for playback. The app always streams audio from the cloud, even when a local copy exists. The user wants the app to use the local files for playback.
## Problem When "Store Audio on Phone" is enabled, local WAL files are kept on device but **NOT used for playback**. The app always streams audio from the cloud (GCS), even when a local copy exists. **Current behavior:** ```dart // app/lib/widgets/conversation_audio_player_widget.dart final urls = getConversationAudioUrls( conversationId: widget.conversation.id, audioFileIds: audioFileIds, format: 'wav', ); // Always generates: v1/sync/audio/{conversationId}/{audioFileId}?format=wav // Always streams from GCS ``` **Why this is wasteful:** - Downloads same audio multiple times if replayed - Wastes bandwidth and cloud egress costs - Doesn't work offline (even though local file exists) - "Store Audio on Phone" setting has no playback benefit ## Proposed Solution Check for local WAL files first, fall back to cloud streaming if missing. **Playback flow:** ``` Click play → Check if WAL exists locally → If yes: Play from local file (instant, offline-capable) → If no: Stream from