@ibgib/core-gib 0.1.20 → 0.1.21

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 (73) hide show
  1. package/dist/sync/graft-info/graft-info-constants.d.mts +5 -0
  2. package/dist/sync/graft-info/graft-info-constants.d.mts.map +1 -0
  3. package/dist/sync/graft-info/graft-info-constants.mjs +5 -0
  4. package/dist/sync/graft-info/graft-info-constants.mjs.map +1 -0
  5. package/dist/sync/graft-info/graft-info-helpers.d.mts +49 -0
  6. package/dist/sync/graft-info/graft-info-helpers.d.mts.map +1 -0
  7. package/dist/sync/graft-info/graft-info-helpers.mjs +236 -0
  8. package/dist/sync/graft-info/graft-info-helpers.mjs.map +1 -0
  9. package/dist/sync/graft-info/graft-info-helpers.respec.d.mts +2 -0
  10. package/dist/sync/graft-info/graft-info-helpers.respec.d.mts.map +1 -0
  11. package/dist/sync/graft-info/graft-info-helpers.respec.mjs +70 -0
  12. package/dist/sync/graft-info/graft-info-helpers.respec.mjs.map +1 -0
  13. package/dist/sync/graft-info/graft-info-types.d.mts +31 -0
  14. package/dist/sync/{merge-info/merge-info-types.d.mts.map → graft-info/graft-info-types.d.mts.map} +1 -1
  15. package/dist/sync/graft-info/graft-info-types.mjs +2 -0
  16. package/dist/sync/graft-info/graft-info-types.mjs.map +1 -0
  17. package/dist/sync/strategies/conflict-optimistic.d.mts +1 -1
  18. package/dist/sync/strategies/conflict-optimistic.d.mts.map +1 -1
  19. package/dist/sync/strategies/conflict-optimistic.mjs +10 -60
  20. package/dist/sync/strategies/conflict-optimistic.mjs.map +1 -1
  21. package/dist/sync/sync-conflict.respec.mjs +152 -33
  22. package/dist/sync/sync-conflict.respec.mjs.map +1 -1
  23. package/dist/sync/sync-constants.d.mts +1 -3
  24. package/dist/sync/sync-constants.d.mts.map +1 -1
  25. package/dist/sync/sync-constants.mjs +0 -2
  26. package/dist/sync/sync-constants.mjs.map +1 -1
  27. package/dist/sync/sync-peer/sync-peer-innerspace-v1.d.mts +5 -2
  28. package/dist/sync/sync-peer/sync-peer-innerspace-v1.d.mts.map +1 -1
  29. package/dist/sync/sync-peer/sync-peer-innerspace-v1.mjs +70 -7
  30. package/dist/sync/sync-peer/sync-peer-innerspace-v1.mjs.map +1 -1
  31. package/dist/sync/sync-saga-coordinator.d.mts +25 -18
  32. package/dist/sync/sync-saga-coordinator.d.mts.map +1 -1
  33. package/dist/sync/sync-saga-coordinator.mjs +508 -316
  34. package/dist/sync/sync-saga-coordinator.mjs.map +1 -1
  35. package/dist/sync/sync-saga-message/sync-saga-message-helpers.d.mts.map +1 -1
  36. package/dist/sync/sync-saga-message/sync-saga-message-helpers.mjs +1 -0
  37. package/dist/sync/sync-saga-message/sync-saga-message-helpers.mjs.map +1 -1
  38. package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts +1 -12
  39. package/dist/sync/sync-saga-message/sync-saga-message-types.d.mts.map +1 -1
  40. package/ibgib-foundations.md +20 -2
  41. package/package.json +1 -1
  42. package/src/sync/graft-info/graft-info-constants.mts +4 -0
  43. package/src/sync/graft-info/graft-info-helpers.mts +308 -0
  44. package/src/sync/graft-info/graft-info-helpers.respec.mts +83 -0
  45. package/src/sync/graft-info/graft-info-types.mts +33 -0
  46. package/src/sync/strategies/conflict-optimistic.mts +11 -70
  47. package/src/sync/sync-conflict.respec.mts +171 -35
  48. package/src/sync/sync-constants.mts +1 -4
  49. package/src/sync/sync-peer/sync-peer-innerspace-v1.mts +85 -12
  50. package/src/sync/sync-saga-coordinator.mts +569 -338
  51. package/src/sync/sync-saga-message/sync-saga-message-helpers.mts +2 -0
  52. package/src/sync/sync-saga-message/sync-saga-message-types.mts +0 -11
  53. package/test_output.log +0 -0
  54. package/tmp.md +43 -2
  55. package/dist/sync/merge-info/merge-info-constants.d.mts +0 -2
  56. package/dist/sync/merge-info/merge-info-constants.d.mts.map +0 -1
  57. package/dist/sync/merge-info/merge-info-constants.mjs +0 -2
  58. package/dist/sync/merge-info/merge-info-constants.mjs.map +0 -1
  59. package/dist/sync/merge-info/merge-info-helpers.d.mts +0 -51
  60. package/dist/sync/merge-info/merge-info-helpers.d.mts.map +0 -1
  61. package/dist/sync/merge-info/merge-info-helpers.mjs +0 -92
  62. package/dist/sync/merge-info/merge-info-helpers.mjs.map +0 -1
  63. package/dist/sync/merge-info/merge-info-helpers.respec.d.mts +0 -2
  64. package/dist/sync/merge-info/merge-info-helpers.respec.d.mts.map +0 -1
  65. package/dist/sync/merge-info/merge-info-helpers.respec.mjs +0 -32
  66. package/dist/sync/merge-info/merge-info-helpers.respec.mjs.map +0 -1
  67. package/dist/sync/merge-info/merge-info-types.d.mts +0 -26
  68. package/dist/sync/merge-info/merge-info-types.mjs +0 -2
  69. package/dist/sync/merge-info/merge-info-types.mjs.map +0 -1
  70. package/src/sync/merge-info/merge-info-constants.mts +0 -1
  71. package/src/sync/merge-info/merge-info-helpers.mts +0 -134
  72. package/src/sync/merge-info/merge-info-helpers.respec.mts +0 -41
  73. package/src/sync/merge-info/merge-info-types.mts +0 -28
