Repository navigation
fix(mcp): set tick_again false on unfinished soft-gap boot and status - #27
Merged
Merged
Conversation
Hosts that stop only on a strict tick_again=false still re-ticked after readonly swarm_boot and swarm_status. Those envelopes kept gate_soft_continue true and omitted tick_again. Write the stop bit beside next_action=swarm_solidify without turning the soft gap into a hard failure. 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 的软缺口
swarm_boot/swarm_status现在和 doctor 一样写tick_again=false,让只在严格 false 时才停的宿主在只读开机或 status 之后不再 tick。gate_soft_continue仍为 true,软缺口没有被收成硬失败。What changed
next_action=swarm_solidify相同:已认领会话、未完成 run、软缺口已挂上(gate_soft_continue仍为 true)。boot 顶层与 status(以及 boot 嵌套的 status 副本)写tick_again=false。preserve_pending/abandon_run=false/action_required=swarm_solidify)不动。不写session_not_failed。不把soft_continue或gate_soft_continue写成 false。tick_again。压缩检查点盖过固化时,boot 顶层和嵌套副本都不留这个键。evolver doctor --fix,不写 Parent baseline,不放宽固化门。How to test
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.pyboot["tick_again"] is False、status["tick_again"] is False,同时gate_soft_continue is True,next_action == swarm_solidify。改前同一断言是KeyError: 'tick_again'。uv run ruff check src tests、uv run ruff format --check src tests、uv run mypy src。本地:上述 pytest 150 passed(宿主三件套 24 + 相关 swarm/status/boot 126);ruff 与 mypy 通过。
Risk
Low -- MCP 返回体多一个停 tick 字段。不改固化门、不写 Parent、不把软缺口收硬。
仍在的宿主摩擦
gate_soft_continue=true(或 doctor 上只看soft_continue=true)、完全不读tick_again/next_action的宿主,boot、status 或 doctor 之后仍可能再 tick。没有把这些旗标写成 false(会重开 DEBUG #67)。ok=false。只把ok=false当成整段会话失败、且不读session_not_failed与loop_fuse的宿主,仍会在第二次 tick 上停掉会话。这次不把ok改回 true。swarm_doctor的fixes仍列出evolver doctor --fix。工具不执行它,hint 仍写固化前不要跑。tools/list缓存滞后没有做假修复。新句子在工具描述里,旧会话要重启 MCP 并新开宿主会话才会重读。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
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 #26. Does not merge.