Skip to Content

Duplicates

When several people review the same page, the same problem is often reported more than once. Merging folds the duplicate threads into one thread, so the problem appears once in the list and the kept thread shows how many people reported it.

You merge threads with a coding agent connected over MCP or with the REST API. The web app, the Chrome extension and the review badge don’t have a merge control.


Merge with a coding agent

Ask your agent to find and merge duplicates, for example:

Find open threads on the checkout page that report the same problem and merge them.

The agent calls find_similar to find likely duplicates, then merge_items to merge them. merge_items is marked as destructive, so most clients ask you to approve it first. See find_similar and merge_items.

Merge with the API

Send the thread to keep as itemId and the duplicates as duplicateIds:

curl -X POST https://app.skyelight.ai/api/v1/items/merge \
  -H "Authorization: Bearer $SKYELIGHT_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "itemId": "ITEM_ID", "duplicateIds": ["DUP_1", "DUP_2"] }'

The response gives the number of threads merged and the ID of the thread they were merged into:

{ "merged": 2, "canonicalId": "ITEM_ID" }

See Merge duplicates in the endpoint reference.

What a merge changes

  • Each duplicate is hidden from thread lists, in the app and over MCP and the API.
  • Nothing is deleted. Each duplicate keeps its replies, author, anchor, screenshot and page context.
  • The kept thread counts each duplicate as an extra report. list_items and get_item return this as reportCount when it’s more than 1.
  • Threads that were already merged into a duplicate move to the kept thread.
  • If the thread you keep was itself merged into another thread, the duplicates go to that other thread, and canonicalId in the response names it.

Rules and limits

  • Owners, admins and collaborators can merge. Reviewers can’t.
  • All the threads must be in the same project. A duplicate from another project is refused as not found.
  • Merge threads, not replies. A reply ID is refused.
  • A merge takes up to 50 duplicates.
  • The kept thread and threads already merged into it are skipped if you list them as duplicates, and they don’t count toward merged.
  • A merge can’t be undone through MCP, the API or the app.
Last updated on