diff --git a/docs/releases/v0.1.22.md b/docs/releases/v0.1.22.md new file mode 100644 index 0000000..abcfc0e --- /dev/null +++ b/docs/releases/v0.1.22.md @@ -0,0 +1,42 @@ +

+ + Codex App Manager + +

+ +> 这一版修复了应用内更新在老版 Windows curl 和 macOS Gatekeeper 文件句柄耗尽时的失败提示与兼容性。 +> This release fixes in-app update compatibility and messaging when older Windows curl builds or macOS Gatekeeper file limits get in the way. + +## 🐛 修复 · Fixes + +- **Windows 下载兼容性**:更新器仍优先使用现代 `--no-progress-meter`,但当系统里的老版 curl 明确不支持这个参数时,会自动用兼容参数重试,避免安装/更新在真正联网前就中断。 + Windows download compatibility: the updater still prefers modern `--no-progress-meter`, but if an older system curl rejects that flag it retries with a compatible silent mode instead of stopping before the download really starts. +- **macOS 安全校验更稳**:Gatekeeper 校验前会尝试提高当前进程的文件句柄软限制,减少大型 `.app` 校验时遇到 `Too many open files` 的概率。 + macOS security checks are more resilient: before running Gatekeeper assessment, the app now tries to raise its process file-descriptor soft limit, reducing `Too many open files` failures for larger `.app` bundles. +- **macOS 失败提示更准确**:如果 Gatekeeper 仍然报文件句柄耗尽,提示会说明是系统校验资源不足且不会替换文件,不再误写成 bundle 本身被拒绝。 + macOS failure messaging is clearer: if Gatekeeper still reports file-descriptor exhaustion, the error now says the assessment could not complete and no files were replaced, instead of incorrectly saying the bundle was rejected. + +## 📦 安装与升级 · Install & Upgrade + +**已经安装?** 打开应用即可收到本次更新——macOS 只下载版本间的增量,校验失败自动回滚。 +**Already installed?** The app offers this update in-app — macOS pulls only the delta, with automatic rollback. + +| 平台 · Platform | 下载 · Download(国内直连 · China-reachable) | +| --- | --- | +| macOS · Apple Silicon | [CodexAppManager_aarch64.dmg](https://codexapp.agentsmirror.com/manager/latest/CodexAppManager_aarch64.dmg) | +| macOS · Intel | [CodexAppManager_x86_64.dmg](https://codexapp.agentsmirror.com/manager/latest/CodexAppManager_x86_64.dmg) | +| Windows · x64 | [CodexAppManager_x64-setup.exe](https://codexapp.agentsmirror.com/manager/latest/CodexAppManager_x64-setup.exe) | + +**Windows 签名状态:** `CodexAppManager_x64-setup.exe` 当前没有 Authenticode 代码签名,首次运行可能出现 SmartScreen 提示;`.sig` / `latest.json` 里的 Tauri updater 签名只用于应用内自更新的字节校验,不代表 Windows 发行者信任。详情见 [Windows signing and verification](https://github.com/Wangnov/Codex-App-Manager/blob/main/docs/windows-signing.md)。 +**Windows signing status:** `CodexAppManager_x64-setup.exe` is not Authenticode-signed yet, so SmartScreen may warn on first run; the Tauri updater signature in `.sig` / `latest.json` verifies in-app update bytes only and is not Windows publisher trust. See [Windows signing and verification](https://github.com/Wangnov/Codex-App-Manager/blob/main/docs/windows-signing.md). + +**核验下载:** 本页 Assets 带有 `SHA256SUMS`;Windows 用 `Get-FileHash .\CodexAppManager_x64-setup.exe -Algorithm SHA256`,macOS 用 `shasum -a 256 CodexAppManager_aarch64.dmg`,再与 `SHA256SUMS` 比对。 +**Verify downloads:** This release includes `SHA256SUMS` in Assets; on Windows run `Get-FileHash .\CodexAppManager_x64-setup.exe -Algorithm SHA256`, and on macOS run `shasum -a 256 CodexAppManager_aarch64.dmg`, then compare with `SHA256SUMS`. + +```bash +# macOS · Homebrew +brew install --cask wangnov/tap/codex-app-manager +``` + +> 镜像直链恒指向**最新**版本;如需本页对应的历史版本,请使用下方 Assets。`.app.tar.gz` / `.sig` / `latest.json` 是自动更新器的工件,手动安装请选 `.dmg` / `.exe`。 +> Mirror permalinks always resolve to the **latest** release — for this exact version use the assets below. `.app.tar.gz` / `.sig` / `latest.json` belong to the auto-updater; pick the `.dmg` / `.exe` for manual installs. diff --git a/package-lock.json b/package-lock.json index 2fec8d7..e988914 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "codex-app-manager", - "version": "0.1.21", + "version": "0.1.22", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "codex-app-manager", - "version": "0.1.21", + "version": "0.1.22", "dependencies": { "@gsap/react": "^2.1.2", "@tauri-apps/api": "2.11.0", diff --git a/package.json b/package.json index 9ebf3f4..a01c19d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "codex-app-manager", - "version": "0.1.21", + "version": "0.1.22", "private": true, "type": "module", "scripts": { diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 9d9d5d2..4d7df73 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -609,7 +609,7 @@ dependencies = [ [[package]] name = "codex-app-manager" -version = "0.1.21" +version = "0.1.22" dependencies = [ "codex-mac-engine", "codex-win-engine", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index ee36e04..0bfcfb3 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -6,7 +6,7 @@ name = "codex-app-manager" # would otherwise ride along in the production app. default-run is kept # defensively to pin `cargo run` to the app should another src/bin/* be added. default-run = "codex-app-manager" -version = "0.1.21" +version = "0.1.22" description = "A cross-platform manager for installing and updating mirrored official Codex desktop app packages." authors = ["Wangnov"] edition = "2021" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 0e34983..e6fdefc 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -2,7 +2,7 @@ "$schema": "https://schema.tauri.app/config/2", "productName": "Codex App Manager", "mainBinaryName": "codex-app-manager", - "version": "0.1.21", + "version": "0.1.22", "identifier": "io.github.wangnov.codexappmanager", "build": { "beforeDevCommand": "npm run dev",