@assistant-ui/react-ag-ui 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -42,11 +42,13 @@ export declare class AgUiThreadController {
42
42
  private state;
43
43
  private abortController;
44
44
  private activeRunAgent;
45
+ private runCount;
45
46
  private history;
46
47
  private readonly assistantHistoryParents;
47
48
  private readonly subagentParentToolCallIds;
48
49
  private readonly snapshotHistoryIds;
49
50
  private readonly persistedHistoryIds;
51
+ private readonly unappendedHistoryIds;
50
52
  private readonly historyWrites;
51
53
  private _historyImportPromise;
52
54
  private _loadPromise;
@@ -179,6 +181,7 @@ export declare class AgUiThreadController {
179
181
  private markPendingAssistantHistory;
180
182
  private persistSettledAssistant;
181
183
  private persistAssistantHistory;
184
+ private appendOnce;
182
185
  private appendHistoryItem;
183
186
  }
184
187
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"AgUiThreadController.d.ts","sourceRoot":"","sources":["../../src/runtime/AgUiThreadController.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EAEzB,4BAA4B,EAC5B,SAAS,EAET,oBAAoB,EACpB,aAAa,EAEb,wBAAwB,EACzB,MAAM,oBAAoB,CAAC;AAS5B,OAAO,KAAK,EACV,aAAa,EAKd,MAAM,eAAe,CAAC;AAQvB,OAAO,KAAK,EAAE,MAAM,EAAE,oBAAiB;AAEvC,OAAO,KAAK,EAGV,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACtB,mBAAgB;AAEjB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AA+JhE,KAAK,YAAY,GAAG,CAClB,OAAO,EAAE,mBAAmB,KACzB,cAAc,CAAC,kBAAkB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACvD,KAAK,eAAe,GAAG;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAYF,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACrD,aAAa,CAAC,EAAE,qBAAqB,CAAC,eAAe,CAAC,CAAC;IACvD,gBAAgB,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACpD,0BAA0B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC;CACnC,CAAC;AAsGF,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,aAAa,CAAyC;IAC9D,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,0BAA0B,CAAsB;IACxD,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,OAAO,CAAC,QAAQ,CAOF;IACd,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA8B;IAChE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IAExD,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAerB;IACH,OAAO,CAAC,KAAK,CAA4C;IACzD,OAAO,CAAC,eAAe,CAAgC;IAGvD,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAoC;IAC5E,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAGtC;IACJ,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;IAC3D,OAAO,CAAC,qBAAqB,CAA4B;IACzD,OAAO,CAAC,YAAY,CAA4B;gBAEpC,OAAO,EAAE,WAAW;IAqBhC,SAAS,GAAI,UAAU,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC,CAG9C;IAEF,WAAW;mBArEM,OAAO;mBACP,OAAO;2BACC,yBAAyB;eACrC,iBAAiB,GAAG,SAAS;MAwErC;IAEL,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,aAAa;IAKrB,aAAa,CAAC,OAAO,EAAE,WAAW;IAkClC,aAAa,CAAC,OAAO,EAAE,gBAAgB;IAIvC,aAAa;IAOb,WAAW,IAAI,SAAS,aAAa,EAAE;IAIvC,oBAAoB,IAAI,yBAAyB;IAIjD,QAAQ,IAAI,iBAAiB,GAAG,SAAS;IAIzC,SAAS,IAAI,OAAO;IAIpB,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA+DhC,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,yBAAyB;IAoB3B,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BnD,qBAAqB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAQnD,OAAO,CAAC,+BAA+B;IAQvC,OAAO,CAAC,WAAW;IAeb,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,MAAM,CACV,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,MAAM,GAAE;QAAE,SAAS,CAAC,EAAE,SAAS,CAAA;KAAO,GACrC,OAAO,CAAC,IAAI,CAAC;IAQV,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAc7B,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,kBAAkB;IAapB,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAa9C,iBAAiB,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B1E,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,2BAA2B;IAYnC,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,0BAA0B;IAQlC,oBAAoB,IAAI;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;KACtC,GAAG,IAAI;IAYR,mBAAmB,IAAI;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,GAAG,IAAI;IAkBF,wBAAwB,CAC5B,SAAS,EAAE,SAAS,eAAe,EAAE,GACpC,OAAO,CAAC,IAAI,CAAC;IAoChB;;;;;OAKG;YACW,mBAAmB;IAYjC;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAYjC,OAAO,CAAC,0BAA0B;IA4B5B,qBAAqB,CACzB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,IAAI,CAAC;IAwEV,SAAS,CACb,OAAO,EAAE,mBAAmB,EAC5B,SAAS,CAAC,EAAE,SAAS,eAAe,EAAE,GACrC,OAAO,CAAC,IAAI,CAAC;IAgDhB,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,yBAAyB;IAiCjC,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,sBAAsB;IAoC9B,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAiBhE,OAAO,CAAC,yBAAyB;IAiBjC,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAmE5C,qBAAqB,CAAC,OAAO,EAAE;QACnC,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,wBAAwB,CAAC;KACvC,GAAG,OAAO,CAAC,IAAI,CAAC;IA2DjB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAqCrD,OAAO,CAAC,2BAA2B;IAqCnC,OAAO,CAAC,6BAA6B;IAwCrC,OAAO,CAAC,cAAc;IAMtB,qBAAqB,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,IAAI;IAkH/D,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAQjD,QAAQ,CACN,IAAI,EACA,iBAAiB,GACjB,CAAC,CAAC,IAAI,EAAE,iBAAiB,GAAG,SAAS,KAAK,iBAAiB,CAAC,GAC/D,IAAI;IAUP,UAAU,IAAI,IAAI;IAKlB,gBAAgB,IAAI,IAAI;YA0BV,QAAQ;YA84BR,mBAAmB;IA4DjC,OAAO,CAAC,aAAa;IAoDrB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,0BAA0B;IAyBlC,OAAO,CAAC,mBAAmB;IA8D3B,OAAO,CAAC,sBAAsB;IAmJ9B,OAAO,CAAC,mBAAmB;IAoC3B,OAAO,CAAC,wBAAwB;IA4BhC,OAAO,CAAC,6BAA6B;IA2ErC,OAAO,CAAC,8BAA8B;IAsEtC;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;IA+D9B,OAAO,CAAC,sBAAsB;IA6B9B,OAAO,CAAC,WAAW;IAiJnB,OAAO,CAAC,0BAA0B;IAyBlC,OAAO,CAAC,uBAAuB;IAgG/B,OAAO,CAAC,6BAA6B;IA8DrC,OAAO,CAAC,sBAAsB;IAkO9B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,uBAAuB;IAwD/B,OAAO,CAAC,iBAAiB;CAoB1B"}
1
+ {"version":3,"file":"AgUiThreadController.d.ts","sourceRoot":"","sources":["../../src/runtime/AgUiThreadController.ts"],"names":[],"mappings":"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"}
@@ -94,13 +94,29 @@ const replaceTextParts = (content, source) => {
94
94
  }
95
95
  return result;
96
96
  };
