Skip to content

feat: 派发回执引导收取并支持派发后先等 - #323

Merged
TimWongUp merged 2 commits into
mainfrom
feat/wait-guidance
Nov 7, 2026
Merged

TimWongUp merged 2 commits into
mainfrom
feat/wait-guidance

Conversation

@TimWongUp

Copy link
Copy Markdown
Owner

背景

结束结果只能由 wait 收取,不会推送。真实使用中多个模型派发后忘了 wait,任务还在跑就结束了回合。

改动

  • start_agent、run_round 回执带 next,写明结束回合前先 wait;wait 返回时仍有待收句柄也带 next。
  • start_agent、run_round 新增可选 wait=true:派发后按 wait 默认时长等一次,结果放在回执的 wait 字段;默认关闭,只用于单次派发。
  • App 写入的编排规则(apps/tray/src/rules.rs)与 agentnave-manager Skill 加入"收齐终态再结束本轮"的约束。
  • ADR-0064 记录取舍(修订 ADR-0007);宿主 Stop 钩子已验证但暂不采用。

验证

  • ruff format/check、pyright 通过
  • 托盘 cargo fmt --check、cargo clippy --all-targets -D warnings、cargo test rules 通过
  • 受影响测试:test_contracts、test_conversations、test_entrypoints、test_manager_identity、test_member_pools、test_relay 通过(Python 3.12);全量 pytest 交给 CI
  • 未做真实宿主调用验证模型是否按 next 去 wait

🤖 Generated with Claude Code

TimWongUp and others added 2 commits November 7, 2026 16:42
结束结果不会推送,boss 漏掉 wait 会在任务仍在跑时结束回合。

- start_agent、run_round 回执带 next,提示结束回合前先 wait;wait 仍有待收句柄时同样提示再等
- start_agent、run_round 新增可选 wait=true,派发后先等一次,结果在回执的 wait 字段
- 编排规则与 agentnave-manager Skill 加入收齐终态的约束
- ADR-0064 记录取舍,修订 ADR-0007

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@TimWongUp

Copy link
Copy Markdown
Owner Author

评审记录

  • head / base:初始评审 head 464402de95473bd8ac9d80b92ea4752635849ef5,整改后最终 head 7495608dbcdb61e901883eb322425f155b83e132;合并基 base 234ac405e16f992b0f33ed0457fd772e9c20b995(目标分支 origin/main 95a9899517823582af54f77408c085f847697ae9),范围 git diff 234ac405e16f992b0f33ed0457fd772e9c20b995...7495608dbcdb61e901883eb322425f155b83e132
  • 等级及理由:R1 — 改动局部、可恢复,已有相关测试覆盖,恰有 1 个关于派发内嵌等待与多句柄/无轮次分支回执一致性的失败假设。
  • 覆盖的失败假设与评审模型:
    • H1:start_agent、run_round(含仅建会议室、无席位公开发言、retry_seats 分支)与 wait 在组合 wait=True/False 及同会话存在其他未完成/已完成句柄时,next 提示、wait 内嵌回执、unreceived 或已收取标记可能不一致或遗漏。
    • 评审工位:correctness-reviewer-easy(App 评审工位:codebuddy / deepseek-v4.1-flash,effort=max)
  • Findings、判定与处理结果:
    1. src/agentnave/mcp_tasks.py:535-536(中):WAIT_AGAIN 在 prompt_pending / review_needed 返回时仅提示再次调用 wait,未提示先处理弹框或审核 — CONFIRMED,已在 7495608d 更新 WAIT_AGAIN 文案要求先处理 prompt_pending 或 review_needed 再调用 wait。
    2. src/agentnave/mcp_tasks.py:237-258、src/agentnave/mcp_rounds.py:80-82(中):wait=True 时 unreceived 为等待前快照,且外层 next 仅检查本次被等句柄而忽略同会话收件箱中仍在运行的其他句柄 — CONFIRMED,已在 7495608d 改为由 waited_dispatch 在等待后统一计算 _unreceived 并结合 any(conversations.inbox(manager_session_id)) 设置 next,补充同会话并发挂起测试。
    3. src/agentnave/mcp_rounds.py:302-323(低):run_round 在不启动轮次(无 seats)时静默忽略 wait=True — CONFIRMED,已在 7495608d 对 not seats and wait 显式抛出 ToolError,移除冗余死分支 _started 并补充测试。
    4. docs/adr/0007-wait-any-ready-subset.md:5-10(低):ADR-0007 头部缺少对 ADR-0064 的反向修订链接 — CONFIRMED,已在 7495608d 补齐。
    5. 附注(顶层 status 与内嵌 wait 并存)— REFUTED,符合 ADR-0064 保持顶层派发回执结构并将顺带等待结果放入 wait 字段的契约设计。
    • 复核结论:续接原 correctness-reviewer-easy 工位定向复核 464402de...7495608d,确认 4 条 finding 全部解决且无新增问题,未解决项:无。
  • 本地验证与 CI 状态:
    • 464402de95473bd8ac9d80b92ea4752635849ef5:uv run ruff format --check .、uv run ruff check .、uv run pyright、全量 uv run pytest、cargo fmt --check、cargo clippy --all-targets -- -D warnings、cargo test rules 全部通过。
    • 7495608dbcdb61e901883eb322425f155b83e132 及与 origin/main(95a9899517823582af54f77408c085f847697ae9)的临时合并 17a72104:ruff format --check、ruff check、pyright、pytest tests/test_conversations.py -k "test_wait_returns_whichever_task_or_round_is_ready or test_dispatch_reply_lists_ends_no_wait_has_received"、cargo fmt --check、cargo clippy --all-targets -- -D warnings、cargo test rules 全部通过。
    • CI(head 7495608dbcdb61e901883eb322425f155b83e132):Validate release metadata、Python 3.12 / ubuntu-latest、Python 3.12 / macos-latest、Python 3.12 / windows-latest、Tray / macos-latest、Tray / windows-latest 全部 SUCCESS。
  • 剩余风险:无新增已知代码风险;模型是否严格按 next 收取终态仍受宿主侧对话控制流影响(ADR-0064 已界定边界)。

@TimWongUp
TimWongUp merged commit 041c779 into main Nov 7, 2026
9 checks passed
@TimWongUp
TimWongUp deleted the feat/wait-guidance branch November 7, 2026 10:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant