iop/agent-contract/inner/client-control-plane-wire.md
toki 7b90b7e5af refactor(chronos): IOP 경계를 분리한다
Chronos 이전 완료 증거를 보존하면서 IOP에는 provider 실행 책임만 남기기 위해 검토된 마일스톤 변경을 하나의 승격 커밋으로 고정한다.
2026-08-02 19:29:30 +09:00

925 B

Client-Control Plane Wire Contract

Contract metadata

  • id: iop.client-control-plane-wire
  • boundary: inner
  • status: active
  • source evidence:
    • proto/iop/control.proto
    • apps/control-plane/internal/wire/client.go
    • apps/client/lib/iop_wire/
    • apps/client/lib/control_plane_status_dto.dart

Scope

The Flutter client connects to the Control Plane /client WebSocket. It consumes fleet, Node, capability, provider, and operation views; it never connects directly to Edge or Node transports.

Required behavior

  • Generated Dart bindings must be regenerated from protobuf source.
  • Runtime controls expose health.check, node.status, and provider.command only.
  • Provider command UI requires a target selector and a command from the provider allowlist.
  • Status DTOs mirror the current Control Plane HTTP and protobuf projections.

Verification

  • make proto-dart
  • make client-test