Skip to content

Releases: rcourtman/presspeech

v0.3.0

Choose a tag to compare

@rcourtman rcourtman released this 09 Jul 20:26

Presspeech 0.3.0

Parakey is now Presspeech. The old name collided in search with an
unrelated access-control product; the new name is distinctive and says
what the app does: press, speak, release.

The rename does not reset the app. Presspeech keeps the existing bundle
identifier and preferences suite, so macOS permissions, hotkey choices,
text settings, and local dictionary rules carry over.

New

  • Voice shortcuts map a phrase you say to exact reusable text. They
    are deterministic, local, and managed alongside dictionary
    corrections.
  • Spoken formatting commands optionally turn phrases such as “new
    line”, “new paragraph”, “bullet point”, “comma”, “open quote”, and
    parentheses into exact formatting without a rewriting model.
  • Try Dictation opens a focused private scratchpad after setup, so
    the first hotkey test has an obvious destination.
  • FluidAudio is updated to v0.15.5 after model-integrity, cold-download,
    latency, and real-dictation regression checks.

Upgrade notes

Homebrew users can run:

brew update
brew upgrade --cask rcourtman/parakey/presspeech

The tap migrates the installed cask token from parakey to
presspeech and replaces Parakey.app with Presspeech.app. When
upgrading from a v0.2 build through the in-app updater, Homebrew may
finish the upgrade and the old updater may still open this release page
because the bundle moved. If that happens, launch
/Applications/Presspeech.app; the upgrade itself is complete. macOS
shows its standard downloaded-app confirmation on the first launch under
the new name; choose Open after checking that Apple found no malicious
software.

For a previous direct-download install, quit Parakey, move
Presspeech.app into Applications, launch it once, then remove the old
Parakey.app. Do not run both copies at the same time because they
intentionally share one permissions and settings identity.

v0.2.20

Choose a tag to compare

@rcourtman rcourtman released this 27 Jun 17:35

What's Changed

  • Rapid dictation stability: Parakey now keeps the microphone engine warm
    briefly between rapid dictations instead of tearing CoreAudio down and
    rebuilding it after every release. This avoids a reproducible freeze after
    several quick uses while still closing the input session after the user
    pauses.
  • Audio route handling: Configuration-change notifications caused by
    Parakey's own audio-engine start/stop cycle are ignored, so they no longer
    trigger redundant deferred restarts during normal dictation.
  • Filler-word cleanup: Removing a sentence-start filler inside a longer
    transcript now restores the capitalization of the next word. For example,
    This is the first sentence. Um this is the second sentence. now becomes
    This is the first sentence. This is the second sentence.

Validation

  • Ran the full in-binary self-test suite.
  • Ran a signed dev-app stress check with 15 rapid event-tap dictation cycles
    and confirmed the app stayed responsive, reused the warm input engine for
    the burst, then closed it after the idle delay.

v0.2.19

Choose a tag to compare

@rcourtman rcourtman released this 27 Jun 08:04
  • Release v0.2.19
  • Post full Command-V sequence for paste insertion
  • Expand ASR benchmark checks and install docs

v0.2.18

Choose a tag to compare

@rcourtman rcourtman released this 25 Jun 20:31

What's Changed

  • Release the microphone session while Parakey is idle, so macOS only shows microphone activity while a dictation hotkey is actively held or toggled on.
  • Keep the speech model warm between recordings, preserving the fast local transcription path.

Maintenance

  • Update GitHub Actions checkout usage in CI and Pages workflows.

Thanks to Safin Ahmed (@Siffrico) for reporting this in #6.

v0.2.17

Choose a tag to compare

@rcourtman rcourtman released this 14 Jun 21:37
  • Release v0.2.17
  • Recover CoreAudio input startup after wake
  • Add head-to-head compare table and freshness checking
  • Add Wispr Flow and Superwhisper comparison pages
  • Add 512px PNG icon for app directories
  • Recast sharing kit: one-time Show HN plus answer-driven replies
  • Serve demo video on mobile docs where SVG captions are illegible
  • Add launch sharing kit with stale-stat scanning
  • Add social share metadata to all docs pages
  • Add animated workflow demo to README and docs, guard asset stats
  • Sync release-size stat across designed assets and demo video

v0.2.16

Choose a tag to compare

@rcourtman rcourtman released this 10 Jun 13:35

