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:
| Field | Type | Description |
|---|---|---|
id | string (uuid) | Override identifier |
policy_id | string | Target policy |
policy_type | string | Policy type |
expires_at | string (date-time) | Server-clamped per the override-semantics rule (TTL is bounded by tier-specific hard cap and per-policy minimum) |
ttl_seconds | integer | Effective TTL after clamping |
requested_ttl | integer | The originally requested TTL — present only when clamping occurred |
clamped | boolean | True if the TTL was server-adjusted |
clamped_reason | string | exceeds_hard_cap or below_minimum (present only when clamped=true) |
created_at | string (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
undefinedfor 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:
| Surface | Version |
|---|---|
| Python SDK | v6.8.0 |
| Go SDK | v5.8.0 |
| TypeScript SDK | v6.1.0 |
| Java SDK | v6.1.0 |
| OpenClaw plugin | v1.3.2 |
| Claude Code / Cursor plugins | v0.5.2 |
| Codex plugin | v0.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.yamlfrom v7.4.4 to pick up theCreateOverrideResponseschema. Clients that readclamped/clamped_reasonfrom the create response will now get correct types instead ofundefined. - Operators of the platform: v7.4.4 is documentation-grade with no behavior change; rolling restart suffices.
