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

2 KiB

spec_doc_type spec_id status source_evidence
spec control/control-plane-operations 구현됨
type path notes
contract agent-contract/inner/control-plane-edge-wire.md Edge status and operation wire
type path notes
contract agent-contract/inner/client-control-plane-wire.md Client wire and DTO behavior
type path notes
code apps/control-plane/internal/wire/edge_server.go Edge enrollment, status, and operation relay
type path notes
code apps/client/lib/widgets/runtime_panel.dart Node and provider operation controls
type path notes
test apps/client/test/runtime_panel_test.dart Current operation UI regression coverage

Control Plane Operations

Current implementation

Edge connects outbound and remains the source of truth for Node readiness, provider resources, queues, and execution. The Control Plane maintains connected Edge views and bounded operation/event history. The Flutter client reads fleet, Edge, Node, capability, provider, and operation views through the Control Plane.

Operations

Operation Behavior
health.check Summarizes Edge Node and capability state.
node.status Resolves one Edge-owned Node snapshot.
provider.command Forwards capabilities, transport status, or Ollama API commands to a ready Node.

Target selectors are required for Node/provider operations. Provider commands require parameters.command and reject values outside the Node allowlist.

Status behavior

Configured offline Nodes remain visible with connected=false. Their provider identities remain visible with unavailable health and zero effective capacity. A successful current-generation ready transition restores capacity and dispatch eligibility.

The Client does not connect to Edge or Node directly and does not receive private endpoints, enrollment tokens, or transport internals.

Verification

  • make test-control-plane-edge-wire
  • make client-test