Archived publication evidence from the feature map. Each entry describes its named release and observed checks, including failures, skips, and native-proof limits. These records do not verify the current working tree or replace the checks and recovery contracts beside each capability.
Release 3675206, build 20113, was signed, notarized, stapled, and accepted by
Gatekeeper. DMG and ZIP payloads matched across 207 entries. Public DMG, ZIP, and
latest-DMG downloads matched their prepared SHA-256 checksums; the public feed
led with 20113, and its ZIP signature verified against the app's public key.
Published September 3, 2026: 2.1.14, release commit
cc7f843, build 20114. The combined release passed 442 Rust tests (nine opt-in
tests ignored), all twelve keyboard-layout scenarios in debug and release,
46 command-SDK tests, Clippy, formatting, and app identity guards. The first
optimized harness attempt exceeded the command timeout during compilation;
the rerun completed and all twelve scenarios passed.
The app and DMG were Developer ID signed, notarized, and stapled; Gatekeeper
accepted both. DMG and ZIP app payloads matched across 207 entries, including
file bytes, permissions, and symlink targets. After artifact-first/feed-last
publication, public DMG, ZIP, and latest-DMG downloads matched the prepared
SHA-256 hashes. The public feed led with 20114, and its ZIP signature verified
against the app's public key. The publication script's recursive diff emitted
framework directory-loop warnings; the separate no-follow manifest comparison
verified the complete payloads without traversing symlinks.
The installed app and live settings were not modified. The live quiet-startup, Finder/Spotlight reopen, and physical dictation smoke test was explicitly waived for this release; those paths remain unverified on the installed candidate. No Sparkle installation or Linux binary release was performed.
Published September 3, 2026: 2.1.15, release commit
9ec1b51, build 20115. The current-version checks passed 444 Rust tests in each
of debug and release (nine opt-in tests ignored per profile), all twelve
keyboard-layout scenarios in each profile, 46 command-SDK tests, strict Clippy in
both profiles, formatting, and app identity guards.
The app and DMG were Developer ID signed, notarized, and stapled; Gatekeeper
accepted both. A no-follow manifest comparison matched all 208 entries including
the app root, file bytes, modes, and symlink targets across DMG and ZIP. After
artifact-first/feed-last publication, public DMG, ZIP, and latest-DMG downloads
matched their prepared SHA-256 hashes. The public feed led with 20115, and its
ZIP signature verified against the app's public key. The existing recursive-diff
warnings in the publication script remain; the separate no-follow check passed.
Homebrew cask PR #16 passed style, strict online audit, Sparkle livecheck, and checksum-verified download. Installation and uninstall succeeded with an isolated temporary application directory. The installed candidate passed identity, signature, stapled-ticket, and Gatekeeper checks. An existing-app fixture was refused without replacement; the real installed app's Info.plist and executable hashes were unchanged.
Screen Recording preflight reported unavailable, so no screenshot is claimed. The installed app was not replaced or launched, and no physical dictation, Sparkle installation, or Linux binary release was performed.
Published September 4, 2026: 2.1.16, release commit
76dc552, build 20116. Both profiles passed 455 Rust tests and all twelve
keyboard-layout scenarios, with ten opt-in tests skipped per profile. The real
Cohere synthetic-audio regression passed separately. Both profiles passed strict
Clippy; formatting, app-identity fixtures, 46 command-SDK tests, and 45 public-SDK
tests passed, along with SDK typechecks and the public SDK build.
The app and DMG were Developer ID signed, notarized, stapled, and accepted by
Gatekeeper. The DMG and Sparkle ZIP matched across 208 no-follow payload entries.
After artifact-first/feed-last publication, fresh public DMG, ZIP, and latest-DMG
downloads matched the prepared artifacts byte-for-byte; the public feed led with
20116, and its Ed25519 signature verified against the app's public key. The
existing recursive-diff framework-loop warnings were independently covered by
the no-follow comparison.
Homebrew cask PR #17 updated the version/checksum and was merged after style, strict online audit, livecheck, checksum fetch, isolated installation/uninstallation, app identity/signature, stapled-ticket, and Gatekeeper checks. An existing-app fixture was refused without replacement. The test cask was removed; the real installed app's Info.plist and executable hashes were unchanged. Release replies were posted and #73 and #74 were closed after publication.
Screen Recording preflight remains unavailable. This release has no physical
menu-click, installed-app model switch, microphone/paste, or Sparkle installation
proof. No Linux binary is published. The
Linux/Nix CI run
passed for release commit 76dc552: the Linux job completed in 3m50s and Nix in
40m10s. This includes isolated X11 grabs, Wayland paste into GTK, virtual-microphone
capture/inference/paste, signed-installer tamper rejection, and the installed Nix
package checks. These CI checks remain separate from native macOS and physical
Linux verification.
The performance investigation changed
no runtime defaults.
Published September 14, 2026: 2.1.18, release commit
62b055e, build 20118. The optimized suite passed 468 Rust tests and all twelve
keyboard-layout child scenarios, with ten opt-in tests skipped. Strict release
Clippy and app-identity fixtures passed. The signed bundle's isolated HUD preview
was visible over native fullscreen TextEdit; no microphone capture or installed
app replacement was performed.
Apple accepted the app and DMG for notarization; both were stapled. Gatekeeper
accepted the candidate. DMG, Sparkle ZIP, and tested bundle matched across 208
no-follow entries (bytes, modes, and symlink targets). Public DMG, ZIP, latest-DMG,
and GitHub mirror bytes matched the prepared artifacts. The public feed matches
the prepared feed and leads with 20118; its ZIP signature verified against the
bundled public key. Publication resumed at the feed upload after a server restart,
following fresh verification of all uploaded artifacts.
Both production marketing sites show the versioned 2.1.18 links. Their GitHub
download buttons completed downloads in headless Chromium with the primary host
blocked. The Homebrew cask passed style, strict online audit, and checksum fetch.
The separate .com site's lint, typecheck, and build passed; its dependency audit
reported four existing development-tool advisories, tracked separately.
The Ubuntu CI run passed Rust tests, isolated X11 grabs, and native Wayland paste,
then exposed a virtual-microphone fixture mismatch: its partial saved settings
selected legacy Ctrl-Shift-V while the GTK target expects Ctrl-V. The fixture now
sets paste_with_shift:false explicitly. The failed target check remains a failed
run, not native paste proof; see the subsequent CI result for verification.
Subsequent CI passed: run 34927405408
on cd3a8d9 passed both Ubuntu (4m15s) and Nix (39m58s). This includes the
corrected virtual-microphone capture/inference/paste fixture, X11 grabs, Wayland
paste into GTK, signed-installer tamper rejection, service IPC/lifecycle, strict
Linux Clippy, and the installed Nix package build and tests. These isolated checks
do not establish physical Linux device or compositor compatibility.
Published September 18, 2026: 2.1.19, release commit
983c71c, build 20119. The debug and optimized suites each passed 468 Rust
tests plus all twelve keyboard-layout child scenarios, with ten opt-in tests
skipped per profile. Strict all-target/all-feature Clippy, formatting, app
identity guards, and the release build passed.
Apple accepted the app and DMG for notarization; both were stapled, and
Gatekeeper accepted the DMG. The public versioned DMG, latest-DMG pointer, and
GitHub mirror match the prepared SHA-256. The feed leads with build 20119, and
the published ZIP is the signed prepared update. The isolated memory probe in
Dictation establishes scratch reclamation
with the similarly sized Unified English model; it is not a Parakeet v3 or
installed-app memory measurement. No installed app replacement, physical
dictation, Sparkle installation, or Linux binary release was performed.
Both production marketing sites and their Vercel aliases show the versioned
2.1.19 primary and GitHub downloads. The .dev site build and Cloudflare deploy
passed. The .com site's lint, typecheck, build, and Vercel deployment passed;
its dependency audit reported the same four development-tool advisories already
present in 2.1.18. The Homebrew cask passed Ruby syntax, style, strict online
audit apart from the explicit existing token collision, checksum fetch, and
livecheck (2.1.19 ==> 2.1.19). No cask installation replaced the live app.
Published September 19, 2026: 2.1.20, release commit
4d4734c, build 20120. The debug and optimized suites each passed 468 Rust
tests plus all twelve keyboard-layout child scenarios, with eleven opt-in tests
skipped per profile. Strict all-target/all-feature Clippy, formatting, the
native IOKit assertion smoke, app validation, and the release build passed.
Apple accepted the app and DMG for notarization; both were stapled, and
Gatekeeper accepted the DMG. The versioned custom-domain DMG, latest-DMG pointer,
and GitHub mirror match the prepared SHA-256
fdd66e297c66178a1a0cfa2e19f5b0a5674135d202481b1aeb84d4d1268167af.
The published Sparkle ZIP matches the prepared SHA-256
a468575ac037b632cc78d479df7430f083748873dd5c71e576ce23be1197917b,
and the feed leads with build 20120.
Both production marketing sites and their Vercel aliases show the versioned
2.1.20 primary and GitHub downloads. The .dev site build and Cloudflare deploy
passed; the .com site's lint, typecheck, build, and Vercel deployment passed.
The Homebrew cask passed Ruby syntax, style, strict online audit, checksum fetch,
and livecheck (2.1.20 ==> 2.1.20). No installed app or cask was replaced, no
physical dictation was performed, and no Linux binary was published.
Published September 22, 2026: 2.1.21, release commit
04a42da, build 20121. The debug suite passed 481 Rust tests plus all twelve
keyboard-layout child scenarios with twelve opt-in tests skipped; the earlier
audited tree at b774568 also passed the optimized suite (475 tests), strict
Clippy in both profiles, the live OpenCode catalog check, and the native feedback
output-assertion smoke. Strict debug Clippy, formatting, the public and command
SDK typechecks, tests, and builds, and the app identity guards passed on the
release commit. An independent read-only review of the capture-path refactor
found no blocking issues. Linux CI passed its Ubuntu job on b774568; the Nix
job was still running at publication. No optimized-profile test run was repeated
on 04a42da itself.
Apple accepted the app and DMG for notarization; both were stapled, and
Gatekeeper accepted the DMG. The publisher's payload comparison passed. The
versioned custom-domain DMG, latest-DMG pointer, and GitHub mirror match the
prepared SHA-256
0cae65210edffce60a2ab1d51c13eebe91d490c7292fbc711c49abb4df70169e.
The published Sparkle ZIP matches the prepared SHA-256
847cf80836aefd6ab4b028ba476c8dafad0780b3753b00eb98aaf04b1536b0e4,
and the feed leads with build 20121. A first candidate built from 7b95cc2
was notarized and then superseded by this build before publication; it was never
uploaded.
Both production marketing sites show the versioned 2.1.21 primary and GitHub
downloads. The .dev site build and Cloudflare deploy passed; the .com site's
lint, typecheck, build, and Vercel deployment passed.
Homebrew cask PR #20 passed
Ruby syntax, style, strict online audit, checksum fetch, and livecheck
(2.1.21 ==> 2.1.21). Screen Recording remained unavailable, so no window
screenshots were captured; the signed candidate launched its Settings preview
window. No installed app or cask was replaced, no physical dictation was
performed, and no Linux binary was published.
Published September 22, 2026: 2.1.22, release commit
5679730, build 20122. The cleanup passed 483 debug and 482 release Rust tests,
with twelve opt-in tests ignored and all twelve keyboard-layout child scenarios
passing in each profile. Strict all-target/all-feature Clippy and formatting
passed. The public SDK passed typecheck, 70 tests, and build. Linux CI passed on
the cleanup commit 7b0c6f6; no Linux binary was published. The version bump
passed Cargo check and app identity guards with the configured CMake executable.
Apple accepted the app and DMG; stapling and Gatekeeper validation passed.
The publisher verified identical app payloads in the DMG and Sparkle ZIP, then
verified downloaded artifact bytes before advancing the latest pointer and feed.
The DMG SHA-256 is
9cd036ca910919f1793e32452c671cc204c8ce97d6542e031c89b992a0f952b0;
the ZIP SHA-256 is
7f35a557073d037ff54573f51222c934689bacb283559c6618a5d9e6aed2d7ea.
The live feed leads with build 20122, and both the custom-host and GitHub DMG
links return HTTP 200.
The .dev site passed build and Cloudflare deployment. The .com site passed
lint, typecheck, build, and Vercel deployment. Production responses from both
custom domains and both Vercel aliases contain 2.1.22 and both download
destinations. These are HTTP/content checks, not browser interaction evidence.
Homebrew cask PR #21 merged
after Ruby syntax, style, strict online audit, checksum fetch, and livecheck
(2.1.22 ==> 2.1.22) passed using a temporary verification tap, since removed.
No installed app was replaced, physical dictation performed, or native GUI
verification added for this release.
Published October 21, 2026: 2.3.1, release commit
c4b3287 (version bump 985c78e, driver plist 8531c8d on top of 7bfb51d),
build 20301. CI (macOS, Linux test and nix, Windows x64 and ARM64) passed
on c4b3287; the first run on 985c78e failed because the Hex Microphone
driver plist still said 2.3.0. Both notarizations were accepted and the DMG
passed Gatekeeper. The DMG SHA-256 is
56de94665da8fefbe0fe6310368fd7b62497dff593b6818475f9c5fa751def7a; the ZIP
SHA-256 is
a8a813334c92c505c65c4cd2f3e678e2758b197393df62f988264c3e872d4ddd. The live
feed leads with build 20301, and the custom-domain, latest, and GitHub DMGs
match. No physical dictation check or Sparkle update from an older build was
run.
Built from 9f8fd71 by Release desktop run 39654195736
and published from the Pro with scripts/publish-desktop-release.sh. The run
from c4b3287 failed the x64 Setup.exe test twice: the build's
hex.exe --version check created %APPDATA%\hex before parsing the
CLI, so the installer test saw a dirty machine. 9f8fd71 parses first. The
three feeds serve 2.3.1 and verify; the Setup.exe SHA-256s are
f9c04f6e85db256d43f3539a992e674026aa44935fb59d5fd9d1bf6af1fe3952 (x64) and
54785afee4f5e9a5d6f7b75239eb376186771e21237414da708dc7f4822d6d9f (ARM64).
The installer workflow step installed, reinstalled, refused a downgrade with,
and uninstalled both on CI runners. No dictation was performed on Linux or
Windows hardware.
Published October 19, 2026: 2.3.0, release commit
cfb4eb4 (#161 on top of #155 e849fa4 and #160 41fb3e2), build 20300.
CI (macOS and Linux test, nix, Windows x64 and ARM64) passed on #155 and
#161. A pre-release review of app-v2.2.0..41fb3e2 found no blockers. The
first three prepares, from e849fa4, failed uploading to the notary service
because the release host's Wi-Fi uplink had dropped to about 20 KB/s; nothing
from them was published. After a Wi-Fi power cycle, the cfb4eb4 prepare was
notarized, stapled, and accepted by Gatekeeper. The DMG SHA-256 is
3a2872b29bde17f3a5c3cc2643e74eaa11ae7d6911b53a803f619a62fd55e5ce; the ZIP
SHA-256 is
a3d2c06198fb93a77fe2368f747a6073702dce7fa0dca5178e0b46c623de5545. The live
feed leads with build 20300, and the custom-domain, latest, and GitHub DMGs
match the checksum. No physical dictation check was run for publication, and no
Sparkle update from an older installed build was exercised. Linux and Windows
2.3.0 are published separately.
Published October 16, 2026: 2.2.0, release commit
faa6721, build 20200, from #133 (df2edf8). Linux CI (test and nix)
passed on the merged pull request after fixing its Linux compile and dead-code
failures. Kit used a signed build of the branch on his MacBook Pro before
approving the release; no further physical dictation or meeting checks were run
for publication. The first two notarization uploads were interrupted (a reboot
and an upload deadline) and were abandoned in In Progress; the third prepare was
notarized, stapled, and accepted by Gatekeeper. The DMG SHA-256 is
7185f4426a090291fa11043e55e9a201fb308ceb247b281a4c2ae9ebb97c36de; the ZIP
SHA-256 is
eb94183347c649adf7f2c61f84b3971fafa5c4c095a64b175319e94564679039. The live
feed leads with build 20200, and the custom-domain, latest, and GitHub DMGs
match the checksum. No Sparkle update from an older installed build was exercised.
Published October 7, 2026: 2.1.25, release commit
d5cd203, build 20125. Before tagging, 496 Rust unit tests, 12 keyboard-layout
child processes, Clippy, formatting, app identity guards, and 70 TypeScript SDK
tests passed. The DMG SHA-256 is
43dd3db534d625f4fb6f21a1b9ad44b96900f0b95fe923dca19b47f8e70120fa; the ZIP
SHA-256 is
3184e141c281d6d1bb3fcce5a4306f269795a4c9e4d92bea376a306dca7d2ef8. The live
feed leads with build 20125, and both downloaded DMGs match the checksum.
Published October 3, 2026: 2.1.24, release commit
c3f5823, build 20124, built with the default stable Rust 1.99.0. This release
ships the dependency updates in #115 to #117 (including transcribe-cpp 0.2.4 and
Effect 4.0.0) and #119. Before tagging, 492 debug and 491 release Rust tests
passed; one timing-bound OpenCode discovery test failed once in release under a
load average near 100 and passed on rerun. Clippy, formatting, app identity
guards, both SDK packages (70 and 52 tests), and the commands-workspace smoke
(fresh, beta.97, beta.107, and rc.112 workspaces) passed. Linux CI passed on
each merged pull request.
The first signed candidate, launched against a real personal-command workspace,
refused to load commands because the Effect migration did not recognize the
previously shipped 4.0.0-rc.112 pin. #119 fixed that before publication, and the
candidate was rebuilt. The rebuilt candidate loaded Parakeet Unified English on
Metal, migrated the workspace to Effect 4.0.0, and activated personal commands;
the workspace was then restored for the installed 2.1.23 app, which reactivated
its commands. The DMG SHA-256 is
c017f381c5d966647f3d17cc90bff958415ddb4eb859491261c22ab5caa6d70d; the ZIP
SHA-256 is
487430aad59d3bc9f1ca8d123ab6b44c07201f2b9a5499dd4e431fb8b0402c3e. The live
feed leads with build 20124, and both downloaded DMGs match the checksum. Both
sites and all Vercel aliases serve 2.1.24, and
Homebrew cask PR #24 merged
after syntax, style, and livecheck passed. No physical dictation, Bluetooth
headset, or Sparkle update from an older installed build was exercised.
Published October 2, 2026: 2.1.23, release commit
cbea1ef, build 20123. Before tagging, 492 debug and 491 release Rust tests
passed, with twelve opt-in tests ignored. Strict all-target/all-feature Clippy,
formatting, and app identity guards passed. The public SDK passed typecheck, 70
tests, and build. Linux CI passed on each merged pull request (#111 to #114); no
Linux binary was published.
macOS 27.0.1's loader rejects procedural-macro dylibs that Rust 1.95 links in
release mode with an explicit deployment target ("mis-aligned LINKEDIT string
pool"), so release-app.sh prepare failed with the default toolchain. The release
was built with RUSTUP_TOOLCHAIN=1.99.0, which links them correctly, after the
release test suite also passed on 1.99.0 with MACOSX_DEPLOYMENT_TARGET=15.0.
The app still declares and was built for macOS 15.0 (minos 15.0, SDK 27.0).
Apple accepted the app and DMG; stapling and Gatekeeper validation passed. The
signed candidate was launched in place of the installed app with
DisableUpdates set (Sparkle never loaded and the launch logged the managed
state) and again with the key removed (Sparkle loaded); the key was deleted
afterward and the installed 2.1.22 app was restored. The publisher verified
identical app payloads in the DMG and Sparkle ZIP before upload.
The DMG SHA-256 is
b2e61bb5e1ec7ffd2c6c24867fdd507b95a95f9824fc8a857c1bf67cb6775bc4;
the ZIP SHA-256 is
2cbca2dc11c32df25746d0f8b2f3e65f53d29054b765a94c6db4b5385c5491d5.
The live feed leads with build 20123; the custom-host, GitHub mirror, and latest
DMG links return HTTP 200, and both downloaded DMGs match the checksum.
The .dev site passed build and Cloudflare deployment. The .com site passed
lint, typecheck, build, and Vercel deployment. Production responses from both
custom domains and both Vercel aliases contain 2.1.23. These are HTTP/content
checks, not browser interaction evidence.
Homebrew cask PR #23 merged
after Ruby syntax, style, and livecheck (2.1.23 ==> 2.1.23) passed using a
temporary verification tap, since removed. The strict online audit now reports a
token conflict with a homebrew-core formula named hex, unrelated to this bump.
No Bluetooth headset, physical dictation, or update from an older installed
build was exercised.
Observed September 4, 2026, local service build: 139 Rust tests passed (seven
native/opt-in tests skipped), together with strict Linux bin/tests Clippy, the
release build, the release-binary IPC/lifecycle script, and installer fixtures.
The managed Arch/i3 installation passed systemd-analyze --user verify after
correcting the unit's EnvironmentFile syntax. Its environment file cleared the
user manager's stale Wayland values; the service reported X11 and Listening.
The installed executable SHA-256 was
cbfa91894c5b592254da41a3d2791f9461e5995abdac3da90a2639aefe3e52f1.
The installed Settings client had no audio handles or runtime locks. Closing its
window left the same systemd service PID running and Listening. The screenshot
at /tmp/opencode/hex-service-settings.png also retained an empty-transcript
failure; it was not dismissed to make the lifecycle check pass. This validates
client-independent ownership, not transcription accuracy. The modified virtual
microphone/Wayland smokes, Nix evaluation, physical logout, and signed
cross-version service updates were not run on this host.
Observed September 4, 2026, initial Linux sound build (before immediate-start
feedback): 134 Rust tests passed
(seven native/opt-in tests skipped), along with formatting, strict Linux
bin/tests Clippy, and the release build. The locally modified 4ff6c4c build
(executable SHA-256 609f16cac11eb66cea7054092e7c4caee3f02c3bd1b8828f5232cf3b2b67df31)
was installed and launched with hex app on Arch/i3/X11. It reached Listening
and opened a PipeWire ALSA playback stream; existing settings were unchanged.
The installed Settings capture at /tmp/opencode/hex-linux-sounds.png showed
the new volume control with 50% selected. Actual tone audibility, physical
hotkey-to-sound timing, Wayland UI, and macOS regressions were not exercised.
Immediate-start refinement, same day: 135 Rust tests passed (seven skipped),
including the new start-before-audio regression. Formatting, strict Linux
bin/tests Clippy, and the release build passed. The replacement executable
(SHA-256 470be7569cf9fa8be60e73554c8311df2b68487b221cefffc7cfd26cb7e11629)
was reinstalled and restarted on the same Arch/i3/X11 host and reached Listening.
There is no measured native key-to-sound latency or additional macOS/Wayland proof.
The first Linux x86_64, Windows x64, and Windows ARM64 releases were built from
cfb4eb4 by Release desktop run 39340404218
and published from the Pro with scripts/publish-desktop-release.sh. The three
public feeds serve 2.3.0, their signatures verify against the embedded public
key, the downloaded artifacts match the signed size and SHA-256, and both
public installers match cfb4eb4 byte for byte. The Linux artifact requires
GLIBC_2.44. No installer run, self-update, or dictation was performed on Linux
or Windows hardware.