321 Commits

Author SHA1 Message Date
Beingpax
336dd1441b Fix ignored keychain save result to prevent creating custom models without API keys 2026-01-06 14:02:40 +05:45
Beingpax
8c1443f901 Standardize Groq naming to proper case 2026-01-05 22:32:22 +05:45
Beingpax
948033ac28 Migrate API key storage to Keychain with iCloud sync
Move API keys from UserDefaults to secure Keychain storage. Add KeychainService and APIKeyManager for centralized key management. Enable iCloud Keychain sync for cross-device sharing between macOS and iOS.
2026-01-05 22:28:34 +05:45
Beingpax
bf0bfb3412 Set main window to fixed 950px width with resizable height 2026-01-05 16:49:58 +05:45
Beingpax
772fd3d4ca Constrain window size to 900-1000px width to prevent stretched layouts 2026-01-05 16:41:16 +05:45
Beingpax
8f099cf701 Improve prompt editor 2026-01-05 14:48:22 +05:45
Beingpax
484f8e1e79 fix: make shortcuts section header fully clickable 2026-01-05 12:51:20 +05:45
Beingpax
c8448ced5e feat: make shortcuts section collapsible and collapsed by default 2026-01-05 12:50:27 +05:45
Beingpax
ba0ab32e3e refactor: remove unused EnhancementShortcutsSection struct 2026-01-05 12:50:00 +05:45
Beingpax
311ce83be2 olish API provider configuration UI with consistent styling and improved layout 2026-01-05 11:40:57 +05:45
Beingpax
ae387ad351 Improve API key management UI and enhance provider integration layout
- Reorganize provider connection status display
- Add visual separators between sections for better clarity
- Improve OpenRouter model picker with inline refresh button
- Enhance API key input styling with rounded borders
- Optimize Ollama configuration layout for consistency
- Refine button positioning and spacing throughout
2026-01-05 11:15:11 +05:45
Prakash Joshi Pax
06496f6d5d
Merge pull request #460 from Beingpax/fix/bluetooth-audio-delay
Fix/bluetooth audio delay
2026-01-01 15:21:58 +05:45
Beingpax
2a8ed6d08c Refactor: Extract formatTiming to extension, deduplicate file deletion logic, add AudioPlayerManager cleanup, and implement waveform caching 2025-12-31 20:51:03 +05:45
Beingpax
0da24dc732 Set default audio resume delay to 0 seconds and rename to Resume Delay 2025-12-31 19:21:13 +05:45
Beingpax
9d0fc241ee Refactor expandable sections to use enum and set pattern for cleaner state management 2025-12-31 18:48:45 +05:45
Beingpax
a6c47240e7 Create reusable expandable toggle component for all settings sections with auto-expand on enable and consistent alignment 2025-12-31 16:43:23 +05:45
Beingpax
c9d57e5b89 Apply expandable section to clipboard restore setting 2025-12-31 16:25:35 +05:45
Beingpax
8bfaf88f9b Add configurable audio resumption delay for Bluetooth headphones
Fixes #459
2025-12-31 16:23:13 +05:45
Beingpax
444d97112a Add inline copy buttons to detail view 2025-12-31 14:13:01 +05:45
Beingpax
2718683741 Add copy button 2025-12-30 20:58:41 +05:45
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
Beingpax
bf3c035e58 Add rollback for failed dictionary operations 2025-12-28 12:32:14 +05:45
Beingpax
a631043167 Add error handling for dictionary save operations 2025-12-28 12:19:36 +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
6ea41020a0 Move Help & Feedback button inline 2025-12-19 09:48:43 +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
eceb43f490 Add toggle recorder option in menu bar 2025-12-12 21:24:30 +05:45
Beingpax
eb04104bcb Record failure notifications 2025-12-12 20:31:41 +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
baae439aae Preserve transcription in clipboard by default, add restore option with configurable delay 2025-12-07 15:24:10 +05:45
Beingpax
ab9d6ad830 Add option to dismiss Affiliate promotion 2025-12-06 08:18:35 +05:45
Beingpax
feea0d7f2a Fix race conditions due to audio device selection in menu bar 2025-12-04 21:24:36 +05:45
Beingpax
2e7112c06a Remove disabled state when enhancement turned off 2025-12-04 21:17:00 +05:45
Beingpax
1ab91ad4ef Add audio input device selection option in menu bar 2025-12-04 21:12:30 +05:45
Beingpax
fca509952f Make the soundfeedback row clickable 2025-11-28 20:45:24 +05:45
Beingpax
ac1a85c056 Improved text formatting during paste operation 2025-11-28 20:39:43 +05:45
Beingpax
b6068bc881 Show raw API error responses on key verification failure 2025-11-20 22:29:21 +05:45
Beingpax
a762070f3d Remove redundant codefiles 2025-11-18 15:36:12 +05:45
Beingpax
7365493366 Feat: Add custom start/stop sounds and fix race condition 2025-11-16 22:42:28 +05:45