@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.
- package/CHANGELOG.md +30 -2
- package/README.md +28 -26
- package/_packed_docs/CHANGELOG.md +30 -2
- package/_packed_docs/INDEX.md +17 -3
- package/_packed_docs/KITE_DOCS_GUIDE.md +10 -4
- package/_packed_docs/protocol/03-Gateway-/350/277/236/346/216/245/346/250/241/345/274/217.md +58 -8
- 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
- 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
- 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
- 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
- package/_packed_docs/sdk/01-/345/277/253/351/200/237/345/274/200/345/247/213.md +16 -13
- package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +13 -1
- package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +17 -7
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +55 -14
- package/_packed_docs/sdk/09-collab-rpc-manual.md +48 -30
- package/_packed_docs/sdk/09-custody-api-manual.md +3 -3
- package/_packed_docs/sdk/09-group-rpc-manual.md +53 -6
- package/_packed_docs/sdk/09-message-rpc-manual.md +22 -0
- package/_packed_docs/sdk/09-meta-rpc-manual.md +2 -1
- package/_packed_docs/sdk/09-payload-reference.md +9 -8
- package/_packed_docs/sdk/09-proxy-rpc-manual.md +20 -14
- package/_packed_docs/sdk/09-storage-rpc-manual.md +1698 -1659
- package/_packed_docs/sdk/09-stream-rpc-manual.md +33 -20
- package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +11 -9
- 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
- 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
- package/_packed_docs/sdk/INDEX.md +21 -9
- package/_packed_docs/sdk/README.md +11 -6
- package/dist/auth.js +8 -2
- package/dist/auth.js.map +1 -1
- package/dist/client/control-messages.js +2 -2
- package/dist/client/control-messages.js.map +1 -1
- package/dist/client/delivery.d.ts +5 -0
- package/dist/client/delivery.js +146 -32
- package/dist/client/delivery.js.map +1 -1
- package/dist/client/lifecycle.js +3 -0
- package/dist/client/lifecycle.js.map +1 -1
- package/dist/client/rpc-budget.d.ts +21 -0
- package/dist/client/rpc-budget.js +82 -0
- package/dist/client/rpc-budget.js.map +1 -0
- package/dist/client/rpc-pipeline.d.ts +3 -0
- package/dist/client/rpc-pipeline.js +166 -60
- package/dist/client/rpc-pipeline.js.map +1 -1
- package/dist/client/sync-channels.d.ts +89 -0
- package/dist/client/sync-channels.js +489 -0
- package/dist/client/sync-channels.js.map +1 -0
- package/dist/client/v2-e2ee.d.ts +4 -1
- package/dist/client/v2-e2ee.js +401 -298
- package/dist/client/v2-e2ee.js.map +1 -1
- package/dist/client.d.ts +2 -0
- package/dist/client.js +63 -1
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/pubsub/binding.js +14 -1
- package/dist/pubsub/binding.js.map +1 -1
- package/dist/pubsub/channel.d.ts +4 -0
- package/dist/pubsub/channel.js +26 -0
- package/dist/pubsub/channel.js.map +1 -1
- package/dist/pubsub/client.d.ts +9 -0
- package/dist/pubsub/client.js +154 -31
- package/dist/pubsub/client.js.map +1 -1
- package/dist/pubsub/credentials.d.ts +3 -0
- package/dist/pubsub/credentials.js +57 -20
- package/dist/pubsub/credentials.js.map +1 -1
- package/dist/pubsub/index.d.ts +3 -0
- package/dist/pubsub/index.js +69 -53
- package/dist/pubsub/index.js.map +1 -1
- package/dist/pubsub/service.d.ts +3 -0
- package/dist/pubsub/service.js +167 -12
- package/dist/pubsub/service.js.map +1 -1
- package/dist/pubsub/types.d.ts +2 -0
- package/dist/storage/lowlevel.d.ts +3 -1
- package/dist/storage/lowlevel.js +13 -0
- package/dist/storage/lowlevel.js.map +1 -1
- package/dist/storage/types.d.ts +10 -0
- package/dist/storage/types.js.map +1 -1
- package/dist/storage/vfs.d.ts +3 -1
- package/dist/storage/vfs.js +2 -2
- package/dist/storage/vfs.js.map +1 -1
- package/dist/tools/cross-sdk-agent.d.ts +55 -5
- package/dist/tools/cross-sdk-agent.js +88 -21
- package/dist/tools/cross-sdk-agent.js.map +1 -1
- package/dist/transport.d.ts +12 -0
- package/dist/transport.js +91 -6
- package/dist/transport.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- 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;
|
package/dist/client/delivery.js
CHANGED
|
@@ -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 =
|
|
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
|
-
|
|
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:
|
|
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,
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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
|
|
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
|
-
}
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
3892
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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)));
|