Seed a planning call with its saved plan

Merged
CH
20d ago
+134-13

A resumed planning call didn't know which plan it was about. The Live session started with empty input, and the voice's role line says "a new engineering task", so it treated every call as a new plan. Only the backend planning model saw the document.

What changed:

  • record.heldPlan now returns the plan instead of a boolean. The door already read it for the ownership check.
  • openCreated puts one developer message ahead of the device's input: [plan] marker, name, repository, the saved body, and assumptions. It's cut from the end so it fits the 8,192-token startup bound beside whatever the device sent.
  • Only the plan is seeded. Earlier calls' messages aren't, by decision.

Test: voice-service-exchange.test.ts checks that a planning call's create carries the plan's name, repository, body, and assumption, and that a very long document is cut to the bound and loses its tail. It fails without the change. check.sh passes.

This is a web-only change, so CI covers it. I didn't try it on a live call.

šŸ¤– Generated with Claude Code


Open workspace in Conductor