Commit gráf

14 Commit-ok

Szerző SHA1 Üzenet Dátum
hariel1985
3e96a6e394 Fix microphone under hardened runtime: add audio-input entitlement
The v1.2.0 Developer ID re-sign enabled the hardened runtime but the
entitlements were missing com.apple.security.device.audio-input. Under
the hardened runtime tccd refuses to even prompt for the microphone and
denies kTCCServiceMicrophone outright, so the app recorded pure silence
and whisper hallucinated text on the empty audio. Adding the resource
-access entitlement restores the mic permission prompt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 13:34:05 +02:00
hariel1985
9cd0d3eaa5 Fix version: Info.plist CFBundleShortVersionString 1.0.0 → 1.2.0
The bundle's marketing version was stuck at 1.0.0 while the Makefile and the
shipped releases are 1.2.0. Align it so the app reports its real version.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 21:57:03 +02:00
hariel1985
b0533f85f0 Add entitlements for Developer ID signing + notarization
WhisperDictate.entitlements: non-sandboxed hardened-runtime entitlements
(app-sandbox=false; cs.disable-library-validation for the bundled whisper-cli
+ ggml/whisper dylibs). Used to deep-sign the app with the company Developer ID
identity before notarization. Also ignore the stray Contents/CodeResources
signing artifact.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 21:28:29 +02:00
hariel1985
8e1c7bd813 Release v1.2.0
- Explain Accessibility permission in README
- Bump version to 1.2.0

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 17:08:02 +01: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