Skip to content

Fix dispatch pool reconciliation and PM closeout guards - #2

Open
lisihao wants to merge 1 commit into
codex/runtime-drift-writepath-fixfrom
codex/dispatch-pool-reconcile-fix
Open

Fix dispatch pool reconciliation and PM closeout guards#2
lisihao wants to merge 1 commit into
codex/runtime-drift-writepath-fixfrom
codex/dispatch-pool-reconcile-fix

Conversation

@lisihao

@lisihao lisihao commented May 31, 2026

Copy link
Copy Markdown
Owner

摘要

  • 修复 graph dispatch reconcile 中几类 operator/pane 假完成与卡死回收问题
  • 给 PM dispatch reconcile 增加 planner 必需产物 closeout 守卫
  • 增强 stale scrollback / stale eval assignment / live lease no-ack 的回收与测试覆盖

变更边界

in-scope

  • graph_node_dispatcher.py 的 reconcile / pane prompt residue / operator cooldown / write-scope preflight
  • pm_dispatch.py 的 health cache tmp 竞争修复与 PM contract closeout 守卫
  • 对应的 dispatcher / pm_dispatch 测试

out-of-scope

  • 不包含 codex_pm_router.py 的 DAG ready-width 校验线
  • 不包含 status-server / pane-role pool / runtime drift 主链修复
  • 不处理原工作区其他并行 feature 脏改动

已验证

  • python3 -m pytest -q harness/tests/test_pm_dispatch.py harness/tests/graph/test_graph_dispatch_submit.py
    • 24 passed
  • python3 harness/tests/test-graph-dispatch-stale-scrollback.py
    • PASS graph dispatcher ignores stale completed prompt scrollback
  • python3 -m py_compile harness/lib/graph_node_dispatcher.py harness/tools/pm_dispatch.py
    • 通过

堆叠关系

  • base: codex/runtime-drift-writepath-fix
  • 这条 PR 依赖 runtime/drift 主链守卫已存在

suraj-subrahmanyan referenced this pull request in suraj-subrahmanyan/OpenSolar Jun 29, 2026
…oven multi-task pool (Option A)

Stellven#2 (a1105f82) made the coordinator's dispatch-evals use the operator pool, but the coordinator's BUILD half
(graph-dispatch panes / SOLAR_GRAPH_BUILDER_OPERATOR_POOL via pm_dispatch) is idle-by-default and its operator
selection is NOT covered by the codex-conserving provider policy -> a naive activation could route builds to
codex/gemini. So instead, hand an APPROVED DAG to the proven multi-task pool, which is the path that produced
the first fully-green DAG (Run H) and is fully covered by the provider policy / role-compat / backend-health /
sonnet evaluator (codex-safe).

In the graph-dispatch block, when SOLAR_COORD_MULTITASK_SELFCOMPLETE=1 and phase==graph_dispatch_active
(post-approval -> respects the plan gate), launch `python3 lib/multi_task_runner.py start --graph <sprint>`
in the background (auto-advance + eval pool on) and return, skipping the graph-dispatch panes. A pgrep guard
prevents duplicate pools; the pool self-exits when the DAG is terminal (d3e9b690). Default OFF -> existing
behavior unchanged until the owner opts in on a cockpit restart.

bash -n clean; direct python entry valid; gate logic 5/5 (flag on+graph_dispatch_active->launch;
off/unset->fallthrough; planning_complete pre-approval->no launch; pgrep guard). INERT until cockpit restart;
the launch command itself is the exact one verified live in Run H. The running daemon keeps old code until restart.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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