What's Changed

  • Hotkey responsiveness: System-audio mute calls, corrections-sync
    file checks, and update helpers now run off the main thread that
    services the global hotkey tap. A slow call (iCloud-synced corrections
    file, Homebrew, AppleScript) can no longer stall typing system-wide or
    cause macOS to drop a hotkey press.
  • Mute reliability: If the system-audio mute succeeds but its
    verification read fails, Parakey now keeps the crash-recovery marker
    and watchdog armed instead of tearing them down — the Mac can no
    longer be left muted with no recovery path. The mute lifecycle is now
    driven by pure, self-tested decision functions.
  • Toggle mode: Pressing the hotkey while a transcription is still
    finishing no longer silently swallows presses; the toggle state only
    advances when a recording can actually start.
  • Filler-word removal: Fixed punctuation artifacts with consecutive
    or sentence-final fillers ("So, um, uh, yes." no longer becomes
    "So,, yes."), and fillers before "?" or "!" are now cleaned up.
  • Update check: "Remind me later" now survives relaunch instead of
    re-prompting shortly after the next launch. Manual check failures
    distinguish being offline from GitHub rate limiting and unexpected
    responses. The check now sends a fixed parakey-update-check
    User-Agent, documented in the privacy table.
  • Text corrections: Failed saves now surface an alert instead of
    silently dropping the edit, the corrections file cap is raised to
    4 MiB so maximum-size sets always fit, imports say when a file was
    truncated to the 512-entry cap, and sync no longer loses near-cap
    entries after a merge or skips an explicit "Sync Corrections Now"
    behind a stalled background scan.
  • Audio capture hardening: Closed a data race on audio-converter
    state during engine stop/restart.
  • Text insertion: The fallback typing path now posts matching
    key-up events so apps that track key state behave correctly.
  • Privacy documentation: Now lists every model re-download trigger,
    the Homebrew hosts contacted during a user-triggered update, and the
    fact that the last transcript stays on the clipboard after pasting.
  • Release and CI hardening: Release tags are annotated and pushed
    explicitly, releases run QA gates (CI-green check, self-test suite,
    packaged smoke test) before notarization, a --cask-only mode
    resumes half-finished releases, CI actions are SHA-pinned, the
    benchmark harness is compiled in CI, and docs deploy only after
    checks pass.

Manual Checks

  • Run the signed-app hotkey and dictation smoke from docs/manual-qa.md.

v0.2.15

Choose a tag to compare

@rcourtman rcourtman released this 04 Jun 11:09

What's Changed

  • Hotkey recovery: Added Settings -> Hotkey -> Reset Hotkey to
    Default
    so a bad or awkward custom hotkey can be returned to Right Option
    without recording a replacement.
  • Hotkey recorder polish: The recorder now accepts additional F-keys and
    right-side modifiers, rejects unsafe typing keys, and has stronger
    self-test coverage for save, rollback, and listener restart paths.
  • Speech model recovery guidance: Startup failures now distinguish likely
    interrupted/corrupt model caches from network/download failures and point
    to Support -> Reset Speech Model Cache... when that is the right
    recovery path.
  • Unexpected-exit notice: On the next launch after an abnormal exit,
    Parakey offers to copy privacy-safe diagnostics or open the local log.
    Nothing is sent anywhere.
  • Mute recovery: If Parakey crashes or is force-quit while it muted
    system audio for an active recording, a local watchdog now unmutes the Mac
    when the app process disappears. The next launch also repairs any stale
    mute marker.
  • Audio capture hardening: Recording samples are accumulated in segments
    and flattened outside the audio lock, with added downmix/converter
    self-tests.
  • Private benchmark tooling: Added redacted real-dictation regression and
    power benchmark helpers. Their reports redact transcript text, fixture
    names, and local paths by default, and CI now runs their self-tests.
  • Release safety checks: Added a packaged-app smoke script that verifies
    resources, signing, entitlements, and packaged self-tests.

Manual Checks

  • Run the signed-app hotkey and dictation smoke from docs/manual-qa.md.
  • Run bench-power.sh once after sudo -v to validate the real
    powermetrics path on the release machine.

v0.2.14

Choose a tag to compare

@rcourtman rcourtman released this 28 May 11:54
  • Release v0.2.14
  • Improve menu organization and update progress UI

v0.2.13

Choose a tag to compare

@rcourtman rcourtman released this 28 May 11:18
  • Release v0.2.13
  • Redact nonstandard bundle paths in diagnostics
  • Avoid full paths in support logs
  • Stop sync after unsafe correction path
  • Cancel update checks on termination
  • Pause runtime during model cache reset
  • Reject symlinked correction imports
  • Track correction sync content changes
  • Fall back to direct text insertion
  • Recover audio runtime after system wake
  • Retry setup failures from checklist
  • Document diagnostics workflow
  • Strengthen release script self-test
  • Expand diagnostics report
  • Sanitize TCC reset environment
  • Hash model files without following symlinks
  • Open update logs before launching helper
  • Sanitize updater process environment
  • Create update helper scripts safely
  • Reject hard-linked update logs
  • Bound transcript correction entries
  • Normalize stored hotkey choices
  • Normalize stored app versions
  • Normalize input device preferences
  • Reject hard-linked log files
  • Normalize correction sync file paths
  • Normalize skipped update versions
  • Reject correction writes through symlinks
  • Bound stored correction decoding
  • Bound update response decoding
  • Harden update version parsing
  • Harden application log writes
  • Bound correction transfer file reads
  • Harden update helper logging
  • Avoid stale clipboard paste on insertion failure
  • Reject symlinked model cache paths
  • Guard speech model cache reset path
  • Tighten update release URL checks
  • Validate update release metadata
  • Clean up update helper script files
  • Harden model manifest updater
  • Tighten model manifest validation
  • Harden model loading and release checks
  • docs: add llms.txt reference to structured metadata

v0.2.12

Choose a tag to compare

@rcourtman rcourtman released this 25 May 06:44
  • Release v0.2.12
  • build, docs: expand support to macOS 14 (Sonoma) and later
  • docs: sync star suggestion in website docs pages and sync-docs script
  • Bump actions/upload-pages-artifact from 3 to 5 (#2)
  • Bump actions/deploy-pages from 4 to 5 (#1)
  • Bump actions/configure-pages from 5 to 6 (#4)
  • Bump actions/checkout from 4 to 6 (#3)