Skip to content

[Framework] Build configuration and dynamic-governance foundation #88

Description

@XnLemon

Framework objective

Build the configuration and dynamic-governance foundation beneath the NeKiro Agent Framework:

Register -> Discover -> Install -> Invoke -> Record

NeKiro is not a collection of directly connected, pluggable Agents. Provider, Consumer, Control Plane, A2A Router, Registry, Workspace, and Ledger are independently deployed participants joined by versioned contracts and explicit trust boundaries. This issue gives those boundaries one strict, provider-neutral way to read bootstrap configuration and observe approved dynamic state.

It does not own Agent registration, runtime topology, Workspace authorization, invocation transport, or Ledger facts.

Program map

#88 Configuration/watch foundation
  -> #89 Register + Discover exact-Release runtime instances
  -> #90 Install + Invoke through Router + Record in Ledger

Ownership

config_center/                  opaque snapshot/watch/publish mechanics
apps/control-plane/internal/   Control Plane schema, validation and readiness
apps/a2a-router/internal/      Router schema, policy and invocation application
registry/                      Provider registration and runtime topology (#89)
gateway/ + a2a-router          managed invocation boundary (#90)

config_center/ owns only provider-neutral opaque bytes, immutable snapshots, gap-free initial/watch handoff, local revisions, typed outcomes, and explicit read/publish capabilities. Control Plane and Router remain owners of their typed schemas, validation, readiness, policy decisions, and runtime application.

Bootstrap provider address, namespace, authentication, and TLS material remain explicit deployment configuration. An authoritative source that is unavailable or invalid must not fall back to environment variables, File, middleware dumps, cached state, or an older revision.

Role in the E2E path

  • Register / Discover: supplies explicit provider configuration and watched bindings; it does not become Catalog, Registry, or Directory.
  • Install: cannot alter Workspace authorization, Installation, Permission, exact Release, Card digest, or provenance.
  • Invoke: Router captures one validated immutable policy/topology snapshot for the complete JSON, SSE, and cancellation lifecycle.
  • Record: configuration values, credentials, tokens, payloads, and provider internals never enter Ledger or safe status output.

Goals

  • Define provider-neutral snapshot, watch, lifecycle, revision, and typed failure contracts.
  • Validate the abstraction with deterministic File and Nacos adapters.
  • Keep administrative publish/delete capabilities separate from runtime read capabilities.
  • Keep service-owned typed configuration and validation in each deployment boundary.
  • Apply accepted dynamic updates atomically as immutable snapshots.
  • Preserve exact-Release authorization and fail closed on missing, invalid, deleted, stale, or interrupted state.
  • Expose only safe revision/freshness evidence needed to prove that Router consumed a topology transition.

Non-goals

  • Building a configuration-center server.
  • Replacing Catalog as the Agent Card/Release fact source.
  • Owning Provider registration, lease/heartbeat, health discovery, instance selection, Workspace authorization, or Ledger.
  • Introducing retry, provider switching, alternate endpoint/Release, stale-cache success, source precedence, or fallback.
  • Distributing private keys, bearer tokens, database credentials, or other secrets through a generic document.
  • Making every startup field hot-reloadable.

Deliverables

  • Add an ADR defining ownership, bootstrap, revision/watch semantics, reloadability, readiness, secrecy, and failure behavior.
  • Update AGENTS.md and configuration ownership documentation.
  • Define root config_center interfaces, typed errors, snapshots, subscriptions, and explicit factories.
  • Add deterministic File and Nacos adapters with one provider-neutral conformance suite.
  • Refactor service loaders to accept injected sources while preserving strict, command-scoped validation.
  • Define versioned service-configuration and governance documents at process boundaries.
  • Add immutable Router runtime-policy/topology consumption with one snapshot per complete Invocation.
  • Add safe readiness evidence and operator documentation.
  • Add authenticated, versioned, safe status evidence for observed topology state, local revision, and freshness.
  • Split registration/discovery into [Framework] Register and discover exact-Release runtime instances #89 and managed invocation into [Framework] Complete managed Consumer-to-Provider invocation #90.

Acceptance criteria

  • File and Nacos satisfy the same snapshot/watch/error contract.
  • Missing, empty, invalid, unauthorized, unavailable, deleted, stale, and interrupted states remain distinct.
  • Dynamic policy cannot change authorization or immutable Release provenance.
  • Status reads are observational only: they do not probe, reconnect, retry, or mutate watch state.
  • No endpoint, source token, provider metadata, configuration content, credential, Agent payload, or private key is exposed through logs, events, status, or Ledger.
  • Core unit, conformance, race, service-integration, and Stack acceptance are proportional to each change.

Related work

Fallback report

Fallback delta: removed 0, retained 0, added 0, net +0
Added fallback evidence: none

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requesttaskParent task tracking a multi-issue delivery

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions