687 Commits

Author SHA1 Message Date
Beingpax
7feef2b374 Add transient marker and fix clipboard race condition 2025-11-18 15:14:09 +05:45
Beingpax
f445f847ef update model display names 2025-11-17 10:15:48 +05:45
Beingpax
d07e5e4967 Update model display names 2025-11-17 10:15:10 +05:45
Beingpax
308098694d Add support for scribe v2 model 2025-11-17 10:14:32 +05:45
Beingpax
35a08dce7b Add Keyboardshortcutlview 2025-11-14 15:33:22 +05:45
Beingpax
fb69db2fe9 Simplify the import logic for dictionary 2025-11-14 11:12:41 +05:45
Beingpax
7d12c50fcb Rename dictionary context to custom vocabulary 2025-11-14 09:02:12 +05:45
Beingpax
9d3d1482b0 Remove prepopulated dictionary items 2025-11-14 08:25:52 +05:45
Beingpax
ba68ec429c Fix activation policy being reapplied unnecessarily during app switching 2025-11-08 20:11:37 +05:45
Beingpax
c4f847d7cf Update system instructions 2025-11-08 11:03:38 +05:45
Beingpax
692bd5f9d4 Update Sidebar 2025-11-07 23:58:44 +05:45
Beingpax
f559d19390 Revert "Merge pull request #362 from tmm22/feature/qol-documentation"
This reverts commit 5c55d12cbf5e2919ecf0cacb2e623bf17cd8dff6, reversing
changes made to 2f2f1bc894d2a3fe69d4c6e2d8ce0a76071fe1a8.
2025-11-07 22:42:37 +05:45
Prakash Joshi Pax
5c55d12cbf
Merge pull request #362 from tmm22/feature/qol-documentation
Quality of Life Improvements - Documentation & Source Files
2025-11-07 22:36:38 +05:45
Beingpax
2f2f1bc894 Fix text display order in transcription card 2025-11-07 22:35:19 +05:45
Beingpax
fcc7b4783f Add reasoning parameter support for Gemini and OpenAI models 2025-11-07 22:29:44 +05:45
Beingpax
2e5c737255 Remove reasoning effort parameter for openAI and gemini models 2025-11-07 22:28:18 +05:45
Beingpax
cf8d821436 Implement Dictionary Import export support for iOS companion app(v1) 2025-11-07 11:31:41 +05:45
Beingpax
5f59b61ee8 Remove toggle switch for word replacements 2025-11-07 10:47:25 +05:45
Beingpax
dc925e0ebd A-Z sorting for dictionary correct spellings 2025-11-07 10:29:27 +05:45
Beingpax
489f2eaf0c Fix logs showing private instead of actual transcription text 2025-11-07 09:34:18 +05:45
Beingpax
804fae7c01 Remove shortcut option with selectedtextservice 2025-11-06 22:46:47 +05:45
Prakash Joshi Pax
37f3ee25e4
Merge pull request #358 from tmm22/fix/production-critical-safety-improvements
Fix critical production safety issues
2025-11-06 18:45:26 +05:45
Beingpax
227c33955a Fix menu bar issue 2025-11-06 17:46:32 +05:45
Deborah Mangan
d798a99994 docs: Add QOL improvements documentation and source files
This commit provides comprehensive documentation and source files for 5 critical quality of life improvements:

1. Recording duration indicator with real-time timer
2. Enhanced status display with visual feedback
3. Visible cancel button during recording
4. Keyboard shortcut cheat sheet (Cmd+?)
5. Structured logging system (AppLogger)

Included Files:
- Complete source files for new features
- Step-by-step application guide
- Detailed technical documentation
- Full analysis with 40+ improvement ideas

See APPLYING_QOL_IMPROVEMENTS.md for instructions on how to apply these improvements to the codebase.

All changes are backward compatible with no breaking changes.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-11-03 11:39:30 +10:00
Deborah Mangan
d1158feef4 refactor: Replace try! with safe ModelContainer initialization fallbacks
- Remove try! force operation that could crash on in-memory container failure
- Implement cascading fallback strategy with 3 initialization attempts:
  1. Persistent storage (normal operation)
  2. In-memory storage with user warning
  3. Ultra-minimal default container
- Add containerInitializationFailed flag to track critical failures
- Extract container creation into static helper methods for better error handling
- Show user-friendly error dialog and graceful termination on total failure
- Only use preconditionFailure as absolute last resort after all attempts fail

Addresses AI code reviewer feedback about unsafe force operations.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-11-03 10:39:40 +10:00
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
e3ab7d8e80 Fix footer button overlap on small screens 2025-11-01 11:49:29 +05:45
Beingpax
45fd4c327b Skip permission validation after onboarding and display dashboard directly to all users 2025-11-01 10:55:39 +05:45
Beingpax
a69f0239b1 Skip the screen recording permission prompt if not provided. 2025-11-01 10:34:31 +05:45
Beingpax
f223a74194 Show enhanced transcript result before original. 2025-11-01 10:27:52 +05:45
Beingpax
4bff63dc00 Prevent UI stuck state when switching between mini and notch recorders 2025-11-01 10:15:32 +05:45
Prakash Joshi Pax
648c36f12a
Update VoiceInk/Views/PredefinedPromptsView.swift
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2025-10-31 16:41:33 +05:45
Beingpax
6d3fac76ef Redesign predefinedprompttemplates view 2025-10-31 15:13:49 +05:45
Beingpax
ed9a13c16b Improve prompt icon picker: grid popover UI, 30+ productivity icons, system colors 2025-10-31 12:10:57 +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
bf028f427c Added keyboard shortcut for menu items 2025-10-30 22:06:13 +05:45
Beingpax
73318967ac Fix window duplication issue 2025-10-30 21:58:18 +05:45
Beingpax
c7030276eb Refactor: Centralize window and menu bar management 2025-10-30 21:12:59 +05:45
Beingpax
ea0e5d840c Rewrote the default prompts to make them simpler and better. 2025-10-29 23:27:49 +05:45
Beingpax
96185a5d0d Added help and resources section 2025-10-29 22:38:29 +05:45
Beingpax
e21c34fdc3 Added promotional cards 2025-10-29 20:52:09 +05:45
Beingpax
5cd64a1247 Added Promotional Cards 2025-10-29 20:51:31 +05:45
Beingpax
367da05feb Reorganized/redesigned the Dashboard 2025-10-29 17:02:42 +05:45
Beingpax
39c7e4671c Remove 30-day VoiceInk trend 2025-10-29 13:56:34 +05:45
Beingpax
f6402b1520 feat: Adding support for soniox v3 2025-10-28 22:31:16 +05:45
Beingpax
357804c03d feat: Integrate SelectedTextKit for robust text retrieval with multi-strategy support 2025-10-28 18:30:25 +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
5bdbb39ac8 Use Accessibility API's for copying selected text and use copy action as a fallback 2025-10-28 11:31:44 +05:45
Prakash Joshi Pax
b65b97073d
Merge pull request #340 from antonlvovych/update/fluidaudio-espeak-fix
Update FluidAudio to v0.7.5+ with ESpeakNG framework fix
2025-10-27 18:57:15 +05:45
Beingpax
9068539043 Fix power mode selection UI 2025-10-27 17:02:03 +05:45