161 Commits

Author SHA1 Message Date
Beingpax
ac1a85c056 Improved text formatting during paste operation 2025-11-28 20:39:43 +05:45
Beingpax
5f59b61ee8 Remove toggle switch for word replacements 2025-11-07 10:47:25 +05:45
Beingpax
489f2eaf0c Fix logs showing private instead of actual transcription text 2025-11-07 09:34:18 +05:45
Deborah Mangan
f261e4937b Fix critical production safety issues
- Replace force-unwrapped URLs in cloud transcription services with safe guard statements
  * GroqTranscriptionService: Add URL validation before use
  * ElevenLabsTranscriptionService: Add URL validation before use
  * MistralTranscriptionService: Add URL validation before use
  * OpenAICompatibleTranscriptionService: Add URL validation before use

- Replace fatalError in VoiceInk.swift with graceful degradation
  * Implement in-memory fallback when persistent storage fails
  * Add user notification for storage issues
  * Use proper logging instead of fatal crash

- Fix dictionary force unwrap in WhisperPrompt.swift
  * Add safe fallback when default language prompt missing
  * Prevent potential crash on dictionary access

- Wrap debug print statement in #if DEBUG directive
  * Eliminate production logging overhead in VoiceInk.swift

These changes prevent 6+ potential crash scenarios while maintaining
full functionality with graceful error handling.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-11-03 10:39:35 +10:00
Beingpax
4bff63dc00 Prevent UI stuck state when switching between mini and notch recorders 2025-11-01 10:15:32 +05:45
Prakash Joshi Pax
d73f5bb926
Merge pull request #344 from ebrindley/fix/double-resume-checked-continuation
fix: prevent double resume of checked continuations causing EXC_BREAKPOINT crashes
2025-10-31 11:26:12 +05:45
Beingpax
f6402b1520 feat: Adding support for soniox v3 2025-10-28 22:31:16 +05:45
Ed Brindley
50928181e9 fix: prevent double resume of checked continuations causing EXC_BREAKPOINT crashes
Add atomic guards using ManagedAtomic to ensure continuations are resumed
exactly once in TaskDelegate, downloadFileWithProgress, and unzipCoreMLFile
functions. This resolves crashes during model downloads and transcription
when multiple callback paths race to resume the same continuation.

Changes:
- Import Atomics framework for atomic operations
- Add ManagedAtomic guards to prevent double resume
- Implement finishOnce helper pattern for consistent error handling
- Add proper cancellation handling in downloadFileWithProgress

Fixes crashes with stack trace: EXC_BREAKPOINT → _assertionFailure →
CheckedContinuation.resume(returning:) → VoiceInk [0x102dbfcc4, 0x102dc1174]
2025-10-28 05:54:16 -04:00
Beingpax
9068539043 Fix power mode selection UI 2025-10-27 17:02:03 +05:45
Beingpax
b52cb36bb8 Remove power mode activation persistence 2025-10-27 16:41:51 +05:45
Beingpax
95790c4a58 Log raw, filtered, formatted, replaced, and AI-enhanced text 2025-10-25 09:57:14 +05:45
Beingpax
b568fb9fa0 Auto warm-up downloaded Whisper models after downloading 2025-10-19 19:56:07 +05:45
Beingpax
a0e4dd1367 Added support for V2 and V3 models 2025-10-19 14:01:31 +05:45
Beingpax
14d52a9c08 Fix screen capture crash by isolating services 2025-10-18 22:07:48 +05:45
Beingpax
07e8c0dddf Fix immediate deletion breaking transcription process 2025-10-10 22:10:32 +05:45
Beingpax
cba11cdc55 Capture clipboard context and screen context at the beginning of the recording. 2025-10-07 09:06:30 +05:45
Beingpax
b7627c9deb Remove screen capture toggle gating 2025-10-06 17:26:38 +05:45
Beingpax
ef5b86e7c3 Centered the recorder 2025-10-05 13:35:27 +05:45
Beingpax
602654e733 Fix cancellation race conditions 2025-10-04 23:08:50 +05:45
Beingpax
eb364416ea Improved cleanup and model loading for parakeet 2025-10-04 13:54:10 +05:45
Beingpax
a37b95620c Improced the recording/transcription flow 2025-09-28 20:54:05 +05:45
Beingpax
0508c3a3b1 Rename and relocate transcription filter 2025-09-27 11:57:39 +05:45
wobondar
2105ae4844
feat: Add Power Mode display to transcription history 2025-09-25 21:22:52 +01:00
Beingpax
7dcf982b60 Updated to version 1.57 2025-09-24 21:08:22 +05:45
Beingpax
97c6234fb3 Respect VAD flag, downloading & updated to latest version 2025-09-20 17:00:28 +05:45
Beingpax
afd6e91207 Centralize text formatting in main flows 2025-09-19 09:09:05 +05:45
Beingpax
ba4a5d3f86 Fix hallucination filter issue 2025-09-18 10:47:02 +05:45
Beingpax
cb74f2fb12 Simplify hallucination filter angle tags 2025-09-16 17:38:48 +05:45
Beingpax
2b787e8e64 Centralize hallucination filter 2025-09-16 17:30:46 +05:45
Alexey Haidamaka
889c3e5265 add capability to see ai request in history view 2025-09-14 00:24:10 +02:00
Beingpax
53d1507a53 improve hallucination filter and integrate with parakeet transcription service 2025-09-06 16:56:28 +05:45
Beingpax
4c940749ab Add trailing space setting for CJK languages 2025-09-01 14:34:28 +05:45
Beingpax
8f0b344721 Reset recording state on app launch 2025-08-30 08:21:10 +05:45
Beingpax
2aac1020f8 Added support for preserving the prompt used during enhancement on 2025-08-26 21:34:54 +05:45
Prakash Joshi Pax
4dc50ec9ee
Merge pull request #249 from gritse/feature/app-intents-support
Add App Intents support for mini recorder control
2025-08-26 20:57:50 +05:45
Beingpax
6a308b81bf Update app to support Parakeet B3 model 2025-08-25 13:00:35 +05:45
Beingpax
2708cc502a Added support for Gemini models for transcription 2025-08-25 12:00:15 +05:45
gritse
35918eb473 Add App Intents support for mini recorder control 2025-08-23 20:55:31 +02:00
Beingpax
73bb3e765a Remove dictionary item dependency on local Whisper model 2025-08-23 22:15:13 +05:45
Beingpax
87593ac243 Fix AVFoundation failing to get the audio duration 2025-08-14 19:54:19 +05:45
Beingpax
f909185eac Add flash attention 2025-08-14 10:47:28 +05:45
Beingpax
a8db010900 Added support for adding fine-tuned local whisper models. 2025-08-13 14:04:34 +05:45
Beingpax
6ad4d70760 Removed session management & use power mode with a new default mode. 2025-08-12 22:33:10 +05:45
Beingpax
6935f58737 Recorder error loggin. 2025-08-12 21:05:53 +05:45
Beingpax
0c517c728b Improved cursorpaster with clipboard restoration 2025-08-08 20:56:54 +05:45
Beingpax
d363808a7b revert copy to clipboard 2025-08-07 10:09:02 +05:45
Beingpax
2970895376 Support for zero data retention on 2025-08-07 01:18:35 +05:45
Beingpax
cdd1783a4c Restore copy to clipboard functionality 2025-08-07 00:41:20 +05:45
Beingpax
41cfc2eca3 refactor: Centralize notification definitions 2025-08-05 21:48:11 +05:45
Beingpax
b9fad57d3e feat: Update Power Mode session dynamically 2025-08-05 21:45:11 +05:45