CodeIssuesPull RequestsActionsSecurityInsights
✨ AI
More
Settings

Bump to v1.0.1 for release #4790

Merged⚡ AI-generatedXSccantynz wants to mergeclaude/platform-overview-docs-nknFJmainopened Apr 16, 20261/2 tasks
9 changed files+36−10
ModifiedCHANGELOG.md+10−0View fileUnifiedSplit
11# Changelog
22
3## [1.0.5] - 2026-04-17
4
5### Fixed
6- **Rust compile (all 4 CI platforms)**: resolved the compile errors that blocked every prior release (v1.0.0 through v1.0.4 never produced installers):
7 - Added missing `use tauri::Emitter` in `src-tauri/src/lib.rs` so `WebviewWindow::emit()` resolves.
8 - Fixed a `parking_lot::RwLock` read guard being held across `.await` in `src-tauri/src/stt/processor.rs` — the future became non-`Send` and wouldn't spawn on `tokio::spawn`. Config is now cloned out before the await.
9 - Added a module-level `transcribe_audio()` helper in `src-tauri/src/stt/mod.rs` so the processor can transcribe without re-entering the lock.
10 - Rewrote `commands::audio::get_selected_device` to land the read-guard result into a local before constructing the `Result`, fixing a borrow-check lifetime error.
11- Fixes originally identified by Copilot's build-repair agent on `copilot/fix-build-errors`; re-applied here onto mainline.
12
313## [1.0.4] - 2026-04-16
414
515### Changed
Modifiedpackage.json+1−1View fileUnifiedSplit
11{
22 "name": "marco-reid-voice",
33 "private": true,
4 "version": "1.0.4",
4 "version": "1.0.5",
55 "description": "Marco Reid Voice - the platform input layer for Marco Reid. Voice-first dictation and commands for legal and accounting professionals across desktop, mobile, and web.",
66 "type": "module",
77 "scripts": {
Modifiedsrc-tauri/Cargo.lock+1−1View fileUnifiedSplit
25172517
25182518[[package]]
25192519name = "marco-reid-voice"
2520version = "1.0.4"
2520version = "1.0.5"
25212521dependencies = [
25222522 "anyhow",
25232523 "base64 0.22.1",
Modifiedsrc-tauri/Cargo.toml+1−1View fileUnifiedSplit
11[package]
22name = "marco-reid-voice"
3version = "1.0.4"
3version = "1.0.5"
44description = "Marco Reid Voice - native voice input layer for the Marco Reid platform"
55authors = ["Marco Reid"]
66edition = "2021"
Modifiedsrc-tauri/src/commands/audio.rs+2−1View fileUnifiedSplit
1010#[tauri::command]
1111pub fn get_selected_device(state: State<'_, AudioState>) -> Result<Option<String>, String> {
1212 let engine = state.0.read();
13 Ok(engine.selected_device.read().clone())
13 let device = engine.selected_device.read().clone();
14 Ok(device)
1415}
1516
1617#[tauri::command]
Modifiedsrc-tauri/src/lib.rs+1−0View fileUnifiedSplit
44mod text_injection;
55
66use tauri::{
7 Emitter,
78 Manager,
89 menu::{Menu, MenuItem},
910 tray::TrayIconBuilder,
Modifiedsrc-tauri/src/stt/mod.rs+14−0View fileUnifiedSplit
117117 Ok(cursor.into_inner())
118118}
119119
120/// Standalone transcription function that takes owned config, avoiding holding
121/// a lock guard across an await point.
122pub(crate) async fn transcribe_audio(
123 audio_data: &[f32],
124 sample_rate: u32,
125 config: SttConfig,
126) -> anyhow::Result<TranscriptionResult> {
127 let wav_data = encode_wav(audio_data, sample_rate)?;
128 match config.engine {
129 SttEngineType::DeepgramCloud => cloud::deepgram_transcribe(&wav_data, &config).await,
130 SttEngineType::WhisperCloud => cloud::whisper_transcribe(&wav_data, &config).await,
131 }
132}
133
120134pub struct SttState(pub Arc<RwLock<SttEngine>>);
121135
122136impl SttState {
Modifiedsrc-tauri/src/stt/processor.rs+5−5View fileUnifiedSplit
44use tauri::{AppHandle, Emitter};
55
66use crate::audio::{AudioChunk, DictationStatus};
7use super::{SttEngine, TranscriptionResult};
7use super::SttEngine;
88
99/// Processes audio chunks from the capture thread and sends them to STT
1010pub struct AudioProcessor {
7878 samples
7979 };
8080
81 let engine = stt_engine.read();
82 match engine.transcribe(&resampled, 16000).await {
81 let config = stt_engine.read().get_config();
82 match super::transcribe_audio(&resampled, 16000, config).await {
8383 Ok(result) => {
8484 if !result.text.trim().is_empty() {
8585 log::info!("Transcription: {}", result.text);
116116 samples
117117 };
118118
119 let engine = stt_engine.read();
120 match engine.transcribe(&resampled, 16000).await {
119 let config = stt_engine.read().get_config();
120 match super::transcribe_audio(&resampled, 16000, config).await {
121121 Ok(result) => {
122122 if !result.text.trim().is_empty() {
123123 let _ = app_handle.emit("transcription", &result);
Modifiedsrc-tauri/tauri.conf.json+1−1View fileUnifiedSplit
11{
22 "$schema": "https://raw.githubusercontent.com/tauri-apps/tauri/dev/crates/tauri-config-schema/schema.json",
33 "productName": "Marco Reid Voice",
4 "version": "1.0.4",
4 "version": "1.0.5",
55 "identifier": "com.marcoreid.voice",
66 "build": {
77 "beforeDevCommand": "npm run dev",
88
c comment · e edit title · m merge · a approve · r request changes · ? shortcuts