Repository navigation
fix(mcp): set tick_again false on a soft doctor smoke - #26
Merged
Merged
Conversation
A soft-continue swarm_doctor while a run is unfinished already names swarm_solidify. Hosts that stop only when tick_again is strict false still ticked because the key was absent. Write tick_again=false on that envelope. soft_continue stays true. Do not write gate_soft_continue or session_not_failed, and do not execute evolver doctor --fix. Co-authored-by: Steper Lin <linker.lin@live.com>
2 tasks 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 上,软缺口(
soft_continue=true)的swarm_doctor已经指向swarm_solidify。只在tick_again严格为 false 时才停、把缺席当成再 tick、同时不看next_action的宿主,冒烟之后仍会再 tick。这次在这条信封上写tick_again=false。soft_continue仍为 true,表示缺口不是硬停。不写gate_soft_continue,不写session_not_failed。本调用不结算这条 run,不写 Parent baseline,不执行evolver doctor --fix,也不放宽固化门。第一次 tick 重定向和保险丝本来就有tick_again=false,这次不改。On an unfinished run, a soft-continue
swarm_doctoralready namedswarm_solidify. A host that stops only whentick_againis strict false, and treats an omitted key as another tick, still ticked after the smoke because the key was absent. This writestick_again=falseon that envelope.soft_continuestays true: the gap is not a hard stop.gate_soft_continueandsession_not_failedstay absent. The call does not settle the run, write a Parent baseline, runevolver doctor --fix, or relax the solidify gate. The first unfinished-run tick redirect and the fuse already settick_againfalse; those envelopes are unchanged.What changed
soft_continue=true、且没有硬blockers时,swarm_doctor增加tick_again=false。next_action仍是swarm_solidify,preserve 三元组不动。hint写明tick_again=false,并写明fixes里的evolver doctor --fix本工具不执行、固化前不要跑。soft_continue仍为 true。不写gate_soft_continue=false(会重开 DEBUG #67)。不写session_not_failed(那是 tick 重定向的旗标,不是 doctor 的健康位)。tick_again。硬阻断(例如不是 git 仓库,ok=false)也不写。ok=true、retryable=false、tick_again=false、没有error、没有loop_fuse、软缺口上gate_soft_continue缺席)。不改保险丝(ok=false、loop_fuse=pending_redirect_loop、tick_again=false)。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 tests/test_swarm_beginner_guidance.py tests/test_swarm_instrument_soft_copy.py tests/test_swarm_status_boot.py -q --tb=line163 passed.test_pending_doctor_on_a_soft_gap_names_solidifyfails on unmodified master (KeyError: tick_again). The live doctor tool description also fails there until it namestick_again=false. The hard-blocker case staysok=falsewith notick_again. Idle doctor (no unfinished run) does not gain the key.uv run ruff check src tests && uv run ruff format --check src tests && uv run mypy src746files already formatted), mypySuccess: no issues found in 353 source files.Risk
Low. Only the soft-continue unfinished-run doctor envelope gains
tick_again=false.ok,soft_continue, andloop_readystay as the open-box report computed them. Hard failures and the idle doctor do not gain the key. Solidify gate,skip_validation, Parent baseline, and val seal are unchanged. The fuse still returnsok=false.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.pypinstick_again=falsebesidesoft_continue=true, the preserve triad, absentgate_soft_continue/session_not_failed, the hint that this tool does not executeevolver doctor --fix, and the hard-blocker / idle paths (notick_again). Tick redirects already assertedtick_againfalse; that assertion now also uses the same host model.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,163 passed),uv run ruff check src tests,uv run ruff format --check src tests,uv run mypy src(353source files).Residual host friction
soft_continue=true、完全不看tick_again/next_action/ok/retryable的宿主,doctor 冒烟之后仍可能再 tick。没有把soft_continue写成 false。gate_soft_continue当成继续、且不看tick_again的 tick 重定向(DEBUG #68 余项 1)仍可能再 tick。第一次重定向和保险丝已经写了tick_again=false;看这个键的宿主会停。ok=false当成整段会话失败、且不读session_not_failed与loop_fuse的宿主,仍会在第二次 tick 上停掉会话。ok留着 false,这次不改。swarm_status/swarm_boot在未完成 run 上仍是gate_soft_continue=true,不带tick_again。只认这个 true 的宿主仍会 tick。status 的next_action仍是swarm_solidify。fixes仍列出evolver doctor --fix。本工具不执行它。hint 写明固化前不要跑。tools/list缓存滞后(DEBUG #61)没有做假修复。