Refresh QNM rollup presence
mesh_heartbeatRestore a registered node to live from stale by sending one durable heartbeat using its node_id; requires confirm=true or dry_run=true and refuses unregistered or expired nodes.
Instructions
Beat one registered node (POST /v1/mesh/heartbeat) — restores live from stale; 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: one beat on a durable session. Restores presence_class live (or locked/isolated if that was declared) from stale. Does not delete a stale row. {slug}-worker refresh still uses the strict 5-minute TTL and is not a user heartbeat. Radios off refuses MESH-OFF. A seal mismatch refuses MESH-SESSION-SEAL and does not count as live. Unknown node_id, or a row past the 14-day grace, refuses MESH-UNKNOWN-NODE — join again; no account resurrection. node_id is required. presence may replace the declared class (live|locked|isolated). heartbeat_mode may switch active|idle|asleep. 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. dry_run still returns FG-HALLUC-TOOL, FG-STUB, FG-UNKNOWN-OP, or FG-LOCAL-ONLY when a confirm call would refuse. confirm is consent, not tenant auth, and it does not upgrade shared public-demo isolation. Returns updated presence_class. Stale becomes the declared presence. 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. confirm is consent to run the call. It is not tenant auth and it does not upgrade shared public-demo isolation. | |
| dry_run | No | Optional preview flag. When true, do not write and do not stamp a ledger tip. Allowlist, hallucination, stub, and local-only checks still run and return the same FragGate refuse code a confirm call would get. MCP-DRY-RUN is returned only when that call would have been allowed to proceed. confirm is consent, not tenant auth, and it does not upgrade shared public-demo isolation. | |
| 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. | |
| heartbeat_mode | No | Optional adaptive beat. active 15–30s, idle 2–5 min, asleep 15–30 min. One beat restores live from stale. |
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 display.action, title, and summary, then take the next input. Never echo raw tool names. | |
| 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). |