Releases: negentropi/roma-just-talk
Release list
v1.95
v1.95 - 2026-06-17
- Fixed Special
startRecordingmodifier-only shortcuts so unreliable key-up evidence and short clean presses no longer cancel after recording has already started. - Canceled unclaimed rolling-buffer preload sessions after sustained silence or a short stale-session cap, preventing local STT from running for minutes after brief ambient speech.
Build proof:
- GitHub Actions run: https://github.com/happyf-weallareeuropean/roma-just-talk/actions/runs/27668369598
- Commit: 0329392
- App version: 1.95
- App build: 195
- Artifact SHA-256: 76d5891936bf659180f0a22ff46b6285a6beb4f970b95f42f0f82f3d2f3868ff
roma just talk v1.94
v1.94
Changes
- Replaced the misaligned silence-filter path with rolling buffer preload controls that use local VAD to pre-run supported STT before capture finalization, independent from final/batch transcription VAD.
- Made the fresh Special shortcut default preload-only so quick releases can commit the rolling-buffer pre-run path without opening a recorder first.
- Added configurable rolling buffer duration with decimal seconds support.
- Renamed model-card transcription mode controls to "Streaming" so they stay separate from rolling buffer preload.
- Renamed the provisional transcript UI toggle to "Show Transcript Preview" so it no longer reads like a separate live-transcription feature.
- Moved recorder audio-duration metadata work after paste so completed text reaches the cursor sooner.
- Deferred the recorder history save until after transcription work starts so quick releases do not wait on SwiftData I/O before STT.
- Removed the fixed pre-paste delay after verified clipboard writes so completed text posts to the cursor sooner.
- Skipped cursor-context Accessibility reads when capitalization logic can prove the output text cannot change.
- Reduced the fixed autosend wait after paste from 500ms to 120ms while keeping a short guard before Return is posted.
- Blocked Auto low-battery local rolling-buffer preload before loading or running the local VAD, so the low-battery opt-out now fully disables buffer pre-run work.
- Claimed ready rolling-preload sessions before Power Mode configuration work so quick releases do not wait on model/session setup when the preloaded model and language still match.
- Tightened cached rolling-preload finalization so quick releases avoid pasting stale partial hypotheses when the local ASR pass is behind the live buffer.
- Let preload-only Special shortcut quick releases commit the rolling buffer instead of being canceled as short no-evidence presses.
- Preserved pre-roll-first streaming order without holding the recorder file lock through the whole pre-roll emission.
- Released the recorder file lock before forwarding queued live chunks after pre-roll streaming emission, reducing audio-thread blocking risk during startup handoff.
- Shortened the post-commit wait for local FluidAudio streaming finalization while preserving the longer cloud streaming wait.
- Moved the rolling-buffer VAD model picker into Rolling Buffer settings and clarified active-recording streaming text so buffer preload is not presented as generic live transcription.
- Overlapped rolling-preload quick-release active-window Power Mode application with STT finalization, so ready preloads no longer wait on window rule resolution before stopping the pre-run session.
- Started active-recording Power Mode rule resolution while audio hardware starts, so pre-roll/live buffered chunks wait less before fallback streaming setup.
- Removed a fixed post-STT wait before trigger-word AI enhancement starts.
- Removed fixed sleeps between simulated paste key events so completed text reaches the target app sooner.
- Kept warmed local STT resources after successful transcription so the next recording and rolling-buffer preload avoid an immediate teardown/reload cycle.
- Warmed the rolling-buffer VAD model before first speech when preload is eligible, so the first VAD trigger can start STT without paying model-load delay.
- Broadcast the restored startup transcription model so rolling-buffer preload can warm immediately after launch instead of waiting for a later settings change.
- Let preload-only quick releases commit an already-ready rolling-buffer STT session directly, without opening and stopping a new recorder session first.
- Let preload-only quick releases fall back to the current rolling-buffer audio snapshot directly, avoiding a recorder open/stop cycle when no pre-run session is claimable and the model supports saved-WAV transcription.
- Let local streaming models transcribe buffered rolling-audio snapshots immediately while the WAV writes in parallel for fallback/history, instead of waiting for the file before STT starts.
- Let very short active recordings that stop during startup replay their captured pre-roll/live PCM into the streaming session before falling back to batch transcription.
- Removed the preload-miss shortcut polling timeout by awaiting recorder startup before the immediate stop handoff.
- Replayed active-recording startup chunks into claimed rolling-preload sessions instead of dropping audio captured during the handoff.
- Preserved rolling-buffer audio for direct snapshot fallback when an existing pre-run session is canceled by a model, language, or finalization-policy mismatch.
- Preserved rolling audio collected while a preload-only quick release finalizes, so the next rolling preload does not restart from an empty lead-in after paste.
- Deferred quick-release rolling-preload history insertion until the post-paste save boundary, removing avoidable SwiftData work before the cursor paste starts.
- Warmed and cached word replacement rules outside the dictation hot path so quick-release paste no longer repeats the SwiftData lookup before every cursor paste.
- Deferred quick-release rolling-preload WAV writing until after cached stream finalization can start, while still waiting for the file before batch fallback or history metadata needs it.
- Added claim-to-paste latency tracing for rolling-preload quick releases so remaining delays can be measured from runtime logs.
- Included rolling-buffer preload mode, duration, VAD model, Auto policy, power state, and per-model preload state in diagnostic log exports.
- Added the last rolling-buffer quick-release claim strategy and claim-to-paste timing to diagnostics so packaged builds can show whether a release used ready preload, buffered audio snapshot, or missed the rolling path.
- Started Power Mode rule resolution on preload-only Special shortcut key-down, so quick releases avoid doing active-window and URL matching work after key-up.
- Cached prompt trigger-word eligibility and skipped prompt detection in the common no-trigger case, reducing transcript-ready-to-paste work.
- Pre-read cursor text context on preload-only Special shortcut key-down so contextual capitalization can avoid an Accessibility read immediately before quick-release paste.
- Pre-read clipboard restore context on preload-only Special shortcut key-down so restore-enabled quick releases avoid copying pasteboard data immediately before paste.
- Started quick-release rolling-buffer WAV writes immediately after claiming buffered audio so file I/O overlaps Power Mode resolution instead of running wholly after key-up validation.
- Used the claimed rolling-buffer PCM byte count for quick-release history duration, avoiding a post-paste AVFoundation metadata read.
- Deferred quick-release session metric recording until after the rolling-preload pipeline returns, so the app can leave the busy path before noncritical metric I/O.
- Deferred quick-release history persistence until after the rolling-preload pipeline returns and added returned/idle timing diagnostics for measuring the remaining post-paste tail.
- Deferred rolling-preload quick-release Power Mode/session restoration until after the engine marks idle, with diagnostics for the remaining session-finish tail.
- Skipped browser URL lookup during automatic Power Mode selection when no enabled URL rules exist, removing an avoidable pre-pipeline quick-release delay.
- Reduced the shortcut duplicate-press guard from 500ms to 80ms so valid back-to-back dictations are not ignored after the app is ready again.
- Skipped fallback streaming setup on immediate startup-stop recordings when the selected model can transcribe the saved WAV directly.
- Included rolling buffer preload mode, per-model opt-outs, Auto policy, duration, finalization, and VAD model settings in settings backup/import.
- Made the pre-run finalization opt-out also skip rolling-buffer STT pre-run work instead of warming an unusable session.
- Preserved the exact latest rolling-buffer preload audio when incoming chunks exceed or cross the configured duration boundary.
- Canceled warm rolling-preload sessions when the selected transcription language changes before the shortcut claims them.
- Woke quick-release claims as soon as rolling-preload startup resolves instead of polling until the next 10ms tick.
Build proof:
- GitHub Actions run:
27630517241 - Artifact:
roma just talk.app.zip - SHA-256:
79eba5a1b3c6424482fb4f7da549d24ace97078f86dbdafae13c48578d8b71bb - Bundle:
roma just talk.app, version1.94, build194
Notes:
- This uses the v1.80-v1.82 style local app zip workflow, not the later notarized DMG workflow.
- The release is built from
aa4984c250d9f29d54cf7c50939d94de3a5d6a69.
roma just talk v1.93
v1.93
Changes
- Moved real-time transcription controls into the main Settings page while keeping them available from model settings.
- Improved cursor-context capitalization in editors that expose focused text but not an exact Accessibility cursor range.
- Fixed real-time transcription chunk loss when local VAD briefly missed speech inside an utterance.
- Made Special shortcuts fail closed when key evidence is unreliable, including secure text entry, held companion keys at Shift release, and very short no-evidence Shift presses, so hidden typing does not start dictation.
- Removed the Keyboard Shortcut setup card from App Permissions so the page only lists macOS permission grants.
- Renamed the main sidebar items to home, manual stt, past, models, and style.
Build proof:
- GitHub Actions run:
27527688198 - Artifact:
roma just talk.app.zip - SHA-256:
f4d43f3a354e477065f47f9677fba84e60cf2e478d4ec5544496fe141c3b6db4 - Bundle:
roma just talk.app, version1.93, build193
Notes:
- This uses the v1.80-v1.82 style local app zip workflow, not the later notarized DMG workflow.
- The shared prompt core package is included in the release repo so the GitHub Actions checkout is self-contained.
roma just talk v1.92
v1.92
Changes
- Fixed Special shortcut typing detection for Karabiner mappings that emit bare function keys, including
Left Shift+XandLeft Shift+S/D/F. - Fixed Special shortcut empty taps so they only paste the previous transcription after the current tap transcribes empty, instead of treating every short tap as paste-only.
Build proof:
- GitHub Actions run:
27455423169 - Artifact:
roma just talk.app.zip - SHA-256:
b29c19cdd12ed5f6024a1208cbf65aa1249b113fb6b05893b5593e9331574d45 - Bundle:
roma just talk.app, version1.92, build192
Notes:
- This uses the v1.80-v1.82 style local app zip workflow, not the later notarized DMG workflow.
roma just talk v1.91
v1.91
Changes
- Polished the app shell and dashboard with cleaner native glass surfaces, quieter accent use, and a less marketing-heavy metrics layout.
- Added cursor-context capitalization for dictation paste so mid-sentence inserts lower an auto-capitalized first word while sentence starts stay capitalized.
- Fixed Special shortcut typing detection so fast held Shift chords such as
Shiftdown,Sdown,Shiftup reliably cancel instead of pasting last text or committing an empty recording. - Added an Auto/On/Off real-time transcription policy with cloud and low-battery rules, plus local Silero VAD gating before streaming audio chunks reach the transcription model.
- Made Special shortcut empty taps paste the last transcription immediately instead of waiting for an empty recording to transcribe.
- Reused the PermissionFlow grant path for shortcut warning banners and metrics permission actions instead of direct System Settings deep links.
Build proof:
- GitHub Actions run:
27391731270 - Artifact:
roma just talk.app.zip - SHA-256:
1667226e36efd7ae4bae2efc4745ad68768fbb3148bafb3e30f7a891293c01a6 - Bundle:
roma just talk.app, version1.91, build191
Notes:
- This uses the v1.80-v1.82 style local app zip workflow, not the later notarized DMG workflow.
roma just talk v1.90
v1.90
This release is built from without/no-adhoc-macos-tcc, based on without/dictation-cleanup-windows-port, with the post-v1.82 ad-hoc/signing/notarization/TCC bucket excluded by explicit revert commits.
Excluded bucket: 9 commits.
4e1018c9ci: notarize macos release artifacts0f513ec4ci: use ad-hoc app zip packagingdc58cc63fix: preserve app zip entitlementsf017e4acfix: sign packaged app with release entitlements301154bcfix: read dotted entitlement keys in release proof56f85907build: add dmg package artifactfd343021ci: restore notarized dmg release workflow8d44c03aci: make notarized dmg workflow manual3847dd47fix: route permission grants through PermissionFlow
Build proof:
- GitHub Actions run:
27277795306 - Artifact:
roma just talk.app.zip - SHA-256:
a6f2009b9681c50cfb492fdf924a9b71c326925ff09faae234b196b6347909f8 - Bundle:
roma just talk.app, version1.90, build190
Notes:
- This uses the v1.80-v1.82 style local app zip workflow, not the later notarized DMG workflow.
v1.89
v1.89
Important distribution note: this artifact follows the v1.80-v1.82 local DMG release path. It is ad-hoc signed, not Developer ID signed, and not notarized. On normal Gatekeeper systems, double-clicking the downloaded app may show "Apple could not verify" until the app is explicitly allowed or quarantine is removed.
Changes
- Restored the real Developer ID signed, notarized, and stapled DMG workflow as a manual workflow for when Apple signing secrets are available.
- Removed the automatic fake/ad-hoc DMG artifact from the app-zip build.
- Fixed Special shortcut flex-off handling so modifier-only shortcuts fail closed when the key-evidence event tap is unavailable.
- Updated the app bundle version metadata to 1.89 / 189.
- Documented the legacy local DMG release path used by v1.80-v1.82.
Artifact
- roma.just.talk.dmg
- Version: 1.89
- Build: 189
- SHA-256: 5ff830eed194614d21d6a5cabdde5272891389fbc4b60167619823c3eb7e45ed
- App zip CI run: https://github.com/happyf-weallareeuropean/roma-just-talk/actions/runs/27269994319
Local open workaround
Only use this for artifacts you trust:
xattr -dr com.apple.quarantine /Applications/roma\ just\ talk.app
open /Applications/roma\ just\ talk.appA Gatekeeper-clean public release still requires Developer ID signing, notarization, and stapling through the manual Build notarized macOS DMG workflow after the Apple signing secrets are configured.
v1.88
Changes
- Added a DMG build artifact alongside the app zip so Gatekeeper behavior can be tested against both packaging formats.
- Added Special shortcut sub-settings for keydown preload behavior, key-down-only flex, and empty-tap paste-last fallback.
SHA-256
- roma.just.talk.app.zip: 667aa9c680b37561871e4505539995db7b43a2ff244baedc502d38c75e67e9a5
- roma.just.talk.dmg: 1bfb82286607e74ebd13b011964241cdf34596a67fd0fa95721a7edc287424b2
v1.87
- Fixed a post-keyup latency regression by finalizing the recording file without restarting the pre-roll AudioUnit on every stop.
- Added a direct DMG asset for Gatekeeper packaging comparison against the app ZIP.
v1.86
- Reissued the release as v1.86 after the v1.84 and v1.85 tags failed before publishing an app asset.
- Hid the menu bar icon by default for fresh installs while keeping Dock-icon hiding as a separate setting.
- Added Special shortcut mode as the fresh default with Left Shift: start recording on keydown, decide on keyup, and cancel typing cases where another key was released during the hold.
- Fixed app zip packaging so the release harness preserves and verifies local macOS entitlements instead of stripping them during final signing.