Skip to main content
This page is for self-hosted operators. Hosted end users should use the dashboard and axon-op, not direct database mutation.

Two-Surface Support Note

If a user reports TOOL_NOT_AVAILABLE_IN_RUNTIME_SURFACE, they are on the runtime surface and tried to use an operator-only tool. The remediation is to move the workflow to the dashboard, @axon402/cli (axon-op), or the explicit operator/manage MCP surface. Do not ask them to broaden the runtime key or re-enable a mixed default surface.

Launch Guardrails

  • Keep provider-search feedback publishing and retention flags off unless you have deployed the receiver URL, signing key, and monitoring for that pipeline.
  • Treat SQL mutation paths below as break-glass procedures for self-hosted environments, not normal product workflows.

Triage table

Do not recommend broadening a runtime key, issuing a wildcard-scope key, or bridging the surfaces. The split is the product model; support guidance should reinforce it, not soften it.

Startup Checklist

  1. Confirm the daemon is running on port 3030
  2. Confirm runtime config from the host environment or Secret Manager. For local development, the canonical file is axon-402-mcp/.env.
  3. Run curl $AXON_API_URL/health
  4. Run curl $AXON_API_URL/ready — confirm ready: true
  5. Confirm one low-risk governed fetch succeeds
  6. Confirm one approval-required request can be approved and retried
  7. Confirm /v1/orgs/<org_id>/vault shows real on-chain USDC balance
  8. Confirm /v1/orgs/<org_id>/workforce shows non-negative spendable balances
  9. Confirm axon-op auth whoami succeeds with an org-wide operator key

Approval Handling

Dashboard Approval

  1. Open the Approvals page
  2. Review intent, host, amount, risk_score, and alignment_score
  3. Click Approve or Deny

Headless Approval

This repo does not expose a dedicated REST approval endpoint. For headless operation in a self-hosted environment, the break-glass path is direct database mutation.
Then consume the token:
Approvals expire after AXON_APPROVAL_EXPIRY_MINUTES (default 5).

Manual Freeze Procedure

  1. Click Emergency Stop in the app shell
  2. Confirm the freeze action
The current UI is a global freeze control. Scoped freeze is available through MCP or SQL.
Target: complete freeze in under 5 minutes.

Incident Triage Queries

Recent Denied Decisions

Spending Velocity (Last Hour)

Escalated Approvals Waiting

Webhook Delivery Health

Dead-Letter Webhooks

Rollback Checklist

Level 1: Freeze All Agents

Level 2: Disable Background Workers

Restart the daemon after changing these values.

Level 3: Zero-Out Mandate Limits

Level 4: Shutdown the Daemon

The daemon handles SIGTERM gracefully.