@straiffi/archon 1.11.8 → 1.11.10
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/client/assets/{ActivityView-BKLYfPXE.js → ActivityView-RnE0983a.js} +1 -1
- package/dist/client/assets/{GitHubActionsDialog-yqqwcP8z.js → GitHubActionsDialog-PaNJhVzv.js} +1 -1
- package/dist/client/assets/{VerificationDialog-DhyIDs1V.js → VerificationDialog-PGrCJ1DJ.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-5krjaOU4.js → architectureDiagram-3BPJPVTR-CKd1Dmpz.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-Duo2q2gn.js → blockDiagram-GPEHLZMM-M3OjRhA0.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-D2lxLmwB.js → c4Diagram-AAUBKEIU-VWBcGTXO.js} +1 -1
- package/dist/client/assets/channel-CBQk1IQf.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-Dbo5lbSs.js → chunk-2J33WTMH-C4WpCUzU.js} +1 -1
- package/dist/client/assets/{chunk-3OPIFGDE-mjZrNxCg.js → chunk-3OPIFGDE-BQ-j87T6.js} +1 -1
- package/dist/client/assets/{chunk-5ZQYHXKU-C2nUnqLh.js → chunk-5ZQYHXKU-BCZvyT9u.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-7eUgm0cn.js → chunk-727SXJPM-DZP_PMNz.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-DouWpaE0.js → chunk-AQP2D5EJ-Cejit8wh.js} +1 -1
- package/dist/client/assets/{chunk-CSCIHK7Q-DesC0Fd7.js → chunk-CSCIHK7Q-CvXC4rkf.js} +1 -1
- package/dist/client/assets/{chunk-KSCS5N6A-DAsFowjn.js → chunk-KSCS5N6A-hTgJWrr3.js} +1 -1
- package/dist/client/assets/{chunk-L5ZTLDWV-w7V9r0Cw.js → chunk-L5ZTLDWV-bSK1mut3.js} +1 -1
- package/dist/client/assets/{chunk-LZXEDZCA-BCnxdvaJ.js → chunk-LZXEDZCA-Y2hnSpRr.js} +2 -2
- package/dist/client/assets/{chunk-ND2GUHAM-DO8HdZCX.js → chunk-ND2GUHAM-BiHH5lS5.js} +1 -1
- package/dist/client/assets/{chunk-NZK2D7GU-37Rbzvm9.js → chunk-NZK2D7GU-DdxcwTTc.js} +1 -1
- package/dist/client/assets/{chunk-O5CBEL6O-DTjB0GGI.js → chunk-O5CBEL6O-BZIbgKJr.js} +1 -1
- package/dist/client/assets/{chunk-WU5MYG2G-CAonpz-x.js → chunk-WU5MYG2G-D3yvqt9P.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-BjizLQoS.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-B6qpU-kO.js +1 -0
- package/dist/client/assets/{dagre-BM42HDAG-DDET9pbe.js → dagre-BM42HDAG-CZQZPoaH.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-r_bu5Cgo.js → diagram-2AECGRRQ-DU7zsX_b.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-QlPCzkUJ.js → diagram-5GNKFQAL-BCCoHKlp.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-D5SzFOzP.js → diagram-KO2AKTUF-BR_GNJLN.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-BJcWw3_s.js → diagram-LMA3HP47-B6LZOUTc.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-CpsR9p94.js → diagram-OG6HWLK6-w89pjkBe.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-Dq-K6YrY.js → erDiagram-TEJ5UH35-BReR8ngL.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-39hKkH4n.js → flowDiagram-I6XJVG4X-CGwpJ9iQ.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-DaeBYOLz.js → ganttDiagram-6RSMTGT7-BcOPz4K9.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CCeo9Czy.js → gitGraphDiagram-PVQCEYII-m6-x38H5.js} +1 -1
- package/dist/client/assets/index-D_brbG-0.css +2 -0
- package/dist/client/assets/index-yUckGfMu.js +293 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-jgHH1Ta7.js → infoDiagram-5YYISTIA-11iWCl_6.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-gYPsFHRd.js → ishikawaDiagram-YF4QCWOH-DbeJ14eh.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-C5m8h46L.js → journeyDiagram-JHISSGLW-BYFdU9SL.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-rag4UxAB.js → kanban-definition-UN3LZRKU-Dyc52bol.js} +1 -1
- package/dist/client/assets/{line-CAWxQrG3.js → line-CBauYkto.js} +1 -1
- package/dist/client/assets/{mermaid-parser.core-C5Hj2V3U.js → mermaid-parser.core-BBbL8arn.js} +1 -1
- package/dist/client/assets/{mermaid.core-BxRoDLxv.js → mermaid.core-CB2mIiiP.js} +3 -3
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-BUV37aab.js → mindmap-definition-RKZ34NQL-CvWYGfWn.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-CMwVVhpZ.js → pieDiagram-4H26LBE5-BsbIF0rU.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-DYHRB097.js → quadrantDiagram-W4KKPZXB-Bvs09UnJ.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-BLtNTWtR.js → requirementDiagram-4Y6WPE33-B3U5xSYZ.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Bcd-UVHZ.js → sankeyDiagram-5OEKKPKP-Dds8cy2g.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-Die4-puP.js → sequenceDiagram-3UESZ5HK-BoMb08Ay.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-TBbOyQST.js → stateDiagram-AJRCARHV-atm7kYDg.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-EYJsus1Q.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-CZ3E6e1X.js → timeline-definition-PNZ67QCA-C7U--kCB.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-CY_kofMf.js → vennDiagram-CIIHVFJN-BoPWwPSI.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-TzBIV1Er.js → wardleyDiagram-YWT4CUSO-CJ6Y7g3b.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-BTvKU2GO.js → xychartDiagram-2RQKCTM6-rN5shXue.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/db.js +2 -0
- package/dist/server/db.js.map +1 -1
- package/dist/server/index.js +212 -238
- package/dist/server/index.js.map +1 -1
- package/dist/server/lib/agent.js +23 -7
- package/dist/server/lib/agent.js.map +1 -1
- package/dist/server/lib/agentProvider.js +62 -15
- package/dist/server/lib/agentProvider.js.map +1 -1
- package/dist/server/lib/bundleCleanupManagement.js +181 -0
- package/dist/server/lib/bundleCleanupManagement.js.map +1 -0
- package/dist/server/lib/bundleCleanupRoutes.js +36 -0
- package/dist/server/lib/bundleCleanupRoutes.js.map +1 -0
- package/dist/server/lib/bundleDeletion.js +257 -0
- package/dist/server/lib/bundleDeletion.js.map +1 -0
- package/dist/server/lib/bundleDeletionRoutes.js +73 -0
- package/dist/server/lib/bundleDeletionRoutes.js.map +1 -0
- package/dist/server/lib/bundleDeletionSchema.js +134 -0
- package/dist/server/lib/bundleDeletionSchema.js.map +1 -0
- package/dist/server/lib/bundleDeletionStore.js +18 -0
- package/dist/server/lib/bundleDeletionStore.js.map +1 -0
- package/dist/server/lib/bundleWorktreeCleanup.js +160 -0
- package/dist/server/lib/bundleWorktreeCleanup.js.map +1 -0
- package/dist/server/lib/codexAgentProvider.js +186 -123
- package/dist/server/lib/codexAgentProvider.js.map +1 -1
- package/dist/server/lib/diffExplanation.js +485 -0
- package/dist/server/lib/diffExplanation.js.map +1 -0
- package/dist/server/lib/diffExplanationJobs.js +605 -0
- package/dist/server/lib/diffExplanationJobs.js.map +1 -0
- package/dist/server/lib/diffExplanationRoutes.js +236 -0
- package/dist/server/lib/diffExplanationRoutes.js.map +1 -0
- package/dist/server/lib/dockerSandboxCleanup.js +68 -0
- package/dist/server/lib/dockerSandboxCleanup.js.map +1 -0
- package/dist/server/lib/dockerSandboxEnvironmentOperations.js +4 -3
- package/dist/server/lib/dockerSandboxEnvironmentOperations.js.map +1 -1
- package/dist/server/lib/dockerSandboxExecutionEnvironment.js +35 -59
- package/dist/server/lib/dockerSandboxExecutionEnvironment.js.map +1 -1
- package/dist/server/lib/dockerSandboxReleaseProfiles.js +1 -1
- package/dist/server/lib/dockerSandboxReleaseProfiles.js.map +1 -1
- package/dist/server/lib/executionEnvironmentOperations.js +7 -2
- package/dist/server/lib/executionEnvironmentOperations.js.map +1 -1
- package/dist/server/lib/executionEnvironmentReconciliation.js +34 -169
- package/dist/server/lib/executionEnvironmentReconciliation.js.map +1 -1
- package/dist/server/lib/executionEnvironmentTargetCleanup.js +232 -0
- package/dist/server/lib/executionEnvironmentTargetCleanup.js.map +1 -0
- package/dist/server/lib/executionEnvironments.js +1 -0
- package/dist/server/lib/executionEnvironments.js.map +1 -1
- package/dist/server/lib/executionTargets.js +1 -1
- package/dist/server/lib/executionTargets.js.map +1 -1
- package/dist/server/lib/git.js +205 -35
- package/dist/server/lib/git.js.map +1 -1
- package/dist/server/lib/i18n/resources.js +10 -0
- package/dist/server/lib/i18n/resources.js.map +1 -1
- package/dist/server/lib/lightweightPrompt.js +284 -52
- package/dist/server/lib/lightweightPrompt.js.map +1 -1
- package/dist/server/lib/oneShotCancellation.js +54 -0
- package/dist/server/lib/oneShotCancellation.js.map +1 -0
- package/dist/server/lib/opencodeExecutionReliability.js +46 -2
- package/dist/server/lib/opencodeExecutionReliability.js.map +1 -1
- package/dist/server/lib/projectMemoryScan.js +3 -46
- package/dist/server/lib/projectMemoryScan.js.map +1 -1
- package/dist/server/lib/promptDiffSafety.js +53 -0
- package/dist/server/lib/promptDiffSafety.js.map +1 -0
- package/dist/server/lib/repositorySecrets.js +69 -0
- package/dist/server/lib/repositorySecrets.js.map +1 -0
- package/dist/server/lib/tickets.js +3 -2
- package/dist/server/lib/tickets.js.map +1 -1
- package/dist/server/lib/types.js.map +1 -1
- package/dist/server/lib/unifiedDiff.js +459 -0
- package/dist/server/lib/unifiedDiff.js.map +1 -0
- package/dist/server/lib/workspaceDiff.js +156 -0
- package/dist/server/lib/workspaceDiff.js.map +1 -0
- package/dist/server/lib/workspaceDiffRoutes.js +63 -0
- package/dist/server/lib/workspaceDiffRoutes.js.map +1 -0
- package/dist/server/lib/workspaceTargets.js +88 -0
- package/dist/server/lib/workspaceTargets.js.map +1 -0
- package/dist/server/workers/chat.js +71 -1
- package/dist/server/workers/chat.js.map +1 -1
- package/dist/server/workers/plan.js +24 -2
- package/dist/server/workers/plan.js.map +1 -1
- package/dist/server/workers/review.js +19 -13
- package/dist/server/workers/review.js.map +1 -1
- package/package.json +1 -1
- package/dist/client/assets/channel-Cf2U7nU4.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CK8VsU-L.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-RvySOEwt.js +0 -1
- package/dist/client/assets/index-B9-M1vEw.js +0 -287
- package/dist/client/assets/index-CbYT3N3U.css +0 -2
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BRotXz7h.js +0 -1
|
@@ -1,41 +1,19 @@
|
|
|
1
1
|
import db from '../db.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { isBundleCleanupAbandoned, isBundleDeletionTargetPending } from './bundleDeletionStore.js';
|
|
3
|
+
import { DOCKER_SANDBOX_PROVIDER, DockerSandboxCollisionFailure, DockerSandboxStopVerificationFailure, SbxCommandFailure, } from './dockerSandboxExecutionEnvironment.js';
|
|
4
4
|
import { resolveDockerSandboxReleaseForPersistedEnvironment } from './dockerSandboxReleaseProfiles.js';
|
|
5
5
|
import { getExecutionProfileRevision } from './executionProfileStore.js';
|
|
6
|
-
import { appendExecutionEnvironmentEvent,
|
|
6
|
+
import { appendExecutionEnvironmentEvent, getExecutionEnvironment, releaseExecutionEnvironmentLease, transitionExecutionEnvironment, } from './executionEnvironments.js';
|
|
7
7
|
import { getExecutionRun, transitionExecutionRun } from './executionRuns.js';
|
|
8
8
|
import { getServiceRunDetails, recordServiceRunReleaseFailure } from './serviceRuns.js';
|
|
9
9
|
import { defaultDockerSandboxEnvironmentDependencies } from './dockerSandboxEnvironmentOperations.js';
|
|
10
10
|
import { retryExecutionEnvironmentCleanup, stopExecutionEnvironment, } from './executionEnvironmentOperations.js';
|
|
11
|
+
import { cleanupExecutionEnvironmentsForTarget as cleanupTarget, cleanupProjectExecutionEnvironments as cleanupProject, createDefaultDockerSandboxAdapter as createCleanupAdapter, ExecutionEnvironmentCleanupError as CleanupError, inspectionMatches, resolveExpectedDockerSandbox as resolveCleanupSandbox, } from './executionEnvironmentTargetCleanup.js';
|
|
11
12
|
const VALIDATION_CLEANUP_TIMEOUT_MS = 30_000;
|
|
12
13
|
const VALIDATION_CLEANUP_REMEDIATION = 'Verify the persisted sandbox identity and stop it manually before retrying validation.';
|
|
13
|
-
export
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
this.name = 'ExecutionEnvironmentCleanupError';
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
export const createDefaultDockerSandboxAdapter = () => (createDockerSandboxAdapter(createSbxCommandRunner()));
|
|
20
|
-
export const resolveExpectedDockerSandbox = (environment, requestedAgent) => {
|
|
21
|
-
if (environment.provider_kind !== DOCKER_SANDBOX_PROVIDER || !environment.agent_identity || !environment.template_identity) {
|
|
22
|
-
throw new Error(`Execution environment ${environment.id} has incomplete persisted sandbox ownership evidence`);
|
|
23
|
-
}
|
|
24
|
-
if (requestedAgent && environment.agent_identity !== requestedAgent) {
|
|
25
|
-
throw new Error(`Execution environment ${environment.id} is not owned by the requested agent template`);
|
|
26
|
-
}
|
|
27
|
-
return {
|
|
28
|
-
name: environment.external_id ?? createDockerSandboxName({
|
|
29
|
-
projectId: environment.project_id,
|
|
30
|
-
targetKey: environment.target_key,
|
|
31
|
-
environmentRevision: environment.environment_revision,
|
|
32
|
-
validationFingerprint: environment.environment_validation_fingerprint,
|
|
33
|
-
}),
|
|
34
|
-
agent: environment.agent_identity,
|
|
35
|
-
workspacePath: environment.target_workspace_path,
|
|
36
|
-
template: environment.template_identity,
|
|
37
|
-
};
|
|
38
|
-
};
|
|
14
|
+
export const ExecutionEnvironmentCleanupError = CleanupError;
|
|
15
|
+
export const createDefaultDockerSandboxAdapter = () => (createCleanupAdapter());
|
|
16
|
+
export const resolveExpectedDockerSandbox = (environment, requestedAgent) => resolveCleanupSandbox(environment, requestedAgent);
|
|
39
17
|
const validationCleanupFailure = (error, timedOut) => {
|
|
40
18
|
if (timedOut || (error instanceof SbxCommandFailure && error.kind === 'timeout')) {
|
|
41
19
|
return { code: 'validation_cleanup_stop_timeout', message: 'Docker Sandbox cleanup timed out before stopped state was verified.' };
|
|
@@ -52,6 +30,9 @@ const validationCleanupFailure = (error, timedOut) => {
|
|
|
52
30
|
};
|
|
53
31
|
};
|
|
54
32
|
export const stopAndRecordEnvironmentValidationCleanup = async (input) => {
|
|
33
|
+
if (isBundleCleanupAbandoned(input.environment.project_id, input.environment.target_key)) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
55
36
|
const expected = resolveExpectedDockerSandbox(input.environment, input.requestedAgent);
|
|
56
37
|
const controller = new AbortController();
|
|
57
38
|
let timedOut = false;
|
|
@@ -206,6 +187,9 @@ export const resetExecutionEnvironment = async (input) => {
|
|
|
206
187
|
}
|
|
207
188
|
};
|
|
208
189
|
export const stopAndRecordEnvironmentExecutionCleanup = async (input) => {
|
|
190
|
+
if (isBundleCleanupAbandoned(input.environment.project_id, input.environment.target_key)) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
209
193
|
const expected = resolveExpectedDockerSandbox(input.environment);
|
|
210
194
|
try {
|
|
211
195
|
const before = await input.adapter.inspect(expected.name);
|
|
@@ -303,10 +287,6 @@ export const stopAndRecordEnvironmentExecutionCleanup = async (input) => {
|
|
|
303
287
|
throw new ExecutionEnvironmentCleanupError(`Unable to prove termination of execution run ${input.executionRunId} in sandbox ${expected.name}`, { cause: error });
|
|
304
288
|
}
|
|
305
289
|
};
|
|
306
|
-
const inspectionMatches = (expected, observed) => (expected.name === observed.name
|
|
307
|
-
&& expected.agent === observed.agent
|
|
308
|
-
&& expected.workspacePath === observed.workspacePath
|
|
309
|
-
&& expected.template === observed.template);
|
|
310
290
|
const parseProductionAuthority = (binding) => {
|
|
311
291
|
if (!binding.authority_json) {
|
|
312
292
|
return null;
|
|
@@ -400,6 +380,9 @@ export const reconcileProductionExecutionEnvironmentBindings = async (adapter =
|
|
|
400
380
|
for (const binding of bindings.filter(binding => (scope.projectId === undefined || binding.project_id === scope.projectId)
|
|
401
381
|
&& (scope.executionRunId === undefined || binding.execution_run_id === scope.executionRunId))) {
|
|
402
382
|
const environment = getExecutionEnvironment(binding.project_id, binding.environment_id);
|
|
383
|
+
if (environment && isBundleCleanupAbandoned(environment.project_id, environment.target_key)) {
|
|
384
|
+
continue;
|
|
385
|
+
}
|
|
403
386
|
const authority = parseProductionAuthority(binding);
|
|
404
387
|
const parsedPlacement = parseProductionPlacement(binding);
|
|
405
388
|
try {
|
|
@@ -409,12 +392,8 @@ export const reconcileProductionExecutionEnvironmentBindings = async (adapter =
|
|
|
409
392
|
if (!authority) {
|
|
410
393
|
throw new Error('The immutable execution authority is malformed or does not match its lease');
|
|
411
394
|
}
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
: null;
|
|
415
|
-
const releaseProfile = resolveDockerSandboxReleaseForPersistedEnvironment(environment.provider_version, environment.template_identity, authority.agent, profileRevision?.profile.template_overrides?.[authority.agent]);
|
|
416
|
-
if (!releaseProfile) {
|
|
417
|
-
throw new Error('The persisted Docker Sandbox release is unsupported or security-blocked');
|
|
395
|
+
if (!environment.template_identity || environment.agent_identity !== authority.agent) {
|
|
396
|
+
throw new Error('The persisted Docker Sandbox ownership identity is incomplete or does not match its authority');
|
|
418
397
|
}
|
|
419
398
|
if (binding.placement_json !== null && !parsedPlacement) {
|
|
420
399
|
throw new Error('The immutable execution placement is malformed or does not match its lease');
|
|
@@ -551,11 +530,14 @@ export const reconcileExecutionEnvironmentLifecycleOperations = async (adapter =
|
|
|
551
530
|
const now = new Date().toISOString();
|
|
552
531
|
const staleClaimBefore = new Date(Date.now() - 5 * 60_000).toISOString();
|
|
553
532
|
const staleClaims = db.prepare(`
|
|
554
|
-
SELECT id, project_id, lifecycle_state, operation_claim_id, operation_kind
|
|
533
|
+
SELECT id, project_id, target_key, lifecycle_state, operation_claim_id, operation_kind
|
|
555
534
|
FROM execution_environments
|
|
556
535
|
WHERE operation_claim_id IS NOT NULL AND operation_claimed_at < ?
|
|
557
536
|
`).all(staleClaimBefore);
|
|
558
537
|
for (const claim of staleClaims) {
|
|
538
|
+
if (isBundleDeletionTargetPending(claim.project_id, claim.target_key) || isBundleCleanupAbandoned(claim.project_id, claim.target_key)) {
|
|
539
|
+
continue;
|
|
540
|
+
}
|
|
559
541
|
const result = db.prepare(`
|
|
560
542
|
UPDATE execution_environments
|
|
561
543
|
SET operation_claim_id = NULL, operation_kind = NULL, operation_claimed_at = NULL, updated_at = ?
|
|
@@ -600,6 +582,9 @@ export const reconcileExecutionEnvironmentLifecycleOperations = async (adapter =
|
|
|
600
582
|
if (!environment) {
|
|
601
583
|
continue;
|
|
602
584
|
}
|
|
585
|
+
if (isBundleDeletionTargetPending(environment.project_id, environment.target_key) || isBundleCleanupAbandoned(environment.project_id, environment.target_key)) {
|
|
586
|
+
continue;
|
|
587
|
+
}
|
|
603
588
|
try {
|
|
604
589
|
if (environment.idle_stop_at !== null && ['ready', 'running'].includes(environment.lifecycle_state)) {
|
|
605
590
|
await stopExecutionEnvironment({
|
|
@@ -648,6 +633,10 @@ export const reconcileExecutionEnvironments = async (adapter = createDefaultDock
|
|
|
648
633
|
summary.deferred += 1;
|
|
649
634
|
continue;
|
|
650
635
|
}
|
|
636
|
+
if (isBundleDeletionTargetPending(environment.project_id, environment.target_key) || isBundleCleanupAbandoned(environment.project_id, environment.target_key)) {
|
|
637
|
+
summary.deferred += 1;
|
|
638
|
+
continue;
|
|
639
|
+
}
|
|
651
640
|
try {
|
|
652
641
|
const profileRevision = environment.execution_profile_revision_id
|
|
653
642
|
? getExecutionProfileRevision(environment.project_id, environment.execution_profile_revision_id)
|
|
@@ -756,6 +745,9 @@ export const reconcileOrphanedExecutionEnvironments = async (adapter = createDef
|
|
|
756
745
|
const scopes = listOrphanedExecutionEnvironmentScopes();
|
|
757
746
|
const summary = { scanned: scopes.length, cleaned: 0, failed: 0 };
|
|
758
747
|
for (const scope of scopes) {
|
|
748
|
+
if (isBundleDeletionTargetPending(scope.projectId, scope.targetKey) || isBundleCleanupAbandoned(scope.projectId, scope.targetKey)) {
|
|
749
|
+
continue;
|
|
750
|
+
}
|
|
759
751
|
try {
|
|
760
752
|
const result = await cleanupExecutionEnvironmentsForTarget({ ...scope, adapter });
|
|
761
753
|
summary.cleaned += result.cleaned;
|
|
@@ -766,133 +758,6 @@ export const reconcileOrphanedExecutionEnvironments = async (adapter = createDef
|
|
|
766
758
|
}
|
|
767
759
|
return summary;
|
|
768
760
|
};
|
|
769
|
-
const
|
|
770
|
-
|
|
771
|
-
const conditions = [`${column('project_id')} = ?`];
|
|
772
|
-
const params = [scope.projectId];
|
|
773
|
-
if (scope.targetKind !== undefined) {
|
|
774
|
-
conditions.push(`${column('target_kind')} = ?`);
|
|
775
|
-
params.push(scope.targetKind);
|
|
776
|
-
}
|
|
777
|
-
if (scope.targetKey !== undefined) {
|
|
778
|
-
conditions.push(`${column('target_key')} = ?`);
|
|
779
|
-
params.push(scope.targetKey);
|
|
780
|
-
}
|
|
781
|
-
return { where: conditions.join(' AND '), params };
|
|
782
|
-
};
|
|
783
|
-
const assertNoActiveEnvironmentBindings = (scope) => {
|
|
784
|
-
const query = getCleanupScopeQuery(scope, 'environment');
|
|
785
|
-
const active = db.prepare(`
|
|
786
|
-
SELECT binding.environment_id, binding.execution_run_id
|
|
787
|
-
FROM execution_environment_run_bindings binding
|
|
788
|
-
JOIN execution_environments environment
|
|
789
|
-
ON environment.id = binding.environment_id AND environment.project_id = binding.project_id
|
|
790
|
-
WHERE ${query.where}
|
|
791
|
-
AND binding.released_at IS NULL
|
|
792
|
-
LIMIT 1
|
|
793
|
-
`).get(...query.params);
|
|
794
|
-
if (active) {
|
|
795
|
-
throw new ExecutionEnvironmentCleanupError(`Execution environment ${active.environment_id} is still used by active run ${active.execution_run_id}`);
|
|
796
|
-
}
|
|
797
|
-
};
|
|
798
|
-
const prepareEnvironmentsForCleanup = (scope, eventType, message) => {
|
|
799
|
-
const query = getCleanupScopeQuery(scope);
|
|
800
|
-
const rows = db.prepare(`
|
|
801
|
-
SELECT id FROM execution_environments
|
|
802
|
-
WHERE ${query.where} AND lifecycle_state NOT IN ('retiring', 'cleanup_pending', 'retired')
|
|
803
|
-
ORDER BY created_at ASC, id ASC
|
|
804
|
-
`).all(...query.params);
|
|
805
|
-
for (const row of rows) {
|
|
806
|
-
transitionExecutionEnvironment({
|
|
807
|
-
projectId: scope.projectId,
|
|
808
|
-
environmentId: row.id,
|
|
809
|
-
state: 'retiring',
|
|
810
|
-
eventType,
|
|
811
|
-
message,
|
|
812
|
-
});
|
|
813
|
-
}
|
|
814
|
-
};
|
|
815
|
-
const cleanupExecutionEnvironments = async (scope, claimId, adapter = createDefaultDockerSandboxAdapter(), options) => {
|
|
816
|
-
assertNoActiveEnvironmentBindings(scope);
|
|
817
|
-
prepareEnvironmentsForCleanup(scope, options.startedEventType, options.startedMessage);
|
|
818
|
-
const staleBefore = new Date().toISOString();
|
|
819
|
-
let cleaned = 0;
|
|
820
|
-
while (true) {
|
|
821
|
-
const claimed = claimExecutionEnvironmentsForCleanup({
|
|
822
|
-
projectId: scope.projectId,
|
|
823
|
-
targetKind: scope.targetKind,
|
|
824
|
-
targetKey: scope.targetKey,
|
|
825
|
-
claimId,
|
|
826
|
-
limit: 200,
|
|
827
|
-
staleBefore,
|
|
828
|
-
ignoreRetryAt: true,
|
|
829
|
-
});
|
|
830
|
-
if (claimed.length === 0) {
|
|
831
|
-
break;
|
|
832
|
-
}
|
|
833
|
-
const failures = [];
|
|
834
|
-
for (const environment of claimed) {
|
|
835
|
-
try {
|
|
836
|
-
const expected = resolveExpectedDockerSandbox(environment);
|
|
837
|
-
const observed = await adapter.inspect(expected.name);
|
|
838
|
-
if (observed && !inspectionMatches(expected, observed)) {
|
|
839
|
-
throw new DockerSandboxCollisionFailure(expected.name, `Sandbox ${expected.name} does not match Archon's persisted external identity`);
|
|
840
|
-
}
|
|
841
|
-
if (observed?.state === 'running') {
|
|
842
|
-
await adapter.stop(expected);
|
|
843
|
-
}
|
|
844
|
-
if (observed) {
|
|
845
|
-
await adapter.remove(expected);
|
|
846
|
-
}
|
|
847
|
-
const remaining = await adapter.inspect(expected.name);
|
|
848
|
-
if (remaining && !inspectionMatches(expected, remaining)) {
|
|
849
|
-
throw new DockerSandboxCollisionFailure(expected.name, `Sandbox ${expected.name} was replaced before absence could be verified`);
|
|
850
|
-
}
|
|
851
|
-
if (remaining) {
|
|
852
|
-
throw new Error(`Sandbox ${expected.name} still exists after removal`);
|
|
853
|
-
}
|
|
854
|
-
completeExecutionEnvironmentCleanup({ projectId: scope.projectId, environmentId: environment.id, claimId });
|
|
855
|
-
}
|
|
856
|
-
catch (error) {
|
|
857
|
-
const failure = error instanceof Error ? error : new Error(String(error));
|
|
858
|
-
failExecutionEnvironmentCleanup({
|
|
859
|
-
projectId: scope.projectId,
|
|
860
|
-
environmentId: environment.id,
|
|
861
|
-
claimId,
|
|
862
|
-
failure: {
|
|
863
|
-
code: error instanceof DockerSandboxCollisionFailure ? 'identity_mismatch' : 'cleanup_failed',
|
|
864
|
-
message: failure.message,
|
|
865
|
-
},
|
|
866
|
-
});
|
|
867
|
-
failures.push(failure);
|
|
868
|
-
}
|
|
869
|
-
}
|
|
870
|
-
if (failures.length > 0) {
|
|
871
|
-
throw new ExecutionEnvironmentCleanupError(`Failed to clean ${failures.length} execution environment(s): ${failures[0]?.message ?? 'Unknown cleanup failure'}`, { cause: new AggregateError(failures) });
|
|
872
|
-
}
|
|
873
|
-
cleaned += claimed.length;
|
|
874
|
-
}
|
|
875
|
-
const query = getCleanupScopeQuery(scope);
|
|
876
|
-
const remaining = db.prepare(`
|
|
877
|
-
SELECT id FROM execution_environments
|
|
878
|
-
WHERE ${query.where} AND lifecycle_state <> 'retired'
|
|
879
|
-
LIMIT 1
|
|
880
|
-
`).get(...query.params);
|
|
881
|
-
if (remaining) {
|
|
882
|
-
throw new ExecutionEnvironmentCleanupError(`Execution environment ${remaining.id} could not be claimed for verified cleanup.`);
|
|
883
|
-
}
|
|
884
|
-
return { cleaned };
|
|
885
|
-
};
|
|
886
|
-
export const cleanupExecutionEnvironmentsForTarget = async (input) => cleanupExecutionEnvironments({
|
|
887
|
-
projectId: input.projectId,
|
|
888
|
-
targetKind: input.targetKind,
|
|
889
|
-
targetKey: input.targetKey,
|
|
890
|
-
}, randomUUID(), input.adapter, {
|
|
891
|
-
startedEventType: 'environment_target_deletion_started',
|
|
892
|
-
startedMessage: 'Environment cleanup started because its execution target is being deleted.',
|
|
893
|
-
});
|
|
894
|
-
export const cleanupProjectExecutionEnvironments = async (projectId, claimId, adapter = createDefaultDockerSandboxAdapter()) => cleanupExecutionEnvironments({ projectId }, claimId, adapter, {
|
|
895
|
-
startedEventType: 'environment_project_deletion_started',
|
|
896
|
-
startedMessage: 'Environment cleanup started for claimed project deletion.',
|
|
897
|
-
});
|
|
761
|
+
export const cleanupExecutionEnvironmentsForTarget = (...args) => cleanupTarget(...args);
|
|
762
|
+
export const cleanupProjectExecutionEnvironments = (...args) => cleanupProject(...args);
|
|
898
763
|
//# sourceMappingURL=executionEnvironmentReconciliation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executionEnvironmentReconciliation.js","sourceRoot":"","sources":["../../../server/lib/executionEnvironmentReconciliation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"executionEnvironmentReconciliation.js","sourceRoot":"","sources":["../../../server/lib/executionEnvironmentReconciliation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import { randomUUID } from 'crypto';
|
|
2
|
+
import db from '../db.js';
|
|
3
|
+
import { isBundleCleanupAbandoned } from './bundleDeletionStore.js';
|
|
4
|
+
import { createDockerSandboxAdapter, createDockerSandboxName, createSbxCommandRunner, DOCKER_SANDBOX_PROVIDER, DockerSandboxCollisionFailure, } from './dockerSandboxExecutionEnvironment.js';
|
|
5
|
+
import { claimExecutionEnvironmentsForCleanup, completeExecutionEnvironmentCleanup, failExecutionEnvironmentCleanup, transitionExecutionEnvironment, } from './executionEnvironments.js';
|
|
6
|
+
const CLEANUP_TIMEOUT_MS = 30_000;
|
|
7
|
+
export const ExecutionEnvironmentCleanupError = class extends Error {
|
|
8
|
+
constructor(message, options = {}) {
|
|
9
|
+
super(message, options);
|
|
10
|
+
this.name = 'ExecutionEnvironmentCleanupError';
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
export const createDefaultDockerSandboxAdapter = () => (createDockerSandboxAdapter(createSbxCommandRunner()));
|
|
14
|
+
export const resolveExpectedDockerSandbox = (environment, requestedAgent) => {
|
|
15
|
+
if (environment.provider_kind !== DOCKER_SANDBOX_PROVIDER || !environment.agent_identity || !environment.template_identity) {
|
|
16
|
+
throw new Error(`Execution environment ${environment.id} has incomplete persisted sandbox ownership evidence`);
|
|
17
|
+
}
|
|
18
|
+
if (requestedAgent && environment.agent_identity !== requestedAgent) {
|
|
19
|
+
throw new Error(`Execution environment ${environment.id} is not owned by the requested agent template`);
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
name: environment.external_id ?? createDockerSandboxName({
|
|
23
|
+
projectId: environment.project_id,
|
|
24
|
+
targetKey: environment.target_key,
|
|
25
|
+
environmentRevision: environment.environment_revision,
|
|
26
|
+
validationFingerprint: environment.environment_validation_fingerprint,
|
|
27
|
+
}),
|
|
28
|
+
agent: environment.agent_identity,
|
|
29
|
+
workspacePath: environment.target_workspace_path,
|
|
30
|
+
template: environment.template_identity,
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export const inspectionMatches = (expected, observed) => (expected.name === observed.name
|
|
34
|
+
&& expected.agent === observed.agent
|
|
35
|
+
&& expected.workspacePath === observed.workspacePath
|
|
36
|
+
&& expected.template === observed.template);
|
|
37
|
+
const getCleanupScopeQuery = (scope, alias = '') => {
|
|
38
|
+
const column = (name) => alias ? `${alias}.${name}` : name;
|
|
39
|
+
const conditions = [`${column('project_id')} = ?`];
|
|
40
|
+
const params = [scope.projectId];
|
|
41
|
+
if (scope.targetKind !== undefined) {
|
|
42
|
+
conditions.push(`${column('target_kind')} = ?`);
|
|
43
|
+
params.push(scope.targetKind);
|
|
44
|
+
}
|
|
45
|
+
if (scope.targetKey !== undefined) {
|
|
46
|
+
conditions.push(`${column('target_key')} = ?`);
|
|
47
|
+
params.push(scope.targetKey);
|
|
48
|
+
}
|
|
49
|
+
if (db.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'bundle_deletion_jobs'").get()) {
|
|
50
|
+
conditions.push(`NOT EXISTS (
|
|
51
|
+
SELECT 1 FROM bundle_deletion_jobs job
|
|
52
|
+
WHERE job.project_id = ${column('project_id')} AND job.target_key = ${column('target_key')}
|
|
53
|
+
AND job.status = 'abandoned'
|
|
54
|
+
)`);
|
|
55
|
+
}
|
|
56
|
+
return { where: conditions.join(' AND '), params };
|
|
57
|
+
};
|
|
58
|
+
const assertNoActiveEnvironmentBindings = (scope) => {
|
|
59
|
+
const query = getCleanupScopeQuery(scope, 'environment');
|
|
60
|
+
const active = db.prepare(`
|
|
61
|
+
SELECT binding.environment_id, binding.execution_run_id
|
|
62
|
+
FROM execution_environment_run_bindings binding
|
|
63
|
+
JOIN execution_environments environment
|
|
64
|
+
ON environment.id = binding.environment_id AND environment.project_id = binding.project_id
|
|
65
|
+
WHERE ${query.where}
|
|
66
|
+
AND binding.released_at IS NULL
|
|
67
|
+
LIMIT 1
|
|
68
|
+
`).get(...query.params);
|
|
69
|
+
if (active) {
|
|
70
|
+
throw new ExecutionEnvironmentCleanupError(`Execution environment ${active.environment_id} is still used by active run ${active.execution_run_id}`);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
const prepareEnvironmentsForCleanup = (scope, eventType, message) => {
|
|
74
|
+
const query = getCleanupScopeQuery(scope, 'environment');
|
|
75
|
+
const rows = db.prepare(`
|
|
76
|
+
SELECT id FROM execution_environments environment
|
|
77
|
+
WHERE ${query.where} AND lifecycle_state NOT IN ('retiring', 'cleanup_pending', 'retired')
|
|
78
|
+
AND operation_claim_id IS NULL
|
|
79
|
+
ORDER BY created_at ASC, id ASC
|
|
80
|
+
`).all(...query.params);
|
|
81
|
+
for (const row of rows) {
|
|
82
|
+
transitionExecutionEnvironment({
|
|
83
|
+
projectId: scope.projectId,
|
|
84
|
+
environmentId: row.id,
|
|
85
|
+
state: 'retiring',
|
|
86
|
+
eventType,
|
|
87
|
+
message,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
const cleanupExecutionEnvironments = async (scope, claimId, adapter = createDefaultDockerSandboxAdapter(), options) => {
|
|
92
|
+
if (scope.targetKey !== undefined && isBundleCleanupAbandoned(scope.projectId, scope.targetKey)) {
|
|
93
|
+
return { cleaned: 0 };
|
|
94
|
+
}
|
|
95
|
+
assertNoActiveEnvironmentBindings(scope);
|
|
96
|
+
prepareEnvironmentsForCleanup(scope, options.startedEventType, options.startedMessage);
|
|
97
|
+
const commandOptions = { timeoutMs: CLEANUP_TIMEOUT_MS, ...options.commandOptions };
|
|
98
|
+
const staleBefore = new Date(Date.now() - 5 * 60_000).toISOString();
|
|
99
|
+
let cleaned = 0;
|
|
100
|
+
while (true) {
|
|
101
|
+
const query = getCleanupScopeQuery(scope, 'environment');
|
|
102
|
+
const targets = db.prepare(`
|
|
103
|
+
SELECT DISTINCT target_kind, target_key FROM execution_environments environment
|
|
104
|
+
WHERE ${query.where}
|
|
105
|
+
`).all(...query.params);
|
|
106
|
+
const claimed = targets.flatMap(target => claimExecutionEnvironmentsForCleanup({
|
|
107
|
+
projectId: scope.projectId,
|
|
108
|
+
targetKind: target.target_kind,
|
|
109
|
+
targetKey: target.target_key,
|
|
110
|
+
claimId,
|
|
111
|
+
limit: 200,
|
|
112
|
+
staleBefore,
|
|
113
|
+
ignoreRetryAt: true,
|
|
114
|
+
}));
|
|
115
|
+
if (claimed.length === 0) {
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
const failures = [];
|
|
119
|
+
for (const environment of claimed) {
|
|
120
|
+
try {
|
|
121
|
+
const expected = resolveExpectedDockerSandbox(environment);
|
|
122
|
+
const observed = await adapter.inspect(expected.name, commandOptions);
|
|
123
|
+
if (observed && !inspectionMatches(expected, observed)) {
|
|
124
|
+
throw new DockerSandboxCollisionFailure(expected.name, `Sandbox ${expected.name} does not match Archon's persisted external identity`);
|
|
125
|
+
}
|
|
126
|
+
if (observed?.state === 'running') {
|
|
127
|
+
await adapter.stop(expected, commandOptions);
|
|
128
|
+
}
|
|
129
|
+
if (observed) {
|
|
130
|
+
await adapter.remove(expected, commandOptions);
|
|
131
|
+
}
|
|
132
|
+
const remaining = await adapter.inspect(expected.name, commandOptions);
|
|
133
|
+
if (remaining && !inspectionMatches(expected, remaining)) {
|
|
134
|
+
throw new DockerSandboxCollisionFailure(expected.name, `Sandbox ${expected.name} was replaced before absence could be verified`);
|
|
135
|
+
}
|
|
136
|
+
if (remaining) {
|
|
137
|
+
throw new Error(`Sandbox ${expected.name} still exists after removal`);
|
|
138
|
+
}
|
|
139
|
+
completeExecutionEnvironmentCleanup({ projectId: scope.projectId, environmentId: environment.id, claimId });
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
const failure = error instanceof Error ? error : new Error(String(error));
|
|
143
|
+
failures.push(failure);
|
|
144
|
+
try {
|
|
145
|
+
failExecutionEnvironmentCleanup({
|
|
146
|
+
projectId: scope.projectId,
|
|
147
|
+
environmentId: environment.id,
|
|
148
|
+
claimId,
|
|
149
|
+
failure: {
|
|
150
|
+
code: error instanceof DockerSandboxCollisionFailure ? 'identity_mismatch' : 'cleanup_failed',
|
|
151
|
+
message: failure.message,
|
|
152
|
+
},
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
catch (recordingError) {
|
|
156
|
+
failures.push(recordingError instanceof Error ? recordingError : new Error(String(recordingError)));
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
if (failures.length > 0) {
|
|
161
|
+
throw new ExecutionEnvironmentCleanupError(`Failed to clean ${failures.length} execution environment(s): ${failures[0]?.message ?? 'Unknown cleanup failure'}`, { cause: new AggregateError(failures) });
|
|
162
|
+
}
|
|
163
|
+
cleaned += claimed.length;
|
|
164
|
+
}
|
|
165
|
+
const query = getCleanupScopeQuery(scope, 'environment');
|
|
166
|
+
const remaining = db.prepare(`
|
|
167
|
+
SELECT id FROM execution_environments environment
|
|
168
|
+
WHERE ${query.where} AND lifecycle_state <> 'retired'
|
|
169
|
+
LIMIT 1
|
|
170
|
+
`).get(...query.params);
|
|
171
|
+
if (remaining) {
|
|
172
|
+
throw new ExecutionEnvironmentCleanupError(`Execution environment ${remaining.id} could not be claimed for verified cleanup.`);
|
|
173
|
+
}
|
|
174
|
+
return { cleaned };
|
|
175
|
+
};
|
|
176
|
+
export const cleanupExecutionEnvironmentsForTarget = async (input) => cleanupExecutionEnvironments({
|
|
177
|
+
projectId: input.projectId,
|
|
178
|
+
targetKind: input.targetKind,
|
|
179
|
+
targetKey: input.targetKey,
|
|
180
|
+
}, input.claimId ?? randomUUID(), input.adapter, {
|
|
181
|
+
startedEventType: 'environment_target_deletion_started',
|
|
182
|
+
startedMessage: 'Environment cleanup started because its execution target is being deleted.',
|
|
183
|
+
commandOptions: input.commandOptions,
|
|
184
|
+
});
|
|
185
|
+
export const cleanupProjectExecutionEnvironments = async (projectId, claimId, adapter = createDefaultDockerSandboxAdapter()) => cleanupExecutionEnvironments({ projectId }, claimId, adapter, {
|
|
186
|
+
startedEventType: 'environment_project_deletion_started',
|
|
187
|
+
startedMessage: 'Environment cleanup started for claimed project deletion.',
|
|
188
|
+
});
|
|
189
|
+
const snapshotContainsEnvironment = (snapshot, environment) => {
|
|
190
|
+
if (Array.isArray(snapshot)) {
|
|
191
|
+
return snapshot.some(entry => snapshotContainsEnvironment(entry, environment));
|
|
192
|
+
}
|
|
193
|
+
if (!snapshot || typeof snapshot !== 'object') {
|
|
194
|
+
return false;
|
|
195
|
+
}
|
|
196
|
+
const record = snapshot;
|
|
197
|
+
if (Object.entries(environment).every(([key, value]) => record[key] === value)) {
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
return Object.values(record).some(value => snapshotContainsEnvironment(value, environment));
|
|
201
|
+
};
|
|
202
|
+
// Called inside project deletion's final transaction, after run graph cleanup.
|
|
203
|
+
export const deleteArchivedAbandonedProjectEnvironments = (projectId) => {
|
|
204
|
+
const environments = db.prepare(`
|
|
205
|
+
SELECT environment.*, job.environment_snapshot_json
|
|
206
|
+
FROM execution_environments environment
|
|
207
|
+
JOIN bundle_deletion_jobs job ON job.project_id = environment.project_id AND job.target_key = environment.target_key
|
|
208
|
+
WHERE environment.project_id = ? AND job.status = 'abandoned'
|
|
209
|
+
`).all(projectId);
|
|
210
|
+
for (const row of environments) {
|
|
211
|
+
const { environment_snapshot_json: snapshotJson, ...environment } = row;
|
|
212
|
+
const activeBinding = db.prepare(`
|
|
213
|
+
SELECT 1 FROM execution_environment_run_bindings
|
|
214
|
+
WHERE project_id = ? AND environment_id = ? AND released_at IS NULL LIMIT 1
|
|
215
|
+
`).get(projectId, row.id);
|
|
216
|
+
if (activeBinding || row.operation_claim_id !== null || row.cleanup_claim_id !== null) {
|
|
217
|
+
throw new ExecutionEnvironmentCleanupError(`Abandoned execution environment ${row.id} still has an active binding or claim.`);
|
|
218
|
+
}
|
|
219
|
+
let snapshot;
|
|
220
|
+
try {
|
|
221
|
+
snapshot = JSON.parse(snapshotJson);
|
|
222
|
+
}
|
|
223
|
+
catch {
|
|
224
|
+
throw new ExecutionEnvironmentCleanupError(`Abandoned execution environment ${row.id} has no valid persisted ownership archive.`);
|
|
225
|
+
}
|
|
226
|
+
if (!snapshotContainsEnvironment(snapshot, environment)) {
|
|
227
|
+
throw new ExecutionEnvironmentCleanupError(`Abandoned execution environment ${row.id} has no matching persisted ownership archive.`);
|
|
228
|
+
}
|
|
229
|
+
db.prepare('DELETE FROM execution_environments WHERE project_id = ? AND id = ?').run(projectId, row.id);
|
|
230
|
+
}
|
|
231
|
+
};
|
|
232
|
+
//# sourceMappingURL=executionEnvironmentTargetCleanup.js.map
|