Record that a belief was superseded (old -> superseded_by -> new).The successor is either a NEW node created from content (Voyage-embedded)
or an already-owned node named by nodeId. Authority transfers per the
internal adaptive semantics: the successor inherits max(old, new) and the
superseded node decays by 1 - confidence. Both nodes must be owned by the
effective subject; anything else is 404. This is the default “wrong belief”
verb (forget = erasure only).
This route requires the graph:write scope. A key carrying memory:forget or write also qualifies.A missing or invalid credential returns 401 authentication_error. A valid credential without the scope returns 403 permission_denied, and the problem body names the exact scope required.
A dependency is temporarily unavailable. Safe to retry.
Beyond the shared statuses, this route can answer with idempotency_in_flight, idempotency_key_reuse. Every problem body names its own code, and the type URI always resolves to the matching page.Every error is an RFC 9457 application/problem+json body carrying a stable code, a requestId, and a suggestedAction where Exo has one. See Errors.
Exo never overwrites a belief. Supersede keeps the old node, links the new one to it, and transfers authority. The trail is readable afterwards at GET /v1/graph/nodes/{node_id}/history.
Give it either an existing nodeId or new content. With content a successor node is created for you and created comes back true.
This is how you close a contradiction. There is no resolve route: supersede the side that lost.
Exactly one of content (create a successor node from text) or nodeId
(link an already-owned node as the successor) must be set. confidence in
[0,1] drives the authority transfer (the superseded belief decays by
1 - confidence; default 1.0 fully demotes it, matching the internal
adaptive supersession semantics).