v0.3.2 — near-miss proposals survive
Salvage-invalid-decompositions (#87): a decomposition proposal that fails validation is no longer discarded.
- Parseable-but-invalid proposals book as a progress contribution carrying the full proposal plus every validation error — spend recorded, reservation released, task returned to the pool.
- The next agent's continuation renders the salvaged proposal with the exact errors and a "fix exactly those errors and resubmit" instruction, budget-protected within the context cap.
- The runner releases its lock on any rejected submit — no more stranded reservations from that path.
387 tests.