From 56b6e1616acebab9807a28546c20d2a92b72b7aa Mon Sep 17 00:00:00 2001 From: OBress Date: Sun, 10 May 2026 20:52:57 -0400 Subject: [PATCH] Release v0.1.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rolls up the v0.1.1 macOS runtime fixes (which never shipped — the Intel build queued in CI for 90+ min and was abandoned) plus the new mic picker + paste injection fixes from #5. Co-Authored-By: Claude Opus 4.7 (1M context) --- CHANGELOG.md | 41 ++++++++++++++++++++++++++++++++++++++- src-tauri/Cargo.lock | 2 +- src-tauri/Cargo.toml | 2 +- src-tauri/tauri.conf.json | 2 +- 4 files changed, 43 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 11d1f24..583b273 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,46 @@ All notable changes to VibeToText. -## [0.1.1] — 2026-05-10 +## [0.1.2] — 2026-05-10 + +macOS usability follow-up to v0.1.1: microphone selection, +permission strings, and paste injection fixes. + +### Added + +- **Microphone picker** in the settings UI. Replaces the + free-text input field with a populated dropdown driven by a + new `list_input_devices` Tauri command (CPAL enumeration). + Default device is labeled and pinned to the top; previously- + saved devices that are no longer plugged in show as "— not + currently available" rather than silently failing. +- **macOS `NSMicrophoneUsageDescription`** via a bundled + `src-tauri/Info.plist`. VibeToText now appears in + System Settings → Privacy & Security → Microphone so users + can grant + revoke the permission cleanly. + +### Fixed + +- **macOS paste crash in Cursor (and other Electron apps).** + Enigo's `Key::Unicode('v')` path calls keyboard-layout APIs + that must run on the main dispatch queue; invoking it from a + Tokio worker crashed the process. macOS paste now uses raw + HID keycodes (`55` = Cmd, `9` = V) which skip the layout + lookup entirely. +- **Repeated macOS Accessibility prompts** every dictation. + Enigo's default settings re-request the permission each time + an injector is constructed. We now construct with + `open_prompt_to_get_permissions = false` — the app already + prompts for Accessibility separately on first use. + +## [0.1.1] — 2026-05-10 [skipped] + +Tagged but not released — the `macos-13` Intel build sat in +GitHub Actions' runner queue for 90+ min and never started, so +the draft release was abandoned in favor of v0.1.2 which rolls +up both releases' changes. + +### Fixed (carried forward into v0.1.2) macOS fixes — the app now actually runs on macOS, and Intel Macs get their own native DMG. diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index a0771c7..6f0cfc6 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -6497,7 +6497,7 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "vibe-to-text" -version = "0.1.1" +version = "0.1.2" dependencies = [ "anyhow", "async-trait", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 879ddde..644a555 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "vibe-to-text" -version = "0.1.1" +version = "0.1.2" edition = "2021" [lib] diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index d70c826..787e3ac 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "VibeToText", - "version": "0.1.1", + "version": "0.1.2", "identifier": "dev.vibetotext.app", "build": { "frontendDist": "../src",