Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased¶
0.1.0 - 2026-05-25¶
Added¶
- Initial public release.
- Hotkey-driven recording (hold / tap / double-tap state machine).
- Streaming
faster-whisperASR with silero VAD. - Cleanup pipeline (off by default for privacy): opt-in Ollama local cleanup and opt-in OpenRouter cloud cleanup, toggled per backend in Settings.
- Per-app vocab presets: code, work, personal, projects.
- Voice commands:
scratch that,new line,new paragraph,spell that …. - Replacement dictionary layer (
config/vocab/replacements.txt). - Regex-driven secret redaction layer.
- Synthetic Cmd+V insertion with always-restore clipboard.
- Secure-input guard (refuses to paste into password fields).
- Click-through HUD + rumps menubar with status badges.
- First-run onboarding wizard.
dictate doctordiagnostic subcommand.dictate --versionanddictate --dry-runCLI flags.dictate://URL scheme handler.- AppleScript dictionary (
assets/dictate.sdef). - Loopback-only WebUI for reviewing history (
dictate-web, default port47843). - Stable SHA-256 entry IDs.
- CSP, nosniff, referrer-policy headers.
- fcntl advisory file locking for concurrent writes.
- Empty state, dark mode (prefers-color-scheme), mobile-responsive nav.
- Keyboard shortcuts and a11y landmarks.
- macOS conflict detection (built-in Dictation, Voice Control, other dictation apps, hotkey interceptors).
- Runtime resilience: AVAudioEngine reset on sleep/wake; audio route-change rebuild; Ollama circuit breaker; disk-full callback; invalid-YAML recovery.
Documentation¶
- README, CONTRIBUTING, CODE_OF_CONDUCT, SECURITY (via GitHub Security Advisories), CHANGELOG, ROADMAP, FAQ.
- THREAT_MODEL and THIRD_PARTY_NOTICES.
docs/architecture.mdwith Mermaid diagrams.docs/pre-launch-checklist.md.
Tooling¶
- MIT license.
- CI on macos-14 with Python 3.11 + 3.12 (ruff + pytest + advisory pip-audit + bandit).
pyproject.tomlwith hatchling build backend and[project.scripts]fordictateanddictate-web.justfile,py.typed(PEP 561), pre-commit config, CODEOWNERS, dependabot.