Skip to main content

Version History

ANIP's version line tracks the progression of protocol capabilities. The current version is v0.24.

Version progression

VersionWhat it addedKey concepts
v0.24Input resolution metadataCapability inputs declare a resolution block (mode + resolver_ref + on_missing/on_ambiguous/on_unresolved) so runtimes, generators, and agents have a portable contract for whether an input is closed-enum, backend-resolved, app-selected, actor-policy-derived, explicit-only, or clarify-on-miss. Adjacent typed hints (semantic_type, entity_reference, allowed_values, catalog_ref, input_meanings) give the resolution block its substrate. Pure additive — v0.23 manifests parse unchanged.
v0.23Capability composition + approval grantsCapabilities declare a kind (atomic or composed); composed capabilities expose a declarative composition step graph as protocol-visible metadata for audit and verification. The approval_required failure persists an ApprovalRequest; approvers issue a signed ApprovalGrant (one_time or session_bound) via POST /anip/approval_grants that the requester redeems on a follow-up invoke. Session identity is bound into the signed delegation token (anip:session_id), so session-bound continuations can't be forged from request bodies. Detached JWS over canonical-sorted JSON for cross-runtime grant signature compatibility.
v0.22Delegated issuance ergonomicsCanonical parent_token semantics (token ID string, not JWT) aligned across all runtimes. issueDelegatedCapabilityToken() helper in all 5 runtimes. Token issuance responses echo task_id for consumer-side task continuity.
v0.21Cross-service contracts and recovery targetscross_service_contract with structured handoff/followup/verification entries (task-local continuity, completion modes). recovery_target in resolution objects (kind, target, continuity, retry_after_target). Stronger than advisory hints, not a workflow engine.
v0.20Bootstrap auth and capability-targeted issuanceExplicit bootstrap auth hook contract (sync MUST, async MAY). issueCapabilityToken() root-only helper in all 5 runtimes — pre-binds capability, requires explicit scope.
v0.19Cross-service handoff hintscross_service optional object on capability declarations with four advisory arrays: handoff_to, refresh_via, verify_via, followup_via. Each entry is a ServiceCapabilityRef (service + capability strings) that names a capability on another ANIP service. Extends the advisory composition model from same-manifest hints to cross-service workflow guidance.
v0.18Cross-service continuityupstream_service optional field on invoke request, response, and audit entry — identifies the ANIP service that initiated a call as part of a cross-service workflow. Services MUST echo and record it. Services MUST NOT reject syntactically valid parent_invocation_id or task_id values from foreign services.
v0.17Advisory composition hintsrefresh_via and verify_via on capability declarations — advisory arrays of same-manifest capability names. refresh_via guides agents to re-invoke a source capability when a stale artifact (binding, quote) causes failure. verify_via guides agents to verify side effects after executing irreversible actions.
v0.16Recovery posturerecovery_class on every resolution object (6-value vocabulary: retry_now, wait_then_retry, refresh_then_retry, redelegation_then_retry, revalidate_then_retry, terminal); 5 new canonical resolution.action values (retry_now, provide_credentials, wait_and_retry, revalidate_state, check_manifest)
v0.15Authority and blocked-action signalsreason_type on restricted/denied permission entries (5-value vocabulary); resolution_hint on restricted entries; non_delegable_action failure type; canonical request_broader_scope resolution action (deprecates request_scope_grant)
v0.14Binding/control simplificationRemoved bound_reference/freshness_window overlap from control_requirements
v0.13Budget, binding, and controlEnforceable budget constraints; requires_binding on capabilities; control_requirements vocabulary; 6 new failure types; budget_context in responses; FinancialCost structured type
v0.12Task identity and invocation lineagetask_id groups related invocations; parent_invocation_id forms invocation trees; token purpose binding; audit filterable by task and parent invocation
v0.11Runtime observabilityLogging, metrics, tracing, diagnostics hooks; getHealth(); health endpoint
v0.10Horizontal scalingPostgreSQL storage; leader election; exclusive invocation locks; multi-replica support
v0.9Audit aggregationStorage-side redaction; caller-class disclosure; audit entry aggregation for high-volume reads
v0.8Security hardeningEvent classification; two-layer retention; failure redaction; aggregation flushing
v0.7Discovery postureTrust posture in discovery; anchoring cadence; metadata disclosure control
v0.6Streaming invocationsSSE-based streaming responses; response_modes declaration; streaming + unary support
v0.5Async storageNon-blocking audit writes; background checkpoint scheduling; retention enforcement
v0.4Lineageinvocation_id and client_reference_id for cross-delegation lineage tracking
v0.3Anchored trustMerkle checkpoints; signed manifests; JWKS; trust levels (declarative → signed → anchored)
v0.2Cost and failuresCost declaration and cost_actual; structured failures with resolution guidance
v0.1Core protocolDiscovery, manifest, capabilities, delegation, permissions, invoke, audit

What's next

  • Federated trust — cross-service delegation chains and token exchange
  • Studio streaming visualization — watch streaming invocations in real-time
  • Studio lineage tracing — trace invocation chains through audit
  • gRPC transport expansion — Java, C#, TypeScript bindings from the shared proto

For the full roadmap, see the SPEC.md in the repo.