97
- const settleNestedContent = (content, status) => mapToolCallPartsDeep(content, (part) => part.messages ? {
98
- ...part,
99
- messages: part.messages.map((message) => message.role === "assistant" && message.status?.type === "running" ? {
100
- ...message,
101
- status
102
- } : message)
103
- } : part).content;
97
+ /**
98
+ * Settles nested sub-agent messages with `status`. Without `runSubagentIds`,
99
+ * only running messages settle. With it, only that run's sub-agent messages
100
+ * settle, and an incomplete `status` also settles one still waiting on its own
101
+ * tool call: the run that could answer it has ended.
102
+ */
103
+ const settleNestedContent = (content, status, runSubagentIds) => mapToolCallPartsDeep(content, (part) => {
104
+ if (!part.messages) return part;
105
+ let changed = false;
106
+ const messages = part.messages.map((message) => {
107
+ if (message.role !== "assistant") return message;
108
+ if (!(!runSubagentIds ? message.status?.type === "running" : runSubagentIds.has(message.id) && (message.status?.type === "running" || status.type === "incomplete" && message.status?.type === "requires-action" && message.status.reason === "tool-calls"))) return message;
109
+ changed = true;
110
+ return {
111
+ ...message,
112
+ status
113
+ };
114
+ });
115
+ return changed ? {
116
+ ...part,
117
+ messages
118
+ } : part;
119
+ }).content;
104
120
  const invokeRuntimeCallback = (name, callback, ...args) => {
105
121
  invokeUserCallback("react-ag-ui", name, callback, ...args);
106
122
  };
