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

2 KiB

Edge Config and Runtime Refresh Contract

Contract metadata

  • id: iop.edge-config-runtime-refresh
  • boundary: inner
  • status: active
  • source evidence:
    • packages/go/config/edge_types.go
    • packages/go/config/provider_types.go
    • packages/go/config/load.go
    • packages/go/config/validate.go
    • configs/edge.yaml
    • apps/edge/internal/configrefresh/

Scope

This contract connects Edge YAML, Go configuration, provider catalog validation, runtime refresh classification, and Node config payloads.

Required behavior

  • nodes[].adapters configures named inference-provider adapters.
  • nodes[].providers is the provider resource catalog. Each enabled provider references one enabled adapter instance and declares capacity, models, health, and lifecycle capabilities.
  • models[] references provider ids and supplies model-group policy, context limits, and usage attribution.
  • Provider pool queue limits and timeouts are Edge-owned and deterministic.
  • Protocol profiles and provider authentication are normalized at load time. Tracked configuration never contains raw credentials.
  • Legacy process-launch, interactive runtime, and automation-ownership keys are rejected before weak decoding can discard them.
  • Refresh results distinguish applied, restart_required, and rejected; all result collections are stable and non-null.
  • Capacity, priority, enabled state, model policy, and queue policy may be applied live. Identity, endpoint, adapter, protocol profile, and listener changes require restart.

Prohibited behavior

Configuration must not accept process commands, terminal modes, conversation resume arguments, working-directory requirements, or arbitrary environment injection as provider fields. It must not infer a provider resource from an unregistered adapter string.

Verification

  • go test -count=1 ./packages/go/config ./apps/edge/internal/configrefresh ./apps/edge/internal/edgevalidate
  • go test -count=1 ./apps/edge/cmd/edge -run TestConfigCheckRejectsLegacyCLIProcessFields