Skip to content

fix(mcp): drop doctor --fix from soft solidify steers - #28

Merged
linkerlin merged 1 commit into
masterfrom
cursor/defer-doctor-fix-on-solidify-steer-4e33
Nov 3, 2026
Merged

linkerlin merged 1 commit into
masterfrom
cursor/defer-doctor-fix-on-solidify-steer-4e33

Conversation

@linkerlin

Copy link
Copy Markdown
Owner

Summary

未完成 run 的软缺口固化引导不再把 evolver doctor --fix 放进当前可执行清单。swarm_doctor 的 fixes,以及 boot / status 的 commands 与点名这条命令的 next_steps,都改指向 swarm_solidify。soft_continue 与 boot/status 的 gate_soft_continue 仍为 true。

What changed

  • 只在未完成 run、soft-continue、没有硬 blockers 时,swarm_doctor.fixes 去掉精确命令 evolver doctor --fix。hint 写明它不是当前步骤,本工具不执行它。next_action、preserve 三元组、tick_again=false、soft_continue=true 不动。不写 gate_soft_continue,不写 session_not_failed。
  • swarm_boot / swarm_status 在 next_action=swarm_solidify 时,commands 去掉同一条;next_steps 里推荐现在跑它的句子改成先 swarm_solidify(next_action / preserve_pending / action_required)。gate_soft_continue 仍为 true。
  • 没有未完成 run 时,fixes / commands 仍列出 evolver doctor --fix。固化之后同样可以再列。硬阻断的 doctor 不另给 next_action,也不改它自己的清单。
  • 第一次未完成 run 的 tick 与保险丝信封不改,它们的 commands 仍可能列出这条命令。
  • 工具描述、instrument、AGENTS / README(英/中)/ quickstart / CHANGELOG / DEBUG #73 与返回体同一口径。

How to test

  1. uv run pytest tests/test_mcp_host_usability_pending_smoke.py tests/test_mcp_host_usability_p0.py tests/test_docs_consistency.py tests/test_swarm.py tests/test_swarm_status_boot.py tests/test_mcp_host_usability_p2.py tests/gep/test_compact_gate.py tests/test_usability_external_state_e2e.py tests/test_migrate_checklist.py tests/test_open_box_setup_doctor.py
  2. 未完成软缺口:_checklist_runs_doctor_fix_now(doctor|boot|status) is False,同时 next_action == swarm_solidify、action_required == swarm_solidify、doctor 的 soft_continue is True、boot/status 的 gate_soft_continue is True。改前同一断言是 True is False(清单里仍有精确的 evolver doctor --fix)。
  3. 没有未完成 run 时,boot 的 commands 与 idle doctor 的 fixes 仍含这条命令。第一次软缺口 tick 的 commands 仍含它。
  4. uv run ruff check src tests、uv run ruff format --check src tests、uv run mypy src。

本地:上述 pytest 150 passed;ruff 与 mypy 通过。

Risk

Low -- 只从软缺口固化引导的命令清单里拿掉一条当前不该跑的命令。不改固化门、不写 Parent、不把软缺口收硬、不执行 --fix。

仍在的宿主摩擦

  • 只看 soft_continue=true 或 gate_soft_continue=true、完全不读 tick_again / next_action / fixes 的宿主,doctor、boot 或 status 之后仍可能再 tick。没有把这些旗标写成 false(会重开 DEBUG #67)。
  • fixes / commands 里仍可能有 evolver bench freeze 与 evolver bench baseline。它们不是这次要拿掉的命令,MCP 工具也不执行它们。
  • 改写后的 next_steps 句子仍写出命令名,并写明固化前不要跑。只按子串提取 evolver doctor --fix 再执行的宿主仍可能跑到它。
  • 保险丝仍是 ok=false。只把 ok=false 当成整段会话失败、且不读 session_not_failed 与 loop_fuse 的宿主,仍会在第二次 tick 上停掉会话。这次不把 ok 改回 true。
  • DEBUG #61:宿主 tools/list 缓存滞后没有做假修复。新句子在工具描述里,旧会话要重启 MCP 并新开宿主会话才会重读。

明确不做

  • 不把 soft_continue 或 gate_soft_continue 写成 false。
  • 不把保险丝的 ok 改回 true。
  • 不假修 DEBUG #61 的 tools/list 缓存。
  • 不从 MCP 工具执行 evolver doctor --fix。
  • 不改 Parent baseline,不放宽固化门。
  • 不改第一次未完成 run tick 与保险丝信封(除文档口径外,返回体不动)。

Harness/evaluator governance

Upstream governance surface: N/A -- not a harness/evaluator governance change
Downstream EvoX impact: N/A -- not a harness/evaluator governance change
Rollout-local scope: N/A -- not a harness/evaluator governance change
Promotion boundary: N/A -- not a harness/evaluator governance change
Evaluator mismatch sets: N/A -- not a harness/evaluator governance change
Non-regression evidence: N/A -- not a harness/evaluator governance change
Fix-severity review: low
Owner approval: N/A -- not a harness/evaluator governance change
Security boundary: N/A -- not a harness/evaluator governance change
Rollback: revert this commit
Live promotion: no
Autonomous evaluator self-editing: no

Self-check

  • No new runtime dependencies without a clear justification in "What changed".
  • Tests added or updated to cover the new behavior; gates pass locally: uv run pytest (related suites above), uv run ruff check src tests, uv run ruff format --check src tests, uv run mypy src.

Related

Follow-up to #27. Does not merge.

Open in Web Open in Cursor 

Unfinished soft-gap doctor fixes and boot/status command lists no longer
present evolver doctor --fix as the current step. The steer stays
swarm_solidify. The command remains when no run is unfinished.

Co-authored-by: Steper Lin <linker.lin@live.com>
Copilot AI balanced review requested due to automatic review settings November 3, 2026 02:33

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

@linkerlin
linkerlin merged commit c9c43aa into master Nov 3, 2026
5 checks passed
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.

3 participants