@paradigma-inc/flywheel 0.2.66 → 0.2.68

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 (52) hide show
  1. package/package.json +1 -1
  2. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/repository.js +21 -12
  3. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/repository.js.map +1 -1
  4. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-operation.js +2 -0
  5. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-operation.js.map +1 -1
  6. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-output.js +72 -0
  7. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-output.js.map +1 -1
  8. package/src/runtime/vendor/flywheel-cli-dist/local/domain/models/tags.js +3 -1
  9. package/src/runtime/vendor/flywheel-cli-dist/local/domain/models/tags.js.map +1 -1
  10. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflict-view.js +300 -0
  11. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflict-view.js.map +1 -0
  12. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflicts.js +74 -25
  13. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflicts.js.map +1 -1
  14. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/edge-restoration.js +4 -50
  15. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/edge-restoration.js.map +1 -1
  16. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/keys.js +2 -3
  17. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/keys.js.map +1 -1
  18. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/local-replay.js +6 -0
  19. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/local-replay.js.map +1 -0
  20. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pull.js +1 -7
  21. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pull.js.map +1 -1
  22. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pulled-artifacts.js +126 -0
  23. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pulled-artifacts.js.map +1 -0
  24. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pulled-state.js +423 -0
  25. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pulled-state.js.map +1 -0
  26. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay-walk.js +133 -0
  27. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay-walk.js.map +1 -0
  28. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay.js +47 -127
  29. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay.js.map +1 -1
  30. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/resolve.js +240 -9
  31. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/resolve.js.map +1 -1
  32. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/tag-holders.js +78 -0
  33. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/tag-holders.js.map +1 -0
  34. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/bootstrap.js +40 -1
  35. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/bootstrap.js.map +1 -1
  36. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/operations/conflicts.js +4 -9
  37. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/operations/conflicts.js.map +1 -1
  38. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/operations/core.js +1 -1
  39. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/operations/core.js.map +1 -1
  40. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/remote/push.js +9 -2
  41. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/remote/push.js.map +1 -1
  42. package/src/runtime/vendor/flywheel-cli-dist/local/store/backup/restore.js +2 -0
  43. package/src/runtime/vendor/flywheel-cli-dist/local/store/backup/restore.js.map +1 -1
  44. package/src/runtime/vendor/flywheel-cli-dist/local/store/pending.js +79 -8
  45. package/src/runtime/vendor/flywheel-cli-dist/local/store/pending.js.map +1 -1
  46. package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/artifacts.js +2 -1
  47. package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/artifacts.js.map +1 -1
  48. package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/tags.js +4 -2
  49. package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/tags.js.map +1 -1
  50. package/src/runtime/vendor/flywheel-cli-dist/prebuilds/darwin-arm64/node.napi.node +0 -0
  51. package/src/runtime/vendor/flywheel-cli-dist/prebuilds/darwin-x64/node.napi.node +0 -0
  52. package/src/runtime/vendor/manifest.json +13 -1
