Installation
Migrations and tenants
migrate:smart reports; it does not migrate. It exists so you can see what a
release would apply before applying it. See
Upgrading and rollback.Webhook routing
Webhook routing resolves through Redis rather than the landlord database, so the
registry is a cache with a source of truth behind it.
ops:webhook-registry-health
is what tells you the two have diverged; ops:webhook-warmup is what rebuilds the
cache after a flush.
gateway:doctor is the first thing to run when the Go gateway is installed and
webhooks are not arriving — see Webhook gateway.
Flow maintenance
Run
flow:node-usage before you remove a node handler or retire a handler version.
For each type@version it reports how many active flow definitions contain the node
and how often it executed recently, then names the nodes that have no registered
handler and the handler types no tenant uses at all.
The definition counts are the authoritative answer — a node in an active definition
runs sooner or later — while the execution counts reach back only as far as
flow_logs retention, which logs:prune-flow caps at 30 days. The command says so
on every run. Options: --days for the runtime window, --tenant for a single slug,
--type for a single node type, and --json.
flow:audit-graph changes nothing. Findings never change its exit code; it exits non-zero only when the audit itself could not run (an unknown --tenant slug, or a tenant that failed). Publishing does not check the
graph structure yet, so a flow can be active and still fail when a conversation starts.
Options: --tenant for a single slug and --json.
Log partitions
logs:prune-flow accepts --dry-run to preview which partitions would be dropped.
Conversation retention
conversations:prune accepts --dry-run. Dropping is irreversible; threads and
media are kept. See Conversation retention.