@paradigma-inc/flywheel 0.2.61 → 0.2.67

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 (70) hide show
  1. package/package.json +1 -1
  2. package/skills/flywheel-repo/references/repository-commands.md +2 -2
  3. package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-graph.js +19 -2
  4. package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-graph.js.map +1 -1
  5. package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-repository-snapshot.js +94 -42
  6. package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-repository-snapshot.js.map +1 -1
  7. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/repository.js +23 -15
  8. package/src/runtime/vendor/flywheel-cli-dist/commands/registry/repository.js.map +1 -1
  9. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-edit.js +20 -27
  10. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-edit.js.map +1 -1
  11. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-output.js +72 -0
  12. package/src/runtime/vendor/flywheel-cli-dist/commands/repository-output.js.map +1 -1
  13. package/src/runtime/vendor/flywheel-cli-dist/commands/types.js.map +1 -1
  14. package/src/runtime/vendor/flywheel-cli-dist/local/adapter.js +55 -49
  15. package/src/runtime/vendor/flywheel-cli-dist/local/adapter.js.map +1 -1
  16. package/src/runtime/vendor/flywheel-cli-dist/local/domain/models/tags.js +3 -1
  17. package/src/runtime/vendor/flywheel-cli-dist/local/domain/models/tags.js.map +1 -1
  18. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflict-view.js +288 -0
  19. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflict-view.js.map +1 -0
  20. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflicts.js +162 -11
  21. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflicts.js.map +1 -1
  22. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/edge-restoration.js +95 -0
  23. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/edge-restoration.js.map +1 -0
  24. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/graph-membership.js +351 -0
  25. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/graph-membership.js.map +1 -0
  26. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/local-replay.js +6 -0
  27. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/local-replay.js.map +1 -0
  28. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pull.js +26 -18
  29. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pull.js.map +1 -1
  30. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pulled-artifacts.js +126 -0
  31. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pulled-artifacts.js.map +1 -0
  32. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pulled-state.js +412 -0
  33. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pulled-state.js.map +1 -0
  34. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay-walk.js +107 -0
  35. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay-walk.js.map +1 -0
  36. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay.js +139 -130
  37. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay.js.map +1 -1
  38. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/resolve.js +245 -5
  39. package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/resolve.js.map +1 -1
  40. package/src/runtime/vendor/flywheel-cli-dist/local/fs/writer-lock.js +33 -3
  41. package/src/runtime/vendor/flywheel-cli-dist/local/fs/writer-lock.js.map +1 -1
  42. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/dispatch.js +14 -15
  43. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/dispatch.js.map +1 -1
  44. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/operations/conflicts.js +4 -9
  45. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/operations/conflicts.js.map +1 -1
  46. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/recover-departed.js +52 -9
  47. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/recover-departed.js.map +1 -1
  48. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/snapshot-diff.js +12 -19
  49. package/src/runtime/vendor/flywheel-cli-dist/local/runtime/snapshot-diff.js.map +1 -1
  50. package/src/runtime/vendor/flywheel-cli-dist/local/store/pending.js +85 -13
  51. package/src/runtime/vendor/flywheel-cli-dist/local/store/pending.js.map +1 -1
  52. package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/artifacts.js +2 -1
  53. package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/artifacts.js.map +1 -1
  54. package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/tags.js +4 -2
  55. package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/tags.js.map +1 -1
  56. package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/hosted.js +7 -1
  57. package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/hosted.js.map +1 -1
  58. package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/schema.js +5 -0
  59. package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/schema.js.map +1 -1
  60. package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/errors.js +5 -0
  61. package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/errors.js.map +1 -1
  62. package/src/runtime/vendor/flywheel-cli-dist/local/store/sync.js +29 -9
  63. package/src/runtime/vendor/flywheel-cli-dist/local/store/sync.js.map +1 -1
  64. package/src/runtime/vendor/flywheel-cli-dist/local/store/workspace.js +1 -4
  65. package/src/runtime/vendor/flywheel-cli-dist/local/store/workspace.js.map +1 -1
  66. package/src/runtime/vendor/flywheel-cli-dist/main.js +1 -3
  67. package/src/runtime/vendor/flywheel-cli-dist/main.js.map +1 -1
  68. package/src/runtime/vendor/flywheel-cli-dist/prebuilds/darwin-arm64/node.napi.node +0 -0
  69. package/src/runtime/vendor/flywheel-cli-dist/prebuilds/darwin-x64/node.napi.node +0 -0
  70. package/src/runtime/vendor/manifest.json +15 -1
