Skip to main content

AxonFlow v7.4.4 Release Notes

AxonFlow v7.4.4 is a documentation-grade OpenAPI correction. The POST /api/v1/policies/{id}/overrides create-time response has been split from the at-rest PolicyOverride entity — matching what the platform server has been emitting all along. Mirrors the CreateWorkflowResponse precedent in orchestrator-api.yaml: create-time concerns split from at-rest concerns rather than overloaded onto one schema.

Platform-only release. No SDK or plugin changes.

What changed

CreateOverrideResponse schema added

New schema in docs/api/agent-api.yaml carrying the create-time fields:

FieldTypeDescription
idstring (uuid)Override identifier
policy_idstringTarget policy
policy_typestringPolicy type
expires_atstring (date-time)Server-clamped per the override-semantics rule (TTL is bounded by tier-specific hard cap and per-policy minimum)
ttl_secondsintegerEffective TTL after clamping
requested_ttlintegerThe originally requested TTL — present only when clamping occurred
clampedbooleanTrue if the TTL was server-adjusted
clamped_reasonstringexceeds_hard_cap or below_minimum (present only when clamped=true)
created_atstring (date-time)Creation timestamp

The OpenAPI operation createStaticPolicyOverride: 201 now references CreateOverrideResponse. The at-rest PolicyOverride schema retains its role on GET /api/v1/policy-overrides and GET /api/v1/policy-overrides/{id} (lookup of an existing override), where the relevant fields are different — action_override, enabled_override, tool_signature, etc.

Why this matters

Code-generated clients written against the prior spec would have:

  • Read undefined for the create-time TTL clamping fields (ttl_seconds, requested_ttl, clamped, clamped_reason) — those fields are emitted by the create handler but were declared on the wrong schema.
  • Expected at-rest fields (action_override, enabled_override, tool_signature) that the create response doesn't carry — those fields are populated only after the override has been activated and read back.

Hand-written clients (the OpenClaw plugin, AxonFlow's own portal UI) already match the actual server shape — this fix aligns the spec with reality.

The documentation page at Governance / Overrides already documents the create-response shape (including the TTL clamping fields and the clamped_reason enum); v7.4.4 adds the OpenAPI artefact to match.

SDK and plugin compatibility

No SDK or plugin versions changed. The latest released versions continue to work unchanged against v7.4.4:

SurfaceVersion
Python SDKv6.8.0
Go SDKv5.8.0
TypeScript SDKv6.1.0
Java SDKv6.1.0
OpenClaw pluginv1.3.2
Claude Code / Cursor pluginsv0.5.2
Codex pluginv0.4.2

Who is affected

  • Hand-written SDK and plugin users: no action. Server shape is unchanged; this fix only updates the spec artefact.
  • Code-generated client users: regenerate against docs/api/agent-api.yaml from v7.4.4 to pick up the CreateOverrideResponse schema. Clients that read clamped / clamped_reason from the create response will now get correct types instead of undefined.
  • Operators of the platform: v7.4.4 is documentation-grade with no behavior change; rolling restart suffices.