@ibgib/vcs-gib 0.0.21 → 0.0.26

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 (93) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/VCS_CLI_USER_GUIDE.md +94 -89
  3. package/dist/AUTO-GENERATED-version.d.mts +1 -1
  4. package/dist/AUTO-GENERATED-version.mjs +1 -1
  5. package/dist/bootstrap/node-bootstrap.mjs +1 -1
  6. package/dist/cli/cli-arg-parser.d.mts +1 -0
  7. package/dist/cli/cli-arg-parser.d.mts.map +1 -1
  8. package/dist/cli/cli-arg-parser.mjs +5 -1
  9. package/dist/cli/cli-arg-parser.mjs.map +1 -1
  10. package/dist/cli/cli-constants.d.mts +6 -0
  11. package/dist/cli/cli-constants.d.mts.map +1 -1
  12. package/dist/cli/cli-constants.mjs +12 -0
  13. package/dist/cli/cli-constants.mjs.map +1 -1
  14. package/dist/cli/commands/add-cmd.d.mts.map +1 -1
  15. package/dist/cli/commands/add-cmd.mjs +5 -2
  16. package/dist/cli/commands/add-cmd.mjs.map +1 -1
  17. package/dist/cli/commands/commit-cmd.d.mts +5 -4
  18. package/dist/cli/commands/commit-cmd.d.mts.map +1 -1
  19. package/dist/cli/commands/commit-cmd.mjs +149 -33
  20. package/dist/cli/commands/commit-cmd.mjs.map +1 -1
  21. package/dist/cli/commands/generate-comment-cmd.d.mts +19 -0
  22. package/dist/cli/commands/generate-comment-cmd.d.mts.map +1 -0
  23. package/dist/cli/commands/generate-comment-cmd.mjs +140 -0
  24. package/dist/cli/commands/generate-comment-cmd.mjs.map +1 -0
  25. package/dist/cli/commands/log-cmd.d.mts +12 -3
  26. package/dist/cli/commands/log-cmd.d.mts.map +1 -1
  27. package/dist/cli/commands/log-cmd.mjs +236 -38
  28. package/dist/cli/commands/log-cmd.mjs.map +1 -1
  29. package/dist/cli/commands/merge-cmd.d.mts +21 -8
  30. package/dist/cli/commands/merge-cmd.d.mts.map +1 -1
  31. package/dist/cli/commands/merge-cmd.mjs +138 -70
  32. package/dist/cli/commands/merge-cmd.mjs.map +1 -1
  33. package/dist/cli/commands/status-cmd.d.mts +5 -6
  34. package/dist/cli/commands/status-cmd.d.mts.map +1 -1
  35. package/dist/cli/commands/status-cmd.mjs +50 -205
  36. package/dist/cli/commands/status-cmd.mjs.map +1 -1
  37. package/dist/cli/vcs-cli-main.d.mts.map +1 -1
  38. package/dist/cli/vcs-cli-main.mjs +27 -6
  39. package/dist/cli/vcs-cli-main.mjs.map +1 -1
  40. package/dist/engine/index/index-helper.d.mts.map +1 -1
  41. package/dist/engine/index/index-helper.mjs +3 -0
  42. package/dist/engine/index/index-helper.mjs.map +1 -1
  43. package/dist/engine/item/item-helper.d.mts +31 -1
  44. package/dist/engine/item/item-helper.d.mts.map +1 -1
  45. package/dist/engine/item/item-helper.mjs +44 -2
  46. package/dist/engine/item/item-helper.mjs.map +1 -1
  47. package/dist/engine/merge/b2tfs-3way-graft-strategy.d.mts +74 -0
  48. package/dist/engine/merge/b2tfs-3way-graft-strategy.d.mts.map +1 -0
  49. package/dist/engine/merge/{b2tfs-3way-merge-strategy.mjs → b2tfs-3way-graft-strategy.mjs} +133 -304
  50. package/dist/engine/merge/b2tfs-3way-graft-strategy.mjs.map +1 -0
  51. package/dist/engine/merge/{b2tfs-3way-merge-types.d.mts → b2tfs-3way-graft-types.d.mts} +2 -9
  52. package/dist/engine/merge/b2tfs-3way-graft-types.d.mts.map +1 -0
  53. package/dist/engine/merge/b2tfs-3way-graft-types.mjs +2 -0
  54. package/dist/engine/merge/b2tfs-3way-graft-types.mjs.map +1 -0
  55. package/dist/engine/status/status-helper.d.mts +89 -0
  56. package/dist/engine/status/status-helper.d.mts.map +1 -0
  57. package/dist/engine/status/status-helper.mjs +285 -0
  58. package/dist/engine/status/status-helper.mjs.map +1 -0
  59. package/dist/test/test-helpers.d.mts +51 -0
  60. package/dist/test/test-helpers.d.mts.map +1 -0
  61. package/dist/test/test-helpers.mjs +135 -0
  62. package/dist/test/test-helpers.mjs.map +1 -0
  63. package/package.json +4 -4
  64. package/src/AUTO-GENERATED-version.mts +1 -1
  65. package/src/bootstrap/node-bootstrap.mts +1 -1
  66. package/src/cli/cli-arg-parser.mts +5 -0
  67. package/src/cli/cli-constants.mts +13 -0
  68. package/src/cli/commands/add-cmd.mts +5 -2
  69. package/src/cli/commands/branch-checkout-cmd.respec.log +8 -101
  70. package/src/cli/commands/branch-checkout-cmd.respec.mts +11 -10
  71. package/src/cli/commands/commit-cmd.mts +165 -42
  72. package/src/cli/commands/commit-log-cmd.respec.mts +216 -3
  73. package/src/cli/commands/generate-comment-cmd.mts +171 -0
  74. package/src/cli/commands/log-cmd.mts +288 -41
  75. package/src/cli/commands/merge-cmd.mts +154 -76
  76. package/src/cli/commands/status-cmd.mts +57 -256
  77. package/src/cli/vcs-cli-main.mts +28 -7
  78. package/src/engine/index/index-helper.mts +3 -0
  79. package/src/engine/item/item-helper.mts +76 -3
  80. package/src/engine/merge/{b2tfs-3way-merge-strategy.mts → b2tfs-3way-graft-strategy.mts} +152 -374
  81. package/src/engine/merge/{b2tfs-3way-merge-strategy.respec.mts → b2tfs-3way-graft-strategy.respec.mts} +27 -122
  82. package/src/engine/merge/{b2tfs-3way-merge-types.mts → b2tfs-3way-graft-types.mts} +34 -42
  83. package/src/engine/merge/b2tfs-sync-comments.respec.mts +399 -0
  84. package/src/engine/status/status-helper.mts +380 -0
  85. package/src/test/test-helpers.mts +168 -0
  86. package/tsconfig.test.tsbuildinfo +1 -1
  87. package/tsconfig.tsbuildinfo +1 -1
  88. package/dist/engine/merge/b2tfs-3way-merge-strategy.d.mts +0 -48
  89. package/dist/engine/merge/b2tfs-3way-merge-strategy.d.mts.map +0 -1
  90. package/dist/engine/merge/b2tfs-3way-merge-strategy.mjs.map +0 -1
  91. package/dist/engine/merge/b2tfs-3way-merge-types.d.mts.map +0 -1
  92. package/dist/engine/merge/b2tfs-3way-merge-types.mjs +0 -2
  93. package/dist/engine/merge/b2tfs-3way-merge-types.mjs.map +0 -1
