2 KiB
2 KiB
Edge-Node Runtime Wire Contract
Contract metadata
- id:
iop.edge-node-runtime-wire - boundary: inner
- status: active
- source evidence:
proto/iop/runtime.protoapps/edge/internal/transport/apps/node/internal/transport/apps/node/internal/bootstrap/runtime_supervisor.goapps/edge/internal/node/mapper.goapps/node/internal/adapters/config_set.go
Scope
This contract covers the internal protobuf socket between Edge and Node: registration, dispatch readiness, reconnect fencing, normalized provider runs, provider HTTP tunneling, cancellation, provider commands, and runtime config refresh.
Required behavior
- A successful registration claims a pending connection. Dispatch starts only after the current connection completes the ready handshake.
- Reconnect fencing compares the node identity and current connection so stale callbacks cannot change live ownership or release a new lease.
RunRequest.adapterandtargetidentify provider execution.session_idis opaque correlation only; repeated values do not reuse execution state.RunEventpreserves ordered start, delta, and exactly one terminal outcome.ProviderTunnelRequestand ordered frames carry raw provider HTTP/SSE traffic separately from normalized run events. Usage frames are observation-only.CancelRequestaccepts a non-emptyrun_idand cancels that run only.NodeCommandRequestadmits onlyCAPABILITIES,TRANSPORT_STATUS, andOLLAMA_API; unsupported commands fail before provider lookup.- Node config payloads contain provider adapter instances and runtime limits only.
- Removed field numbers and names remain reserved in protobuf source.
Prohibited behavior
The wire must not expose persistent process management, interactive terminal control, working-directory execution context, conversation resume, local quota probes, arbitrary host commands, or direct Control Plane/Client scheduling.
Verification
make protomake proto-dartgo test -count=1 ./apps/node/... ./apps/edge/...