780 Commits

Author SHA1 Message Date
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
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
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
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
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