Repository navigation
Release v2.3.3
@axonflow/openclaw v2.3.3
Installation
npm install @axonflow/openclawOr via OpenClaw plugin manager:
openclaw plugins install @axonflow/openclawPatch release. No runtime behaviour change. Single substantive improvement: artifact format migration that closes the visible "Legacy ZIP" badge on the ClawHub listing.
Fixed
-
ClawHub publish migrated from Legacy ZIP → ClawPack via
clawhub@0.12.3..github/workflows/publish.ymlInstall ClawHub CLIstep pinned fromclawhub@0.12.0toclawhub@0.12.3. v0.12.2 (2026-05-02 21:45 UTC) shipped the CLI fix for v0.12.1's tarball-bytes-mismatch regression ("publish code plugins as clawpacks and allow legacy package downloads"); v0.12.3 (2026-05-06) added monorepo support +dry-run --metadata-only+ scope-owner inference. Verified working locally viaclawhub package pack+clawhub package publish . --dry-runagainst this repo at v2.3.2 — clean ClawPack tarball with correct sha256/integrity. Closes the "Legacy ZIP — may have compatibility issues" artifact badge on the ClawHub listing and lifts the verification tier fromsource-linked(lowest) to the modern plugin architecture.Safety net unchanged: existing
verify-clawhub-installjob runsopenclaw plugins install clawhub:@axonflow/openclaw@<version>on every publish and fails fast on any bytes-mismatch — same gate that broke v2.0.5/v2.0.6 visibly during the v0.12.1 regression. If broken, revert path is documented infeedback_plugin_manifest_envvars_hygiene.mdandfeedback_clawhub_cli_v0_12_1_tarball_regression.md(clawhub@0.12.0 + folder upload).
Internal
-
ClawScan
Credentialsreview concern remains open and is upstream-blocked. Architectural research (memory:feedback_plugin_manifest_envvars_hygiene.md) confirmed that the env-vars schema landed inclawhub@0.7.0(2026-02-16) is skill-side only: parsed from SKILL.md frontmatter into the registry capabilities block for skills. Code plugins (this artifact) have no analogousenvVarsschema slot in theircapabilitiesindexing today — the registry storesbundledSkills,capabilityTags,commandNames,configSchema,executesCode,hooks,providers, etc., but noenvVars. The earlier v2.3.1 / v2.3.2 / v2.3.3-WIP attempts to close this client-side viaopenclaw.plugin.json envVars, README.md table, and a SKILL.md frontmatter file at the package root were all wrong-layer fixes — adding a SKILL.md to a code plugin's root would either be inert (right) or cause OpenClaw runtime to inject our governance prose into the agent's system prompt (wrong, since we're a code plugin that registers hooks, not a skill that injects prompts).Path forward: the actual fix is upstream in ClawHub (analog of openclaw/clawhub#350 for skills, but for code-plugin
capabilities.envVars). Until that ships, the "Review" verdict on the Credentials dimension is acceptable — plugin remains installable; reviewer text is balanced ("These variables are related to AxonFlow, not unrelated services"). Static Analysis verdict stays Benign; ClawPack format moves the visible badge.
v2.3.0 — feature release (carried forward, 5h ago)
Companion plugin release to AxonFlow agent v7.7.0. Surfaces the V1
Plugin Pro structured upgrade envelope to the operator on Community
SaaS rate-limit hits, and adds 5 new agent-callable Pro tools so
OpenClaw agents reach the same V1 Pro toolset that the
axonflow-claude-plugin / axonflow-cursor-plugin /
axonflow-codex-plugin plugins auto-discover from the AxonFlow agent's
MCP server. Total agent-callable tools: 5 → 10.
Added
-
V1 Plugin Pro upgrade-prompt envelope handling in
src/upgrade-prompt.ts— sourced intoaxonflow-client.tsso every
4xx response frommcpCheckInput/mcpCheckOutputruns through
envelope detection. When the agent returns a 429 (daily-quota) or
403 (graduated / Pro-only) with the structured envelope shape:- Parses
upgrade.wording+upgrade.buy_urland forwards it to the
host plugin logger (api.logger.info) at most once per UTC day.
Surfaced to OpenClaw operators via the standard plugin log channel. - Honours
Retry-After/resets_atby stamping a back-off file at
${AXONFLOW_CACHE_DIR or platform default}/throttle-until.
governance.tschecks the gate before each governed call and
short-circuits during the back-off window (no thundering-herd
retries against the agent). - Handles both bare and JSON-RPC-wrapped envelope shapes (the latter
is what the new V1 Pro MCP tools deliver viawriteMCPGateError).
- Parses
-
axonflow_get_tenant_idagent-callable tool — returns the
install's tenant_id, current tier (Free / Pro / pro_expired),
endpoint, and the locked V1 upgrade URLs. The other three plugin
hosts (claude / cursor / codex) get this tool from the agent's MCP
server via auto-discovery; OpenClaw doesn't proxy that MCP server,
so we register a local equivalent built from the same status surface
recover.sh statusexposes. Keeps cross-plugin behaviour consistent
for the "what's my tenant ID?" question. -
Four V1 Plugin Pro proxy tools registered locally so OpenClaw
agents reach the same V1 Pro toolset thataxonflow-claude-plugin/
axonflow-cursor-plugin/axonflow-codex-pluginauto-discover from
the agent's MCP server. OpenClaw doesn't proxy
/api/v1/mcp-servertools/list, so these are registered as
code-definedAgentToolDefs whoseexecute()forwards to the agent
via a single newAxonFlowClient.callMCPTool(name, args)helper:axonflow_request_approval— Free 1/7d rolling, Pro unlimited.axonflow_create_tenant_policy— Free 2 active max, Pro unlimited.axonflow_get_cost_estimate— Pro-only; Free callers get the
locked V1feature_pro_onlyenvelope.axonflow_list_pro_features— Free + Pro, locked feature list
(5 differentiators + $9.99 / 90-day pricing).
Total agent-callable tools: 5 → 10 (combining
axonflow_get_tenant_id
above with these four). -
clawhub/2.3.0/SKILL.md— frozen per-version skill record for the
v2.3.0 release. Documents the new agent-callable tools alongside the
existing 5 governance tools.
Fixed
AxonFlowClient.handleEnvelope— pre-filter on
status === 429 || status === 403was dropping JSON-RPC-wrapped
envelope responses that come back over HTTP 200 with
result.isError = true(the path the agent's
mcp_v1_pro_tools.go writeMCPGateErroruses). Removed the
pre-filter;handleV1Envelopealready encodes the full
status-vs-shape decision and now sees all three envelope-bearing
paths (429 daily-quota, 403 graduated / Pro-only, 200 + JSON-RPC
gate). The 4 new proxy tools depend on the 200 path; without this
fix, Free callers got the envelope content as a generickind=ok
result instead of a cleankind=envelopewith the upgrade prompt
surfaced.
Internal
tests/upgrade-prompt.test.ts— 26 unit assertions across
detectEnvelope,retryAfterMs,resolveDeadlineMs,
isThrottleActive,shouldShowPromptToday, the fullhandleEnvelope
state machine, and theV1_LIMIT_TYPESlocked enumeration.runtime-e2e/v1_pro_envelope_surface/— drives the compiled
dist/upgrade-prompt.jsagainst a live 429 envelope captured from
a Free-tier tenant ontry.getaxonflow.compast the 200/day cap.runtime-e2e/v1_pro_proxy_tools/— drives the compiled
dist/agent-tools.js+dist/axonflow-client.jsagainst a real
registered tenant onhttps://try.getaxonflow.com. Asserts
end-to-end that all 5 V1 Pro agent-callable tools dispatch
correctly:axonflow_list_pro_featuresreturns the locked
5-differentiators shape;axonflow_get_cost_estimateon a Free
tenant lands thefeature_pro_onlyenvelope with the locked buy
URL + logger wording + stamped throttle file (and the subsequent
agent-toolexecute()honours the throttle gate);
axonflow_request_approvalandaxonflow_create_tenant_policy
return non-emptyapproval_id/policy_idon first Free call,
with top-levelsuccess: truealongsidesubmitted: true/
created: trueon the response body.tests/agent-tools.test.ts+tests/registration.test.ts—
updated for the new tool count (5 → 10).
Versions touched
package.json: 2.2.0 → 2.3.0package-lock.json: 2.2.0 → 2.3.0src/version.ts(VERSIONconstant — Jest asserts parity): 2.2.0 → 2.3.0- This CHANGELOG entry