@agentunion/fastaun 0.5.33 → 0.5.34

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.
Files changed (89) hide show
  1. package/CHANGELOG.md +30 -2
  2. package/README.md +28 -26
  3. package/_packed_docs/CHANGELOG.md +30 -2
  4. package/_packed_docs/INDEX.md +17 -3
  5. package/_packed_docs/KITE_DOCS_GUIDE.md +10 -4
  6. package/_packed_docs/protocol/03-Gateway-/350/277/236/346/216/245/346/250/241/345/274/217.md +58 -8
  7. package/_packed_docs/sdk/0.5.33-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +464 -316
  8. package/_packed_docs/sdk/0.5.33-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +499 -304
  9. package/_packed_docs/sdk/0.5.34-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +133 -0
  10. package/_packed_docs/sdk/0.5.34-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +107 -0
  11. package/_packed_docs/sdk/01-/345/277/253/351/200/237/345/274/200/345/247/213.md +16 -13
  12. package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +13 -1
  13. package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +17 -7
  14. package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +55 -14
  15. package/_packed_docs/sdk/09-collab-rpc-manual.md +48 -30
  16. package/_packed_docs/sdk/09-custody-api-manual.md +3 -3
  17. package/_packed_docs/sdk/09-group-rpc-manual.md +53 -6
  18. package/_packed_docs/sdk/09-message-rpc-manual.md +22 -0
  19. package/_packed_docs/sdk/09-meta-rpc-manual.md +2 -1
  20. package/_packed_docs/sdk/09-payload-reference.md +9 -8
  21. package/_packed_docs/sdk/09-proxy-rpc-manual.md +20 -14
  22. package/_packed_docs/sdk/09-storage-rpc-manual.md +1698 -1659
  23. package/_packed_docs/sdk/09-stream-rpc-manual.md +33 -20
  24. package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +11 -9
  25. package/_packed_docs/sdk/AUN/344/272/213/344/273/266/345/217/221/345/270/203/350/256/242/351/230/205/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +53 -28
  26. package/_packed_docs/sdk/AUN/344/272/213/344/273/266/345/217/221/345/270/203/350/256/242/351/230/205/345/274/200/345/217/221/347/247/273/346/244/215/346/214/207/345/215/227.md +62 -28
  27. package/_packed_docs/sdk/INDEX.md +21 -9
  28. package/_packed_docs/sdk/README.md +11 -6
  29. package/dist/auth.js +8 -2
  30. package/dist/auth.js.map +1 -1
  31. package/dist/client/control-messages.js +2 -2
  32. package/dist/client/control-messages.js.map +1 -1
  33. package/dist/client/delivery.d.ts +5 -0
  34. package/dist/client/delivery.js +146 -32
  35. package/dist/client/delivery.js.map +1 -1
  36. package/dist/client/lifecycle.js +3 -0
  37. package/dist/client/lifecycle.js.map +1 -1
  38. package/dist/client/rpc-budget.d.ts +21 -0
  39. package/dist/client/rpc-budget.js +82 -0
  40. package/dist/client/rpc-budget.js.map +1 -0
  41. package/dist/client/rpc-pipeline.d.ts +3 -0
  42. package/dist/client/rpc-pipeline.js +166 -60
  43. package/dist/client/rpc-pipeline.js.map +1 -1
  44. package/dist/client/sync-channels.d.ts +89 -0
  45. package/dist/client/sync-channels.js +489 -0
  46. package/dist/client/sync-channels.js.map +1 -0
  47. package/dist/client/v2-e2ee.d.ts +4 -1
  48. package/dist/client/v2-e2ee.js +401 -298
  49. package/dist/client/v2-e2ee.js.map +1 -1
  50. package/dist/client.d.ts +2 -0
  51. package/dist/client.js +63 -1
  52. package/dist/client.js.map +1 -1
  53. package/dist/index.d.ts +1 -1
  54. package/dist/index.js.map +1 -1
  55. package/dist/pubsub/binding.js +14 -1
  56. package/dist/pubsub/binding.js.map +1 -1
  57. package/dist/pubsub/channel.d.ts +4 -0
  58. package/dist/pubsub/channel.js +26 -0
  59. package/dist/pubsub/channel.js.map +1 -1
  60. package/dist/pubsub/client.d.ts +9 -0
  61. package/dist/pubsub/client.js +154 -31
  62. package/dist/pubsub/client.js.map +1 -1
  63. package/dist/pubsub/credentials.d.ts +3 -0
  64. package/dist/pubsub/credentials.js +57 -20
  65. package/dist/pubsub/credentials.js.map +1 -1
  66. package/dist/pubsub/index.d.ts +3 -0
  67. package/dist/pubsub/index.js +69 -53
  68. package/dist/pubsub/index.js.map +1 -1
  69. package/dist/pubsub/service.d.ts +3 -0
  70. package/dist/pubsub/service.js +167 -12
  71. package/dist/pubsub/service.js.map +1 -1
  72. package/dist/pubsub/types.d.ts +2 -0
  73. package/dist/storage/lowlevel.d.ts +3 -1
  74. package/dist/storage/lowlevel.js +13 -0
  75. package/dist/storage/lowlevel.js.map +1 -1
  76. package/dist/storage/types.d.ts +10 -0
  77. package/dist/storage/types.js.map +1 -1
  78. package/dist/storage/vfs.d.ts +3 -1
  79. package/dist/storage/vfs.js +2 -2
  80. package/dist/storage/vfs.js.map +1 -1
  81. package/dist/tools/cross-sdk-agent.d.ts +55 -5
  82. package/dist/tools/cross-sdk-agent.js +88 -21
  83. package/dist/tools/cross-sdk-agent.js.map +1 -1
  84. package/dist/transport.d.ts +12 -0
  85. package/dist/transport.js +91 -6
  86. package/dist/transport.js.map +1 -1
  87. package/dist/version.d.ts +1 -1
  88. package/dist/version.js +1 -1
  89. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"control-messages.js","sourceRoot":"","sources":["../../src/client/control-messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control-messages.js","sourceRoot":"","sources":["../../src/client/control-messages.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,9 @@ export declare class MessageDeliveryEngine {
48
48
  private readonly seqTrackerNamespaceGenerations;
49
49
  private readonly peerRecoveryTasks;
50
50
  private readonly peerRecoveryNeeds;
51
+ private readonly peerVolatileNeeds;
52
+ private peerVolatileTask;
53
+ private readonly oversizedPulls;
51
54
  private readonly peerForwardNeeds;
52
55
  private readonly peerPushVersions;
53
56
  private peerCatalogVersion;
@@ -113,6 +116,7 @@ export declare class MessageDeliveryEngine {
113
116
  private canClosePeerTail;
114
117
  pullPeers(params?: Record<string, unknown>, background?: boolean): Promise<Record<string, unknown>>;
115
118
  refreshPendingPeers(): void;
119
+ private schedulePeerVolatileRecovery;
116
120
  schedulePeerRecovery(sender: string, head?: number, volatile?: boolean): void;
117
121
  private isPullOperationCurrent;
118
122
  private ensurePullOperationCurrent;
@@ -172,6 +176,7 @@ export declare class MessageDeliveryEngine {
172
176
  private endRealtimeSync;
173
177
  hasPendingPull(ns: string): boolean;
174
178
  pendingPullUpper(ns: string): number;
179
+ pendingHistoryNamespaces(): string[];
175
180
  hasAnyPendingPull(): boolean;
176
181
  onPullGateIdle(ns: string): void;
177
182
  queueMessageClassPull(params: Record<string, any>): void;
@@ -14,6 +14,11 @@ const GROUP_RECALL_SEEN_LIMIT = 10_000;
14
14
  const VOLATILE_SEEN_LIMIT = 10_000;
15
15
  const SEQ_TRACKER_PERSIST_FLUSH_DELAY_MS = 200;
16
16
  const BACKGROUND_PULL_RETRY_DELAY_MS = 250;
17
+ function isOversizedPullError(error) {
18
+ const failure = error;
19
+ return [failure?.data?.code, failure?.data?.reason, failure?.stringCode].includes('OVERSIZED_MESSAGE')
20
+ || String(failure?.message ?? '').includes('OVERSIZED_MESSAGE');
21
+ }
17
22
  function isTerminalGroupPullError(error) {
18
23
  if (!error || typeof error !== 'object')
19
24
  return false;
@@ -135,6 +140,9 @@ export class MessageDeliveryEngine {
135
140
  seqTrackerNamespaceGenerations = new Map();
136
141
  peerRecoveryTasks = new Map();
137
142
  peerRecoveryNeeds = new Map();
143
+ peerVolatileNeeds = new Set();
144
+ peerVolatileTask = null;
145
+ oversizedPulls = new Set();
138
146
  peerForwardNeeds = new Map();
139
147
  peerPushVersions = new Map();
140
148
  peerCatalogVersion = null;
@@ -163,6 +171,7 @@ export class MessageDeliveryEngine {
163
171
  this.automaticPullFailures.clear();
164
172
  this.terminalGroupPulls.clear();
165
173
  this.groupPullVersions.clear();
174
+ this.oversizedPulls.clear();
166
175
  }
167
176
  groupPullNamespace(namespace) {
168
177
  let groupId = namespace.startsWith('group_event:') ? namespace.slice('group_event:'.length)
@@ -267,6 +276,17 @@ export class MessageDeliveryEngine {
267
276
  catch (error) {
268
277
  if (!groupCurrent())
269
278
  throw new Error('pull invalidated');
279
+ if (!signal.aborted && generation === this.captureInlineAckGeneration() && isOversizedPullError(error)) {
280
+ this.oversizedPulls.add(namespace);
281
+ this.automaticPullFailures.delete(namespace);
282
+ this.backgroundPullNeeds.delete(namespace);
283
+ const peer = this.peerRecoveryNeeds.get(this.peerSender(namespace));
284
+ if (peer)
285
+ peer.paused = true;
286
+ if (this.groupPullNamespace(namespace))
287
+ this.stopAutomaticGroupPull(namespace, error);
288
+ throw error;
289
+ }
270
290
  if (!signal.aborted && generation === this.captureInlineAckGeneration()
271
291
  && this.groupPullNamespace(namespace) && isTerminalGroupPullError(error)) {
272
292
  this.stopAutomaticGroupPull(namespace, error);
@@ -471,6 +491,8 @@ export class MessageDeliveryEngine {
471
491
  this.peerPullConfirmedThrough.clear();
472
492
  this.peerServerConfirmedAcks.clear();
473
493
  this.peerRecoveryTasks.clear();
494
+ this.peerVolatileNeeds.clear();
495
+ this.peerVolatileTask = null;
474
496
  this.settledDeliveries.clear();
475
497
  this.deliveryInflight.clear();
476
498
  this.peerCatalogTask = null;
@@ -791,6 +813,8 @@ export class MessageDeliveryEngine {
791
813
  }
792
814
  refreshPendingPeers() {
793
815
  this.ensurePeerContext();
816
+ if (this.oversizedPulls.has('message.peers'))
817
+ return;
794
818
  this.peerCatalogVersion = {};
795
819
  if (!this.hasP2pApplicationSubscription())
796
820
  return;
@@ -818,15 +842,57 @@ export class MessageDeliveryEngine {
818
842
  }
819
843
  })();
820
844
  this.peerCatalogTask = task.then(() => ({}), () => ({}));
821
- client._safeAsync(task.catch(() => {
845
+ client._safeAsync(task.catch((error) => {
822
846
  if (generation !== this.captureInlineAckGeneration())
823
847
  return;
848
+ if (isOversizedPullError(error))
849
+ return;
824
850
  const timer = setTimeout(() => { if (generation === this.captureInlineAckGeneration())
825
851
  this.refreshPendingPeers(); }, BACKGROUND_PULL_RETRY_DELAY_MS);
826
852
  timer.unref?.();
827
853
  }).finally(() => { if (generation === this.captureInlineAckGeneration())
828
854
  this.peerCatalogTask = null; }));
829
855
  }
856
+ schedulePeerVolatileRecovery(sender) {
857
+ const client = this.runtime.client;
858
+ const namespace = `${this.peerNamespace(sender)}|volatile`;
859
+ if (this.oversizedPulls.has(namespace))
860
+ return;
861
+ this.peerVolatileNeeds.add(sender);
862
+ if (this.peerVolatileTask)
863
+ return;
864
+ const generation = this.captureInlineAckGeneration(), context = this.ensurePeerContext();
865
+ const current = () => generation === this.captureInlineAckGeneration() && context === this.ensurePeerContext();
866
+ const task = (async () => {
867
+ while (current() && this.peerVolatileNeeds.size && this.hasP2pApplicationSubscription()
868
+ && client._sessionOptions?.background_sync !== false && !client._closing) {
869
+ const peer = this.peerVolatileNeeds.values().next().value;
870
+ this.peerVolatileNeeds.delete(peer);
871
+ try {
872
+ const result = await client._v2E2EE.pullPeerV2Volatile(peer, { background: true, retainMessages: false, maxPages: 1 });
873
+ if (!current())
874
+ return;
875
+ if (!result.complete)
876
+ this.peerVolatileNeeds.add(peer);
877
+ }
878
+ catch (error) {
879
+ if (!current())
880
+ return;
881
+ if (isOversizedPullError(error)) {
882
+ this.oversizedPulls.add(`${this.peerNamespace(peer)}|volatile`);
883
+ client._dispatcher.enqueue('sync.error', { namespace: `${this.peerNamespace(peer)}|volatile`, method: 'message.v2.pull', code: 'OVERSIZED_MESSAGE', error: String(error) });
884
+ }
885
+ else
886
+ client._safeAsync(Promise.reject(error));
887
+ }
888
+ }
889
+ })();
890
+ this.peerVolatileTask = task;
891
+ client._safeAsync(task.finally(() => {
892
+ if (current() && this.peerVolatileTask === task)
893
+ this.peerVolatileTask = null;
894
+ }));
895
+ }
830
896
  schedulePeerRecovery(sender, head = 0, volatile = false) {
831
897
  const client = this.runtime.client;
832
898
  if (!sender || client._closing)
@@ -855,6 +921,11 @@ export class MessageDeliveryEngine {
855
921
  this.peerForwardNeeds.set(namespace, {});
856
922
  return;
857
923
  }
924
+ if (volatile && client._syncChannelCoordinator?.needsSplit?.()
925
+ && (this.peerRecoveryTasks.has(sender) || this.oversizedPulls.has(namespace)))
926
+ this.schedulePeerVolatileRecovery(sender);
927
+ if (this.oversizedPulls.has(namespace))
928
+ return;
858
929
  const need = this.peerRecoveryNeeds.get(sender) ?? { head: 0, volatile: false, pending: false };
859
930
  need.paused = false;
860
931
  need.head = Math.max(need.head, head);
@@ -953,9 +1024,11 @@ export class MessageDeliveryEngine {
953
1024
  }
954
1025
  })();
955
1026
  this.peerRecoveryTasks.set(sender, task);
956
- client._safeAsync(task.catch(() => {
1027
+ client._safeAsync(task.catch((error) => {
957
1028
  if (generation !== this.captureInlineAckGeneration())
958
1029
  return;
1030
+ if (isOversizedPullError(error) || need.paused)
1031
+ return;
959
1032
  const timer = setTimeout(() => {
960
1033
  if (generation === this.captureInlineAckGeneration() && this.peerRecoveryNeeds.get(sender) === need
961
1034
  && !need.paused && !this.peerRecoveryTasks.has(sender))
@@ -1399,6 +1472,8 @@ export class MessageDeliveryEngine {
1399
1472
  this.peerPullConfirmedThrough.clear();
1400
1473
  this.peerServerConfirmedAcks.clear();
1401
1474
  this.peerRecoveryTasks.clear();
1475
+ this.peerVolatileNeeds.clear();
1476
+ this.peerVolatileTask = null;
1402
1477
  }
1403
1478
  deliveryChangedNamespace(event, payload) {
1404
1479
  if (event === 'group.message_created' && isJsonObject(payload)) {
@@ -1669,8 +1744,31 @@ export class MessageDeliveryEngine {
1669
1744
  pendingPullUpper(ns) {
1670
1745
  return this.pendingGroupPullUpper?.get(ns) ?? 0;
1671
1746
  }
1747
+ pendingHistoryNamespaces() {
1748
+ const namespaces = new Set(), client = this.runtime.client, now = Date.now();
1749
+ for (const [sender, need] of this.peerRecoveryNeeds) {
1750
+ const ns = this.peerNamespace(sender);
1751
+ if (need.pending && !need.paused && !this.peerRecoveryTasks.has(sender) && !this.oversizedPulls.has(ns)
1752
+ && (this.automaticPullFailures.get(ns)?.retryAt ?? 0) <= now)
1753
+ namespaces.add(ns);
1754
+ }
1755
+ for (const [ns, need] of this.backgroundPullNeeds) {
1756
+ if (need.messageClassRequest || need.retryAt > now || !(need.probe || need.hasMore)
1757
+ || this.automaticGroupPullStopped(ns) || this.oversizedPulls.has(ns) || this.backgroundPullTasks.has(ns)
1758
+ || this.realtimeSyncing?.has(ns) || this.onlineUnreadHintTasks?.has(ns))
1759
+ continue;
1760
+ const eventScope = ns.startsWith('group_event:');
1761
+ if ((!eventScope && client._rpcPipeline?.hasPullActivity?.(ns, false))
1762
+ || (eventScope && ['pulling', 'processing', 'pulled'].includes(client._rpcPipeline?.getPullLifecycle?.(ns))))
1763
+ continue;
1764
+ if (ns.startsWith('group:') || eventScope || ns === `p2p:${client._aid}`)
1765
+ namespaces.add(ns);
1766
+ }
1767
+ return [...namespaces];
1768
+ }
1672
1769
  hasAnyPendingPull() {
1673
1770
  return this.peerCatalogDirty || [...this.peerRecoveryNeeds.values()].some((need) => !need.paused) || this.peerRecoveryTasks.size > 0 || Boolean(this.peerCatalogTask)
1771
+ || Boolean(this.peerVolatileTask) || this.peerVolatileNeeds.size > 0
1674
1772
  || [...(this.pendingGroupPullUpper?.values() ?? [])].some((seq) => seq > 0)
1675
1773
  || [...this.backgroundPullNeeds.values()].some((need) => need.retryAt !== Infinity)
1676
1774
  || Boolean(this.onlineUnreadHintTasks?.size)
@@ -1696,7 +1794,7 @@ export class MessageDeliveryEngine {
1696
1794
  return;
1697
1795
  this.ensurePeerContext();
1698
1796
  const ns = `message_class/${params.message_class}/${group ? params.volatile ? 'volatile_group' : 'group' : 'peer'}/${group ? params.group_id ?? params.group_aid : params.sender_aid}`;
1699
- if (this.automaticGroupPullStopped(ns))
1797
+ if (this.automaticGroupPullStopped(ns) || this.oversizedPulls.has(ns))
1700
1798
  return;
1701
1799
  this.recordBackgroundPullNeed(ns, 0, true, true);
1702
1800
  this.backgroundPullNeeds.get(ns).messageClassRequest = { ...params };
@@ -1740,7 +1838,7 @@ export class MessageDeliveryEngine {
1740
1838
  }
1741
1839
  }
1742
1840
  recordBackgroundPullNeed(ns, throughSeq = 0, probe = false, restart = false) {
1743
- if (this.automaticGroupPullStopped(ns))
1841
+ if (this.automaticGroupPullStopped(ns) || this.oversizedPulls.has(ns))
1744
1842
  return;
1745
1843
  const client = this.runtime.client;
1746
1844
  if (client._sessionOptions?.background_sync === false || !client._aid
@@ -1759,7 +1857,7 @@ export class MessageDeliveryEngine {
1759
1857
  need.probe ||= probe;
1760
1858
  this.backgroundPullNeeds.set(ns, need);
1761
1859
  }
1762
- observeBackgroundPullResponse(ns, afterSeq, result, limit = 50) {
1860
+ observeBackgroundPullResponse(ns, afterSeq, result, limit = _INTERNAL_MESSAGE_FLOW_LIMITS.pullPageSize) {
1763
1861
  if (!isJsonObject(result))
1764
1862
  return;
1765
1863
  const response = result;
@@ -1785,7 +1883,7 @@ export class MessageDeliveryEngine {
1785
1883
  finishBackgroundPull(ns, generation, afterSeq, failed, trigger) {
1786
1884
  if (generation !== this.captureInlineAckGeneration())
1787
1885
  return;
1788
- if (this.automaticGroupPullStopped(ns))
1886
+ if (this.automaticGroupPullStopped(ns) || this.oversizedPulls.has(ns))
1789
1887
  return;
1790
1888
  const need = this.backgroundPullNeeds.get(ns);
1791
1889
  if (need && trigger && need.trigger !== trigger) {
@@ -1812,7 +1910,7 @@ export class MessageDeliveryEngine {
1812
1910
  this.requestBackgroundPullRecovery();
1813
1911
  }
1814
1912
  requestBackgroundPullRecovery() {
1815
- if (this.backgroundPullCheckQueued || (this.backgroundPullNeeds.size === 0 && !this.peerCatalogDirty && this.peerRecoveryNeeds.size === 0))
1913
+ if (this.backgroundPullCheckQueued || (this.backgroundPullNeeds.size === 0 && !this.peerCatalogDirty && this.peerRecoveryNeeds.size === 0 && this.peerVolatileNeeds.size === 0))
1816
1914
  return;
1817
1915
  this.backgroundPullCheckQueued = true;
1818
1916
  const generation = this.captureInlineAckGeneration();
@@ -1824,6 +1922,8 @@ export class MessageDeliveryEngine {
1824
1922
  if (client._sessionOptions?.background_sync === false || client.state !== ConnectionState.READY || client._closing)
1825
1923
  return;
1826
1924
  if (client._p2pPeerPullEnabled) {
1925
+ if (this.peerVolatileNeeds.size && !this.peerVolatileTask)
1926
+ this.schedulePeerVolatileRecovery(this.peerVolatileNeeds.values().next().value);
1827
1927
  if (this.peerCatalogDirty && !this.peerCatalogTask)
1828
1928
  this.refreshPendingPeers();
1829
1929
  for (const [sender, need] of this.peerRecoveryNeeds) {
@@ -3068,12 +3168,15 @@ export class MessageDeliveryEngine {
3068
3168
  const afterSeq = client._seqTracker.getContiguousSeq(ns);
3069
3169
  client._clientLog.debug(`auto pull group messages start: group=${groupId}, after_seq=${afterSeq}, seq=${String(notification.seq ?? '')}`);
3070
3170
  const operation = async () => {
3071
- const messages = await client._pullGroupV2(groupId, afterSeq, 50, { gateLocked: true, background: true });
3171
+ let count;
3172
+ const messages = await client._pullGroupV2(groupId, afterSeq, _INTERNAL_MESSAGE_FLOW_LIMITS.pullPageSize, {
3173
+ gateLocked: true, background: true, retainMessages: false, onMessageCount: (value) => { count = value; },
3174
+ });
3072
3175
  this.prunePushedSeqs(ns);
3073
- return messages.length;
3176
+ return count ?? messages.length;
3074
3177
  };
3075
3178
  if (client._rpcPipeline) {
3076
- const key = client._rpcPipeline.pullGateKeyForCall('group.pull', { group_id: groupId, after_seq: afterSeq, limit: 50 });
3179
+ const key = client._rpcPipeline.pullGateKeyForCall('group.pull', { group_id: groupId, after_seq: afterSeq, limit: _INTERNAL_MESSAGE_FLOW_LIMITS.pullPageSize });
3077
3180
  await this.runAutomaticPull(ns, operation, (attempt) => client._rpcPipeline.runPullNamespaceSerialized(key, attempt, true));
3078
3181
  }
3079
3182
  else {
@@ -3107,9 +3210,9 @@ export class MessageDeliveryEngine {
3107
3210
  try {
3108
3211
  // Gap Fill 本身就是 Forward Pull,必须沿用协调器的完整事务:
3109
3212
  // 原始页提交成功后由协调器负责 Piggyback/终端 ACK。
3110
- const operation = () => client._pullV2(afterSeq, 50, { gateLocked: true });
3213
+ const operation = () => client._pullV2(afterSeq, _INTERNAL_MESSAGE_FLOW_LIMITS.pullPageSize, { gateLocked: true });
3111
3214
  const messages = await this.runAutomaticPull(ns, operation, (attempt) => client._rpcPipeline
3112
- ? client._rpcPipeline.runPullSerialized(client._rpcPipeline.pullGateKeyForCall('message.pull', { after_seq: afterSeq, limit: 50 }), attempt, true)
3215
+ ? client._rpcPipeline.runPullSerialized(client._rpcPipeline.pullGateKeyForCall('message.pull', { after_seq: afterSeq, limit: _INTERNAL_MESSAGE_FLOW_LIMITS.pullPageSize }), attempt, true)
3113
3216
  : client._withBackgroundRpc(attempt));
3114
3217
  filled = messages.length;
3115
3218
  this.prunePushedSeqs(ns);
@@ -3149,11 +3252,14 @@ export class MessageDeliveryEngine {
3149
3252
  let filled = 0;
3150
3253
  let failed = false;
3151
3254
  try {
3152
- const operation = () => client._pullGroupV2(groupId, afterSeq, 50, { gateLocked: true, background: true });
3255
+ let count;
3256
+ const operation = () => client._pullGroupV2(groupId, afterSeq, _INTERNAL_MESSAGE_FLOW_LIMITS.pullPageSize, {
3257
+ gateLocked: true, background: true, retainMessages: false, onMessageCount: (value) => { count = value; },
3258
+ });
3153
3259
  const messages = await this.runAutomaticPull(ns, operation, (attempt) => client._rpcPipeline
3154
- ? client._rpcPipeline.runPullNamespaceSerialized(client._rpcPipeline.pullGateKeyForCall('group.pull', { group_id: groupId, after_seq: afterSeq, limit: 50 }), attempt, true)
3260
+ ? client._rpcPipeline.runPullNamespaceSerialized(client._rpcPipeline.pullGateKeyForCall('group.pull', { group_id: groupId, after_seq: afterSeq, limit: _INTERNAL_MESSAGE_FLOW_LIMITS.pullPageSize }), attempt, true)
3155
3261
  : client._withBackgroundRpc(attempt));
3156
- filled = messages.length;
3262
+ filled = count ?? messages.length;
3157
3263
  this.prunePushedSeqs(ns);
3158
3264
  client._clientLog.debug(`group message gap fill done: group=${groupId}, after_seq=${afterSeq}, filled=${filled}`);
3159
3265
  }
@@ -3263,7 +3369,7 @@ export class MessageDeliveryEngine {
3263
3369
  return;
3264
3370
  if (generation !== this.captureInlineAckGeneration())
3265
3371
  return;
3266
- this.observeBackgroundPullResponse(ns, nextAfterSeq, result);
3372
+ this.observeBackgroundPullResponse(ns, nextAfterSeq, result, request.limit);
3267
3373
  const events = result.events;
3268
3374
  if (!Array.isArray(events))
3269
3375
  return;
@@ -3355,12 +3461,15 @@ export class MessageDeliveryEngine {
3355
3461
  if (eventObjects.length > 0 && ackContig > 0 && ackContig !== pageContigBefore) {
3356
3462
  const ackSeq = this.clampAckSeq('group.ack_events', 'event_seq', ns, ackContig);
3357
3463
  try {
3358
- const ackPromise = client._transport.call('group.ack_events', {
3464
+ const ackParams = {
3359
3465
  group_id: groupId,
3360
3466
  event_seq: ackSeq,
3361
3467
  device_id: client._deviceId,
3362
3468
  slot_id: client._slotId,
3363
- }, undefined, undefined, true);
3469
+ };
3470
+ const ackPromise = !singlePage && client._rpcPipeline
3471
+ ? client._rpcPipeline.rawCall('group.ack_events', ackParams, { signed: false, background: true })
3472
+ : client._transport.call('group.ack_events', ackParams, undefined, undefined, true);
3364
3473
  if (singlePage)
3365
3474
  await ackPromise;
3366
3475
  else
@@ -3716,7 +3825,7 @@ export class MessageDeliveryEngine {
3716
3825
  return requestedSeq;
3717
3826
  return typeof raw === 'number' && Number.isSafeInteger(raw) && raw >= 0 ? raw : 0;
3718
3827
  }
3719
- async runP2PRealtimeSync(ns, pushSeq, pageLimit = 50, forceTail = false) {
3828
+ async runP2PRealtimeSync(ns, pushSeq, pageLimit = _INTERNAL_MESSAGE_FLOW_LIMITS.pullPageSize, forceTail = false) {
3720
3829
  const client = this.runtime.client;
3721
3830
  const before = this.syncState(ns);
3722
3831
  const order = forceTail ? ['tail'] : typeof client._seqTracker.planRealtimeSync === 'function'
@@ -3745,7 +3854,7 @@ export class MessageDeliveryEngine {
3745
3854
  const tailResult = await client._v2E2EE.pullV2TailInternal({
3746
3855
  window_mode: 'tail',
3747
3856
  after_seq: after,
3748
- limit: pageLimit,
3857
+ limit: Math.min(pageLimit, 50),
3749
3858
  }, true);
3750
3859
  tailHead = this.syncState(ns).head;
3751
3860
  return tailResult;
@@ -3762,7 +3871,7 @@ export class MessageDeliveryEngine {
3762
3871
  return await this.runAutomaticPull(ns, invoke, (attempt) => client._rpcPipeline.runPullSerialized(key, attempt, background));
3763
3872
  };
3764
3873
  if (order.length === 1 && order[0] === 'tail') {
3765
- result = await run({ window_mode: 'tail', after_seq: this.syncState(ns).ack, limit: pageLimit }, false);
3874
+ result = await run({ window_mode: 'tail', after_seq: this.syncState(ns).ack, limit: Math.min(pageLimit, 50) }, false);
3766
3875
  }
3767
3876
  const state = this.syncState(ns);
3768
3877
  const needsForward = state.ack < state.tail - 1;
@@ -3793,7 +3902,7 @@ export class MessageDeliveryEngine {
3793
3902
  }
3794
3903
  return result;
3795
3904
  }
3796
- async runGroupRealtimeSync(groupId, ns, pushSeq, pageLimit = 50, forceTail = false) {
3905
+ async runGroupRealtimeSync(groupId, ns, pushSeq, pageLimit = _INTERNAL_MESSAGE_FLOW_LIMITS.pullPageSize, forceTail = false) {
3797
3906
  const client = this.runtime.client;
3798
3907
  const before = this.syncState(ns);
3799
3908
  const order = forceTail ? ['tail'] : typeof client._seqTracker.planRealtimeSync === 'function'
@@ -3828,11 +3937,13 @@ export class MessageDeliveryEngine {
3828
3937
  tailHead = this.syncState(ns).head;
3829
3938
  return tailResult;
3830
3939
  }
3831
- const opts = { gateLocked: true, background };
3940
+ let count;
3941
+ const opts = { gateLocked: true, background, retainMessages: !background,
3942
+ onMessageCount: (value) => { count = value; } };
3832
3943
  if (request.max_pages !== undefined)
3833
3944
  opts.maxPages = request.max_pages;
3834
3945
  const messages = await client._pullGroupV2(groupId, after, pageLimit, opts);
3835
- return { messages, raw_count: messages.length };
3946
+ return { messages, raw_count: count ?? messages.length };
3836
3947
  };
3837
3948
  if (!client._rpcPipeline)
3838
3949
  return await this.runAutomaticPull(ns, invoke);
@@ -3888,8 +3999,11 @@ export class MessageDeliveryEngine {
3888
3999
  const maxPages = Math.max(1, Math.ceil(Math.max(0, throughSeq - ack) / pageLimit));
3889
4000
  const request = { group_id: groupId, after_seq: ack, limit: pageLimit, max_pages: maxPages };
3890
4001
  const invoke = async () => {
3891
- const messages = await client._pullGroupV2(groupId, Number(request.after_seq), pageLimit, { gateLocked: true, maxPages, background });
3892
- return { messages, raw_count: messages.length };
4002
+ let count;
4003
+ const messages = await client._pullGroupV2(groupId, Number(request.after_seq), pageLimit, {
4004
+ gateLocked: true, maxPages, background, retainMessages: !background, onMessageCount: (value) => { count = value; },
4005
+ });
4006
+ return { messages, raw_count: count ?? messages.length };
3893
4007
  };
3894
4008
  if (!client._rpcPipeline)
3895
4009
  return await this.runAutomaticPull(ns, invoke);
@@ -4097,7 +4211,7 @@ export class MessageDeliveryEngine {
4097
4211
  if (!this.beginRealtimeSync(ns))
4098
4212
  return;
4099
4213
  try {
4100
- await this.runP2PRealtimeSync(ns, this.syncState(ns).head, 50, true);
4214
+ await this.runP2PRealtimeSync(ns, this.syncState(ns).head, _INTERNAL_MESSAGE_FLOW_LIMITS.pullPageSize, true);
4101
4215
  }
4102
4216
  catch (exc) {
4103
4217
  client._clientLog.warn(`V2 P2P invalid-seq Tail failed: ${formatDeliveryError(exc)}`);
@@ -4112,7 +4226,7 @@ export class MessageDeliveryEngine {
4112
4226
  if (!this.beginRealtimeSync(ns))
4113
4227
  return;
4114
4228
  try {
4115
- await this.runGroupRealtimeSync(groupId, ns, this.syncState(ns).head, 50, true);
4229
+ await this.runGroupRealtimeSync(groupId, ns, this.syncState(ns).head, _INTERNAL_MESSAGE_FLOW_LIMITS.pullPageSize, true);
4116
4230
  }
4117
4231
  catch (exc) {
4118
4232
  client._clientLog.warn(`V2 group invalid-seq Tail failed: group=${groupId} ${formatDeliveryError(exc)}`);
@@ -4692,7 +4806,7 @@ export class MessageDeliveryEngine {
4692
4806
  }
4693
4807
  let pullFailed = false;
4694
4808
  try {
4695
- await this.runP2PRealtimeSync(ns, pushSeq, 50, false);
4809
+ await this.runP2PRealtimeSync(ns, pushSeq, _INTERNAL_MESSAGE_FLOW_LIMITS.pullPageSize, false);
4696
4810
  if (inlineGeneration !== undefined && !this.inlineGenerationIsCurrent(inlineGeneration))
4697
4811
  return;
4698
4812
  // Tail 期间新到达的 Push 已由 realtime sync 在同一周期内补至多一页 Forward。
@@ -4755,7 +4869,7 @@ export class MessageDeliveryEngine {
4755
4869
  while (true) {
4756
4870
  const ackBefore = this.syncState(ns).ack;
4757
4871
  attemptAfterSeq = ackBefore;
4758
- await this.runGroupForwardRecovery(groupId, ns, 50, true, targets.get(ns) ?? 0);
4872
+ await this.runGroupForwardRecovery(groupId, ns, _INTERNAL_MESSAGE_FLOW_LIMITS.pullPageSize, true, targets.get(ns) ?? 0);
4759
4873
  const ackAfter = this.syncState(ns).ack;
4760
4874
  if (ackAfter >= (targets.get(ns) ?? 0) || ackAfter <= ackBefore)
4761
4875
  return;
@@ -4852,7 +4966,7 @@ export class MessageDeliveryEngine {
4852
4966
  return;
4853
4967
  }
4854
4968
  let pullFailed = false;
4855
- void this.runGroupRealtimeSync(groupId, ns, seq, 50, false).then(async () => {
4969
+ void this.runGroupRealtimeSync(groupId, ns, seq, _INTERNAL_MESSAGE_FLOW_LIMITS.pullPageSize, false).then(async () => {
4856
4970
  if (inlineGeneration !== undefined && !this.inlineGenerationIsCurrent(inlineGeneration))
4857
4971
  return;
4858
4972
  // Tail 期间新到达的 Push 已由 realtime sync 在同一周期内补至多一页 Forward。
@@ -4946,7 +5060,7 @@ export class MessageDeliveryEngine {
4946
5060
  this.recordBackgroundPullNeed(ns, positiveSafeSequenceHint(data.seq), true, true);
4947
5061
  const pullTrigger = this.backgroundPullNeeds.get(ns)?.trigger;
4948
5062
  let failed = false;
4949
- client._safeAsync(this.runP2PForwardRecovery(ns, 50, true).catch((exc) => {
5063
+ client._safeAsync(this.runP2PForwardRecovery(ns, _INTERNAL_MESSAGE_FLOW_LIMITS.pullPageSize, true).catch((exc) => {
4950
5064
  failed = true;
4951
5065
  client._clientLog.debug(`P2P online unread hint background Forward failed: ns=${ns} err=${formatDeliveryError(exc)}`);
4952
5066
  }).finally(() => this.finishBackgroundPull(ns, generation, afterSeq, failed, pullTrigger)));