v0.8.2 — Planner hardening (single end-of-plan summary)
v0.8.2 — Planner hardening (single end-of-plan summary)
A multi-step plan could emit its end-of-plan summary 2–3 times. This release fixes that deterministically, plus related plan-execution hardening.
Fixed
- Single end-of-plan summary. Once the model explicitly completes the last step (via
update_plan) and its reply already contains a substantive summary, the harness ends the turn instead of re-prompting — a finished plan emits one summary, not a repeat. Completion is always explicit (never inferred from prose), so no work is ever skipped. Reproduced on a large cloud model too, so the cause was harness-structural, not small-model flakiness. - Idempotent
propose_plan. A duplicate identical proposal is now a no-op that continues execution, instead of cancelling the just-approved plan and re-prompting for approval.
Changed
- Action-only planning guidance — concrete, checkable steps and no dedicated "summarize" step (the summary is automatic), making execution more predictable across models. The stall-recovery nudge is kept and narrowed.
- Dynamic summary length — scales to the task (brief for simple work, fuller for substantive findings).
Validated live on gemma4:e4b and qwen3.5:4b-mlx: one summary per finished plan, every tool step executed, and the idempotent-propose fix fired under a real double-propose.