5f7e46256c
Introduces new modules for audio recording (`recorder.rs`) and asynchronous uploading (`uploader.rs`) with retry logic. The `recorder` module uses `ffmpeg` as a subprocess to capture audio and save it as M4A files. It handles starting, stopping, and reporting recording events. The `uploader` module manages a queue of recordings to be uploaded to the server. It supports persistent storage of pending uploads via sidecar JSON files, exponential backoff for retries, and emits events for UI feedback. New dependencies were added to `Cargo.toml` and `Cargo.lock` to support these features, including `reqwest`, `serde_json`, `tokio`, `uuid`, and `which`.