Skip to content

v0.8.4 — Pre-warmed picker + per-binding 'In picker' + a11y

Choose a tag to compare

@hoangperry hoangperry released this 23 May 21:06

Pre-warmed picker + per-binding "In picker" + VoiceOver polish

Three small upgrades that make the tone picker feel native.

What's new

  • Pre-warmed panel — the picker NSPanel is constructed at app launch instead of on first hotkey press, so first open is near-instant. The ~30–60 ms setup cost moves off the hotkey path.
  • "In picker" per binding — every saved rewrite binding in Settings now has an opt-in checkbox to also surface it as a row in the popup. Pick saved instructions (with your custom override prompts) without remembering hotkeys.
  • VoiceOver labels — every picker row announces its name + ⌘ shortcut hint + selected state; the container itself announces "Tone picker — Type to filter, arrow keys to navigate, Return to apply, Escape to cancel".

How to use

  • In picker checkbox: Settings → Contextual rewrite → expand any binding row → tick "In picker" (default ON). Open the picker with your tone-picker hotkey; saved bindings appear below built-in tones.
  • Search: type to filter; bindings match by their display name + tone label.
  • Quick-select: ⌘1–9 commits the Nth row directly, including bindings.

Compatibility

  • Bindings persisted by v0.8.3 and earlier decode with showInPicker = true via decodeIfPresent — zero migration cost, round-trip safe.
  • Users who want a binding hidden from the picker can untick it in Settings.

Install

  • Sparkle OTA: v0.6.1+ users auto-update from inside the app.
  • Fresh install: download the DMG below → drag to /Applications.

Verify

  • App: 257 Swift / 54 suites GREEN (pre-existing flaky SupabaseAuth.sendCode-no-config test ignored — passes 10/10 in isolation, fails ~1× per full suite since v0.5.x).
  • Build: signed (Developer ID), notarized + stapled (DMG + Sparkle zip), EdDSA-signed appcast.

Roadmap

  • v0.8.5 — Multi-variant rewrite (generate 3 drafts in one call, pick between them via Preview HUD).