Files
Agent-System-Dev/.task/feature-execenv-python-sandbox-path.md
T

154 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# feature/execenv-python-sandbox-path 任务卡
任务主记录:<PR 链接,交付前填写>;状态:进行中;owner:weichen
## 基线与授权
- 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 39ee3d1155140ccc1ec4b9c738cb27eaf8cdbef2
- 工作区:/tmp/Agent-System-Dev-execenv-python-fix-wt-feature-execenv-python-sandbox-path(worktree);分支:feature/execenv-python-sandbox-path
- 分支类型:standalone;root_target:main;immediate_target:main;accepting_requirements:false
- 需求分流:verdict=NEW;selected_initiative=无;requirement_sha256=5ee33b9e341d44e6422d477aa1ab3bb0bcc2bc416d9130b94a44601a74dee0c9;triage_receipt=/tmp/execenv-python-triage.json;receipt_sha256=17ee241158291b43adebd27254bab2bffde1ad5c356d11c71b1157603a6cc941
- 授权与交付终点:<本次允许的动作与终点;未授权事项写明>
- 交付模式:goal-first(目标、范围和交付终点一次确认;范围内连续推进)
- 实施执行:agent-per-unit(配置:AGENT-EXECUTION.md)
- 合入执行:agent(已授权交付范围内,Review 通过、冲突解决且当前 HEAD 的 CI 通过后合入)
- 人工决策点:仅限目标/范围/验收变更、重大取舍、高后果操作或无法自动判定的业务验收
- 当前阶段:需求拆解;当前增量:I1(待定义)
- 流程依据:仓库根目录 policy/delivery.md(归档后仍按仓库根目录定位)
## 目标与非目标
<预期结果、受影响入口/模块/契约;明确不做什么。>
## Agent 实施收据
按根目录 AGENT-EXECUTION.md 路由;外部 Agent 一单元一新进程/工作区。实施、修复与测试的正常候选仅为 Cursor、Antigravity(agy)和 PI;每个候选对安全可恢复失败最多 3 次全新尝试,然后才换下一候选。三者都安全耗尽后,才允许一次全新的 Codex CLI 紧急尝试。Codex 平时只用于规划、方案设计、实施计划或独立 Review。显式 fail-stop(failed-unknown、scope-expansion、blocked、cancelled、无效配置、未对账 Git 状态与安全失败)立即停止。不因推理时长、工具次数、规划方式或首次写文件时间判定失败;尝试只在显式终态失败、进程退出、总超时,或 stdin/stdout/stderr 均无活动的空闲超时时失败。CLI 可在目标、范围与安全边界内自主检查、计划、测试并迭代。实施集成必须是成功 transport 上的 scripts/agent-exec apply,或 pre-commit admit 的精确内容来源。host 直接管理的豁免仅为 .task/**、docs/superpowers/specs/** 与 docs/superpowers/plans/**。fallback 列只记录该行是否为 Codex 紧急尝试。安全耗尽不发出 host-fallback-authorized,终态为 unavailable 或 blocked。不授权 host 直接撰写该单元。原始日志保留在源码外收据路径。
| 单元 ID | 预期范围 | 配置摘要 | 角色 | 候选顺序 | attempt | CLI/模型 | 终态 | transport | fallback | 源码外收据路径 |
|---|---|---|---|---|---|---|---|---|---|---|
| execenv-python-sandbox-fix | 真实解释器路径与针对性测试 | 修复执行器 scope 为 Backend gitlink 后,第 2 轮修复成功 | Cursor | 1 个 scope-expansion;第 2 轮成功 | completed | 已复用 Backend PR #207 的最小修复并移植到 Dev pin 基线 | no | /tmp/execenv-python-run-r2.json |
## 关联方向与规划
- 适用状态:待核对(无适用规划时说明原因)
- 主记录路径/版本:待核对(路径按仓库根目录定位,归档后不变;只引用唯一正文)
- 对应里程碑:待核对
## 需求分析
| ID | 描述 | 项目符合度及依据 | 优先级 | 验收条件 | 依赖 | 结论 |
|---|---|---|---|---|---|---|
| R1 | 托管解释器在 sandbox 遮罩 `/home` 后仍可通过已挂载前缀执行 | 现有 `PythonBin()` 返回 `python/current/bin/python3`;doctor 只挂真实前缀导致路径失效 | P0(部署阻塞) | `PythonBin()` 返回 prefix 内可达的真实解释器路径;路径单测与 sandbox doctor 均通过 | Backend pin + Dev deploy | 纳入本增量 |
## 方案与计划
- 方案引用:本次对话确认的最小部署阻塞修复;重用 Backend PR #207 的 Python 实路径处理
- 实施计划引用:I1 仅规范化托管 Python 路径,并测试 `/home` 遮罩场景
- 测试计划引用:`go test ./internal/tools -run TestResolveInterpreterFollowsManagedSymlink -count=1` 与候选二进制 `env doctor --root runtime/envs`
## 阶段记录
| 阶段 | 对象版本 | 状态 | 决策/执行者 | 时间 | 依据 |
|---|---|---|---|---|---|
| 需求拆解 | 待定 | 待执行 | — | — | — |
| 需求评估 | 待定 | 待执行 | — | — | — |
| 需求表确认 | 待定 | 待执行 | — | — | — |
| 方案设计 | 待定 | 待执行 | — | — | — |
| 实施计划 | 待定 | 待执行 | — | — | — |
| 实施与自检 | 待定 | 待执行 | — | — | — |
| 正式测试与验收 | 待定 | 待执行 | — | — | — |
| 代码 Review | 待定 | 待执行 | — | — | — |
| 合入 | 待定 | 待执行 | — | — | — |
| 合入核验与收口 | 待定 | 待执行 | — | — | — |
## 探索试验与迭代
| 增量/试验 | 假设 | 范围 | 判断和停止条件 | 授权/决策依据 | 结果 | 变更影响 | 需重审补测 |
|---|---|---|---|---|---|---|---|
| 待定义 | — | — | — | 待核对 | NOT_RUN | 待评估 | 待评估 |
## 同步记录
| 节点 | sync_base_sha | tested_head_sha | checked_at |
|---|---|---|---|
| 启动 | 39ee3d1155140ccc1ec4b9c738cb27eaf8cdbef2 | 39ee3d1155140ccc1ec4b9c738cb27eaf8cdbef2 | 2026-10-17T14:25:18Z |
## 证据(Evidence)
<!-- CMD="<命令>" make evidence 写入;手抄/转写输出视为无效证据(AGENTS.md 证据与验证门禁)。 -->
| 时间(UTC) | 命令 | 被测HEAD | exit | 来源 | sha256(16) |
|---|---|---|---|---|---|
## 交付调度
- 调度状态:未入队;调度记录:无
- entry_id:无;attempt_id:无;窗口执行者:无
- 固定候选:无(base/head、组件与相关配置引用实际尝试)
- 调度依据:policy/merge-queue.md;新模式启用前按既有交付门禁
- 固定后证据:源码外 RECEIPT;实际结果后按授权原样导入和闭合
## 结果与验证(完成后填写)
- 结果:修复已在 Backend 组件分支提交 `b00e192` 并推送;待父仓 gitlink 组合验证、CI、PR 合入后重新部署 dev。
- 验证:Backend `GOWORK=off go test ./internal/tools -run TestResolveInterpreterFollowsManagedSymlink -count=1` PASS;`GOWORK=off go run ./cmd/agent-system env doctor --root /home/weichen/projects/Agent-System-Dev/runtime/envs` 输出 `doctor ok`。
- 影响与剩余项:Dev 代码尚未更新到 Backend 修复 pin,运行中的 dev 仍是自动回滚后的旧 `rdm@7476a04`;部署未完成。
## 规划进展与下一步
- 本次推进/剩余:待核对(依据实际成果更新适用方案/规划)
- 首选下一任务:待核对(无适用规划、已完成或受阻时如实说明,不虚构任务)
- 推荐依据:待填写
- 前置条件/待确认:待核对
- 预期产物/验收条件:待定义
- 重复任务核对:待核对(已有/在途任务、PR 与规划记录)
- 启动授权:未授权(建议不自动启动新任务,仍须明确授权)
## 合入与清理
- Review 记录:待主仓集成后按 Backend/Dev 最终 diff Review。
- 冲突记录:NOT_RUN(最新目标同步、冲突处置、组合兼容核验及复审/补测)
- CI 记录:NOT_RUN(当前 HEAD 完整 SHA、全部必需检查、运行链接、执行身份及 GATE 结果)
- 合入记录:NOT_RUN(交付授权范围、PR、被核验 HEAD、合入 SHA、目标分支及内容核验)
- 清理记录:NOT_RUN(授权依据、写者退出确认、worktree/分支/任务卡处置)
<!-- Local receipt: SELF. Digests detect corruption; they do not authenticate a reviewer or CI. -->
```json
{
"schema": 1,
"source": "SELF",
"timestamp": "2026-10-17T14:24:08.919572+00:00",
"command": "make precheck",
"command_sha256": "8fd03cdee8adbb8562846a1a114cc0623779a8654412cd20aac9b495e7eb0450",
"cwd": "/tmp/Agent-System-Dev-execenv-python-fix",
"common_dir": "/tmp/Agent-System-Dev-execenv-python-fix/.git",
"before": {
"head": "39ee3d1155140ccc1ec4b9c738cb27eaf8cdbef2",
"branch": "main",
"target_branch": "main",
"target_head": "39ee3d1155140ccc1ec4b9c738cb27eaf8cdbef2",
"status": "",
"tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"untracked": {},
"submodules": "-4f583ca3eeeb07a56a714c5086de84dcd6ad2980 deps/agent-command\n-343b1e6d9a5b58e47bf7e594826221036ae8175c deps/agent-intent\n-c348441691e8bdab784a03aa9be64d53dacff341 deps/agent-native\n-490b0b2dfa1567cb16ff7a7230fd78e52bc2938e deps/agent-squad\n-2688fd2be6a52c0bf110e7e6366b6f291ab5e4eb deps/development-guidelines\n-0552b7358d6955057d6eea090326f83317ed992a deps/development-manager\n-a3ee67bba269e1276c14e22c026171ecf2cf6190 deps/error-code-system\n-49b5d8be604d05e4246dffa0d10fa1c2b7ad45d7 deps/logging-system\n-5f65059bc28196c9b2621bf90c80b185146a0006 modules/backend\n-1a5ef6b75cc74088786487d82b6f6b70bf977280 modules/core\n-73bbb4cea686eb84826d5066bb4c44bf883c9365 modules/documents\n-92864db8d33bc0601f06e25d9ae2af4a404b9b6a modules/frontend\n-c9187473fb1ae9e8f3946cdf9b67055ee732054a modules/ui\n"
},
"after": {
"head": "39ee3d1155140ccc1ec4b9c738cb27eaf8cdbef2",
"branch": "main",
"target_branch": "main",
"target_head": "39ee3d1155140ccc1ec4b9c738cb27eaf8cdbef2",
"status": "",
"tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"untracked": {},
"submodules": "-4f583ca3eeeb07a56a714c5086de84dcd6ad2980 deps/agent-command\n-343b1e6d9a5b58e47bf7e594826221036ae8175c deps/agent-intent\n-c348441691e8bdab784a03aa9be64d53dacff341 deps/agent-native\n-490b0b2dfa1567cb16ff7a7230fd78e52bc2938e deps/agent-squad\n-2688fd2be6a52c0bf110e7e6366b6f291ab5e4eb deps/development-guidelines\n-0552b7358d6955057d6eea090326f83317ed992a deps/development-manager\n-a3ee67bba269e1276c14e22c026171ecf2cf6190 deps/error-code-system\n-49b5d8be604d05e4246dffa0d10fa1c2b7ad45d7 deps/logging-system\n-5f65059bc28196c9b2621bf90c80b185146a0006 modules/backend\n-1a5ef6b75cc74088786487d82b6f6b70bf977280 modules/core\n-73bbb4cea686eb84826d5066bb4c44bf883c9365 modules/documents\n-92864db8d33bc0601f06e25d9ae2af4a404b9b6a modules/frontend\n-c9187473fb1ae9e8f3946cdf9b67055ee732054a modules/ui\n"
},
"after_error": null,
"exit_code": 0,
"output": "make[1]: Entering directory '/tmp/Agent-System-Dev-execenv-python-fix'\n[repo] branch=main head=39ee3d1155\n[remote] origin/main=39ee3d1155 ahead=0 behind=0\n[tree] clean submodules_drift=0 uninit=13\n[warn] 13 个子模块未初始化——构建/测试前需物化(不阻断写入)\n[worktrees] linked=0\n[initiatives] local cards (not authoritative): none\n[cards] 闭合分支超过 24 小时未合入:feature/card-close-agent-cli-enforcement feature/card-close-workbench-flow-20261015\n[hooks] WARN core.hooksPath='未设置'——本地钩子未生效,先 make setup;本检出提交将绕过本地闸(远端准入仍在)\n[facts] policy/facts.md 6 条事实均在有效期内\n[required-reading] core/baseline.md, workflows/delivery.md §1, policy/delivery.md\n[R0] 39ee3d1155(完整:39ee3d1155140ccc1ec4b9c738cb27eaf8cdbef2)\n[worktree] before-sync: recursive component checks passed\n[verdict] READY — 保留本次 precheck receipt 后建任务工作区:PRECHECK_RECEIPT=/tmp/task-precheck.json make task-start NAME=feature/your-branch\nmake[1]: Leaving directory '/tmp/Agent-System-Dev-execenv-python-fix'\n",
"root_target": "main",
"immediate_target": "main",
"output_sha256": "610b42de32e60d9c925d99d9f908a9bcf85973ec8dbc609aa1e7dac9009e0c5d",
"receipt_sha256": "404c80221bcfa08f8c309c7eab9836c23dfb9a8958df87d35c0dfa6b783a9001"
}
```