diff --git a/.github/workflows/desktop-package.yml b/.github/workflows/desktop-package.yml index 04f2cedde7..ce8929993e 100644 --- a/.github/workflows/desktop-package.yml +++ b/.github/workflows/desktop-package.yml @@ -740,6 +740,7 @@ jobs: --version "${{ needs.prepare.outputs.version }}" \ --tag "${{ needs.prepare.outputs.release_tag }}" \ --repo "${{ github.repository }}" \ + --notes-file "scripts/release-notes/${{ needs.prepare.outputs.version }}.md" \ --out release-updater-assets/latest-v1.json \ --required-platforms "${REQUIRED_UPDATER_PLATFORMS}" diff --git a/.release-please-manifest.json b/.release-please-manifest.json index b870c5e6df..0db4c77104 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.0.2" + ".": "1.0.3" } diff --git a/Cargo.lock b/Cargo.lock index b5a29ee171..42e6a2d971 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5953,7 +5953,7 @@ dependencies = [ [[package]] name = "openbitfun-acp" -version = "1.0.2" +version = "1.0.3" dependencies = [ "agent-client-protocol", "async-trait", @@ -5979,11 +5979,11 @@ dependencies = [ [[package]] name = "openbitfun-agent-content" -version = "1.0.2" +version = "1.0.3" [[package]] name = "openbitfun-agent-runtime" -version = "1.0.2" +version = "1.0.3" dependencies = [ "async-trait", "dashmap", @@ -6008,7 +6008,7 @@ dependencies = [ [[package]] name = "openbitfun-agent-runtime-ipc" -version = "1.0.2" +version = "1.0.3" dependencies = [ "async-trait", "dunce", @@ -6029,7 +6029,7 @@ dependencies = [ [[package]] name = "openbitfun-agent-stream" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anyhow", "async-trait", @@ -6049,7 +6049,7 @@ dependencies = [ [[package]] name = "openbitfun-agent-tools" -version = "1.0.2" +version = "1.0.3" dependencies = [ "async-trait", "indexmap 2.14.0", @@ -6062,14 +6062,14 @@ dependencies = [ [[package]] name = "openbitfun-agent-workflows" -version = "1.0.2" +version = "1.0.3" dependencies = [ "regex", ] [[package]] name = "openbitfun-ai-adapters" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anyhow", "async-trait", @@ -6103,7 +6103,7 @@ dependencies = [ [[package]] name = "openbitfun-app-server" -version = "1.0.2" +version = "1.0.3" dependencies = [ "agent-client-protocol", "anyhow", @@ -6125,7 +6125,7 @@ dependencies = [ [[package]] name = "openbitfun-app-server-client" -version = "1.0.2" +version = "1.0.3" dependencies = [ "agent-client-protocol", "anyhow", @@ -6136,7 +6136,7 @@ dependencies = [ [[package]] name = "openbitfun-app-server-protocol" -version = "1.0.2" +version = "1.0.3" dependencies = [ "agent-client-protocol", "openbitfun-core-types", @@ -6150,7 +6150,7 @@ dependencies = [ [[package]] name = "openbitfun-claude-code-adapter" -version = "1.0.2" +version = "1.0.3" dependencies = [ "dirs 6.0.0", "dunce", @@ -6169,7 +6169,7 @@ dependencies = [ [[package]] name = "openbitfun-cli" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anyhow", "arboard", @@ -6228,7 +6228,7 @@ dependencies = [ [[package]] name = "openbitfun-codex-adapter" -version = "1.0.2" +version = "1.0.3" dependencies = [ "dirs 6.0.0", "dunce", @@ -6245,7 +6245,7 @@ dependencies = [ [[package]] name = "openbitfun-config-contracts" -version = "1.0.2" +version = "1.0.3" dependencies = [ "chrono", "hex", @@ -6260,7 +6260,7 @@ dependencies = [ [[package]] name = "openbitfun-core" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anyhow", "async-trait", @@ -6333,7 +6333,7 @@ dependencies = [ [[package]] name = "openbitfun-core-types" -version = "1.0.2" +version = "1.0.3" dependencies = [ "serde", "serde_json", @@ -6358,7 +6358,7 @@ dependencies = [ [[package]] name = "openbitfun-desktop" -version = "1.0.2" +version = "1.0.3" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -6448,7 +6448,7 @@ dependencies = [ [[package]] name = "openbitfun-dsh-adapter" -version = "1.0.2" +version = "1.0.3" dependencies = [ "async-trait", "dirs 6.0.0", @@ -6469,7 +6469,7 @@ dependencies = [ [[package]] name = "openbitfun-events" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anyhow", "async-trait", @@ -6483,7 +6483,7 @@ dependencies = [ [[package]] name = "openbitfun-external-sources" -version = "1.0.2" +version = "1.0.3" dependencies = [ "futures", "log", @@ -6493,7 +6493,7 @@ dependencies = [ [[package]] name = "openbitfun-legacy-migration" -version = "1.0.2" +version = "1.0.3" dependencies = [ "chrono", "dirs 6.0.0", @@ -6515,7 +6515,7 @@ dependencies = [ [[package]] name = "openbitfun-legacy-migration-adapters" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anyhow", "chrono", @@ -6539,7 +6539,7 @@ dependencies = [ [[package]] name = "openbitfun-miniapp-market-server" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anyhow", "axum", @@ -6551,7 +6551,7 @@ dependencies = [ [[package]] name = "openbitfun-miniapp-market-service" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anyhow", "axum", @@ -6584,7 +6584,7 @@ dependencies = [ [[package]] name = "openbitfun-opencode-adapter" -version = "1.0.2" +version = "1.0.3" dependencies = [ "async-trait", "dirs 6.0.0", @@ -6613,7 +6613,7 @@ dependencies = [ [[package]] name = "openbitfun-opencode-plugin-host" -version = "1.0.2" +version = "1.0.3" dependencies = [ "async-trait", "base64 0.22.1", @@ -6632,7 +6632,7 @@ dependencies = [ [[package]] name = "openbitfun-page-function-runtime" -version = "1.0.2" +version = "1.0.3" dependencies = [ "rquickjs", "serde", @@ -6642,7 +6642,7 @@ dependencies = [ [[package]] name = "openbitfun-pi-adapter" -version = "1.0.2" +version = "1.0.3" dependencies = [ "dirs 6.0.0", "openbitfun-product-domains", @@ -6654,7 +6654,7 @@ dependencies = [ [[package]] name = "openbitfun-plugin-runtime-client" -version = "1.0.2" +version = "1.0.3" dependencies = [ "async-trait", "openbitfun-runtime-ports", @@ -6663,7 +6663,7 @@ dependencies = [ [[package]] name = "openbitfun-product-capabilities" -version = "1.0.2" +version = "1.0.3" dependencies = [ "async-trait", "openbitfun-agent-runtime", @@ -6675,7 +6675,7 @@ dependencies = [ [[package]] name = "openbitfun-product-domains" -version = "1.0.2" +version = "1.0.3" dependencies = [ "dirs 6.0.0", "hex", @@ -6693,7 +6693,7 @@ dependencies = [ [[package]] name = "openbitfun-relay-server" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anyhow", "axum", @@ -6710,7 +6710,7 @@ dependencies = [ [[package]] name = "openbitfun-relay-service" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anyhow", "axum", @@ -6741,7 +6741,7 @@ dependencies = [ [[package]] name = "openbitfun-runtime-ports" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anyhow", "async-trait", @@ -6756,7 +6756,7 @@ dependencies = [ [[package]] name = "openbitfun-runtime-services" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anyhow", "async-trait", @@ -6771,7 +6771,7 @@ dependencies = [ [[package]] name = "openbitfun-sdk-host" -version = "1.0.2" +version = "1.0.3" dependencies = [ "async-trait", "futures-util", @@ -6790,7 +6790,7 @@ dependencies = [ [[package]] name = "openbitfun-sdk-host-app" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anyhow", "async-trait", @@ -6812,7 +6812,7 @@ dependencies = [ [[package]] name = "openbitfun-server" -version = "1.0.2" +version = "1.0.3" dependencies = [ "agent-client-protocol", "anyhow", @@ -6838,7 +6838,7 @@ dependencies = [ [[package]] name = "openbitfun-services-core" -version = "1.0.2" +version = "1.0.3" dependencies = [ "aes-gcm", "anyhow", @@ -6880,7 +6880,7 @@ dependencies = [ [[package]] name = "openbitfun-services-integrations" -version = "1.0.2" +version = "1.0.3" dependencies = [ "aes", "aes-gcm", @@ -6958,7 +6958,7 @@ dependencies = [ [[package]] name = "openbitfun-skin-market-server" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anyhow", "axum", @@ -6970,7 +6970,7 @@ dependencies = [ [[package]] name = "openbitfun-skin-market-service" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anyhow", "axum", @@ -7000,7 +7000,7 @@ dependencies = [ [[package]] name = "openbitfun-static-hook-support" -version = "1.0.2" +version = "1.0.3" dependencies = [ "hex", "openbitfun-product-domains", @@ -7013,7 +7013,7 @@ dependencies = [ [[package]] name = "openbitfun-tool-call-jsonrepair" -version = "1.0.2" +version = "1.0.3" dependencies = [ "serde", "serde_json", @@ -7021,11 +7021,11 @@ dependencies = [ [[package]] name = "openbitfun-tool-packs" -version = "1.0.2" +version = "1.0.3" [[package]] name = "openbitfun-transport" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anyhow", "async-trait", @@ -7039,7 +7039,7 @@ dependencies = [ [[package]] name = "openbitfun-webdriver" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anyhow", "axum", @@ -10922,7 +10922,7 @@ dependencies = [ [[package]] name = "terminal-core" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anyhow", "async-trait", @@ -11369,7 +11369,7 @@ checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" [[package]] name = "tool-runtime" -version = "1.0.2" +version = "1.0.3" dependencies = [ "anydoc", "dashmap", diff --git a/Cargo.toml b/Cargo.toml index ccb3de4e50..95b12765b0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -62,7 +62,7 @@ resolver = "2" # Shared package metadata — single source of truth for version [workspace.package] -version = "1.0.2" # x-release-please-version +version = "1.0.3" # x-release-please-version authors = ["OpenBitFun Team"] edition = "2021" diff --git a/OpenBitFun-Installer/package.json b/OpenBitFun-Installer/package.json index 0f49121031..86215b1088 100644 --- a/OpenBitFun-Installer/package.json +++ b/OpenBitFun-Installer/package.json @@ -1,6 +1,6 @@ { "name": "openbitfun-installer", - "version": "1.0.2", + "version": "1.0.3", "private": true, "type": "module", "description": "OpenBitFun Custom Installer - Modern branded installation experience", diff --git a/OpenBitFun-Installer/src-tauri/Cargo.toml b/OpenBitFun-Installer/src-tauri/Cargo.toml index 3af7052730..e8a5b130c3 100644 --- a/OpenBitFun-Installer/src-tauri/Cargo.toml +++ b/OpenBitFun-Installer/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "openbitfun-installer" -version = "1.0.2" +version = "1.0.3" authors = ["OpenBitFun Team"] edition = "2021" description = "OpenBitFun Custom Installer - Modern branded installation experience" diff --git a/package.json b/package.json index c69928c1bc..639b678d18 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "OpenBitFun", "private": true, - "version": "1.0.2", + "version": "1.0.3", "type": "module", "engines": { "node": ">=22.12.0" diff --git a/scripts/generate-tauri-latest-json.mjs b/scripts/generate-tauri-latest-json.mjs index 6e57696740..3ed6f08a56 100644 --- a/scripts/generate-tauri-latest-json.mjs +++ b/scripts/generate-tauri-latest-json.mjs @@ -11,6 +11,7 @@ const out = requireArg(args, 'out'); const requiredPlatforms = parseListArg(args['required-platforms'] || ''); const manualAssetsDir = args['manual-assets-dir']; const installerAssetsDir = args['installer-assets-dir']; +const notesFile = args['notes-file']; if (!existsSync(assetsDir)) { fail(`Assets directory does not exist: ${assetsDir}`); @@ -52,7 +53,7 @@ if (missingPlatforms.length > 0) { const manifest = { version, - notes: '', + notes: notesFile && existsSync(notesFile) ? readFileSync(notesFile, 'utf8').trim() : '', pub_date: new Date().toISOString(), platforms, }; diff --git a/scripts/release-notes/1.0.3.md b/scripts/release-notes/1.0.3.md new file mode 100644 index 0000000000..da8d96810f --- /dev/null +++ b/scripts/release-notes/1.0.3.md @@ -0,0 +1 @@ +系统优化 AI 对话界面与整体性能,让对话更清晰、交互更流畅。 diff --git a/scripts/tauri-release-manifest.test.mjs b/scripts/tauri-release-manifest.test.mjs index 12649040c0..e941222633 100644 --- a/scripts/tauri-release-manifest.test.mjs +++ b/scripts/tauri-release-manifest.test.mjs @@ -87,6 +87,32 @@ test('1.0.0-beta manifest keeps the updater URL separate from the manual install assert.equal(verified.status, 0, verified.stderr); }); +test('updater manifest carries the version release notes for the update prompt', () => { + const temp = fs.mkdtempSync(path.join(os.tmpdir(), 'openbitfun-release-notes-')); + const updater = path.join(temp, 'updater'); + const out = path.join(temp, 'latest-v1.json'); + const notes = path.join(temp, '1.0.3.md'); + fs.mkdirSync(updater, { recursive: true }); + fs.writeFileSync(path.join(updater, 'OpenBitFun_1.0.3_windows-x86_64-setup.exe'), 'setup'); + fs.writeFileSync(path.join(updater, 'OpenBitFun_1.0.3_windows-x86_64-setup.exe.sig'), 'signature'); + fs.writeFileSync(notes, '系统优化 AI 对话界面与整体性能,让对话更清晰、交互更流畅。\n'); + + const generated = run('scripts/generate-tauri-latest-json.mjs', [ + '--assets-dir', updater, + '--version', '1.0.3', + '--tag', 'v1.0.3', + '--repo', 'GCWing/OpenBitFun', + '--notes-file', notes, + '--out', out, + '--required-platforms', 'windows-x86_64', + ]); + assert.equal(generated.status, 0, generated.stderr); + assert.equal( + JSON.parse(fs.readFileSync(out, 'utf8')).notes, + '系统优化 AI 对话界面与整体性能,让对话更清晰、交互更流畅。', + ); +}); + test('manifest declares the signed macOS .dmg installers next to the .app.tar.gz updater packages', (t) => { const temp = fs.mkdtempSync(path.join(os.tmpdir(), 'openbitfun-latest-dmg-')); t.after(() => fs.rmSync(temp, { recursive: true, force: true })); diff --git a/src/apps/relay-server/Cargo.toml b/src/apps/relay-server/Cargo.toml index 1bc48facc6..f2f75aefa8 100644 --- a/src/apps/relay-server/Cargo.toml +++ b/src/apps/relay-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "openbitfun-relay-server" -version = "1.0.2" # x-release-please-version +version = "1.0.3" # x-release-please-version authors = ["OpenBitFun Team"] edition = "2021" description = "OpenBitFun standalone Remote Connect relay server" diff --git a/src/crates/services/page-function-runtime/Cargo.toml b/src/crates/services/page-function-runtime/Cargo.toml index 94220bb2e2..2ab0b7bab5 100644 --- a/src/crates/services/page-function-runtime/Cargo.toml +++ b/src/crates/services/page-function-runtime/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "openbitfun-page-function-runtime" -version = "1.0.2" +version = "1.0.3" authors = ["OpenBitFun Team"] edition = "2021" description = "Embedded JS Page Function runtime for OpenBitFun Pages (rquickjs)" diff --git a/src/crates/services/relay-service/Cargo.toml b/src/crates/services/relay-service/Cargo.toml index 88e67eed43..79273e4b06 100644 --- a/src/crates/services/relay-service/Cargo.toml +++ b/src/crates/services/relay-service/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "openbitfun-relay-service" -version = "1.0.2" +version = "1.0.3" authors = ["OpenBitFun Team"] edition = "2021" description = "Reusable relay runtime for OpenBitFun Remote Connect" diff --git a/src/miniapp-market-web/package.json b/src/miniapp-market-web/package.json index 4e98432180..d158265baf 100644 --- a/src/miniapp-market-web/package.json +++ b/src/miniapp-market-web/package.json @@ -1,6 +1,6 @@ { "name": "openbitfun-miniapp-market-web", - "version": "1.0.2", + "version": "1.0.3", "private": true, "type": "module", "scripts": { diff --git a/src/mobile-web/package.json b/src/mobile-web/package.json index 5fd56ccdc5..ea7c3271d2 100644 --- a/src/mobile-web/package.json +++ b/src/mobile-web/package.json @@ -1,6 +1,6 @@ { "name": "openbitfun-mobile-web", - "version": "1.0.2", + "version": "1.0.3", "private": true, "type": "module", "scripts": { diff --git a/src/skin-market-web/package.json b/src/skin-market-web/package.json index fc2b0fe9a9..8f30b38d5a 100644 --- a/src/skin-market-web/package.json +++ b/src/skin-market-web/package.json @@ -1,6 +1,6 @@ { "name": "openbitfun-skin-market-web", - "version": "1.0.2", + "version": "1.0.3", "private": true, "type": "module", "scripts": { diff --git a/src/web-ui/package.json b/src/web-ui/package.json index a959edb215..8d0d0c4824 100644 --- a/src/web-ui/package.json +++ b/src/web-ui/package.json @@ -1,6 +1,6 @@ { "name": "@openbitfun/web-ui", - "version": "1.0.2", + "version": "1.0.3", "private": true, "description": "OpenBitFun Web UI - 支持 Desktop 和 Server 两种部署方式", "type": "module",