Pick up the agent-exec terminal wrapper fix and worker git rules #610

Merged
weichen merged 6 commits from fix/agent-exec-terminal-wrapper into main 2026-10-18 03:30:19 +00:00
Owner

Task card (same document): .task/fix-agent-exec-terminal-wrapper.md


fix/agent-exec-terminal-wrapper 任务卡

任务主记录:<PR 链接,交付前填写>;状态:进行中;owner:weichen

基线与授权

  • 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 49e9b5fa52

  • 工作区:/home/weichen/projects/Agent-System-Dev-wt-fix-agent-exec-terminal-wrapper(worktree);分支:fix/agent-exec-terminal-wrapper

  • 分支类型:standalone;root_target:main;immediate_target:main;accepting_requirements:false

  • 需求分流:verdict=NEW;selected_initiative=无;requirement_sha256=e3db83994f081ac621c905e36204d29b04183fcb5125daeba3482ca07aedf3d9;triage_receipt=/tmp/dev-triage-agentexec-wrapper.json;receipt_sha256=4fb8b7cdd976ea5f30d005b642e2dad1216de9ebab3ec7a30a8499b2b58f5918

  • 授权与交付终点:owner 于 2026-10-18 确认方案(解析器 wrap 选项、Dev 接入 dev 选项),并授权保存共享主检出 modules/frontend 的遗留改动(具名 stash)后同步主检出;智能体连续推进到 PR CI 通过后合入 main、task-finish 与 task-close。未授权:其它仓库升级 DM、发布版本、改分支保护。

  • 交付模式:goal-first(目标、范围和交付终点一次确认;范围内连续推进)

  • 实施执行:agent-per-unit(配置:AGENT-EXECUTION.md)

  • 合入执行:agent(已授权交付范围内,Review 通过、冲突解决且当前 HEAD 的 CI 通过后合入)

  • 人工决策点:仅限目标/范围/验收变更、重大取舍、高后果操作或无法自动判定的业务验收

  • 当前阶段:需求拆解;当前增量:I1(待定义)

  • 流程依据:仓库根目录 policy/delivery.md(归档后仍按仓库根目录定位)

目标与非目标

