Skip to main content
Version: v0.9.0a2
Integrator

Conflict Resolution

2 min readAgent developer ยท Node operatorSpec-15 + Spec-03

What this page is

A quick reference for managing contradictory facts via the conflict API. See Conflict Semantics for the underlying detection and resolution model.

Coming soon

Full guide content is planned for the next docs sprint.

What is a conflict?โ€‹

A conflict occurs when two facts share the same (entity, relation, scope) tuple but carry different values. Stigmem stores both facts and creates a ConflictRecord โ€” it never silently overwrites. See Spec-15-Fact-Semantics and the conflict routes in Spec-03-HTTP-API.

Reserved-namespace exemption.

Facts whose entity or relation begins with the bare stigmem: prefix (e.g., stigmem:conflict:status, stigmem:resolves) are exempt from sibling-detection. These are protocol state transitions, not semantic content. stigmem:// URI entities (user-created content) are not exempt and are subject to normal contradiction detection.

List open conflictsโ€‹

curl -s 'http://localhost:8000/v1/conflicts?status=open' \
-H 'Authorization: Bearer dev-key' | jq .

Resolve by selecting a winnerโ€‹

curl -s -X POST http://localhost:8000/v1/conflicts/<conflict-id>/resolve \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer dev-key' \
-d '{"winning_fact_id": "<fact-a-or-fact-b-id>"}' | jq .

Resolve with a fresh valueโ€‹

curl -s -X POST http://localhost:8000/v1/conflicts/<conflict-id>/resolve \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer dev-key' \
-d '{"new_value": "dark mode (user confirmed)"}' | jq .

Topics to be coveredโ€‹

Conflict detection at write time

Resolution strategies

Winner selection vs. fresh value (Spec-03-HTTP-API conflict resolution route).

Conflict propagation across federated nodes

Using the include_contradicted query flag

See the API Reference for GET /v1/conflicts and POST /v1/conflicts/{id}/resolve.