@@ -4,9 +4,9 @@
4
4
  * Verifies Conflict Resolution strategies in SyncSagaCoordinator.
5
5
  * Reproduces divergence scenarios and asserts resolution behavior.
6
6
  */
7
- import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
7
+ import { respecfully, iReckon, ifWeMight } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
8
8
  const maam = `[${import.meta.url}]`, sir = maam;
9
- import { delay } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
9
+ import { delay, extractErrorMsg, pretty } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
10
10
  import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
11
11
  import { SyncSagaCoordinator } from './sync-saga-coordinator.mjs';
12
12
  import { getFromSpace } from '../witness/space/space-helper.mjs';
@@ -16,7 +16,10 @@ import { createTimelineRootHelper, getTestKeystoneServiceHelper } from '../agent
16
16
  import { mut8Timeline } from '../timeline/timeline-api.mjs';
17
17
  import { SyncPeerInnerspace_V1 } from './sync-peer/sync-peer-innerspace-v1.mjs';
18
18
  import { DEFAULT_INNER_SPACE_DATA_V1 } from '../witness/space/inner-space/inner-space-types.mjs';
19
+ import { getTjpAddr } from '../common/other/ibgib-helper.mjs';
19
20
  import { SyncConflictStrategy } from './sync-types.mjs';
21
+ import { fnObs } from '../common/pubsub/observer/observer-helper.mjs';
22
+ import { getDependencyGraph } from '../common/other/graph-helper.mjs';
20
23
  const logalot = true;
21
24
  const lc = `[sync-conflict.respec]`;
