diff --git a/docs/releases/2.0.0-preparation-20261016.md b/docs/releases/2.0.0-preparation-20261016.md new file mode 100644 index 000000000..ad3c10bdc --- /dev/null +++ b/docs/releases/2.0.0-preparation-20261016.md @@ -0,0 +1,21 @@ +# 2.0.0 正式版准备(2026-10-16) + +用户授权顺序:全面 Review → PR/CI/合并 → 先公开 beta6 → 再公开日期构建号的 2.0.0;正式版发布前需确认当前电脑修复版正常。 + +## 已确认 + +- PR [#1197](https://github.com/Open-Less/openless/pull/1197) 已合并至 beta,保留已验证的精确提交 `b8f6a65ae96ce40e9f10c0b8f8f8c6a3245cdca4`。 +- 此提交完整 CI [38780356722](https://github.com/Open-Less/openless/actions/runs/38780356722) 七项全部成功:macOS、Windows、macOS Rust 1.88、Android(含 Keystore 模拟器)、Linux Core/egui/deb/rpm、Chromium/WebKit UI 和变更判定。 +- 合并采用管理员 fast-forward,原整合分支已有的 merge commit 保留;服务器记录了线性历史/末次推送者审批规则的管理员 bypass。未修改仓库保护配置,未跳过失败的 CI。 +- 本机已安装修复版经用户试用确认无明显问题;安装主程序 SHA-256 `7f0918b3012d273fb1ec61b3a041089c85acf9fcb04f73e5ce933bbf6076bba4`。真实录音退出、转写与 `Inserted` 日志、持续运行和签名已核对。App 未在本轮 Review 中替换。 +- 本机浏览器一次全量执行 100/100 通过,Linux 八张当前 UI 参考经实际 Ubuntu 产物审查并通过云端 CI。 +- `v2.0.0-Beta.6-tauri` 已指向上述绿色提交,两个资产流水线先构建共享 draft;尚不能将 tag 存在当作已公开 Release。 +- 官方 Homebrew tap 和本机 zsh 更新提示已经配置,`brew update` 成功;旧 1.3.18 cask 未覆盖当前修复版。 + +## 此准备 PR + +仅将五处 Tauri 版本源(含 package-lock 两处)和版本契约同步为 `2.0.0+build.20261016`,不修改已经验收的语音/UI 生产逻辑,不更换用户当前 App。独立的 Core/Linux workspace Cargo.lock 不属于版本同步范围。 + +此 PR 自身也以云端 CI 作为合并门禁。beta6 的两条资产流水线成功并核验/公开后,才把正式版候选经维护者的 `beta → main` PR 合并;确认最终提交 CI 后,管理员创建 `v2.0.0-tauri`,构建/核验正式版资产并公开为 latest。Stable 发布事件自动同步 Homebrew 版本、架构校验和和日期文件名,之后再执行本机 Homebrew 接管/升级。 + +Linux 安装包仍需独立产品验收,不随本次 Tauri Release 附加。已通过的构建/浏览器/本机验收不冒充未执行的 Windows 或其他设备完整实测。 diff --git a/openless-all/app/package-lock.json b/openless-all/app/package-lock.json index b9e9edbf3..1d969a269 100644 --- a/openless-all/app/package-lock.json +++ b/openless-all/app/package-lock.json @@ -1,12 +1,12 @@ { "name": "openless-app", - "version": "2.0.0-Beta.6+build.20261015", + "version": "2.0.0+build.20261016", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "openless-app", - "version": "2.0.0-Beta.6+build.20261015", + "version": "2.0.0+build.20261016", "dependencies": { "@base-ui/react": "^1.6.0", "@shadcn/react": "^0.2.1", diff --git a/openless-all/app/package.json b/openless-all/app/package.json index b3767ee63..cb1623c48 100644 --- a/openless-all/app/package.json +++ b/openless-all/app/package.json @@ -1,7 +1,7 @@ { "name": "openless-app", "private": true, - "version": "2.0.0-Beta.6+build.20261015", + "version": "2.0.0+build.20261016", "type": "module", "scripts": { "pretest": "npm run build", diff --git a/openless-all/app/scripts/desktop-version-contract.test.mjs b/openless-all/app/scripts/desktop-version-contract.test.mjs index 4a26150b0..cfca0fd30 100644 --- a/openless-all/app/scripts/desktop-version-contract.test.mjs +++ b/openless-all/app/scripts/desktop-version-contract.test.mjs @@ -3,7 +3,7 @@ import { readFile } from 'node:fs/promises'; const app = new URL('../', import.meta.url); const read = async (path) => (await readFile(new URL(path, app), 'utf8')).replace(/\r\n/g, '\n'); -const version = '2.0.0-Beta.6+build.20261015'; +const version = '2.0.0+build.20261016'; const pkg = JSON.parse(await read('package.json')); const lock = JSON.parse(await read('package-lock.json')); const tauri = JSON.parse(await read('src-tauri/tauri.conf.json')); diff --git a/openless-all/app/src-tauri/Cargo.lock b/openless-all/app/src-tauri/Cargo.lock index cda631951..e536a3d66 100644 --- a/openless-all/app/src-tauri/Cargo.lock +++ b/openless-all/app/src-tauri/Cargo.lock @@ -3867,7 +3867,7 @@ dependencies = [ [[package]] name = "openless" -version = "2.0.0-Beta.6+build.20261015" +version = "2.0.0+build.20261016" dependencies = [ "anyhow", "arboard", diff --git a/openless-all/app/src-tauri/Cargo.toml b/openless-all/app/src-tauri/Cargo.toml index 1399fd0fe..d00dc89e7 100644 --- a/openless-all/app/src-tauri/Cargo.toml +++ b/openless-all/app/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "openless" -version = "2.0.0-Beta.6+build.20261015" +version = "2.0.0+build.20261016" license = "AGPL-3.0-only" description = "OpenLess — local voice input that types where your cursor is" authors = ["OpenLess"] diff --git a/openless-all/app/src-tauri/tauri.conf.json b/openless-all/app/src-tauri/tauri.conf.json index 34205ae7a..1c50301db 100644 --- a/openless-all/app/src-tauri/tauri.conf.json +++ b/openless-all/app/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "OpenLess", - "version": "2.0.0-Beta.6+build.20261015", + "version": "2.0.0+build.20261016", "identifier": "com.openless.app", "build": { "beforeDevCommand": "npm run dev",