Parent: #694
Framework umbrella: #681
Problem
Today too many paths can end up talking to the provider or holding session-related coordination state. The framework needs one lease/ownership boundary so only the repo runtime may drive provider turns, model changes, cancels, and result consumption.
Deliverables
- a provider lease API owned by the repo runtime
- explicit lease transfer rules for active work, parked work, and preemption
- prohibition on direct provider/session use outside runtime actions
- integration path for direct provider child processes under runtime ownership
Done when
- every provider turn is owned by exactly one repo-runtime path
- no webhook/worker/helper code can talk to the provider without going through the lease API
- lease transfer during real preemption is explicit instead of implicit timing behavior
- provider misuse becomes a type/API violation instead of a timing bug
Parent: #694
Framework umbrella: #681
Problem
Today too many paths can end up talking to the provider or holding session-related coordination state. The framework needs one lease/ownership boundary so only the repo runtime may drive provider turns, model changes, cancels, and result consumption.
Deliverables
Done when