1.1 KiB
1.1 KiB
ADR: 三端沙箱运行时子模块化
- 状态: accepted
- 日期: 2026-03-27
- 适用范围:
crates/agent-electron-client
背景
Electron 客户端需要统一接入三端沙箱:
- macOS:
sandbox-exec(系统) - Linux:
bubblewrap(系统优先 + 内置兜底) - Windows: Codex sandbox helper(内置二进制)
同时要求开箱即用、可配置启停、并可长期维护运行时产物。
决策
将三端沙箱运行时作为独立子模块维护在 crates/agent-sandbox-runtime,Electron 客户端通过 prepare:sandbox-runtime 将当前平台产物同步到 resources/sandbox-runtime,再通过 extraResources 参与打包。
关键取舍
- 采用预构建产物而非构建时本地编译。
- 子模块 commit pin 控制升级节奏,避免主仓直接漂移。
- 主进程保留统一策略层(
sandbox_policy),后端由策略选择。
影响
- 打包链新增
prepare:sandbox-runtime。 after-sign增加resources/sandbox-runtime签名。- 文档与运维流程新增子模块升级/回滚步骤。