@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.
- package/package.json +1 -1
- package/skills/flywheel-repo/references/repository-commands.md +2 -2
- package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-graph.js +19 -2
- package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-graph.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-repository-snapshot.js +94 -42
- package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-repository-snapshot.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/commands/registry/repository.js +23 -15
- package/src/runtime/vendor/flywheel-cli-dist/commands/registry/repository.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/commands/repository-edit.js +20 -27
- package/src/runtime/vendor/flywheel-cli-dist/commands/repository-edit.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/commands/repository-output.js +72 -0
- package/src/runtime/vendor/flywheel-cli-dist/commands/repository-output.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/commands/types.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/adapter.js +55 -49
- package/src/runtime/vendor/flywheel-cli-dist/local/adapter.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/models/tags.js +3 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/models/tags.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflict-view.js +288 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflict-view.js.map +1 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflicts.js +162 -11
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflicts.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/edge-restoration.js +95 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/edge-restoration.js.map +1 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/graph-membership.js +351 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/graph-membership.js.map +1 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/local-replay.js +6 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/local-replay.js.map +1 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pull.js +26 -18
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pull.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pulled-artifacts.js +126 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pulled-artifacts.js.map +1 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pulled-state.js +412 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pulled-state.js.map +1 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay-walk.js +107 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay-walk.js.map +1 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay.js +139 -130
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/resolve.js +245 -5
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/resolve.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/fs/writer-lock.js +33 -3
- package/src/runtime/vendor/flywheel-cli-dist/local/fs/writer-lock.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/runtime/dispatch.js +14 -15
- package/src/runtime/vendor/flywheel-cli-dist/local/runtime/dispatch.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/runtime/operations/conflicts.js +4 -9
- package/src/runtime/vendor/flywheel-cli-dist/local/runtime/operations/conflicts.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/runtime/recover-departed.js +52 -9
- package/src/runtime/vendor/flywheel-cli-dist/local/runtime/recover-departed.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/runtime/snapshot-diff.js +12 -19
- package/src/runtime/vendor/flywheel-cli-dist/local/runtime/snapshot-diff.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/pending.js +85 -13
- package/src/runtime/vendor/flywheel-cli-dist/local/store/pending.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/artifacts.js +2 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/artifacts.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/tags.js +4 -2
- package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/tags.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/hosted.js +7 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/hosted.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/schema.js +5 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/schema.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/errors.js +5 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/errors.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/sync.js +29 -9
- package/src/runtime/vendor/flywheel-cli-dist/local/store/sync.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/workspace.js +1 -4
- package/src/runtime/vendor/flywheel-cli-dist/local/store/workspace.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/main.js +1 -3
- package/src/runtime/vendor/flywheel-cli-dist/main.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/src/runtime/vendor/flywheel-cli-dist/prebuilds/darwin-x64/node.napi.node +0 -0
- package/src/runtime/vendor/manifest.json +15 -1
|
@@ -1,7 +1,240 @@
|
|
|
1
1
|
import { RepositoryServiceError } from "../errors.js";
|
|
2
|
-
import { isUuid } from "../models/constants.js";
|
|
3
|
-
import { resolutionDigest, resolveConflictBytes } from "./conflicts.js";
|
|
2
|
+
import { isRecord, isUuid } from "../models/constants.js";
|
|
3
|
+
import { conflictContext, conflictMapping, conflictResolutionByKey, graphMembershipReplayPlan, resolutionDigest, resolveConflictBytes } from "./conflicts.js";
|
|
4
4
|
import { RepositoryRebaseError } from "./context.js";
|
|
5
|
+
import { restoreRefusal } from "./edge-restoration.js";
|
|
6
|
+
import { GRAPH_MEMBERSHIP } from "./graph-membership.js";
|
|
7
|
+
import { pulledDepartures } from "./pull.js";
|
|
8
|
+
import { loadRebaseLatestValues, localWrites, rebaseLocalCommits } from "./replay.js";
|
|
9
|
+
import { ReplayWalk } from "./replay-walk.js";
|
|
10
|
+
import { operationKey } from "./keys.js";
|
|
11
|
+
import { TrialGraph } from "../../store/pending.js";
|
|
12
|
+
import { pulledSnapshotTables } from "../../store/snapshot/hosted.js";
|
|
13
|
+
import { snapshotTables } from "../../store/snapshot/validate.js";
|
|
14
|
+
import { RepositoryStoreError } from "../../store/sqlite/errors.js";
|
|
15
|
+
function choiceRefusal(conflict, strategy, problem, details) {
|
|
16
|
+
return new RepositoryServiceError(`Cannot keep the local change in conflict ${conflict.conflictId}: ${problem}`, {
|
|
17
|
+
code: "repository_conflict_choice_unavailable",
|
|
18
|
+
details: { conflict_id: conflict.conflictId, strategy, ...details },
|
|
19
|
+
nextAction: `Keep the pulled change with flywheel repo:conflicts:resolve ${conflict.conflictId} --strategy remote, ` +
|
|
20
|
+
`or abandon the pull with flywheel repo:rebase:abort ${conflict.rebaseId}.`,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* What every choice check of one open rebase reads, built once per
|
|
25
|
+
* repo:conflicts:list or repo:conflicts:resolve: the rebase context, each
|
|
26
|
+
* local commit's stored latest values, both snapshots' tables (decoded when
|
|
27
|
+
* first needed, then shared; replay only reads them), and the copy of the
|
|
28
|
+
* pulled graph the last choice's trial replay runs on. Close it when done.
|
|
29
|
+
*/
|
|
30
|
+
export class ChoiceCheckInputs {
|
|
31
|
+
context;
|
|
32
|
+
localLatestValues;
|
|
33
|
+
trial;
|
|
34
|
+
#remoteTables;
|
|
35
|
+
#localTables;
|
|
36
|
+
constructor(context, localLatestValues) {
|
|
37
|
+
this.context = context;
|
|
38
|
+
this.localLatestValues = localLatestValues;
|
|
39
|
+
this.trial = new TrialGraph(context.remoteSnapshot);
|
|
40
|
+
}
|
|
41
|
+
remoteTables() {
|
|
42
|
+
return this.#remoteTables ??= pulledSnapshotTables(this.context.remoteSnapshot);
|
|
43
|
+
}
|
|
44
|
+
localTables() {
|
|
45
|
+
return this.#localTables ??= snapshotTables(this.context.localSnapshot);
|
|
46
|
+
}
|
|
47
|
+
close() {
|
|
48
|
+
this.trial.close();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* With every conflict decided, runs the replay repo:rebase:continue will run
|
|
53
|
+
* and tries its commits on a copy of the pulled graph (TrialGraph), so a choice
|
|
54
|
+
* is refused whenever continue would fail, not only when a rule predicts it.
|
|
55
|
+
*/
|
|
56
|
+
function trialRefusal(inputs, resolutions, graph, rebaseId, choiceFor) {
|
|
57
|
+
const { context } = inputs;
|
|
58
|
+
let rebased;
|
|
59
|
+
try {
|
|
60
|
+
rebased = rebaseLocalCommits(context.localCommits, context.targetHead, rebaseId, resolutions, () => new Date(), context.remoteSnapshot, inputs.localLatestValues, context.localSnapshot, graph);
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
if (!(error instanceof RepositoryServiceError) && !(error instanceof RepositoryStoreError))
|
|
64
|
+
throw error;
|
|
65
|
+
return { conflict: undefined, operation: undefined, problem: `continue would fail: ${error.message}`, details: { reason: "replay_failed" } };
|
|
66
|
+
}
|
|
67
|
+
const failure = inputs.trial.try(rebased.commits, rebased.latestValuesByCommit);
|
|
68
|
+
if (failure === undefined)
|
|
69
|
+
return undefined;
|
|
70
|
+
const original = failure.operation === undefined ? undefined : rebased.sources.get(failure.operation.operationId);
|
|
71
|
+
if (original === undefined) {
|
|
72
|
+
return { conflict: undefined, operation: undefined, problem: `continue would fail: ${failure.error.message}`, details: { reason: "replay_failed" } };
|
|
73
|
+
}
|
|
74
|
+
// The store names the rebased copy of the operation; its cause holds the plain reason.
|
|
75
|
+
const reason = failure.error.cause instanceof Error ? failure.error.cause.message : failure.error.message;
|
|
76
|
+
return {
|
|
77
|
+
conflict: choiceFor(original), operation: original,
|
|
78
|
+
problem: `local operation ${original.operationId} (${original.type}) cannot be applied on the pulled history: ${reason}`,
|
|
79
|
+
details: { reason: "replay_failed", operation_id: original.operationId },
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/** IDs of the local operations a stored conflict lists. */
|
|
83
|
+
function localOperationIds(conflict) {
|
|
84
|
+
const operations = conflictMapping(conflict).local_operations;
|
|
85
|
+
return Array.isArray(operations)
|
|
86
|
+
? operations.flatMap(operation => isRecord(operation) && typeof operation.operation_id === "string" ? [operation.operation_id] : [])
|
|
87
|
+
: [];
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Walks the local operations as replay will with every recorded choice in
|
|
91
|
+
* `conflicts` (replay-walk.ts) and returns the first refusal, if any, with the
|
|
92
|
+
* recorded choice it comes from. Operations of a conflict still open are walked
|
|
93
|
+
* as if kept locally but never refuse (they are skipped instead); their own
|
|
94
|
+
* check runs once that conflict is resolved. A kept local operation from a
|
|
95
|
+
* commit that stored no latest values takes its text from the local snapshot,
|
|
96
|
+
* as in replay (`localLatestValues` holds each local commit's stored values),
|
|
97
|
+
* so that text must still be there. A node a replayed tombstone leaves
|
|
98
|
+
* tombstoned must also end up free of lineage, as the store checks after the
|
|
99
|
+
* whole batch, and an edge a recorded choice adds (or adds back) must not end
|
|
100
|
+
* up next to an equivalent edge, which the service refuses when it is pushed.
|
|
101
|
+
* Once every conflict is decided, the replay itself is tried (trialRefusal).
|
|
102
|
+
*/
|
|
103
|
+
function replayRefusal(inputs, conflicts, graph, rebaseId) {
|
|
104
|
+
const { context } = inputs;
|
|
105
|
+
const resolved = conflicts.filter(conflict => conflict.state === "resolved");
|
|
106
|
+
// One entry per recorded choice; conflictResolutionByKey validates each recorded resolution.
|
|
107
|
+
const resolutions = new Map();
|
|
108
|
+
const choices = new Map(resolved.map(conflict => {
|
|
109
|
+
const [[key, resolution]] = conflictResolutionByKey([conflict]);
|
|
110
|
+
resolutions.set(key, resolution);
|
|
111
|
+
return [JSON.stringify(key), conflict];
|
|
112
|
+
}));
|
|
113
|
+
const undecided = new Set(conflicts.filter(conflict => conflict.state !== "resolved").flatMap(localOperationIds));
|
|
114
|
+
// The edge work of a graph_membership conflict has its own keys; the recorded choice keeps whatever the plan does not drop.
|
|
115
|
+
const membership = new Map(resolved.filter(conflict => conflictMapping(conflict).kind === GRAPH_MEMBERSHIP)
|
|
116
|
+
.flatMap(conflict => localOperationIds(conflict).map(operationId => [operationId, conflict])));
|
|
117
|
+
const choiceFor = (operation) => choices.get(JSON.stringify(operationKey(operation))) ?? membership.get(operation.operationId);
|
|
118
|
+
const localTables = () => inputs.localTables();
|
|
119
|
+
/** A refusal when replay would read `operation`'s text from the local snapshot and it is gone; `conflict` is the choice it belongs to. */
|
|
120
|
+
const missingText = (operation, commit, conflict) => {
|
|
121
|
+
try {
|
|
122
|
+
localWrites(operation, inputs.localLatestValues.get(commit.commitId), localTables);
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
// Only text missing from the local snapshot is a problem of the choice; anything else fails as it would in continue.
|
|
127
|
+
if (!(error instanceof RepositoryServiceError) || !(error.cause instanceof RepositoryStoreError))
|
|
128
|
+
throw error;
|
|
129
|
+
return {
|
|
130
|
+
conflict, operation,
|
|
131
|
+
problem: `the value that local operation ${operation.operationId} wrote is no longer stored in this checkout, so it cannot be replayed.`,
|
|
132
|
+
details: { reason: "local_value_unavailable", operation_id: operation.operationId },
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
const walk = new ReplayWalk({
|
|
137
|
+
localCommitsNewestFirst: context.localCommits, resolutions, graphMembership: graph,
|
|
138
|
+
repositoryId: context.remoteSnapshot.repositoryId, remoteTables: inputs.remoteTables(), localTables, rebaseId,
|
|
139
|
+
departures: new Map(pulledDepartures(context.remoteSnapshot.repositoryId, context.remoteCommits)
|
|
140
|
+
.map(({ nodeId, targetRepositoryId }) => [nodeId, targetRepositoryId])),
|
|
141
|
+
});
|
|
142
|
+
const tombstones = new Map();
|
|
143
|
+
const addedEdges = new Map();
|
|
144
|
+
for (const commit of [...context.localCommits].reverse()) {
|
|
145
|
+
for (const step of walk.commitSteps(commit)) {
|
|
146
|
+
if (step.kind === "inserted")
|
|
147
|
+
continue;
|
|
148
|
+
if (step.kind === "restored") {
|
|
149
|
+
const { commit: editCommit, operation: firstEdit } = step.restoration.firstEdit;
|
|
150
|
+
const refusal = missingText(firstEdit, editCommit, choices.get(JSON.stringify(["edge", step.restoration.edgeId])));
|
|
151
|
+
if (refusal !== undefined)
|
|
152
|
+
return refusal;
|
|
153
|
+
addedEdges.set(step.restoration.edgeId, {
|
|
154
|
+
conflict: choices.get(JSON.stringify(["edge", step.restoration.edgeId])), operation: firstEdit, restored: true,
|
|
155
|
+
});
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
if (step.kind === "refused") {
|
|
159
|
+
if (undecided.has(step.original.operationId))
|
|
160
|
+
continue;
|
|
161
|
+
if (step.restoration === undefined) {
|
|
162
|
+
return { conflict: choiceFor(step.original), operation: step.original, problem: step.problem, details: step.details };
|
|
163
|
+
}
|
|
164
|
+
const { edgeId } = step.restoration;
|
|
165
|
+
return {
|
|
166
|
+
conflict: choices.get(JSON.stringify(["edge", edgeId])), operation: step.original,
|
|
167
|
+
problem: `edge ${edgeId} cannot be restored: ${step.problem}`, details: step.details,
|
|
168
|
+
error: restoreRefusal(edgeId, rebaseId, step.problem, step.details),
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
const { original, resolution } = step;
|
|
172
|
+
// A manual choice writes its own text, and an open conflict's operations are checked once it is resolved.
|
|
173
|
+
if (resolution?.[0] !== "manual" && !undecided.has(original.operationId)) {
|
|
174
|
+
const refusal = missingText(original, commit, choiceFor(original));
|
|
175
|
+
if (refusal !== undefined)
|
|
176
|
+
return refusal;
|
|
177
|
+
}
|
|
178
|
+
if (original.type === "node.tombstone.v1" && !undecided.has(original.operationId)) {
|
|
179
|
+
tombstones.set(original.payload.node_id, { conflict: choiceFor(original), operation: original });
|
|
180
|
+
}
|
|
181
|
+
const keeper = choiceFor(original);
|
|
182
|
+
if (original.type === "edge.add.v1" && keeper !== undefined && !undecided.has(original.operationId)) {
|
|
183
|
+
addedEdges.set(original.payload.edge_id, { conflict: keeper, operation: original, restored: false });
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
for (const [nodeId, { conflict, operation }] of tombstones) {
|
|
188
|
+
const blocked = walk.state.tombstoneBlockedByLineage(nodeId);
|
|
189
|
+
if (blocked?.action === "refuse")
|
|
190
|
+
return { conflict, operation, problem: blocked.problem, details: blocked.details };
|
|
191
|
+
}
|
|
192
|
+
for (const [edgeId, { conflict, operation, restored }] of addedEdges) {
|
|
193
|
+
const equivalent = walk.state.equivalentEdge(edgeId);
|
|
194
|
+
if (equivalent === undefined)
|
|
195
|
+
continue;
|
|
196
|
+
const problem = `edge ${equivalent} already connects the same nodes with the same relation where replay adds edge ${edgeId}`;
|
|
197
|
+
const details = { reason: "duplicate_edge", edge_id: edgeId, equivalent_edge_id: equivalent };
|
|
198
|
+
return restored
|
|
199
|
+
? { conflict, operation, problem: `edge ${edgeId} cannot be restored: ${problem}`, details, error: restoreRefusal(edgeId, rebaseId, problem, details) }
|
|
200
|
+
: { conflict, operation, problem, details };
|
|
201
|
+
}
|
|
202
|
+
return conflicts.every(conflict => conflict.state === "resolved")
|
|
203
|
+
? trialRefusal(inputs, resolutions, graph, rebaseId, choiceFor)
|
|
204
|
+
: undefined;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* The conflict with `strategy` recorded, after the checks that refuse a choice
|
|
208
|
+
* continue could not replay together with the choices already recorded in
|
|
209
|
+
* `conflicts`: a graph_membership choice that needs an unavailable node or
|
|
210
|
+
* containment, an edge the pull removed that cannot be added back, or kept
|
|
211
|
+
* local operations whose preconditions the replayed state breaks (see
|
|
212
|
+
* pulled-state.ts) or whose text is no longer stored, including a choice here
|
|
213
|
+
* that stops another recorded choice, or a local operation in no conflict,
|
|
214
|
+
* from replaying; and, once every conflict is decided, any failure the replay
|
|
215
|
+
* itself meets on a copy of the pulled graph (`inputs.trial`). `inputs` is
|
|
216
|
+
* built once per list or resolve and shared by every check.
|
|
217
|
+
* Refusals are RepositoryServiceErrors with a code; the conflict itself is not
|
|
218
|
+
* changed.
|
|
219
|
+
*/
|
|
220
|
+
export function checkedResolution(conflict, strategy, manualValue, conflicts, inputs) {
|
|
221
|
+
const { canonicalBytes } = resolveConflictBytes(conflict, strategy, manualValue);
|
|
222
|
+
const resolved = { ...conflict, state: "resolved", canonicalBytes };
|
|
223
|
+
const updated = conflicts.map(other => other.conflictId === conflict.conflictId ? resolved : other);
|
|
224
|
+
const graph = graphMembershipReplayPlan(updated.filter(other => other.state === "resolved"), () => inputs.context);
|
|
225
|
+
const refusal = replayRefusal(inputs, updated, graph, conflict.rebaseId);
|
|
226
|
+
if (refusal === undefined)
|
|
227
|
+
return resolved;
|
|
228
|
+
if (refusal.conflict?.conflictId === conflict.conflictId)
|
|
229
|
+
throw refusal.error ?? choiceRefusal(conflict, strategy, refusal.problem, refusal.details);
|
|
230
|
+
if (refusal.conflict !== undefined) {
|
|
231
|
+
throw choiceRefusal(conflict, strategy, `choosing ${strategy} here stops the choice recorded for conflict ${refusal.conflict.conflictId} from replaying: ${refusal.problem}`, { ...refusal.details, blocked_conflict_id: refusal.conflict.conflictId });
|
|
232
|
+
}
|
|
233
|
+
if (refusal.operation === undefined) {
|
|
234
|
+
throw choiceRefusal(conflict, strategy, `with this choice and the choices already recorded, ${refusal.problem}`, refusal.details);
|
|
235
|
+
}
|
|
236
|
+
throw choiceRefusal(conflict, strategy, `with this choice, local operation ${refusal.operation.operationId} (${refusal.operation.type}), which is in no conflict, cannot replay: ${refusal.problem}`, { ...refusal.details, blocked_operation_id: refusal.operation.operationId });
|
|
237
|
+
}
|
|
5
238
|
export async function resolveConflict(store, repositoryId, operationId, conflictId, strategy, manualValue) {
|
|
6
239
|
if (!isUuid(operationId))
|
|
7
240
|
throw new RepositoryServiceError("operation_id must be UUIDv4");
|
|
@@ -12,16 +245,23 @@ export async function resolveConflict(store, repositoryId, operationId, conflict
|
|
|
12
245
|
if (conflict === undefined || conflict.rebaseId !== workspace.rebase.rebaseId) {
|
|
13
246
|
throw new RepositoryServiceError("repository conflict is not active");
|
|
14
247
|
}
|
|
15
|
-
let
|
|
248
|
+
let resolved;
|
|
16
249
|
try {
|
|
17
|
-
|
|
250
|
+
// A choice that cannot be replayed is refused here, leaving the conflict open.
|
|
251
|
+
const context = conflictContext(workspace.conflicts);
|
|
252
|
+
const inputs = new ChoiceCheckInputs(context, await loadRebaseLatestValues(store, repositoryId, context.localCommits));
|
|
253
|
+
try {
|
|
254
|
+
resolved = checkedResolution(conflict, strategy, manualValue, workspace.conflicts, inputs);
|
|
255
|
+
}
|
|
256
|
+
finally {
|
|
257
|
+
inputs.close();
|
|
258
|
+
}
|
|
18
259
|
}
|
|
19
260
|
catch (error) {
|
|
20
261
|
if (error instanceof RepositoryRebaseError)
|
|
21
262
|
throw new RepositoryServiceError(error.message, { cause: error });
|
|
22
263
|
throw error;
|
|
23
264
|
}
|
|
24
|
-
const resolved = { ...conflict, state: "resolved", canonicalBytes };
|
|
25
265
|
const conflicts = workspace.conflicts.map(candidate => candidate.conflictId === conflictId ? resolved : candidate);
|
|
26
266
|
const rebase = {
|
|
27
267
|
repositoryId, rebaseId: workspace.rebase.rebaseId, state: "resolving",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../../src/local/domain/rebase/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAExE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAwB,EACxB,YAAoB,EACpB,WAAmB,EACnB,UAAkB,EAClB,QAAgB,EAChB,WAA0B;IAE1B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QAAE,MAAM,IAAI,sBAAsB,CAAC,6BAA6B,CAAC,CAAC;IAC1F,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAC1D,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI;QAAE,MAAM,IAAI,sBAAsB,CAAC,iCAAiC,CAAC,CAAC;IACnG,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;IAC5F,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC9E,MAAM,IAAI,sBAAsB,CAAC,mCAAmC,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,cAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,cAAc,GAAG,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,qBAAqB;YAAE,MAAM,IAAI,sBAAsB,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9G,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAAmB,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;IACpF,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnH,MAAM,MAAM,GAAgB;QAC1B,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW;QACrE,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,uBAAuB,EAAE,gBAAgB,CAAC,SAAS,CAAC;KAClG,CAAC;IACF,MAAM,KAAK,GAAyB;QAClC,YAAY,EAAE,eAAe,EAAE,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,CAAC,MAAM;QAClF,yBAAyB,EAAE,SAAS,CAAC,iBAAiB;QACtD,eAAe,EAAE,KAAK;QACtB,iBAAiB,EAAE,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS;KACtF,CAAC;IACF,MAAM,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../../src/local/domain/rebase/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { realpathSync } from "node:fs";
|
|
3
3
|
import { basename, dirname, join, resolve } from "node:path";
|
|
4
|
+
import { setTimeout as delay } from "node:timers/promises";
|
|
4
5
|
import { close, fchmod, flockExclusiveNonblocking, flockUnlock, fstat, mkdirAt, openDirectory, openDirectoryAt, openLockAt, statAt, } from "./native.js";
|
|
5
6
|
import { RetainedRepositoryState } from "./state.js";
|
|
6
7
|
import { RepositoryRuntimeStateError, RepositoryWriteGateBusyError } from "../errors.js";
|
|
@@ -9,6 +10,9 @@ const REGULAR_FILE_TYPE = 0o100000;
|
|
|
9
10
|
const FILE_TYPE_MASK = 0o170000;
|
|
10
11
|
const PRIVATE_DIRECTORY_MODE = 0o700;
|
|
11
12
|
const PRIVATE_FILE_MODE = 0o600;
|
|
13
|
+
/** How long a repository mutation waits for another command's writer lock before failing with `repository_locked`. */
|
|
14
|
+
const WRITER_WAIT_MS = 10_000;
|
|
15
|
+
const WRITER_RETRY_DELAY_MS = 50;
|
|
12
16
|
function invalidLock(cause) {
|
|
13
17
|
return cause === undefined
|
|
14
18
|
? new Error("repository runtime lock is invalid")
|
|
@@ -84,7 +88,31 @@ function acquireLock(fd) {
|
|
|
84
88
|
throw error;
|
|
85
89
|
}
|
|
86
90
|
}
|
|
87
|
-
/**
|
|
91
|
+
/**
|
|
92
|
+
* Retries the nonblocking lock until it is free or the caller's shared monotonic deadline passes.
|
|
93
|
+
* The deadline bounds only the waiting: a failed attempt at or after it gives up, but an attempt
|
|
94
|
+
* that finds the lock free always takes it, so a lock released during the last retry delay is used
|
|
95
|
+
* rather than refused.
|
|
96
|
+
*/
|
|
97
|
+
async function acquireLockBefore(fd, deadline) {
|
|
98
|
+
for (;;) {
|
|
99
|
+
try {
|
|
100
|
+
flockExclusiveNonblocking(fd);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
if (!hasCode(error, "EAGAIN", "EWOULDBLOCK"))
|
|
105
|
+
throw error;
|
|
106
|
+
if (performance.now() >= deadline)
|
|
107
|
+
throw new RepositoryWriteGateBusyError(error);
|
|
108
|
+
}
|
|
109
|
+
await delay(WRITER_RETRY_DELAY_MS);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Acquires the run/writer-file locks on an already-open state for one mutation and completes it before releasing,
|
|
114
|
+
* leaving open/close to the caller. Both locks share one wait deadline, and identities are rechecked after waiting.
|
|
115
|
+
*/
|
|
88
116
|
export async function withWriterLock(state, callback) {
|
|
89
117
|
let stateLocked = false;
|
|
90
118
|
let runFd = -1;
|
|
@@ -96,16 +124,18 @@ export async function withWriterLock(state, callback) {
|
|
|
96
124
|
let operationError;
|
|
97
125
|
let result;
|
|
98
126
|
try {
|
|
99
|
-
|
|
127
|
+
const deadline = performance.now() + WRITER_WAIT_MS;
|
|
128
|
+
await acquireLockBefore(state.stateFd, deadline);
|
|
100
129
|
stateLocked = true;
|
|
101
130
|
runFd = openPrivateRun(state);
|
|
102
131
|
runIdentity = lockIdentity(fstat(runFd));
|
|
103
132
|
const writer = openPrivateLock(runFd, "writer.lock");
|
|
104
133
|
writerFd = writer.fd;
|
|
105
134
|
writerIdentity = writer.identity;
|
|
106
|
-
|
|
135
|
+
await acquireLockBefore(writerFd, deadline);
|
|
107
136
|
writerLocked = true;
|
|
108
137
|
assertRegularLockIdentity(runFd, "writer.lock", writerIdentity);
|
|
138
|
+
assertDirectoryIdentity(state.stateFd, "run", runIdentity);
|
|
109
139
|
state.assertValid();
|
|
110
140
|
result = await callback(state);
|
|
111
141
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer-lock.js","sourceRoot":"","sources":["../../../src/local/fs/writer-lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"writer-lock.js","sourceRoot":"","sources":["../../../src/local/fs/writer-lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
2
|
import { setTimeout as delay } from "node:timers/promises";
|
|
3
|
-
import {
|
|
3
|
+
import { isUuid } from "../domain/models/constants.js";
|
|
4
4
|
import { RetainedRepositoryState } from "../fs/state.js";
|
|
5
5
|
import { withRepositoryWriter, withWriterLock } from "../fs/writer-lock.js";
|
|
6
6
|
import { RepositoryWriteGateBusyError } from "../errors.js";
|
|
@@ -20,8 +20,8 @@ import { randomUUID } from "node:crypto";
|
|
|
20
20
|
import { applyPreparedArtifactDownload, discardPreparedArtifactDownload, prepareArtifactDownload, readInstalledPreparedArtifactDownload, } from "./remote/artifact-download.js";
|
|
21
21
|
const MUTATIONS = {
|
|
22
22
|
stage: true, "conflicts:resolve": true, "rebase:continue": true, "rebase:abort": true,
|
|
23
|
-
"staging:discard": true,
|
|
24
|
-
pull: true, push: true, purge: true, revert: true, backup: true, restore: true, commit: true,
|
|
23
|
+
"staging:discard": true, edit: true,
|
|
24
|
+
pull: true, push: true, purge: true, revert: true, backup: true, restore: true, commit: true,
|
|
25
25
|
};
|
|
26
26
|
/** Backoff between read-path retries once a `repository_busy` timeout is observed; one entry per retry. */
|
|
27
27
|
const READ_BUSY_RETRY_DELAYS_MS = [250, 1000];
|
|
@@ -226,21 +226,20 @@ async function execute(state, operation, args, options, writerHeld, runtimeIdent
|
|
|
226
226
|
const store = new SQLiteRepositoryStore(state, objects);
|
|
227
227
|
const context = {
|
|
228
228
|
state, objects, store, diagnostics, repositoryId: identity.repositoryId, clientId: identity.clientId,
|
|
229
|
-
pendingSnapshot: options.pendingCapture === undefined ? undefined : Promise.resolve(options.pendingCapture),
|
|
230
229
|
};
|
|
231
230
|
let result;
|
|
232
|
-
if (operation === "
|
|
233
|
-
if (Object.keys(args).length !== 0)
|
|
231
|
+
if (operation === "edit") {
|
|
232
|
+
if (Object.keys(args).length !== 0 || options.edit === undefined)
|
|
234
233
|
throw new Error("repository_command_request_invalid");
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
result =
|
|
234
|
+
// Capture, build, object installation, and staging all run under this one writer lock, so the
|
|
235
|
+
// builder reads the current graph and the stage step appends against that same captured workspace.
|
|
236
|
+
const capture = await store.capturePending(identity.repositoryId);
|
|
237
|
+
context.pendingSnapshot = Promise.resolve(capture);
|
|
238
|
+
const stageArguments = await options.edit({
|
|
239
|
+
capture,
|
|
240
|
+
installObject: (digest, bytes) => store.installObject(identity.repositoryId, digest, bytes),
|
|
241
|
+
});
|
|
242
|
+
result = await dispatchLocalOperation(context, "stage", stageArguments, runtimeIdentity);
|
|
244
243
|
}
|
|
245
244
|
else if (operation === "artifact_download") {
|
|
246
245
|
if (prepared === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../../src/local/runtime/dispatch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../../src/local/runtime/dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { canonicalBytes, parseRepositoryJson } from "../../domain/models/encoding.js";
|
|
3
|
-
import {
|
|
3
|
+
import { describeConflicts } from "../../domain/rebase/conflict-view.js";
|
|
4
4
|
import { resolveConflict } from "../../domain/rebase/resolve.js";
|
|
5
5
|
import { abortRebase, continueRebase } from "../../domain/rebase/replay.js";
|
|
6
6
|
import { requireExactArguments } from "./shared.js";
|
|
7
|
-
function conflictMapping(conflict) {
|
|
8
|
-
const payload = parseRepositoryJson(new TextDecoder("utf-8", { fatal: true }).decode(conflict.canonicalBytes));
|
|
9
|
-
if (!canonicalBytes(payload).equals(Buffer.from(conflict.canonicalBytes)))
|
|
10
|
-
throw new Error("repository conflict is corrupt");
|
|
11
|
-
return { ...payload, conflict_id: conflict.conflictId, rebase_id: conflict.rebaseId, state: conflict.state };
|
|
12
|
-
}
|
|
13
7
|
export async function conflictsList(context, arguments_) {
|
|
14
8
|
requireExactArguments(arguments_, []);
|
|
15
|
-
return { conflicts:
|
|
9
|
+
return { conflicts: await describeConflicts(context.store, context.repositoryId) };
|
|
16
10
|
}
|
|
17
11
|
export async function conflictsShow(context, arguments_) {
|
|
18
12
|
requireExactArguments(arguments_, ["conflict_id"]);
|
|
19
13
|
if (typeof arguments_.conflict_id !== "string")
|
|
20
14
|
throw new Error("invalid internal operation arguments");
|
|
21
|
-
|
|
15
|
+
const [conflict] = await describeConflicts(context.store, context.repositoryId, arguments_.conflict_id);
|
|
16
|
+
return { conflict };
|
|
22
17
|
}
|
|
23
18
|
export async function conflictsResolve(context, arguments_) {
|
|
24
19
|
requireExactArguments(arguments_, ["conflict_id", "manual_value", "operation_id", "strategy"]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conflicts.js","sourceRoot":"","sources":["../../../../src/local/runtime/operations/conflicts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"conflicts.js","sourceRoot":"","sources":["../../../../src/local/runtime/operations/conflicts.ts"],"names":[],"mappings":"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"}
|