fix(orc): support trusted release shell workflow
This commit is contained in:
+19
-7
@@ -98,10 +98,13 @@ JSON-compatible YAML,并由隔离的 Python 标准库解析。它固定包含
|
||||
`--global-level`,阶段
|
||||
档位用 `--stage-level`;项目根与目标 worktree 必须使用规范绝对路径。Codex 默认复用
|
||||
`codex-login`,Cursor 默认复用 `cursor-login`;只有明确使用环境凭据时才分别选择
|
||||
`openai`、`azure-openai` 或 `cursor-api-key`。远端认证默认 `none`;只有目标 provider
|
||||
与 transport 已确认时,才选择一个精确的 `github-token`、`gitlab-token`、
|
||||
`gitea-token`、`forgejo-token`、`ssh-agent` 或 `deb-token`。不得把多个 provider 凭据
|
||||
一起交给 worker。resolver 不存在静默 fallback:
|
||||
`openai`、`azure-openai` 或 `cursor-api-key`。远端认证默认 `none`。release worker 作为
|
||||
受信任发布角色,直接调用当前 shell 中已认证的 `git` 与 Forge CLI;Gitea/Forgejo 由
|
||||
`$manage-release` 在目标 worktree 中运行 `tea`,resolver 不读取 tea 配置、不注入
|
||||
credential helper,也不把 tea token 转成环境变量。只有明确改用环境 token 或 SSH
|
||||
agent 时,才选择一个精确的 `github-token`、`gitlab-token`、`gitea-token`、
|
||||
`forgejo-token`、`ssh-agent` 或 `deb-token`,不得同时交给 worker 多组环境凭据。resolver
|
||||
不存在静默 fallback:
|
||||
|
||||
```bash
|
||||
/usr/bin/python3 -I -S <orc-skill-dir>/scripts/resolve_profile.py resolve \
|
||||
@@ -145,6 +148,13 @@ JSON-compatible YAML,并由隔离的 Python 标准库解析。它固定包含
|
||||
Docker 或部署;这些动作由 ORC 的独立阶段负责。
|
||||
- ORC v2 的 `permissionMode` 固定为 `workspace-write`,因为受监督 worker 需要写入
|
||||
Orca 运行时目录才能发送 lifecycle 消息。只读任务仍由 prompt 限制不得改文件。
|
||||
- release 阶段必须绑定 `origin` 唯一且规范化后完全一致的 fetch/push URL,并把 remote
|
||||
identity 写入 fingerprint;多个 URL、独立 `pushurl` 或不支持的 remote 直接停止。
|
||||
- Codex release worker 固定使用 `on-request` 与 `auto_review`,开启
|
||||
`sandbox_workspace_write.network_access=true`,并用 network proxy 只允许绑定的 remote
|
||||
与确定性的 Forge API host。GitHub 固定追加 `api.github.com` 和 `uploads.github.com`;
|
||||
Gitea、Forgejo 与 GitLab 默认只使用 remote host。其它本地阶段默认禁网;不得改用
|
||||
`danger-full-access`。Cursor 继续使用自身的 `--auto-review --sandbox enabled`。
|
||||
- 安全启动适配器只支持 `codex` 和 `cursor-agent`。Codex 使用结构化 sandbox 与 approval
|
||||
参数;Cursor 使用 `--auto-review --sandbox enabled --workspace <path>`。不接受
|
||||
full-access、bypass、`--force`、`--yolo` 或关闭 sandbox。
|
||||
@@ -154,9 +164,11 @@ JSON-compatible YAML,并由隔离的 Python 标准库解析。它固定包含
|
||||
Codex 则显式传递 `model_reasoning_effort`。
|
||||
- resolver 只读取 skill 内有大小上限的普通共享配置文件,拒绝 symlink/special file;
|
||||
启动计划绑定配置快照、root-owned 隔离 Python、可信绝对 Agent/Orca executable、Git
|
||||
worktree identity、精确认证选择和固定 argv。实际启动会重新校验 fingerprint,并只注入
|
||||
所选模型认证与单一目标认证的环境变量;不得改写 resolver 返回的 worker argv,也不得
|
||||
把终端创建 argv 的绝对 Orca 路径换成项目 `PATH` 解析。
|
||||
worktree identity、release remote identity、精确环境认证选择和固定 argv。实际启动会
|
||||
重新校验 fingerprint;release 阶段允许受信任的 `$manage-release` 直接使用当前 shell
|
||||
已有的 Git/Forge 登录,resolver 不检查或复制认证文件。显式 token/SSH 认证仍只注入所选
|
||||
环境变量。不得改写 resolver 返回的 worker argv,也不得把终端创建 argv 的绝对 Orca
|
||||
路径换成项目 `PATH` 解析。
|
||||
- 不把模型档位当作权限。`high` 不自动获得更多文件、凭据、网络或远端写权限。
|
||||
- 不执行 `orca orchestration reset`,除非用户明确要求放弃全部相关运行时状态。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user