@@ -0,0 +1,300 @@
1
+ import { RepositoryServiceError } from "../errors.js";
2
+ import { isRecord } from "../models/constants.js";
3
+ import { valueDigest } from "../models/encoding.js";
4
+ import { RepositoryOperation } from "../models/operations.js";
5
+ import { snapshotRows } from "../../store/snapshot/schema.js";
6
+ import { latestValueWrites } from "../../store/latest-values.js";
7
+ import { snapshotLatestValue } from "../../store/sync-commits.js";
8
+ import { RepositoryStoreError } from "../../store/sqlite/errors.js";
9
+ import { conflictContext, conflictKind, conflictMapping } from "./conflicts.js";
10
+ import { RepositoryRebaseError } from "./context.js";
11
+ import { GRAPH_MEMBERSHIP } from "./graph-membership.js";
12
+ import { latestTarget, loadRebaseLatestValues } from "./replay.js";
13
+ import { listConflicts } from "./pull.js";
14
+ import { checkedResolution, ChoiceCheckInputs } from "./resolve.js";
15
+ import { snapshotHolders } from "./tag-holders.js";
16
+ /**
17
+ * Identity and relationship fields each operation type shows; its competing value is added separately.
18
+ * A field the operation omits is omitted too: parent_repository_id and scope_repository_id are only
19
+ * present when the relationship refers to another repository.
20
+ */
21
+ const CHANGE_FIELDS = {
22
+ "node.create.v1": ["node_id"],
23
+ "node.field.set.v1": ["node_id"],
24
+ "node.tombstone.v1": ["node_id"],
25
+ "node.restore.v1": ["node_id"],
26
+ "node.purge.v1": ["node_id"],
27
+ "node.relocate.v1": ["node_id", "target_repository_id"],
28
+ "node.source_timestamps.recover.v1": ["node_id", "source_created_at", "source_updated_at"],
29
+ "containment.assign.v1": ["containment_id", "container_node_id", "child_node_id", "ordinal", "source_artifact_id"],
30
+ "containment.remove.v1": ["containment_id", "child_node_id"],
31
+ "edge.add.v1": ["edge_id", "graph_node_id", "source_node_id", "target_node_id"],
32
+ "edge.field.set.v1": ["edge_id"],
33
+ "edge.remove.v1": ["edge_id"],
34
+ "lineage.add.v1": ["parent_repository_id", "parent_node_id", "child_node_id"],
35
+ "lineage.remove.v1": ["parent_repository_id", "parent_node_id", "child_node_id"],
36
+ "tag.define.v1": ["scope_node_id", "tag_id", "definition"],
37
+ "tag.update.v1": ["scope_node_id", "tag_id", "definition"],
38
+ "tag.retire.v1": ["scope_node_id", "tag_id"],
39
+ "node.tag.assign.v1": ["scope_repository_id", "scope_node_id", "tag_id", "node_id", "new_holder"],
40
+ "node.tag.remove.v1": ["scope_repository_id", "scope_node_id", "tag_id", "node_id"],
41
+ "artifact.attach.v1": ["artifact_id", "owner", "order", "object_digest"],
42
+ "artifact.attach.v2": ["artifact_id", "owner", "order", "object_digest"],
43
+ "artifact.detach.v1": ["artifact_id", "owner"],
44
+ "artifact.metadata.set.v1": ["artifact_id"],
45
+ "artifact.properties.set.v1": ["artifact_id"],
46
+ "artifact.content.set.v1": ["artifact_id", "object_digest"],
47
+ };
48
+ /** Operations that take something away: a node's life or place, a relationship, a reference, or a tag. */
49
+ const REMOVALS = {
50
+ "node.tombstone.v1": true,
51
+ "node.purge.v1": true,
52
+ "node.relocate.v1": true,
53
+ "containment.remove.v1": true,
54
+ "edge.remove.v1": true,
55
+ "lineage.remove.v1": true,
56
+ "tag.retire.v1": true,
57
+ "node.tag.remove.v1": true,
58
+ "artifact.detach.v1": true,
59
+ };
60
+ const KEEP_LOCAL = { strategy: "local", effect: "Keeps this checkout's change: its operations replay after the pulled ones." };
61
+ const KEEP_REMOTE = { strategy: "remote", effect: "Keeps the pulled change and drops this checkout's operations on it." };
62
+ const MANUAL = {
63
+ strategy: "manual",
64
+ effect: "Sets the field to the exact text of the file passed with --value-file, replacing both sides' values.",
65
+ };
66
+ /** The saved rebase data a view reads: text values by digest, the pinned snapshots, and every stored conflict. */
67
+ class SavedRebase {
68
+ /** Decoded once for the whole view and shared by every choice check. */
69
+ inputs;
70
+ /** All conflicts of the rebase, so a choice is checked against the choices already recorded for the others. */
71
+ conflicts;
72
+ #written = new Map();
73
+ constructor(inputs, conflicts, writes) {
74
+ this.inputs = inputs;
75
+ this.conflicts = conflicts;
76
+ for (const write of writes)
77
+ this.#written.set(JSON.stringify([...write.key, write.valueDigest]), write.value);
78
+ }
79
+ /** The text a digest stands for, using only values this checkout already holds. */
80
+ value([ownerType, ownerId, field], digest) {
81
+ if (digest === valueDigest(null))
82
+ return { available: true, text: null, digest };
83
+ const key = JSON.stringify([ownerType, ownerId, field, digest]);
84
+ if (this.#written.has(key))
85
+ return { available: true, text: this.#written.get(key), digest };
86
+ for (const tables of [() => this.inputs.localTables(), () => this.inputs.remoteTables()]) {
87
+ const loaded = tables();
88
+ try {
89
+ return { available: true, text: snapshotLatestValue(loaded, ownerType, ownerId, field, digest), digest };
90
+ }
91
+ catch (error) {
92
+ // The snapshot holds no row with this value; try the next source.
93
+ if (!(error instanceof RepositoryStoreError))
94
+ throw error;
95
+ }
96
+ }
97
+ return { available: false, digest };
98
+ }
99
+ remoteHasEdge(edgeId) {
100
+ return snapshotRows(this.inputs.remoteTables(), "repository_semantic_edges").some(row => row.edge_id === edgeId);
101
+ }
102
+ /** The holders of a tag in the pulled snapshot and in this checkout's head. */
103
+ tagHolders(scopeNodeId, tagId) {
104
+ const repositoryId = this.inputs.context.remoteSnapshot.repositoryId;
105
+ return {
106
+ pulled: snapshotHolders(this.inputs.remoteTables(), repositoryId, scopeNodeId, tagId),
107
+ kept: snapshotHolders(this.inputs.localTables(), repositoryId, scopeNodeId, tagId),
108
+ };
109
+ }
110
+ }
111
+ function change(operation, data) {
112
+ const view = { operation_id: operation.operationId, type: operation.type, removal: REMOVALS[operation.type] === true };
113
+ for (const name of CHANGE_FIELDS[operation.type] ?? []) {
114
+ if (Object.hasOwn(operation.payload, name))
115
+ view[name] = operation.payload[name];
116
+ }
117
+ const written = latestTarget(operation);
118
+ if (written !== undefined) {
119
+ const [ownerType, ownerId, field, digest] = written;
120
+ view.field = field;
121
+ view.value = data.value([ownerType, ownerId, field], digest);
122
+ }
123
+ return view;
124
+ }
125
+ /**
126
+ * Operations that bring their owner into existence. An artifact attach is not
127
+ * one: it may add a reference to an artifact that already existed.
128
+ */
129
+ const CREATES = {
130
+ "node.create.v1": "node",
131
+ "edge.add.v1": "edge",
132
+ };
133
+ /**
134
+ * The digest one side's first replacement of `target` expected, which is the
135
+ * value before that side changed it; null when that side created the owner (or
136
+ * created it again) before replacing it, so the value it replaced did not exist
137
+ * before the sides diverged; undefined when the side never replaced the field.
138
+ * Writes that name no earlier value (an added edge's content, an attachment's
139
+ * properties) are not replacements.
140
+ */
141
+ function startingDigest(operations, target) {
142
+ const [ownerType, ownerId, field] = target;
143
+ const owned = operations.filter(operation => operation.payload[`${ownerType}_id`] === ownerId);
144
+ const write = owned.findIndex(operation => {
145
+ const written = latestTarget(operation);
146
+ return written !== undefined && written[0] === ownerType && written[1] === ownerId && written[2] === field &&
147
+ typeof operation.payload.expected_digest === "string";
148
+ });
149
+ const created = owned.findIndex(operation => CREATES[operation.type] === ownerType);
150
+ if (created !== -1 && (write === -1 || created < write))
151
+ return null;
152
+ return write === -1 ? undefined : owned[write].payload.expected_digest;
153
+ }
154
+ /**
155
+ * The value both sides started from. Only conflicts about one field value have
156
+ * a base, and only when each side that wrote the field started from the same
157
+ * digest and neither side created the owner.
158
+ */
159
+ function base(key, local, remote, data) {
160
+ const target = key[0] === "node-field" ? ["node", key[1], key[2]]
161
+ : key[0] === "edge" ? ["edge", key[1], "content"]
162
+ : key[0] === "artifact-field" ? ["artifact", key[1], key[2]]
163
+ : key[0] === "artifact-properties" ? ["artifact", key[1], "properties"]
164
+ : undefined;
165
+ if (target === undefined)
166
+ return null;
167
+ const starts = [startingDigest(local, target), startingDigest(remote, target)];
168
+ if (starts.includes(null))
169
+ return null;
170
+ const digests = new Set(starts.filter(digest => digest !== undefined));
171
+ return digests.size === 1 ? data.value(target, [...digests][0]) : null;
172
+ }
173
+ function offeredChoices(payload, conflictKind, key, data) {
174
+ if (conflictKind === GRAPH_MEMBERSHIP) {
175
+ const keepRemoval = "Keeps the removal and drops only the edge work that depends on it.";
176
+ const keepEdge = "Keeps the edge work and restores only the containment it needs.";
177
+ return [
178
+ { strategy: "local", effect: payload.removal_side === "local" ? keepRemoval : keepEdge },
179
+ { strategy: "remote", effect: payload.removal_side === "remote" ? keepRemoval : keepEdge },
180
+ ];
181
+ }
182
+ if (conflictKind === "departure") {
183
+ return [{
184
+ strategy: "remote",
185
+ effect: `Keeps the node's move to repository ${key[2]} and drops this checkout's operations on it; ` +
186
+ `flywheel repo:recover-departed ${key[2]} <directory> recovers them into a new checkout.`,
187
+ }];
188
+ }
189
+ // Decided from the pinned remote state, as continue does: an edge the remote history removed and added back is not removed.
190
+ if (conflictKind === "edge" && !data.remoteHasEdge(key[1])) {
191
+ return [
192
+ { strategy: "local", effect: "Adds the edge back with its original identity and this checkout's content, then replays the later local edits." },
193
+ { strategy: "remote", effect: "Keeps the edge removed and drops only the local work that needs it." },
194
+ ];
195
+ }
196
+ if (conflictKind === "tag_holder") {
197
+ // The pulled history always leaves a holder here (tag-holders.ts); this checkout may have given the tag away again.
198
+ const { pulled, kept } = data.tagHolders(key[1], key[2]);
199
+ const outcome = kept.length === 0 ? `Leaves tag ${key[2]} with no holder, as in this checkout` : `Keeps this checkout's holder of tag ${key[2]} (node ${kept.join(", ")})`;
200
+ return [
201
+ { strategy: "local", effect: `${outcome}: removes the tag from node ${pulled.join(", ")}, then replays this checkout's changes to who holds it.` },
202
+ { strategy: "remote", effect: `Keeps the pulled holder of tag ${key[2]} (node ${pulled.join(", ")}) and drops this checkout's changes to who holds it.` },
203
+ ];
204
+ }
205
+ return conflictKind === "node_field" ? [KEEP_LOCAL, KEEP_REMOTE, MANUAL] : [KEEP_LOCAL, KEEP_REMOTE];
206
+ }
207
+ /** Each offered choice, marked unavailable with resolve's own refusal when resolve would refuse it. */
208
+ function choices(conflict, payload, conflictKind, key, data) {
209
+ return offeredChoices(payload, conflictKind, key, data).map(choice => {
210
+ try {
211
+ // The manual text itself is only known when resolving; any text passes the same checks.
212
+ checkedResolution(conflict, choice.strategy, choice.strategy === "manual" ? "" : null, data.conflicts, data.inputs);
213
+ return { ...choice, available: true };
214
+ }
215
+ catch (error) {
216
+ if (!(error instanceof RepositoryServiceError) || error.code === undefined)
217
+ throw error;
218
+ return { ...choice, available: false, reason: error.message };
219
+ }
220
+ });
221
+ }
222
+ function operations(value) {
223
+ if (!Array.isArray(value) || !value.every(isRecord))
224
+ throw new RepositoryRebaseError("repository conflict is corrupt");
225
+ return value.map(mapping => RepositoryOperation.fromMapping(mapping));
226
+ }
227
+ function conflictView({ conflict, payload, localOperations, remoteOperations }, data) {
228
+ const key = payload.key.map(String);
229
+ const kind = conflictKind(payload, key);
230
+ const resolution = isRecord(payload.resolution)
231
+ ? { strategy: payload.resolution.strategy, manual_value: payload.resolution.manual_value }
232
+ : null;
233
+ return {
234
+ conflict_id: conflict.conflictId,
235
+ rebase_id: conflict.rebaseId,
236
+ state: conflict.state,
237
+ kind,
238
+ key,
239
+ ...(kind === GRAPH_MEMBERSHIP
240
+ ? {
241
+ removal_side: payload.removal_side,
242
+ graph_node_ids: payload.graph_node_ids,
243
+ edge_ids: payload.edge_ids,
244
+ node_ids: payload.node_ids,
245
+ containment_ids: payload.containment_ids,
246
+ }
247
+ : {}),
248
+ base: base(key, localOperations, remoteOperations, data),
249
+ local_changes: localOperations.map(operation => change(operation, data)),
250
+ remote_changes: remoteOperations.map(operation => change(operation, data)),
251
+ choices: choices(conflict, payload, kind, key, data),
252
+ resolution,
253
+ };
254
+ }
255
+ /**
256
+ * Describes the open rebase's conflicts, or only `conflictId`. Each stored
257
+ * payload is parsed once, and the rebase context is decoded once from
258
+ * whichever stored conflict carries it (only one does).
259
+ */
260
+ export async function describeConflicts(store, repositoryId, conflictId) {
261
+ const conflicts = await listConflicts(store, repositoryId);
262
+ if (conflictId !== undefined && !conflicts.some(conflict => conflict.conflictId === conflictId)) {
263
+ throw new RepositoryServiceError("repository conflict is not active");
264
+ }
265
+ if (conflicts.length === 0)
266
+ return [];
267
+ try {
268
+ const stored = conflicts.map(conflict => ({ conflict, payload: conflictMapping(conflict) }));
269
+ const context = conflictContext(conflicts);
270
+ const localChronological = [...context.localCommits].reverse().flatMap(commit => commit.operations);
271
+ const localOrder = new Map(localChronological.map((operation, index) => [operation.operationId, index]));
272
+ const selected = (conflictId === undefined ? stored : stored.filter(({ conflict }) => conflict.conflictId === conflictId))
273
+ .map(({ conflict, payload }) => ({
274
+ conflict, payload,
275
+ localOperations: [...operations(payload.local_operations)]
276
+ .sort((left, right) => (localOrder.get(left.operationId) ?? 0) - (localOrder.get(right.operationId) ?? 0)),
277
+ remoteOperations: operations(payload.remote_operations),
278
+ }));
279
+ const participating = new Set(selected.flatMap(({ localOperations, remoteOperations }) => [...localOperations, ...remoteOperations].map(operation => operation.operationId)));
280
+ const involved = (commit) => commit.operations.some(operation => participating.has(operation.operationId));
281
+ // Every local commit's stored values: the choice checks read them for any kept local operation, not only this view's.
282
+ const localValues = await loadRebaseLatestValues(store, repositoryId, context.localCommits);
283
+ const remoteValues = context.remoteCommits.flatMap((commit, index) => involved(commit) && context.remoteLatestValues[index].length > 0 ? [latestValueWrites(commit, context.remoteLatestValues[index])] : []);
284
+ const inputs = new ChoiceCheckInputs(context, localValues);
285
+ try {
286
+ const data = new SavedRebase(inputs, conflicts, [...localValues.values(), ...remoteValues]
287
+ .flatMap(byOperation => [...byOperation.values()].flatMap(writes => [...writes.values()])));
288
+ return selected.map(stored => conflictView(stored, data));
289
+ }
290
+ finally {
291
+ inputs.close();
292
+ }
293
+ }
294
+ catch (error) {
295
+ if (error instanceof RepositoryRebaseError)
296
+ throw new RepositoryServiceError(error.message, { cause: error });
297
+ throw error;
298
+ }
299
+ }
300
+ //# sourceMappingURL=conflict-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflict-view.js","sourceRoot":"","sources":["../../../../src/local/domain/rebase/conflict-view.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { createHash } from "node:crypto";
2
+ import { RepositoryServiceError } from "../errors.js";
2
3
  import { parseRebaseContext, RepositoryRebaseError, serializeRebaseContext } from "./context.js";
3
4
  import { keysConflict, operationKey } from "./keys.js";
4
5
  import { localOperationNodeIds } from "../models/operation-identity.js";
@@ -7,6 +8,7 @@ import { isRecord } from "../models/constants.js";
7
8
  import { pulledSnapshotTables } from "../../store/snapshot/hosted.js";
8
9
  import { snapshotTables } from "../../store/snapshot/validate.js";
9
10
  import { GRAPH_MEMBERSHIP, graphMembershipConflicts, graphMembershipPlan, NO_GRAPH_MEMBERSHIP_PLAN, } from "./graph-membership.js";
11
+ import { TAG_HOLDER, tagHolderConflicts } from "./tag-holders.js";
10
12
  function keyId(key) {
11
13
  return canonicalBytes(key).toString("hex");
12
14
  }
@@ -19,10 +21,13 @@ function compareKeys(left, right) {
19
21
  }
20
22
  return left.length - right.length;
21
23
  }
22
- function operationsByKey(commits) {
24
+ /** Operations by key, leaving out `taken` (the local holder operations a tag_holder conflict decides). */
25
+ function operationsByKey(commits, taken = new Set()) {
23
26
  const result = new Map();
24
27
  for (const commit of commits) {
25
28
  for (const operation of commit.operations) {
29
+ if (taken.has(operation.operationId))
30
+ continue;
26
31
  const key = operationKey(operation);
27
32
  const id = keyId(key);
28
33
  const current = result.get(id);
@@ -46,7 +51,18 @@ function deterministicConflictId(rebaseId, key) {
46
51
  const hex = raw.toString("hex");
47
52
  return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
48
53
  }
49
- function conflictMapping(conflict) {
54
+ /**
55
+ * Validated payloads by stored conflict. A RebaseConflict never changes, and
56
+ * one list or resolve checks every choice against every stored conflict, so
57
+ * each payload (one of them holds the whole rebase context) is parsed and
58
+ * verified once rather than once per check. Entries go with their conflicts.
59
+ */
60
+ const MAPPINGS = new WeakMap();
61
+ /** A stored conflict's validated payload; shared, so callers must not change it. */
62
+ export function conflictMapping(conflict) {
63
+ const known = MAPPINGS.get(conflict);
64
+ if (known !== undefined)
65
+ return known;
50
66
  let payload;
51
67
  try {
52
68
  payload = parseRepositoryJson(new TextDecoder("utf-8", { fatal: true }).decode(conflict.canonicalBytes));
@@ -60,6 +76,7 @@ function conflictMapping(conflict) {
60
76
  !Array.isArray(payload.key)) {
61
77
  throw new RepositoryRebaseError("repository conflict is corrupt");
62
78
  }
79
+ MAPPINGS.set(conflict, payload);
63
80
  return payload;
64
81
  }
65
82
  function conflictKey(payload) {
@@ -78,14 +95,12 @@ function pulledOperations(context) {
78
95
  remoteTables: () => remote ??= pulledSnapshotTables(context.remoteSnapshot),
79
96
  };
80
97
  }
81
- /** Graph membership conflicts between the pulled remote history and the local unpublished commits. */
82
- function detectGraphMembershipConflicts(context) {
83
- return graphMembershipConflicts(pulledOperations(context));
84
- }
85
98
  export function buildConflicts(input) {
86
99
  // A key overlap wholly inside a graph_membership conflict is decided by that conflict's single choice.
87
100
  const claimed = new Set(input.graphMembership.flatMap(conflict => conflict.localOperations.map(operation => operation.operationId)));
88
- const localByKey = operationsByKey(input.localCommitsNewestFirst);
101
+ // A tag_holder conflict decides every local holder operation of its tag, so they join no other conflict.
102
+ const taken = new Set(input.tagHolders.flatMap(conflict => conflict.localOperations.map(operation => operation.operationId)));
103
+ const localByKey = operationsByKey(input.localCommitsNewestFirst, taken);
89
104
  const remoteByKey = operationsByKey(input.remoteCommits);
90
105
  const conflicting = [...localByKey.values()]
91
106
  .filter(({ key, operations }) => !operations.every(operation => claimed.has(operation.operationId)) &&
@@ -129,6 +144,9 @@ export function buildConflicts(input) {
129
144
  },
130
145
  });
131
146
  }
147
+ for (const conflict of input.tagHolders) {
148
+ conflicting.push({ key: conflict.key, localOperations: conflict.localOperations, remoteOperations: conflict.remoteOperations });
149
+ }
132
150
  conflicting.sort((left, right) => compareKeys(left.key, right.key));
133
151
  const context = serializeRebaseContext(input.context);
134
152
  return conflicting.map(({ key, localOperations, remoteOperations, details }, index) => {
@@ -153,34 +171,43 @@ export function buildConflicts(input) {
153
171
  };
154
172
  });
155
173
  }
156
- /** The conflicts between a rebase context's local history and its pulled commits, including graph_membership conflicts. */
174
+ /** The conflicts between a rebase context's local history and its pulled commits, including graph_membership and tag_holder conflicts. */
157
175
  export function conflictsForContext(repositoryId, rebaseId, context) {
176
+ const pulled = pulledOperations(context);
158
177
  return buildConflicts({
159
178
  repositoryId, rebaseId, localCommitsNewestFirst: context.localCommits, remoteCommits: context.remoteCommits, context,
160
- graphMembership: detectGraphMembershipConflicts(context),
179
+ graphMembership: graphMembershipConflicts(pulled),
180
+ tagHolders: tagHolderConflicts({ ...pulled, repositoryId }),
161
181
  });
162
182
  }
183
+ /** The kind repo:conflicts:list reports for a conflict. */
184
+ export function conflictKind(payload, key) {
185
+ if (payload.kind === GRAPH_MEMBERSHIP)
186
+ return GRAPH_MEMBERSHIP;
187
+ // Operations without a shared key (lineage, baselines) are keyed by their type and operation ID.
188
+ return key[0].includes(".") ? "operation" : key[0].replaceAll("-", "_");
189
+ }
163
190
  export function resolveConflictBytes(conflict, strategy, manualValue) {
164
191
  const payload = conflictMapping(conflict);
165
192
  if (strategy !== "local" && strategy !== "remote" && strategy !== "manual") {
166
193
  throw new RepositoryRebaseError("repository conflict strategy is invalid");
167
194
  }
168
- const key = payload.key;
169
- if (payload.kind === GRAPH_MEMBERSHIP && strategy === "manual") {
170
- throw new RepositoryRebaseError("a graph_membership conflict is resolved with --strategy local or remote; manual values apply only to node field conflicts");
171
- }
195
+ const key = conflictKey(payload);
172
196
  if (key[0] === "departure" && strategy !== "remote") {
173
- throw new RepositoryRebaseError(`repository departure conflict requires remote resolution. Run flywheel repo:recover-departed ${String(key[2])} <directory> --repo <source-checkout>.`);
197
+ throw new RepositoryRebaseError(`repository departure conflict requires remote resolution. Run flywheel repo:recover-departed ${key[2]} <directory> --repo <source-checkout>.`);
174
198
  }
175
- if (strategy === "manual") {
176
- if (typeof manualValue !== "string" || conflictKey(payload)[0] !== "node-field") {
177
- throw new RepositoryRebaseError("manual conflict value is invalid");
178
- }
199
+ if (strategy === "manual" && key[0] !== "node-field") {
200
+ const id = conflict.conflictId;
201
+ throw new RepositoryServiceError(`This ${conflictKind(payload, key)} conflict is resolved with --strategy local or remote; manual values apply only to node field conflicts.`, {
202
+ code: "repository_conflict_manual_not_supported",
203
+ nextAction: `Run flywheel repo:conflicts:resolve ${id} --strategy local or flywheel repo:conflicts:resolve ${id} --strategy remote; ` +
204
+ `flywheel repo:conflicts:show ${id} describes what each keeps.`,
205
+ });
179
206
  }
180
- else if (manualValue !== null) {
207
+ if (strategy === "manual" ? typeof manualValue !== "string" : manualValue !== null) {
181
208
  throw new RepositoryRebaseError("manual conflict value is invalid");
182
209
  }
183
- return { key: conflictKey(payload), canonicalBytes: canonicalBytes({ ...payload, resolution: { manual_value: manualValue, strategy } }) };
210
+ return { key, canonicalBytes: canonicalBytes({ ...payload, resolution: { manual_value: manualValue, strategy } }) };
184
211
  }
185
212
  export function conflictContext(conflicts) {
186
213
  for (const conflict of conflicts) {
@@ -206,9 +233,16 @@ export function conflictResolutionByKey(conflicts) {
206
233
  }
207
234
  let remoteDigest = null;
208
235
  if (Array.isArray(payload.remote_operations)) {
236
+ // The value the pulled history left: the last write, where re-adding an edge writes its content and
237
+ // replacing an artifact's content writes its object digest.
209
238
  for (const operation of [...payload.remote_operations].reverse()) {
210
- if (isRecord(operation) && typeof operation.new_digest === "string") {
211
- remoteDigest = operation.new_digest;
239
+ if (!isRecord(operation))
240
+ continue;
241
+ const written = typeof operation.new_digest === "string" ? operation.new_digest
242
+ : operation.type === "edge.add.v1" && typeof operation.content_digest === "string" ? operation.content_digest
243
+ : operation.type === "artifact.content.set.v1" && typeof operation.object_digest === "string" ? operation.object_digest : undefined;
244
+ if (written !== undefined) {
245
+ remoteDigest = written;
212
246
  break;
213
247
  }
214
248
  }
@@ -217,16 +251,31 @@ export function conflictResolutionByKey(conflicts) {
217
251
  }
218
252
  return result;
219
253
  }
254
+ /** IDs of the local operations a stored conflict lists. */
255
+ export function localOperationIds(conflict) {
256
+ const operations = conflictMapping(conflict).local_operations;
257
+ return Array.isArray(operations)
258
+ ? operations.flatMap(operation => isRecord(operation) && typeof operation.operation_id === "string" ? [operation.operation_id] : [])
259
+ : [];
260
+ }
220
261
  /**
221
262
  * Compares conflicts rebuilt from the current local history with the saved
222
263
  * ones. A saved choice carries over only while the same local and remote
223
- * operations participate; otherwise the conflict is open again.
264
+ * operations participate; otherwise the conflict is open again. A rebase saved
265
+ * before tag_holder conflicts existed listed local holder operations under
266
+ * their node's conflict; once rebuilt, they belong to their tag's tag_holder
267
+ * conflict, so that saved conflict is replaced, not dropped.
224
268
  */
225
269
  export function recheckConflicts(saved, rebuilt) {
226
270
  const savedById = new Map(saved.map((conflict) => [conflict.conflictId, conflict]));
227
271
  const rebuiltIds = new Set(rebuilt.map((conflict) => conflict.conflictId));
228
- const dropped = saved.filter((conflict) => !rebuiltIds.has(conflict.conflictId));
229
- let changed = dropped.length > 0;
272
+ const tagHolderOperations = new Set(rebuilt.filter(conflict => conflictOperationKey(conflict)[0] === TAG_HOLDER).flatMap(localOperationIds));
273
+ const gone = saved.filter((conflict) => !rebuiltIds.has(conflict.conflictId));
274
+ const dropped = gone.filter(conflict => {
275
+ const operationIds = localOperationIds(conflict);
276
+ return operationIds.length === 0 || !operationIds.every(operationId => tagHolderOperations.has(operationId));
277
+ });
278
+ let changed = gone.length > 0;
230
279
  const conflicts = rebuilt.map((conflict) => {
231
280
  const previous = savedById.get(conflict.conflictId);
232
281
  if (previous === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"conflicts.js","sourceRoot":"","sources":["../../../../src/local/domain/rebase/conflicts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conflicts.js","sourceRoot":"","sources":["../../../../src/local/domain/rebase/conflicts.ts"],"names":[],"mappings":"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"}