Changelog
All notable changes to Keyed, listed newest-first. Release artefacts live on the GitHub releases page.
v0.2.3 — 2026-04-13
- Accessibility recovery. Keystroke monitoring now recovers automatically when Accessibility trust lags behind app launch — no more restarting Keyed if macOS grants the permission a beat late.
- Swift 6 concurrency polish. Additional
@MainActorandSendablefixes across the test suite somake testruns clean under Swift 6 strict concurrency. - Build hygiene. Coverage
.profrawartefacts are now git-ignored.
v0.2.2 — 2026-04-12
- Swift 6.1 compatibility on CI. Explicit
selfadded in closures flagged by the 6.1 toolchain. - Test target fix. Tests now use the host app scheme so CI reliably discovers them.
v0.2.1 — 2026-04-11
- Concurrency warnings silenced in
@MainActortests under Swift 6. - Recursive observer fix — explicit
selfin a recursiveobserveForevercall.
v0.2.0 — 2026-04-10
- Homebrew release pipeline. A GitHub Actions workflow now publishes each tagged release to the
mcclowes/homebrew-keyedtap, sobrew install mcclowes/keyed/keyedalways grabs the latest build. - Reactive Accessibility trust. Permission state is now observed live and reflected in the UI, with recovery paths for the (rare) cases where the tap drops.
- Starter snippets & default exclusions. First-launch seeds a small snippet library and a sensible default list of excluded apps (password managers, terminals).
- Signing override. An xcconfig-based signing override keeps the Accessibility grant stable across local and CI builds.
- Senior-dev review pass. P0–P3 findings from an internal review were actioned across the app.
Earlier
Pre-0.2.0 work was unversioned development toward the first public release: the expansion engine (CGEventTap + ring buffer + Unicode injection), SwiftData-backed storage, the onboarding wizard, placeholders, case-aware expansion, per-app exclusions, CSV / TextExpander import, pinned snippets, and the protocol-first service architecture.