Skip to content

fix(mcp): set tick_again false on unfinished soft-gap boot and status - #27

Merged
linkerlin merged 1 commit into
masterfrom
cursor/boot-status-tick-again-3685
Nov 3, 2026
Merged

linkerlin merged 1 commit into
masterfrom
cursor/boot-status-tick-again-3685

Conversation

@linkerlin

Copy link
Copy Markdown
Owner

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 三元组(preserve_pending / abandon_run=false / action_required=swarm_solidify)不动。不写 session_not_failed。不把 soft_continue 或 gate_soft_continue 写成 false。
  • 没有未完成 run 的 soft-continue 不写 tick_again。压缩检查点盖过固化时,boot 顶层和嵌套副本都不留这个键。
  • doctor、第一次未完成 run tick 重定向、保险丝信封的行为不改。不执行 evolver doctor --fix,不写 Parent baseline,不放宽固化门。
  • 工具描述、AGENTS / README / quickstart / CHANGELOG / DEBUG #72 与返回体同一口径。

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. 未完成软缺口:boot["tick_again"] is False、status["tick_again"] is False,同时 gate_soft_continue is True,next_action == swarm_solidify。改前同一断言是 KeyError: 'tick_again'。
  3. 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 仍写固化前不要跑。
  • DEBUG #61:宿主 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

  • 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 #26. Does not merge.

Open in Web Open in Cursor 

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>
Copilot AI balanced review requested due to automatic review settings November 3, 2026 02:02

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 4c34d7d 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