32 Commits

Author SHA1 Message Date
Beingpax
ebad2c42d0 Fix retranscribe functionality in history window
- Pass WhisperState to HistoryWindowController for transcription services
- Update MenuBarManager to store and pass WhisperState reference
- Ensure all transcription providers work in separate history window
2025-12-28 18:47:23 +05:45
Beingpax
d2dd506a94 Move transcription history to separate window
- Add HistoryWindowController for native macOS window management
- Update MenuBarManager to support window opening
- Modify sidebar to open history in separate window instead of inline
- Update navigation handlers to use window controller
- Settings remains inline as before
2025-12-28 15:30:48 +05:45
Beingpax
60125c316b Migrate dictionary data from UserDefaults to SwiftData
Migrates vocabulary words and word replacements from UserDefaults to SwiftData for better data management and persistence.

Changes:
- Create VocabularyWord and WordReplacement SwiftData models
- Add dual ModelConfiguration setup (default.store for transcripts, dictionary.store for dictionary data)
- Implement DictionaryMigrationService for one-time UserDefaults→SwiftData migration
- Rename "Correct Spellings" to "Vocabulary" for clearer terminology
- Update all dictionary views to use @Query instead of manager classes
- Update all services to fetch from SwiftData using FetchDescriptor
- Enhance word replacement duplicate detection (now checks during add AND edit)
- Update import/export services to work with SwiftData
- Preserve all existing functionality with improved data integrity

Technical details:
- Separate store files: default.store (transcripts) + dictionary.store (vocabulary + replacements)
- Migration flag: "HasMigratedDictionaryToSwiftData_v2"
- All CRUD operations properly implemented with duplicate detection
2025-12-28 12:09:43 +05:45
Beingpax
a2f19b04c6 Add model prewarm service on system wake and app launch 2025-12-17 21:23:30 +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
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
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
7a7dbaecab Remove the power mode UI by default. 2025-10-17 13:11:51 +05:45
huisang
e05b9f071f feat: windowStyle set to hiddenTitleBar 2025-10-15 15:50:48 +08:00
Beingpax
febd75cc39 Unified logging + fluidAudio's logging 2025-10-08 11:30:50 +05:45
Beingpax
520272f5ad Remove new window creation 2025-10-04 15:42:31 +05:45
Beingpax
2663096eb2 Added a switch for announcement service. 2025-09-29 09:23:13 +05:45
Alexey Haidamaka
f74bbd7f5a add open with handling 2025-09-03 16:31:46 +02:00
Beingpax
8f0b344721 Reset recording state on app launch 2025-08-30 08:21:10 +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
Val V
bbf929e36e Add a setting to disable auto update checks 2025-08-26 01:01:18 +00:00
gritse
35918eb473 Add App Intents support for mini recorder control 2025-08-23 20:55:31 +02:00
Beingpax
79ba95ccad Add announcement service for important notice/updates 2025-08-13 17:26:30 +05:45
Beingpax
a3c302b50b Update TranscriptCleanup with interval settings 2025-08-13 09:07:08 +05:45
Beingpax
2970895376 Support for zero data retention on 2025-08-07 01:18:35 +05:45
Beingpax
3e609d1e3b Refactor: Unify and improve hotkey settings UI 2025-07-01 22:52:09 +05:45
Beingpax
a821b201c7 Fixed menubar icon 2025-06-07 17:25:44 +05:45
Beingpax
d7c23f91d0 fix: Update menu bar icon to use AppIcon 2025-06-07 17:24:05 +05:45
Beingpax
b09443bc09 Improved Onboarding Window+ License/buy buttons 2025-06-05 14:51:41 +05:45
Beingpax
8dc622e077 feat: better super whisper-like power mode with improved UX 2025-05-24 12:38:30 +05:45
Beingpax
19142522bd Added support for removing recordings older than x days. 2025-03-12 14:11:39 +05:45
Beingpax
57e5d456a6 feat: Enhance audio visualization and recording integration - Improved audio meter visualization, removed debug logs, optimized updates 2025-03-03 21:34:09 +05:45
Beingpax
b5773b38a1 Multiple improvements: Removed migration code, updated sound files, improved prompt templates 2025-02-25 11:50:50 +05:45
Beingpax
76a154706c Initial commit: Open-sourcing VoiceInk 2025-02-22 11:52:41 +05:45