929 Commits

Author SHA1 Message Date
Beingpax
61a0e82a6d Add global keyboard shortcut to open history window from anywhere 2025-12-30 10:20:12 +05:45
Beingpax
0b6c9bccc1 Fix errors 2025-12-29 12:13:46 +05:45
Beingpax
531da7b172 Redesign transcription history with three-pane layout and compact audio player
- Implement three-pane Xcode-style layout with toggleable sidebars
- Refactor into modular components for better maintainability
- Replace tabbed interface with iMessage-style message bubbles
- Redesign audio player for 70% height reduction with horizontal layout
- Update to native macOS colors and remove custom backgrounds
- Increase minimum window size to 1000x700 for better usability
2025-12-29 11:44:50 +05:45
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
3a2721e150 Reduce hero section size and create reusable component 2025-12-28 14:34:00 +05:45
Prakash Joshi Pax
9d75109c72
Merge pull request #454 from Beingpax/dictionary-refactor
Improve Dictionary Feature
2025-12-28 13:11:25 +05:45
Beingpax
93f8811d77 Add missing rollback in dictionary import error handling 2025-12-28 12:47:21 +05:45
Beingpax
bf3c035e58 Add rollback for failed dictionary operations 2025-12-28 12:32:14 +05:45
Beingpax
7beb63e3c6 Prevent crashes and duplicates in import operations 2025-12-28 12:26:50 +05:45
Beingpax
a631043167 Add error handling for dictionary save operations 2025-12-28 12:19:36 +05:45
Beingpax
4e551926e7 Fix Soniox vocabulary integration to read from SwiftData 2025-12-28 12:16:59 +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
2a9bf12e0e Remove unused isEnabled property from VocabularyWord 2025-12-27 21:20:26 +05:45
Beingpax
01c12cdd2d Refactor word replacements with inline UI 2025-12-27 20:19:33 +05:45
Beingpax
a363745f36 Prevent duplicate word replacements 2025-12-27 18:24:33 +05:45
Beingpax
fe842de807 Rename Correct Spellings to Vocabulary and update related terminology 2025-12-27 15:27:00 +05:45
Beingpax
e74e6c1df5 Add support for gemini 3.0 models for cloud transcription 2025-12-23 12:12:50 +05:45
Beingpax
f351ed4dde Add support for gemini 3 flash for AI enhancement 2025-12-23 11:33:21 +05:45
Prakash Joshi Pax
0592b27ac8
Merge pull request #447
Update selectedtextkit package
2025-12-21 22:54:28 +05:45
Beingpax
5d6a2208cf Update selectedtextkit package 2025-12-21 22:48:18 +05:45
Prakash Joshi Pax
bd4b25e7c1
Merge pull request #446 from Beingpax/improved-recorder-setup
Improve Audio Engine Recorder Setup
2025-12-21 22:37:25 +05:45
Beingpax
003e0d8205 Revert "Fix: Allow device switching during recording on disconnection"
This reverts commit 0445dca865d0776c5ffe7efe502b001c151d37ea.
2025-12-21 22:05:55 +05:45
Beingpax
0445dca865 Fix: Allow device switching during recording on disconnection 2025-12-21 21:50:35 +05:45
Beingpax
4cef5aa12d Fix: Replace deprecated kAudioObjectPropertyElementMaster with kAudioObjectPropertyElementMain 2025-12-21 21:45:07 +05:45
Prakash Joshi Pax
621f99c10f
Update VoiceInk/Services/AudioDeviceConfiguration.swift
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2025-12-21 21:41:57 +05:45
Beingpax
c57c729d6c init power meters to silence 2025-12-21 21:30:08 +05:45
Beingpax
3306c6a6e4 fix(audio): Reduce recording validation timer for faster feedback 2025-12-21 20:28:14 +05:45
Beingpax
873379c0ca Improve audio recording startup with validation, retry logic, and device change handling 2025-12-21 19:37:03 +05:45
Beingpax
d7504412c9 Only trigger device change when recording is active 2025-12-21 13:22:15 +05:45
Beingpax
2944e4ce5c Improve recorder device change handling 2025-12-21 13:04:35 +05:45
Beingpax
6ab3705123 Add timeout and retry logic to GroqTranscriptionService 2025-12-19 12:16:33 +05:45
Beingpax
6ea41020a0 Move Help & Feedback button inline 2025-12-19 09:48:43 +05:45
Prakash Joshi Pax
aa10377a55
Merge pull request #443 from Beingpax/refactor/centralize-transcription-services
Add TranscriptionServiceRegistry to eliminate duplicate service
2025-12-19 09:33:52 +05:45
Beingpax
583165f219 Cleanup resources properly 2025-12-19 09:24:22 +05:45
Beingpax
b227fa4b0d Fix Force unwrapping serviceRegistry! is risky 2025-12-19 09:21:38 +05:45
Beingpax
5ca848af91 Add TranscriptionServiceRegistry to eliminate duplicate service routing logic
- Create centralized registry for managing transcription services
- Replace duplicate switch statements across 4 manager classes
- Consolidate service initialization into single registry pattern
- Add cleanup method to registry for resource management
- Ensure fresh service registry on each transcription request
2025-12-18 21:29:35 +05:45
Beingpax
a2f19b04c6 Add model prewarm service on system wake and app launch 2025-12-17 21:23:30 +05:45
Beingpax
078e02c503 Parakeet model validation & Intel mac local model warning 2025-12-17 09:41:57 +05:45
Beingpax
b07a571fc2 Improve notification View 2025-12-13 09:38:46 +05:45
Beingpax
eceb43f490 Add toggle recorder option in menu bar 2025-12-12 21:24:30 +05:45
Prakash Joshi Pax
80d4dff640
Merge pull request #438 from Beingpax/AV-AudioEngine-Setup
Avaudioengine setup
2025-12-12 20:32:29 +05:45
Beingpax
eb04104bcb Record failure notifications 2025-12-12 20:31:41 +05:45
Beingpax
ac8174b258 Fix migration logic 2025-12-12 14:36:33 +05:45
Beingpax
4f4837d310 Fix audio format changes and thread safety issues 2025-12-12 14:32:20 +05:45
Beingpax
42f4b93ff7 Fix AVAudioConverter callback to prevent buffer duplication 2025-12-12 13:09:44 +05:45
Beingpax
bd6973e559 Better device fallback logic 2025-12-12 11:39:25 +05:45
Beingpax
a3226bb0fb Simplify audio input modes: keep Custom and Prioritized, remove System Default option 2025-12-12 09:19:29 +05:45
Beingpax
8f48c91642 Add AV Audio Engine recorder setup 2025-12-11 21:37:31 +05:45
Beingpax
baae439aae Preserve transcription in clipboard by default, add restore option with configurable delay 2025-12-07 15:24:10 +05:45