Repository navigation
Halen v0.3.0 — Six plugins, simpler marketplace
Six plugins, down from ten. Same features, simpler marketplace.
Plugin lineup
- Word Replacements (new) replaces Typo Fixer + Personal Style Guide. One plugin, two tabs in its detail view — auto-typos and your preferred terms. Existing settings carry over.
- Writing Coach (new) replaces Sentiment Guard + Clarity Checker. Tone and clarity findings on the caret indicator from one classifier pass. Existing rules carry over.
- Email Reply is now part of Snippet Expander. Type
;replyin any mail app or press ⌃⌥E. Default tone picker lives in Snippet Expander's detail view. - Tone Profiles moved to Settings → App tone profiles. No longer a marketplace toggle.
Hotkeys
- Voice Dictation rebinds to ⌃⌥Space. The previous ⌥⌘H collided with macOS's "Hide Others" shortcut, which intercepted the keystroke before Halen could see it.
- All global hotkeys now route through
NSEventmonitors instead of Carbon'sRegisterEventHotKey. On macOS 14+ the Carbon path stopped delivering events to handlers for chords that overlapped Cocoa menu shortcuts — silent registration but never fired.
Voice Dictation
Redesigned listening pill — 32×7 dot matrix with per-dot glow, a continuous scanner highlight on the centre row, and a deep-black capsule with a soft cobalt aura. Reduce Motion pins the scanner at mid-position.
Privacy
Halen no longer appears in password fields. Secure text fields (every login form, the macOS lock dialog, sudo prompts wrapped by a GUI helper) are skipped entirely at the AX subscription layer — no caret indicator, no text snapshots, no classifier runs.
Reliability
- Cancelled tone classifications no longer poison dedup. A superseded paragraph hash is no longer added to the LRU, so the next classification of the same paragraph runs cleanly.
- Caret indicator appears in Notes, Messages, and Electron apps. The AX-focused-element notification doesn't fire reliably in WebKit-backed editors; a short retry burst (300 / 800 / 1600 ms after focus change) catches it.
Inline underline preview removed
The Halen mark's severity tint carries the same signal without the AX-frame guesswork that made the underline drift off-screen. Preserved on a feature branch for a future per-glyph implementation.
Auto-update
Existing v0.2.0 users get this on the next daily Sparkle check, or via Settings → Check for updates.