目标:让 Dev 的 agent-exec 用上 DM 的终态解析修复,并补两条操作规则,减少 failed-unknown。

  • deps/development-manager gitlink 从 0552b73 升到 DM PR #23 的合并提交 67784f43eb0430bf596c2cda685cbb4946d2e032。该提交包含两项改动:终态记录允许一层 fence/tag 包裹;worker 提示词要求前台执行,并禁止改 Git 索引、配置或引用。
  • policy/delivery.md「Agent 实施单元与主模型职责」节加两句规则:
    • 单元包不得要求 worker 暂存或改 Git 索引、配置、引用;gitlink 只在子模块目录内检出目标提交。
    • host 在 run 前提交自己的改动,运行期间不改规范检出(含 .task/**)。

非目标:不改执行路由、AGENT-EXECUTION.md、脚本;不升级其它仓库的 DM;不处理本机 Cursor 包装脚本(已在仓外完成)。

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 源码外收据路径
dev-agentexec-terminal-wrapper-bump deps/development-manager、policy/delivery.md config_digest 见收据 implementation cursor → antigravity → pi cursor#1(4df7e8132c82,fresh_session=true) cursor-agent-stable / auto success c7b46f0(apply 快进 15703b7..c7b46f0) 否 /tmp/dev-wrapper-run1.json;单元包 /tmp/dev-wrapper-unit.json

关联方向与规划

  • 适用状态:不适用(执行器缺陷修复,无对应规划正文)
  • 主记录路径/版本:本任务卡;上游修复见 Development-Manager PR #23
  • 对应里程碑:无

需求分析

ID 描述 项目符合度及依据 优先级 验收条件 依赖 结论
R1 Dev 的 agent-exec 使用含终态包裹修复的 DM 符合:执行器只来自 DM gitlink(PR #600) 高 gitlink=67784f4;scripts/agent-exec validate 通过;CI 通过 DM PR #23 已合入 已实施
R2 policy/delivery.md 写入 worker Git 操作与 host 运行期纪律 符合:对应 4 次 git 索引变更与 3 次运行中改检出的 failed-unknown 中 新段落位于指定节,其他文本不变 无 已实施

方案与计划

  • 方案引用:owner 于 2026-10-18 确认的「agent-exec 失败修复」方案(仓外计划文件),第 3 节 Dev 接入
  • 实施计划引用:单一增量 I1,一个 agent-exec 单元覆盖 R1、R2
  • 测试计划引用:R1 由 scripts/agent-exec validate --repo .、make test-pins 和 PR CI 验证;R2 由 diff 审阅和独立 Review 验证

阶段记录

阶段 对象版本 状态 决策/执行者 时间 依据
需求拆解 待定 待执行 — — —
需求评估 待定 待执行 — — —
需求表确认 待定 待执行 — — —
方案设计 待定 待执行 — — —
实施计划 待定 待执行 — — —
实施与自检 待定 待执行 — — —
正式测试与验收 待定 待执行 — — —
代码 Review 待定 待执行 — — —
合入 待定 待执行 — — —
合入核验与收口 待定 待执行 — — —

探索试验与迭代

增量/试验 假设 范围 判断和停止条件 授权/决策依据 结果 变更影响 需重审补测
待定义 — — — 待核对 NOT_RUN 待评估 待评估

同步记录

节点 sync_base_sha tested_head_sha checked_at
启动 49e9b5fa52 49e9b5fa52 2026-10-18T02:32:56Z

证据(Evidence)

时间(UTC) 命令 被测HEAD exit 来源 sha256(16)

交付调度

  • 调度状态:未入队;调度记录:无
  • entry_id:无;attempt_id:无;窗口执行者:无
  • 固定候选:无(base/head、组件与相关配置引用实际尝试)
  • 调度依据:policy/merge-queue.md;新模式启用前按既有交付门禁
  • 固定后证据:源码外 RECEIPT;实际结果后按授权原样导入和闭合

结果与验证(完成后填写)

  • 结果:deps/development-manager 从 0552b73 升到 67784f4。该范围包含 DM PR #21、#22、#23,其中 #21、#22 只涉及 DM 自身的治理、钩子、CI 和证据文件,不改变 Dev 行为。policy/delivery.md 加入 worker Git 操作与 host 运行期纪律段落。
  • 验证:
    • scripts/agent-exec validate --repo . PASS(SELF,按新 pin 重建 dm-server)。
    • make test-pins PASS(SELF)。
    • make task-sync 无需同步(SELF)。它对导入的启动 precheck 收据给出 WARN:该收据记录的组件状态早于 gitlink 变更,与新 pin 不一致。关键检查已在新 HEAD 上重跑并写入。
    • 独立 Review:APPROVE(全新 code-reviewer 子会话,只接收需求、base/head、diff 和验证摘要;fresh_session=true,session ID not-observable)。
    • PR CI:见合入记录(GATE)。
  • 影响与剩余项:
    • 合入后,Dev 的 agent-exec 接受一层 fence/tag 包裹的终态记录,worker 提示词带上新的两条规则。
    • 不在本次范围的后续项:
      • /tmp/agent-exec-1000 在内存盘上约占 12G(保留约 5000 个工作区),需要定期清理已对账的现场。
      • 第二候选 agy 的账号不支持 --mode auto,以前也卡过 OAuth;Cursor 不可用时运行可能直接 fail-stop。
      • Cursor 0 字节输出挂住触发空闲超时,按合同仍记 failed-unknown。
      • Agent-System-RDM、Agent-System-Documents 等仓库仍钉旧 DM,例行升级时再带上。
      • 本机包装脚本 ~/.local/bin/cursor-agent-stable 已在仓外修复:会话建立前的 TLS 失败退避重试。它的连接清理会断开本机所有 Cursor 代理连接,可能影响并行会话。
      • DM Review 的非阻塞意见:prompt.go 有一处过时注释;CRLF 包裹会被拒收。
    • 过程事件:本任务 worktree 的任务卡在 03:00:05 被会话外的进程恢复为已提交内容,原因未查明,证据已重写并立即提交。主检出 modules/frontend 中的遗留改动经 owner 授权保存在该子模块的具名 stash(stash@{0})中,可用 git stash pop 恢复。

规划进展与下一步

  • 本次推进/剩余:待核对(依据实际成果更新适用方案/规划)
  • 首选下一任务:待核对(无适用规划、已完成或受阻时如实说明,不虚构任务)
  • 推荐依据:待填写
  • 前置条件/待确认:待核对
  • 预期产物/验收条件:待定义
  • 重复任务核对:待核对(已有/在途任务、PR 与规划记录)
  • 启动授权:未授权(建议不自动启动新任务,仍须明确授权)

合入与清理

  • Review 记录:code-reviewer 全新子会话;base 15703b7,实施提交 c7b46f0;结论 APPROVE,无阻塞项。非阻塞意见是在卡中写明 pin 范围横跨 DM #21–#23,已写入结果段。
  • 冲突记录:NOT_RUN(最新目标同步、冲突处置、组合兼容核验及复审/补测)
  • CI 记录:NOT_RUN(当前 HEAD 完整 SHA、全部必需检查、运行链接、执行身份及 GATE 结果)
  • 合入记录:NOT_RUN(交付授权范围、PR、被核验 HEAD、合入 SHA、目标分支及内容核验)
  • 清理记录:NOT_RUN(授权依据、写者退出确认、worktree/分支/任务卡处置)
Task card (same document): `.task/fix-agent-exec-terminal-wrapper.md` --- # fix/agent-exec-terminal-wrapper 任务卡 任务主记录:<PR 链接,交付前填写>;状态:进行中;owner:weichen ## 基线与授权 - 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 49e9b5fa52ca68858ed78060bb372df10c9ec711 - 工作区:/home/weichen/projects/Agent-System-Dev-wt-fix-agent-exec-terminal-wrapper(worktree);分支:fix/agent-exec-terminal-wrapper - 分支类型:standalone;root_target:main;immediate_target:main;accepting_requirements:false - 需求分流:verdict=NEW;selected_initiative=无;requirement_sha256=e3db83994f081ac621c905e36204d29b04183fcb5125daeba3482ca07aedf3d9;triage_receipt=/tmp/dev-triage-agentexec-wrapper.json;receipt_sha256=4fb8b7cdd976ea5f30d005b642e2dad1216de9ebab3ec7a30a8499b2b58f5918 - 授权与交付终点:owner 于 2026-10-18 确认方案(解析器 wrap 选项、Dev 接入 dev 选项),并授权保存共享主检出 modules/frontend 的遗留改动(具名 stash)后同步主检出;智能体连续推进到 PR CI 通过后合入 main、task-finish 与 task-close。未授权:其它仓库升级 DM、发布版本、改分支保护。 - 交付模式:goal-first(目标、范围和交付终点一次确认;范围内连续推进) - 实施执行:agent-per-unit(配置:AGENT-EXECUTION.md) - 合入执行:agent(已授权交付范围内,Review 通过、冲突解决且当前 HEAD 的 CI 通过后合入) - 人工决策点:仅限目标/范围/验收变更、重大取舍、高后果操作或无法自动判定的业务验收 - 当前阶段:需求拆解;当前增量:I1(待定义) - 流程依据:仓库根目录 policy/delivery.md(归档后仍按仓库根目录定位) ## 目标与非目标 目标:让 Dev 的 agent-exec 用上 DM 的终态解析修复,并补两条操作规则,减少 failed-unknown。 - `deps/development-manager` gitlink 从 0552b73 升到 DM PR #23 的合并提交 67784f43eb0430bf596c2cda685cbb4946d2e032。该提交包含两项改动:终态记录允许一层 fence/tag 包裹;worker 提示词要求前台执行,并禁止改 Git 索引、配置或引用。 - `policy/delivery.md`「Agent 实施单元与主模型职责」节加两句规则: - 单元包不得要求 worker 暂存或改 Git 索引、配置、引用;gitlink 只在子模块目录内检出目标提交。 - host 在 `run` 前提交自己的改动,运行期间不改规范检出(含 `.task/**`)。 非目标:不改执行路由、AGENT-EXECUTION.md、脚本;不升级其它仓库的 DM;不处理本机 Cursor 包装脚本(已在仓外完成)。 ## 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 | 源码外收据路径 | |---|---|---|---|---|---|---|---|---|---|---| | dev-agentexec-terminal-wrapper-bump | deps/development-manager、policy/delivery.md | config_digest 见收据 | implementation | cursor → antigravity → pi | cursor#1(4df7e8132c82,fresh_session=true) | cursor-agent-stable / auto | success | c7b46f0(apply 快进 15703b7..c7b46f0) | 否 | /tmp/dev-wrapper-run1.json;单元包 /tmp/dev-wrapper-unit.json | ## 关联方向与规划 - 适用状态:不适用(执行器缺陷修复,无对应规划正文) - 主记录路径/版本:本任务卡;上游修复见 Development-Manager PR #23 - 对应里程碑:无 ## 需求分析 | ID | 描述 | 项目符合度及依据 | 优先级 | 验收条件 | 依赖 | 结论 | |---|---|---|---|---|---|---| | R1 | Dev 的 agent-exec 使用含终态包裹修复的 DM | 符合:执行器只来自 DM gitlink(PR #600) | 高 | gitlink=67784f4;`scripts/agent-exec validate` 通过;CI 通过 | DM PR #23 已合入 | 已实施 | | R2 | policy/delivery.md 写入 worker Git 操作与 host 运行期纪律 | 符合:对应 4 次 git 索引变更与 3 次运行中改检出的 failed-unknown | 中 | 新段落位于指定节,其他文本不变 | 无 | 已实施 | ## 方案与计划 - 方案引用:owner 于 2026-10-18 确认的「agent-exec 失败修复」方案(仓外计划文件),第 3 节 Dev 接入 - 实施计划引用:单一增量 I1,一个 agent-exec 单元覆盖 R1、R2 - 测试计划引用:R1 由 `scripts/agent-exec validate --repo .`、`make test-pins` 和 PR CI 验证;R2 由 diff 审阅和独立 Review 验证 ## 阶段记录 | 阶段 | 对象版本 | 状态 | 决策/执行者 | 时间 | 依据 | |---|---|---|---|---|---| | 需求拆解 | 待定 | 待执行 | — | — | — | | 需求评估 | 待定 | 待执行 | — | — | — | | 需求表确认 | 待定 | 待执行 | — | — | — | | 方案设计 | 待定 | 待执行 | — | — | — | | 实施计划 | 待定 | 待执行 | — | — | — | | 实施与自检 | 待定 | 待执行 | — | — | — | | 正式测试与验收 | 待定 | 待执行 | — | — | — | | 代码 Review | 待定 | 待执行 | — | — | — | | 合入 | 待定 | 待执行 | — | — | — | | 合入核验与收口 | 待定 | 待执行 | — | — | — | ## 探索试验与迭代 | 增量/试验 | 假设 | 范围 | 判断和停止条件 | 授权/决策依据 | 结果 | 变更影响 | 需重审补测 | |---|---|---|---|---|---|---|---| | 待定义 | — | — | — | 待核对 | NOT_RUN | 待评估 | 待评估 | ## 同步记录 | 节点 | sync_base_sha | tested_head_sha | checked_at | |---|---|---|---| | 启动 | 49e9b5fa52ca68858ed78060bb372df10c9ec711 | 49e9b5fa52ca68858ed78060bb372df10c9ec711 | 2026-10-18T02:32:56Z | ## 证据(Evidence) <!-- CMD="<命令>" make evidence 写入;手抄/转写输出视为无效证据(AGENTS.md 证据与验证门禁)。 --> | 时间(UTC) | 命令 | 被测HEAD | exit | 来源 | sha256(16) | |---|---|---|---|---|---| ## 交付调度 - 调度状态:未入队;调度记录:无 - entry_id:无;attempt_id:无;窗口执行者:无 - 固定候选:无(base/head、组件与相关配置引用实际尝试) - 调度依据:policy/merge-queue.md;新模式启用前按既有交付门禁 - 固定后证据:源码外 RECEIPT;实际结果后按授权原样导入和闭合 ## 结果与验证(完成后填写) - 结果:`deps/development-manager` 从 0552b73 升到 67784f4。该范围包含 DM PR #21、#22、#23,其中 #21、#22 只涉及 DM 自身的治理、钩子、CI 和证据文件,不改变 Dev 行为。`policy/delivery.md` 加入 worker Git 操作与 host 运行期纪律段落。 - 验证: - `scripts/agent-exec validate --repo .` PASS(SELF,按新 pin 重建 dm-server)。 - `make test-pins` PASS(SELF)。 - `make task-sync` 无需同步(SELF)。它对导入的启动 precheck 收据给出 WARN:该收据记录的组件状态早于 gitlink 变更,与新 pin 不一致。关键检查已在新 HEAD 上重跑并写入。 - 独立 Review:APPROVE(全新 code-reviewer 子会话,只接收需求、base/head、diff 和验证摘要;fresh_session=true,session ID not-observable)。 - PR CI:见合入记录(GATE)。 - 影响与剩余项: - 合入后,Dev 的 agent-exec 接受一层 fence/tag 包裹的终态记录,worker 提示词带上新的两条规则。 - 不在本次范围的后续项: - `/tmp/agent-exec-1000` 在内存盘上约占 12G(保留约 5000 个工作区),需要定期清理已对账的现场。 - 第二候选 agy 的账号不支持 `--mode auto`,以前也卡过 OAuth;Cursor 不可用时运行可能直接 fail-stop。 - Cursor 0 字节输出挂住触发空闲超时,按合同仍记 failed-unknown。 - Agent-System-RDM、Agent-System-Documents 等仓库仍钉旧 DM,例行升级时再带上。 - 本机包装脚本 `~/.local/bin/cursor-agent-stable` 已在仓外修复:会话建立前的 TLS 失败退避重试。它的连接清理会断开本机所有 Cursor 代理连接,可能影响并行会话。 - DM Review 的非阻塞意见:prompt.go 有一处过时注释;CRLF 包裹会被拒收。 - 过程事件:本任务 worktree 的任务卡在 03:00:05 被会话外的进程恢复为已提交内容,原因未查明,证据已重写并立即提交。主检出 `modules/frontend` 中的遗留改动经 owner 授权保存在该子模块的具名 stash(stash@{0})中,可用 `git stash pop` 恢复。 ## 规划进展与下一步 - 本次推进/剩余:待核对(依据实际成果更新适用方案/规划) - 首选下一任务:待核对(无适用规划、已完成或受阻时如实说明,不虚构任务) - 推荐依据:待填写 - 前置条件/待确认:待核对 - 预期产物/验收条件:待定义 - 重复任务核对:待核对(已有/在途任务、PR 与规划记录) - 启动授权:未授权(建议不自动启动新任务,仍须明确授权) ## 合入与清理 - Review 记录:code-reviewer 全新子会话;base 15703b7,实施提交 c7b46f0;结论 APPROVE,无阻塞项。非阻塞意见是在卡中写明 pin 范围横跨 DM #21–#23,已写入结果段。 - 冲突记录:NOT_RUN(最新目标同步、冲突处置、组合兼容核验及复审/补测) - CI 记录:NOT_RUN(当前 HEAD 完整 SHA、全部必需检查、运行链接、执行身份及 GATE 结果) - 合入记录:NOT_RUN(交付授权范围、PR、被核验 HEAD、合入 SHA、目标分支及内容核验) - 清理记录:NOT_RUN(授权依据、写者退出确认、worktree/分支/任务卡处置)
weichen added 6 commits 2026-10-18 03:21:21 +00:00
Why: establish the authorized task workspace and its initial baseline.

Evidence: preserved precheck receipt in .task/fix-agent-exec-terminal-wrapper.md; R0=49e9b5fa52ca68858ed78060bb372df10c9ec711.

Impact: task metadata only; the feature workspace starts at 49e9b5fa52.

Refs: .task/fix-agent-exec-terminal-wrapper.md
Why: the task card must state scope before the implementation unit runs.
Evidence: none (task card only).
Impact: .task only.
Refs: https://git-home.u1680832.nyat.app:30319/weichen/Development-Manager/pulls/23
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the task card must state scope before the implementation unit runs.
Evidence: none (task card only).
Impact: .task only.
Refs: https://git-home.u1680832.nyat.app:30319/weichen/Development-Manager/pulls/23
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: completion needs task-sync and direct checks written by the evidence tool.
Evidence: make task-sync, scripts/agent-exec validate, make test-pins at c7b46f0 (SELF).
Impact: .task only.
Refs: https://git-home.u1680832.nyat.app:30319/weichen/Development-Manager/pulls/23
Co-authored-by: Cursor <cursoragent@cursor.com>
Record receipt, review and results for the terminal wrapper bump
ci / svc-realcombo (pull_request) Successful in 2m0s
ci / test (pull_request) Successful in 7m3s
ci / test-pg (pull_request) Successful in 8m36s
cd0bde8d56
Why: the card is the PR description and must carry the unit receipt, review and follow-ups.
Evidence: agent-exec run /tmp/dev-wrapper-run1.json (success); independent review APPROVE.
Impact: .task only.
Refs: https://git-home.u1680832.nyat.app:30319/weichen/Development-Manager/pulls/23
Co-authored-by: Cursor <cursoragent@cursor.com>
weichen merged commit f8452124c1 into main 2026-10-18 03:30:19 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: weichen/Agent-System-Dev#610