@@ -2,14 +2,23 @@
2
2
  * @module merge-cmd
3
3
  *
4
4
  * Command handler for `vcs merge <branchName>`.
5
- * Merges target branch into active branch using SyncSagaCoordinator sync and 3-way graft merge strategy.
6
- * Projects merged branch snapshot onto active branch physical worktree path.
5
+ * Merges the incoming branch into the base (active/current) branch using
6
+ * SyncSagaCoordinator sync and 3-way graft merge strategy.
7
+ * Projects merged branch snapshot onto the base branch physical worktree path.
8
+ *
9
+ * ## Terminology (matches standard git usage)
10
+ *
11
+ * * **base** branch / space — the branch currently checked out, the one being
12
+ * merged INTO (analogous to `ours` / `HEAD` in git)
13
+ * * **incoming** branch / space — the branch whose changes are being merged IN
14
+ * (analogous to `theirs` / the topic branch in git)
7
15
  */
8
16
  import path from 'node:path';
9
17
  import fs from 'node:fs/promises';
10
18
  import { clone, extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
11
19
  import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
12
- import { putInSpace, getLatestAddrs, } from '@ibgib/core-gib/dist/witness/space/space-helper.mjs';
20
+ import { putInSpace, getLatestAddrs, persistTransformResult, registerNewIbGib } from '@ibgib/core-gib/dist/witness/space/space-helper.mjs';
21
+ import { rel8 } from '@ibgib/ts-gib/dist/V1/transforms/rel8.mjs';
13
22
  import { SyncSagaCoordinator } from '@ibgib/core-gib/dist/sync/sync-saga-coordinator.mjs';
14
23
  import { SyncPeerInnerspace_V1 } from '@ibgib/core-gib/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs';
15
24
  import { SYNC_PEER_INNERSPACE_DEFAULT_DATA_V1 } from '@ibgib/core-gib/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.mjs';
@@ -18,19 +27,22 @@ import { GraftPreference } from '@ibgib/core-gib/dist/sync/graft-info/graft-info
18
27
  import { bootstrapVcsMetaspace } from '../../bootstrap/node-bootstrap.mjs';
19
28
  import { getOrCreateBranchSpace } from '../../engine/branch/branch-space-helper.mjs';
20
29
  import { B2TFS_CHILD_ITEM_REL8N_NAME } from '../../engine/item/item-types.mjs';
21
- import { writeB2tFSItemToFS, getIbGibWithMetaspaceFallback } from '../../engine/item/item-helper.mjs';
30
+ import { writeB2tFSItemToFS, getIbGibWithMetaspaceFallback, reifyB2tFSHierarchy } from '../../engine/item/item-helper.mjs';
22
31
  import { getB2tFSIndexIbGib, updateB2tFSIndexIbGib } from '../../engine/index/index-helper.mjs';
23
32
  import { GLOBAL_LOG_A_LOT } from '../../vcs-gib-constants.mjs';
33
+ import { logBranchState, logItemState, logCheckpoint, logAddr } from '../../test/test-helpers.mjs';
24
34
  const lcFile = `[merge-cmd]`;
25
35
  const logalot = GLOBAL_LOG_A_LOT;
26
- export async function executeMergeCmd({ targetBranchName, targetDir = process.cwd(), vcsFolderName = '.vcsgib', quiet = false, } = {}) {
36
+ export async function executeMergeCmd({ incomingBranchName, targetDir = process.cwd(), vcsFolderName = '.vcsgib', quiet = false, diagLog = false, } = {}) {
27
37
  const lc = `${lcFile}[${executeMergeCmd.name}]`;
38
+ const diag = (label) => { if (diagLog)
39
+ logCheckpoint(`merge-cmd: ${label}`); };
28
40
  try {
29
41
  if (logalot) {
30
42
  console.log(`${lc} starting... (I: 4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f)`);
31
43
  }
32
- const trimmedTargetBranch = targetBranchName?.trim();
33
- if (!trimmedTargetBranch) {
44
+ const trimmedIncomingBranch = incomingBranchName?.trim();
45
+ if (!trimmedIncomingBranch) {
34
46
  throw new Error(`Branch name is required for merge (E: 5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a)`);
35
47
  }
36
48
  const absTargetDir = path.resolve(targetDir);
@@ -50,9 +62,9 @@ export async function executeMergeCmd({ targetBranchName, targetDir = process.cw
50
62
  if (!indexIbGib) {
51
63
  throw new Error(`Repository index B2tFSIndexIbGib_V1 not found in localSpace (E: 7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c)`);
52
64
  }
53
- const activeBranchName = indexIbGib.data?.activeBranch || 'main';
54
- if (activeBranchName === trimmedTargetBranch) {
55
- throw new Error(`Cannot merge branch '${trimmedTargetBranch}' into itself (E: 8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d)`);
65
+ const baseBranchName = indexIbGib.data?.activeBranch || 'main';
66
+ if (baseBranchName === trimmedIncomingBranch) {
67
+ throw new Error(`Cannot merge branch '${trimmedIncomingBranch}' into itself (E: 8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d)`);
56
68
  }
57
69
  // 2. Fetch all registered branch ibgibs
58
70
  const branchAddrs = [
@@ -72,84 +84,132 @@ export async function executeMergeCmd({ targetBranchName, targetDir = process.cw
72
84
  }
73
85
  }
74
86
  }
75
- // Resolve active branch node & target branch node
76
- const activeBranchIbGib = branchIbGibs.findLast((b) => b?.data?.name === activeBranchName);
77
- if (!activeBranchIbGib) {
78
- throw new Error(`Active branch '${activeBranchName}' not found in repository (E: 9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e)`);
87
+ // Resolve base branch node & incoming branch node
88
+ const baseBranchIbGib = branchIbGibs.findLast((b) => b?.data?.name === baseBranchName);
89
+ if (!baseBranchIbGib) {
90
+ throw new Error(`Base branch '${baseBranchName}' not found in repository (E: 9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e)`);
79
91
  }
80
- const targetBranchIbGib = branchIbGibs.findLast((b) => b?.data?.name === trimmedTargetBranch);
81
- if (!targetBranchIbGib) {
82
- throw new Error(`Branch '${trimmedTargetBranch}' does not exist (E: 0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f)`);
92
+ const incomingBranchIbGib = branchIbGibs.findLast((b) => b?.data?.name === trimmedIncomingBranch);
93
+ if (!incomingBranchIbGib) {
94
+ throw new Error(`Branch '${trimmedIncomingBranch}' does not exist (E: 0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f)`);
83
95
  }
84
- // 3. Resolve active branch space & target branch space
85
- const activeSpaceRes = await getOrCreateBranchSpace({
96
+ // 3. Resolve base branch space & incoming branch space
97
+ const baseSpaceRes = await getOrCreateBranchSpace({
86
98
  metaspace,
87
99
  vcsPath,
88
- branchName: activeBranchName,
100
+ branchName: baseBranchName,
89
101
  });
90
- const activeSpace = activeSpaceRes.space;
91
- const targetSpaceRes = await getOrCreateBranchSpace({
102
+ const baseSpace = baseSpaceRes.space;
103
+ const incomingSpaceRes = await getOrCreateBranchSpace({
92
104
  metaspace,
93
105
  vcsPath,
94
- branchName: trimmedTargetBranch,
106
+ branchName: trimmedIncomingBranch,
95
107
  });
96
- const targetSpace = targetSpaceRes.space;
97
- await putInSpace({ space: activeSpace, ibGib: activeBranchIbGib });
98
- await putInSpace({ space: targetSpace, ibGib: targetBranchIbGib });
99
- // Resolve latest branch tip inside targetSpace (in case commits occurred on target branch)
100
- const targetBranchTjpAddr = targetBranchIbGib.rel8ns?.tjp?.at(0) || getIbGibAddr({ ibGib: targetBranchIbGib });
101
- const latestTargetBranchRes = await getLatestAddrs({ space: targetSpace, addrs: [targetBranchTjpAddr] });
102
- const latestTargetBranchAddr = latestTargetBranchRes?.data?.latestAddrs?.[0] || getIbGibAddr({ ibGib: targetBranchIbGib });
103
- const latestTargetBranchIbGib = (await getIbGibWithMetaspaceFallback({
104
- addr: latestTargetBranchAddr,
105
- space: targetSpace,
108
+ const incomingSpace = incomingSpaceRes.space;
109
+ await putInSpace({ space: baseSpace, ibGib: baseBranchIbGib });
110
+ await putInSpace({ space: incomingSpace, ibGib: incomingBranchIbGib });
111
+ // Resolve latest branch tip inside incomingSpace (in case commits occurred on incoming branch)
112
+ const incomingBranchTjpAddr = incomingBranchIbGib.rel8ns?.tjp?.at(0) || getIbGibAddr({ ibGib: incomingBranchIbGib });
113
+ const latestIncomingBranchRes = await getLatestAddrs({ space: incomingSpace, addrs: [incomingBranchTjpAddr] });
114
+ const latestIncomingBranchAddr = latestIncomingBranchRes?.data?.latestAddrs?.[0] || getIbGibAddr({ ibGib: incomingBranchIbGib });
115
+ const latestIncomingBranchIbGib = (await getIbGibWithMetaspaceFallback({
116
+ addr: latestIncomingBranchAddr,
117
+ space: incomingSpace,
106
118
  metaspace,
107
- })) || targetBranchIbGib;
108
- const targetRootAddr = latestTargetBranchIbGib.rel8ns?.b2tfs_item?.at(-1);
109
- if (!targetRootAddr) {
110
- throw new Error(`Target branch '${trimmedTargetBranch}' has no valid root item address (E: 3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e)`);
111
- }
112
- const targetRootItem = await getIbGibWithMetaspaceFallback({
113
- addr: targetRootAddr,
114
- space: targetSpace,
119
+ })) || incomingBranchIbGib;
120
+ const incomingRootAddr = latestIncomingBranchIbGib.rel8ns?.b2tfs_item?.at(-1);
121
+ if (!incomingRootAddr) {
122
+ throw new Error(`Incoming branch '${trimmedIncomingBranch}' has no valid root item address (E: 3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e)`);
123
+ }
124
+ const incomingRootItem = await getIbGibWithMetaspaceFallback({
125
+ addr: incomingRootAddr,
126
+ space: incomingSpace,
115
127
  metaspace,
116
128
  });
117
- if (!targetRootItem) {
118
- throw new Error(`Target root item '${targetRootAddr}' not found in target space (E: 4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f)`);
129
+ if (!incomingRootItem) {
130
+ throw new Error(`Incoming root item '${incomingRootAddr}' not found in incoming space (E: 4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f)`);
131
+ }
132
+ if (diagLog) {
133
+ diag('resolving branches & spaces');
134
+ await logBranchState({ label: 'baseBranch (main)', branchIbGib: baseBranchIbGib, space: baseSpace });
135
+ await logBranchState({ label: 'incomingBranch (feature-merge)', branchIbGib: incomingBranchIbGib, space: incomingSpace });
136
+ await logItemState({ label: 'incomingRootItem', itemIbGib: incomingRootItem, space: incomingSpace });
119
137
  }
120
- // 4. Setup SyncPeerInnerspace and SyncSagaCoordinator syncing target branch space into active branch space
138
+ // 4. Setup SyncPeerInnerspace and SyncSagaCoordinator syncing incoming branch space into base branch space
121
139
  const peer = new SyncPeerInnerspace_V1(clone(SYNC_PEER_INNERSPACE_DEFAULT_DATA_V1));
122
140
  await peer.initialized;
123
141
  await peer.initializeOpts({
124
142
  localMetaspace: metaspace,
125
- localSpace: targetSpace,
126
- receiverSpace: activeSpace,
143
+ localSpace: incomingSpace,
144
+ receiverSpace: baseSpace,
127
145
  receiverCoordinator: new SyncSagaCoordinator(),
128
146
  receiverMetaspace: metaspace,
129
147
  });
130
148
  const senderCoordinator = new SyncSagaCoordinator();
131
149
  const syncSaga = await senderCoordinator.sync({
132
150
  peer,
133
- localSpace: targetSpace,
151
+ localSpace: incomingSpace,
134
152
  metaspace,
135
- domainIbGibs: [targetRootItem],
153
+ domainIbGibs: [incomingRootItem],
136
154
  conflictStrategy: SyncConflictStrategy.optimisticWithLCS,
137
155
  graftPreference: GraftPreference.receiver,
138
156
  });
139
157
  await syncSaga.done;
140
- // 5. Query activeSpace for updated active branch node & root item evolved natively by sync graft strategy
141
- const activeBranchTjpAddr = activeBranchIbGib.rel8ns?.tjp?.at(0) || getIbGibAddr({ ibGib: activeBranchIbGib });
142
- const latestBranchRes = await getLatestAddrs({ space: activeSpace, addrs: [activeBranchTjpAddr] });
143
- const mergedBranchAddr = latestBranchRes?.data?.latestAddrs?.[0] || getIbGibAddr({ ibGib: activeBranchIbGib });
144
- const mergedBranchIbGib = (await getIbGibWithMetaspaceFallback({
145
- addr: mergedBranchAddr,
146
- space: activeSpace,
158
+ // 5. Reify the base branch filesystem hierarchy.
159
+ // After sync, any child timelines (files or subfolders) that were merged/advanced
160
+ // in baseSpace will have newer tips. reifyB2tFSHierarchy bubbles all updated child tips
161
+ // up through the folder DAG, evolving parents in-place and returning the newly reified root item.
162
+ const currentBaseRootItemAddr = baseBranchIbGib.rel8ns?.b2tfs_item?.at(-1);
163
+ if (!currentBaseRootItemAddr) {
164
+ throw new Error(`Base branch '${baseBranchName}' has no root item address (E: 6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d)`);
165
+ }
166
+ const reifyRes = await reifyB2tFSHierarchy({
167
+ rootItemAddr: currentBaseRootItemAddr,
168
+ space: baseSpace,
147
169
  metaspace,
148
- })) || activeBranchIbGib;
149
- const mergedRootItemAddr = mergedBranchIbGib.rel8ns?.b2tfs_item?.at(-1);
170
+ });
171
+ const reifiedRootItem = reifyRes.reifiedRootItem;
172
+ const reifiedRootAddr = getIbGibAddr({ ibGib: reifiedRootItem });
173
+ if (diagLog) {
174
+ diag('after reification');
175
+ logAddr('currentBaseRootItemAddr', currentBaseRootItemAddr);
176
+ logAddr('reifiedRootAddr', reifiedRootAddr);
177
+ console.log(`[merge-cmd] reification hasChanges:`, reifyRes.hasChanges);
178
+ console.log(`[merge-cmd] reifiedAddrsMap:`, JSON.stringify(reifyRes.reifiedAddrsMap));
179
+ }
180
+ // 5b. Evolve the base branch ibgib to point at the reified root item tip.
181
+ // The sync engine does not update branch ibgibs — branches live in
182
+ // their own space and are never domain ibgibs in the sync. We advance
183
+ // the branch pointer to the reified root item.
184
+ let mergedBranchAddr = getIbGibAddr({ ibGib: baseBranchIbGib });
185
+ if (reifyRes.hasChanges && reifiedRootAddr !== currentBaseRootItemAddr) {
186
+ if (diagLog) {
187
+ console.log(`[merge-cmd] Evolving base branch: root item changing from ${currentBaseRootItemAddr} -> ${reifiedRootAddr}`);
188
+ }
189
+ const resRel8Branch = await rel8({
190
+ src: baseBranchIbGib,
191
+ rel8nsToReplaceByAddr: {
192
+ b2tfs_item: [{ oldAddr: currentBaseRootItemAddr, newAddr: reifiedRootAddr }],
193
+ },
194
+ dna: true,
195
+ nCounter: true,
196
+ });
197
+ const evolvedBranchIbGib = resRel8Branch.newIbGib;
198
+ await persistTransformResult({ resTransform: resRel8Branch, space: baseSpace });
199
+ await registerNewIbGib({ ibGib: evolvedBranchIbGib, space: baseSpace });
200
+ mergedBranchAddr = getIbGibAddr({ ibGib: evolvedBranchIbGib });
201
+ if (diagLog) {
202
+ console.log(`[merge-cmd] Base branch evolved to addr: ${mergedBranchAddr}`);
203
+ }
204
+ }
205
+ else {
206
+ if (diagLog) {
207
+ console.log(`[merge-cmd] Base branch root item unchanged (${currentBaseRootItemAddr})`);
208
+ }
209
+ }
150
210
  // Update indexIbGib to reference new merged branch node
151
211
  await updateB2tFSIndexIbGib({
152
- space: activeSpace,
212
+ space: baseSpace,
153
213
  metaspace,
154
214
  indexIbGib,
155
215
  rel8nsToUpdate: {
@@ -157,24 +217,32 @@ export async function executeMergeCmd({ targetBranchName, targetDir = process.cw
157
217
  },
158
218
  vcsPath,
159
219
  });
220
+ const mergedRootItemAddr = reifiedRootAddr;
221
+ if (diagLog) {
222
+ diag('projecting onto disk');
223
+ logAddr('mergedRootItemAddr', mergedRootItemAddr);
224
+ }
160
225
  // 6. Project merged branch snapshot files onto physical worktree disk
161
- const isDefaultBranch = activeBranchName === 'main';
226
+ const isDefaultBranch = baseBranchName === 'main';
162
227
  const worktreePath = isDefaultBranch
163
228
  ? repoRoot
164
- : path.join(repoRoot, 'b', activeBranchName);
229
+ : path.join(repoRoot, 'b', baseBranchName);
165
230
  await fs.mkdir(worktreePath, { recursive: true });
166
231
  if (mergedRootItemAddr) {
167
232
  const mergedRootItem = await getIbGibWithMetaspaceFallback({
168
233
  addr: mergedRootItemAddr,
169
- space: activeSpace,
234
+ space: baseSpace,
170
235
  metaspace,
171
236
  });
237
+ if (diagLog) {
238
+ await logItemState({ label: 'mergedRootItem to write', itemIbGib: mergedRootItem, space: baseSpace });
239
+ }
172
240
  if (mergedRootItem) {
173
241
  if (mergedRootItem.data?.fsType === 'file') {
174
242
  await writeB2tFSItemToFS({
175
243
  item: mergedRootItem,
176
244
  destPath: worktreePath,
177
- space: activeSpace,
245
+ space: baseSpace,
178
246
  metaspace,
179
247
  });
180
248
  }
@@ -183,14 +251,14 @@ export async function executeMergeCmd({ targetBranchName, targetDir = process.cw
183
251
  for (const childAddr of childAddrs) {
184
252
  const childItem = await getIbGibWithMetaspaceFallback({
185
253
  addr: childAddr,
186
- space: activeSpace,
254
+ space: baseSpace,
187
255
  metaspace,
188
256
  });
189
257
  if (childItem) {
190
258
  await writeB2tFSItemToFS({
191
259
  item: childItem,
192
260
  destPath: worktreePath,
193
- space: activeSpace,
261
+ space: baseSpace,
194
262
  metaspace,
195
263
  });
196
264
  }
@@ -199,15 +267,15 @@ export async function executeMergeCmd({ targetBranchName, targetDir = process.cw
199
267
  }
200
268
  }
201
269
  if (!quiet) {
202
- console.log(`Successfully merged branch '${trimmedTargetBranch}' into '${activeBranchName}' (I: 1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a)`);
270
+ console.log(`Successfully merged branch '${trimmedIncomingBranch}' into '${baseBranchName}' (I: 1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a)`);
203
271
  console.log(` Worktree projection: ${worktreePath}`);
204
272
  }
205
273
  return {
206
- activeBranch: activeBranchName,
207
- targetBranch: trimmedTargetBranch,
208
- activeSpaceId: activeSpaceRes.spaceId,
209
- targetSpaceId: targetSpaceRes.spaceId,
210
- mergedBranchAddr: getIbGibAddr({ ibGib: mergedBranchIbGib }),
274
+ baseBranch: baseBranchName,
275
+ incomingBranch: trimmedIncomingBranch,
276
+ baseSpaceId: baseSpaceRes.spaceId,
277
+ incomingSpaceId: incomingSpaceRes.spaceId,
278
+ mergedBranchAddr,
211
279
  worktreePath,
212
280
  };
213
281
  }
@@ -1 +1 @@
1
- {"version":3,"file":"merge-cmd.mjs","sourceRoot":"","sources":["../../../src/cli/commands/merge-cmd.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merge-cmd.mjs","sourceRoot":"","sources":["../../../src/cli/commands/merge-cmd.mts"],"names":[],"mappings":"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"}
@@ -4,22 +4,21 @@
4
4
  * Command handler for `vcs status`.
5
5
  * Compares physical workspace state against active branch snapshot tip and in-band index staging area.
6
6
  */
7
- export interface VcsStatusItem {
8
- path: string;
9
- fsType: 'file' | 'folder';
10
- status: 'untracked' | 'modified' | 'deleted' | 'staged';
11
- }
7
+ import { VcsStatusItem, PendingCommentInfo } from '../../engine/status/status-helper.mjs';
8
+ export { VcsStatusItem, PendingCommentInfo };
12
9
  export interface StatusCmdResult {
13
10
  branchName: string;
14
11
  staged: VcsStatusItem[];
15
12
  modified: VcsStatusItem[];
16
13
  deleted: VcsStatusItem[];
17
14
  untracked: VcsStatusItem[];
15
+ pendingComments: PendingCommentInfo[];
18
16
  }
19
17
  export interface StatusCmdOpts {
20
18
  targetDir?: string;
21
19
  vcsFolderName?: string;
22
20
  quiet?: boolean;
21
+ comments?: boolean;
23
22
  }
24
- export declare function executeStatusCmd({ targetDir, vcsFolderName, quiet, }?: StatusCmdOpts): Promise<StatusCmdResult>;
23
+ export declare function executeStatusCmd({ targetDir, vcsFolderName, quiet, comments, }?: StatusCmdOpts): Promise<StatusCmdResult>;
25
24
  //# sourceMappingURL=status-cmd.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"status-cmd.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/status-cmd.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuBH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;CAC3D;AAED,MAAM,WAAW,eAAe;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,SAAS,EAAE,aAAa,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,gBAAgB,CAAC,EACnC,SAAyB,EACzB,aAAyB,EACzB,KAAa,GAChB,GAAE,aAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,CA8M/C"}
1
+ {"version":3,"file":"status-cmd.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/status-cmd.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAiB,aAAa,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAKzG,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,eAAe,EAAE,kBAAkB,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,gBAAgB,CAAC,EACnC,SAAyB,EACzB,aAAyB,EACzB,KAAa,EACb,QAAgB,GACnB,GAAE,aAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,CA6H/C"}