@ibgib/core-gib 0.1.21 → 0.1.22

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 (113) hide show
  1. package/dist/sync/sync-conflict.respec.mjs +24 -22
  2. package/dist/sync/sync-conflict.respec.mjs.map +1 -1
  3. package/dist/sync/sync-constants.d.mts +8 -8
  4. package/dist/sync/sync-constants.d.mts.map +1 -1
  5. package/dist/sync/sync-constants.mjs +3 -3
  6. package/dist/sync/sync-constants.mjs.map +1 -1
  7. package/dist/sync/sync-helpers.d.mts +2 -0
  8. package/dist/sync/sync-helpers.d.mts.map +1 -1
  9. package/dist/sync/sync-helpers.mjs +11 -9
  10. package/dist/sync/sync-helpers.mjs.map +1 -1
  11. package/dist/sync/sync-innerspace-constants.respec.mjs +5 -1
  12. package/dist/sync/sync-innerspace-constants.respec.mjs.map +1 -1
  13. package/dist/sync/sync-innerspace-deep-updates.respec.mjs +5 -1
  14. package/dist/sync/sync-innerspace-deep-updates.respec.mjs.map +1 -1
  15. package/dist/sync/sync-innerspace-dest-ahead.respec.mjs +8 -4
  16. package/dist/sync/sync-innerspace-dest-ahead.respec.mjs.map +1 -1
  17. package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs +5 -1
  18. package/dist/sync/sync-innerspace-multiple-timelines.respec.mjs.map +1 -1
  19. package/dist/sync/sync-innerspace-partial-update.respec.mjs +5 -1
  20. package/dist/sync/sync-innerspace-partial-update.respec.mjs.map +1 -1
  21. package/dist/sync/sync-innerspace.respec.mjs +5 -1
  22. package/dist/sync/sync-innerspace.respec.mjs.map +1 -1
  23. package/dist/sync/sync-peer/sync-peer-constants.d.mts +2 -0
  24. package/dist/sync/sync-peer/sync-peer-constants.d.mts.map +1 -0
  25. package/dist/sync/sync-peer/sync-peer-constants.mjs +2 -0
  26. package/dist/sync/sync-peer/sync-peer-constants.mjs.map +1 -0
  27. package/dist/sync/sync-peer/sync-peer-helpers.d.mts +2 -0
  28. package/dist/sync/sync-peer/sync-peer-helpers.d.mts.map +1 -0
  29. package/dist/sync/sync-peer/sync-peer-helpers.mjs +2 -0
  30. package/dist/sync/sync-peer/sync-peer-helpers.mjs.map +1 -0
  31. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.d.mts +8 -0
  32. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.d.mts.map +1 -0
  33. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.mjs +8 -0
  34. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.mjs.map +1 -0
  35. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-helpers.d.mts +18 -0
  36. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-helpers.d.mts.map +1 -0
  37. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-helpers.mjs +54 -0
  38. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-helpers.mjs.map +1 -0
  39. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.d.mts +80 -0
  40. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.d.mts.map +1 -0
  41. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.mjs +5 -0
  42. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.mjs.map +1 -0
  43. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.d.mts +43 -0
  44. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.d.mts.map +1 -0
  45. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs +229 -0
  46. package/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs.map +1 -0
  47. package/dist/sync/sync-peer/sync-peer-types.d.mts +12 -0
  48. package/dist/sync/sync-peer/sync-peer-types.d.mts.map +1 -1
  49. package/dist/sync/sync-peer/sync-peer-v1.d.mts +15 -7
  50. package/dist/sync/sync-peer/sync-peer-v1.d.mts.map +1 -1
  51. package/dist/sync/sync-peer/sync-peer-v1.mjs +105 -24
  52. package/dist/sync/sync-peer/sync-peer-v1.mjs.map +1 -1
  53. package/dist/sync/sync-saga-context/sync-saga-context-helpers.d.mts +5 -8
  54. package/dist/sync/sync-saga-context/sync-saga-context-helpers.d.mts.map +1 -1
  55. package/dist/sync/sync-saga-context/sync-saga-context-helpers.mjs +34 -18
  56. package/dist/sync/sync-saga-context/sync-saga-context-helpers.mjs.map +1 -1
  57. package/dist/sync/sync-saga-context/sync-saga-context-types.d.mts +26 -22
  58. package/dist/sync/sync-saga-context/sync-saga-context-types.d.mts.map +1 -1
  59. package/dist/sync/sync-saga-context/sync-saga-context-types.mjs +1 -9
  60. package/dist/sync/sync-saga-context/sync-saga-context-types.mjs.map +1 -1
  61. package/dist/sync/sync-saga-coordinator.d.mts +23 -33
  62. package/dist/sync/sync-saga-coordinator.d.mts.map +1 -1
  63. package/dist/sync/sync-saga-coordinator.mjs +271 -163
  64. package/dist/sync/sync-saga-coordinator.mjs.map +1 -1
  65. package/dist/sync/sync-types.d.mts +15 -3
  66. package/dist/sync/sync-types.d.mts.map +1 -1
  67. package/dist/witness/light-witness-base-v1.d.mts.map +1 -1
  68. package/dist/witness/light-witness-base-v1.mjs +2 -0
  69. package/dist/witness/light-witness-base-v1.mjs.map +1 -1
  70. package/dist/witness/space/inner-space/inner-space-v1.mjs +1 -1
  71. package/dist/witness/space/inner-space/inner-space-v1.mjs.map +1 -1
  72. package/package.json +1 -1
  73. package/src/sync/README.md +31 -22
  74. package/src/sync/sync-conflict.respec.mts +23 -19
  75. package/src/sync/sync-constants.mts +4 -5
  76. package/src/sync/sync-helpers.mts +11 -7
  77. package/src/sync/sync-innerspace-constants.respec.mts +5 -1
  78. package/src/sync/sync-innerspace-deep-updates.respec.mts +5 -1
  79. package/src/sync/sync-innerspace-dest-ahead.respec.mts +7 -3
  80. package/src/sync/sync-innerspace-multiple-timelines.respec.mts +5 -1
  81. package/src/sync/sync-innerspace-partial-update.respec.mts +8 -2
  82. package/src/sync/sync-innerspace.respec.mts +5 -1
  83. package/src/sync/sync-peer/sync-peer-constants.mts +0 -0
  84. package/src/sync/sync-peer/sync-peer-helpers.mts +0 -0
  85. package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.mts +8 -0
  86. package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-helpers.mts +72 -0
  87. package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-types.mts +87 -0
  88. package/src/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mts +242 -0
  89. package/src/sync/sync-peer/sync-peer-types.mts +13 -1
  90. package/src/sync/sync-peer/sync-peer-v1.mts +93 -27
  91. package/src/sync/sync-saga-context/sync-saga-context-helpers.mts +47 -29
  92. package/src/sync/sync-saga-context/sync-saga-context-types.mts +29 -30
  93. package/src/sync/sync-saga-coordinator.mts +280 -170
  94. package/src/sync/sync-types.mts +17 -3
  95. package/src/witness/light-witness-base-v1.mts +2 -1
  96. package/src/witness/space/inner-space/inner-space-v1.mts +1 -1
  97. package/test_output.log +0 -0
  98. package/tmp.md +62 -44
  99. package/dist/sync/sync-local-spaces.respec.d.mts +0 -2
  100. package/dist/sync/sync-local-spaces.respec.d.mts.map +0 -1
  101. package/dist/sync/sync-local-spaces.respec.mjs +0 -159
  102. package/dist/sync/sync-local-spaces.respec.mjs.map +0 -1
  103. package/dist/sync/sync-peer/sync-peer-innerspace-v1.d.mts +0 -42
  104. package/dist/sync/sync-peer/sync-peer-innerspace-v1.d.mts.map +0 -1
  105. package/dist/sync/sync-peer/sync-peer-innerspace-v1.mjs +0 -194
  106. package/dist/sync/sync-peer/sync-peer-innerspace-v1.mjs.map +0 -1
  107. package/dist/sync/sync-saga-coordinator.respec.d.mts +0 -2
  108. package/dist/sync/sync-saga-coordinator.respec.d.mts.map +0 -1
  109. package/dist/sync/sync-saga-coordinator.respec.mjs +0 -40
  110. package/dist/sync/sync-saga-coordinator.respec.mjs.map +0 -1
  111. package/src/sync/sync-local-spaces.respec.mts +0 -200
  112. package/src/sync/sync-peer/sync-peer-innerspace-v1.mts +0 -240
  113. package/src/sync/sync-saga-coordinator.respec.mts +0 -52
