@ibgib/core-gib 0.1.18 → 0.1.19

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 (31) hide show
  1. package/dist/sync/sync-innerspace-constants.respec.d.mts +8 -0
  2. package/dist/sync/sync-innerspace-constants.respec.d.mts.map +1 -0
  3. package/dist/sync/sync-innerspace-constants.respec.mjs +116 -0
  4. package/dist/sync/sync-innerspace-constants.respec.mjs.map +1 -0
  5. package/dist/sync/sync-innerspace-deep-updates.respec.mjs +2 -2
  6. package/dist/sync/sync-innerspace-deep-updates.respec.mjs.map +1 -1
  7. package/dist/sync/sync-innerspace-dest-ahead.respec.mjs +3 -3
  8. package/dist/sync/sync-innerspace-dest-ahead.respec.mjs.map +1 -1
  9. package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs +2 -2
  10. package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs.map +1 -1
  11. package/dist/sync/sync-innerspace-partial-update.respec.d.mts +7 -0
  12. package/dist/sync/sync-innerspace-partial-update.respec.d.mts.map +1 -0
  13. package/dist/sync/sync-innerspace-partial-update.respec.mjs +116 -0
  14. package/dist/sync/sync-innerspace-partial-update.respec.mjs.map +1 -0
  15. package/dist/sync/sync-innerspace.respec.mjs +5 -5
  16. package/dist/sync/sync-innerspace.respec.mjs.map +1 -1
  17. package/dist/sync/sync-saga-coordinator.d.mts.map +1 -1
  18. package/dist/sync/sync-saga-coordinator.mjs +159 -8
  19. package/dist/sync/sync-saga-coordinator.mjs.map +1 -1
  20. package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts +7 -0
  21. package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts.map +1 -1
  22. package/package.json +1 -1
  23. package/src/sync/sync-innerspace-constants.respec.mts +133 -0
  24. package/src/sync/sync-innerspace-deep-updates.respec.mts +1 -1
  25. package/src/sync/sync-innerspace-dest-ahead.respec.mts +2 -2
  26. package/src/sync/sync-innerspace-multiple-timelines.respec.mts +1 -1
  27. package/src/sync/sync-innerspace-partial-update.respec.mts +150 -0
  28. package/src/sync/sync-innerspace.respec.mts +4 -4
  29. package/src/sync/sync-saga-coordinator.mts +173 -9
  30. package/src/sync/sync-saga-message/sync-saga-message-types.mts +5 -0
  31. package/tmp.md +426 -375
