Files
bookhoard/docs/developer/api/conflicts/resolve_conflict.md
T
John O'Keefe eacc33bfac docs(conflicts,queue): Beam WO5 batch — 13 endpoints backfilled, registry pinned
Beam added frontmatter + provenance + labeled examples to the 7 conflict and
6 queue docs, fixing real field drift on the way (resolve response keys,
bulk result shape, dismiss-all deleted count, queue stats counts).

Claude registry verification found TWO Beam catches of Claude's own draft:
- queue routes use :device_id / :item_id params (registry first draft said :id)
- resolve_conflict DOES take a body (ConflictResolutionRequest) — registry
  first draft said nil
Both fixed; gate then surfaced one real Beam defect: example-request used a
nonexistent "resolution" field in resolve + bulk-resolve (real contract:
winner=<source|manual> with required manual_data for manual; strategy=
most_recent|highest_progress|manual). Fixed in the docs.

Pinned by type: ConflictListResponse, ConflictDetailResponse,
ConflictResolveResponse, BulkResolveRequest/Response, QueueStatsResponse,
ConflictResolutionRequest. dismiss-all deleted is an int count.
2026-10-24 15:37:45 -04:00

1.4 KiB

method, path, auth, area
method path auth area
POST /api/conflicts/:id/resolve jwt conflicts

Resolve Conflict

Resolve a specific conflict by choosing which version to keep.

Endpoint: POST /api/conflicts/:id/resolve Auth: Required Content-Type: application/json

Path Parameters

Parameter Type Required Description
id string (UUID) Yes Conflict UUID

Request Body

Field Type Required Description
resolution string Yes Resolution strategy: "device", "server", or "highest_progress"

Example Request

{
  "winner": "kobo"
}

winner is one of the conflict's source keys (e.g. "kobo", "koreader", "web") or "manual" — the latter requires manual_data.

Response (200 OK)

{
  "conflict_resolved": true,
  "applied_to": {},
  "devices_synced": []
}

Error Responses

Code Description
400 Invalid resolution strategy
401 Invalid or expired token
404 Conflict not found
400 Conflict already resolved