MCPcopy
hub / github.com/Dimillian/CodexMonitor / mergeThreadItems

Function mergeThreadItems

src/utils/threadItems.listOps.ts:208–227  ·  view source on GitHub ↗
(
  remoteItems: ConversationItem[],
  localItems: ConversationItem[],
)

Source from the content-addressed store, hash-verified

206}
207
208export function mergeThreadItems(
209 remoteItems: ConversationItem[],
210 localItems: ConversationItem[],
211) {
212 if (!localItems.length) {
213 return remoteItems;
214 }
215 const byId = new Map(remoteItems.map((item) => [item.id, item]));
216 const localItemsById = new Map(localItems.map((item) => [item.id, item]));
217 const merged = remoteItems.map((item) => {
218 const local = localItemsById.get(item.id);
219 return local ? chooseRicherItem(item, local) : item;
220 });
221 localItems.forEach((item) => {
222 if (!byId.has(item.id)) {
223 merged.push(item);
224 }
225 });
226 return merged;
227}

Callers 2

buildResumeHydrationPlanFunction · 0.90

Calls 1

chooseRicherItemFunction · 0.85

Tested by

no test coverage detected