package/tmp.md CHANGED
@@ -1,375 +1,426 @@
1
- /**
2
- * @module sync-innerspace-complex.respec
3
- *
4
- * Verifies Complex Sync Scenarios using InnerSpace.
5
- */
6
-
7
- import {
8
- respecfully, lastOfAll, ifWe, iReckon,
9
- ifWeMight
10
- } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
11
- const maam = `[${import.meta.url}]`, sir = maam;
12
- import { delay, extractErrorMsg, pretty } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
13
- import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
14
- import { getDependencyGraph } from '../common/other/graph-helper.mjs';
15
-
16
- import { SyncSagaCoordinator } from './sync-saga-coordinator.mjs';
17
- import { putInSpace, getFromSpace } from '../witness/space/space-helper.mjs';
18
- import { Metaspace_Innerspace } from '../witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs';
19
- import { InnerSpace_V1 } from '../witness/space/inner-space/inner-space-v1.mjs';
20
- import { createTimelineRootHelper, getTestKeystoneServiceHelper } from '../agent-helpers.mjs';
21
- import { mut8Timeline } from '../timeline/timeline-api.mjs';
22
- import { SyncPeerInnerspace_V1 } from './sync-peer/sync-peer-innerspace-v1.mjs';
23
- import { DEFAULT_INNER_SPACE_DATA_V1 } from '../witness/space/inner-space/inner-space-types.mjs';
24
- import { toDto } from '../common/other/ibgib-helper.mjs';
25
-
26
- const logalot = true;
27
- const lc = `[sync-innerspace-complex.respec]`;
28
-
29
- await respecfully(sir, `Sync InnerSpaces (Complex)`, async () => {
30
-
31
- let metaspace: Metaspace_Innerspace;
32
- let sourceSpace: InnerSpace_V1;
33
- let destSpace: InnerSpace_V1;
34
-
35
- await respecfully(sir, `Multiple Timelines (Push Source -> Dest)`, async () => {
36
- // 1. Setup Spaces
37
- metaspace = new Metaspace_Innerspace(undefined);
38
- await metaspace.initialize({
39
- getFnAlert: () => async ({ title, msg }) => { console.log(`[Alert] ${title}: ${msg}`); },
40
- getFnPrompt: () => async ({ title, msg }) => { console.log(`[Prompt] ${title}: ${msg}`); return ''; },
41
- getFnPromptPassword: () => async (title, msg) => { console.log(`[PromptPwd] ${title}: ${msg}`); return null; },
42
- });
43
- while (!metaspace.initialized) { await delay(10); }
44
-
45
- const defaultLocalUserSpace = await metaspace.getLocalUserSpace({ lock: false });
46
- await defaultLocalUserSpace!.initialized;
47
-
48
- sourceSpace = new InnerSpace_V1({
49
- ...DEFAULT_INNER_SPACE_DATA_V1,
50
- name: 'source',
51
- uuid: 'source_uuid',
52
- description: 'source test space',
53
- });
54
- await sourceSpace.initialized;
55
-
56
- destSpace = new InnerSpace_V1({
57
- ...DEFAULT_INNER_SPACE_DATA_V1,
58
- name: 'dest',
59
- uuid: 'dest_uuid',
60
- description: 'dest test space',
61
- });
62
- await destSpace.initialized;
63
-
64
- // 2. Seed Source Data (Multiple Independent Timelines)
65
- console.log(`${lc} Creating data in Source...`);
66
-
67
- // Timeline A
68
- const rootA = await createTimelineRootHelper({
69
- ib: 'timeline_root_A',
70
- data: { type: 'root', label: 'A' },
71
- space: sourceSpace,
72
- });
73
- const childA = await mut8Timeline({
74
- timeline: rootA,
75
- mut8Opts: { dataToAddOrPatch: { type: 'child', label: 'A1' } },
76
- metaspace,
77
- space: sourceSpace,
78
- });
79
- const addrA = getIbGibAddr({ ibGib: childA });
80
-
81
- // Timeline B
82
- const rootB = await createTimelineRootHelper({
83
- ib: 'timeline_root_B',
84
- data: { type: 'root', label: 'B' },
85
- space: sourceSpace,
86
- });
87
- // B has deeper history
88
- const childB1 = await mut8Timeline({
89
- timeline: rootB,
90
- mut8Opts: { dataToAddOrPatch: { type: 'child', label: 'B1' } },
91
- metaspace,
92
- space: sourceSpace,
93
- });
94
- const childB2 = await mut8Timeline({
95
- timeline: childB1,
96
- mut8Opts: { dataToAddOrPatch: { type: 'child', label: 'B2' } },
97
- metaspace,
98
- space: sourceSpace,
99
- });
100
- const addrB = getIbGibAddr({ ibGib: childB2 });
101
-
102
- // 3. Setup Coordinators & Peer
103
- const mockKeystone = await getTestKeystoneServiceHelper();
104
- const senderCoordinator = new SyncSagaCoordinator(mockKeystone);
105
- const receiverCoordinator = new SyncSagaCoordinator(mockKeystone);
106
-
107
- const peer = new SyncPeerInnerspace_V1({
108
- senderSpace: sourceSpace,
109
- receiverSpace: destSpace,
110
- receiverCoordinator: receiverCoordinator,
111
- receiverMetaspace: metaspace,
112
- });
113
-
114
- // 4. Run Sync (Push Both)
115
- console.log(`${lc} Running Sync...`);
116
- const resSync = await senderCoordinator.sync({
117
- peer: peer,
118
- localSpace: sourceSpace,
119
- metaspace: metaspace,
120
- domainIbGibs: [childA, childB2], // Sync both tips
121
- useSessionIdentity: false,
122
- });
123
-
124
- await resSync.done;
125
- // await delay(100); // Wait for flush?
126
-
127
- // 5. Verify Dest
128
- console.log(`${lc} Verifying Destination...`);
129
-
130
- await ifWeMight(sir, `verify timelines present`, async () => {
131
- // Verify A
132
- const getA = await getFromSpace({ space: destSpace, addr: addrA });
133
- iReckon(sir, getA.success).asTo('Timeline A present').isGonnaBeTrue();
134
- iReckon(sir, getA.ibGibs?.[0]?.data?.label).asTo('Label A match').isGonnaBe('A1');
135
-
136
- // Verify B
137
- const getB = await getFromSpace({ space: destSpace, addr: addrB });
138
- iReckon(sir, getB.success).asTo('Timeline B present').isGonnaBeTrue();
139
- iReckon(sir, getB.ibGibs?.[0]?.data?.label).asTo('Label B match').isGonnaBe('B2');
140
- });
141
-
142
- });
143
-
144
- interface TestData {
145
- type: string;
146
- label?: string;
147
- uuid?: string;
148
- n?: number;
149
- }
150
-
151
- await respecfully(sir, `Deep Updates (Push Source -> Dest)`, async () => {
152
- // 1. Setup Spaces
153
- metaspace = new Metaspace_Innerspace(undefined);
154
- await metaspace.initialize({
155
- getFnAlert: () => async ({ title, msg }) => { console.log(`[Alert] ${title}: ${msg}`); },
156
- getFnPrompt: () => async ({ title, msg }) => { console.log(`[Prompt] ${title}: ${msg}`); return ''; },
157
- getFnPromptPassword: () => async (title, msg) => { console.log(`[PromptPwd] ${title}: ${msg}`); return null; },
158
- });
159
- while (!metaspace.initialized) { await delay(10); }
160
-
161
- const defaultLocalUserSpace = await metaspace.getLocalUserSpace({ lock: false });
162
- await defaultLocalUserSpace!.initialized;
163
-
164
- sourceSpace = new InnerSpace_V1({
165
- ...DEFAULT_INNER_SPACE_DATA_V1,
166
- name: 'source',
167
- uuid: 'source_uuid',
168
- description: 'source test space',
169
- });
170
- await sourceSpace.initialized;
171
-
172
- destSpace = new InnerSpace_V1({
173
- ...DEFAULT_INNER_SPACE_DATA_V1,
174
- name: 'dest',
175
- uuid: 'dest_uuid',
176
- description: 'dest test space',
177
- });
178
- await destSpace.initialized;
179
-
180
- // 2. Seed Source Data (Deep History)
181
- console.log(`${lc} Creating deep data in Source...`);
182
-
183
- // Root -> Comment (Child) -> Edit Comment (Child v2)
184
- const root = await createTimelineRootHelper<TestData>({
185
- ib: 'timeline_root_deep',
186
- data: { type: 'root', label: 'Root' },
187
- space: sourceSpace,
188
- });
189
-
190
- // n=1
191
- const commentV1 = await mut8Timeline<TestData>({
192
- timeline: root,
193
- mut8Opts: { dataToAddOrPatch: { type: 'comment', label: 'Hello World' } },
194
- metaspace,
195
- space: sourceSpace,
196
- });
197
-
198
- // n=2 (Edit)
199
- const commentV2 = await mut8Timeline<TestData>({
200
- timeline: commentV1,
201
- mut8Opts: { dataToAddOrPatch: { type: 'comment', label: 'Hello Sync' } },
202
- metaspace,
203
- space: sourceSpace,
204
- });
205
- const addrV2 = getIbGibAddr({ ibGib: commentV2 });
206
-
207
- // 3. Setup
208
- const mockKeystone = await getTestKeystoneServiceHelper();
209
- const senderCoordinator = new SyncSagaCoordinator(mockKeystone);
210
- const receiverCoordinator = new SyncSagaCoordinator(mockKeystone);
211
-
212
- const peer = new SyncPeerInnerspace_V1({
213
- senderSpace: sourceSpace,
214
- receiverSpace: destSpace,
215
- receiverCoordinator: receiverCoordinator,
216
- receiverMetaspace: metaspace,
217
- });
218
-
219
- // 4. Run Sync
220
- console.log(`${lc} Running Sync...`);
221
- // Debug Source Graph
222
- const sourceGraph = await getDependencyGraph({ ibGib: commentV2, space: sourceSpace });
223
- console.log(`${lc} Source Graph count: ${sourceGraph ? Object.keys(sourceGraph).length : 'null'}`);
224
-
225
- const resSync = await senderCoordinator.sync({
226
- peer: peer,
227
- localSpace: sourceSpace,
228
- metaspace: metaspace,
229
- domainIbGibs: [commentV2], // Sync the TIP
230
- useSessionIdentity: false,
231
- });
232
-
233
- await resSync.done;
234
-
235
- // 5. Verify Dest
236
- console.log(`${lc} Verifying Destination...`);
237
-
238
- await ifWeMight(sir, `verify deep timeline present`, async () => {
239
- // Verify Tip (V2)
240
- const getV2 = await getFromSpace({ space: destSpace, addr: addrV2 });
241
- iReckon(sir, getV2.success).asTo('Tip V2 present').isGonnaBeTrue();
242
- const v2IbGib = getV2.ibGibs![0];
243
- iReckon(sir, v2IbGib.data!.label).asTo('Label V2 match').isGonnaBe('Hello Sync');
244
- // iReckon(sir, v2IbGib.data!.n).asTo('n=2').isGonnaBe(2); // Relaxing n check for now
245
-
246
- // Verify Past Frame (V1) availability
247
- // Sync should transfer dependencies (past frames)
248
- // Rel8ns are accretive, so we check the LAST one.
249
- const pastAddr = v2IbGib.rel8ns?.past?.at(-1);
250
- if (pastAddr) {
251
- const getV1 = await getFromSpace({ space: destSpace, addr: pastAddr });
252
- iReckon(sir, getV1.success).asTo('Past Frame (V1) present').isGonnaBeTrue();
253
- iReckon(sir, getV1.ibGibs?.[0]?.data?.label).asTo('Label V1 match').isGonnaBe('Hello World');
254
- } else {
255
- iReckon(sir, false).asTo('Past relation present').isGonnaBeTrue();
256
- }
257
-
258
- // Verify Full Graph Integrity (DNA, Roots)
259
- const graph = await getDependencyGraph({ ibGib: v2IbGib, space: destSpace });
260
- // const debugGraph = ... (removed)
261
-
262
- iReckon(sir, !!graph).asTo('Dependency Graph resolvable in Dest').isGonnaBeTrue();
263
- // Should contain Root, V1, V2
264
- // We can check counts or specific existence.
265
- iReckon(sir, Object.keys(graph!).length > 2).asTo('Graph size > 2').isGonnaBeTrue();
266
- });
267
- });
268
-
269
- await respecfully(sir, `Dest Ahead (Remote Newer)`, async () => {
270
- // 1. Setup Spaces
271
- metaspace = new Metaspace_Innerspace(undefined);
272
- await metaspace.initialize({
273
- getFnAlert: () => async ({ title, msg }) => { },
274
- getFnPrompt: () => async ({ title, msg }) => { return ''; },
275
- getFnPromptPassword: () => async (title, msg) => { return null; },
276
- });
277
- while (!metaspace.initialized) { await delay(10); }
278
-
279
- const defaultLocalUserSpace = await metaspace.getLocalUserSpace({ lock: false });
280
- await defaultLocalUserSpace!.initialized;
281
-
282
- sourceSpace = new InnerSpace_V1({
283
- ...DEFAULT_INNER_SPACE_DATA_V1,
284
- name: 'source',
285
- uuid: 'source_uuid',
286
- description: 'source test space',
287
- });
288
- await sourceSpace.initialized;
289
-
290
- destSpace = new InnerSpace_V1({
291
- ...DEFAULT_INNER_SPACE_DATA_V1,
292
- name: 'dest',
293
- uuid: 'dest_uuid',
294
- description: 'dest test space',
295
- });
296
- await destSpace.initialized;
297
-
298
- // 2. Seed Data
299
- // Root -> V1 (Shared) -> V2 (Dest has New)
300
- // Source only has V1.
301
-
302
- const root = await createTimelineRootHelper<TestData>({
303
- ib: 'timeline_root_ff',
304
- data: { type: 'root', label: 'Root' },
305
- space: sourceSpace,
306
- });
307
-
308
- // V1 (Both have it, but we create in source and copy to dest)
309
- const v1 = await mut8Timeline<TestData>({
310
- timeline: root,
311
- mut8Opts: { dataToAddOrPatch: { type: 'comment', label: 'V1' } },
312
- metaspace,
313
- space: sourceSpace,
314
- });
315
-
316
- // Transfer Root & V1 to Dest
317
- await putInSpace({ space: destSpace, ibGibs: [root, v1] }); // Naive seeding
318
-
319
- // V2 (Created in Dest ONLY)
320
- const v2 = await mut8Timeline<TestData>({
321
- timeline: v1, // v1 is in memory, linked to source, but we want to Mutate IN DEST SPACE
322
- mut8Opts: { dataToAddOrPatch: { type: 'comment', label: 'V2' } },
323
- metaspace,
324
- space: destSpace, // Mutate in Dest
325
- });
326
- const addrV2 = getIbGibAddr({ ibGib: v2 });
327
-
328
- await ifWe(sir, 'verify setup', async () => {
329
- // Ensure V2 is ONLY in Dest (it is, per `space: destSpace`)
330
- // Ensure Source does NOT have V2
331
- const checkV2InSource = await getFromSpace({ space: sourceSpace, addr: addrV2 });
332
- iReckon(sir, checkV2InSource.success && !!checkV2InSource.ibGibs?.length).asTo('Source has V2').isGonnaBeFalse();
333
- });
334
-
335
- // 3. Setup Sync
336
- const mockKeystone = await getTestKeystoneServiceHelper();
337
- const senderCoordinator = new SyncSagaCoordinator(mockKeystone);
338
- const receiverCoordinator = new SyncSagaCoordinator(mockKeystone);
339
-
340
- const peer = new SyncPeerInnerspace_V1({
341
- senderSpace: sourceSpace,
342
- receiverSpace: destSpace,
343
- receiverCoordinator: receiverCoordinator,
344
- receiverMetaspace: metaspace,
345
- });
346
-
347
- // 4. Run Sync (Source Pushes V1)
348
- console.log(`${lc} Running Sync...`);
349
- const resSync = await senderCoordinator.sync({
350
- peer: peer,
351
- localSpace: sourceSpace,
352
- metaspace: metaspace,
353
- domainIbGibs: [v1], // Source tries to push V1
354
- useSessionIdentity: false,
355
- });
356
-
357
- await resSync.done;
358
-
359
- // 5. Verify Dest (Should still have V2 as latest)
360
- console.log(`${lc} Verifying Destination...`);
361
-
362
- await ifWeMight(sir, `verify dest stays ahead`, async () => {
363
- // Verify Tip (V2)
364
- const getV2 = await getFromSpace({ space: destSpace, addr: addrV2 });
365
- iReckon(sir, getV2.success).asTo('V2 still present in Dest').isGonnaBeTrue();
366
-
367
- // Verify V2 points to V1
368
- const v2IbGib = getV2.ibGibs![0];
369
- const pastAddr = v2IbGib.rel8ns?.past?.at(-1);
370
- iReckon(sir, pastAddr === getIbGibAddr({ ibGib: v1 })).asTo('V2 points to V1').isGonnaBeTrue();
371
- });
372
-
373
- });
374
-
375
- });
1
+ PS C:\Users\billm\antigravity\ibgib\libs\core-gib> npm run test:agent
2
+
3
+ > @ibgib/core-gib@0.1.18 test:agent
4
+ > npm run build:test && npm run test:node:nobuild
5
+
6
+
7
+ > @ibgib/core-gib@0.1.18 build:test
8
+ > npm run clean && tsc -b tsconfig.test.json --force
9
+
10
+
11
+ > @ibgib/core-gib@0.1.18 clean
12
+ > node node_modules/@ibgib/helper-gib/tools/clean.js ./dist
13
+
14
+ Cleaning: C:\Users\billm\antigravity\ibgib\libs\core-gib\dist
15
+ Successfully cleaned: C:\Users\billm\antigravity\ibgib\libs\core-gib\dist
16
+
17
+ > @ibgib/core-gib@0.1.18 test:node:nobuild
18
+ > node dist/respec-gib.node.mjs --inspect
19
+
20
+ filteredRespecPaths for extra respec: C:\Users\billm\antigravity\ibgib\libs\core-gib\dist\sync\sync-innerspace-partial-update.respec.mjs (I: b98f54656899646025eecb4c028ab523)
21
+ [Metaspace_Innerspace][initialize] initialized (I: e3b3a9652c09445cb055013166ff089c)
22
+ [sync-innerspace-partial-update.respec] Running Sync...
23
+ [SyncSagaCoordinator][sync] starting...
24
+ [fnCreateNewLocalSpace] starting... (I: a9bc8c7d54cb4bafae4c4aa515d71580)
25
+ [fnCreateNewLocalSpace] localSpace.ib: witness space InnerSpace_V1 tmp_sync_space_d6e13091 dd1380249cd2c0d3f6145f5c320dbfe1a0afe8d7e495b321ba5289f62460a8ee undefined undefined
26
+ [fnCreateNewLocalSpace] localSpace.gib: undefined (before sha256v1)
27
+ [fnCreateNewLocalSpace] localSpace.data: {
28
+ "version": "1",
29
+ "name": "tmp_sync_space_d6e13091",
30
+ "uuid": "dd1380249cd2c0d3f6145f5c320dbfe1a0afe8d7e495b321ba5289f62460a8ee",
31
+ "description": "ephemeral in-memory space",
32
+ "persistOptsAndResultIbGibs": false,
33
+ "validateIbGibAddrsMatchIbGibs": true,
34
+ "trace": false,
35
+ "allowPrimitiveArgs": false,
36
+ "catchAllErrors": true,
37
+ "longPollingIntervalMs": 30000,
38
+ "classname": "InnerSpace_V1"
39
+ }
40
+ [fnCreateNewLocalSpace] localSpace.rel8ns: "falsy"
41
+ [fnCreateNewLocalSpace] localSpace.gib: FAED572F2CFBD0256DA9E08ADB2A5F01A8C32F190911FF6460377EDAE2526224 (after sha256v1)
42
+ [fnCreateNewLocalSpace] complete.
43
+ [SyncSagaCoordinator][sync] sessionIdentity: undefined (I: abc01872800b3a66b819a05898bba826)
44
+ [SyncSagaCoordinator][createInitFrame] starting... (I: 551af8b411ae9be712ce3358d43ee726)
45
+ [SyncSagaCoordinator][analyzeTimelines] graph generated. nodes: 8
46
+ [SyncSagaCoordinator][createInitFrame] initStone: {
47
+ "ib": "sync_sagamsg 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5 init",
48
+ "gib": "867351FCC7FF7113AF2E431C192A67136F4313C14B01B44DF9DE36D0FD2E639E",
49
+ "data": {
50
+ "timestamp": "Thu, 08 Jan 2026 16:16:03 GMT",
51
+ "timestampMs": 288,
52
+ "sagaId": "11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5",
53
+ "stage": "init",
54
+ "knowledgeVector": {
55
+ "timeline_root_partial^E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A": "timeline_root_partial^A5CA0E35F0B9817F9168E59185F4255C718A6F4908680DEE141AF118312784D5.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A"
56
+ },
57
+ "mode": "sync",
58
+ "stones": [
59
+ "fork^44A4AA45CAE114169A4B8E32A4F6FF09E64A89E9BF7A3C307DB7325ACC377E5B",
60
+ "mut8^7BFB21AAB6B67D70CC7185458A729045D3BD8AE97FBB2AE47D2C1C14D1648744",
61
+ "mut8^14B6972BDA407BDF824C5FB55BDCB6D9FFC423DB9BD47FAA659BFA2C804EA3B9",
62
+ "mut8^80DBBD760F47AD72A64230866EA3EB7C5DA5AE63122C9D804694301140CAEF88"
63
+ ],
64
+ "uuid": "e37af551d318fabe0ca1fad4e34b73e1dd96b4f33458b01272f3eb6aad4c5df1"
65
+ },
66
+ "rel8ns": {
67
+ "ancestor": [
68
+ "sync_sagamsg^gib"
69
+ ]
70
+ }
71
+ } (I: 06e532f8a408549069474e96bed44826)
72
+ [SyncSagaCoordinator][createInitFrame] sagaFrame (init): {
73
+ "ib": "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5",
74
+ "gib": "D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95",
75
+ "data": {
76
+ "n": 2,
77
+ "timestamp": "Thu, 08 Jan 2026 16:16:03 GMT",
78
+ "timestampMs": 314,
79
+ "uuid": "11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5",
80
+ "isTjp": true
81
+ },
82
+ "rel8ns": {
83
+ "ancestor": [
84
+ "sync^gib"
85
+ ],
86
+ "sync-msg": [
87
+ "sync_sagamsg 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5 init^867351FCC7FF7113AF2E431C192A67136F4313C14B01B44DF9DE36D0FD2E639E"
88
+ ]
89
+ }
90
+ } (I: b3d6a8be69248f18713cc3073cb08626)
91
+ [SyncSagaCoordinator][createInitFrame] complete.
92
+ [SyncSagaCoordinator][executeSagaLoop] transmitting... requestCtx: {
93
+ "ib": "sync_sagacontext process",
94
+ "gib": "F25B8D973F482155A42778B8BB70B8E8F091DCF85DBBFB353B54CD8600C43DD8",
95
+ "data": {
96
+ "timestamp": "Thu, 08 Jan 2026 16:16:03 GMT",
97
+ "timestampMs": 334,
98
+ "cmd": "process",
99
+ "@payloadAddrs": [
100
+ "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95",
101
+ "sync_sagamsg 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5 init^867351FCC7FF7113AF2E431C192A67136F4313C14B01B44DF9DE36D0FD2E639E"
102
+ ]
103
+ },
104
+ "rel8ns": {
105
+ "ancestor": [
106
+ "sync_sagacontext^gib"
107
+ ],
108
+ "sagaFrame": [
109
+ "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95"
110
+ ]
111
+ }
112
+ } (I: 8cf20817c66899abdb1e76df50356826)
113
+ [SyncPeerInnerspace_V1][witness] starting...
114
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95
115
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): sync_sagamsg 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5 init^867351FCC7FF7113AF2E431C192A67136F4313C14B01B44DF9DE36D0FD2E639E
116
+ [SyncPeerInnerspace_V1][sendRequest] starting...Context: sync_sagacontext process^F25B8D973F482155A42778B8BB70B8E8F091DCF85DBBFB353B54CD8600C43DD8
117
+ [SyncPeerInnerspace_V1][sendRequest] Invoking Receiver Coordinator...
118
+ [SyncSagaCoordinator][handleSagaFrame] starting... (I: 5deec8a1f7a6d263c88cd458ad990826)
119
+ [SyncSagaCoordinator][handleSagaFrame] sagaIbGib: {
120
+ "ib": "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5",
121
+ "gib": "D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95",
122
+ "data": {
123
+ "n": 2,
124
+ "timestamp": "Thu, 08 Jan 2026 16:16:03 GMT",
125
+ "timestampMs": 314,
126
+ "uuid": "11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5",
127
+ "isTjp": true
128
+ },
129
+ "rel8ns": {
130
+ "ancestor": [
131
+ "sync^gib"
132
+ ],
133
+ "sync-msg": [
134
+ "sync_sagamsg 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5 init^867351FCC7FF7113AF2E431C192A67136F4313C14B01B44DF9DE36D0FD2E639E"
135
+ ]
136
+ }
137
+ } (I: 1b99d87d262e9d18d8a607a80b1a0126)
138
+ [SyncSagaCoordinator][getStageAndPayloadFromFrame] starting... (I: fddc287bd4d55253dc50e519fd352226)
139
+ [SyncSagaCoordinator][getStageAndPayloadFromFrame] complete.
140
+ [SyncSagaCoordinator][handleSagaFrame] handling frame stage: init
141
+ [SyncSagaCoordinator][handleInitFrame] starting...
142
+ [SyncSagaCoordinator][handleInitFrame] initData: {
143
+ "timestamp": "Thu, 08 Jan 2026 16:16:03 GMT",
144
+ "timestampMs": 288,
145
+ "sagaId": "11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5",
146
+ "stage": "init",
147
+ "knowledgeVector": {
148
+ "timeline_root_partial^E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A": "timeline_root_partial^A5CA0E35F0B9817F9168E59185F4255C718A6F4908680DEE141AF118312784D5.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A" },
149
+ "mode": "sync",
150
+ "stones": [
151
+ "fork^44A4AA45CAE114169A4B8E32A4F6FF09E64A89E9BF7A3C307DB7325ACC377E5B",
152
+ "mut8^7BFB21AAB6B67D70CC7185458A729045D3BD8AE97FBB2AE47D2C1C14D1648744",
153
+ "mut8^14B6972BDA407BDF824C5FB55BDCB6D9FFC423DB9BD47FAA659BFA2C804EA3B9",
154
+ "mut8^80DBBD760F47AD72A64230866EA3EB7C5DA5AE63122C9D804694301140CAEF88"
155
+ ],
156
+ "uuid": "e37af551d318fabe0ca1fad4e34b73e1dd96b4f33458b01272f3eb6aad4c5df1"
157
+ } (I: 46b0f8441b96ad7a388f1ce3239dd826)
158
+ [SyncSagaCoordinator][handleInitFrame] remoteKV: {
159
+ "timeline_root_partial^E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A": "timeline_root_partial^A5CA0E35F0B9817F9168E59185F4255C718A6F4908680DEE141AF118312784D5.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A"
160
+ } (I: 9f957862356dfeae183c200854e86e26)
161
+ [SyncSagaCoordinator][handleInitFrame] remoteTjps: [
162
+ "timeline_root_partial^E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A"
163
+ ] (I: 86ea4c53db0dc184c8b253386c402126)
164
+ [SyncSagaCoordinator][handleInitFrame] localKV: {
165
+ "timeline_root_partial^E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A": null
166
+ } (I: 980975642cbccd8018cf0cd808d30826)
167
+ [SyncSagaCoordinator][handleInitFrame] ackStone created: {
168
+ "ib": "sync_sagamsg 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5 ack",
169
+ "gib": "34814CA60B1719E980114CCFB2194CCCA026613FEC64E8C0F70CD8611D8F78D1",
170
+ "data": {
171
+ "timestamp": "Thu, 08 Jan 2026 16:16:03 GMT",
172
+ "timestampMs": 417,
173
+ "sagaId": "11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5",
174
+ "stage": "ack",
175
+ "deltaReqAddrs": [
176
+ "timeline_root_partial^A5CA0E35F0B9817F9168E59185F4255C718A6F4908680DEE141AF118312784D5.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A"
177
+ ],
178
+ "pushOfferAddrs": [],
179
+ "knowledgeVector": {},
180
+ "uuid": "2066609ed4be85a89d1805865a379cd6cc0801e33043e62cc2d476c79b557017"
181
+ },
182
+ "rel8ns": {
183
+ "ancestor": [
184
+ "sync_sagamsg^gib"
185
+ ]
186
+ }
187
+ } (I: 313708132dd53ff946befb7833657826)
188
+ [SyncSagaCoordinator][handleInitFrame] ackFrame created: {
189
+ "ib": "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5",
190
+ "gib": "075CA68A9D7A4DEEFA700E786EA02BC0D82E63D9BE0C3FFAD296B4013D779BF5.D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95",
191
+ "data": {
192
+ "n": 3,
193
+ "timestamp": "Thu, 08 Jan 2026 16:16:03 GMT",
194
+ "timestampMs": 444,
195
+ "uuid": "11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5"
196
+ },
197
+ "rel8ns": {
198
+ "ancestor": [
199
+ "sync^gib"
200
+ ],
201
+ "sync-msg": [
202
+ "sync_sagamsg 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5 ack^34814CA60B1719E980114CCFB2194CCCA026613FEC64E8C0F70CD8611D8F78D1"
203
+ ],
204
+ "past": [
205
+ "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95"
206
+ ],
207
+ "tjp": [
208
+ "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95"
209
+ ]
210
+ }
211
+ } (I: be24480592eec478086bb3da49286826)
212
+ [SyncSagaCoordinator][handleSagaFrame] complete.
213
+ [SyncPeerInnerspace_V1][sendRequest] responseFrame addr: sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^075CA68A9D7A4DEEFA700E786EA02BC0D82E63D9BE0C3FFAD296B4013D779BF5.D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95
214
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^075CA68A9D7A4DEEFA700E786EA02BC0D82E63D9BE0C3FFAD296B4013D779BF5.D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95
215
+ [SyncPeerInnerspace_V1][witness] complete.
216
+ [SyncSagaCoordinator][executeSagaLoop] received responseCtx: {
217
+ "ib": "sync_sagacontext default",
218
+ "gib": "1CCC2C05AD1D3F28981F292892AE9FD2793376DB7C53C58D4299934C3874584A",
219
+ "data": {
220
+ "timestamp": "Thu, 08 Jan 2026 16:16:03 GMT",
221
+ "timestampMs": 462
222
+ },
223
+ "rel8ns": {
224
+ "ancestor": [
225
+ "sync_sagacontext^gib"
226
+ ],
227
+ "sagaFrame": [
228
+ "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^075CA68A9D7A4DEEFA700E786EA02BC0D82E63D9BE0C3FFAD296B4013D779BF5.D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95"
229
+ ]
230
+ }
231
+ } (I: 8f35c8b7a9e886aa9743d38bee907826)
232
+ [SyncSagaCoordinator][executeSagaLoop] calling handleSagaFrame. localSpace: source_uuid (source), tempSpace: dd1380249cd2c0d3f6145f5c320dbfe1a0afe8d7e495b321ba5289f62460a8ee
233
+ [SyncSagaCoordinator][handleSagaFrame] starting... (I: 5deec8a1f7a6d263c88cd458ad990826)
234
+ [SyncSagaCoordinator][handleSagaFrame] sagaIbGib: {
235
+ "ib": "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5",
236
+ "gib": "075CA68A9D7A4DEEFA700E786EA02BC0D82E63D9BE0C3FFAD296B4013D779BF5.D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95",
237
+ "data": {
238
+ "n": 3,
239
+ "timestamp": "Thu, 08 Jan 2026 16:16:03 GMT",
240
+ "timestampMs": 444,
241
+ "uuid": "11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5"
242
+ },
243
+ "rel8ns": {
244
+ "ancestor": [
245
+ "sync^gib"
246
+ ],
247
+ "sync-msg": [
248
+ "sync_sagamsg 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5 ack^34814CA60B1719E980114CCFB2194CCCA026613FEC64E8C0F70CD8611D8F78D1"
249
+ ],
250
+ "past": [
251
+ "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95"
252
+ ],
253
+ "tjp": [
254
+ "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95"
255
+ ]
256
+ }
257
+ } (I: 1b99d87d262e9d18d8a607a80b1a0126)
258
+ [SyncSagaCoordinator][getStageAndPayloadFromFrame] starting... (I: fddc287bd4d55253dc50e519fd352226)
259
+ [SyncSagaCoordinator][getStageAndPayloadFromFrame] complete.
260
+ [SyncSagaCoordinator][handleSagaFrame] handling frame stage: ack
261
+ [SyncSagaCoordinator][handleAckFrame] starting...
262
+ [SyncSagaCoordinator][getStageAndPayloadFromFrame] starting... (I: fddc287bd4d55253dc50e519fd352226)
263
+ [SyncSagaCoordinator][getStageAndPayloadFromFrame] complete.
264
+ [SyncSagaCoordinator][handleSagaFrame] complete.
265
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): timeline_root_partial^A5CA0E35F0B9817F9168E59185F4255C718A6F4908680DEE141AF118312784D5.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A|fork^44A4AA45CAE114169A4B8E32A4F6FF09E64A89E9BF7A3C307DB7325ACC377E5B|mut8^7BFB21AAB6B67D70CC7185458A729045D3BD8AE97FBB2AE47D2C1C14D1648744|mut8^14B6972BDA407BDF824C5FB55BDCB6D9FFC423DB9BD47FAA659BFA2C804EA3B9|mut8^80DBBD760F47AD72A64230866EA3EB7C5DA5AE63122C9D804694301140CAEF88|timeline_root_partial^E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A|timeline_root_partial^FD412DAA7E5C4230EFC4EA8C9DA5EBEA5A44E8E99B7BEDB5A38944E820D752E0.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A|timeline_root_partial^42B144792BFDD8F0C16CC9C37838521639EC984BC706BB4A627A07037ADF0DEC.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A|fork^44A4AA45CAE114169A4B8E32A4F6FF09E64A89E9BF7A3C307DB7325ACC377E5B|mut8^7BFB21AAB6B67D70CC7185458A729045D3BD8AE97FBB2AE47D2C1C14D1648744|mut8^14B6972BDA407BDF824C5FB55BDCB6D9FFC423DB9BD47FAA659BFA2C804EA3B9|mut8^80DBBD760F47AD72A64230866EA3EB7C5DA5AE63122C9D804694301140CAEF88|timeline_root_partial^E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A|fork^44A4AA45CAE114169A4B8E32A4F6FF09E64A89E9BF7A3C307DB7325ACC377E5B|timeline_root_partial^FD412DAA7E5C4230EFC4EA8C9DA5EBEA5A44E8E99B7BEDB5A38944E820D752E0.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A|fork^44A4AA45CAE114169A4B8E32A4F6FF09E64A89E9BF7A3C307DB7325ACC377E5B|mut8^7BFB21AAB6B67D70CC7185458A729045D3BD8AE97FBB2AE47D2C1C14D1648744|timeline_root_partial^E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A|timeline_root_partial^42B144792BFDD8F0C16CC9C37838521639EC984BC706BB4A627A07037ADF0DEC.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A|fork^44A4AA45CAE114169A4B8E32A4F6FF09E64A89E9BF7A3C307DB7325ACC377E5B|mut8^7BFB21AAB6B67D70CC7185458A729045D3BD8AE97FBB2AE47D2C1C14D1648744|mut8^14B6972BDA407BDF824C5FB55BDCB6D9FFC423DB9BD47FAA659BFA2C804EA3B9|timeline_root_partial^E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A|timeline_root_partial^FD412DAA7E5C4230EFC4EA8C9DA5EBEA5A44E8E99B7BEDB5A38944E820D752E0.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A|sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^2298E32C059C3C4579DDDEB34585298B0E4289AE7988386643C9810EE5B4FB9A.D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95
266
+ [SyncSagaCoordinator][executeSagaLoop] transmitting... requestCtx: {
267
+ "ib": "sync_sagacontext process",
268
+ "gib": "99175B1566E19561B45A98DC98160D7429D54B7F27D0B334A7EB51E651C147B4",
269
+ "data": {
270
+ "timestamp": "Thu, 08 Jan 2026 16:16:03 GMT",
271
+ "timestampMs": 558,
272
+ "cmd": "process",
273
+ "@payloadAddrs": [
274
+ "timeline_root_partial^A5CA0E35F0B9817F9168E59185F4255C718A6F4908680DEE141AF118312784D5.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A",
275
+ "fork^44A4AA45CAE114169A4B8E32A4F6FF09E64A89E9BF7A3C307DB7325ACC377E5B",
276
+ "mut8^7BFB21AAB6B67D70CC7185458A729045D3BD8AE97FBB2AE47D2C1C14D1648744",
277
+ "mut8^14B6972BDA407BDF824C5FB55BDCB6D9FFC423DB9BD47FAA659BFA2C804EA3B9",
278
+ "mut8^80DBBD760F47AD72A64230866EA3EB7C5DA5AE63122C9D804694301140CAEF88",
279
+ "timeline_root_partial^E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A",
280
+ "timeline_root_partial^FD412DAA7E5C4230EFC4EA8C9DA5EBEA5A44E8E99B7BEDB5A38944E820D752E0.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A",
281
+ "timeline_root_partial^42B144792BFDD8F0C16CC9C37838521639EC984BC706BB4A627A07037ADF0DEC.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A",
282
+ "fork^44A4AA45CAE114169A4B8E32A4F6FF09E64A89E9BF7A3C307DB7325ACC377E5B",
283
+ "mut8^7BFB21AAB6B67D70CC7185458A729045D3BD8AE97FBB2AE47D2C1C14D1648744",
284
+ "mut8^14B6972BDA407BDF824C5FB55BDCB6D9FFC423DB9BD47FAA659BFA2C804EA3B9",
285
+ "mut8^80DBBD760F47AD72A64230866EA3EB7C5DA5AE63122C9D804694301140CAEF88",
286
+ "timeline_root_partial^E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A",
287
+ "fork^44A4AA45CAE114169A4B8E32A4F6FF09E64A89E9BF7A3C307DB7325ACC377E5B",
288
+ "timeline_root_partial^FD412DAA7E5C4230EFC4EA8C9DA5EBEA5A44E8E99B7BEDB5A38944E820D752E0.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A",
289
+ "fork^44A4AA45CAE114169A4B8E32A4F6FF09E64A89E9BF7A3C307DB7325ACC377E5B",
290
+ "mut8^7BFB21AAB6B67D70CC7185458A729045D3BD8AE97FBB2AE47D2C1C14D1648744",
291
+ "timeline_root_partial^E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A",
292
+ "timeline_root_partial^42B144792BFDD8F0C16CC9C37838521639EC984BC706BB4A627A07037ADF0DEC.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A",
293
+ "fork^44A4AA45CAE114169A4B8E32A4F6FF09E64A89E9BF7A3C307DB7325ACC377E5B",
294
+ "mut8^7BFB21AAB6B67D70CC7185458A729045D3BD8AE97FBB2AE47D2C1C14D1648744",
295
+ "mut8^14B6972BDA407BDF824C5FB55BDCB6D9FFC423DB9BD47FAA659BFA2C804EA3B9",
296
+ "timeline_root_partial^E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A",
297
+ "timeline_root_partial^FD412DAA7E5C4230EFC4EA8C9DA5EBEA5A44E8E99B7BEDB5A38944E820D752E0.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A",
298
+ "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^2298E32C059C3C4579DDDEB34585298B0E4289AE7988386643C9810EE5B4FB9A.D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95"
299
+ ]
300
+ },
301
+ "rel8ns": {
302
+ "ancestor": [
303
+ "sync_sagacontext^gib"
304
+ ],
305
+ "sagaFrame": [
306
+ "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^2298E32C059C3C4579DDDEB34585298B0E4289AE7988386643C9810EE5B4FB9A.D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95"
307
+ ]
308
+ }
309
+ } (I: 8cf20817c66899abdb1e76df50356826)
310
+ [SyncPeerInnerspace_V1][witness] starting...
311
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): timeline_root_partial^FD412DAA7E5C4230EFC4EA8C9DA5EBEA5A44E8E99B7BEDB5A38944E820D752E0.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A
312
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): timeline_root_partial^42B144792BFDD8F0C16CC9C37838521639EC984BC706BB4A627A07037ADF0DEC.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A
313
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): fork^44A4AA45CAE114169A4B8E32A4F6FF09E64A89E9BF7A3C307DB7325ACC377E5B
314
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): mut8^7BFB21AAB6B67D70CC7185458A729045D3BD8AE97FBB2AE47D2C1C14D1648744
315
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): mut8^14B6972BDA407BDF824C5FB55BDCB6D9FFC423DB9BD47FAA659BFA2C804EA3B9
316
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): mut8^80DBBD760F47AD72A64230866EA3EB7C5DA5AE63122C9D804694301140CAEF88
317
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): timeline_root_partial^E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A
318
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): fork^44A4AA45CAE114169A4B8E32A4F6FF09E64A89E9BF7A3C307DB7325ACC377E5B
319
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): timeline_root_partial^FD412DAA7E5C4230EFC4EA8C9DA5EBEA5A44E8E99B7BEDB5A38944E820D752E0.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A
320
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): fork^44A4AA45CAE114169A4B8E32A4F6FF09E64A89E9BF7A3C307DB7325ACC377E5B
321
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): mut8^7BFB21AAB6B67D70CC7185458A729045D3BD8AE97FBB2AE47D2C1C14D1648744
322
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): timeline_root_partial^E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A
323
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): timeline_root_partial^42B144792BFDD8F0C16CC9C37838521639EC984BC706BB4A627A07037ADF0DEC.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A
324
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): fork^44A4AA45CAE114169A4B8E32A4F6FF09E64A89E9BF7A3C307DB7325ACC377E5B
325
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): mut8^7BFB21AAB6B67D70CC7185458A729045D3BD8AE97FBB2AE47D2C1C14D1648744
326
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): mut8^14B6972BDA407BDF824C5FB55BDCB6D9FFC423DB9BD47FAA659BFA2C804EA3B9
327
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): timeline_root_partial^E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A
328
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): timeline_root_partial^FD412DAA7E5C4230EFC4EA8C9DA5EBEA5A44E8E99B7BEDB5A38944E820D752E0.E0F107C9EB0BE669B6CB19AC457799EECC60DE8226BE9D1241C78371CF98579A
329
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^2298E32C059C3C4579DDDEB34585298B0E4289AE7988386643C9810EE5B4FB9A.D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95
330
+ [SyncPeerInnerspace_V1][sendRequest] starting...Context: sync_sagacontext process^99175B1566E19561B45A98DC98160D7429D54B7F27D0B334A7EB51E651C147B4
331
+ [SyncPeerInnerspace_V1][sendRequest] Invoking Receiver Coordinator...
332
+ [SyncSagaCoordinator][handleSagaFrame] starting... (I: 5deec8a1f7a6d263c88cd458ad990826)
333
+ [SyncSagaCoordinator][handleSagaFrame] sagaIbGib: {
334
+ "ib": "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5",
335
+ "gib": "2298E32C059C3C4579DDDEB34585298B0E4289AE7988386643C9810EE5B4FB9A.D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95",
336
+ "data": {
337
+ "n": 4,
338
+ "timestamp": "Thu, 08 Jan 2026 16:16:03 GMT",
339
+ "timestampMs": 534,
340
+ "uuid": "11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5"
341
+ },
342
+ "rel8ns": {
343
+ "ancestor": [
344
+ "sync^gib"
345
+ ],
346
+ "sync-msg": [
347
+ "sync_sagamsg 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5 delta^DACE1C79C33934E4DAA6F10E0BC57055B79EEF93F2DB8578C40BDD56E3CC1B3B"
348
+ ],
349
+ "past": [
350
+ "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95",
351
+ "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^075CA68A9D7A4DEEFA700E786EA02BC0D82E63D9BE0C3FFAD296B4013D779BF5.D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95"
352
+ ],
353
+ "tjp": [
354
+ "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95"
355
+ ]
356
+ }
357
+ } (I: 1b99d87d262e9d18d8a607a80b1a0126)
358
+ [SyncSagaCoordinator][getStageAndPayloadFromFrame] starting... (I: fddc287bd4d55253dc50e519fd352226)
359
+ [SyncSagaCoordinator][getStageAndPayloadFromFrame] complete.
360
+ [SyncSagaCoordinator][handleSagaFrame] handling frame stage: delta
361
+ [SyncSagaCoordinator][handleDeltaFrame] starting...
362
+ [SyncSagaCoordinator][getStageAndPayloadFromFrame] starting... (I: fddc287bd4d55253dc50e519fd352226)
363
+ [SyncSagaCoordinator][getStageAndPayloadFromFrame] complete.
364
+ [SyncSagaCoordinator][handleSagaFrame] complete.
365
+ [SyncPeerInnerspace_V1][sendRequest] responseFrame addr: sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^05CE7879DDE658ED1D74E1F27AE954A2062867E19C6AA336E3FC836F6DD1EB90.D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95
366
+ [putInSpace] [InnerSpace_V1][putImpl] already had addr(s): sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^05CE7879DDE658ED1D74E1F27AE954A2062867E19C6AA336E3FC836F6DD1EB90.D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95
367
+ [SyncPeerInnerspace_V1][witness] complete.
368
+ [SyncSagaCoordinator][executeSagaLoop] received responseCtx: {
369
+ "ib": "sync_sagacontext default",
370
+ "gib": "F63A25523546877EC053E4FE530307A8AD3E40E8B335E0DE40D7931DB11DEAAA",
371
+ "data": {
372
+ "timestamp": "Thu, 08 Jan 2026 16:16:03 GMT",
373
+ "timestampMs": 807
374
+ },
375
+ "rel8ns": {
376
+ "ancestor": [
377
+ "sync_sagacontext^gib"
378
+ ],
379
+ "sagaFrame": [
380
+ "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^05CE7879DDE658ED1D74E1F27AE954A2062867E19C6AA336E3FC836F6DD1EB90.D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95"
381
+ ]
382
+ }
383
+ } (I: 8f35c8b7a9e886aa9743d38bee907826)
384
+ [SyncSagaCoordinator][executeSagaLoop] calling handleSagaFrame. localSpace: source_uuid (source), tempSpace: dd1380249cd2c0d3f6145f5c320dbfe1a0afe8d7e495b321ba5289f62460a8ee
385
+ [SyncSagaCoordinator][handleSagaFrame] starting... (I: 5deec8a1f7a6d263c88cd458ad990826)
386
+ [SyncSagaCoordinator][handleSagaFrame] sagaIbGib: {
387
+ "ib": "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5",
388
+ "gib": "05CE7879DDE658ED1D74E1F27AE954A2062867E19C6AA336E3FC836F6DD1EB90.D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95",
389
+ "data": {
390
+ "n": 5,
391
+ "timestamp": "Thu, 08 Jan 2026 16:16:03 GMT",
392
+ "timestampMs": 790,
393
+ "uuid": "11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5"
394
+ },
395
+ "rel8ns": {
396
+ "ancestor": [
397
+ "sync^gib"
398
+ ],
399
+ "sync-msg": [
400
+ "sync_sagamsg 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5 commit^E435E561A24DCB1C8D82F31783CB815024FB881AF6B23A852EEEEA784E29BC0A"
401
+ ],
402
+ "past": [
403
+ "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95",
404
+ "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^075CA68A9D7A4DEEFA700E786EA02BC0D82E63D9BE0C3FFAD296B4013D779BF5.D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95",
405
+ "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^2298E32C059C3C4579DDDEB34585298B0E4289AE7988386643C9810EE5B4FB9A.D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95"
406
+ ],
407
+ "tjp": [
408
+ "sync 11afb650f3b229ff73fa20daa70dba8f10bbbcc4236b5d5caa6d2d1048e257e5^D9F087FF6C66546ACED8A7D525E23718A7E1E963A51068924DD555412C67CC95"
409
+ ]
410
+ }
411
+ } (I: 1b99d87d262e9d18d8a607a80b1a0126)
412
+ [SyncSagaCoordinator][getStageAndPayloadFromFrame] starting... (I: fddc287bd4d55253dc50e519fd352226)
413
+ [SyncSagaCoordinator][getStageAndPayloadFromFrame] complete.
414
+ [SyncSagaCoordinator][handleSagaFrame] handling frame stage: commit
415
+ [SyncSagaCoordinator][handleCommitFrame] Commit received. Saga complete.
416
+ [SyncSagaCoordinator][handleSagaFrame] complete.
417
+ [sync-innerspace-partial-update.respec] Verifying Destination...
418
+ 💚 [sync-innerspace-partial-update.respec.mjs][Sync InnerSpaces (Partial Update)][Sender Newer (Partial History)][verify setup] ALL 2 of 2 reckonings were respecful
419
+ 💚 [sync-innerspace-partial-update.respec.mjs][Sync InnerSpaces (Partial Update)][Sender Newer (Partial History)][verify dest updated] ALL 2 of 2 reckonings were respecful
420
+ [sync-innerspace-partial-update.respec.mjs][Sync InnerSpaces (Partial Update)][Sender Newer (Partial History)][verify setup] ✅
421
+ [sync-innerspace-partial-update.respec.mjs][Sync InnerSpaces (Partial Update)][Sender Newer (Partial History)][verify dest updated] ✅
422
+ [sync-innerspace-partial-update.respec.mjs][Sync InnerSpaces (Partial Update)][Sender Newer (Partial History)] ✅
423
+
424
+ 29 respec files completely skipped.
425
+
426
+ 💚💚 nothing but respec 💚💚