Commit 07d4aed
committed
fix(heartbeat): carry the closeout vision decision in the writeback guidance
The vision checkpoint contract already requires a per-agent vision decision at a
material closeout, but the guidance injected into every wake said only
`material->actual outcome`. A lane that followed it recorded the segment with a
`missing_required` checkpoint and paid for the decision on the next wake, which
opened on a checkpoint-missing replan obligation and spent itself reconstructing
facts that were in hand at closeout time.
The guidance now states the contract the product actually implements: a material
closeout - a material `delivery_outcome` on the agent lane, or a durable
`## Next Action` update - carries its own vision decision in the same
`refresh-state` call, an omission is repaired on the original turn through the
repair command the CLI returns, the goal cannot reach its terminal no-follow-up
state before the decision satisfies the checkpoint, and a segment does not
record an `unchanged` reason it did not earn. The sentence stays inside both
agent-facing budgets: the prompt body keeps its per-mode character allowance and
the hot-path interface envelope stays inside its 4800-character json budget.
The record-and-repair contract is deliberately untouched. An input-boundary
refusal was proposed earlier in this PR and withdrawn: it removed the
recorded-then-repaired path that the shipped host completion, same-turn
supplement, idempotent replay and external-delivery resume confirmation all
depend on, and 15 tests encode that path (they now stay green). Fixing the
guidance removes the waste at its source without retiring the recovery
mechanism.
Verified: tests/test_host_vision_recovery.py,
tests/control_plane/test_refresh_checkpoint_recovery.py,
tests/control_plane/test_refresh_checkpoint_isolation.py and
tests/test_state_refresh_agent_lane_action.py 64 passed;
tests/control_plane/test_cli_output_budget.py and
tests/control_plane/test_heartbeat_prompt_support.py 58 passed;
hot-path-interface-budget, heartbeat-prompt, goal-vision-refresh-state-budget,
goal-vision-replan-contract, blocker-push-runtime and docs-governance smokes ok.
Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>1 parent 3ca8681 commit 07d4aed
4 files changed
Lines changed: 32 additions & 6 deletions
File tree
- docs
- development/control-plane-course
- reference/protocols
- examples/control_plane
- loopx/control_plane/heartbeat
Lines changed: 6 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
312 | 312 | | |
313 | 313 | | |
314 | 314 | | |
315 | | - | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
316 | 319 | | |
317 | | - | |
| 320 | + | |
318 | 321 | | |
319 | 322 | | |
320 | 323 | | |
321 | 324 | | |
322 | 325 | | |
323 | | - | |
| 326 | + | |
324 | 327 | | |
325 | 328 | | |
326 | 329 | | |
| |||
Lines changed: 16 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
232 | 232 | | |
233 | 233 | | |
234 | 234 | | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
235 | 251 | | |
236 | 252 | | |
237 | 253 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
88 | | - | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
89 | 92 | | |
90 | 93 | | |
91 | 94 | | |
| |||
714 | 717 | | |
715 | 718 | | |
716 | 719 | | |
717 | | - | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
718 | 724 | | |
719 | 725 | | |
720 | 726 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
| 27 | + | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| |||
0 commit comments