Skip to content

v0.3.8

Choose a tag to compare

@rcourtman rcourtman released this 22 Sep 15:39
· 279 commits to main since this release
Immutable release. Only release title and notes can be modified.

Presspeech 0.3.8

This update fixes audio capture when input and output hardware use different
sample rates, strengthens automatic text delivery, and adds configurable
macOS hotkey combinations.

Audio reliability

  • The capture tap now reads the selected microphone's hardware format instead
    of inheriting the output device's rate. This prevents apparently successful
    recordings from producing empty audio when, for example, a 48 kHz microphone
    is used alongside 44.1 kHz output.
  • If macOS cannot convert a selected microphone's format to the 16 kHz mono
    stream required by speech recognition, audio startup now fails with a
    recovery message instead of appearing ready and silently discarding every
    recording.
  • Recordings that end too quickly now say to speak longer instead of silently
    disappearing. A capture that returns no samples points to microphone recovery
    in the HUD, menu, Setup Checklist, VoiceOver, and diagnostics, with a direct
    Check Microphone… action in the menu and Dock menu.
  • Setup Checklist identifies the selected microphone, explains when an
    unavailable saved device has fallen back to the system default, and provides
    a keyboard-accessible chooser beside the audio check.

Safer text delivery

  • Presspeech preserves the frontmost process and exact Accessibility-focused
    window from recording through automatic paste. When the destination does
    not expose that window identity, delivery stays in manual clipboard recovery
    so an uncertain destination cannot receive an automatic paste.
  • Automatic clipboard restoration and its delay presets are retired: a timer
    cannot establish that a slow destination has consumed the paste. The new
    Keep Previous Clipboard for Manual Restore option requires a fresh opt-in,
    including for users who previously enabled automatic restoration.
  • With that option enabled, an eligible complete previous clipboard snapshot
    stays only in memory for up to five minutes. After checking that the latest
    dictated text arrived, choose Restore Previous Clipboard… and explicitly
    confirm.
    Cancel is the default; confirmation is not an operating-system acknowledgement.
  • Consecutive dictations preserve the original snapshot and original deadline,
    which includes time asleep. Expiry, newer clipboard ownership, disabling the
    option or quitting discards the snapshot without an automatic rewrite.
    Clipboard ownership is checked after focus lookups and immediately before
    paste; a newer copy stops delivery. A stale confirmation cannot restore a
    different dictation's offer, and a failed restore never retries another write.
  • Clipboard snapshots are capped at 64 MB and 256 representations. Oversized,
    unusually complex, incomplete, or concurrently changed clipboards are never
    retained as partial restore offers; dictation continues where ownership is
    stable, and the menu explains when the previous clipboard was not kept.
  • Update checks accept only releases that GitHub marks immutable.

Flexible hotkeys

  • Record Hotkey can now save combinations using Command, Control, or Option
    with another key, with optional Shift, alongside the existing right-side
    modifier and function-key choices.
  • Complete combinations persist across restarts and work in hold or toggle
    mode. Unsafe shortcuts and ordinary unmodified typing keys remain blocked,
    and a binding that cannot be saved rolls back to the previous hotkey.
  • Recording a modifier no longer triggers an AppKit exception. Releasing a
    right-side modifier preserves the selected combination when its left-side
    partner remains held, including keys held before the recorder opens.

Keyboard accessibility

  • Interactive windows now request automatic Tab and Shift-Tab order
    recalculation. Setup Checklist also refreshes that order when it replaces
    controls, alongside its existing keyboard focus preservation.

Community compatibility evidence

  • Support → Test App Compatibility… now opens the privacy-safe repeated
    target-app protocol directly from the app. The protocol collects aggregate
    delivery and focus-safety outcomes without asking users to publish dictated
    text.

Shareable diagnostics

  • Copy Diagnostics now omits exact microphone names, raw startup errors,
    recent log lines and nonstandard application paths. It keeps status and
    configuration summaries useful for support; detailed errors remain in the
    local log for review before sharing.

Audio and transcription remain local. Transcript text and clipboard contents
are not written to the diagnostic log, and the global listener does not record
ordinary typed keys.

After installing this release, you can help verify automatic paste and safe
recovery in one target app by running the short, privacy-safe compatibility
protocol
.
Passing reports are useful too; share only aggregate outcomes from blank,
disposable fields, never dictated text or clipboard contents.