@@ -0,0 +1,107 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { RepositoryOperation } from "../models/operations.js";
3
+ import { localOperationNodeIds } from "../models/operation-identity.js";
4
+ import { edgeDependency, removedEdges, restoredEdgeOperation } from "./edge-restoration.js";
5
+ import { operationKey } from "./keys.js";
6
+ import { PulledState } from "./pulled-state.js";
7
+ /** The resolution recorded for `key`, if any. */
8
+ export function resolutionFor(resolutions, key) {
9
+ for (const [candidate, resolution] of resolutions) {
10
+ if (candidate.length === key.length && candidate.every((value, index) => value === key[index]))
11
+ return resolution;
12
+ }
13
+ return undefined;
14
+ }
15
+ /** Nodes whose departure to another repository was accepted with a remote choice. */
16
+ export function remoteDepartureNodeIds(resolutions) {
17
+ const nodeIds = new Set();
18
+ for (const [key, [strategy]] of resolutions) {
19
+ if (key.length === 3 && key[0] === "departure" && strategy === "remote")
20
+ nodeIds.add(key[1]);
21
+ }
22
+ return nodeIds;
23
+ }
24
+ /**
25
+ * Walks the local operations in order, one `steps` call per operation, keeping
26
+ * the pulled lifecycle, tag, containment, edge, and artifact reference state
27
+ * up to date with every operation the walk lets through.
28
+ */
29
+ export class ReplayWalk {
30
+ #input;
31
+ #departed;
32
+ #restorations;
33
+ #pending;
34
+ #discarded;
35
+ #discardedArtifacts = new Set();
36
+ /** The pulled state after every operation the walk has let through so far. */
37
+ state;
38
+ constructor(input) {
39
+ this.#input = input;
40
+ this.#departed = remoteDepartureNodeIds(input.resolutions);
41
+ const removed = removedEdges(input.resolutions, input.remoteTables, input.localTables, input.localCommitsNewestFirst, input.rebaseId);
42
+ this.#restorations = removed.restorations;
43
+ this.#pending = new Map(removed.restorations);
44
+ this.#discarded = removed.discarded;
45
+ this.state = new PulledState(input.remoteTables, input.repositoryId, input.departures);
46
+ }
47
+ /** The steps of every operation in `commit`, in order. */
48
+ *commitSteps(commit) {
49
+ for (const operation of commit.operations)
50
+ yield* this.steps(operation);
51
+ }
52
+ /** What replay does with `operation`, the next local operation in order. */
53
+ *steps(operation) {
54
+ const { graphMembership, resolutions } = this.#input;
55
+ for (const inserted of graphMembership.insertBefore.get(operation.operationId) ?? []) {
56
+ const restored = RepositoryOperation.fromMapping({ ...inserted, operation_id: randomUUID() });
57
+ this.state.apply(restored);
58
+ yield { kind: "inserted", operation: restored, original: operation };
59
+ }
60
+ if (graphMembership.drop.has(operation.operationId))
61
+ return;
62
+ if (localOperationNodeIds(operation).some(nodeId => this.#departed.has(nodeId)))
63
+ return;
64
+ const edgeId = edgeDependency(operation);
65
+ const artifactId = operation.type.startsWith("artifact.") ? operation.payload.artifact_id : undefined;
66
+ if (edgeId !== undefined && this.#discarded.has(edgeId)) {
67
+ if (artifactId !== undefined)
68
+ this.#discardedArtifacts.add(artifactId);
69
+ return;
70
+ }
71
+ // An artifact that only a discarded edge attachment created does not exist for later local operations,
72
+ // so they are skipped until a kept attachment replays: an attach carries the artifact's object and
73
+ // properties and creates it when absent (store/projection/artifacts.ts).
74
+ if (artifactId !== undefined && this.#discardedArtifacts.has(artifactId) && !this.state.hasArtifact(artifactId) &&
75
+ operation.type !== "artifact.attach.v1" && operation.type !== "artifact.attach.v2")
76
+ return;
77
+ const resolution = resolutionFor(resolutions, operationKey(operation));
78
+ if (resolution?.[0] === "remote")
79
+ return;
80
+ const restoration = edgeId === undefined ? undefined : this.#pending.get(edgeId);
81
+ if (restoration !== undefined) {
82
+ this.#pending.delete(restoration.edgeId);
83
+ const restored = restoredEdgeOperation(restoration, randomUUID());
84
+ const planned = this.state.plan(restored);
85
+ if (planned.action === "refuse") {
86
+ yield { kind: "refused", original: operation, resolution, problem: planned.problem, details: planned.details, restoration };
87
+ return;
88
+ }
89
+ this.state.apply(restored);
90
+ yield { kind: "restored", restoration, operation: restored, original: operation };
91
+ }
92
+ // The restoration carries the first local content edit.
93
+ if (edgeId !== undefined && this.#restorations.get(edgeId)?.firstEdit.operation.operationId === operation.operationId)
94
+ return;
95
+ const planned = this.state.plan(operation);
96
+ if (planned.action === "drop")
97
+ return;
98
+ if (planned.action === "refuse") {
99
+ yield { kind: "refused", original: operation, resolution, problem: planned.problem, details: planned.details };
100
+ return;
101
+ }
102
+ const { rewrite } = planned;
103
+ this.state.apply(rewrite === undefined ? operation : RepositoryOperation.fromMapping({ ...operation.toMapping(), ...rewrite }));
104
+ yield { kind: "kept", original: operation, resolution, rewrite };
105
+ }
106
+ }
107
+ //# sourceMappingURL=replay-walk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay-walk.js","sourceRoot":"","sources":["../../../../src/local/domain/rebase/replay-walk.ts"],"names":[],"mappings":"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"}
@@ -3,18 +3,23 @@ import { RepositoryServiceError } from "../errors.js";
3
3
  import { isRecord, isUuid } from "../models/constants.js";
4
4
  import { RepositoryCommit } from "../models/commits.js";
5
5
  import { RepositoryOperation } from "../models/operations.js";
6
- import { artifactReferenceSetDigest, foldArtifactPropertiesOperation, legacyArtifactMetadata, legacyArtifactProperties, parseArtifactProperties } from "../models/artifact-properties.js";
6
+ import { foldArtifactPropertiesOperation, legacyArtifactMetadata, legacyArtifactProperties, parseArtifactProperties } from "../models/artifact-properties.js";
7
7
  import { parseRepositoryJson, valueDigest } from "../models/encoding.js";
8
8
  import { artifactDigests, latestStateDigests } from "../service/writes.js";
9
9
  import { LatestValueWrite } from "../../store/contract.js";
10
10
  import { latestValueWrites } from "../../store/latest-values.js";
11
- import { localOperationNodeIds, operationFailureMessage } from "../models/operation-identity.js";
11
+ import { pulledSnapshotTables } from "../../store/snapshot/hosted.js";
12
+ import { operationFailureMessage } from "../models/operation-identity.js";
12
13
  import { snapshotLatestValue } from "../../store/sync-commits.js";
14
+ import { RepositoryStoreError } from "../../store/sqlite/errors.js";
13
15
  import { snapshotTables } from "../../store/snapshot/validate.js";
14
- import { conflictContext, conflictResolutionByKey } from "./conflicts.js";
16
+ import { conflictContext, conflictResolutionByKey, conflictsForContext, graphMembershipReplayPlan, recheckConflicts, resolutionDigest } from "./conflicts.js";
15
17
  import { RepositoryRebaseError } from "./context.js";
18
+ import { restoreRefusal } from "./edge-restoration.js";
19
+ import { NO_GRAPH_MEMBERSHIP_PLAN } from "./graph-membership.js";
16
20
  import { operationKey } from "./keys.js";
17
- import { pullBatch } from "./pull.js";
21
+ import { extendRebaseContext, pullBatch } from "./pull.js";
22
+ import { ReplayWalk } from "./replay-walk.js";
18
23
  function commitTimestamp(clock) {
19
24
  const value = clock();
20
25
  if (!(value instanceof Date) || Number.isNaN(value.valueOf()))
@@ -25,19 +30,62 @@ export async function continueRebase(store, repositoryId, operationId, rebaseId,
25
30
  if (!isUuid(operationId))
26
31
  throw new RepositoryServiceError("operation_id must be UUIDv4");
27
32
  const workspace = await store.loadWorkspace(repositoryId);
28
- requireRebase(workspace, rebaseId, expectedHead);
29
- let context;
33
+ const rebase = requireRebase(workspace, rebaseId, expectedHead);
34
+ const saved = savedRebaseContext(workspace);
35
+ const context = await extendRebaseContext(store, workspace, saved);
36
+ let conflicts = workspace.conflicts;
37
+ if (context !== saved) {
38
+ // Commits made while the rebase was open may touch what the remote side changed.
39
+ const rechecked = recheckConflicts(conflicts, conflictsForContext(repositoryId, rebaseId, context));
40
+ conflicts = rechecked.conflicts;
41
+ if (rechecked.dropped.length > 0) {
42
+ const conflictIds = rechecked.dropped.map((conflict) => conflict.conflictId);
43
+ throw new RepositoryServiceError(`Commits made while this rebase was open removed what conflict(s) ${conflictIds.join(", ")} were about, so their recorded choices can no longer be applied; the rebase was not continued and nothing changed.`, {
44
+ code: "repository_rebase_conflicts_dropped",
45
+ details: { rebase_id: rebaseId, conflict_ids: conflictIds },
46
+ nextAction: "Run flywheel repo:rebase:abort, which keeps every local commit and pending edit, then run flywheel repo:pull again so the conflicts are computed from the current history.",
47
+ });
48
+ }
49
+ // A new or reopened conflict needs a resolution before replay.
50
+ if (rechecked.changed) {
51
+ const resolving = conflicts.some((conflict) => conflict.state === "resolved");
52
+ await store.applyWorkspaceAtomic({
53
+ repositoryId,
54
+ expectedLocalHeadCommitId: workspace.localHeadCommitId,
55
+ validateStaging: false,
56
+ expectedStaging: workspace.staging,
57
+ expectedRebase: workspace.rebase,
58
+ expectedConflicts: workspace.conflicts,
59
+ staging: workspace.staging,
60
+ rebase: {
61
+ ...rebase,
62
+ state: resolving ? "resolving" : "open", pendingResolutionDigest: resolving ? resolutionDigest(conflicts) : null,
63
+ },
64
+ conflicts,
65
+ });
66
+ return { repositoryId, rebaseId, head: workspace.localHeadCommitId, state: "open" };
67
+ }
68
+ }
69
+ const open = conflicts.filter((conflict) => conflict.state === "open").length;
70
+ if (open > 0) {
71
+ throw new RepositoryServiceError(`${open} rebase conflict(s) still need a resolution; the rebase was not continued and nothing changed.`, {
72
+ code: "repository_conflicts_unresolved",
73
+ details: { rebase_id: rebaseId, open_conflict_count: open },
74
+ nextAction: "Run flywheel repo:conflicts:list, resolve each open conflict with flywheel repo:conflicts:resolve, then run flywheel repo:rebase:continue again.",
75
+ });
76
+ }
30
77
  let resolutions;
78
+ let graphMembership;
31
79
  try {
32
- context = conflictContext(workspace.conflicts);
33
- resolutions = conflictResolutionByKey(workspace.conflicts);
80
+ resolutions = conflictResolutionByKey(conflicts);
81
+ graphMembership = graphMembershipReplayPlan(conflicts, () => context);
34
82
  }
35
83
  catch (error) {
36
84
  if (error instanceof RepositoryRebaseError)
37
85
  throw new RepositoryServiceError(error.message, { cause: error });
38
86
  throw error;
39
87
  }
40
- const rebased = rebaseLocalCommits(context.localCommits, context.targetHead, rebaseId, resolutions, clock, context.remoteSnapshot, await loadRebaseLatestValues(store, repositoryId, context.localCommits), context.localSnapshot);
88
+ const rebased = rebaseLocalCommits(context.localCommits, context.targetHead, rebaseId, resolutions, clock, context.remoteSnapshot, await loadRebaseLatestValues(store, repositoryId, context.localCommits), context.localSnapshot, graphMembership);
41
89
  const result = await store.applyAtomic(pullBatch({
42
90
  mode: "continue", workspace, context,
43
91
  commits: [...context.remoteCommits, ...rebased.commits],
@@ -47,20 +95,22 @@ export async function continueRebase(store, repositoryId, operationId, rebaseId,
47
95
  }));
48
96
  return { repositoryId, rebaseId, head: result.head.commitId, state: "continued" };
49
97
  }
50
- export async function abortRebase(store, repositoryId, operationId, rebaseId, expectedHead) {
51
- if (!isUuid(operationId))
52
- throw new RepositoryServiceError("operation_id must be UUIDv4");
53
- const workspace = await store.loadWorkspace(repositoryId);
54
- requireRebase(workspace, rebaseId, expectedHead);
55
- let context;
98
+ function savedRebaseContext(workspace) {
56
99
  try {
57
- context = conflictContext(workspace.conflicts);
100
+ return conflictContext(workspace.conflicts);
58
101
  }
59
102
  catch (error) {
60
103
  if (error instanceof RepositoryRebaseError)
61
104
  throw new RepositoryServiceError(error.message, { cause: error });
62
105
  throw error;
63
106
  }
107
+ }
108
+ export async function abortRebase(store, repositoryId, operationId, rebaseId, expectedHead) {
109
+ if (!isUuid(operationId))
110
+ throw new RepositoryServiceError("operation_id must be UUIDv4");
111
+ const workspace = await store.loadWorkspace(repositoryId);
112
+ requireRebase(workspace, rebaseId, expectedHead);
113
+ const context = savedRebaseContext(workspace);
64
114
  const actorId = context.localCommits.at(-1)?.authorId;
65
115
  if (actorId === undefined)
66
116
  throw new RepositoryServiceError("repository rebase is corrupt");
@@ -74,38 +124,7 @@ export function requireRebase(workspace, rebaseId, expectedHead) {
74
124
  if (workspace.rebase === null || workspace.rebase.rebaseId !== rebaseId || workspace.localHeadCommitId !== expectedHead) {
75
125
  throw new RepositoryServiceError("repository_rebase_id_mismatch", { code: "repository_rebase_id_mismatch" });
76
126
  }
77
- }
78
- function referenceSetsFromSnapshot(snapshot) {
79
- try {
80
- const projection = parseRepositoryJson(Buffer.from(snapshot.canonicalBytes).toString("utf8"));
81
- const rows = isRecord(projection) && isRecord(projection.tables)
82
- ? projection.tables.repository_artifact_references
83
- : isRecord(projection) && (projection.format === "flywheel.repository.projection.v1" || projection.format === "flywheel.repository.projection.v2" ||
84
- projection.format === "flywheel.repository.projection.v3" || projection.format === "flywheel.repository.projection.v4")
85
- ? projection.artifact_references : (() => { throw new Error(); })();
86
- const sets = new Map();
87
- for (const row of rows) {
88
- const value = Array.isArray(row)
89
- ? { artifact_id: row[1], owner_type: row[2], owner_id: row[3], order: row[6] }
90
- : isRecord(row)
91
- ? { artifact_id: row.artifact_id, owner_type: row.owner_kind, owner_id: row.owner_id, order: row.reference_order }
92
- : null;
93
- if (value === null || !isUuid(value.artifact_id) || (value.owner_type !== "node" && value.owner_type !== "edge") ||
94
- !isUuid(value.owner_id) || (typeof value.order !== "number" && typeof value.order !== "bigint") ||
95
- (typeof value.order === "number" && (!Number.isSafeInteger(value.order) || value.order < 0)) || value.order < 0)
96
- throw new Error();
97
- const owners = sets.get(value.artifact_id) ?? new Map();
98
- const key = `${value.owner_type}\u0000${value.owner_id}`;
99
- if (owners.has(key))
100
- throw new Error();
101
- owners.set(key, value.order);
102
- sets.set(value.artifact_id, owners);
103
- }
104
- return sets;
105
- }
106
- catch (error) {
107
- throw new RepositoryServiceError("remote artifact references are invalid", { cause: error });
108
- }
127
+ return workspace.rebase;
109
128
  }
110
129
  function artifactPropertiesFromSnapshot(snapshot) {
111
130
  try {
@@ -138,31 +157,15 @@ function artifactPropertiesFromSnapshot(snapshot) {
138
157
  throw new RepositoryServiceError("remote artifact properties are invalid", { cause: error });
139
158
  }
140
159
  }
141
- function applyReferenceOperation(referenceSets, operation) {
142
- const payload = operation.payload;
143
- if (operation.type === "artifact.attach.v1" || operation.type === "artifact.attach.v2") {
144
- const owner = payload.owner;
145
- if (!isRecord(owner) || !isUuid(payload.artifact_id) || !isUuid(owner.owner_id) ||
146
- (owner.owner_type !== "node" && owner.owner_type !== "edge") ||
147
- (typeof payload.order !== "number" && typeof payload.order !== "bigint")) {
148
- throw new RepositoryServiceError("local artifact reference is invalid");
149
- }
150
- const owners = referenceSets.get(payload.artifact_id) ?? new Map();
151
- owners.set(`${owner.owner_type}\u0000${owner.owner_id}`, payload.order);
152
- referenceSets.set(payload.artifact_id, owners);
153
- }
154
- else if (operation.type === "artifact.detach.v1") {
155
- const owner = payload.owner;
156
- if (!isRecord(owner) || !isUuid(payload.artifact_id) || !isUuid(owner.owner_id) ||
157
- (owner.owner_type !== "node" && owner.owner_type !== "edge"))
158
- throw new RepositoryServiceError("local artifact reference is invalid");
159
- referenceSets.get(payload.artifact_id)?.delete(`${owner.owner_type}\u0000${owner.owner_id}`);
160
- }
161
- }
162
- function latestTarget(operation) {
160
+ /** The latest-value field an operation writes, with the digest of its new value. */
161
+ export function latestTarget(operation) {
163
162
  const payload = operation.payload;
164
163
  if (operation.type === "node.field.set.v1")
165
164
  return ["node", payload.node_id, payload.field, payload.new_digest];
165
+ if (operation.type === "artifact.attach.v2")
166
+ return ["artifact", payload.artifact_id, "properties", payload.properties_digest];
167
+ if (operation.type === "edge.add.v1")
168
+ return ["edge", payload.edge_id, "content", payload.content_digest];
166
169
  if (operation.type === "edge.field.set.v1")
167
170
  return ["edge", payload.edge_id, "content", payload.new_digest];
168
171
  if (operation.type === "artifact.metadata.set.v1")
@@ -171,29 +174,80 @@ function latestTarget(operation) {
171
174
  return ["artifact", payload.artifact_id, "properties", payload.new_digest];
172
175
  return undefined;
173
176
  }
174
- export function rebaseLocalCommits(localCommitsNewestFirst, targetHead, rebaseId, resolutions, clock, remoteSnapshot, localLatestValues, localSnapshot) {
177
+ /**
178
+ * The latest values an original local operation recorded, recovered from the
179
+ * local snapshot when its commit kept none. An attachment's properties text is
180
+ * only needed when the attachment creates the artifact, which the store checks,
181
+ * so an attachment whose text is gone replays without it.
182
+ */
183
+ export function localWrites(operation, originalWrites, localTables) {
184
+ if (originalWrites?.size === 0) {
185
+ const target = latestTarget(operation);
186
+ if (!target)
187
+ return new Map();
188
+ try {
189
+ const value = snapshotLatestValue(localTables(), ...target);
190
+ const write = LatestValueWrite.fromMapping({
191
+ owner_type: target[0], owner_id: target[1], field: target[2], value, value_digest: target[3],
192
+ });
193
+ return new Map([[JSON.stringify(write.key), write]]);
194
+ }
195
+ catch (error) {
196
+ if (error instanceof RepositoryStoreError && operation.type === "artifact.attach.v2")
197
+ return new Map();
198
+ const reason = error instanceof Error ? error.message : "local rebase latest value is unavailable";
199
+ throw new RepositoryServiceError(operationFailureMessage(operation, reason), { cause: error });
200
+ }
201
+ }
202
+ const writes = originalWrites?.get(operation.operationId);
203
+ if (writes === undefined) {
204
+ throw new RepositoryServiceError(operationFailureMessage(operation, "original operation latest values are missing"));
205
+ }
206
+ return writes;
207
+ }
208
+ export function rebaseLocalCommits(localCommitsNewestFirst, targetHead, rebaseId, resolutions, clock, remoteSnapshot, localLatestValues, localSnapshot, graphMembership = NO_GRAPH_MEMBERSHIP_PLAN) {
175
209
  let parent = targetHead;
176
210
  const commits = [];
177
211
  const latestValuesByCommit = [];
212
+ const sources = new Map();
178
213
  let localTables;
214
+ const loadLocalTables = () => localTables ??= snapshotTables(localSnapshot);
179
215
  const fieldResolutionHeads = new Map();
180
- const referenceSets = referenceSetsFromSnapshot(remoteSnapshot);
181
216
  const artifactProperties = artifactPropertiesFromSnapshot(remoteSnapshot);
182
- const remoteDepartureNodes = remoteDepartureNodeIds(resolutions);
217
+ const walk = new ReplayWalk({
218
+ localCommitsNewestFirst, resolutions, graphMembership, repositoryId: remoteSnapshot.repositoryId,
219
+ remoteTables: pulledSnapshotTables(remoteSnapshot), localTables: loadLocalTables, rebaseId,
220
+ });
183
221
  for (const original of [...localCommitsNewestFirst].reverse()) {
184
222
  const originalWrites = localLatestValues.get(original.commitId);
185
223
  const serializedWrites = [];
186
224
  const operations = [];
187
- for (const operation of original.operations) {
188
- if (localOperationNodeIds(operation).some(nodeId => remoteDepartureNodes.has(nodeId)))
225
+ for (const step of walk.commitSteps(original)) {
226
+ if (step.kind === "inserted") {
227
+ operations.push(step.operation);
228
+ sources.set(step.operation.operationId, step.original);
229
+ continue;
230
+ }
231
+ if (step.kind === "refused") {
232
+ throw step.restoration === undefined
233
+ ? new RepositoryServiceError(operationFailureMessage(step.original, step.problem))
234
+ : restoreRefusal(step.restoration.edgeId, rebaseId, step.problem, step.details);
235
+ }
236
+ if (step.kind === "restored") {
237
+ const { commit, operation: firstEdit } = step.restoration.firstEdit;
238
+ operations.push(step.operation);
239
+ sources.set(step.operation.operationId, step.original);
240
+ for (const write of localWrites(firstEdit, localLatestValues.get(commit.commitId), loadLocalTables).values()) {
241
+ serializedWrites.push(write.canonicalBytes);
242
+ }
243
+ fieldResolutionHeads.set(JSON.stringify(["edge", step.restoration.edgeId]), firstEdit.payload.new_digest);
189
244
  continue;
245
+ }
246
+ const { original: operation, resolution, rewrite } = step;
190
247
  const key = operationKey(operation);
191
- const resolution = resolutionFor(resolutions, key);
192
248
  const [strategy, manualValue, remoteDigest] = resolution ?? ["local", null, null];
193
- if (strategy === "remote")
194
- continue;
195
- const mapping = { ...operation.toMapping(), operation_id: randomUUID() };
196
- let writes = originalWrites?.get(operation.operationId);
249
+ const mapping = { ...operation.toMapping(), ...rewrite, operation_id: randomUUID() };
250
+ let writes;
197
251
  if (strategy === "manual") {
198
252
  if (manualValue === null)
199
253
  throw new RepositoryServiceError("manual conflict value is missing");
@@ -206,6 +260,9 @@ export function rebaseLocalCommits(localCommitsNewestFirst, targetHead, rebaseId
206
260
  });
207
261
  writes = new Map([[JSON.stringify(write.key), write]]);
208
262
  }
263
+ else {
264
+ writes = localWrites(operation, originalWrites, loadLocalTables);
265
+ }
209
266
  if (resolution !== undefined && (strategy === "local" || strategy === "manual")) {
210
267
  if (operation.type === "artifact.properties.set.v1") {
211
268
  const current = artifactProperties.get(operation.payload.artifact_id);
@@ -231,45 +288,12 @@ export function rebaseLocalCommits(localCommitsNewestFirst, targetHead, rebaseId
231
288
  throw new RepositoryServiceError("field conflict new digest is invalid");
232
289
  fieldResolutionHeads.set(JSON.stringify(key), mapping[newName]);
233
290
  }
234
- if (Object.hasOwn(mapping, "expected_reference_digest")) {
235
- const artifactId = mapping.artifact_id;
236
- if (typeof artifactId !== "string")
237
- throw new RepositoryServiceError("artifact conflict reference is invalid");
238
- const references = referenceSets.get(artifactId) ?? new Map();
239
- mapping.expected_reference_digest = artifactReferenceSetDigest([...references.entries()].map(([owner, order]) => {
240
- const [owner_type, owner_id] = owner.split("\u0000");
241
- return { owner_type: owner_type, owner_id, order };
242
- }));
243
- }
244
291
  }
245
292
  const rebased = RepositoryOperation.fromMapping(mapping);
246
- if (strategy !== "manual" && originalWrites?.size === 0) {
247
- const target = latestTarget(rebased);
248
- if (target) {
249
- try {
250
- localTables ??= snapshotTables(localSnapshot);
251
- const value = snapshotLatestValue(localTables, ...target);
252
- const write = LatestValueWrite.fromMapping({
253
- owner_type: target[0], owner_id: target[1], field: target[2], value, value_digest: target[3],
254
- });
255
- writes = new Map([[JSON.stringify(write.key), write]]);
256
- }
257
- catch (error) {
258
- const reason = error instanceof Error ? error.message : "local rebase latest value is unavailable";
259
- throw new RepositoryServiceError(operationFailureMessage(operation, reason), { cause: error });
260
- }
261
- }
262
- else {
263
- writes = new Map();
264
- }
265
- }
266
- if (writes === undefined) {
267
- throw new RepositoryServiceError(operationFailureMessage(operation, "original operation latest values are missing"));
268
- }
269
293
  operations.push(rebased);
294
+ sources.set(rebased.operationId, operation);
270
295
  for (const write of writes.values())
271
296
  serializedWrites.push(write.canonicalBytes);
272
- applyReferenceOperation(referenceSets, rebased);
273
297
  if (rebased.type.startsWith("artifact.")) {
274
298
  const properties = foldArtifactPropertiesOperation(artifactProperties.get(rebased.payload.artifact_id), rebased, writes);
275
299
  if (properties !== undefined)
@@ -288,7 +312,7 @@ export function rebaseLocalCommits(localCommitsNewestFirst, targetHead, rebaseId
288
312
  latestValuesByCommit.push(serializedWrites);
289
313
  parent = commit.commitId;
290
314
  }
291
- return { commits, latestValuesByCommit };
315
+ return { commits, latestValuesByCommit, sources };
292
316
  }
293
317
  export async function loadRebaseLatestValues(store, repositoryId, commits) {
294
318
  const values = new Map();
@@ -303,19 +327,4 @@ export async function loadRebaseLatestValues(store, repositoryId, commits) {
303
327
  }
304
328
  return values;
305
329
  }
306
- function remoteDepartureNodeIds(resolutions) {
307
- const nodeIds = new Set();
308
- for (const [key, [strategy]] of resolutions) {
309
- if (key.length === 3 && key[0] === "departure" && strategy === "remote")
310
- nodeIds.add(key[1]);
311
- }
312
- return nodeIds;
313
- }
314
- function resolutionFor(resolutions, key) {
315
- for (const [candidate, resolution] of resolutions) {
316
- if (candidate.length === key.length && candidate.every((value, index) => value === key[index]))
317
- return resolution;
318
- }
319
- return undefined;
320
- }
321
330
  //# sourceMappingURL=replay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"replay.js","sourceRoot":"","sources":["../../../../src/local/domain/rebase/replay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replay.js","sourceRoot":"","sources":["../../../../src/local/domain/rebase/replay.ts"],"names":[],"mappings":"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"}