@@ -149,11 +165,13 @@ var AgUiThreadController = class {
149
165
  state = createAgUiThreadState();
150
166
  abortController = null;
151
167
  activeRunAgent = null;
168
+ runCount = 0;
152
169
  history;
153
170
  assistantHistoryParents = /* @__PURE__ */ new Map();
154
171
  subagentParentToolCallIds = /* @__PURE__ */ new Map();
155
172
  snapshotHistoryIds = /* @__PURE__ */ new Set();
156
173
  persistedHistoryIds = /* @__PURE__ */ new Set();
174
+ unappendedHistoryIds = /* @__PURE__ */ new Set();
157
175
  historyWrites = createHistoryWriteChain();
158
176
  _historyImportPromise;
159
177
  _loadPromise;
@@ -252,6 +270,7 @@ var AgUiThreadController = class {
252
270
  this.subagentParentToolCallIds.clear();
253
271
  this.snapshotHistoryIds.clear();
254
272
  this.persistedHistoryIds.clear();
273
+ this.unappendedHistoryIds.clear();
255
274
  for (const { message } of repo.messages) this.persistedHistoryIds.add(message.id);
256
275
  this.publishUpdate();
257
276
  if (repo.state !== void 0) this.loadExternalState(repo.state);
@@ -975,6 +994,8 @@ var AgUiThreadController = class {
975
994
  const assistantParentId = parent ? parentId : this.session.headId;
976
995
  let assistantMessageId;
977
996
  let snapshotAssistantId;
997
+ const importedRunAssistants = /* @__PURE__ */ new Set();
998
+ const runSubagentIds = /* @__PURE__ */ new Set();
978
999
  let replayInterruptMessageId;
979
1000
  let assistantCollided = false;
980
1001
  const heldMessages = /* @__PURE__ */ new Map();
@@ -1249,9 +1270,29 @@ var AgUiThreadController = class {
1249
1270
  adoptServerMessageId(serverId, true, frameOpenIds);
1250
1271
  }
1251
1272
  });
1273
+ const settleRunSubagents = (status) => {
1274
+ if (runSubagentIds.size === 0) return;
1275
+ for (const message of this.session.getMessages()) {
1276
+ if (message.role !== "assistant") continue;
1277
+ const content = settleNestedContent(message.content, status, runSubagentIds);
1278
+ if (content === message.content) continue;
1279
+ this.updateAssistantMessage(message.id, { content });
1280
+ this.persistSettledAssistant(message.id);
1281
+ }
1282
+ };
1283
+ const persistRunAssistants = (aboveAnswer) => {
1284
+ for (const message of this.session.getMessages()) {
1285
+ if (message.id === assistantMessageId) {
1286
+ if (aboveAnswer) return;
1287
+ continue;
1288
+ }
1289
+ if (message.role === "assistant" && !runStartMessageIds.has(message.id)) this.persistAssistantHistory(message.id);
1290
+ }
1291
+ };
1252
1292
  let runFinished = false;
1253
1293
  const dispatch = (event) => {
1254
1294
  if (this.abortController !== abortController) return;
1295
+ if (event.type === "SUBAGENT_STARTED") runSubagentIds.add(event.subagentRunId);
1255
1296
  if (event.type === "RUN_FINISHED") {
1256
1297
  runFinished = true;
1257
1298
  if (event.outcome?.type === "interrupt") replayInterruptMessageId = assistantMessageId ?? replayTail;
@@ -1263,10 +1304,21 @@ var AgUiThreadController = class {
1263
1304
  for (const openToolCallIds of heldMessages.values()) openToolCallIds.delete(event.toolCallId);
1264
1305
  }
1265
1306
  settlingRun = event.type === "RUN_FINISHED" || event.type === "RUN_ERROR" || event.type === "RUN_CANCELLED";
1307
+ if (settlingRun) persistRunAssistants(true);
1266
1308
  const beforeSnapshot = event.type === "MESSAGES_SNAPSHOT" ? this.session.getMessages() : [];
1267
1309
  try {
1268
1310
  const nextAssistantMessageId = this.handleEvent(aggregator, event, assistantMessageId, joinStrategy, runStartMessageIds, hasRunUserBoundary, candidateContexts.size ? reconcileReplaySnapshot : void 0);
1269
1311
  if (event.type === "MESSAGES_SNAPSHOT") {
1312
+ const previousIds = new Set(beforeSnapshot.map(({ id }) => id));
1313
+ for (const message of this.session.getMessages()) {
1314
+ if (message.role !== "assistant" || runStartMessageIds.has(message.id)) continue;
1315
+ if (!previousIds.has(message.id)) importedRunAssistants.add(message.id);
1316
+ if (!this.persistedHistoryIds.has(message.id) && this.historyWrites.pending(message.id) === void 0) this.snapshotHistoryIds.delete(message.id);
1317
+ }
1318
+ for (const messageId of importedRunAssistants) {
1319
+ const item = this.session.tryGetMessage(messageId);
1320
+ if (item) this.markPendingAssistantHistory(messageId, item.parentId);
1321
+ }
1270
1322
  for (const message of beforeSnapshot) {
1271
1323
  const context = replayContexts.get(message.id);
1272
1324
  const current = this.session.tryGetMessage(message.id)?.message;
@@ -1285,6 +1337,16 @@ var AgUiThreadController = class {
1285
1337
  snapshotAssistantId = tail?.role === "assistant" ? tail.id : void 0;
1286
1338
  }
1287
1339
  }
1340
+ if (event.type === "RUN_ERROR") settleRunSubagents({
1341
+ type: "incomplete",
1342
+ reason: "error",
1343
+ ...event.message !== void 0 ? { error: event.message } : {}
1344
+ });
1345
+ else if (event.type === "RUN_CANCELLED") settleRunSubagents({
1346
+ type: "incomplete",
1347
+ reason: "cancelled"
1348
+ });
1349
+ if (settlingRun) persistRunAssistants(false);
1288
1350
  } finally {
1289
1351
  settlingRun = false;
1290
1352
  }
@@ -1292,6 +1354,7 @@ var AgUiThreadController = class {
1292
1354
  this.abortController = abortController;
1293
1355
  const runAgentInstance = this.agent;
1294
1356
  this.activeRunAgent = runAgentInstance;
1357
+ const runNumber = ++this.runCount;
1295
1358
  let cancelRun = () => dispatch({ type: "RUN_CANCELLED" });
1296
1359
  abortSignal.addEventListener("abort", () => {
1297
1360
  cancelRun();
@@ -1354,6 +1417,7 @@ var AgUiThreadController = class {
1354
1417
  } finally {
1355
1418
  const current = assistantMessageId ? this.session.tryGetMessage(assistantMessageId)?.message : void 0;
1356
1419
  if (this.abortController === abortController && current?.role === "assistant" && current.status?.type === "running") {
1420
+ persistRunAssistants(true);
1357
1421
  const status = {
1358
1422
  type: "incomplete",
1359
1423
  reason: "error",
@@ -1365,6 +1429,15 @@ var AgUiThreadController = class {
1365
1429
  content: settleNestedContent(current.content, status)
1366
1430
  });
1367
1431
  }
1432
+ if (this.abortController === abortController && !runFinished) {
1433
+ const settled = assistantMessageId ? this.session.tryGetMessage(assistantMessageId)?.message : void 0;
1434
+ settleRunSubagents(settled?.status?.type === "incomplete" ? settled.status : {
1435
+ type: "incomplete",
1436
+ reason: "error",
1437
+ error: "The connection ended before the answer finished."
1438
+ });
1439
+ }
1440
+ if (this.runCount === runNumber) persistRunAssistants(false);
1368
1441
  this.finishRun(abortController);
1369
1442
  }
1370
1443
  if (pendingError) {
@@ -1582,9 +1655,11 @@ var AgUiThreadController = class {
1582
1655
  if (!collidesWithExisting) ids.add(newId);
1583
1656
  }
1584
1657
  const pendingWrite = this.historyWrites.move(oldId, collidesWithExisting ? void 0 : newId);
1658
+ if (this.unappendedHistoryIds.delete(oldId) && !collidesWithExisting) this.unappendedHistoryIds.add(newId);
1585
1659
  if (pendingWrite && !collidesWithExisting) pendingWrite.then(() => {
1586
1660
  this.persistedHistoryIds.delete(oldId);
1587
1661
  this.persistedHistoryIds.add(newId);
1662
+ this.unappendedHistoryIds.delete(newId);
1588
1663
  }, () => {});
1589
1664
  this.publishUpdate();
1590
1665
  return !collidesWithExisting;
@@ -2109,7 +2184,10 @@ var AgUiThreadController = class {
2109
2184
  const wasPersisted = this.persistedHistoryIds.has(messageId);
2110
2185
  const update = history.update;
2111
2186
  if (update !== void 0 && (wasPersisted || this.snapshotHistoryIds.has(messageId) || this.historyWrites.pending(messageId) !== void 0)) {
2112
- const write = this.historyWrites.chain(messageId, () => update.call(history, {
2187
+ const write = this.historyWrites.chain(messageId, () => this.unappendedHistoryIds.has(messageId) ? this.appendOnce(history, messageId, {
2188
+ parentId,
2189
+ message
2190
+ }) : update.call(history, {
2113
2191
  parentId,
2114
2192
  message
2115
2193
  }));
@@ -2136,12 +2214,17 @@ var AgUiThreadController = class {
2136
2214
  this.logger.error?.("[agui] failed to append history entry", error);
2137
2215
  });
2138
2216
  }
2217
+ async appendOnce(history, messageId, item) {
2218
+ await history.append(item);
2219
+ this.unappendedHistoryIds.delete(messageId);
2220
+ }
2139
2221
  appendHistoryItem(parentId, message) {
2140
2222
  if (!this.history || this.persistedHistoryIds.has(message.id)) return;
2141
2223
  const pending = this.historyWrites.pending(message.id);
2142
2224
  if (pending) return pending;
2143
- const append = this.history.append.bind(this.history);
2144
- const write = this.historyWrites.chain(message.id, () => append({
2225
+ const history = this.history;
2226
+ this.unappendedHistoryIds.add(message.id);
2227
+ const write = this.historyWrites.chain(message.id, () => this.appendOnce(history, message.id, {
2145
2228
  parentId,
2146
2229
  message
2147
2230
  }));