Commit gráf

12 Commit-ok

Szerző SHA1 Üzenet Dátum
hariel1985
4c680f9e4d Add live mic-level HUD with silence warning
Shows a small floating, non-interactive panel while recording with a
segmented VU meter driven by AVAudioRecorder metering (averagePower).
If the input peak stays at silence for >1.2s it turns red and shows
"Nincs hangbemenet?" — surfacing the dead-mic case that previously
produced empty recordings and whisper hallucinations with no feedback.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 08:59:33 +02:00
hariel1985
21be80ddb4 Add warm whisper-server backend (no per-dictation model reload)
Each dictation previously spawned whisper-cli with -m, reloading the full
1.5-1.6GB model (+ ~10s Metal init) every single time. This adds a
WhisperServer manager that keeps a whisper-server child process alive with
the model preloaded, so each utterance is a fast local HTTP POST to
/inference (~0.5s) instead of a multi-second cold start.

- Bundles whisper-server alongside whisper-cli (bundle-whisper.sh).
- Server (re)starts on launch and on model change; stops on terminate;
  picks a free loopback port; -nt (plain text) + -sns (fewer hallucinations).
- transcribe() prefers the warm server and falls back to a per-call
  whisper-cli spawn if the server is unavailable.
- Warm-up now starts BEFORE the blocking accessibility prompt so the model
  load overlaps with the user granting permissions.
- Info.plist: NSAllowsLocalNetworking for the loopback HTTP call.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 08:56:45 +02:00
hariel1985
62cc705ce8 Security: Clear clipboard if it was empty before dictation
- If clipboard was empty, clear it after paste (don't leave transcript)
- If clipboard had content, restore original content
- Prevents sensitive dictated text from remaining on clipboard

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 11:14:29 +01:00
hariel1985
47c7d2274a Add automatic language detection
- Add "Auto-detect" option at top of language dropdown
- When selected, whisper-cli detects language automatically
- Useful for multilingual users or unknown language content

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 10:19:45 +01:00
hariel1985
41be75dd19 Add Large v3 Turbo model (recommended)
- Add ggml-large-v3-turbo.bin to model list
- Mark as recommended: fast like Medium, accurate like Large
- Update README with new model comparison

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 10:13:17 +01:00
hariel1985
170006ea1f Preserve clipboard contents after paste
- Save clipboard before pasting transcript (text, images, any content)
- Restore original clipboard contents after paste completes
- User's copied content is no longer lost after dictation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 14:14:45 +01:00
hariel1985
51438ea1bb Major update: bundled whisper-cli, model downloader, progress indicator
Features:
- whisper-cli and dependencies bundled in app (no brew required for users)
- Built-in model downloader with 5 model options (Tiny to Large)
- Download progress indicator (e.g., "45% Downloading Small")
- Model selection dropdown in Settings
- First-run wizard for initial model download

Security fixes:
- Input validation for language and model path
- Private temp directory for audio files
- Auto-cleanup of audio files after transcription
- Auto-detect whisper-cli path (ARM/Intel)

Bug fixes:
- Fixed Settings window crash (NSWindowController)
- Fixed model selection with tag-based indexing

Build:
- bundle-whisper.sh script for packaging whisper-cli
- Updated Makefile with Frameworks bundling

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 14:09:36 +01:00
hariel1985
4e68fee1c1 Auto-detect whisper-cli path for Intel and ARM Macs
- Check multiple paths: /opt/homebrew/bin (ARM), /usr/local/bin (Intel),
  /opt/local/bin (MacPorts), ~/bin (user local)
- Show error status if whisper-cli not found
- Use isExecutableFile to verify binary exists and is executable

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 12:52:25 +01:00
hariel1985
18bc6186a0 Use private temp directory and auto-cleanup audio files
Security improvements:
- Audio file now stored in user's private NSTemporaryDirectory
- Filename includes process ID to avoid conflicts
- Audio file deleted after transcription (success or failure)
- Audio file deleted when app terminates

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 12:49:04 +01:00
hariel1985
66aed5edbd Add input validation to prevent command injection
Security improvements:
- Language selection now uses dropdown with 31 supported languages
- Model path validated: must be .bin file, no path traversal
- Validation runs before transcription execution
- Invalid inputs show error status instead of executing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 12:40:54 +01:00
hariel1985
72bac53cbe Add Open Settings buttons to permission dialogs
- Add checkAccessibilityPermission() with AXIsProcessTrusted check
- Permission alerts now have "Open Settings" button
- Button opens directly to the relevant Privacy settings pane
- Import ApplicationServices for accessibility API

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 12:35:46 +01:00
hariel1985
1727f4ba5b Restructure for multi-platform support and add Settings UI
- Move macOS code to macos/ directory for platform separation
- Add Settings window with configurable language, model path, and sound toggle
- Add launch at login support using SMAppService
- Add proper .app bundle structure with Info.plist
- Add Makefile for build, install, run, and dmg targets
- Store preferences in UserDefaults for persistence

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 12:31:42 +01:00