You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
V1 Plugin Pro completion release. Builds on v7.7.0's launch with the
graduated freemium model that turns every Free-tier limit into a
conversion moment instead of a dead-end 401/429. Pro buyers get the
right caps everywhere, MCP governance traffic counts against daily
quota, and a structured upgrade envelope replaces five different
per-route ad-hoc 429 bodies with one wire shape that all four
plugins parse identically. No breaking changes for self-hosted
Enterprise deployments.
5th SDK live — Rust preview at v0.1.0 on crates.io covering proxy +
audit + basic MAP + basic MCP + OpenAI interceptor. Foundation
contributed voluntarily by Francesco Pierfederici.
Customer-facing surfaces:
- Five Pro differentiators, all enforced. Daily quota (Free 200 →
Pro 2,000), audit retention (Free 3d → Pro 30d), custom tenant
policies (Free 2 active → Pro unlimited), HITL approvals (Free 1
per rolling 7d → Pro unlimited), LLM cost pre-flight (Pro only).
Existing Pro buyers automatically receive the higher cap.
- Structured V1 upgrade envelope on every 429 daily-quota and 403
graduated / Pro-only path. One JSON shape carries error,
limit_type, tier, limit, remaining, window, resets_at, and
upgrade.{tier, wording, compare_url, buy_url}. Three locked
headers: X-Axonflow-Tier-Limit, X-Axonflow-Upgrade-URL,
Retry-After. Same envelope on HTTP and JSON-RPC paths.
- Five new MCP tools on /api/v1/mcp-server: axonflow_get_tenant_id,
axonflow_request_approval, axonflow_create_tenant_policy,
axonflow_get_cost_estimate, axonflow_list_pro_features. All carry
an explicit success: true field. tools/list is tier-filtered —
Pro-only tools don't appear in Free users' tool lists.
- Daily-cap enforcement on /api/v1/mcp-server tools/call,
/api/v1/mcp/check-input, /api/v1/mcp/check-output. These previously
bypassed daily quota.
Breaking change: integrators that previously parsed the auth-path's
nested {error: {code, message}} 429 body need to update to read the
V1 envelope's top-level error string + surrounding fields.
Stable SDKs (Go / Python / TypeScript / Java) unchanged at v7.1.0.
Companion plugin release planned at v1.3.0 / v2.3.0.
Security: Apache Thrift CVE-2026-41602 (HIGH — Integer Overflow).
Indirect dep github.com/apache/thrift bumped v0.22.0 → v0.23.0 via
the Snowflake connector chain.
See CHANGELOG.md v7.8.0 for the full per-edition breakdown.
Source Commits: 5b1b3732a,0440dc0e3,9b4c05898,5a55d21ce,7e339cb35,a59c53035,006d8f2d2,523aabdf5,4432d5014,1fc621114,6d6065054,93636f9c7,8108e299c,d0fe54f2b,db7f149b0,1ed30698c
Authored-by: Saurabh Jain <saurabhjain1592@gmail.com>
Signed-off-by: AxonFlow Team <bot@getaxonflow.com>
Co-authored-by: AxonFlow Team <bot@getaxonflow.com>
**V1 Plugin Pro completion release.** Builds on v7.7.0's launch with the graduated freemium model that turns every Free-tier limit into a conversion moment instead of a dead-end 401/429. Pro buyers now get the right caps everywhere, MCP governance traffic counts against daily quota, and a structured upgrade envelope replaces five different per-route ad-hoc 429 bodies with one wire shape that all four plugins parse identically. No breaking changes for existing self-hosted Enterprise deployments; Free / Pro / Premium SaaS Plugin tiers all keep their v7.7.0 wire shape, plus richer fields.
18
+
19
+
**5th SDK live — Rust preview at v0.1.0.** First-ever AxonFlow Rust SDK shipped 2026-05-05 to [crates.io](https://crates.io/crates/axonflow-sdk-rust) covering proxy + audit + basic MAP + basic MCP + OpenAI interceptor. Repo: [getaxonflow/axonflow-sdk-rust](https://github.com/getaxonflow/axonflow-sdk-rust). Quickstart: [docs/sdk/rust-quickstart.md](docs/sdk/rust-quickstart.md). Foundation contributed voluntarily by Francesco Pierfederici.
20
+
21
+
**V1 customer-facing surfaces in this release:**
22
+
23
+
-**Five Pro differentiators, all enforced.** Daily quota (Free 200 → Pro 2,000), audit retention (Free 3d → Pro 30d), custom tenant policies (Free 2 active → Pro unlimited), HITL approvals (Free 1 per rolling 7d → Pro unlimited), LLM cost pre-flight (Pro only). Existing Pro buyers automatically receive the higher daily-quota cap on this release.
24
+
-**Structured upgrade envelope across every Free-tier limit hit.** One JSON shape (`{error, limit_type, tier, limit, remaining, window, resets_at, upgrade.{tier, wording, compare_url, buy_url}}`) on 429 daily-quota AND 403 graduated / Pro-only paths. Three locked headers (`X-Axonflow-Tier-Limit`, `X-Axonflow-Upgrade-URL`, `Retry-After`). Plugin parsers read the same envelope on the HTTP path and on the JSON-RPC path (where it rides inside `result.content[0].text` with `isError: true`).
25
+
-**Five new MCP tools on `/api/v1/mcp-server`.**`axonflow_get_tenant_id` (Free + Pro), `axonflow_request_approval` (Free 1 per rolling 7d, Pro unlimited), `axonflow_create_tenant_policy` (Free 2 active max, Pro unlimited), `axonflow_get_cost_estimate` (Pro only — wraps `/api/v1/plans/estimate`), `axonflow_list_pro_features` (data only, all tiers). All five carry an explicit `success: true` field so LLM consumers in Cursor / Claude Code / Codex / OpenClaw see an unambiguous positive signal on every successful call.
26
+
-**Tier-aware `tools/list` filtering.** Free callers see N tools, Pro callers see N+M. Honest visibility — `axonflow_get_cost_estimate` does not appear in a Free user's tool list at all (not just rejected on call).
27
+
28
+
**Companion plugin release planned at v1.3.0 / v2.3.0** with envelope-aware error handling (parse → display → honor `Retry-After`) and skill / README mentions of the new MCP tools. Plugin tags + npm / ClawHub publishes follow on their own release schedule.
29
+
30
+
**Stable SDKs (Go / Python / TypeScript / Java) unchanged at v7.1.0.** Existing SDK callers inherit the higher Pro daily quota with zero code change — V1 Plugin Pro is server-side and plugin-side only.
31
+
32
+
### Community
33
+
34
+
#### Added
35
+
36
+
-**Tier-gating framework on MCP tools.** Tool definitions can now declare `RequiredTier` ("Pro" / "Premium") which drives `tools/list` filter visibility and `tools/call` dispatch rejection, and `FreeUsageLimit` which enforces graduated-cap behavior — `MaxCount` for object-creation limits ("2 active custom policies") and `WindowSeconds` + `MaxInWindow` for rolling-window action limits ("1 HITL approval per 7 days"). Both fields default zero / nil so every existing tool is unchanged.
37
+
-**Structured V1 upgrade envelope.** One shape across HTTP (429 daily-quota, 403 active-policies / hitl-approvals / feature-pro-only) and JSON-RPC (wraps the same envelope inside `result.content[0].text` with `isError: true`). Locked URLs `https://getaxonflow.com/pricing/` (compare) + `https://buy.stripe.com/bJe28qbztcdVchjdkw8k800` (buy) are the single source of truth across agent code, license email body, Stripe Dashboard, and customer-facing landing pages.
38
+
-**`axonflow_get_tenant_id` MCP tool.** Returns `{success, tenant_id, tier, upgrade_url, buy_url}`. The AI in any host CLI can answer "what's my tenant ID?" / "what tier am I on?" inline without running a shell script — replaces the per-plugin discovery scripts with auto-discovered MCP tool dispatch.
39
+
-**`axonflow_request_approval` MCP tool.** Inline HITL approval gate before risky operations (e.g. `rm -rf`, `git push --force`, production deploy). Free tier supports 1 approval per rolling 7-day window; Pro unlimited.
40
+
-**`axonflow_create_tenant_policy` MCP tool.** Lets the AI create tenant-scoped governance policies on the fly — *"block any tool call that writes to ~/.ssh/"*, *"require approval for any `rm -rf`"*. Free tier supports 2 active policies (delete to make room); Pro unlimited.
41
+
-**`axonflow_get_cost_estimate` MCP tool.** LLM cost pre-flight before running multi-step plans — the headline anti-runaway-bills feature. Pro tier only; Free callers see the tool filtered out of `tools/list`. Wraps the orchestrator's `/api/v1/plans/estimate` so per-token pricing follows the orchestrator's authoritative pricing config — no drift between proxy enforcement and tool-reported estimate.
42
+
-**`axonflow_list_pro_features` MCP tool.** Returns the V1 Pro feature list as data — five differentiators, exact pricing, tone-direction quote — so a Free user's AI can faithfully answer "what would I get if I upgraded?" without reading docs.
43
+
-**Daily-cap enforcement on every governance route.** Three previously-leaking routes — `/api/v1/mcp-server tools/call`, `/api/v1/mcp/check-input`, `/api/v1/mcp/check-output` — now consume daily quota and emit the V1 envelope on rejection. Pre-fix: Free tenants could get unlimited governance evaluation by routing through MCP. Post-fix: every governed event counts.
44
+
-**`success: true` field on every V1 MCP tool response.** Plus companion `submitted: true` / `awaiting_review: true` on `axonflow_request_approval` and `created: true` on `axonflow_create_tenant_policy` so LLM consumers don't misread `status: "pending"` (HITL row state) or `enabled: true` (policy state, not operation outcome) as failure. Locks unambiguous tool-success semantics for AI consumers across host CLIs.
45
+
-**Telemetry stream classifier.** Every heartbeat row tagged `Stream=heartbeat` so the SDK / plugin heartbeat stream and a future Community SaaS operational stream remain distinguishable when both flow through the same telemetry pipeline.
46
+
47
+
#### Changed
48
+
49
+
-**Pro daily quota 1,000 → 2,000.** Existing Pro buyers automatically receive the higher cap on this release. Heaviest observed Free-tier daily volume in the week leading up to release was ~780 events for a single power user; 2,000 leaves comfortable headroom for a Pro user's normal day.
50
+
-**MCP `tools/list` is tier-filtered.** Free callers see N tools (Pro-only ones omitted); Pro callers see N+M. The filter is honest visibility, not security — `tools/call` dispatch re-enforces the gate so a determined Free caller invoking by name still gets the structured rejection envelope.
51
+
-**All daily-cap-exceeded responses now emit the V1 envelope.** Auth-path and proxy-path rejection bodies used to differ in shape for the same condition (one wrapped, one flat); both now emit the V1 envelope verbatim. Plugins or direct API consumers that previously parsed the auth-path's nested `{error: {code, message}}` shape will need to update to read the V1 envelope's top-level `error` string + richer surrounding fields — the v1.3.0 / v2.3.0 plugin train carries the parser change on the client side.
52
+
-**`AXONFLOW_TELEMETRY=off` scope clarified in docs.** Controls the SDK / plugin heartbeat path only. Community SaaS operational data (registrations, audit logs, policy-enforcement records, request-header metadata) is processed inherent to running the hosted service and is independent of the heartbeat opt-out.
53
+
54
+
#### Fixed
55
+
56
+
-**Apache Thrift CVE-2026-41602 (HIGH — Integer Overflow).** Indirect dependency `github.com/apache/thrift` bumped from v0.22.0 to v0.23.0 via the Snowflake connector chain.
57
+
58
+
### Enterprise
59
+
60
+
#### Changed
61
+
62
+
-**`RecommendedPluginVersion` advertised in `/health`** bumps to claude / cursor / codex 1.3.0 and openclaw 2.3.0. `MinPluginVersion` floors stay at 1.0.0 / 2.0.0 — pre-1.x plugins ran the pre-DNT-removal contract and remain blocked; pre-V1-Plugin-Pro plugins continue to work but log an actionable upgrade warning on every governed call.
63
+
-**`RecommendedSDKVersion` unchanged at v7.1.0.** This release is server-side and plugin-side only; the `X-Axonflow-Client` header semantics + scope-aware license validation that v7.1.0 SDKs already speak cover all V1 Plugin Pro paths.
**V1 launch release.** First public release of the paid Pro tier and credential recovery for AxonFlow Community SaaS. Self-hosted deployments are unaffected; existing Self-Hosted licenses keep validating via the documented backward-compat path.
@@ -34,11 +84,13 @@ community mirror, **Enterprise** changes are EE-only.
34
84
survives the cascade for Article 30 compliance.
35
85
36
86
**Companion plugin and SDK release.** All four plugins
> **Telemetry:** SDKs send anonymous usage data (SDK version, OS, architecture) on initialization, including localhost and self-hosted evaluation environments outside sandbox mode. No prompts, payloads, API keys, or tenant identifiers are collected. Opt out: `export AXONFLOW_TELEMETRY=off`. `DO_NOT_TRACK` is **not** honored — it is commonly inherited from host tools and developer environments, which makes it an unreliable expression of user intent. See [Telemetry Documentation](https://docs.getaxonflow.com/docs/telemetry) for full details including SDK-level config options.
528
+
> **Telemetry:** SDKs send anonymous usage data (SDK version, OS, architecture) on initialization, including localhost and self-hosted evaluation environments outside sandbox mode. No prompts, payloads, API keys, or tenant identifiers are collected. Opt out: `export AXONFLOW_TELEMETRY=off`.
529
+
>
530
+
> **Scope of `AXONFLOW_TELEMETRY=off`:** disables the anonymous SDK/plugin heartbeat. On self-hosted and in-VPC deployments, that heartbeat is the only data the SDK or plugin sends to AxonFlow, so setting `=off` means we receive nothing. On Community SaaS (`try.getaxonflow.com`) the hosted service also processes operational data — registrations, audit logs, policy enforcement records, workflow state, plan data, and request-header metadata aggregated for usage analytics — as part of running the platform; that operational data flow is governed by the [Privacy Policy](https://getaxonflow.com/privacy/), not by this env var.
531
+
>
532
+
> `DO_NOT_TRACK` is **not** honored — it is commonly inherited from host tools and developer environments, which makes it an unreliable expression of user intent. See [Telemetry Documentation](https://docs.getaxonflow.com/docs/telemetry) for full details including SDK-level config options.
Copy file name to clipboardExpand all lines: docs/TELEMETRY.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,6 +49,10 @@ Any of these methods will disable telemetry:
49
49
export AXONFLOW_TELEMETRY=off
50
50
```
51
51
52
+
#### Scope of `AXONFLOW_TELEMETRY=off`
53
+
54
+
`AXONFLOW_TELEMETRY=off` disables the anonymous SDK/plugin heartbeat (version, OS, architecture). On **self-hosted** and **in-VPC** deployments, that heartbeat is the only data the SDK or plugin sends to AxonFlow, so setting `=off` means we receive nothing. On **Community SaaS** (`try.getaxonflow.com`) the hosted service also processes operational data — registrations, audit logs, policy enforcement records, workflow state, plan data, and request-header metadata aggregated for usage analytics — as part of running the platform; that operational data flow is governed by the [Privacy Policy](https://getaxonflow.com/privacy/), not by `AXONFLOW_TELEMETRY`. If you need no-data-leaves-network guarantees, self-host AxonFlow Community Edition.
55
+
52
56
> **Note:**`DO_NOT_TRACK` is **not** honored as an opt-out for AxonFlow telemetry. It is commonly inherited from host tools and developer environments (CLIs like Codex and Claude Code inject it unconditionally), which makes it an unreliable expression of user intent. Use `AXONFLOW_TELEMETRY=off` instead.
Copy file name to clipboardExpand all lines: docs/TELEMETRY_CONTRACT.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,6 +49,10 @@ Rule order (highest priority first):
49
49
50
50
`AXONFLOW_TELEMETRY=off` always wins. Config flag overrides mode-based defaults but cannot override the env var. No credential-based logic — credentials do not affect telemetry defaults. Endpoint host does not affect defaults either: localhost, private-network, and self-hosted evaluation endpoints are still ON unless sandbox mode or an opt-out disables telemetry.
51
51
52
+
### Deployment-shape note: scope of the opt-out
53
+
54
+
`AXONFLOW_TELEMETRY=off` controls the SDK/plugin **heartbeat**. On self-hosted and in-VPC deployments, that heartbeat is the only data path from the SDK or plugin to AxonFlow, so the env var is the relevant opt-out lever. On **Community SaaS** (`try.getaxonflow.com`) the hosted service also processes operational data — registrations, audit logs, policy enforcement records, workflow state, plan data, and request-header metadata aggregated for usage analytics — as part of running the platform. That operational data flow is governed by the [Privacy Policy](https://getaxonflow.com/privacy/) rather than by this env var; the contract documented here applies to the heartbeat path only.
55
+
52
56
> **Note on `DO_NOT_TRACK`:** It is **not** honored as an opt-out for AxonFlow telemetry. It is commonly inherited from host tools and developer environments (CLIs like Codex and Claude Code inject it unconditionally), which makes it an unreliable expression of user intent. SDKs do not read this variable at all.
Copy file name to clipboardExpand all lines: docs/sdk/rust-quickstart.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -188,6 +188,8 @@ The SDK sends an anonymous heartbeat at most once per machine every 7 days for l
188
188
export AXONFLOW_TELEMETRY=off
189
189
```
190
190
191
+
**Scope:**`AXONFLOW_TELEMETRY=off` disables the heartbeat described above. On self-hosted and in-VPC deployments, that heartbeat is the only data the SDK sends to AxonFlow. On Community SaaS (`try.getaxonflow.com`) the hosted service also processes operational data (registrations, audit logs, policy enforcement records, workflow state, plan data, request-header metadata aggregated for usage analytics) as part of running the platform; that flow is governed by the [Privacy Policy](https://getaxonflow.com/privacy/), not by `AXONFLOW_TELEMETRY`.
192
+
191
193
`DO_NOT_TRACK` is intentionally **not** honored — it's commonly inherited from a parent shell, and we want telemetry opt-out to be an explicit AxonFlow decision.
0 commit comments