Repository navigation
fix(mcp): steer a soft doctor smoke at solidify - #25
Merged
Merged
Conversation
A read-only swarm_doctor call while a run is unfinished and the report is soft-continue now sets next_action to swarm_solidify. gate_soft_continue and session_not_failed stay absent, and the call still does not settle the run or write a Parent baseline. Co-authored-by: Steper Lin <linker.lin@live.com>
1 task done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
未完成 run 上,
readonly_smoke点名的swarm_doctor在软缺口(soft_continue=true)时现在也给出next_action=swarm_solidify和 preserve 三元组。只读冒烟之后按next_action走的宿主会去固化,而不会因为缺这个键、又看到「循环没被挡住」再去 tick。gate_soft_continue与session_not_failed仍然缺席。本调用不结算这条 run,不写 Parent baseline,不执行--fix,也不放宽固化门。On an unfinished run, a soft-continue
swarm_doctorreport (the other tool named byreadonly_smoke) now setsnext_action=swarm_solidifyand the preserve triad. A host that smokes and then followsnext_actionsolidifies instead of ticking because the action was missing and the loop looked unblocked.gate_soft_continueandsession_not_failedstay absent. The call does not settle the run, write a Parent baseline, run--fix, or relax the solidify gate.What changed
soft_continue=true、且没有硬blockers时,swarm_doctor增加pending_solidify、next_action=swarm_solidify、readonly_smoke(settles_run=false)和preserve_pending=true/abandon_run=false/action_required=swarm_solidify。hint先写现在调用swarm_solidify,不要 tick,固化前不要执行fixes。gate_soft_continue。缺席不是 false,避免把严格 false 读成整段会话失败(DEBUG #67)。不写session_not_failed:那个旗标只属于 tick 重定向,不是 doctor 的健康位。ok=false)不另给next_action。ok=true、retryable=false、没有error、没有loop_fuse、软缺口上gate_soft_continue缺席)。不改保险丝(ok=false、loop_fuse=pending_redirect_loop)。How to test
uv run pytest tests/test_mcp_host_usability_pending_smoke.py tests/test_mcp_server.py tests/test_mcp_protocol.py tests/test_mcp_host_usability_p0.py tests/test_mcp_host_usability_p1.py tests/test_mcp_host_usability_p2.py tests/test_mcp_host_usability_polish.py tests/test_swarm.py -q --tb=line153 passed.test_pending_doctor_on_a_soft_gap_names_solidifyfails on unmodified master (KeyError: pending_solidify). The hard-blocker case staysok=falsewith nonext_action.uv run ruff check src tests && uv run ruff format --check src tests && uv run mypy srcSuccess: no issues found in 353 source files.Risk
Low. The soft-continue doctor envelope gains a solidify steer only while a run is unfinished.
ok,soft_continue, andloop_readystay as the open-box report computed them. Hard failures do not gainnext_action. Solidify gate,skip_validation, Parent baseline, and val seal are unchanged.Harness/evaluator governance
Upstream governance surface: MCP
swarm_doctorreturn while a run is unfinished (soft-continue only). Not solidify, selector, mutation, or the frozen gate.Downstream EvoX impact: N/A -- existing read-only tool return, no bridge or contract change.
Rollout-local scope: host-visible doctor smoke only; boot, status, and the tick redirect envelope are unchanged.
Promotion boundary: N/A -- no proposal/rollout/default promotion.
Evaluator mismatch sets: N/A
Non-regression evidence:
tests/test_mcp_host_usability_pending_smoke.pypins the soft-continue steer (next_action=swarm_solidify, preserve triad,gate_soft_continueandsession_not_failedabsent, no baseline file) and the hard-blocker path (no new action).Fix-severity review: low
Owner approval: N/A
Security boundary: no new data, tool, host, network, or secret surface. Doctor still calls
doctor(fix=False).Rollback: revert this commit.
Live promotion: no
Autonomous evaluator self-editing: no
Self-check
uv run pytest(modules listed above),uv run ruff check src tests,uv run ruff format --check src tests,uv run mypy src.