Releases¶
ScribeKit is published as source releases. No signed or notarized application is published with any release, so running ScribeKit means building it from source. That is a distribution limitation and nothing else: a build made from this source runs entirely on your Mac, with no account and no network.
v0.2.0¶
Tagged v0.2.0, 24 September 2026. It expands ScribeKit from
selected-app transcription into a broader on-device transcription workflow:
microphone transcription with explicit input selection and safe handling of
device changes, transcription gaps written as one marker per incident, History
filtering by source, and find within a transcript. The full list is in the
changelog.
Like v0.1.0 it carries the source only — the archives GitHub generates for the
tag, and no binary attachment. It requires macOS 26.5 or later and has been
tested on Apple Silicon only. It builds as version 0.2.0, build 2,
bundle identifier quang.ScribeKit, unchanged, so existing sandbox
containers, bookmarks and preferences carry over. Its entitlements are the App
Sandbox, audio input (for Microphone meetings), app-scoped bookmarks and
user-selected read/write files, with the hardened runtime enabled; there is
still no network entitlement. Sessions written by v0.1.0 are read unchanged.
There is still no Developer ID certificate or notarization, so there is still no signed disk image, and nothing about signing, notarization or Gatekeeper is claimed.
v0.1.0¶
Tagged v0.1.0. The release carries the source only: the archives GitHub
generates for the tag, and no binary attachment — no disk image, no
application archive, no installer. Requires macOS 26.5 or later, and has
been tested on Apple Silicon only. A Release archive of this source is a
universal x86_64 arm64 binary, but the Intel slice has never been run; an
ordinary xcodebuild build produces a binary for the Mac that builds it.
The application's release identity is frozen. It builds as version 0.1.0,
build 1, bundle identifier quang.ScribeKit; the identifier is the one every existing
sandbox container and security-scoped bookmark on a developer's Mac already
uses, and it was kept rather than changed on the eve of a first release. A
Release archive carries the App Sandbox, app-scoped bookmarks and user-selected
read/write entitlements and nothing else — no network client — with the
hardened runtime enabled and get-task-allow absent.
There is no signed disk image. Publishing a macOS application outside the App Store means a Developer ID Application certificate and Apple notarization, and neither is available for this release. The release therefore stops at a verified archive: the export, the notarization, the stapling, the Gatekeeper assessment and a packaged first install are all unevidenced, and none of them is claimed. Signed distribution is deferred, not abandoned; see Building for the sequence that runs once a certificate exists.
Changelog¶
Notable changes are recorded in
CHANGELOG.md
in the repository.
Development history¶
Work proceeds in numbered intervals, each one a milestone that is either implemented or not — nothing is described here as working before it is.
| # | Interval | State |
|---|---|---|
| 1 | Foundation — domain models, configuration UI, tests, CI | Done |
| 2 | Application audio source discovery and selection | Done |
| 3 | Durable save location and session configuration | Done |
| 4 | Audio capture from the selected applications | Done |
| 5 | On-device transcription | Done |
| 6 | Timestamped Markdown persistence and autosave | Done |
| 7 | Crash and session recovery | Done |
| 8 | Optional audio retention | Done |
| 9 | Background and menu bar lifecycle | Done |
| 10 | Transcript history and local search | Done |
| 11 | Uncertainty review against the retained audio | Done |
| 12 | Pausing and resuming a meeting | Done |
| 13 | Derived notes that never modify the raw transcript | Done |
| 14 | Reliability | Done |
| 15 | Performance and energy measurement | Done |
| 16 | Capture crash | Done |
| 17 | Soak and interface performance | Done |
| 18 | Runtime-truth profiling | Done |
| 19 | Presentation lifecycle, and explicit AM/PM in transcript times | Done |
| 20 | Start readiness, and endings described rather than implied | Done |
| 21 | Application menus, keyboard routes and accessible presentation | Done |
| 22 | Local diagnostics and supportability | Done |
| 23 | Interrupted-session continuation: investigated, deferred | Decided |
| 24 | History and notes usability assessment | Done |
| 25 | Release hardening and manual evidence | Done |
| 26 | Application identity, icon and macOS distribution | Done — distribution deferred |
| 27 | v0.1.0 source-release presentation | Done |
| 28 | v0.1.0 release verification and publication | Done |
| 29 | Transcription-gap incident coalescing | Done |
| 30 | Microphone transcription | Done |
| 31 | Microphone input selection, History filtering and transcript find | Done |
| 32 | v0.2.0 release | Done |
Not planned for the first release¶
- Continuing an interrupted meeting into the same session. Investigated in Interval 23 and deferred: it cannot be done without a second recording file per session, and a meeting killed while capturing has recorded no captured length to continue its offsets from. An interrupted meeting is preserved and a new meeting is started instead. See Limitations and Recovery.
Measured evidence gathered along the way — long-session soaks, retention-mode costs, profiling results and the crash they surfaced — is recorded in Performance & Energy.