@cat-factory/worker 0.175.0 → 0.177.0
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/dist/infrastructure/config/execution.d.ts +1 -1
- package/dist/infrastructure/config/execution.d.ts.map +1 -1
- package/dist/infrastructure/config/execution.js +12 -3
- package/dist/infrastructure/config/execution.js.map +1 -1
- package/dist/infrastructure/containers/CloudflareContainerTransport.d.ts +15 -1
- package/dist/infrastructure/containers/CloudflareContainerTransport.d.ts.map +1 -1
- package/dist/infrastructure/containers/CloudflareContainerTransport.js +73 -17
- package/dist/infrastructure/containers/CloudflareContainerTransport.js.map +1 -1
- package/dist/infrastructure/containers/DeployContainer.d.ts +2 -20
- package/dist/infrastructure/containers/DeployContainer.d.ts.map +1 -1
- package/dist/infrastructure/containers/DeployContainer.js +7 -56
- package/dist/infrastructure/containers/DeployContainer.js.map +1 -1
- package/dist/infrastructure/containers/ExecutionContainer.d.ts +2 -51
- package/dist/infrastructure/containers/ExecutionContainer.d.ts.map +1 -1
- package/dist/infrastructure/containers/ExecutionContainer.js +9 -93
- package/dist/infrastructure/containers/ExecutionContainer.js.map +1 -1
- package/dist/infrastructure/containers/RunContainer.d.ts +150 -0
- package/dist/infrastructure/containers/RunContainer.d.ts.map +1 -0
- package/dist/infrastructure/containers/RunContainer.js +229 -0
- package/dist/infrastructure/containers/RunContainer.js.map +1 -0
- package/dist/infrastructure/containers/stopCause.d.ts +240 -0
- package/dist/infrastructure/containers/stopCause.d.ts.map +1 -0
- package/dist/infrastructure/containers/stopCause.js +313 -0
- package/dist/infrastructure/containers/stopCause.js.map +1 -0
- package/dist/infrastructure/env.d.ts +10 -0
- package/dist/infrastructure/env.d.ts.map +1 -1
- package/dist/infrastructure/env.js.map +1 -1
- package/dist/infrastructure/repositories/D1BinaryArtifactMetadataStore.d.ts +4 -1
- package/dist/infrastructure/repositories/D1BinaryArtifactMetadataStore.d.ts.map +1 -1
- package/dist/infrastructure/repositories/D1BinaryArtifactMetadataStore.js +68 -5
- package/dist/infrastructure/repositories/D1BinaryArtifactMetadataStore.js.map +1 -1
- package/dist/infrastructure/repositories/D1DocumentRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/D1DocumentRepository.js +5 -3
- package/dist/infrastructure/repositories/D1DocumentRepository.js.map +1 -1
- package/dist/infrastructure/repositories/chunk.d.ts +10 -2
- package/dist/infrastructure/repositories/chunk.d.ts.map +1 -1
- package/dist/infrastructure/repositories/chunk.js +13 -4
- package/dist/infrastructure/repositories/chunk.js.map +1 -1
- package/dist/infrastructure/workflows/ExecutionWorkflow.d.ts.map +1 -1
- package/dist/infrastructure/workflows/ExecutionWorkflow.js +17 -8
- package/dist/infrastructure/workflows/ExecutionWorkflow.js.map +1 -1
- package/migrations/0087_document_renders.sql +28 -0
- package/package.json +18 -18
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
// Why a per-run container went away, recorded by the container itself and read back by the
|
|
2
|
+
// transport when a job poll 404s. A 404 alone cannot tell an OOM apart from the platform
|
|
3
|
+
// reclaiming a sandbox, and the two need different recoveries: a crash that repeats is
|
|
4
|
+
// deterministic and should end the run, while infrastructure churn should be ridden out.
|
|
5
|
+
// Shared by both per-run container classes (agent + deploy) so the key, the windows and the
|
|
6
|
+
// attribution rule cannot drift between them.
|
|
7
|
+
/** DO-storage key holding the {@link StopCauseRecord} of the most recent self-observed stop. */
|
|
8
|
+
export const STOP_CAUSE_KEY = 'containerStopCause';
|
|
9
|
+
/**
|
|
10
|
+
* How long after each cause a 404 poll may still be attributed to it.
|
|
11
|
+
*
|
|
12
|
+
* They differ because the two causes are observed at different distances from the poll that
|
|
13
|
+
* finds the container gone. A rollout drain interrupts an IN-FLIGHT poll, so the very next one
|
|
14
|
+
* lands seconds later. An idle reclaim happens precisely because polling stopped, so the poll
|
|
15
|
+
* that discovers it arrives however long the gap outran the idle window: minutes, not seconds.
|
|
16
|
+
* A window sized for the rollout case would therefore read every real idle reclaim as a crash,
|
|
17
|
+
* which is the finding itself.
|
|
18
|
+
*
|
|
19
|
+
* The window is a BACKSTOP, not the primary bound on what a record may excuse. What actually
|
|
20
|
+
* scopes it is the pair of rules around it: {@link clearStopCause} drops the record the moment a
|
|
21
|
+
* new job is accepted, and {@link takeStopCause} lets exactly one job spend it. So the wide
|
|
22
|
+
* `idle` window buys the poll gap it exists for without also handing the next step's crash an
|
|
23
|
+
* alibi.
|
|
24
|
+
*/
|
|
25
|
+
export const ATTRIBUTION_WINDOW_MS = {
|
|
26
|
+
rollout: 120_000,
|
|
27
|
+
idle: 30 * 60_000,
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* How long a stop this container could NOT attribute (a crash, an OOM kill) may still explain a
|
|
31
|
+
* 404 poll, i.e. the window governing a record that carries only an {@link ContainerExitState}.
|
|
32
|
+
*
|
|
33
|
+
* The same reasoning as the `idle` window, and deliberately the same number: what separates the
|
|
34
|
+
* death from the poll that discovers it is the POLL GAP, and a crash is discovered by the same
|
|
35
|
+
* ~15s tick an idle reclaim is, stretched by whatever delayed the driver. Sizing this to the
|
|
36
|
+
* rollout case instead would read every crash discovered after a re-drive as unexplained, which
|
|
37
|
+
* is the class this record exists to explain.
|
|
38
|
+
*
|
|
39
|
+
* Wide is affordable here for a reason the cause windows do not share: an exit state changes no
|
|
40
|
+
* verdict. It is attached to the failure `detail`, so the cost of over-attributing is a
|
|
41
|
+
* misleading sentence, never a wrongly-extended recovery budget.
|
|
42
|
+
*/
|
|
43
|
+
export const EXIT_ATTRIBUTION_WINDOW_MS = 30 * 60_000;
|
|
44
|
+
/**
|
|
45
|
+
* How far apart two hook calls may be and still be treated as observations of ONE stop, i.e. the
|
|
46
|
+
* bound on {@link recordStopCause}'s merge.
|
|
47
|
+
*
|
|
48
|
+
* The merge exists for a single reason: `onError` and `onStop` are two views of the same death,
|
|
49
|
+
* fired by the runtime within moments of each other. Anything older is a DIFFERENT, earlier
|
|
50
|
+
* stop, and merging onto it is not conservative, it is destructive twice over: the new
|
|
51
|
+
* observation inherits the old record's `at`, so it is born already aged, and both halves then
|
|
52
|
+
* fall out of their own attribution windows and explain nothing. A record that is 40 minutes old
|
|
53
|
+
* would silently swallow the crash that just happened.
|
|
54
|
+
*
|
|
55
|
+
* Sized generously against what it models (two hooks, milliseconds apart) and far below the
|
|
56
|
+
* narrowest attribution window, so it cannot be the thing that decides an attribution: what a
|
|
57
|
+
* merge may do is complete an account of one stop, never date it.
|
|
58
|
+
*/
|
|
59
|
+
export const STOP_MERGE_WINDOW_MS = 60_000;
|
|
60
|
+
/**
|
|
61
|
+
* The message the base container class surfaces when the RUNTIME (not the workload) stopped a
|
|
62
|
+
* container: a deploy draining the old version. Its own exit-code parser is keyed on the plain
|
|
63
|
+
* "runtime signalled the container to exit:" form and does not recognise the rollout wording,
|
|
64
|
+
* which is why that case reaches `onError` at all.
|
|
65
|
+
*/
|
|
66
|
+
export function isRolloutSignal(error) {
|
|
67
|
+
const message = error instanceof Error ? error.message : typeof error === 'string' ? error : String(error);
|
|
68
|
+
return /new version rollout|runtime signalled the container to exit/i.test(message);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* What a container should record about a stop the runtime just reported, or undefined when it
|
|
72
|
+
* should record nothing.
|
|
73
|
+
*
|
|
74
|
+
* Two rules, both about what the stop MEANS rather than what it says:
|
|
75
|
+
*
|
|
76
|
+
* - A `runtime_signal` 143 is the rollout drain surfacing through this hook instead of (or as
|
|
77
|
+
* well as) `onError`, depending on the runtime version, so it names the same cause.
|
|
78
|
+
* - A stop the container ASKED for records nothing at all. Its idle reclaim and its shutdown RPC
|
|
79
|
+
* both work by signalling the container, so the exit that comes back is this container's own
|
|
80
|
+
* request echoed at it (escalating to a SIGKILL 137 when the workload does not exit inside the
|
|
81
|
+
* grace period), not an observation of how anything died. Recorded anyway, it is read back as
|
|
82
|
+
* the container's cause of death and reported to the operator as "most often an out-of-memory
|
|
83
|
+
* kill" underneath a verdict that says the platform reclaimed an idle container. The cause the
|
|
84
|
+
* caller recorded when it decided to stop is the whole account, and it is already stored.
|
|
85
|
+
*/
|
|
86
|
+
export function observationForStop(params, selfInitiated) {
|
|
87
|
+
if (selfInitiated)
|
|
88
|
+
return undefined;
|
|
89
|
+
const rollout = params.reason === 'runtime_signal' && params.exitCode === 143;
|
|
90
|
+
return {
|
|
91
|
+
...(rollout ? { cause: 'rollout' } : {}),
|
|
92
|
+
exit: { code: params.exitCode, reason: params.reason },
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Whether a value read back out of DO storage is still a cause this build knows. Derived from
|
|
97
|
+
* the window table's own keys rather than restated, so retiring a cause fails the build here
|
|
98
|
+
* instead of leaving a member the predicate silently keeps admitting.
|
|
99
|
+
*/
|
|
100
|
+
function isContainerStopCause(value) {
|
|
101
|
+
return typeof value === 'string' && Object.hasOwn(ATTRIBUTION_WINDOW_MS, value);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Whether a value read back out of DO storage is an exit state this build can render.
|
|
105
|
+
*
|
|
106
|
+
* The `reason` union is closed and PERSISTED, so an unknown member is possible after a runtime
|
|
107
|
+
* bump; it degrades to "no exit state recorded" rather than being rendered as a bare string,
|
|
108
|
+
* because a reason nobody has worded says less than the exit code alone already does.
|
|
109
|
+
*/
|
|
110
|
+
function isContainerExitState(value) {
|
|
111
|
+
if (!value || typeof value !== 'object')
|
|
112
|
+
return false;
|
|
113
|
+
const { code, reason } = value;
|
|
114
|
+
return typeof code === 'number' && (reason === 'exit' || reason === 'runtime_signal');
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* What a stored record still explains at `now`, or an EMPTY observation when it explains
|
|
118
|
+
* nothing.
|
|
119
|
+
*
|
|
120
|
+
* An empty observation covers three things that all mean the same to the caller: nothing was
|
|
121
|
+
* recorded, the record outlived its window (the container recovered and ran on, so a later death
|
|
122
|
+
* is its own), or the record names a cause this build no longer has. The last is possible
|
|
123
|
+
* because the record is PERSISTED and the vocabulary is closed: a deploy that retires a member
|
|
124
|
+
* leaves rows behind. All three land on the caller's existing default, reporting the eviction
|
|
125
|
+
* as a `crash`, which is the honest reading of "no attribution" and the conservative one:
|
|
126
|
+
* it costs a run one restart of its recovery budget, never a wrongly-extended one.
|
|
127
|
+
*
|
|
128
|
+
* The two halves are attributed INDEPENDENTLY, on their own windows: a record can be too old to
|
|
129
|
+
* excuse the eviction as churn while still being the only account of how the container died, and
|
|
130
|
+
* dropping the exit state with the cause would throw away the diagnostic to protect a budget the
|
|
131
|
+
* diagnostic never touches.
|
|
132
|
+
*/
|
|
133
|
+
export function attributeStopCause(record, now, claimant) {
|
|
134
|
+
if (!record || typeof record !== 'object')
|
|
135
|
+
return {};
|
|
136
|
+
const { cause, exit, at, claimedBy } = record;
|
|
137
|
+
if (typeof at !== 'number')
|
|
138
|
+
return {};
|
|
139
|
+
// Spent on somebody else's eviction. Only the job that claimed it may read it back, which is
|
|
140
|
+
// what lets a replay be idempotent without letting one reclaim excuse two deaths.
|
|
141
|
+
if (claimedBy !== undefined && claimedBy !== claimant)
|
|
142
|
+
return {};
|
|
143
|
+
const age = now - at;
|
|
144
|
+
return {
|
|
145
|
+
...(isContainerStopCause(cause) && age <= ATTRIBUTION_WINDOW_MS[cause] ? { cause } : {}),
|
|
146
|
+
...(isContainerExitState(exit) && age <= EXIT_ATTRIBUTION_WINDOW_MS ? { exit } : {}),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
/** Whether an observation carries anything at all (i.e. whether claiming it is worth a write). */
|
|
150
|
+
function isEmptyObservation(observation) {
|
|
151
|
+
return !observation.cause && !observation.exit;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Persist what this container just observed about its own stop, MERGING onto an unclaimed record
|
|
155
|
+
* of the SAME stop rather than replacing it.
|
|
156
|
+
*
|
|
157
|
+
* Merging is the point. One stop reaches this container through up to two hooks carrying
|
|
158
|
+
* different halves of the answer: `onError` recognises a rollout drain and knows no exit state,
|
|
159
|
+
* `onStop` carries `{ exitCode, reason }` and cannot name the churn. They fire in either order
|
|
160
|
+
* (and, on some runtime versions, both), so a plain overwrite means whichever landed second
|
|
161
|
+
* silently discarded the other's half: either the recovery budget or the only account of the
|
|
162
|
+
* death, depending on the ordering that day.
|
|
163
|
+
*
|
|
164
|
+
* Two records are never merged:
|
|
165
|
+
*
|
|
166
|
+
* - a CLAIMED one, which has already explained somebody's eviction, so anything observed after
|
|
167
|
+
* it belongs to the next one;
|
|
168
|
+
* - one older than {@link STOP_MERGE_WINDOW_MS}, which is a different stop entirely. This
|
|
169
|
+
* container's records are not reliably cleared between stops (`takeStopCause` deliberately
|
|
170
|
+
* leaves an expired record in place, and only an accepted dispatch deletes one), so a stale
|
|
171
|
+
* record is the ORDINARY state of a container that idled out and was re-driven, not an edge
|
|
172
|
+
* case. Merging onto it would back-date the new observation to the old stop's `at` and age it
|
|
173
|
+
* out of its own attribution window on arrival: the crash that just happened would be
|
|
174
|
+
* recorded, read back, and dropped as too old to explain the eviction it caused.
|
|
175
|
+
*
|
|
176
|
+
* The kept `at` is the EARLIEST of the two observations, which within the merge window is a
|
|
177
|
+
* choice between timestamps moments apart: both describe one stop, and the window measures how
|
|
178
|
+
* long ago that stop happened.
|
|
179
|
+
*/
|
|
180
|
+
export async function recordStopCause(storage, observed, now) {
|
|
181
|
+
const mergeable = mergeableRecord(await storage.get(STOP_CAUSE_KEY), now);
|
|
182
|
+
const at = mergeable ? Math.min(mergeable.at, now) : now;
|
|
183
|
+
const cause = observed.cause ?? mergeable?.cause;
|
|
184
|
+
const exit = observed.exit ?? mergeable?.exit;
|
|
185
|
+
await storage.put(STOP_CAUSE_KEY, {
|
|
186
|
+
...(cause ? { cause } : {}),
|
|
187
|
+
...(exit ? { exit } : {}),
|
|
188
|
+
at,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* The stored record a new observation may complete, i.e. an unclaimed one describing the same
|
|
193
|
+
* stop. Anything else (absent, malformed, claimed, or from an earlier stop) is undefined, and
|
|
194
|
+
* the new observation stands alone.
|
|
195
|
+
*/
|
|
196
|
+
function mergeableRecord(stored, now) {
|
|
197
|
+
if (!stored || typeof stored !== 'object')
|
|
198
|
+
return undefined;
|
|
199
|
+
const record = stored;
|
|
200
|
+
if (record.claimedBy !== undefined)
|
|
201
|
+
return undefined;
|
|
202
|
+
if (typeof record.at !== 'number')
|
|
203
|
+
return undefined;
|
|
204
|
+
// `now - at` rather than an absolute difference: a record stamped in the FUTURE (a clock
|
|
205
|
+
// adjustment between two hook calls) is one of ours moments ago, not a stale one.
|
|
206
|
+
if (now - record.at > STOP_MERGE_WINDOW_MS)
|
|
207
|
+
return undefined;
|
|
208
|
+
return record;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* What an exit code IS, independent of why the container stopped.
|
|
212
|
+
*
|
|
213
|
+
* A bounded map rather than a `128 + n` derivation on purpose: the platform reports one number
|
|
214
|
+
* and only a couple of them are worth translating, while decoding an arbitrary code into a
|
|
215
|
+
* signal name would confidently mislabel an application exit code that merely happens to exceed
|
|
216
|
+
* 128. An unmapped code is reported as itself.
|
|
217
|
+
*/
|
|
218
|
+
const EXIT_SIGNAL_NAMES = {
|
|
219
|
+
137: 'SIGKILL',
|
|
220
|
+
143: 'SIGTERM',
|
|
221
|
+
};
|
|
222
|
+
/**
|
|
223
|
+
* What an exit code SUGGESTS about a death nothing else explains. Read only when no
|
|
224
|
+
* {@link ContainerStopCause} was recognised, which is what makes the guess worth offering: the
|
|
225
|
+
* alternative there is silence.
|
|
226
|
+
*
|
|
227
|
+
* Kept apart from {@link EXIT_SIGNAL_NAMES} because the two are different kinds of claim. The
|
|
228
|
+
* signal name is a fact about the number; this is an inference from the absence of any other
|
|
229
|
+
* account, and it is false exactly when that absence is false.
|
|
230
|
+
*/
|
|
231
|
+
const UNEXPLAINED_EXIT_NOTES = {
|
|
232
|
+
// Killed outright rather than exiting. With nothing else to explain it, on this runtime that
|
|
233
|
+
// is overwhelmingly the instance running out of memory, which is why it is worth saying.
|
|
234
|
+
137: 'most often an out-of-memory kill or a forced stop',
|
|
235
|
+
// Something asked it to stop, and whatever it was left no cause behind for us to name.
|
|
236
|
+
143: 'something asked the container to stop',
|
|
237
|
+
};
|
|
238
|
+
/**
|
|
239
|
+
* The one-line account of a container's stop for the eviction `detail`, or undefined when
|
|
240
|
+
* nothing was recorded.
|
|
241
|
+
*
|
|
242
|
+
* `cause` is the account the run has ALREADY been given, and passing it is what keeps the detail
|
|
243
|
+
* from arguing with the verdict beside it. The two halves are recorded independently and the
|
|
244
|
+
* exit state is attached whether or not a cause was recognised, so they routinely describe one
|
|
245
|
+
* event twice: an idle reclaim is performed BY the platform with a SIGKILL, so a run correctly
|
|
246
|
+
* reported as "idle container reclaimed between polls" carries exit 137, and read as an
|
|
247
|
+
* unexplained death that code says "most often an out-of-memory kill". The operator is then
|
|
248
|
+
* holding a verdict and a detail that cannot both be true, which is worse than either alone,
|
|
249
|
+
* because there is no way to tell which one to act on.
|
|
250
|
+
*
|
|
251
|
+
* So the interpretation is offered only where it is the only account there is. Where a cause was
|
|
252
|
+
* named, the exit code is reported as the MECHANICS of that stop: still the difference between
|
|
253
|
+
* "reclaimed" and "reclaimed with a SIGKILL", and never a second, competing cause of death.
|
|
254
|
+
*
|
|
255
|
+
* Either way it states the platform's own limit rather than leaving it to be inferred: a
|
|
256
|
+
* Cloudflare Container writes its stdout to the deployment's Workers logs, and nothing inside
|
|
257
|
+
* the Durable Object can read it back, so an operator who reads this and goes looking for a log
|
|
258
|
+
* tail here should be told where the tail actually is.
|
|
259
|
+
*/
|
|
260
|
+
export function describeContainerExit(exit, cause) {
|
|
261
|
+
if (!exit)
|
|
262
|
+
return undefined;
|
|
263
|
+
const signal = EXIT_SIGNAL_NAMES[exit.code];
|
|
264
|
+
const note = cause
|
|
265
|
+
? signal
|
|
266
|
+
: [signal, UNEXPLAINED_EXIT_NOTES[exit.code]].filter(Boolean).join(', ');
|
|
267
|
+
const how = cause
|
|
268
|
+
? 'the runtime reported it as'
|
|
269
|
+
: exit.reason === 'runtime_signal'
|
|
270
|
+
? 'the runtime signalled it to exit, with'
|
|
271
|
+
: 'the workload inside it exited, with';
|
|
272
|
+
return (`The run's container stopped while the job was running: ${how} exit code ${exit.code}` +
|
|
273
|
+
`${note ? ` (${note})` : ''}. The container's own output is not readable from the Worker; ` +
|
|
274
|
+
`it is in this deployment's Workers logs.`);
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Forget whatever this container observed before now.
|
|
278
|
+
*
|
|
279
|
+
* Called when a NEW job is accepted, which is the moment the record stops being able to explain
|
|
280
|
+
* anything: a stop cause accounts for the death of a container that was serving the jobs
|
|
281
|
+
* outstanding when it was observed, and a job dispatched afterwards is not one of them. Without
|
|
282
|
+
* this the common benign case poisons the rare dangerous one — a run parks on a human decision,
|
|
283
|
+
* its container idles out with nothing running, and the `idle` marker that leaves behind is
|
|
284
|
+
* still there half an hour later to excuse a genuine OOM in the NEXT step as transient churn.
|
|
285
|
+
*/
|
|
286
|
+
export async function clearStopCause(storage) {
|
|
287
|
+
await storage.delete(STOP_CAUSE_KEY);
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Read what explains `claimant`'s 404 poll, CLAIMING it for that job.
|
|
291
|
+
*
|
|
292
|
+
* One stop explains exactly one job's eviction: the engine answers one by re-dispatching onto
|
|
293
|
+
* a fresh container under the same DO id, so an unclaimed record would still be sitting there to
|
|
294
|
+
* excuse the next death, whenever and for whatever reason it came. The claim is written rather
|
|
295
|
+
* than the record deleted so a REPLAYED poll for the same job reads back the same answer (see
|
|
296
|
+
* {@link StopCauseRecord.claimedBy}).
|
|
297
|
+
*
|
|
298
|
+
* The claim covers the record, not one half of it: an exit state read here is spent as surely as
|
|
299
|
+
* a cause is, because attaching one container's death to two runs' failures is the same lie
|
|
300
|
+
* either way.
|
|
301
|
+
*/
|
|
302
|
+
export async function takeStopCause(storage, now, claimant) {
|
|
303
|
+
const record = await storage.get(STOP_CAUSE_KEY);
|
|
304
|
+
const observation = attributeStopCause(record, now, claimant);
|
|
305
|
+
// Nothing to claim: either there was no record, it was spent, or it is too old to explain
|
|
306
|
+
// anything. Leaving an expired record in place costs one key until the next reclaim
|
|
307
|
+
// overwrites it, and rewriting it here would only re-date somebody else's observation.
|
|
308
|
+
if (isEmptyObservation(observation))
|
|
309
|
+
return observation;
|
|
310
|
+
await storage.put(STOP_CAUSE_KEY, { ...record, claimedBy: claimant });
|
|
311
|
+
return observation;
|
|
312
|
+
}
|
|
313
|
+
//# sourceMappingURL=stopCause.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stopCause.js","sourceRoot":"","sources":["../../../src/infrastructure/containers/stopCause.ts"],"names":[],"mappings":"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"}
|
|
@@ -158,6 +158,16 @@ export interface Env {
|
|
|
158
158
|
* CI-fixer attempt budget is separate (per-task, on the merge preset).
|
|
159
159
|
*/
|
|
160
160
|
CI_MAX_POLLS?: string;
|
|
161
|
+
/**
|
|
162
|
+
* Ceiling on ONE pipeline-step advance or status read, applied as the durable driver's
|
|
163
|
+
* `step.do` timeout here and raced in `driveExecution` on Node: the engine's hang bound, kept
|
|
164
|
+
* as one knob so a wedged call is waited out for the same length of time on both facades.
|
|
165
|
+
*
|
|
166
|
+
* A duration string ("30 minutes", the default), written as a whole number and one of
|
|
167
|
+
* seconds/minutes/hours/days/weeks. Both facades parse it with the same parser, so a value one
|
|
168
|
+
* accepts the other honours identically; an unusable one warns and falls back on both.
|
|
169
|
+
*/
|
|
170
|
+
ADVANCE_TIMEOUT?: string;
|
|
161
171
|
/**
|
|
162
172
|
* Per-workspace WebSocket fan-out hub (Durable Object). Pushes execution/board
|
|
163
173
|
* changes to subscribed browsers in real time. When absent, the engine pushes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/infrastructure/env.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/infrastructure/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/infrastructure/env.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/infrastructure/env.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAowB7D;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAQ;IACzC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACtB,MAAM,aAAa,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAA;IACxE,CAAC;IACD,OAAO,GAAG,CAAC,YAAY,CAAA;AACzB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAQ;IACrC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,aAAa,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,CAAA;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,GAAQ;IAChC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,aAAa,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAA;IACpD,CAAC;IACD,OAAO,GAAG,CAAC,EAAE,CAAA;AACf,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BinaryArtifactMetadataStore, BinaryArtifactRecord } from '@cat-factory/kernel';
|
|
1
|
+
import type { BinaryArtifactMetadataStore, BinaryArtifactRecord, DocumentArtifactRef } from '@cat-factory/kernel';
|
|
2
2
|
import type { D1Database } from '@cloudflare/workers-types';
|
|
3
3
|
/** D1-backed metadata store for binary artifacts (see migration 0017). Bytes live in R2/S3. */
|
|
4
4
|
export declare class D1BinaryArtifactMetadataStore implements BinaryArtifactMetadataStore {
|
|
@@ -11,6 +11,9 @@ export declare class D1BinaryArtifactMetadataStore implements BinaryArtifactMeta
|
|
|
11
11
|
listByExecution(workspaceId: string, executionId: string): Promise<BinaryArtifactRecord[]>;
|
|
12
12
|
countByExecution(workspaceId: string, executionId: string): Promise<number>;
|
|
13
13
|
listByBlock(workspaceId: string, blockId: string): Promise<BinaryArtifactRecord[]>;
|
|
14
|
+
listByDocument(workspaceId: string, document: DocumentArtifactRef): Promise<BinaryArtifactRecord[]>;
|
|
15
|
+
listByDocuments(workspaceId: string, documents: readonly DocumentArtifactRef[]): Promise<BinaryArtifactRecord[]>;
|
|
16
|
+
deleteByIds(workspaceId: string, ids: readonly string[]): Promise<number>;
|
|
14
17
|
delete(workspaceId: string, id: string): Promise<void>;
|
|
15
18
|
listOlderThan(workspaceId: string, olderThan: number): Promise<BinaryArtifactRecord[]>;
|
|
16
19
|
deleteOlderThan(workspaceId: string, olderThan: number): Promise<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1BinaryArtifactMetadataStore.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1BinaryArtifactMetadataStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"D1BinaryArtifactMetadataStore.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1BinaryArtifactMetadataStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,oBAAoB,EACpB,mBAAmB,EAEpB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAqD3D,+FAA+F;AAC/F,qBAAa,6BAA8B,YAAW,2BAA2B;IAC/E,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BxD;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAM/E;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAU/F;IAEK,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhF;IAEK,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAUvF;IAEK,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAUjC;IAEK,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,SAAS,mBAAmB,EAAE,GACxC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAoBjC;IAEK,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAc9E;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK3D;IAIK,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAS3F;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS7E;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAM1E;IAEK,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM5D;CACF"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { dedupeDocumentRefs } from '@cat-factory/kernel';
|
|
2
|
+
import { chunkForIn } from './chunk';
|
|
1
3
|
function rowToRecord(row) {
|
|
2
4
|
return {
|
|
3
5
|
id: row.id,
|
|
@@ -11,9 +13,21 @@ function rowToRecord(row) {
|
|
|
11
13
|
hash: row.hash,
|
|
12
14
|
storage: row.storage,
|
|
13
15
|
storageKey: row.storage_key,
|
|
16
|
+
// Both halves or neither: a row with only one is not a document reference, and treating it as
|
|
17
|
+
// one would key a reclaim on a half-identity that matches the wrong artifacts.
|
|
18
|
+
document: row.document_source && row.document_external_id
|
|
19
|
+
? { source: row.document_source, externalId: row.document_external_id }
|
|
20
|
+
: null,
|
|
14
21
|
createdAt: row.created_at,
|
|
15
22
|
};
|
|
16
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Order rows the way every list read on this table returns them (`created_at`, then `id`), for a
|
|
26
|
+
* batch read whose result is the concatenation of several statements.
|
|
27
|
+
*/
|
|
28
|
+
function sortArtifactRows(rows) {
|
|
29
|
+
return rows.sort((a, b) => a.created_at - b.created_at || (a.id < b.id ? -1 : a.id > b.id ? 1 : 0));
|
|
30
|
+
}
|
|
17
31
|
/** D1-backed metadata store for binary artifacts (see migration 0017). Bytes live in R2/S3. */
|
|
18
32
|
export class D1BinaryArtifactMetadataStore {
|
|
19
33
|
db;
|
|
@@ -24,9 +38,10 @@ export class D1BinaryArtifactMetadataStore {
|
|
|
24
38
|
await this.db
|
|
25
39
|
.prepare(`INSERT INTO binary_artifacts
|
|
26
40
|
(workspace_id, id, execution_id, block_id, kind, view, content_type,
|
|
27
|
-
byte_size, hash, storage, storage_key,
|
|
28
|
-
|
|
29
|
-
|
|
41
|
+
byte_size, hash, storage, storage_key, document_source, document_external_id,
|
|
42
|
+
created_at)
|
|
43
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
44
|
+
.bind(record.workspaceId, record.id, record.executionId, record.blockId, record.kind, record.view, record.contentType, record.byteSize, record.hash, record.storage, record.storageKey, record.document?.source ?? null, record.document?.externalId ?? null, record.createdAt)
|
|
30
45
|
.run();
|
|
31
46
|
}
|
|
32
47
|
async get(workspaceId, id) {
|
|
@@ -61,22 +76,70 @@ export class D1BinaryArtifactMetadataStore {
|
|
|
61
76
|
.all();
|
|
62
77
|
return (results ?? []).map(rowToRecord);
|
|
63
78
|
}
|
|
79
|
+
async listByDocument(workspaceId, document) {
|
|
80
|
+
const { results } = await this.db
|
|
81
|
+
.prepare(`SELECT * FROM binary_artifacts
|
|
82
|
+
WHERE workspace_id = ? AND document_source = ? AND document_external_id = ?
|
|
83
|
+
ORDER BY created_at ASC, id ASC`)
|
|
84
|
+
.bind(workspaceId, document.source, document.externalId)
|
|
85
|
+
.all();
|
|
86
|
+
return (results ?? []).map(rowToRecord);
|
|
87
|
+
}
|
|
88
|
+
async listByDocuments(workspaceId, documents) {
|
|
89
|
+
const refs = dedupeDocumentRefs(documents);
|
|
90
|
+
if (!refs.length)
|
|
91
|
+
return [];
|
|
92
|
+
const rows = [];
|
|
93
|
+
// Two bound params per ref (source + external id), so the chunk size is derived from that
|
|
94
|
+
// rather than from the scalar-`IN` default.
|
|
95
|
+
for (const chunk of chunkForIn(refs, 2)) {
|
|
96
|
+
const clauses = chunk
|
|
97
|
+
.map(() => '(document_source = ? AND document_external_id = ?)')
|
|
98
|
+
.join(' OR ');
|
|
99
|
+
const { results } = await this.db
|
|
100
|
+
.prepare(`SELECT * FROM binary_artifacts WHERE workspace_id = ? AND (${clauses})`)
|
|
101
|
+
.bind(workspaceId, ...chunk.flatMap((ref) => [ref.source, ref.externalId]))
|
|
102
|
+
.all();
|
|
103
|
+
rows.push(...(results ?? []));
|
|
104
|
+
}
|
|
105
|
+
// Sorted here rather than per statement: with more than one chunk the concatenation is
|
|
106
|
+
// ordered by chunk, and the caller's "newest render for a view wins" rule reads the WHOLE
|
|
107
|
+
// list in order.
|
|
108
|
+
return sortArtifactRows(rows).map(rowToRecord);
|
|
109
|
+
}
|
|
110
|
+
async deleteByIds(workspaceId, ids) {
|
|
111
|
+
let removed = 0;
|
|
112
|
+
for (const chunk of chunkForIn(ids)) {
|
|
113
|
+
const placeholders = chunk.map(() => '?').join(', ');
|
|
114
|
+
const { meta } = await this.db
|
|
115
|
+
.prepare(`DELETE FROM binary_artifacts
|
|
116
|
+
WHERE workspace_id = ? AND id IN (${placeholders})`)
|
|
117
|
+
.bind(workspaceId, ...chunk)
|
|
118
|
+
.run();
|
|
119
|
+
removed += meta.changes ?? 0;
|
|
120
|
+
}
|
|
121
|
+
return removed;
|
|
122
|
+
}
|
|
64
123
|
async delete(workspaceId, id) {
|
|
65
124
|
await this.db
|
|
66
125
|
.prepare('DELETE FROM binary_artifacts WHERE workspace_id = ? AND id = ?')
|
|
67
126
|
.bind(workspaceId, id)
|
|
68
127
|
.run();
|
|
69
128
|
}
|
|
129
|
+
// The age sweep's two halves carry the SAME `document_source IS NULL` exemption: a document's
|
|
130
|
+
// renders expire with their document, never on a clock (see the port).
|
|
70
131
|
async listOlderThan(workspaceId, olderThan) {
|
|
71
132
|
const { results } = await this.db
|
|
72
|
-
.prepare(
|
|
133
|
+
.prepare(`SELECT * FROM binary_artifacts
|
|
134
|
+
WHERE workspace_id = ? AND created_at < ? AND document_source IS NULL`)
|
|
73
135
|
.bind(workspaceId, olderThan)
|
|
74
136
|
.all();
|
|
75
137
|
return (results ?? []).map(rowToRecord);
|
|
76
138
|
}
|
|
77
139
|
async deleteOlderThan(workspaceId, olderThan) {
|
|
78
140
|
const { meta } = await this.db
|
|
79
|
-
.prepare(
|
|
141
|
+
.prepare(`DELETE FROM binary_artifacts
|
|
142
|
+
WHERE workspace_id = ? AND created_at < ? AND document_source IS NULL`)
|
|
80
143
|
.bind(workspaceId, olderThan)
|
|
81
144
|
.run();
|
|
82
145
|
return meta.changes ?? 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1BinaryArtifactMetadataStore.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1BinaryArtifactMetadataStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"D1BinaryArtifactMetadataStore.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1BinaryArtifactMetadataStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1DocumentRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1DocumentRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,WAAW,
|
|
1
|
+
{"version":3,"file":"D1DocumentRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1DocumentRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,WAAW,EAEX,kBAAkB,EACnB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAuD3D,yFAAyF;AACzF,qBAAa,oBAAqB,YAAW,kBAAkB;IAC7D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAkClD;IAEK,GAAG,CACP,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAQhC;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,WAAW,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAkB7F;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAQpE;IAEK,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAQjF;IAEK,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAa/E;IAEK,SAAS,CACb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,IAAI,CAAC,CAOf;IAEK,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWlF;IAEK,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,SAAS,WAAW,EAAE,EAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,IAAI,CAAC,CAqBf;IAEK,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAQhC;IAEK,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,cAAc,EAAE,CAAC,CAQ3B;IAEK,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAQ7E;IAEK,OAAO,CACX,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAOf;IAEK,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9F;IAEK,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAOf;CACF"}
|
|
@@ -27,6 +27,7 @@ function rowToRecord(row) {
|
|
|
27
27
|
body: row.body,
|
|
28
28
|
contentHash: row.content_hash ?? '',
|
|
29
29
|
sourceVersion: row.source_version,
|
|
30
|
+
renderStatus: row.render_status ?? null,
|
|
30
31
|
linkedBlockId: row.linked_block_id,
|
|
31
32
|
role: row.role ?? null,
|
|
32
33
|
docKind: row.doc_kind ?? null,
|
|
@@ -44,8 +45,8 @@ export class D1DocumentRepository {
|
|
|
44
45
|
await this.db
|
|
45
46
|
.prepare(`INSERT INTO documents
|
|
46
47
|
(workspace_id, source, external_id, title, url, excerpt, body,
|
|
47
|
-
content_hash, source_version, linked_block_id, synced_at, deleted_at)
|
|
48
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NULL)
|
|
48
|
+
content_hash, source_version, render_status, linked_block_id, synced_at, deleted_at)
|
|
49
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NULL)
|
|
49
50
|
ON CONFLICT (workspace_id, source, external_id) DO UPDATE SET
|
|
50
51
|
title = excluded.title,
|
|
51
52
|
url = excluded.url,
|
|
@@ -53,10 +54,11 @@ export class D1DocumentRepository {
|
|
|
53
54
|
body = excluded.body,
|
|
54
55
|
content_hash = excluded.content_hash,
|
|
55
56
|
source_version = excluded.source_version,
|
|
57
|
+
render_status = excluded.render_status,
|
|
56
58
|
linked_block_id = excluded.linked_block_id,
|
|
57
59
|
synced_at = excluded.synced_at,
|
|
58
60
|
deleted_at = NULL`)
|
|
59
|
-
.bind(record.workspaceId, record.source, record.externalId, record.title, record.url, record.excerpt, record.body, record.contentHash, record.sourceVersion, record.linkedBlockId, record.syncedAt)
|
|
61
|
+
.bind(record.workspaceId, record.source, record.externalId, record.title, record.url, record.excerpt, record.body, record.contentHash, record.sourceVersion, record.renderStatus, record.linkedBlockId, record.syncedAt)
|
|
60
62
|
.run();
|
|
61
63
|
}
|
|
62
64
|
async get(workspaceId, source, externalId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1DocumentRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1DocumentRepository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"D1DocumentRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1DocumentRepository.ts"],"names":[],"mappings":"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"}
|