Merge authoritative main into the task branch

Why: include the current integration baseline before verification.

Evidence: fetched origin/main=32b585aa0a1c70039cb4bdbd9020390676145d70.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
This commit is contained in:
2026-10-18 04:17:45 +00:00
6 changed files with 446 additions and 42 deletions
@@ -1,6 +1,6 @@
# feature/agent-cli-enforcement 任务卡
任务主记录:https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/572;状态:交付中;owner:weichen
任务主记录:https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/572;状态:已完成;owner:weichen
## 基线与授权
@@ -12,7 +12,7 @@
- 实施执行:agent-per-unit(配置:AGENT-EXECUTION.md)
- 合入执行:agent(已授权交付范围内,Review 通过、冲突解决且当前 HEAD 的 CI 通过后合入)
- 人工决策点:仅限目标/范围/验收变更、重大取舍、高后果操作或无法自动判定的业务验收
- 当前阶段:最终候选 `d3c28d5a53d9e3205798b71c89ef1110e5996050` 已完成独立 PI 回归与独立 Codex Review;等待最终同步、PR HEAD CI、合入与收口
- 当前阶段:PR #572 已由智能体合入;固定 head `822804399820c3281e80e2394926c5bf75d44171` 的三项 CI 全部成功,main `e8d3e61a38e9690763ef46f272b2643604629cc4` 与候选树一致;任务已闭合
- 流程依据:仓库根目录 policy/delivery.md(归档后仍按仓库根目录定位)
## 目标与非目标
@@ -111,6 +111,12 @@
- 重复任务核对:待核对(已有/在途任务、PR 与规划记录)
- 启动授权:用户明确确认实施并要求加强强制机制;范围外新任务仍须授权
## 闭合记录(card-autoclose 回填)
- 依据:merge `e8d3e61a38e9690763ef46f272b2643604629cc4`(PR #572)已包含于 `origin/main`;固定候选 `822804399820c3281e80e2394926c5bf75d44171` 的 GATE run 3363 中 `test`、`test-pg`、`svc-realcombo` 全部成功。
- 合并主题:Merge pull request 'Enforce agent CLI execution routing' (#572) from feature/agent-cli-enforcement into main
- 归档:随本闭合 PR 移入 `.task/archive/`;任务执行期的过程证据见本记录与 PR #572。
## 合入与清理
- Review 记录:首轮及后续复审均使用全新 Codex CLI session;最终候选 `d3c28d5a53d9e3205798b71c89ef1110e5996050` 相对 base `bc5a1194984433c4098f1961f5280b3d9ee20995` 的已知阻塞全部关闭;最终 commit delta Review 无可执行回归。
@@ -1,6 +1,6 @@
# feature/execenv-python-sandbox-path 任务卡
任务主记录:https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/606;状态:进行中;owner:weichen
任务主记录:https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/606;状态:已完成(回填);owner:weichen
## 基线与授权
@@ -42,7 +42,7 @@
| ID | 描述 | 项目符合度及依据 | 优先级 | 验收条件 | 依赖 | 结论 |
|---|---|---|---|---|---|---|
| R1 | 托管解释器在 sandbox 遮罩 `/home` 后仍可通过已挂载前缀执行 | 现有 `PythonBin()` 返回 `python/current/bin/python3`;doctor 只挂真实前缀导致路径失效 | P0(部署阻塞) | `PythonBin()` 返回 prefix 内可达的真实解释器路径;路径单测与 sandbox doctor 均通过 | Backend pin + Dev deploy | 纳入本增量 |
| R1 | 托管解释器在 sandbox 遮罩 `/home` 后仍可通过已挂载前缀执行 | `PythonBin()` 返回 `python/current/bin/python3`;sandbox 只挂真实 prefix,因此执行前须解析该链接 | P0(部署阻塞) | `resolveInterpreter` 返回解析后的真实路径;路径单测与 sandbox doctor 均通过 | Backend pin + Dev deploy | 纳入本增量 |
## 方案与计划
@@ -62,21 +62,21 @@
| 实施与自检 | 502d46a | 完成 | Host | 2026-10-17 | Backend component pin transport applied |
| 正式测试与验收 | 502d46a | 完成 | SELF | 2026-10-17 | Integrated Backend tests, env doctor, Dev build pass |
| 代码 Review | 56ac94bf47031635f82a8f9cd17856e18fcf23f2 | 完成 | Host | 2026-10-17 | Backend pin 仅含 `b00e192`;真实路径覆盖服务执行与 doctor;无阻塞发现 |
| 合入 | 待定 | 待执行 | — | — | — |
| 合入核验与收口 | 待定 | 待执行 | — | — | — |
| 合入 | 8adc15409cca94b877d71cbd620bb7b7216ab5d4 | 完成 | Host | 2026-10-17 | PR #606 合入为 `6c90e6c92aca0968158b6fa50ec8065ba0869913`;main tree 与候选一致 |
| 合入核验与收口 | 6c90e6c92aca0968158b6fa50ec8065ba0869913 | 完成 | Host | 2026-10-17 | 部署 Dev+RDM 到 8788;doctor、服务进程、登录门禁及本地/外部静态资源核验通过 |
## 探索试验与迭代
| 增量/试验 | 假设 | 范围 | 判断和停止条件 | 授权/决策依据 | 结果 | 变更影响 | 需重审补测 |
|---|---|---|---|---|---|---|---|
| I1 | 启动失败来自 `python/current/bin/python3` 在 `/home` 被遮罩后不可见 | Backend 路径解析与 Dev pin | `env doctor` 输出 `doctor ok` 且 Dev 构建/CI 通过即停止 | 用户授权修复并部署 | PASS | 仅解释器执行路径变化 | 当前 HEAD CI |
| I1 | 启动失败来自 `python/current/bin/python3` 在 `/home` 被遮罩后不可见 | Backend 路径解析与 Dev pin | `env doctor` 输出 `doctor ok` 且 Dev 构建/CI 通过即停止 | 用户授权修复并部署 | PASS | 仅解释器执行路径变化 | 无 |
## 同步记录
| 节点 | sync_base_sha | tested_head_sha | checked_at |
|---|---|---|---|
| 启动 | 39ee3d1155140ccc1ec4b9c738cb27eaf8cdbef2 | 39ee3d1155140ccc1ec4b9c738cb27eaf8cdbef2 | 2026-10-17T14:25:18Z |
| 合入前核验 | 39ee3d1155140ccc1ec4b9c738cb27eaf8cdbef2 | 56ac94bf47031635f82a8f9cd17856e18fcf23f2 | 2026-10-17T16:22:02Z(changed=0) |
| 合入前核验 | 39ee3d1155140ccc1ec4b9c738cb27eaf8cdbef2 | 8adc15409cca94b877d71cbd620bb7b7216ab5d4 | 2026-10-17T16:59:00Z(changed=0) |
## 证据(Evidence)
@@ -86,35 +86,36 @@
## 交付调度
- 调度状态:窗口内;调度记录:合入队列 #518 comment 7165
- entry_id:mq-dev-20261017-execenv-python-sandbox-01;attempt_id:run-3701;窗口执行者:current Codex host
- 固定候选:base `39ee3d1155140ccc1ec4b9c738cb27eaf8cdbef2`;reviewed head `56ac94bf47031635f82a8f9cd17856e18fcf23f2`;Backend `b00e1924407989e52350ecdfa17f16640815ed89`
- 调度状态:已释放;调度记录:合入队列 #518 comments 7165、7170
- entry_id:mq-dev-20261017-execenv-python-sandbox-01;attempt_id:run-3702;窗口执行者:current Codex host
- 固定候选:base `39ee3d1155140ccc1ec4b9c738cb27eaf8cdbef2`;reviewed head `8adc15409cca94b877d71cbd620bb7b7216ab5d4`;Backend `b00e1924407989e52350ecdfa17f16640815ed89`
- 调度依据:policy/merge-queue.md;新模式启用前按既有交付门禁
- 固定后证据:源码外 RECEIPT;实际结果后按授权原样导入和闭合
## 结果与验证(完成后填写)
## 结果与验证
- 结果:Backend fix `b00e192` 已纳入 Dev transport `502d46a`;任务卡 evidence-only 更新后以最新 HEAD 为候选。
- 结果:Backend fix `b00e192` 纳入 Dev PR #606 并合入 main `6c90e6c92aca0968158b6fa50ec8065ba0869913`;以 RDM 插件 `7476a04d986d` 组合部署到 8788,release `dev-6c90e6crdm-7476a04d986d-20261017T170101Z-3986114`。初始 nohup 进程退出后,已启用的 systemd recover timer 于 17:02:10 拉起同一 release;当前稳定服务 PID 以 `scripts/svc.sh dev status` 实测为准。
- 验证:Backend `GOWORK=off go test ./internal/tools -run TestResolveInterpreterFollowsManagedSymlink -count=1` PASS;集成 pin 后 `GOWORK=off go test ./internal/tools ./cmd/agent-system` PASS;`GOWORK=off go run ./cmd/agent-system env doctor --root /home/weichen/projects/Agent-System-Dev/runtime/envs` 输出 `doctor ok`;`make build` PASS。
- 影响与剩余项:当前 8788 仍为自动回滚后的旧 `rdm@7476a04`;需父仓 PR/CI 合入后再部署 Dev source。
- 影响与剩余项:部署使用原数据目录 `/home/weichen/projects/Agent-System-Dev/runtime/dev/data`,部署前快照位于 `runtime-backups/dev/20261017T165153Z`;无本任务范围内剩余项。
## 规划进展与下一步
- 本次推进/剩余:代码修复、集成验证与 Review 已完成;剩余当前 HEAD CI、合入、8788 部署与运行核验。
- 本次推进/剩余:修复、Review、当前候选 CI、合入、8788 部署与运行核验已完成;闭合 PR #607 负责归档本卡。
- 首选下一任务:无;完成本次部署后停止,不扩展到账户业务修改。
- 推荐依据:当前问题是部署阻塞,不需要新增产品增量。
- 前置条件/待确认:当前 HEAD 三项必需 CI 全绿。
- 预期产物/验收条件:8788 运行新 Dev source 与 RDM 插件组合,sandbox doctor 成功,HTTP 服务可达。
- 前置条件/待确认:无。
- 预期产物/验收条件:8788 运行新 Dev source 与 RDM 插件组合,sandbox doctor 成功,HTTP 服务可达,已核验。
- 重复任务核对:PR #606 是本修复唯一 Dev 交付记录。
- 启动授权:不适用。
## 合入与清理
- Review 记录:Host 于 2026-10-17 审查 `origin/main...56ac94b` 及 Backend `5f65059...b00e192`;无阻塞代码发现,任务卡模板占位作为交付记录问题已在本提交修正。
- 冲突记录:`make task-sync` 于 2026-10-17T16:22:02Z 对 `origin/main@39ee3d1` 核验,`changed=0`,无冲突。
- CI 记录:GATE run 3701 在 `56ac94bf47031635f82a8f9cd17856e18fcf23f2` 上 `test`、`test-pg`、`svc-realcombo` 全部成功;本任务卡提交产生新 HEAD 后须重新取得当前 HEAD CI。
- 合入记录:NOT_RUN(交付授权范围、PR、被核验 HEAD、合入 SHA、目标分支及内容核验)
- 清理记录:NOT_RUN(授权依据、写者退出确认、worktree/分支/任务卡处置)
- Review 记录:Host 于 2026-10-17 审查 `origin/main...56ac94b` 及 Backend `5f65059...b00e192`;无阻塞代码发现。后续提交仅更新本任务卡元数据。
- 冲突记录:`make task-sync` 于 2026-10-17T16:59:00Z 对 `origin/main@39ee3d1` 核验,`changed=0`,无冲突。
- CI 记录:GATE run 3702 在 `8adc15409cca94b877d71cbd620bb7b7216ab5d4` 上 `test`、`test-pg`、`svc-realcombo` 全部成功;运行链接为 `/actions/runs/3702`。
- 合入记录:Dev PR #606 以固定 head `8adc15409cca94b877d71cbd620bb7b7216ab5d4` 合入 `main`,merge `6c90e6c92aca0968158b6fa50ec8065ba0869913`;main tree 与候选一致。
- 部署与运行核验:`scripts/svc.sh dev deploy --from dev@6c90e6c92aca0968158b6fa50ec8065ba0869913 --with rdm@7476a04d986d --allow-source-switch`;release `dev-6c90e6crdm-7476a04d986d-20261017T170101Z-3986114`。`agent-system env doctor --root runtime/envs` 输出 `doctor ok`;本地/外部 `/` 为 200 并提供新资源 `index-DuOyUM7W.js`;未登录 `/api/health` 为预期 401。实例复核时稳定 PID `4033167`,source `dev@6c90e6c+rdm@7476a04d986d`。
- 清理记录:`make task-finish` 完成;本地/远端 `feature/execenv-python-sandbox-path` 已删除,主检出既有 Frontend dirty gitlink 保持未改。任务卡由闭合 PR #607 归档。
<!-- Local receipt: SELF. Digests detect corruption; they do not authenticate a reviewer or CI. -->
```json
@@ -235,3 +236,9 @@
"receipt_sha256": "70fc7046bbe899d121506a4d9c981c28f27ae8aaa0f51b028a294671028fcbef"
}
```
## 闭合记录(card-autoclose 回填)
- 依据:merge 6c90e6c92aca0968158b6fa50ec8065ba0869913(PR #606)已包含于 origin/main,分支成果已落盘;本段为合入后回填。
- 合并主题:Merge pull request 'Fix sandbox execution of managed Python interpreter' (#606) from feature/execenv-python-sandbox-path into main
- 归档:随闭合移入 .task/archive/;任务执行期的过程证据见原任务记录与 PR。
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+5
View File
@@ -105,6 +105,11 @@ agy `stream-json` 的 `result` 事件或 `json` 输出对象、PI `json` 模式
每个外部 worker 只接收一个有界单元。Worker 不得扩围、提交、推送、打开或合并 PR、派遣同伴、
改变路由或模型、部署,或清理规范 worktree。
单元包不得要求 worker 暂存或修改 Git 索引、配置或引用(`git add`、`git update-index`、
`git commit`、`git stash`、`git submodule init/update`、`git config`);需要改 gitlink 时,
只在子模块目录内检出目标提交并保持未暂存。host 在 `scripts/agent-exec run` 前提交自己的改动,
运行期间不修改规范检出(包括 `.task/**`)。
`run-everything` 仅在隔离单元内取消逐步命令批准提示;不扩大用户授权范围,也不授予 worker
规范 Git、推送、PR、合入、部署或清理权威。