OpenTake 1.0.0-beta.4
Pre-releaseOpenTake 1.0.0-beta.4
发布日期:2026-08-10(Asia/Shanghai)
Beta 目标
在 Beta 3 已发布的播放候选之上,冻结可验证的编辑、导出与更新体验:时间线播放必须稳定地
按帧推进和暂停,源素材预览不能受 WebView 编解码差异影响,转场与工程重开保持一致;更新候选
则必须从固定仓库、精确 tag 和签名资产中发现、校验并安装。
主要变化
- 播放时钟与原生会话统一以整数帧推进;冷启动、暂停、结尾重播和连续播放/暂停不再出现延迟
停止、回抽或继续推进。Space 在素材、预览、Inspector、Timeline 与 Agent 等非文本区域统一
触发播放/暂停,而输入与可编辑文本仍保留普通空格输入。 - 单素材视频优先使用 Rust/FFmpeg 原生流式源预览,并将当前会话、暂停 seek、切换和终止状态
绑定到同一控制面;WebView 只在原生能力不可用时回退。HEVC Main 与 Main 10/10-bit 素材
因而不依赖 WebKit 的 profile 支持,不把黑屏、绿色底边或解码异常伪装为成功。 - 相邻片段的交叉溶解会跨切点正确播放,保存、完全退出并重开工程后仍保留在
project.json。
导出对话框随编码格式给出一致的容器提示:H.264 为.mp4,ProRes 为.mov;空时间线、
字幕/交换格式与实际编码路径继续受 Web/Rust 集成合同覆盖。 - GitHub prerelease 更新路径固定在
appergb/OpenTake:只接受 HTTPS、严格递增的 SemVer、
精确 tag manifest、Tauri/Minisign 包签名与签名 attestation;拒绝其他仓库、draft、HTTP、
同版本、降级和带 build metadata 的候选。Windows MSI 与 NSIS 使用各自的更新入口,避免跨
安装器升级。 - 检查更新显式支持系统代理;匿名 GitHub REST 被 403/429 限流时,只回退固定的官方
releases.atomfeed。所有响应仍有大小、结构和 URL allowlist 限制;本地 tokenized manifest
verifier 强制绕过代理。 - Motion 路径只在 headless Chromium 与 FFmpeg 都可用时发布,保持受限 HTML/模板渲染、取消和
原子导入边界。Windowsort-tract链升级到tract-* 0.22.3,移除
RUSTSEC-2026-0217所涉旧依赖。
GitHub 自动发布流程
.github/workflows/release.yml 的正常 tag push 只接受 v1.0.0-beta.4 这类 v<semver> tag;
此时 product source SHA 与 release tooling SHA 必须相同,并等于当前远端 main HEAD。若这个
tag push 已通过 source、质量与 macOS 门禁,却仅在 Windows 的 checksum-pinned FFmpeg sidecar
provision 步骤失败,则该 workflow_dispatch 恢复链以 root failed_run_id(固定为
failed_run_id=31412976593)绑定原 tag-push run。历史恢复 run 31427093503 仅在 Windows
PowerShell → .cmd → Tauri config argv 边界失败;其后的直接前驱 run 31441693191
已通过 validate、质量、macOS 与 Windows 门禁,只在 publish 的 Create or refresh draft prerelease
步骤失败。下一次恢复必须同时显式提供 failed_run_id=31412976593 与
failed_recovery_run_id=31441693191,缺少或替换任一 ID 都 fail closed。product source 仍是原不可变
tag SHA 2c4efdff9d2587c90cbcac0919f9d1d333d67d6a;直接前驱的 release tooling 固定为
924bc1102a9343e14c3beea2a3622b5d92ebff13,当前 release tooling 则固定为当前远端 main 的
github.workflow_sha,并从该 Git commit 的 blob 精确提取,绝不从 raw HTTP URL 下载执行。
两条路径都不创建、移动或删除 tag。Cargo、Tauri 与 Web 版本均为 1.0.0-beta.4,Windows WiX
安装器版本为 1.0.0.4,并由独立发布合约 fail closed 校验。
- validate job 解析 immutable source SHA;恢复路径先逐项核对 root run 的五个 job 与 Windows
sidecar 失败 step,再独立核对直接前驱 run 的五个 exact job(包括成功的 validate job)、
publish 第 15 步权限失败以及 macOS/Windows 两个 artifact 的 ID、大小、digest、未过期状态与
run/repository/source 绑定。两个 GitHub compare 响应必须分别证明 source →924bc110…与
924bc110…→ 当前远端main,不接受互换、跳段或任意失败 run。直接前驱的 validate 成功
也是它已核验上一恢复链的证据。随后验证版本、WiX、本文档、prerelease 语义和洁净 checkout;质量门禁执行依赖
锁定安装、audit、格式、clippy、workspace/Web 测试及 workflow/tooling commit 合同。 - macOS ARM64 和 Windows x64 都要求非空
TAURI_SIGNING_PRIVATE_KEY与
TAURI_SIGNING_PRIVATE_KEY_PASSWORD。构建产生平台安装包、Tauri updater package、每个
companion signature 与签名 attestation;macOS app 仍是 ad-hoc 签名,Windows 安装器仍不是
Authenticode 签名。Windows release 与 full-product CI 都在RUNNER_TEMP写入 UTF-8 无 BOM、
非链接 regular-file Tauri config,并把绝对路径作为单独--configargv;release 精确开启 updater
artifacts,CI 精确关闭它以避免依赖发布签名 secrets。 - publish 从 exact SHA 的配置读取内置 updater 公钥,用独立 Minisign 工具验证 package 与
attestation;manifest 将版本、tag、source SHA、平台、资产名称、大小和 SHA-256 绑定。只有
draft 的十七项精确资产上传、下载回读、名称/大小、签名和SHA256SUMS全部相符后才公开。
前驱的 403 不是contents: write缺失:当target_commitish指向与默认分支之间修改过
workflow 文件的旧提交时,GitHub 要求 ActionsGITHUB_TOKEN无法获得的 Workflows write 权限。
因 tag 已存在且经独立验证,create/refresh 都不再传--target;RESTtarget_commitish只做非空
schema 校验,不作为 source oracle。发布前后的 remote tag peel 与 GraphQLtagCommit.oid才必须始终
精确等于 source SHA。恢复发布的公开 release notes 从精确 release tooling commit 读取,并同时记录
root/direct-predecessor run IDs、source、tooling、notes commit 与当前 Actions run。
Updater 私钥不写入 checkout、receipt、manifest、日志或发布 artifact;缺少任一 secret 时流程
失败,绝不退化为未签名 updater。
验收与外部边界
- 自动化合同覆盖 release、attestation、manifest、Windows workflow、严格 YAML 与 actionlint;
GUI 验收记录见 最终模块验收。 - 真实 N→N+1 安装仍要求仓库同时配置发布签名 secrets 和一个更高、由同一 updater key 签名的
Release;没有满足这些前置条件时,不把发现/校验测试表述为安装 E2E。 - Windows WebView2、MSI/NSIS 原地升级和原生音频设备仍由 exact-SHA Windows CI/实机验证;
macOS 结果不能替代 Windows 验证。
回滚
- Beta 3 的
v1.0.0-beta.3tag 与发布资产保持不可变,作为回滚候选;不得移动或重用历史 tag。 - 若 Beta 4 公开后发现回归,保留 Beta 4 审计记录,回退到上一份已验证发布;修复后仅以更高的新
prerelease tag 重新通过完整门禁。
Automated release provenance
- Source commit:
2c4efdff9d2587c90cbcac0919f9d1d333d67d6a - Release tooling commit:
344a92f6ba570657888756c78b6022edc11ec32b - Release notes commit:
344a92f6ba570657888756c78b6022edc11ec32b - Recovery chain: root run 31412976593; direct predecessor run 31441693191
- GitHub Actions run: 31454364312/1
- Updater trust: updater packages are signed with the dedicated Tauri updater key; the private key is supplied only from GitHub Actions secrets and is never published.
- Platform signing limits: the macOS app uses ad-hoc signing only; it is not Developer ID signed or notarized. Windows installers are not Authenticode-signed.