965 Commits

Author SHA1 Message Date
Beingpax
eadf889a15 Remove unused aiProviderApiKey from UserDefaults 2026-01-05 22:37:56 +05:45
Beingpax
50ed8c2e51 Fix model queries to use Keychain for API key checks 2026-01-05 22:33:55 +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
Prakash Joshi Pax
6a15814bf9
Merge pull request #473 from Beingpax/improve-enhancement-ui
Improve API key management UI and enhance provider integration layout
2026-01-05 16:50:26 +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
f712652278
Merge pull request #465 from Beingpax/better-powermode-ui
Better powermode UI
2026-01-04 19:33:03 +05:45
Beingpax
58e5c2c555 minor UI changes 2026-01-04 17:15:32 +05:45
Beingpax
586f5fcea0 move set as default option under advanced 2026-01-04 14:35:26 +05:45
Beingpax
decc83acf8 Polish Power Mode UI buttons, backgrounds, and links 2026-01-04 09:36:20 +05:45
Beingpax
42cde699a8 Improve Power Mode configuration UI with native macOS form and pickers 2026-01-03 20:36:12 +05:45
Prakash Joshi Pax
c7fe067252
Merge pull request #462 from Beingpax/powermode-enhancements
Add Power Mode keyboard shortcuts and improve session management
2026-01-03 11:43:57 +05:45
Beingpax
ce6607a8c7 Remove redundant KeyboardShortcuts.disable() call 2026-01-03 11:02:43 +05:45
Beingpax
f0df362fac Refactor Power Mode hotkeys into dedicated PowerModeShortcutManager for cleaner architecture and better observer lifecycle management 2026-01-03 09:47:07 +05:45
Beingpax
78ab6fb3b2 fix NotificationCenter observer issue 2026-01-03 09:43:38 +05:45
Beingpax
0090b2f8f8 Add GPT 5.2 model support
Added gpt-5.2 to OpenAI available models list and set as default model
2026-01-03 08:55:32 +05:45
Beingpax
4ea8d382a4 Add Power Mode keyboard shortcuts and improve session management
Power Mode Keyboard Shortcuts:
- Add hotkeyShortcut property to PowerModeConfig for storing custom shortcuts
- Implement keyboard shortcut UI in Power Mode configuration view
- Add hotkey registration system in HotkeyManager to manage Power Mode shortcuts
- Support cleanup of shortcuts when Power Mode configurations are removed
- Post notifications when Power Mode configurations change

Explicit Power Mode Activation:
- Add optional powerModeId parameter to toggleRecord and toggleMiniRecorder
- Refactor ActiveWindowService.applyConfigurationForCurrentApp to applyConfiguration
- Support direct Power Mode activation via powerModeId instead of auto-detection
- Pass powerModeId through recording flow for explicit mode selection

Session Management Improvements:
- Fix auto-restore to preserve baseline when switching Power Modes mid-recording
- Only capture baseline state on first session creation
- Prevent subsequent beginSession calls from overwriting original baseline
- Ensure auto-restore returns to settings from before recording started

UI Refinements:
- Remove redundant "Record" label from keyboard shortcut recorder
2026-01-03 08:43:11 +05:45
Beingpax
658291635b Remove prewarm transcription database saving 2026-01-01 17:56:13 +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
a702199b56 Fix task cancellation bugs in MediaController, PlaybackController, and Recorder that could cause audio/media to resume during new recordings 2026-01-01 15:12:52 +05:45
Prakash Joshi Pax
6ae8a7b5ff
Merge pull request #457 from Beingpax/seperate-history-view
Seperate history view
2026-01-01 14:44:49 +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
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