From 739e60f6084ad7a598fb0f497400ce2a21d06052 Mon Sep 17 00:00:00 2001 From: Kieran Zhang Date: Tue, 23 Jun 2026 21:11:18 +0800 Subject: [PATCH] chore: prepare v0.1.7 release --- docs/releases/v0.1.7.md | 43 +++++++++++++++++++++++++++++++++++++++++ docs/releasing.md | 18 ++++++++--------- project.yml | 8 ++++---- 3 files changed, 56 insertions(+), 13 deletions(-) create mode 100644 docs/releases/v0.1.7.md diff --git a/docs/releases/v0.1.7.md b/docs/releases/v0.1.7.md new file mode 100644 index 0000000..459fbc3 --- /dev/null +++ b/docs/releases/v0.1.7.md @@ -0,0 +1,43 @@ +# Voily 0.1.7 + +## 中文 + +这是一次面向问题排查和反馈体验的版本。更新后,用户可以在设置里直接测试麦克风是否有输入,也可以生成一份已脱敏的诊断报告,方便把系统状态和最近事件一并反馈给开发者。 + +### 新增和改进 + +- 设置页新增麦克风音量测试。它使用独立的测试对象,不进入真实听写或 ASR 流程,用户说话时可以直接看到当前输入音量是否被系统收录。 +- 关于页新增诊断反馈入口。Voily 会生成一份只读的诊断预览,用户可以复制为 Markdown,或直接打开 GitHub Issue 创建页面。 +- 诊断报告会包含版本、系统、权限、关键设置、麦克风设备摘要和最近诊断事件,并默认排除音频内容、转写文本、剪贴板内容、API key 和设备 UID。 +- 匿名诊断数据现在提供显式开关,默认关闭。关闭时不会初始化在线诊断 SDK;开启后也只发送经过白名单过滤的结构化状态字段。 + +### 修复 + +- 反馈报告生成时避免在主线程执行较慢的设备枚举、系统信息读取和文件写入,减少点击“发送反馈”时界面卡住的风险。 +- 麦克风测试的音频探针不再和真实录音业务对象复用,减少排查输入问题时对正常听写流程的干扰。 + +### 兼容性 + +- 适用于 macOS 14.0 及以上版本。 +- 首次使用仍需要授予麦克风权限和辅助功能权限。 + +## English + +This release improves troubleshooting and feedback collection. Users can now test microphone input directly in Settings and generate a redacted diagnostic report that helps share system state and recent diagnostic events with maintainers. + +### New and Improved + +- Added a microphone level test in Settings. It uses a separate test object instead of the real dictation or ASR pipeline, so users can see whether spoken audio is being captured by the system. +- Added a diagnostic feedback entry point on the About page. Voily now shows a read-only diagnostic preview, lets users copy it as Markdown, and can open a prefilled GitHub Issue. +- Diagnostic reports include version, system, permission, key setting, microphone device summary, and recent diagnostic event information while excluding audio, transcript text, clipboard contents, API keys, and device UIDs by default. +- Anonymous diagnostics now have an explicit opt-in setting and remain disabled by default. When disabled, the online diagnostics SDK is not initialized; when enabled, only whitelisted structured fields are sent. + +### Fixes + +- Feedback report preparation no longer runs slower device enumeration, system information reads, or file writing on the main thread, reducing the chance of UI stalls after clicking “Send Feedback”. +- Microphone testing now stays separate from the real recording business objects, reducing interference while diagnosing input issues. + +### Compatibility + +- Requires macOS 14.0 or later. +- First-time use still requires Microphone and Accessibility permissions. diff --git a/docs/releasing.md b/docs/releasing.md index 0dc0063..32ddb01 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -124,11 +124,11 @@ Voily release versions use semantic versioning in the `MAJOR.MINOR.PATCH` form. - The automated release workflow also rejects tags that do not match `CFBundleShortVersionString`. - Each public release must include `docs/releases/vMAJOR.MINOR.PATCH.md`. The workflow uses that file for both the GitHub Release body and the Sparkle update notes embedded into `appcast.xml`. -The current release version is `0.1.6`, so the matching tag is: +The current release version is `0.1.7`, so the matching tag is: ```bash -git tag v0.1.6 -git push origin v0.1.6 +git tag v0.1.7 +git push origin v0.1.7 ``` Pre-release identifiers such as `v0.1.0-rc.1` are not accepted by the public release workflow yet, because the macOS app version stored in `CFBundleShortVersionString` is kept to the stable `MAJOR.MINOR.PATCH` form. @@ -200,9 +200,9 @@ If Gatekeeper rejects the app at this stage, that usually means the build is sti The recommended artifact to notarize is the dmg: ```bash -ARTIFACT=build/release/artifacts/Voily-0.1.6.dmg make notarize -ARTIFACT=build/release/artifacts/Voily-0.1.6.dmg make staple -ARTIFACT=build/release/artifacts/Voily-0.1.6.dmg make verify-release +ARTIFACT=build/release/artifacts/Voily-0.1.7.dmg make notarize +ARTIFACT=build/release/artifacts/Voily-0.1.7.dmg make staple +ARTIFACT=build/release/artifacts/Voily-0.1.7.dmg make verify-release ``` Notes: @@ -223,8 +223,8 @@ The preferred publishing path is the GitHub Actions release workflow. It runs on After the workflow is present on `main`, publish a release by creating and pushing the matching semantic version tag: ```bash -git tag v0.1.6 -git push origin v0.1.6 +git tag v0.1.7 +git push origin v0.1.7 ``` The workflow will: @@ -263,7 +263,7 @@ When enabling appcast publishing on the release machine, generate the appcast fr ```bash unzip -q Vendor/Sparkle/Sparkle-for-Swift-Package-Manager.zip -d /tmp/voily-sparkle -RELEASE_TAG="v0.1.6" +RELEASE_TAG="v0.1.7" security find-generic-password \ -a ed25519 \ -s dev.voily.sparkle.ed25519-private-key \ diff --git a/project.yml b/project.yml index 204f4bb..87b2780 100644 --- a/project.yml +++ b/project.yml @@ -122,8 +122,8 @@ targets: base: PRODUCT_NAME: Voily PRODUCT_BUNDLE_IDENTIFIER: dev.kieranzhang.voily - MARKETING_VERSION: "0.1.6" - CURRENT_PROJECT_VERSION: "6" + MARKETING_VERSION: "0.1.7" + CURRENT_PROJECT_VERSION: "7" VOILY_SPARKLE_PUBLIC_ED_KEY: "t+3T7R1L+52pqpiHjRjtd1QksVS6cjKlh5YK+pDhuPA=" DEVELOPMENT_TEAM: 9KZ32XLVQW CODE_SIGN_STYLE: Automatic @@ -160,8 +160,8 @@ targets: base: PRODUCT_NAME: VoilyTests PRODUCT_BUNDLE_IDENTIFIER: dev.kieranzhang.voilyTests - MARKETING_VERSION: "0.1.6" - CURRENT_PROJECT_VERSION: "6" + MARKETING_VERSION: "0.1.7" + CURRENT_PROJECT_VERSION: "7" GENERATE_INFOPLIST_FILE: YES CODE_SIGNING_ALLOWED: YES CODE_SIGNING_REQUIRED: YES