Goal
Enable users to pick existing audio files from device storage and send them as
chat audio attachments.
Scope
- Add audio file picker support in message input (PC and smartphone flow).
- Validate supported MIME types (e.g.
audio/mpeg, audio/mp4, audio/ogg,
audio/wav, audio/webm).
- Validate maximum file size before upload with clear errors.
- Upload selected audio via existing media upload flow/backend endpoint.
- Send uploaded file as chat audio message with media metadata.
- Render audio attachments in timeline with playback controls.
- Show upload/sending states (loading, success, error).
- Add/extend tests for picker, validation, upload, send, and rendering.
Branch
feature/audio-file-attachments
Acceptance Criteria
Test Checklist
Unit
Integration
E2E
Notes
- This issue is only for selecting existing files from device storage.
- In-app microphone recording is handled in a separate feature.
Protocol/Compatibility Notes (Matrix)
-
Send as m.room.message audio event for broad compatibility.
-
Include sufficient audio metadata (mimetype, size, duration if known).
-
For voice recordings, include voice-message specific markers where supported.
-
Always provide fallback rendering as regular audio (m.audio) for clients
without voice-message UI support.
-
Verify behavior against at least one modern Matrix client and one older/basic
client rendering path.
-
Audio file attachments are treated as standard m.audio events without
requiring voice-message specific UI semantics.
Goal
Enable users to pick existing audio files from device storage and send them as
chat audio attachments.
Scope
audio/mpeg,audio/mp4,audio/ogg,audio/wav,audio/webm).Branch
feature/audio-file-attachmentsAcceptance Criteria
Test Checklist
Unit
Integration
E2E
Notes
Protocol/Compatibility Notes (Matrix)
Send as
m.room.messageaudio event for broad compatibility.Include sufficient audio metadata (
mimetype,size,durationif known).For voice recordings, include voice-message specific markers where supported.
Always provide fallback rendering as regular audio (
m.audio) for clientswithout voice-message UI support.
Verify behavior against at least one modern Matrix client and one older/basic
client rendering path.
Audio file attachments are treated as standard
m.audioevents withoutrequiring voice-message specific UI semantics.