Refresh QNM rollup presence
mesh_heartbeatRefresh a node's 5-minute TTL to keep it live on the mesh roster. Requires node_id from mesh_join; confirm or dry_run required.
Instructions
Refresh one existing node's 5-minute QNM TTL (POST /v1/mesh/heartbeat) — not a first join. Use this when you already have a node_id from mesh_join and transmission radios are LIVE. Do not use it for first-time registration or dropping the node; use mesh_join or mesh_leave instead. Write: refreshes the strict 5-minute TTL (not idempotent). Miss the window and the node is dropped from the live roster. Radios off refuses MESH-OFF. Unknown or expired node_id refuses MESH-UNKNOWN-NODE — join again; no account resurrection. node_id is required. presence may replace the class (live|locked|isolated). Optional tip_hash and prev are 64 hex only (Split the wires + REHEAL: presence + tip hash; no body/diff/vote-to-fix). OPERATOR-OVERRIDE 2026-09-17 armed neighbor_heal. Mutation requires confirm=true (runtime gate) or dry_run=true (preview only, no write). confirm and dry_run stay optional on inputSchema.required. Returns updated presence and TTL. Body on this plane refuses MESH-NO-BYTES. Same prev + two tips refuses MESH-EQUIVOCATION. Vote-to-fix still refuses MESH-NO-NEIGHBOR-HEAL.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| prev | No | Optional 64-hex prev the receiver already holds. Same prev + a different tip_hash isolates this node (MESH-EQUIVOCATION). | |
| confirm | No | Documented confirmation flag. Optional in inputSchema.required (connector refresh must not break). tools/call still refuses MCP-CONFIRM-REQUIRED when confirm is missing or false unless dry_run=true (preview, no write). | |
| dry_run | No | Optional preview flag. When true, return a would-mutate preview and do not write. Alternative to confirm=true. Does not mutate. | |
| node_id | Yes | Required node id returned by mesh_join. | |
| presence | No | Optional replacement presence class. Other values refuse MESH-BAD-INPUT. | |
| tip_hash | No | Optional 64-hex tip hash on the fast tick. Fixed-size. No body. Split the wires. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | FragGate or fabric code when present: FG-OK, FG-HALLUC-TOOL, FG-STUB, FG-LOCAL-ONLY, FG-UNKNOWN-OP, FG-GATE-REFUSE, FG-LAMB-REFUSE, or a module refuse such as MESH-* / AKM-*. | |
| door | No | Door name. The public door is fraggate. | |
| ran_in | No | Execution locale (for example aziel-runtime) when present. | |
| result | No | FragGate body: ok, code, door, slug, op, engine_digest, ran_in, provenance, refusal, limitations, receipt, plus the engine result. Unknown names refuse FG-HALLUC-TOOL; stubs refuse FG-STUB. | |
| status | No | HTTP-like status when present on wrappers (200 ok; 400+ error / refuse). | |
| display | No | Human-facing envelope. Show title and summary, then take the next input. | |
| receipt | No | Optional receipt, ledger tip, or TemporalLock/ForgeReceipts exit when the door stamped one. | |
| refusal | No | Explicit refuse object, code, or message when the door or engine refused. | |
| engine_op | No | Resolved engine op when present (often inside result). | |
| ledger_tip | No | Ask/refuse ledger tip when the door stamped one. | |
| provenance | No | Provenance / input packet when the pipeline attached one. | |
| session_id | No | Raw session id when session plumbing was used. Hidden unless the user asked for the chain. | |
| engine_slug | No | Resolved engine slug when present (often inside result). | |
| limitations | No | Capability limitations or Remain-OFF notes when present. | |
| engine_digest | No | 64-hex engine_digest when a true in-process engine ran (often inside result). |