OpenTake 1.0.0-beta.2
Pre-release
Pre-release
OpenTake 1.0.0-beta.2
发布日期:2026-08-08(Asia/Shanghai)
Beta 目标
在 1.0.0-beta.1 的本地剪辑闭环上,交付经过独立代码、安全、可访问性和原生交互复审的
后继 Beta。重点是官方 Codex / ChatGPT 直接登录、时间线手势单事务、跨工程异步身份、导入与
MCP 安全边界,以及 760×480 小窗口下可实际操作的界面。
主要变化
- 设置页和 Agent provider 支持官方 Codex CLI 的 ChatGPT 登录;OpenTake 只调用官方
codex login status/login/logout/exec,不接触或持久化 ChatGPT 凭据。 - 每个 Codex turn 使用独立、工程绑定、带随机 Bearer 的临时 loopback MCP;项目切换、取消、
deadline、持久聊天和 Agent-owned undo 均有确定性隔离测试。 - 素材放置、复制/移动到新轨、深拷贝粘贴为一次 Rust transaction / version / undo;链接组、
caption group、transition endpoint、nested/text/compound 字段均正确保留或重新分配身份。 - 播放头批量分割与画布 Transform 拖拽改为原子命令:链接片段和多选片段整批预检、一次提交、
一次撤销;已有动画轨在当前帧写关键帧,片段外写入会显式拒绝且不产生部分状态。 - 上一帧/下一帧、首尾跳转和键盘 scrub 使用精确帧 seek;修复非零起点音量关键帧坐标、片段
末端关键帧拖放、razor 边界点击以及 Crop/Transform 片段外编辑。 - 全部 IPC 可达时间线帧算术、Ripple/Trim/Split/Settings/脚本路径和浏览器 fallback 在写入与
ID 分配前完成 checked preflight;非法输入原子拒绝。 - 目录/单文件/字节导入采用 retained capability、no-follow/reparse、预算与可取消 probe;URL
导入逐跳拒绝非公网地址并 pin DNS。 - Home / Library / Editor 保活,弹窗 focus trap、24px 有效命中、分栏与轨道高度拖拽、
reduced-motion、Inspector/字幕控件的上下文可访问名称和 760×480 布局已由真实 Chromium 复验。 - Motion Canvas 的锁定依赖已将传递依赖
nanoid从 3.3.16 提升到修复版本 3.3.18;
发布门禁要求零 moderate/high/critical audit finding、许可证清单通过且构建产物可复现。
候选包验收顺序
同一候选包必须严格执行:
- Home / 工程生命周期与恢复。
- 素材库、文件夹、收藏、缩略图、波形、代理与重链接。
- 时间线选择、拖放、裁剪、分割、复制、链接、吸附、撤销/重做与嵌套序列。
- 预览播放、seek、scrub、A/V 同步、Transform/Crop/Mask 与关键帧。
- 文本/字幕、转写、翻译、SRT/VTT 与样式。
- 特效、调色、LUT、HSL、色彩匹配、蒙版、转场、防抖、补帧与智能擦除。
- 音频响度、降噪、声部分离、试听、独立落轨与导出。
- Agent/MCP、官方 Codex / ChatGPT 登录与一次真实可撤销编辑;无凭据云功能 fail closed。
- Motion Canvas、原生 Chromium fallback、保存重开与最终导出。
- 数字人/音色克隆的无凭据拒绝、同意/成本、取消/重试、试听与撤销边界。
- H.264/H.265/ProRes、字幕和交换格式导出,完全退出后重启并重开工程。
代码测试不能替代 GUI 观察;GUI 观察也不能替代媒体 probe、工程重开和最终输出解析。
外部边界
- 未获得 provider key 和明确费用授权时,不执行真实付费生成、翻译、数字人或音色克隆请求;
只验证同意/费用门禁和无凭据拒绝。 - 本地 macOS 包为 ad-hoc Beta,不宣称 Developer ID 签名或 Apple 公证。
- 原生 Windows Job Object、reparse-point、安装和 WebView 交互必须由 exact-SHA Windows CI / 实机
验证;macOS 结果不能代替。 - 固定端口、无认证的外部 MCP 在本 Beta 关闭;Claude、Cursor 等客户端等待安全配对流程。
GitHub 自动发布流程
.github/workflows/release.yml 只接受 v* tag push;人工
workflow_dispatch 只能输入一个已存在的同名 tag,用于失败运行的重试。流水线不创建、
不移动 tag。发布前必须在流水线外将 v1.0.0-beta.2 标记到远端 main
的当前 HEAD,再 push 该 tag。
每次运行依次 fail closed 执行:
- 将
v<semver>tag 解析为不可变 source SHA,核对 tag 目标、远端main
当前 HEAD、Cargo/Tauri/Web 版本和本文档;Beta 2 必须是 prerelease。 - Ubuntu 运行 Motion Canvas 锁定安装、audit、license、test 和可复现构建,
Windows/release 工作流合约测试、sidecar provisioner 测试、Rust fmt/clippy/
串行 workspace test/playback transport/minimal clippy,以及 Web 锁定安装、测试和构建。 macos-14ARM64 对 exact SHA 使用 checksum-pinned FFmpeg sidecar 构建
Tauri.app+.dmg,对 app 和 sidecar 执行 strict codesign、DMG verify/
挂载后复验与媒体 smoke;产物仅为 ad-hoc 签名。windows-2022x64 对 exact SHA 构建唯一 MSI 和 NSIS,静默安装
NSIS,对安装后程序做启动 smoke,并在无 PATH 依赖的安装目录边界执行
sidecar probe/decode/encode smoke。- 两个平台 receipt 都绑定 source SHA、文件字节数与 SHA-256;
SHA256SUMS精确覆盖 DMG、MSI、NSIS 和两个 receipt。 - publish job 在创建/刷新 draft 前、以及公开前,都重新用
git ls-remote
解析远端 lightweight/annotated tag(annotated 使用 peeled^{}commit),
并要求结果与 source SHA 完全一致。 - publish job 只在所有门禁成功后创建 draft prerelease,上传严格计数的六个
资产(三个安装包、两个 receipt、SHA256SUMS)。已有 Release 由
GitHub GraphQLrelease(tagName:)定位,状态解析器在任何 asset DELETE 前拒绝
published 分支;只有已验证的同 tag draft 才能刷新。上传后先用 GraphQL
核对 tag/commit/assets,再公开为latest=falseprerelease,最后下载回读并复验
资产列表和 checksum。
workflow 顶层权限是 contents: read,只有 publish job 提升为
contents: write;所有外部 GitHub Actions 都固定到已核对的 40-hex commit SHA。
同 tag 已存在的 draft 允许失败重跑:流水线会删除 draft 中的旧资产并以本次
exact-SHA 产物 --clobber 替换。同 tag 一旦已公开发布,重跑会直接失败,不允许覆写。
发布说明由工作流追加 source SHA、Actions run 链接和签名限制;不使用生产
secret,不声称 Developer ID/公证、Windows Authenticode 或 Windows 人工 GUI 验收。
回滚
- 使用独立 prerelease 标签
v1.0.0-beta.2,不移动v1.0.0-beta.1或正式版标签。 - 发布资产附 SHA-256;回滚前先复制
.opentake工程包,避免旧版本保存时忽略新增字段。 - 如 Beta 2 已公开后发现回归,用户端回退到
v1.0.0-beta.1已校验资产;
维护者保留 Beta 2 tag 和资产作为审计记录,不移动/复用该 tag。 - 修复通过全部门禁后应使用更高的新 prerelease 版本和新 tag 发布;已公开的
v1.0.0-beta.2不能通过 dispatch 重写。
Automated release provenance
- Source commit:
4473be337eba8d65f256360d7bc0fc59f648a746 - GitHub Actions run: 31299563092/1
- Signing limits: the macOS asset uses ad-hoc signing only; it is not Developer ID signed or notarized. Windows installers are not claimed to be Authenticode-signed.