Custom cursor
0.7.2· 20 changes

Release 0.7.2

9 new features, 1 change, 9 bug fixes, 1 removal

Added

  • Juno mutes the always-listening microphone while she speaks, so her own text to speech cannot wake her (#567)
  • A wake chime plays the instant a wake phrase lands, before the request is captured (#567)
  • The screen edges glow in system blue while Juno captures a spoken request (#567)
  • You can quit Juno by voice with "quit", "exit", "goodbye", or "shut down". A bare "stop" or "cancel" still only disarms listening, so quitting is never a surprise. (#567)
  • The bar's border lights with a flame that holds a color per state: blue for Juno listening or working, green for your dictation, red for an error (#568)
  • Builds sign and notarize locally, and a build that cannot sign fails rather than producing an unsigned app (#560)
  • Demo builds are built, signed, and notarized in CI from a Demo build workflow, with the DMG attached to the run and optionally pushed to the private blob store (#564)
  • Juno introduces herself by voice once when onboarding ends, naming the activation key that was actually bound (#561)
  • An unlinked floating-bar state harness at /__bar-harness exercises every bar state without the backend (#565)

Changed

  • The updater signing key is regenerated without a password. Installs on the old key will not auto-update across this change. (#563)

Removed

  • The dead second copy of the shortcut dispatcher is gone, along with the legacy store it read from (#561)

Fixed

  • The Claude CLI session resumes per conversation, so a follow-up message continues the conversation instead of starting a new agent every turn (#562)
  • Whole-utterance sound annotations such as "(upbeat music)" are dropped instead of typed into the document (#562)
  • Trigger conflicts check against the triggers store, so a row no longer reports a conflict with its own binding and block its own rebinding (#561)
  • Mouse control and notification settings accept the argument names the frontend actually sends, which had made both toggles fail silently (#562)
  • The settings window comes back after you turn the Dock icon off, which used to close the window holding the switch (#562)
  • Sending a message scrolls to it (#559)
  • The bar's gravity wells stay in place while the bar resizes (#566)
  • The always-listening agent path runs the same one-second dedup as every other submit path, so a stray re-fire cannot stack a second agent run (#567)
  • Juno waits until the bar is on screen before she speaks her greeting (#562)