Repository navigation
fix(mcp): keep gate_soft_continue true on unfinished soft-gap ticks - #30
Merged
Merged
Conversation
Unfinished soft-gap swarm_tick redirects and the pending_redirect_loop fuse dropped the true that apply_soft_gap writes. Soft-continue-only hosts then missed the advisory bit boot and status already show. Keep the key true and never write false. tick_again, retryable, fuse ok, and the solidify steer stay as they are. Co-authored-by: Steper Lin <linker.lin@live.com>
2 tasks done
linkerlin
added a commit
that referenced
this pull request
Nov 3, 2026
…uals (#31) * fix(mcp): close post-#30 catalog, re-tick, steer, and watermark residuals Advertise tools.listChanged and send tools/list_changed after initialize so hosts refresh a catalog that already lists swarm_doctor. Omit gate_soft_continue on unfinished soft-gap tick and fuse envelopes (never write false) and set soft_gap.tick=false. Drop bench freeze and baseline from those solidify steers. Fast-skip a watermark only when the full hash matches, so a same-size rewrite is not a silent skip. Co-authored-by: Steper Lin <linker.lin@live.com> * fix(test): skip tools/list_changed when the e2e MCP client reads replies The catalog refresh notification has no id. The e2e recv treated the next stdout line as the JSON-RPC result, so tools/call and prompts/get raised KeyError on result. Read until the matching id, and pin that pairing with a regression. Co-authored-by: Steper Lin <linker.lin@live.com> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com>
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 的软缺口上,第一次
swarm_tick和loop_fuse=pending_redirect_loop现在保留gate_soft_continue=true,与 boot / status 同一口径。这个键不写成 false。只认该键的宿主因此能看见软缺口;停 tick 仍看tick_again、retryable和next_action。Unfinished soft-gap
swarm_tickredirects and the fuse envelope now keepgate_soft_continue=true, the same advisory bit boot and status already set. The key is never written false. Hosts that only look for that key see the soft gap; stop-tick stays ontick_again,retryable, andnext_action.What changed
_pending_tick_redirect仍走apply_soft_gap。_prefer_solidify_steps(hold_tick=True)不再pop掉gate_soft_continue,并再写一次 true。第一次重定向与保险丝都如此。gate_soft_continue/session_not_failed(fix(mcp): steer a soft doctor smoke at solidify #25–fix(mcp): drop doctor --fix from soft solidify steers #28 的健康位口径不动)。tick_again=false、retryable=false、保险丝的ok=false、session_not_failed、preserve 三元组、evolver doctor --fix的延后(fix(mcp): drop doctor --fix from soft solidify steers #28/fix(mcp): drop doctor --fix from unfinished tick and fuse envelopes #29)不动。不结算这条 run,不写 Parent baseline,不放宽固化门,不执行--fix。evolver bench freeze/evolver bench baseline的清单行为与 master 相同。How to test
uv run pytest tests/test_mcp_host_usability_pending_smoke.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::TestTick tests/test_swarm.py::TestBootAndStatus tests/test_mcp_server.py tests/test_mcp_protocol.py tests/test_open_box_setup_doctor.pyuv run ruff check src tests && uv run ruff format --check src tests && uv run mypy srcgate_soft_continue为 true,不是 false,也不是缺席。没有软缺口的重定向、以及没有未完成 run 的 boot,形状不变。doctor 的未完成软路径仍不带这个键。Risk
Low -- MCP 宿主回执旗标。不改固化门、Parent baseline、保险丝
ok,也不把软缺口收成硬门。只看gate_soft_continue=true、完全不看tick_again/next_action/ok的宿主,在 tick 与保险丝之后仍可能再 tick;写成 false 会重开 DEBUG #67。Harness/evaluator governance
Upstream governance surface: swarm instrument wording and unfinished-run tick envelopes only
Downstream EvoX impact: N/A
Rollout-local scope: N/A
Promotion boundary: N/A
Evaluator mismatch sets: N/A
Non-regression evidence: pending-smoke, sibling usability, tick/boot, MCP protocol, and open-box tests
Fix-severity review: low
Owner approval: N/A
Security boundary: does not execute
evolver doctor --fix, does not write a Parent baseline, and does not relax the solidify gateRollback: revert this commit
Live promotion: no
Autonomous evaluator self-editing: no
Self-check
uv run ruff check src tests,uv run ruff format --check src tests,uv run mypy src.Related
Follows #29. That change left the first unfinished-run tick and the fuse omitting
gate_soft_continue. DEBUG #75.