From 46c501772dbd31320852b8ef5675c552d6ec708b Mon Sep 17 00:00:00 2001 From: Bojie Li Date: Mon, 7 Sep 2026 13:15:31 +0800 Subject: [PATCH] Release 0.6.3 Every macOS release before this one crashed the first time you spoke, on any machine that did not build it. The app carries its own speech detector but looked for it where the build machine keeps it, so it worked for anyone who compiled it and died for anyone who downloaded it. Anyone on 0.6.0, 0.6.1 or 0.6.2 should take this one. Co-Authored-By: Claude Opus 5 (1M context) --- CHANGELOG.md | 26 +++++++++++++++++++++ Resources/Info.plist | 4 ++-- Sources/dnt/Dnt.swift | 2 +- VERSION | 2 +- android/app/build.gradle.kts | 4 ++-- ios/project.yml | 4 ++-- windows/Directory.Build.props | 2 +- windows/DoNotType.App/app.manifest | 2 +- windows/DoNotType.Cli/InspectionCommands.cs | 2 +- windows/DoNotType.Cli/Program.cs | 2 +- 10 files changed, 38 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b47b98..2f2339f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,32 @@ measurement that justified them; see [docs/EVALUATION.md](docs/EVALUATION.md). Format loosely follows [Keep a Changelog](https://keepachangelog.com/). Release dates use the repository's local calendar date. +## 0.6.3 - 2026-09-07 + +### Fixed + +- **A downloaded app could not find its own speech detector, and died the first time you spoke.** + Every macOS release before this one carries the fault. The Silero model ships inside the bundle, + but the code looked for it where SwiftPM's generated accessor points — the `.app` root, where a + signed bundle may not keep resources — and then at an absolute path inside whatever build tree + produced the binary. That fallback exists on the machine that compiled it and nowhere else, so + the app worked for anyone who built it and crashed on `fatalError` for anyone who downloaded it, + on the first recording and on every `dnt transcribe`. + + Nothing could see it, because the machine that builds is the machine that tests, and the app + launches perfectly well right up until it needs the model. It was found by installing 0.6.2 + through Homebrew and transcribing one file with the `dnt` that ships in the bundle. + + The lookup now tries the layouts this project actually ships and checks for the resource rather + than for a bundle that merely loads. It returns nothing instead of trapping, so a build genuinely + missing the model reports that instead of killing the process. + +### Added + +- **`dnt doctor` reports the local speech detector**, beside the opus encoder. Whether it resolves + is a property of how a binary was packaged rather than of the code, so there needs to be + something you can ask without a network round trip. + ## 0.6.2 - 2026-09-07 ### Fixed diff --git a/Resources/Info.plist b/Resources/Info.plist index 19e3c77..0e98e9a 100644 --- a/Resources/Info.plist +++ b/Resources/Info.plist @@ -15,9 +15,9 @@ CFBundlePackageType APPL CFBundleShortVersionString - 0.6.2 + 0.6.3 CFBundleVersion - 602 + 603 LSMinimumSystemVersion 14.0 LSUIElement diff --git a/Sources/dnt/Dnt.swift b/Sources/dnt/Dnt.swift index d3dfd91..b43b73b 100644 --- a/Sources/dnt/Dnt.swift +++ b/Sources/dnt/Dnt.swift @@ -38,7 +38,7 @@ struct Dnt: AsyncParsableCommand { dnt doctor --probe dnt logs --follow --level debug """, - version: "dnt 0.6.2 (c29cbda, 2026-09-06)", + version: "dnt 0.6.3 (d2db0ee, 2026-09-07)", subcommands: [ Transcribe.self, Providers.self, Doctor.self, HistoryCommand.self, LogsCommand.self, PromptCommand.self, diff --git a/VERSION b/VERSION index b616048..844f6a9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.6.2 +0.6.3 diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 9133d22..1af9ac2 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -32,8 +32,8 @@ android { // coroutine APIs used here available without desugaring. minSdk = 26 targetSdk = 35 - versionCode = 602 - versionName = "0.6.2" + versionCode = 603 + versionName = "0.6.3" // The value is a Java literal, so the quotes are part of it. buildConfigField("String", "BUILD_COMMIT", "\"$buildCommit\"") buildConfigField("String", "BUILD_TIMESTAMP", "\"$buildTimestamp\"") diff --git a/ios/project.yml b/ios/project.yml index 43c4fc2..050ad1d 100644 --- a/ios/project.yml +++ b/ios/project.yml @@ -15,8 +15,8 @@ settings: SWIFT_VERSION: "6.0" DEVELOPMENT_TEAM: 5BR9M56H9W CODE_SIGN_STYLE: Automatic - MARKETING_VERSION: "0.6.2" - CURRENT_PROJECT_VERSION: "602" + MARKETING_VERSION: "0.6.3" + CURRENT_PROJECT_VERSION: "603" SWIFT_STRICT_CONCURRENCY: complete packages: diff --git a/windows/Directory.Build.props b/windows/Directory.Build.props index fd26a62..11be8bd 100644 --- a/windows/Directory.Build.props +++ b/windows/Directory.Build.props @@ -10,7 +10,7 @@ true - 0.6.2 + 0.6.3