22
25
  await respecfully(sir, `Sync Conflict Resolution`, async () => {
@@ -52,25 +55,38 @@ await respecfully(sir, `Sync Conflict Resolution`, async () => {
52
55
  await destSpace.initialized;
53
56
  // 2. Seed Common History (V0 -> V1)
54
57
  console.log(`${lc} Creating Common History...`);
55
- const root = await createTimelineRootHelper({
58
+ const testRoot = await createTimelineRootHelper({
56
59
  ib: 'timeline_root',
57
- data: { type: 'root', text: 'v0' },
60
+ data: { type: 'testRoot', text: 'v0' },
58
61
  space: sourceSpace,
59
62
  });
60
- // Sync root to dest immediately so they start synced
61
- await metaspace.put({ ibGib: root, space: destSpace });
62
- await metaspace.registerNewIbGib({ ibGib: root, space: destSpace });
63
63
  // Create V1 (Common)
64
- const v1_Source = await mut8Timeline({
65
- timeline: root,
64
+ const v1_Common = await mut8Timeline({
65
+ timeline: testRoot,
66
66
  mut8Opts: { dataToAddOrPatch: { text: 'v1_common' } },
67
67
  metaspace,
68
68
  space: sourceSpace,
69
69
  });
70
- // Sync V1 to dest
71
- await metaspace.put({ ibGib: v1_Source, space: destSpace });
72
- await metaspace.registerNewIbGib({ ibGib: v1_Source, space: destSpace });
73
- const resGetDest = await getFromSpace({ space: destSpace, addr: getIbGibAddr({ ibGib: v1_Source }) });
70
+ const tjpAddr = getTjpAddr({ ibGib: testRoot, defaultIfNone: 'incomingAddr' }) ??
71
+ getIbGibAddr({ ibGib: testRoot });
72
+ console.log(`${lc} [TEST DEBUG] tjpAddr: ${tjpAddr}`);
73
+ // Sync testRoot to dest immediately so they start synced
74
+ // must get the entire dependency graph for testRoot
75
+ const depGraph_testRootAndV1Common = await getDependencyGraph({
76
+ ibGibAddrs: [tjpAddr],
77
+ space: sourceSpace,
78
+ live: true,
79
+ }) ?? {};
80
+ console.log(`${lc} depGraph_testRootAndV1Common: ${pretty(depGraph_testRootAndV1Common)}`);
81
+ if (Object.keys(depGraph_testRootAndV1Common).length === 0) {
82
+ throw new Error(`(UNEXPECTED) depGraph_testRootAndV1Common empty? (E: 39b4d855ffa65476084b4123786da826)`);
83
+ }
84
+ // put the entire graph into the destspace, but...
85
+ await metaspace.put({ ibGibs: Object.values(depGraph_testRootAndV1Common), space: destSpace });
86
+ // ...only register the main ibgibs
87
+ await metaspace.registerNewIbGib({ ibGib: testRoot, space: destSpace });
88
+ await metaspace.registerNewIbGib({ ibGib: v1_Common, space: destSpace });
89
+ const resGetDest = await getFromSpace({ space: destSpace, addr: getIbGibAddr({ ibGib: v1_Common }) });
74
90
  if (!resGetDest.success || !resGetDest.ibGibs || resGetDest.ibGibs.length === 0) {
75
91
  throw new Error(`Failed to retrieve v1_Dest from destSpace. (E: a1b2c3d4e5f6g7h8i9j0)`);
76
92
  }
@@ -79,7 +95,7 @@ await respecfully(sir, `Sync Conflict Resolution`, async () => {
79
95
  console.log(`${lc} Creating Divergence...`);
80
96
  // Source: V1 -> V2a (Edit Field A)
81
97
  const v2a = await mut8Timeline({
82
- timeline: v1_Source,
98
+ timeline: v1_Common,
83
99
  mut8Opts: { dataToAddOrPatch: { fieldA: 'source_edit' } },
84
100
  metaspace,
85
101
  space: sourceSpace,
@@ -92,35 +108,57 @@ await respecfully(sir, `Sync Conflict Resolution`, async () => {
92
108
  space: destSpace,
93
109
  });
94
110
  // Verify Divergence
95
- const tjpAddr = root.rel8ns.tjp[0]; // wait, root IS tjp, so no tjp rel8n...
96
- // Actually root frame has isTjp: true.
97
- // v1 has tjp: [v0_gib].
98
111
  console.log(`${lc} Divergence created.`);
99
112
  // 4. Run Sync (Optimistic)
100
113
  console.log(`${lc} Setting up Coordinators...`);
101
114
  const mockKeystone = await getTestKeystoneServiceHelper();
102
115
  const senderCoordinator = new SyncSagaCoordinator(mockKeystone);
103
116
  const receiverCoordinator = new SyncSagaCoordinator(mockKeystone);
117
+ // Create sender's tempSpace for transactional payload transfer
118
+ const senderTempSpaceName = `tmp_sender_test_${Date.now()}`;
119
+ const senderTempSpace = await metaspace.createNewLocalSpace({
120
+ opts: {
121
+ allowCancel: false,
122
+ spaceName: senderTempSpaceName,
123
+ getFnPrompt: metaspace.getFnPrompt,
124
+ }
125
+ });
126
+ if (!senderTempSpace) {
127
+ throw new Error(`(UNEXPECTED) senderTempSpace falsy? (E: ef4388c87e98f0211852eefa22414f26)`);
128
+ }
129
+ await senderTempSpace.initialized;
104
130
  const peer = new SyncPeerInnerspace_V1({
105
131
  senderSpace: sourceSpace,
132
+ senderTempSpace, // Pass sender's tempSpace for payload transfer
106
133
  receiverSpace: destSpace,
107
134
  receiverCoordinator,
108
135
  receiverMetaspace: metaspace,
109
136
  });
137
+ await peer.initialized;
110
138
  // Verify Receiver has correct KV (Pre-Sync Check)
111
139
  // This ensures the conflict precondition exists.
112
- await ifWe(sir, 'verify receiver KV pre-sync', async () => {
113
- const destKV = await receiverCoordinator.getKnowledgeVector({
114
- space: destSpace,
115
- metaspace,
116
- domainIbGibs: [v1_Dest]
117
- });
118
- const v1TjpAddr = v1_Dest.rel8ns?.tjp?.[0] || getIbGibAddr({ ibGib: v1_Dest }); // v1 might be tjp if it was root, but here v1 is child of root
119
- // Actually v1 has tjp rel8n.
120
- const destTip = destKV[v1TjpAddr];
121
- iReckon(sir, !!destTip).asTo(`Dest KV has timeline tip for ${v1TjpAddr}`).isGonnaBeTruthy();
122
- if (!destTip) {
123
- throw new Error(`Test Setup Fail: Dest Space does not have index for timeline ${v1TjpAddr}. Seeding failed. (E: 8a9b0c1d)`);
140
+ await ifWeMight(sir, 'verify receiver KV pre-sync', async () => {
141
+ try {
142
+ const destKV = await receiverCoordinator.getKnowledgeVector({
143
+ space: destSpace,
144
+ metaspace,
145
+ domainIbGibs: [v1_Dest]
146
+ });
147
+ const v1TjpAddr = getTjpAddr({ ibGib: v1_Dest, defaultIfNone: 'incomingAddr' }) ?? getIbGibAddr({ ibGib: v1_Dest });
148
+ console.log(`[TEST DEBUG] v1_Dest: ${JSON.stringify(v1_Dest)}`);
149
+ console.log(`[TEST DEBUG] v1TjpAddr: ${v1TjpAddr}`);
150
+ console.log(`[TEST DEBUG] destKV: ${JSON.stringify(destKV)}`);
151
+ console.log(`[TEST DEBUG] v1_Dest.rel8ns.tjp: ${v1_Dest.rel8ns?.tjp?.join(', ')}`);
152
+ // Actually v1 has tjp rel8n.
153
+ const destTip = destKV[v1TjpAddr];
154
+ iReckon(sir, !!destTip).asTo(`Dest KV has timeline tip for ${v1TjpAddr}`).isGonnaBeTruthy();
155
+ if (!destTip) {
156
+ throw new Error(`Test Setup Fail: Dest Space does not have index for timeline ${v1TjpAddr}. Seeding failed. (E: c194a80b4e4877b77826c37a1753b826)`);
157
+ }
158
+ }
159
+ catch (error) {
160
+ console.error(`${lc} ${extractErrorMsg(error)}`);
161
+ iReckon(sir, true).asTo('getKnowledgeVector errored out').isGonnaBeFalse();
124
162
  }
125
163
  });
126
164
  console.log(`${lc} Running Sync (ConflictStrategy: optimistic)...`);
@@ -137,6 +175,29 @@ await respecfully(sir, `Sync Conflict Resolution`, async () => {
137
175
  // identitySecret: undefined as any,
138
176
  // explicit useSessionIdentity: true is default
139
177
  });
178
+ const sublc = `${lc}[updates$]`;
179
+ /**
180
+ * I have added this so you can see how to subscribe to an ibgib
181
+ * observable using {@link fnObs}.
182
+ */
183
+ const subscription = await resSync.updates$.subscribe(fnObs({
184
+ next: async (ctxIbGib) => {
185
+ console.log(`${sublc} next fired. ${pretty(ctxIbGib)}`);
186
+ },
187
+ error: async (e) => {
188
+ if (e.data) {
189
+ console.error(`${sublc} error fired. error: ${JSON.stringify(e.data)} (E: 01cc08ba05ad99682831174fd7c31a26)`);
190
+ }
191
+ else {
192
+ console.dir(e);
193
+ console.error(`${sublc} error fired. error: ${extractErrorMsg(e)} (E: 73d3d61464e8e4ce4cd6efd8b9675826)`);
194
+ }
195
+ },
196
+ complete: async () => {
197
+ console.log(`${sublc} complete fired`);
198
+ },
199
+ }));
200
+ console.log(`${lc} awaiting resSync.done`);
140
201
  await resSync.done;
141
202
  console.log(`${lc} Sync Complete.`);
142
203
  }
@@ -148,10 +209,68 @@ await respecfully(sir, `Sync Conflict Resolution`, async () => {
148
209
  // 5. Verification
149
210
  // Expectation: Both Spaces should now have a NEW tip (V3) that merges V2a and V2b.
150
211
  const resSourceTip = await getFromSpace({ space: sourceSpace, addr: getIbGibAddr({ ibGib: v2a }) });
151
- await ifWe(sir, `verify merge happened`, async () => {
152
- // We expect a new tip that is NOT v2a or v2b
153
- // For now, valid failure is that this code doesn't start or completes without merge.
154
- iReckon(sir, true).asTo('Merge Verification Not Yet Implemented').isGonnaBeFalse();
212
+ await ifWeMight(sir, `verify merge happened`, async () => {
213
+ // Retrieve updated KV from Source (or check what happened to v2a)
214
+ // Ideally, we just check the source space for the timeline tip
215
+ // The timeline tip for testRoot/v0 should now be NEW.
216
+ try {
217
+ // Get the KV for the Source Space
218
+ const sourceKV = await senderCoordinator.getKnowledgeVector({
219
+ space: sourceSpace,
220
+ metaspace,
221
+ domainIbGibs: [testRoot] // We want to know the tip of this timeline
222
+ });
223
+ const tjpAddr = getTjpAddr({ ibGib: testRoot, defaultIfNone: 'incomingAddr' }) ??
224
+ getIbGibAddr({ ibGib: testRoot });
225
+ if (logalot) {
226
+ console.log(`${lc} getKnowledgeVector returned. sourceKV: ${pretty(sourceKV)} (I: e8780cda37c8b2a46eeb85786874e926)`);
227
+ }
228
+ const sourceTipAddr = sourceKV[tjpAddr];
229
+ if (!sourceTipAddr) {
230
+ throw new Error(`Source Space missing timeline tip for ${tjpAddr} (E: ec95980b9c980c5c5870812e15e43826)`);
231
+ }
232
+ console.log(`${lc} [TEST DEBUG] sourceTipAddr: ${sourceTipAddr}`);
233
+ console.log(`${lc} [TEST DEBUG] v2a: ${getIbGibAddr({ ibGib: v2a })}`);
234
+ console.log(`${lc} [TEST DEBUG] v2b: ${getIbGibAddr({ ibGib: v2b })}`);
235
+ iReckon(sir, sourceTipAddr).asTo(`Source Tip (${sourceTipAddr}) should NOT be v2a`).not.isGonnaBe(getIbGibAddr({ ibGib: v2a }));
236
+ iReckon(sir, sourceTipAddr).asTo(`Source Tip (${sourceTipAddr}) should NOT be v2b`).not.isGonnaBe(getIbGibAddr({ ibGib: v2b }));
237
+ // Fetch the new tip
238
+ const resTip = await getFromSpace({ space: sourceSpace, addr: sourceTipAddr });
239
+ const newTip = resTip.ibGibs[0];
240
+ console.log(`${lc} [TEST DEBUG] newTip: ${JSON.stringify(newTip)}`);
241
+ // Check Data: Should have BOTH edits
242
+ iReckon(sir, newTip.data.fieldA).asTo('New Tip Data Field A').isGonnaBe('source_edit');
243
+ iReckon(sir, newTip.data.fieldB).asTo('New Tip Data Field B').isGonnaBe('dest_edit');
244
+ // Check Graft Structure
245
+ // Look for 'graftinfo' rel8n
246
+ const graftInfoRel = newTip.rel8ns?.graftinfo;
247
+ iReckon(sir, graftInfoRel).asTo('New Tip should have graftinfo rel8n').isGonnaBeTruthy();
248
+ if (graftInfoRel) {
249
+ iReckon(sir, graftInfoRel.length).asTo('Only 1 graftinfo').isGonnaBe(1);
250
+ // Fetch Graft Info Stone
251
+ const resGraft = await getFromSpace({ space: sourceSpace, addr: graftInfoRel[0] });
252
+ const graftInfo = resGraft.ibGibs[0];
253
+ console.log(`${lc} [TEST DEBUG] graftInfo: ${JSON.stringify(graftInfo)}`);
254
+ // Check Graft Relations (graftbase, graftorphan)
255
+ const baseRel = graftInfo.rel8ns?.graftbase;
256
+ const orphanRel = graftInfo.rel8ns?.graftorphan;
257
+ iReckon(sir, baseRel).asTo('Graft Base exists').isGonnaBeTruthy();
258
+ iReckon(sir, orphanRel).asTo('Graft Orphan exists').isGonnaBeTruthy();
259
+ // Verify Base/Orphan identity (one should be v2a, one v2b)
260
+ const addrV2a = getIbGibAddr({ ibGib: v2a });
261
+ const addrV2b = getIbGibAddr({ ibGib: v2b });
262
+ const bases = baseRel || [];
263
+ const orphans = orphanRel || [];
264
+ const isV2aInvolved = bases.includes(addrV2a) || orphans.includes(addrV2a);
265
+ const isV2bInvolved = bases.includes(addrV2b) || orphans.includes(addrV2b);
266
+ iReckon(sir, isV2aInvolved).asTo('V2a is involved in graft').isGonnaBeTrue();
267
+ iReckon(sir, isV2bInvolved).asTo('V2b is involved in graft').isGonnaBeTrue();
268
+ }
269
+ }
270
+ catch (error) {
271
+ console.error(`${lc} ${extractErrorMsg(error)}`);
272
+ iReckon(sir, true).asTo('getKnowledgeVector errored out').isGonnaBeFalse();
273
+ }
155
274
  });
156
275
  });
157
276
  });
@@ -1 +1 @@
1
- {"version":3,"file":"sync-conflict.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-conflict.respec.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-conflict.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-conflict.respec.mts"],"names":[],"mappings":"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"}
@@ -10,14 +10,12 @@ export declare const SYNC_STAGE_ACK = "ack";
10
10
  export declare const SYNC_STAGE_REQUEST = "request";
11
11
  export declare const SYNC_STAGE_DELTA = "delta";
12
12
  export declare const SYNC_STAGE_COMMIT = "commit";
13
- export declare const SYNC_STAGE_CONFLICT = "conflict";
14
- export type SyncStage = typeof SYNC_STAGE_INIT | typeof SYNC_STAGE_ACK | typeof SYNC_STAGE_REQUEST | typeof SYNC_STAGE_DELTA | typeof SYNC_STAGE_COMMIT | typeof SYNC_STAGE_CONFLICT;
13
+ export type SyncStage = typeof SYNC_STAGE_INIT | typeof SYNC_STAGE_ACK | typeof SYNC_STAGE_REQUEST | typeof SYNC_STAGE_DELTA | typeof SYNC_STAGE_COMMIT;
15
14
  export declare const SyncStage: {
16
15
  readonly init: "init";
17
16
  readonly ack: "ack";
18
17
  readonly request: "request";
19
18
  readonly delta: "delta";
20
19
  readonly commit: "commit";
21
- readonly conflict: "conflict";
22
20
  };
23
21
  //# sourceMappingURL=sync-constants.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-constants.d.mts","sourceRoot":"","sources":["../../src/sync/sync-constants.mts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,SAAS,CAAC;AAEhC,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,kCAAkC,kBAAkB,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAE7C,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAC1C,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAE9C,MAAM,MAAM,SAAS,GACf,OAAO,eAAe,GACtB,OAAO,cAAc,GACrB,OAAO,kBAAkB,GACzB,OAAO,gBAAgB,GACvB,OAAO,iBAAiB,GACxB,OAAO,mBAAmB,CAAC;AAEjC,eAAO,MAAM,SAAS;;;;;;;CAOZ,CAAC"}
1
+ {"version":3,"file":"sync-constants.d.mts","sourceRoot":"","sources":["../../src/sync/sync-constants.mts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,SAAS,CAAC;AAEhC,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,kCAAkC,kBAAkB,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAE7C,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C,MAAM,MAAM,SAAS,GACf,OAAO,eAAe,GACtB,OAAO,cAAc,GACrB,OAAO,kBAAkB,GACzB,OAAO,gBAAgB,GACvB,OAAO,iBAAiB,CAAC;AAE/B,eAAO,MAAM,SAAS;;;;;;CAMZ,CAAC"}
@@ -10,13 +10,11 @@ export const SYNC_STAGE_ACK = "ack";
10
10
  export const SYNC_STAGE_REQUEST = "request";
11
11
  export const SYNC_STAGE_DELTA = "delta";
12
12
  export const SYNC_STAGE_COMMIT = "commit";
13
- export const SYNC_STAGE_CONFLICT = "conflict";
14
13
  export const SyncStage = {
15
14
  init: SYNC_STAGE_INIT,
16
15
  ack: SYNC_STAGE_ACK,
17
16
  request: SYNC_STAGE_REQUEST,
18
17
  delta: SYNC_STAGE_DELTA,
19
18
  commit: SYNC_STAGE_COMMIT,
20
- conflict: SYNC_STAGE_CONFLICT,
21
19
  };
22
20
  //# sourceMappingURL=sync-constants.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-constants.mjs","sourceRoot":"","sources":["../../src/sync/sync-constants.mts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC;AAEhC,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAC9C,MAAM,CAAC,MAAM,kCAAkC,GAAG,eAAe,CAAC;AAElE;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAE7C,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAC1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAU9C,MAAM,CAAC,MAAM,SAAS,GAAG;IACrB,IAAI,EAAE,eAAe;IACrB,GAAG,EAAE,cAAc;IACnB,OAAO,EAAE,kBAAkB;IAC3B,KAAK,EAAE,gBAAgB;IACvB,MAAM,EAAE,iBAAiB;IACzB,QAAQ,EAAE,mBAAmB;CACvB,CAAC"}
1
+ {"version":3,"file":"sync-constants.mjs","sourceRoot":"","sources":["../../src/sync/sync-constants.mts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC;AAEhC,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAC9C,MAAM,CAAC,MAAM,kCAAkC,GAAG,eAAe,CAAC;AAElE;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAE7C,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAS1C,MAAM,CAAC,MAAM,SAAS,GAAG;IACrB,IAAI,EAAE,eAAe;IACrB,GAAG,EAAE,cAAc;IACnB,OAAO,EAAE,kBAAkB;IAC3B,KAAK,EAAE,gBAAgB;IACvB,MAAM,EAAE,iBAAiB;CACnB,CAAC"}
@@ -3,15 +3,17 @@
3
3
  */
4
4
  import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
5
5
  import { IbGibSpaceAny } from '../../witness/space/space-base-v1.mjs';
6
- import { SyncSagaContextIbGib_V1 } from '../sync-saga-context/sync-saga-context-types.mjs';
7
- import { SyncPeer_V1 } from './sync-peer-v1.mjs';
8
6
  import { SyncSagaCoordinator } from '../sync-saga-coordinator.mjs';
9
7
  import { MetaspaceService } from '../../witness/space/metaspace/metaspace-types.mjs';
8
+ import { SyncPeer_V1 } from './sync-peer-v1.mjs';
9
+ import { SyncSagaContextIbGib_V1 } from '../sync-saga-context/sync-saga-context-types.mjs';
10
10
  export interface SyncPeerInnerspaceOptions {
11
11
  senderSpace: IbGibSpaceAny;
12
+ senderTempSpace?: IbGibSpaceAny;
12
13
  receiverSpace: IbGibSpaceAny;
13
14
  receiverCoordinator: SyncSagaCoordinator;
14
15
  receiverMetaspace: MetaspaceService;
16
+ receiverTempSpace?: IbGibSpaceAny;
15
17
  }
16
18
  /**
17
19
  * Concrete implementation of SyncPeer for local in-memory simulation (Innerspace to Innerspace).
@@ -23,6 +25,7 @@ export declare class SyncPeerInnerspace_V1 extends SyncPeer_V1 {
23
25
  opts: SyncPeerInnerspaceOptions;
24
26
  protected lc: string;
25
27
  constructor(opts: SyncPeerInnerspaceOptions);
28
+ private ensureReceiverTempSpace;
26
29
  protected getLocalIbGib(addr: string): Promise<IbGib_V1 | undefined>;
27
30
  protected push(addr: string): Promise<void>;
28
31
  protected pull(addr: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"sync-peer-innerspace-v1.d.mts","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-innerspace-v1.mts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAK3D,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAErF,MAAM,WAAW,yBAAyB;IACtC,WAAW,EAAE,aAAa,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,iBAAiB,EAAE,gBAAgB,CAAC;CACvC;AAID;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,WAAW;IAKvC,IAAI,EAAE,yBAAyB;IAH1C,SAAS,CAAC,EAAE,EAAE,MAAM,CAAqC;gBAG9C,IAAI,EAAE,yBAAyB;cAK1B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;cAK1D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAIjC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAIjC,WAAW,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAwE3G;;OAEG;cACa,QAAQ,CAAC,EACrB,IAAI,EACJ,IAAI,EACJ,EAAE,EACL,EAAE;QACC,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,aAAa,CAAC;QACpB,EAAE,EAAE,aAAa,CAAA;KACpB,GAAG,OAAO,CAAC,IAAI,CAAC;CA2BpB"}
1
+ {"version":3,"file":"sync-peer-innerspace-v1.d.mts","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-innerspace-v1.mts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAK3D,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAG3F,MAAM,WAAW,yBAAyB;IACtC,WAAW,EAAE,aAAa,CAAC;IAC3B,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC,aAAa,EAAE,aAAa,CAAC;IAC7B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,iBAAiB,EAAE,gBAAgB,CAAC;IACpC,iBAAiB,CAAC,EAAE,aAAa,CAAC;CACrC;AAID;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,WAAW;IAKvC,IAAI,EAAE,yBAAyB;IAH1C,SAAS,CAAC,EAAE,EAAE,MAAM,CAAqC;gBAG9C,IAAI,EAAE,yBAAyB;YAK5B,uBAAuB;cAoBrB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;cAK1D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAIjC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAIjC,WAAW,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IA2H3G;;OAEG;cACa,QAAQ,CAAC,EACrB,IAAI,EACJ,IAAI,EACJ,EAAE,EACL,EAAE;QACC,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,aAAa,CAAC;QACpB,EAAE,EAAE,aAAa,CAAA;KACpB,GAAG,OAAO,CAAC,IAAI,CAAC;CA2BpB"}
@@ -4,10 +4,10 @@
4
4
  import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
5
5
  import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
6
6
  import { GLOBAL_LOG_A_LOT } from '../../core-constants.mjs';
7
- import { SYNC_ATOM } from '../sync-constants.mjs';
7
+ import { SYNC_ATOM, SYNC_MSG_REL8N_NAME } from '../sync-constants.mjs';
8
8
  import { SyncPeer_V1 } from './sync-peer-v1.mjs';
9
- import { createSyncSagaContext } from '../sync-saga-context/sync-saga-context-helpers.mjs';
10
9
  import { getFromSpace, putInSpace } from '../../witness/space/space-helper.mjs';
10
+ import { createSyncSagaContext } from '../sync-saga-context/sync-saga-context-helpers.mjs';
11
11
  const logalot = GLOBAL_LOG_A_LOT || true;
12
12
  /**
13
13
  * Concrete implementation of SyncPeer for local in-memory simulation (Innerspace to Innerspace).
@@ -22,6 +22,25 @@ export class SyncPeerInnerspace_V1 extends SyncPeer_V1 {
22
22
  super(opts.receiverSpace.data); // Use receiver space data as initial phantom data? Or empty.
23
23
  this.opts = opts;
24
24
  }
25
+ async ensureReceiverTempSpace() {
26
+ if (!this.opts.receiverTempSpace) {
27
+ const { receiverMetaspace } = this.opts;
28
+ const uuid = crypto.randomUUID ? crypto.randomUUID() : Math.random().toString(36);
29
+ const tempSpaceName = `tmp_sync_recv_${uuid.substring(0, 8)}`;
30
+ this.opts.receiverTempSpace = await receiverMetaspace.createNewLocalSpace({
31
+ opts: {
32
+ allowCancel: false,
33
+ spaceName: tempSpaceName,
34
+ getFnPrompt: receiverMetaspace.getFnPrompt,
35
+ logalot
36
+ }
37
+ });
38
+ if (this.opts.receiverTempSpace) {
39
+ await this.opts.receiverTempSpace.initialized;
40
+ }
41
+ }
42
+ return this.opts.receiverTempSpace; // Non-null assertion since we just created it
43
+ }
25
44
  async getLocalIbGib(addr) {
26
45
  const res = await getFromSpace({ space: this.opts.senderSpace, addr });
27
46
  return res.ibGibs?.[0];
@@ -49,6 +68,24 @@ export class SyncPeerInnerspace_V1 extends SyncPeer_V1 {
49
68
  if (!sagaFrame) {
50
69
  throw new Error(`${lc} sagaFrame not found in receiver space: ${sagaFrameAddr} (E: 2c0190bd04ea408c909618193850029b)`);
51
70
  }
71
+ // Ensure receiverTempSpace exists
72
+ const receiverTempSpace = await this.ensureReceiverTempSpace();
73
+ // Store saga frame in tempSpace for easy queries during transaction
74
+ // (Control ibgibs like saga frames and msg stones go in BOTH spaces:
75
+ // destSpace for audit trail, tempSpace for easy queries)
76
+ await putInSpace({ space: receiverTempSpace, ibGib: sagaFrame });
77
+ await receiverMetaspace.registerNewIbGib({ ibGib: sagaFrame });
78
+ // Also store the message stone (if present) in tempSpace
79
+ const msgStoneAddrs = sagaFrame.rel8ns?.[SYNC_MSG_REL8N_NAME];
80
+ if (msgStoneAddrs && msgStoneAddrs.length > 0) {
81
+ const resMsgStone = await getFromSpace({ space: receiverSpace, addrs: msgStoneAddrs });
82
+ if (resMsgStone.ibGibs) {
83
+ for (const msgStone of resMsgStone.ibGibs) {
84
+ await putInSpace({ space: receiverTempSpace, ibGib: msgStone });
85
+ await receiverMetaspace.registerNewIbGib({ ibGib: msgStone });
86
+ }
87
+ }
88
+ }
52
89
  // 2. Execute Receiver Logic
53
90
  // The Peer "Network" triggers the Receiver Coordinator.
54
91
  if (logalot) {
@@ -59,7 +96,8 @@ export class SyncPeerInnerspace_V1 extends SyncPeer_V1 {
59
96
  const result = await receiverCoordinator.handleSagaFrame({
60
97
  sagaIbGib: sagaFrame,
61
98
  srcGraph: {},
62
- space: receiverSpace,
99
+ destSpace: receiverSpace, // Query existing data
100
+ tempSpace: receiverTempSpace, // Transaction space
63
101
  metaspace: receiverMetaspace,
64
102
  });
65
103
  if (!result) {
@@ -72,10 +110,28 @@ export class SyncPeerInnerspace_V1 extends SyncPeer_V1 {
72
110
  if (logalot) {
73
111
  console.log(`${lc} responseFrame addr: ${getIbGibAddr({ ibGib: responseFrame })}`);
74
112
  }
75
- // 3. Persist Response Data to Receiver Space (Output Buffer)
76
- // The Receiver created new data (Frame, Payload). It must be saved in Receiver Space
77
- // so the "Network" can PULL it back to Sender.
78
- const ibGibsToPersist = [responseFrame, ...(payloadIbGibs || [])];
113
+ // 3. Persist Response Control IbGibs (Frame + Msg Stones) to BOTH Spaces
114
+ // Control ibgibs (saga frames, msg stones, identity) go in BOTH spaces:
115
+ // - receiverSpace (destSpace): Audit trail
116
+ // - receiverTempSpace: Already there from creation in tempSpace
117
+ // Ensure response frame is in receiverSpace for audit trail
118
+ await putInSpace({ space: receiverSpace, ibGib: responseFrame });
119
+ await receiverMetaspace.registerNewIbGib({ ibGib: responseFrame });
120
+ // Ensure response msg stone is in receiverSpace for audit trail
121
+ const responseMsgStoneAddrs = responseFrame.rel8ns?.[SYNC_MSG_REL8N_NAME];
122
+ if (responseMsgStoneAddrs && responseMsgStoneAddrs.length > 0) {
123
+ const resResponseMsgStone = await getFromSpace({ space: receiverTempSpace, addrs: responseMsgStoneAddrs });
124
+ if (resResponseMsgStone.ibGibs) {
125
+ for (const msgStone of resResponseMsgStone.ibGibs) {
126
+ await putInSpace({ space: receiverSpace, ibGib: msgStone });
127
+ await receiverMetaspace.registerNewIbGib({ ibGib: msgStone });
128
+ }
129
+ }
130
+ }
131
+ // 4. Persist Domain Payload IbGibs
132
+ // Domain ibgibs stay in tempSpace ONLY until commit
133
+ // (they're already in the appropriate space from coordinator's work)
134
+ const ibGibsToPersist = [...(payloadIbGibs || [])];
79
135
  // Note: payloadIbGibs might have deep dependencies.
80
136
  // Since they were generated/fetched by the Receiver Coordinator,
81
137
  // we assume they are already in the Receiver Space or explicitly returned here.
@@ -85,6 +141,13 @@ export class SyncPeerInnerspace_V1 extends SyncPeer_V1 {
85
141
  // If `space` passed was `receiverSpace`, they should be there.
86
142
  // But let's explicit put to be sure.
87
143
  await putInSpace({ space: receiverSpace, ibGibs: ibGibsToPersist });
144
+ // CRITICAL: Also put payloadIbGibs into sender's tempSpace
145
+ // Sender needs these for merge logic in handleDeltaFrame (tempSpace queries)
146
+ // Do NOT put in sender's durable space - these are transactional!
147
+ if (this.opts.senderTempSpace && ibGibsToPersist.length > 0) {
148
+ console.log(`${lc} [CONFLICT DEBUG] Transferring ${ibGibsToPersist.length} payload ibgibs to sender's tempSpace`);
149
+ await putInSpace({ space: this.opts.senderTempSpace, ibGibs: ibGibsToPersist });
150
+ }
88
151
  // 4. Create Response Context
89
152
  const responsePayloadAddrs = payloadIbGibs?.map(p => getIbGibAddr({ ibGib: p }));
90
153
  const responseCtx = await createSyncSagaContext({
@@ -1 +1 @@
1
- {"version":3,"file":"sync-peer-innerspace-v1.mjs","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-innerspace-v1.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-peer-innerspace-v1.mjs","sourceRoot":"","sources":["../../../src/sync/sync-peer/sync-peer-innerspace-v1.mts"],"names":[],"mappings":"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"}