@@ -142,10 +142,24 @@ export interface SyncRequestData {
142
142
  */
143
143
  export interface SyncDeltaData {
144
144
  /**
145
- * The list of ibGib addresses being transferred.
146
- * The actual data is streamed/batched separately.
145
+ * Control ibgib addresses (sync frames, stones, keystones).
146
+ * These go to BOTH destSpace + tempSpace for audit trail.
147
147
  */
148
- payloadAddrs: string[];
148
+ payloadAddrsControl?: string[];
149
+
150
+ /**
151
+ * Domain ibgib addresses (actual user data being synced).
152
+ * These go to tempSpace ONLY until final commit.
153
+ */
154
+ payloadAddrsDomain?: string[];
155
+
156
+ /**
157
+ * THIS SHOULD NOT EXIST. NOT BE DEPRECATED. JUST REMOVED!!
158
+ *
159
+ * @deprecated Use payloadAddrsControl + payloadAddrsDomain instead.
160
+ * Legacy combined payload addresses.
161
+ */
162
+ payloadAddrs?: string[];
149
163
  }
150
164
 
151
165
  /**
@@ -1,5 +1,5 @@
1
1
  import { clone, getUUID, pretty } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
2
- import { IbGib_V1, IbGibRel8ns_V1, } from '@ibgib/ts-gib/dist/V1/index.mjs';
2
+ import { getGib, IbGib_V1, IbGibRel8ns_V1, } from '@ibgib/ts-gib/dist/V1/index.mjs';
3
3
 
4
4
  import { GLOBAL_LOG_A_LOT } from '../core-constants.mjs';
5
5
  import { WitnessData_V1, Witness_V1, } from './witness-types.mjs';
@@ -90,6 +90,7 @@ export abstract class LightWitnessBase_V1<
90
90
  */
91
91
  protected async initialize(): Promise<void> {
92
92
  this.instanceId = await getUUID();
93
+ this.gib = await getGib({ ibGib: this.toIbGibDto() });
93
94
  }
94
95
 
95
96
  /**
@@ -199,7 +199,7 @@ export class InnerSpace_V1<
199
199
 
200
200
  if (addrsAlreadyHave.length > 0) {
201
201
  resultData.addrsAlreadyHave = addrsAlreadyHave;
202
- resultData.warnings = (resultData.warnings || []).concat([`${lc} already had addr(s): ${addrsAlreadyHave.join('|')}`]);
202
+ resultData.warnings = (resultData.warnings || []).concat([`${lc} already had addr(s): ${addrsAlreadyHave.join('|')}`, '(W: 7120c8267c2aaf8cad5d2f3850666826)']);
203
203
  }
204
204
  resultData.success = true;
205
205
  } catch (error) {
package/test_output.log CHANGED
Binary file
package/tmp.md CHANGED
@@ -1,44 +1,62 @@
1
- PS C:\Users\billm\antigravity\ibgib\libs\core-gib> npm run test:agent 2>&1 | Select-String "TEST DEBUG"
2
-
3
- [SyncSagaCoordinator][getKnowledgeVector][TEST DEBUG] mapWithTjp_YesDna: {"A02A08897FBD25BE9146890CD9F47A6E12C7915E4136BBC6978962538C895AA3.1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67":{"
4
- ib":"timeline_root","gib":"A02A08897FBD25BE9146890CD9F47A6E12C7915E4136BBC6978962538C895AA3.1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67","data":{"n":2,"timestamp":"Sat, 10 Jan 2026
5
- 18:29:11 GMT","timestampMs":612,"uuid":"5ca69ef03475155a24a4378693eda096500043615dc51f3845fae15a9b730168","type":"testRoot","text":"v1_common"},"rel8ns":{"ancestor":["timeline_root^gib"],"dna":["fork^DFA028E3
6
- 3A42BCE51E9B031837A475B34B189B93349BCDF4F90077E1F031808C","mut8^F1178ECC62C184C913CA5C527C8743A0C1D0734F8E613FA8F8608E3F2445C2C6","mut8^1ED375AD0643E799DEC91A1D16CC3F103BFB34817C06D9B63FAE9EE6C0079212"],"past
7
- ":["timeline_root^1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67","timeline_root^B1383DDDBA8A29FA1984C0CB318C0603EC40D875DE100104CB14113EC2C299A1.1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E
8
- 2CA606F1496F564A5C67"],"tjp":["timeline_root^1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67"]}}} (I: 287e22897148298e185712c8d50cfb26)
9
- [SyncSagaCoordinator][getKnowledgeVector][TEST DEBUG] mapWithTjp_NoDna: {} (I: 1bdc62656294aed0f9df334647dc7326)
10
- [SyncSagaCoordinator][getKnowledgeVector][TEST DEBUG] timelineMap: {"timeline_root^1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67":[
11
- {
12
- "ib":"timeline_root","gib":"A02A08897FBD25BE9146890CD9F47A6E12C7915E4136BBC6978962538C895AA3.1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67",
13
- "data":{"n":2,"timestamp":"Sat, 10 Jan 2026 18:29:11 GMT","timestampMs":612,"uuid":"5ca69ef03475155a24a437 8693eda096500043615dc51f3845fae15a9b730168","type":"testRoot","text":"v1_common"},
14
- "rel8ns":{
15
- "ancestor":["timeline_root^gib"],
16
- "dna":["fork^DFA028E33A42BCE51E9B031837A475B34B189B93349BCDF4F90077E1F031808C","mut 8^F1178ECC62C184C913CA5C527C8743A0C1D0734F8E613FA8F8608E3F2445C2C6","mut8^1ED375AD0643E799DEC91A1D16CC3F103BFB34817C06D9B63FAE9EE6C0079212"],
17
- "past":["timeline_root^1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E 2CA606F1496F564A5C67","timeline_root^B1383DDDBA8A29FA1984C0CB318C0603EC40D875DE100104CB14113EC2C299A1.1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67"],
18
- "tjp":["timeline_root^1BF1DB4C60514EFAC 6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67"]
19
- }
20
- },
21
- ]} (I: 2cc04898e5f85179fb1ac7f827abc426)
22
- [SyncSagaCoordinator][getKnowledgeVector][TEST DEBUG] res.data.latestAddrsMap: {"timeline_root^1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67":null} (I: a8e128bdf80898ac2e6d8021a5bff726)
23
- [TEST DEBUG] v1_Dest:
24
- {"ib":"timeline_root","gib":"A02A08897FBD25BE9146890CD9F47A6E12C7915E4136BBC6978962538C895AA3.1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67","data":{"n":2,"timestamp":"Sat, 10 Jan 2026
25
- 18:29:11 GMT","timestampMs":612,"uuid":"5ca69ef03475155a24a4378693eda096500043615dc51f3845fae15a9b730168","type":"testRoot","text":"v1_common"},"rel8ns":{"ancestor":["timeline_root^gib"],"dna":["fork^DFA028E3
26
- 3A42BCE51E9B031837A475B34B189B93349BCDF4F90077E1F031808C","mut8^F1178ECC62C184C913CA5C527C8743A0C1D0734F8E613FA8F8608E3F2445C2C6","mut8^1ED375AD0643E799DEC91A1D16CC3F103BFB34817C06D9B63FAE9EE6C0079212"],"past
27
- ":["timeline_root^1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67","timeline_root^B1383DDDBA8A29FA1984C0CB318C0603EC40D875DE100104CB14113EC2C299A1.1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E
28
- 2CA606F1496F564A5C67"],"tjp":["timeline_root^1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67"]}}
29
- [TEST DEBUG] v1TjpAddr: timeline_root^1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67
30
- [TEST DEBUG] destKV: {"timeline_root^1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67":null}
31
- [TEST DEBUG] v1_Dest.rel8ns.tjp: timeline_root^1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67
32
- [SyncSagaCoordinator][getKnowledgeVector][TEST DEBUG] mapWithTjp_YesDna: {"B1383DDDBA8A29FA1984C0CB318C0603EC40D875DE100104CB14113EC2C299A1.1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67":{"
33
- ib":"timeline_root","gib":"B1383DDDBA8A29FA1984C0CB318C0603EC40D875DE100104CB14113EC2C299A1.1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67","data":{"n":1,"timestamp":"Sat, 10 Jan 2026
34
- 18:29:11 GMT","timestampMs":573,"uuid":"5ca69ef03475155a24a4378693eda096500043615dc51f3845fae15a9b730168","type":"testRoot","text":"v0"},"rel8ns":{"ancestor":["timeline_root^gib"],"dna":["fork^DFA028E33A42BCE
35
- 51E9B031837A475B34B189B93349BCDF4F90077E1F031808C","mut8^F1178ECC62C184C913CA5C527C8743A0C1D0734F8E613FA8F8608E3F2445C2C6"],"past":["timeline_root^1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5
36
- C67"],"tjp":["timeline_root^1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67"]}}} (I: 287e22897148298e185712c8d50cfb26)
37
- [SyncSagaCoordinator][getKnowledgeVector][TEST DEBUG] mapWithTjp_NoDna: {} (I: 1bdc62656294aed0f9df334647dc7326)
38
- [SyncSagaCoordinator][getKnowledgeVector][TEST DEBUG] timelineMap: {"timeline_root^1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67":[{"ib":"timeline_root","gib":"B1383DDDBA8A29FA1984C0CB318C0
39
- 603EC40D875DE100104CB14113EC2C299A1.1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67","data":{"n":1,"timestamp":"Sat, 10 Jan 2026 18:29:11 GMT","timestampMs":573,"uuid":"5ca69ef03475155a24a437
40
- 8693eda096500043615dc51f3845fae15a9b730168","type":"testRoot","text":"v0"},"rel8ns":{"ancestor":["timeline_root^gib"],"dna":["fork^DFA028E33A42BCE51E9B031837A475B34B189B93349BCDF4F90077E1F031808C","mut8^F1178
41
- ECC62C184C913CA5C527C8743A0C1D0734F8E613FA8F8608E3F2445C2C6"],"past":["timeline_root^1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67"],"tjp":["timeline_root^1BF1DB4C60514EFAC6A74DD268247D3B2F
42
- FBC2E8BE3E2CA606F1496F564A5C67"]}}]} (I: 2cc04898e5f85179fb1ac7f827abc426)
43
- [SyncSagaCoordinator][getKnowledgeVector][TEST DEBUG] res.data.latestAddrsMap: {"timeline_root^1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67":"timeline_root^585D6DC8B1653A2989DD24EAF62022AA
44
- 6A1A7CCB98DF5CE5F34A023DB5F9D92F.1BF1DB4C60514EFAC6A74DD268247D3B2FFBC2E8BE3E2CA606F1496F564A5C67"} (I: a8e128bdf80898ac2e6d8021a5bff726)
1
+ Great! Ty for going through that! In crafting my response for you, I have since updated the libs\core-gib\src\sync\README.md file, so please re-read that file for me. There were several inaccuracies and it is much improved.
2
+
3
+ Now for your questions. Let's get to them!
4
+
5
+ ## foundational
6
+
7
+ 1. I don't know if the conflict merging aspect is working well or not. I have implemented a similar optimistic strategy before in a previous sync prototype that worked well (though that implementation was very slow). This approach is the same, except two additions: a) naive text merge if the transform targets `data.text`, and b) adding "graft info" (libs\core-gib\src\sync\graft-info) to the timeline after the merge so that original divergent states aren't lost. Both of these should be straightforward though. The main problem right now is trying to isolate the various stages of the "ping-pong" exchange.
8
+
9
+ 2. Tjp is fully implemented and has been for several years now. Including the tjpGib in the full address, instead of just using a bare hash, has proved immensely useful (and as you know, this is completely novel/innovative as there is no other protocol that does this).
10
+
11
+ 3. We originally had control and domain payloads grouped together and we had to separate them. However, this was done poorly by the original agent, and may yet still be incomplete. AFAICT though, the most recent attempt at completing the separation was successful. The current blocking issue is that it's hard to tell what is causing the test in sync-conflict.respec.mts to fail. The logging gets too verbose and is hard to track throughout the entire transaction.
12
+
13
+ 4. We are deferring integrating the session keystones until we get the non-keystone workflow going.
14
+
15
+ ## current state
16
+
17
+ 5. The immediate symptom is the test in `sync-conflict.respect.mts` is failing. You can see the output of the most recent run in C:\Users\billm\antigravity\ibgib\libs\core-gib\test_output.log . But it is a coarse test, and really, it's hard to even read the test itself. But it's also hard to try to create more granular unit tests, though that may be the right path forward.
18
+
19
+ 6. AFAICT the v16 implementation plan has been partially implemented. For example, `handleAckFrame` in `saga-coordinator.mts` still has not had the `payloadIbGibs` separated properly, i.e., there is still a variable called `payloadIbGibs`, despite us mandating that there should be NO references to this. Every instance of that string should be separated into control and domain payload ibgibs. It's actually looking like that `handleAckFrame` is not right anymore, though the libs\core-gib\src\sync\sync-innerspace-dest-ahead.respec.mts test is still passing so it's not completely wrong. But if you read through that method, you'll see it's not right and there is a not-implemented error line in there.
20
+
21
+ The same is true for `payloadAddrs`, which should NOT exist anywhere. But it still is on `SyncDeltaData`. It should not be "deprecated", it should have been removed and references to it should have led us to more places to complete the separation of control and domain addrs.
22
+
23
+ 7. I think part of the problem is that our implementation plans have been too complex and we didn't follow through to ensure that each and every piece was taken care of. Perhaps a todo/checklist would be more appropriate. But I devote quite a bit of time to refine the implementation plan, and then the nuances get lost. So we have a bunch of messy, half-completed code. Granted, this is a relatively complex sync algorithm, but it should absolutely be feasible.
24
+
25
+ But let me speak to your specific questions on this:
26
+
27
+ * Too many iterations/refactorings without clear direction?
28
+ * I don't mind the iterations. I mind thinking that something is complete and it is not. This is partially my fault in not breaking it down and unit testing it more granularly, but that would add a huge amount of overhead, and what inevitably happens is we troubleshoot the tests and not the code.
29
+ * Type boundaries bleeding between concerns?
30
+ * Our types are pretty well created by this point.
31
+ * The polling mechanism feeling hacky?
32
+ * No, the polling mechanism is fine.
33
+ * Race conditions or timing issues?
34
+ * There have been no race conditions that I know of.
35
+
36
+ I had previous success with Antigravity on other smaller tasks, but this one seems to have been a little too advanced for the Gemini 3 High model. Your model seems to be performing better, however we hit the smaller context window rather quickly. Overall, I am just trying not to have to go through every single LoC myself, though it's looking like that is more and more likely.
37
+
38
+ Here is another example I've come across that is messy. Look at the following code found in `sync-saga-coordinator.mts`:
39
+
40
+ ```
41
+ // 4. EXECUTE SAGA LOOP (FSM)
42
+ // Inject tempSpace into peer so it can pull control payloads to the right place
43
+ if ('opts' in peer && peer.opts) {
44
+ (peer.opts as any).senderTempSpace = tempSpace;
45
+ }
46
+ ```
47
+
48
+ This is terrible! This is a hack so that if we have a `SyncPeerInnerspace_V1`, we set its temp space. This is "messy" to say the least.
49
+
50
+ ### sync test results
51
+
52
+ * libs\core-gib\src\sync\sync-innerspace.respec.mts PASSING
53
+ * libs\core-gib\src\sync\sync-innerspace-constants.respec.mts PASSING
54
+ * libs\core-gib\src\sync\sync-innerspace-dest-ahead.respec.mts PASSING
55
+ * libs\core-gib\src\sync\sync-innerspace-deep-updates.respec.mts PASSING
56
+ * libs\core-gib\src\sync\sync-innerspace-multiple-timelines.respec.mts PASSING
57
+ * libs\core-gib\src\sync\sync-innerspace-partial-update.respec.mts PASSING
58
+ * libs\core-gib\src\sync\sync-conflict.respec.mts FAILING
59
+
60
+ ## how you can help
61
+
62
+ All of the simpler tests that don't require a Delta frame back and forth (short back-and-forth to resolve the conflict) are all passing. I _think_ that the merge logic itself is fine, though I haven't gone through that with a fine-tooth comb yet. To me, the most obvious problem right now is that the mechanism for passing domain ibgibs back and forth is not working. For example, look in libs\core-gib\src\sync\sync-saga-coordinator.mts for `srcGraph`. That was added early on in the code sketch. IIRC, it was supposed to be for the domain ibgibs in the original sender's location. Is that another name for payloadIbGibs, but stored in a map? How does it get populated? How do the payload ibgibs go from the peer to the handle____ methods? So don't do any coding right now. Perhaps this whole conversation will just be you and I talking about the code as I go through it. So just point me to things that you see and I will make changes, because I need to wrap this up in the next 3 days. Do note that I have made some changes since starting this message to you, and it doesn't build at the moment. But overall there are still things that you can just point me to if you just examine the logic.
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=sync-local-spaces.respec.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync-local-spaces.respec.d.mts","sourceRoot":"","sources":["../../src/sync/sync-local-spaces.respec.mts"],"names":[],"mappings":""}
@@ -1,159 +0,0 @@
1
- import { rm } from 'node:fs/promises';
2
- import { default as pathUtils } from 'path';
3
- import { respecfully, lastOfAll } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
4
- const maam = `[${import.meta.url}]`, sir = maam;
5
- import { IBGIB_ENCODING } from '../witness/space/filesystem-space/filesystem-constants.mjs';
6
- import { NodeFilesystemSpace_V1 } from '../witness/space/filesystem-space/node-filesystem-space/node-filesystem-space-v1.mjs';
7
- import { getUUID } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
8
- const logalot = true;
9
- const lc = `[sync-local-spaces.respec]`;
10
- // Helper to create a temp space
11
- const createTempSpace = async ({ baseDir, name }) => {
12
- const uuid = await getUUID();
13
- const initialData = {
14
- version: '1',
15
- classname: NodeFilesystemSpace_V1.name,
16
- uuid,
17
- name,
18
- description: `Temp space for ${name}`,
19
- baseDir,
20
- baseSubPath: 'ibgib', // keep short to avoid long path issues
21
- spaceSubPath: name,
22
- ibgibsSubPath: 'ibgibs',
23
- metaSubPath: 'meta',
24
- binSubPath: 'bin',
25
- dnaSubPath: 'dna',
26
- encoding: IBGIB_ENCODING,
27
- mitigateLongPaths: true,
28
- // other defaults
29
- catchAllErrors: false,
30
- trace: false,
31
- };
32
- // mimic constructor logic if needed, or just new it up
33
- const space = new NodeFilesystemSpace_V1(initialData);
34
- // Explicitly initialize if needed (based on findings, constructor calls super which calls initialize?
35
- // Actually source had it commented out in ctor. Let's call it via a witness "put" which should verify initialization)
36
- return space;
37
- };
38
- // class MockKeystoneService implements KeystoneService_V1 {
39
- // async getIdentity(): Promise<KeystoneIbGib_V1> {
40
- // // Return a dummy identity
41
- // const res = await Factory_V1.firstGen({
42
- // ib: 'identity',
43
- // data: { uuid: await getUUID() },
44
- // dna: true,
45
- // });
46
- // return res.newIbGib as KeystoneIbGib_V1;
47
- // }
48
- // // Implement other methods as no-ops or simple mocks
49
- // async sign(ibGib: any): Promise<any> { return ibGib; }
50
- // async verify(ibGib: any): Promise<boolean> { return true; }
51
- // // Add other required properties/methods of KeystoneService_V1 if any (checking interface might be needed)
52
- // // Assuming for now these are the core ones used by Coordinator.
53
- // // If strict interface, might need more.
54
- // }
55
- await respecfully(sir, `Sync Local Spaces`, async () => {
56
- const TEST_ROOT = pathUtils.join(process.cwd(), 'tmp_sync_test_' + await getUUID());
57
- lastOfAll(sir, async () => {
58
- if (!logalot) {
59
- await rm(TEST_ROOT, { recursive: true, force: true });
60
- }
61
- else {
62
- console.log(`${lc} Leaving TEST_ROOT for inspection: ${TEST_ROOT}`);
63
- }
64
- });
65
- await respecfully(sir, `Basic Push Sync (Source -> Dest)`, async () => {
66
- // // 1. Setup Spaces
67
- // const srcDir = pathUtils.join(TEST_ROOT, 'source');
68
- // const destDir = pathUtils.join(TEST_ROOT, 'dest');
69
- // const sourceSpace = await createTempSpace({ baseDir: srcDir, name: 'source' });
70
- // const destSpace = await createTempSpace({ baseDir: destDir, name: 'dest' });
71
- // // 2. Seed Source Data
72
- // // 2.1 Create a "Stone" (Primitive-like or just immutable data)
73
- // const stoneRes = await Factory_V1.firstGen({
74
- // ib: 'stone_data',
75
- // data: { some: 'data', timestamp: getTimestampInTicks() },
76
- // dna: false,
77
- // });
78
- // const stone = stoneRes.newIbGib;
79
- // const stoneAddr = getIbGibAddr({ ibGib: stone });
80
- // // 2.2 Create a "Living" Timeline (Root -> Child)
81
- // const rootRes = await Factory_V1.firstGen({
82
- // ib: 'timeline_root',
83
- // data: { type: 'root' },
84
- // dna: true,
85
- // });
86
- // const root = rootRes.newIbGib;
87
- // const rootAddr = getIbGibAddr({ ibGib: root });
88
- // const childRes = await mut8({
89
- // type: 'fork',
90
- // src: root,
91
- // dna: true,
92
- // data: { type: 'child', n: 1 }
93
- // });
94
- // const child = childRes.newIbGib;
95
- // const childAddr = getIbGibAddr({ ibGib: child });
96
- // // Put into Source
97
- // await putInSpace({
98
- // space: sourceSpace,
99
- // ibGibs: [stone, root, child]
100
- // });
101
- // // 3. Setup Sync Coordinator
102
- // const mockKeystone = new MockKeystoneService() as unknown as KeystoneService_V1;
103
- // const identity = await mockKeystone.getIdentity();
104
- // const coordinator = new SyncSagaCoordinator(mockKeystone);
105
- // // Define domain (roots to sync)
106
- // const domainIbGibs = [root]; // We only explicitly track the "Living" root. Stone is standalone?
107
- // // Actually for the test let's explicitly include both or rely on dependency graph.
108
- // // If 'stone' is not related to 'root', it won't be picked up unless we add it to domain.
109
- // // Let's Rel8 the stone to the child to test dependency traversal.
110
- // const childWithRelRes = await rel8({
111
- // src: child,
112
- // rel8nsToAddByAddr: { 'linked_stone': [stoneAddr] },
113
- // dna: true,
114
- // });
115
- // const childWithRel = childWithRelRes.newIbGib;
116
- // const childWithRelAddr = getIbGibAddr({ ibGib: childWithRel });
117
- // // Update Source with linked child
118
- // await putInSpace({
119
- // space: sourceSpace,
120
- // ibGibs: [childWithRel]
121
- // });
122
- // // 4. Run Sync
123
- // const syncRes = await coordinator.sync({
124
- // source: sourceSpace,
125
- // dest: destSpace,
126
- // domainIbGibs: [childWithRel], // Sync starting from the tip
127
- // identity
128
- // });
129
- // // 5. Verify Dest
130
- // // Check Stone
131
- // const getStone = await getFromSpace({
132
- // space: destSpace,
133
- // addr: stoneAddr
134
- // });
135
- // if (!getStone.success || !getStone.ibGibs?.[0]) {
136
- // throw new Error(`Dest failed to get Stone: ${stoneAddr}`);
137
- // }
138
- // console.log(`${lc} Verified Stone synced.`);
139
- // // Check ChildWithRel (Tip)
140
- // const getChild = await getFromSpace({
141
- // space: destSpace,
142
- // addr: childWithRelAddr
143
- // });
144
- // if (!getChild.success || !getChild.ibGibs?.[0]) {
145
- // throw new Error(`Dest failed to get ChildWithRel: ${childWithRelAddr}`);
146
- // }
147
- // console.log(`${lc} Verified Timeline Tip synced.`);
148
- // // Check Root (Dependency)
149
- // const getRoot = await getFromSpace({
150
- // space: destSpace,
151
- // addr: rootAddr
152
- // });
153
- // if (!getRoot.success || !getRoot.ibGibs?.[0]) {
154
- // throw new Error(`Dest failed to get Root: ${rootAddr}`);
155
- // }
156
- // console.log(`${lc} Verified Root synced.`);
157
- });
158
- });
159
- //# sourceMappingURL=sync-local-spaces.respec.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync-local-spaces.respec.mjs","sourceRoot":"","sources":["../../src/sync/sync-local-spaces.respec.mts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- /**
2
- * @module SyncPeerInnerspace_V1
3
- */
4
- import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
5
- import { IbGibSpaceAny } from '../../witness/space/space-base-v1.mjs';
6
- import { SyncSagaCoordinator } from '../sync-saga-coordinator.mjs';
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
- export interface SyncPeerInnerspaceOptions {
11
- senderSpace: IbGibSpaceAny;
12
- senderTempSpace?: IbGibSpaceAny;
13
- receiverSpace: IbGibSpaceAny;
14
- receiverCoordinator: SyncSagaCoordinator;
15
- receiverMetaspace: MetaspaceService;
16
- receiverTempSpace?: IbGibSpaceAny;
17
- }
18
- /**
19
- * Concrete implementation of SyncPeer for local in-memory simulation (Innerspace to Innerspace).
20
- *
21
- * Acts as the "Network" layer, transferring data between two local spaces and
22
- * executing the receiver's coordinator logic.
23
- */
24
- export declare class SyncPeerInnerspace_V1 extends SyncPeer_V1 {
25
- opts: SyncPeerInnerspaceOptions;
26
- protected lc: string;
27
- constructor(opts: SyncPeerInnerspaceOptions);
28
- private ensureReceiverTempSpace;
29
- protected getLocalIbGib(addr: string): Promise<IbGib_V1 | undefined>;
30
- protected push(addr: string): Promise<void>;
31
- protected pull(addr: string): Promise<void>;
32
- protected sendRequest(context: SyncSagaContextIbGib_V1): Promise<SyncSagaContextIbGib_V1 | undefined>;
33
- /**
34
- * Helper to copy single ibgib from A to B.
35
- */
36
- protected transfer({ addr, from, to }: {
37
- addr: string;
38
- from: IbGibSpaceAny;
39
- to: IbGibSpaceAny;
40
- }): Promise<void>;
41
- }
42
- //# sourceMappingURL=sync-peer-innerspace-v1.d.mts.map
@@ -1 +0,0 @@
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"}
@@ -1,194 +0,0 @@
1
- /**
2
- * @module SyncPeerInnerspace_V1
3
- */
4
- import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
5
- import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
6
- import { GLOBAL_LOG_A_LOT } from '../../core-constants.mjs';
7
- import { SYNC_ATOM, SYNC_MSG_REL8N_NAME } from '../sync-constants.mjs';
8
- import { SyncPeer_V1 } from './sync-peer-v1.mjs';
9
- import { getFromSpace, putInSpace } from '../../witness/space/space-helper.mjs';
10
- import { createSyncSagaContext } from '../sync-saga-context/sync-saga-context-helpers.mjs';
11
- const logalot = GLOBAL_LOG_A_LOT || true;
12
- /**
13
- * Concrete implementation of SyncPeer for local in-memory simulation (Innerspace to Innerspace).
14
- *
15
- * Acts as the "Network" layer, transferring data between two local spaces and
16
- * executing the receiver's coordinator logic.
17
- */
18
- export class SyncPeerInnerspace_V1 extends SyncPeer_V1 {
19
- opts;
20
- lc = `[${SyncPeerInnerspace_V1.name}]`;
21
- constructor(opts) {
22
- super(opts.receiverSpace.data); // Use receiver space data as initial phantom data? Or empty.
23
- this.opts = opts;
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
- }
44
- async getLocalIbGib(addr) {
45
- const res = await getFromSpace({ space: this.opts.senderSpace, addr });
46
- return res.ibGibs?.[0];
47
- }
48
- async push(addr) {
49
- await this.transfer({ addr, from: this.opts.senderSpace, to: this.opts.receiverSpace });
50
- }
51
- async pull(addr) {
52
- await this.transfer({ addr, from: this.opts.receiverSpace, to: this.opts.senderSpace });
53
- }
54
- async sendRequest(context) {
55
- const lc = `${this.lc}[${this.sendRequest.name}]`;
56
- const { receiverSpace, receiverCoordinator, receiverMetaspace } = this.opts;
57
- try {
58
- if (logalot) {
59
- console.log(`${lc} starting...Context: ${getIbGibAddr({ ibGib: context })}`);
60
- }
61
- // 1. Resolve Frame from Receiver Space (It was PUSHED there independently)
62
- const sagaFrameAddr = context.rel8ns?.sagaFrame?.[0];
63
- if (!sagaFrameAddr) {
64
- throw new Error(`${lc} Missing sagaFrame in context (E: bf486874f5db0cb0883b79e81b344a26)`);
65
- }
66
- const resFrame = await getFromSpace({ space: receiverSpace, addr: sagaFrameAddr });
67
- const sagaFrame = resFrame.ibGibs?.[0];
68
- if (!sagaFrame) {
69
- throw new Error(`${lc} sagaFrame not found in receiver space: ${sagaFrameAddr} (E: 2c0190bd04ea408c909618193850029b)`);
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
- }
89
- // 2. Execute Receiver Logic
90
- // The Peer "Network" triggers the Receiver Coordinator.
91
- if (logalot) {
92
- console.log(`${lc} Invoking Receiver Coordinator...`);
93
- }
94
- // We pass an empty srcGraph because "Network" doesn't know about graph state.
95
- // Receiver Coordinator must rely on Space or fetch what it needs.
96
- const result = await receiverCoordinator.handleSagaFrame({
97
- sagaIbGib: sagaFrame,
98
- srcGraph: {},
99
- destSpace: receiverSpace, // Query existing data
100
- tempSpace: receiverTempSpace, // Transaction space
101
- metaspace: receiverMetaspace,
102
- });
103
- if (!result) {
104
- if (logalot) {
105
- console.log(`${lc} Receiver returned no result (Saga End?).`);
106
- }
107
- return undefined;
108
- }
109
- const { frame: responseFrame, payloadIbGibs } = result;
110
- if (logalot) {
111
- console.log(`${lc} responseFrame addr: ${getIbGibAddr({ ibGib: responseFrame })}`);
112
- }
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 || [])];
135
- // Note: payloadIbGibs might have deep dependencies.
136
- // Since they were generated/fetched by the Receiver Coordinator,
137
- // we assume they are already in the Receiver Space or explicitly returned here.
138
- // But if they are NEW (e.g. Ack Stone), they need putting.
139
- // For safety, we persist the full graph of any NEW payload?
140
- // Actually, `handleSagaFrame` usually creates stones in `tempSpace` or `space`.
141
- // If `space` passed was `receiverSpace`, they should be there.
142
- // But let's explicit put to be sure.
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
- }
151
- // 4. Create Response Context
152
- const responsePayloadAddrs = payloadIbGibs?.map(p => getIbGibAddr({ ibGib: p }));
153
- const responseCtx = await createSyncSagaContext({
154
- sagaFrame: responseFrame,
155
- payloadAddrs: responsePayloadAddrs,
156
- // TODO: identity/claims from Receiver?
157
- });
158
- // Persist Context to Receiver Space (so we can PULL it)
159
- await putInSpace({ space: receiverSpace, ibGib: responseCtx });
160
- return responseCtx;
161
- }
162
- catch (error) {
163
- console.error(`${lc} ${extractErrorMsg(error)}`);
164
- throw error;
165
- }
166
- }
167
- /**
168
- * Helper to copy single ibgib from A to B.
169
- */
170
- async transfer({ addr, from, to }) {
171
- const lc = `${this.lc}[${this.transfer.name}]`;
172
- // if (logalot) { console.log(`${lc} transferring ${addr}...`); } // Verbose
173
- // 1. Get from Source
174
- const res = await getFromSpace({ space: from, addr });
175
- if (!res.success || !res.ibGibs?.length) {
176
- throw new Error(`${lc} Failed to get ${addr} from source space ${from.data?.name} (E: 8a9b2c3d4e5f6g7h)`);
177
- }
178
- const ibGib = res.ibGibs[0];
179
- // 2. Put in Dest
180
- // Note: putInSpace handles existence check usually, or we can check.
181
- await putInSpace({ space: to, ibGib });
182
- // Force timeline indexing for Sync Frames
183
- if (ibGib.ib && ibGib.ib.startsWith(SYNC_ATOM)) {
184
- // Check if we are transferring TO the receiver space
185
- if (to === this.opts.receiverSpace) {
186
- // We must ensure the receiver metaspace knows this is a timeline TJP
187
- await this.opts.receiverMetaspace.registerNewIbGib({ ibGib, space: to });
188
- }
189
- }
190
- // Note: We do NOT recurse here. The base class 'witness' template drives the graph walk.
191
- // This is a "dumb" primitive transfer.
192
- }
193
- }
194
- //# sourceMappingURL=sync-peer-innerspace-v1.mjs.map
@@ -1 +0,0 @@
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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=sync-saga-coordinator.respec.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync-saga-coordinator.respec.d.mts","sourceRoot":"","sources":["../../src/sync/sync-saga-coordinator.respec.mts"],"names":[],"mappings":""}