@straiffi/archon 1.11.9 → 1.11.11
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-CgC2rnNq.js → ActivityView-DhXAk8nD.js} +1 -1
- package/dist/client/assets/{GitHubActionsDialog-XXGwm-bw.js → GitHubActionsDialog-eV8vDGmv.js} +1 -1
- package/dist/client/assets/{VerificationDialog-C8cDKxSG.js → VerificationDialog-C4Ij0P9V.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-BhdIU_o9.js → architectureDiagram-3BPJPVTR--XT-8mH7.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-CfKNdNso.js → blockDiagram-GPEHLZMM-A3lej45d.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-BYOg4iNZ.js → c4Diagram-AAUBKEIU-BsiLJgam.js} +1 -1
- package/dist/client/assets/channel-DcOmia11.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-JmBb9p2l.js → chunk-2J33WTMH-Dr5H5EGn.js} +1 -1
- package/dist/client/assets/{chunk-3OPIFGDE-CuCn8uDI.js → chunk-3OPIFGDE-D_cjBOY3.js} +1 -1
- package/dist/client/assets/{chunk-5ZQYHXKU-DaGbZz7d.js → chunk-5ZQYHXKU-D3lD57Bx.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-D7UwchWL.js → chunk-727SXJPM-UB6SKeIY.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-CxYpis5S.js → chunk-AQP2D5EJ-P6A2b7ic.js} +1 -1
- package/dist/client/assets/{chunk-CSCIHK7Q-DF4Jo5lo.js → chunk-CSCIHK7Q-CMjSxVuN.js} +1 -1
- package/dist/client/assets/{chunk-KSCS5N6A-Bul_8QaO.js → chunk-KSCS5N6A-D9rfxTvN.js} +1 -1
- package/dist/client/assets/{chunk-L5ZTLDWV-BQvBZt_1.js → chunk-L5ZTLDWV-B69CbLIs.js} +1 -1
- package/dist/client/assets/{chunk-LZXEDZCA-BPsejGww.js → chunk-LZXEDZCA-BB4u5QGw.js} +2 -2
- package/dist/client/assets/{chunk-ND2GUHAM-D8AX2HAv.js → chunk-ND2GUHAM-CiPVJM4O.js} +1 -1
- package/dist/client/assets/{chunk-NZK2D7GU-CE21a8CK.js → chunk-NZK2D7GU-ByHDa020.js} +1 -1
- package/dist/client/assets/{chunk-O5CBEL6O-vZQ8YCvm.js → chunk-O5CBEL6O-CJixRpq_.js} +1 -1
- package/dist/client/assets/{chunk-WU5MYG2G-BpBNiw0j.js → chunk-WU5MYG2G-iQo_M1AS.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CP_nUDz7.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-cHyF23wV.js +1 -0
- package/dist/client/assets/{dagre-BM42HDAG-BqEPuJwq.js → dagre-BM42HDAG-Cp0C8m-n.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-BWLSNrm2.js → diagram-2AECGRRQ-HKfPlcrp.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-CUNUlEy4.js → diagram-5GNKFQAL-CVqac4lf.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-CgZcDZ0J.js → diagram-KO2AKTUF-C0Rs9AXE.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-DTfMha7_.js → diagram-LMA3HP47-BN6HAX-s.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-ClO5evmB.js → diagram-OG6HWLK6-D3ykU1BG.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-BRW1HE33.js → erDiagram-TEJ5UH35-DRYdle2Q.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-tC2xALm9.js → flowDiagram-I6XJVG4X-BoCAsLFi.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-D7Bu6hss.js → ganttDiagram-6RSMTGT7-rTjNCkO6.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-Cx1uYcGX.js → gitGraphDiagram-PVQCEYII-WOFN74ol.js} +1 -1
- package/dist/client/assets/{index-CArcyEjQ.js → index-CjQf4He8.js} +83 -77
- package/dist/client/assets/{infoDiagram-5YYISTIA-bKT-ZR4K.js → infoDiagram-5YYISTIA-DoOumPs2.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-CrUBKkGR.js → ishikawaDiagram-YF4QCWOH-CcXTjYSk.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-CCmXkk8M.js → journeyDiagram-JHISSGLW-FUkB7RNm.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-BmcV7QM-.js → kanban-definition-UN3LZRKU-DQ9QVLE3.js} +1 -1
- package/dist/client/assets/{line-C5oH-IfR.js → line-DclFnIyG.js} +1 -1
- package/dist/client/assets/{mermaid-parser.core-BFyFUctK.js → mermaid-parser.core-35QfBVsT.js} +1 -1
- package/dist/client/assets/{mermaid.core-DXkHU1mX.js → mermaid.core-DUGvejuM.js} +3 -3
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-DhErnbAy.js → mindmap-definition-RKZ34NQL-B0BKDy7C.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-B8pkGeer.js → pieDiagram-4H26LBE5-C5Dnh4Wj.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-BkYWz3t_.js → quadrantDiagram-W4KKPZXB-C2QopzmK.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-DB6jC89I.js → requirementDiagram-4Y6WPE33-BdvmFwD3.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-BeAslLcb.js → sankeyDiagram-5OEKKPKP-C8uEigA1.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BgXC1aKi.js → sequenceDiagram-3UESZ5HK-C7aiaSWU.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-Dj3Qlk0A.js → stateDiagram-AJRCARHV-fGTraRod.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-jJPXa3YX.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-C8ncLV_K.js → timeline-definition-PNZ67QCA-BbeaBG9A.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-jgBSpqC1.js → vennDiagram-CIIHVFJN-DFQ9EF7H.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DfGD5Kys.js → wardleyDiagram-YWT4CUSO-Bl-Acd-e.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-Dyk41E2n.js → xychartDiagram-2RQKCTM6-C5hjKfYz.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/db.js +2 -0
- package/dist/server/db.js.map +1 -1
- package/dist/server/index.js +88 -175
- package/dist/server/index.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/diffExplanationJobs.js +13 -23
- package/dist/server/lib/diffExplanationJobs.js.map +1 -1
- package/dist/server/lib/diffExplanationRoutes.js +9 -2
- package/dist/server/lib/diffExplanationRoutes.js.map +1 -1
- package/dist/server/lib/diffExplanationTargets.js +22 -0
- package/dist/server/lib/diffExplanationTargets.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 +8 -55
- package/dist/server/lib/dockerSandboxExecutionEnvironment.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/git.js +26 -6
- 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/serviceRunLogs.js +18 -21
- package/dist/server/lib/serviceRunLogs.js.map +1 -1
- package/dist/server/lib/types.js.map +1 -1
- package/dist/server/lib/workspaceDiff.js +50 -4
- package/dist/server/lib/workspaceDiff.js.map +1 -1
- package/dist/server/lib/workspaceDiffCommit.js +13 -0
- package/dist/server/lib/workspaceDiffCommit.js.map +1 -0
- package/dist/server/lib/workspaceDiffRoutes.js +9 -3
- package/dist/server/lib/workspaceDiffRoutes.js.map +1 -1
- package/package.json +1 -1
- package/dist/client/assets/channel-4wFtrIng.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-DNAwGSF5.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-cskOKMdS.js +0 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-I1Ry2lsa.js +0 -1
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
export const initializeBundleDeletionSchema = (db) => {
|
|
2
|
+
const columns = [
|
|
3
|
+
['status', "TEXT NOT NULL DEFAULT 'pending' CHECK (status IN ('pending', 'blocked', 'completed', 'abandoned'))"],
|
|
4
|
+
['retry_attempts', 'INTEGER NOT NULL DEFAULT 0'],
|
|
5
|
+
['failure_code', 'TEXT'],
|
|
6
|
+
['quarantined', 'INTEGER NOT NULL DEFAULT 0'],
|
|
7
|
+
['project_name', "TEXT NOT NULL DEFAULT ''"],
|
|
8
|
+
['resources_json', "TEXT NOT NULL DEFAULT '[]'"],
|
|
9
|
+
['environment_snapshot_json', "TEXT NOT NULL DEFAULT '[]'"],
|
|
10
|
+
['abandoned_at', 'TEXT'],
|
|
11
|
+
];
|
|
12
|
+
const existing = db.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'bundle_deletion_jobs'").get();
|
|
13
|
+
if (existing) {
|
|
14
|
+
const names = new Set(db.prepare('PRAGMA table_info(bundle_deletion_jobs)').all().map(column => column.name));
|
|
15
|
+
for (const [name, definition] of columns) {
|
|
16
|
+
if (!names.has(name)) {
|
|
17
|
+
db.exec(`ALTER TABLE bundle_deletion_jobs ADD COLUMN ${name} ${definition}`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
// Jobs and their ownership snapshots must outlive a deleted project.
|
|
22
|
+
const createTable = (name) => `CREATE TABLE IF NOT EXISTS ${name} (
|
|
23
|
+
bundle_id TEXT PRIMARY KEY, project_id TEXT NOT NULL, target_key TEXT NOT NULL,
|
|
24
|
+
repo_path TEXT NOT NULL, branch TEXT NOT NULL, workspace_path TEXT NOT NULL,
|
|
25
|
+
phase TEXT NOT NULL DEFAULT 'sandboxes' CHECK (phase IN ('sandboxes', 'worktree', 'branch', 'completed')),
|
|
26
|
+
claim_id TEXT, claimed_at TEXT, attempts INTEGER NOT NULL DEFAULT 0, retry_at TEXT,
|
|
27
|
+
last_error TEXT, branch_warning TEXT, created_at TEXT NOT NULL, completed_at TEXT,
|
|
28
|
+
${columns.map(([name, definition]) => `${name} ${definition}`).join(', ')},
|
|
29
|
+
CHECK ((claim_id IS NULL) = (claimed_at IS NULL))
|
|
30
|
+
)`;
|
|
31
|
+
db.transaction(() => {
|
|
32
|
+
const triggers = db.prepare("SELECT name FROM sqlite_master WHERE type = 'trigger' AND name LIKE 'bundle_deletion_%'").all();
|
|
33
|
+
for (const trigger of triggers) {
|
|
34
|
+
db.exec(`DROP TRIGGER "${trigger.name.replaceAll('"', '""')}"`);
|
|
35
|
+
}
|
|
36
|
+
if (existing && db.prepare('PRAGMA foreign_key_list(bundle_deletion_jobs)').all().length > 0) {
|
|
37
|
+
db.exec(createTable('bundle_deletion_jobs_migrated'));
|
|
38
|
+
db.exec(`INSERT INTO bundle_deletion_jobs_migrated SELECT * FROM bundle_deletion_jobs;
|
|
39
|
+
DROP TABLE bundle_deletion_jobs;
|
|
40
|
+
ALTER TABLE bundle_deletion_jobs_migrated RENAME TO bundle_deletion_jobs;`);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
db.exec(createTable('bundle_deletion_jobs'));
|
|
44
|
+
}
|
|
45
|
+
db.exec(`UPDATE bundle_deletion_jobs SET status = 'completed' WHERE phase = 'completed' AND status = 'pending';
|
|
46
|
+
UPDATE bundle_deletion_jobs SET project_name = COALESCE((SELECT name FROM projects WHERE id = project_id), project_id)
|
|
47
|
+
WHERE project_name = '';
|
|
48
|
+
DROP INDEX IF EXISTS bundle_deletion_reserved_branch;
|
|
49
|
+
DROP INDEX IF EXISTS bundle_deletion_reserved_workspace;
|
|
50
|
+
CREATE TABLE IF NOT EXISTS bundle_cleanup_quarantines (
|
|
51
|
+
bundle_id TEXT NOT NULL, workspace_path TEXT NOT NULL, repo_path TEXT NOT NULL, branch TEXT NOT NULL,
|
|
52
|
+
PRIMARY KEY (bundle_id, workspace_path)
|
|
53
|
+
);`);
|
|
54
|
+
}).immediate();
|
|
55
|
+
db.exec(`
|
|
56
|
+
CREATE UNIQUE INDEX IF NOT EXISTS bundle_deletion_reserved_branch
|
|
57
|
+
ON bundle_deletion_jobs(project_id, branch COLLATE NOCASE) WHERE status IN ('pending', 'blocked');
|
|
58
|
+
CREATE UNIQUE INDEX IF NOT EXISTS bundle_deletion_reserved_workspace
|
|
59
|
+
ON bundle_deletion_jobs(workspace_path) WHERE status IN ('pending', 'blocked');
|
|
60
|
+
|
|
61
|
+
CREATE TRIGGER IF NOT EXISTS bundle_deletion_prevent_bundle_insert
|
|
62
|
+
BEFORE INSERT ON worktree_bundles
|
|
63
|
+
WHEN EXISTS (SELECT 1 FROM bundle_deletion_jobs job WHERE job.project_id = NEW.project_id
|
|
64
|
+
AND job.status IN ('pending', 'blocked') AND job.branch = NEW.branch COLLATE NOCASE)
|
|
65
|
+
OR EXISTS (SELECT 1 FROM bundle_cleanup_quarantines quarantine JOIN projects project ON project.id = NEW.project_id
|
|
66
|
+
WHERE quarantine.repo_path = project.repo_path AND quarantine.branch = NEW.branch COLLATE NOCASE)
|
|
67
|
+
BEGIN SELECT RAISE(ABORT, 'Bundle branch is reserved for pending cleanup'); END;
|
|
68
|
+
|
|
69
|
+
CREATE TRIGGER IF NOT EXISTS bundle_deletion_prevent_bundle_update
|
|
70
|
+
BEFORE UPDATE OF branch, project_id ON worktree_bundles
|
|
71
|
+
WHEN EXISTS (SELECT 1 FROM bundle_deletion_jobs job WHERE job.project_id = NEW.project_id
|
|
72
|
+
AND job.status IN ('pending', 'blocked') AND job.branch = NEW.branch COLLATE NOCASE)
|
|
73
|
+
OR EXISTS (SELECT 1 FROM bundle_cleanup_quarantines quarantine JOIN projects project ON project.id = NEW.project_id
|
|
74
|
+
WHERE quarantine.repo_path = project.repo_path AND quarantine.branch = NEW.branch COLLATE NOCASE)
|
|
75
|
+
BEGIN SELECT RAISE(ABORT, 'Bundle branch is reserved for pending cleanup'); END;
|
|
76
|
+
|
|
77
|
+
CREATE TRIGGER IF NOT EXISTS bundle_deletion_prevent_ticket_insert
|
|
78
|
+
BEFORE INSERT ON tickets
|
|
79
|
+
WHEN EXISTS (SELECT 1 FROM bundle_deletion_jobs job WHERE job.project_id = NEW.project_id
|
|
80
|
+
AND job.status IN ('pending', 'blocked', 'abandoned') AND (job.bundle_id = NEW.worktree_bundle_id
|
|
81
|
+
OR (job.status <> 'abandoned' AND job.branch = NEW.branch COLLATE NOCASE)))
|
|
82
|
+
OR EXISTS (SELECT 1 FROM bundle_cleanup_quarantines quarantine JOIN projects project ON project.id = NEW.project_id
|
|
83
|
+
WHERE quarantine.repo_path = project.repo_path AND quarantine.branch = NEW.branch COLLATE NOCASE)
|
|
84
|
+
BEGIN SELECT RAISE(ABORT, 'Ticket target is reserved for pending cleanup'); END;
|
|
85
|
+
|
|
86
|
+
CREATE TRIGGER IF NOT EXISTS bundle_deletion_prevent_ticket_update
|
|
87
|
+
BEFORE UPDATE OF branch, project_id, worktree_bundle_id ON tickets
|
|
88
|
+
WHEN EXISTS (SELECT 1 FROM bundle_deletion_jobs job WHERE job.project_id = NEW.project_id
|
|
89
|
+
AND job.status IN ('pending', 'blocked', 'abandoned') AND (job.bundle_id = NEW.worktree_bundle_id
|
|
90
|
+
OR (job.status <> 'abandoned' AND job.branch = NEW.branch COLLATE NOCASE)))
|
|
91
|
+
OR EXISTS (SELECT 1 FROM bundle_cleanup_quarantines quarantine JOIN projects project ON project.id = NEW.project_id
|
|
92
|
+
WHERE quarantine.repo_path = project.repo_path AND quarantine.branch = NEW.branch COLLATE NOCASE)
|
|
93
|
+
BEGIN SELECT RAISE(ABORT, 'Ticket target is reserved for pending cleanup'); END;
|
|
94
|
+
|
|
95
|
+
CREATE TRIGGER IF NOT EXISTS bundle_deletion_prevent_environment_insert
|
|
96
|
+
BEFORE INSERT ON execution_environments
|
|
97
|
+
WHEN EXISTS (SELECT 1 FROM bundle_deletion_jobs job WHERE job.status IN ('pending', 'blocked', 'abandoned')
|
|
98
|
+
AND ((job.project_id = NEW.project_id AND job.target_key = NEW.target_key)
|
|
99
|
+
OR (job.status <> 'abandoned' AND job.workspace_path = NEW.target_workspace_path)))
|
|
100
|
+
OR EXISTS (SELECT 1 FROM bundle_cleanup_quarantines WHERE workspace_path = NEW.target_workspace_path)
|
|
101
|
+
BEGIN SELECT RAISE(ABORT, 'Execution target is reserved for pending cleanup'); END;
|
|
102
|
+
|
|
103
|
+
CREATE TRIGGER IF NOT EXISTS bundle_deletion_prevent_binding_insert
|
|
104
|
+
BEFORE INSERT ON execution_environment_run_bindings
|
|
105
|
+
WHEN EXISTS (SELECT 1 FROM bundle_deletion_jobs job JOIN execution_environments environment
|
|
106
|
+
ON environment.project_id = job.project_id AND environment.target_key = job.target_key
|
|
107
|
+
WHERE job.status IN ('pending', 'blocked', 'abandoned') AND environment.id = NEW.environment_id AND NEW.released_at IS NULL)
|
|
108
|
+
BEGIN SELECT RAISE(ABORT, 'Execution target is reserved for pending cleanup'); END;
|
|
109
|
+
|
|
110
|
+
CREATE TRIGGER IF NOT EXISTS bundle_deletion_prevent_binding_reactivation
|
|
111
|
+
BEFORE UPDATE OF released_at, environment_id, project_id ON execution_environment_run_bindings
|
|
112
|
+
WHEN EXISTS (SELECT 1 FROM bundle_deletion_jobs job JOIN execution_environments environment
|
|
113
|
+
ON environment.project_id = job.project_id AND environment.target_key = job.target_key
|
|
114
|
+
WHERE job.status IN ('pending', 'blocked', 'abandoned') AND environment.id = NEW.environment_id AND NEW.released_at IS NULL)
|
|
115
|
+
BEGIN SELECT RAISE(ABORT, 'Execution target is reserved for pending cleanup'); END;
|
|
116
|
+
|
|
117
|
+
CREATE TRIGGER IF NOT EXISTS bundle_deletion_quarantined_project_insert
|
|
118
|
+
BEFORE INSERT ON projects
|
|
119
|
+
WHEN EXISTS (SELECT 1 FROM bundle_cleanup_quarantines WHERE workspace_path = NEW.repo_path)
|
|
120
|
+
BEGIN SELECT RAISE(ABORT, 'Workspace is quarantined after abandoned cleanup'); END;
|
|
121
|
+
|
|
122
|
+
CREATE TRIGGER IF NOT EXISTS bundle_deletion_prevent_abandoned_operation
|
|
123
|
+
BEFORE UPDATE OF operation_claim_id ON execution_environments
|
|
124
|
+
WHEN NEW.operation_claim_id IS NOT NULL AND EXISTS (SELECT 1 FROM bundle_deletion_jobs
|
|
125
|
+
WHERE project_id = NEW.project_id AND target_key = NEW.target_key AND status IN ('pending', 'blocked', 'abandoned'))
|
|
126
|
+
BEGIN SELECT RAISE(ABORT, 'Execution target is owned by a cleanup job'); END;
|
|
127
|
+
|
|
128
|
+
CREATE TRIGGER IF NOT EXISTS bundle_deletion_quarantined_project_update
|
|
129
|
+
BEFORE UPDATE OF repo_path ON projects
|
|
130
|
+
WHEN EXISTS (SELECT 1 FROM bundle_cleanup_quarantines WHERE workspace_path = NEW.repo_path)
|
|
131
|
+
BEGIN SELECT RAISE(ABORT, 'Workspace is quarantined after abandoned cleanup'); END;
|
|
132
|
+
`);
|
|
133
|
+
};
|
|
134
|
+
//# sourceMappingURL=bundleDeletionSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundleDeletionSchema.js","sourceRoot":"","sources":["../../../server/lib/bundleDeletionSchema.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,EAAqB,EAAE,EAAE;IACtE,MAAM,OAAO,GAAG;QACd,CAAC,QAAQ,EAAE,oGAAoG,CAAC;QAChH,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;QAChD,CAAC,cAAc,EAAE,MAAM,CAAC;QACxB,CAAC,aAAa,EAAE,4BAA4B,CAAC;QAC7C,CAAC,cAAc,EAAE,0BAA0B,CAAC;QAC5C,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;QAChD,CAAC,2BAA2B,EAAE,4BAA4B,CAAC;QAC3D,CAAC,cAAc,EAAE,MAAM,CAAC;KAChB,CAAA;IACV,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,oFAAoF,CAAC,CAAC,GAAG,EAAE,CAAA;IACvH,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,IAAI,GAAG,CAAE,EAAE,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC,GAAG,EAA8B,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QAC1I,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,OAAO,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,EAAE,CAAC,IAAI,CAAC,+CAA+C,IAAI,IAAI,UAAU,EAAE,CAAC,CAAA;YAC9E,CAAC;QACH,CAAC;IACH,CAAC;IACD,qEAAqE;IACrE,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,8BAA8B,IAAI;;;;;;MAMpE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;IAEzE,CAAA;IACF,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAClB,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,yFAAyF,CAAC,CAAC,GAAG,EAA6B,CAAA;QACvJ,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,EAAE,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QACjE,CAAC;QACD,IAAI,QAAQ,IAAI,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7F,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC,CAAA;YACrD,EAAE,CAAC,IAAI,CAAC;;kFAEoE,CAAC,CAAA;QAC/E,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAA;QAC9C,CAAC;QACD,EAAE,CAAC,IAAI,CAAC;;;;;;;;SAQH,CAAC,CAAA;IACR,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;IACd,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EP,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import db from '../db.js';
|
|
2
|
+
// Some isolated store tests intentionally use a minimal pre-migration database.
|
|
3
|
+
const hasDeletionJobs = () => Boolean(db.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'bundle_deletion_jobs'").get());
|
|
4
|
+
export const getBundleDeletionJob = (projectId, bundleId) => {
|
|
5
|
+
if (!hasDeletionJobs()) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
return db.prepare('SELECT * FROM bundle_deletion_jobs WHERE project_id = ? AND bundle_id = ?')
|
|
9
|
+
.get(projectId, bundleId) ?? null;
|
|
10
|
+
};
|
|
11
|
+
export const isBundleDeletionTargetPending = (projectId, targetKey) => hasDeletionJobs() && Boolean(db.prepare("SELECT 1 FROM bundle_deletion_jobs WHERE project_id = ? AND target_key = ? AND status IN ('pending', 'blocked', 'abandoned')")
|
|
12
|
+
.get(projectId, targetKey));
|
|
13
|
+
export const isBundleDeletionBranchReserved = (projectId, branch) => hasDeletionJobs() && Boolean(db.prepare(`SELECT 1 FROM bundle_deletion_jobs WHERE project_id = ? AND branch = ? COLLATE NOCASE AND status IN ('pending', 'blocked')
|
|
14
|
+
UNION ALL SELECT 1 FROM bundle_cleanup_quarantines quarantine JOIN projects project ON project.repo_path = quarantine.repo_path
|
|
15
|
+
WHERE project.id = ? AND quarantine.branch = ? COLLATE NOCASE LIMIT 1`)
|
|
16
|
+
.get(projectId, branch, projectId, branch));
|
|
17
|
+
export const isBundleCleanupAbandoned = (projectId, targetKey) => hasDeletionJobs() && Boolean(db.prepare("SELECT 1 FROM bundle_deletion_jobs WHERE project_id = ? AND target_key = ? AND status = 'abandoned'").get(projectId, targetKey));
|
|
18
|
+
//# sourceMappingURL=bundleDeletionStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundleDeletionStore.js","sourceRoot":"","sources":["../../../server/lib/bundleDeletionStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAA;AA0BzB,gFAAgF;AAChF,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,oFAAoF,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;AAE7I,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAiB,EAAE,QAAgB,EAAE,EAAE;IAC1E,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,EAAE,CAAC,OAAO,CAAC,2EAA2E,CAAC;SAC3F,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAkC,IAAI,IAAI,CAAA;AACtE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,OAAO,CACjH,EAAE,CAAC,OAAO,CAAC,8HAA8H,CAAC;KACvI,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAC7B,CAAA;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,SAAiB,EAAE,MAAc,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,OAAO,CAC/G,EAAE,CAAC,OAAO,CAAC;;4EAE+D,CAAC;KACxE,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAC7C,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,OAAO,CAC5G,EAAE,CAAC,OAAO,CAAC,qGAAqG,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAC5I,CAAA"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { execFile } from 'child_process';
|
|
2
|
+
import { lstatSync, realpathSync } from 'fs';
|
|
3
|
+
import { isAbsolute, relative, resolve, sep } from 'path';
|
|
4
|
+
import { promisify } from 'util';
|
|
5
|
+
import db from '../db.js';
|
|
6
|
+
import { createWorkspaceProcessEnvironment } from './workspaceProcessEnvironment.js';
|
|
7
|
+
const execFileAsync = promisify(execFile);
|
|
8
|
+
const runGit = async (cwd, args) => {
|
|
9
|
+
const env = createWorkspaceProcessEnvironment(cwd, { GIT_TERMINAL_PROMPT: '0' });
|
|
10
|
+
// Ambient Git overrides must not redirect ownership checks or removal.
|
|
11
|
+
for (const key of ['GIT_DIR', 'GIT_WORK_TREE', 'GIT_COMMON_DIR', 'GIT_INDEX_FILE', 'GIT_OBJECT_DIRECTORY', 'GIT_ALTERNATE_OBJECT_DIRECTORIES']) {
|
|
12
|
+
delete env[key];
|
|
13
|
+
}
|
|
14
|
+
const { stdout } = await execFileAsync('git', args, {
|
|
15
|
+
cwd,
|
|
16
|
+
env,
|
|
17
|
+
encoding: 'utf8',
|
|
18
|
+
timeout: 10_000,
|
|
19
|
+
killSignal: 'SIGKILL',
|
|
20
|
+
maxBuffer: 1024 * 1024,
|
|
21
|
+
});
|
|
22
|
+
return stdout;
|
|
23
|
+
};
|
|
24
|
+
const listWorktrees = async (repoPath) => {
|
|
25
|
+
// -z leaves unusual paths (including newlines and quotes) unescaped.
|
|
26
|
+
const output = await runGit(repoPath, ['worktree', 'list', '--porcelain', '-z']);
|
|
27
|
+
const records = [];
|
|
28
|
+
let current = null;
|
|
29
|
+
for (const field of output.split('\0')) {
|
|
30
|
+
if (field.startsWith('worktree ')) {
|
|
31
|
+
current = { path: field.slice('worktree '.length), branch: null };
|
|
32
|
+
if (!isAbsolute(current.path)) {
|
|
33
|
+
throw new Error('Invalid Git worktree registration');
|
|
34
|
+
}
|
|
35
|
+
records.push(current);
|
|
36
|
+
}
|
|
37
|
+
else if (field.startsWith('branch ') && current) {
|
|
38
|
+
current.branch = field.slice('branch '.length);
|
|
39
|
+
}
|
|
40
|
+
else if (!field) {
|
|
41
|
+
current = null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (!records.length || !output.endsWith('\0')) {
|
|
45
|
+
throw new Error('Unable to verify Git worktree registrations');
|
|
46
|
+
}
|
|
47
|
+
return records;
|
|
48
|
+
};
|
|
49
|
+
const pathExists = (path) => {
|
|
50
|
+
try {
|
|
51
|
+
lstatSync(path);
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
if (error.code === 'ENOENT') {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
throw error;
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const containsPath = (parent, child) => {
|
|
62
|
+
const suffix = relative(parent, child);
|
|
63
|
+
return suffix === '' || (suffix !== '..' && !suffix.startsWith(`..${sep}`) && !isAbsolute(suffix));
|
|
64
|
+
};
|
|
65
|
+
const assertNotRoot = (path, repoPath, records) => {
|
|
66
|
+
const roots = [repoPath, records[0].path];
|
|
67
|
+
for (const root of roots) {
|
|
68
|
+
if (containsPath(path, resolve(root))) {
|
|
69
|
+
throw new Error('Refusing to remove a repository root workspace');
|
|
70
|
+
}
|
|
71
|
+
if (pathExists(path) && pathExists(root) && containsPath(realpathSync(path), realpathSync(root))) {
|
|
72
|
+
throw new Error('Refusing to remove a repository root workspace');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
const assertWorkspaceIdentity = async (path, repoPath, branch) => {
|
|
77
|
+
if (!pathExists(path)) {
|
|
78
|
+
// Git can remove the exact stale registration after its directory disappeared.
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const status = lstatSync(path);
|
|
82
|
+
if (!status.isDirectory() || status.isSymbolicLink() || realpathSync(path) !== path) {
|
|
83
|
+
throw new Error('Bundle workspace identity changed');
|
|
84
|
+
}
|
|
85
|
+
const topLevel = (await runGit(path, ['rev-parse', '--show-toplevel'])).replace(/\n$/, '');
|
|
86
|
+
const currentBranch = (await runGit(path, ['symbolic-ref', '--quiet', 'HEAD'])).trimEnd();
|
|
87
|
+
const commonDir = resolve(path, (await runGit(path, ['rev-parse', '--git-common-dir'])).replace(/\n$/, ''));
|
|
88
|
+
const repoCommonDir = resolve(repoPath, (await runGit(repoPath, ['rev-parse', '--git-common-dir'])).replace(/\n$/, ''));
|
|
89
|
+
if (realpathSync(topLevel) !== realpathSync(path)
|
|
90
|
+
|| currentBranch !== `refs/heads/${branch}`
|
|
91
|
+
|| realpathSync(commonDir) !== realpathSync(repoCommonDir)) {
|
|
92
|
+
throw new Error('Bundle workspace identity changed');
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Remove only the persisted path owned by this branch. Returns true once both
|
|
97
|
+
* the directory and registration are absent, including retries after restart.
|
|
98
|
+
* Throws on conflicting identity, unverifiable state, or incomplete removal.
|
|
99
|
+
* Callers must serialize workspace creation/reuse with their deletion job.
|
|
100
|
+
*/
|
|
101
|
+
export const deleteOwnedBundleWorktree = async (branch, project, expectedPath) => {
|
|
102
|
+
if (!branch || branch.includes('\0') || !project.repo_path || !isAbsolute(expectedPath) || expectedPath.includes('\0')) {
|
|
103
|
+
throw new Error('Bundle cleanup requires a branch, repository, and absolute persisted workspace path');
|
|
104
|
+
}
|
|
105
|
+
const repoPath = resolve(project.repo_path);
|
|
106
|
+
const path = resolve(expectedPath);
|
|
107
|
+
const records = await listWorktrees(repoPath);
|
|
108
|
+
assertNotRoot(path, repoPath, records);
|
|
109
|
+
const matches = records.filter(record => resolve(record.path) === path);
|
|
110
|
+
if (matches.length > 1 || (matches.length === 1 && matches[0].branch !== `refs/heads/${branch}`)) {
|
|
111
|
+
throw new Error('Bundle worktree registration identity changed');
|
|
112
|
+
}
|
|
113
|
+
if (!matches.length && pathExists(path)) {
|
|
114
|
+
throw new Error('Persisted bundle workspace is no longer a registered worktree');
|
|
115
|
+
}
|
|
116
|
+
if (matches.length) {
|
|
117
|
+
await assertWorkspaceIdentity(path, repoPath, branch);
|
|
118
|
+
// Recheck immediately before mutation, without ever resolving by branch.
|
|
119
|
+
const current = await listWorktrees(repoPath);
|
|
120
|
+
assertNotRoot(path, repoPath, current);
|
|
121
|
+
const owned = current.filter(record => resolve(record.path) === path);
|
|
122
|
+
if (owned.length !== 1 || owned[0].branch !== `refs/heads/${branch}`) {
|
|
123
|
+
throw new Error('Bundle worktree registration identity changed');
|
|
124
|
+
}
|
|
125
|
+
await runGit(repoPath, ['worktree', 'remove', '--force', '--', expectedPath]);
|
|
126
|
+
}
|
|
127
|
+
const remaining = await listWorktrees(repoPath);
|
|
128
|
+
if (remaining.some(record => resolve(record.path) === path) || pathExists(path)) {
|
|
129
|
+
throw new Error('Bundle worktree cleanup is incomplete');
|
|
130
|
+
}
|
|
131
|
+
// deleteWorktreeBase is private to git.ts. Preserve its exact metadata key,
|
|
132
|
+
// but do not erase base metadata belonging to a relocated/reused branch.
|
|
133
|
+
if (!remaining.some(record => record.branch === `refs/heads/${branch}`)) {
|
|
134
|
+
db.prepare('DELETE FROM worktree_bases WHERE repo_path = ? AND branch = ?').run(repoPath, branch);
|
|
135
|
+
}
|
|
136
|
+
return true;
|
|
137
|
+
};
|
|
138
|
+
export const deleteBundleBranch = async (branch, project) => {
|
|
139
|
+
try {
|
|
140
|
+
await runGit(project.repo_path, ['show-ref', '--verify', '--quiet', `refs/heads/${branch}`]);
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
return error.code === 1 ? 'missing' : 'failed';
|
|
144
|
+
}
|
|
145
|
+
try {
|
|
146
|
+
await runGit(project.repo_path, ['branch', '-d', '--', branch]);
|
|
147
|
+
return 'deleted';
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
const stderr = String(error.stderr ?? '');
|
|
151
|
+
if (stderr.includes('not fully merged')) {
|
|
152
|
+
return 'unmerged';
|
|
153
|
+
}
|
|
154
|
+
if (stderr.includes('used by worktree') || stderr.includes('checked out')) {
|
|
155
|
+
return 'checked-out';
|
|
156
|
+
}
|
|
157
|
+
return 'failed';
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
//# sourceMappingURL=bundleWorktreeCleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundleWorktreeCleanup.js","sourceRoot":"","sources":["../../../server/lib/bundleWorktreeCleanup.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@ import { getActiveTool } from './activeTool.js';
|
|
|
6
6
|
import { resolveHelperModelConfig, validateAgentModelConfigUpdate, validateDiscoveredAgentModelConfig, } from './agentModelConfig.js';
|
|
7
7
|
import { isAgentExecutable, isSupportedAgent } from './agentCatalog.js';
|
|
8
8
|
import { DEFAULT_DIFF_EXPLANATION_CONFIGURATION, explainDiff, planDiffExplanation, } from './diffExplanation.js';
|
|
9
|
+
import { diffExplanationSourceReference, toDiffExplanationExecutionTarget } from './diffExplanationTargets.js';
|
|
10
|
+
import { parseWorkspaceDiffCommit } from './workspaceDiffCommit.js';
|
|
9
11
|
import { runTrackedLightweightPrompt } from './lightweightPrompt.js';
|
|
10
12
|
import { applyPromptDiffSafety } from './promptDiffSafety.js';
|
|
11
13
|
import { getProjectById } from './projects.js';
|
|
@@ -153,27 +155,6 @@ const adaptSafeDiff = (source, limits) => {
|
|
|
153
155
|
excluded: boundExclusions(excluded, limits.maxExclusionPaths, safety.omissionsTruncated),
|
|
154
156
|
};
|
|
155
157
|
};
|
|
156
|
-
const toExecutionTarget = (resolution) => {
|
|
157
|
-
if (resolution.workspaceKind === 'repo_root') {
|
|
158
|
-
return { kind: 'project-root', bundleId: null, branch: resolution.branch };
|
|
159
|
-
}
|
|
160
|
-
if (resolution.bundleId) {
|
|
161
|
-
return { kind: 'bundle-worktree', bundleId: resolution.bundleId, branch: resolution.branch };
|
|
162
|
-
}
|
|
163
|
-
return { kind: 'branch-worktree', bundleId: null, branch: resolution.branch };
|
|
164
|
-
};
|
|
165
|
-
const sourceReference = (project, target) => {
|
|
166
|
-
if (target.kind === 'bundle') {
|
|
167
|
-
return { kind: 'bundle', id: target.bundle_id };
|
|
168
|
-
}
|
|
169
|
-
if (target.kind === 'ticket') {
|
|
170
|
-
return { kind: 'ticket', id: target.ticket_id };
|
|
171
|
-
}
|
|
172
|
-
if (target.kind === 'chat_session') {
|
|
173
|
-
return { kind: 'chat_session', id: target.chat_session_id };
|
|
174
|
-
}
|
|
175
|
-
return { kind: 'project', id: project.id, label: project.name };
|
|
176
|
-
};
|
|
177
158
|
const mergeLimits = (limits) => {
|
|
178
159
|
const merged = {
|
|
179
160
|
...DEFAULT_JOB_LIMITS,
|
|
@@ -304,6 +285,7 @@ export const createDiffExplanationJobs = (options = {}) => {
|
|
|
304
285
|
projectId: job.projectId,
|
|
305
286
|
target: job.target,
|
|
306
287
|
scope: job.scope,
|
|
288
|
+
...(job.scope === 'committed' && { commit: job.commit }),
|
|
307
289
|
filePath: job.filePath,
|
|
308
290
|
});
|
|
309
291
|
return current.available && current.diff_signature === job.diffSignature;
|
|
@@ -327,7 +309,7 @@ export const createDiffExplanationJobs = (options = {}) => {
|
|
|
327
309
|
target: job.executionTarget,
|
|
328
310
|
initiatedBy: 'user',
|
|
329
311
|
workingDirectory: isolatedWorkingDirectory,
|
|
330
|
-
sourceReference:
|
|
312
|
+
sourceReference: diffExplanationSourceReference(job.project, job.target),
|
|
331
313
|
helperPurpose: 'workspace_change_explanation',
|
|
332
314
|
signal: request.signal,
|
|
333
315
|
}, request.prompt);
|
|
@@ -406,6 +388,11 @@ export const createDiffExplanationJobs = (options = {}) => {
|
|
|
406
388
|
return resolved;
|
|
407
389
|
};
|
|
408
390
|
const start = async (input) => {
|
|
391
|
+
const commit = parseWorkspaceDiffCommit(input.scope, input.commit);
|
|
392
|
+
if (!commit.ok) {
|
|
393
|
+
throw new DiffExplanationJobError('invalid_commit', 400, commit.error);
|
|
394
|
+
}
|
|
395
|
+
input = { ...input, ...(input.scope === 'committed' && { commit: commit.value }) };
|
|
409
396
|
if (!isDiffExplanationToken(input.ownerToken) || !isDiffExplanationToken(input.requestGeneration)) {
|
|
410
397
|
throw new DiffExplanationJobError('invalid_request_tokens', 400, 'Random owner and request-generation tokens are required.');
|
|
411
398
|
}
|
|
@@ -413,6 +400,7 @@ export const createDiffExplanationJobs = (options = {}) => {
|
|
|
413
400
|
projectId: input.projectId,
|
|
414
401
|
target: input.target,
|
|
415
402
|
scope: input.scope,
|
|
403
|
+
commit: input.commit ?? null,
|
|
416
404
|
filePath: input.filePath ?? null,
|
|
417
405
|
displayedDiffSignature: input.displayedDiffSignature,
|
|
418
406
|
goalContext: input.goalContext ?? null,
|
|
@@ -440,6 +428,7 @@ export const createDiffExplanationJobs = (options = {}) => {
|
|
|
440
428
|
projectId: input.projectId,
|
|
441
429
|
target: input.target,
|
|
442
430
|
scope: input.scope,
|
|
431
|
+
...(input.scope === 'committed' && { commit: input.commit ?? null }),
|
|
443
432
|
filePath: input.filePath ?? null,
|
|
444
433
|
});
|
|
445
434
|
if (!workspaceDiff.available) {
|
|
@@ -497,13 +486,14 @@ export const createDiffExplanationJobs = (options = {}) => {
|
|
|
497
486
|
project,
|
|
498
487
|
target: input.target,
|
|
499
488
|
scope: input.scope,
|
|
489
|
+
commit: input.commit ?? null,
|
|
500
490
|
filePath: input.filePath ?? null,
|
|
501
491
|
diffSignature: workspaceDiff.diff_signature,
|
|
502
492
|
goalContext: input.goalContext ?? null,
|
|
503
493
|
safeChunks: safe.chunks,
|
|
504
494
|
exclusions: safe.excluded,
|
|
505
495
|
execution,
|
|
506
|
-
executionTarget:
|
|
496
|
+
executionTarget: toDiffExplanationExecutionTarget(resolution),
|
|
507
497
|
controller: new AbortController(),
|
|
508
498
|
stopReason: null,
|
|
509
499
|
completion,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diffExplanationJobs.js","sourceRoot":"","sources":["../../../server/lib/diffExplanationJobs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diffExplanationJobs.js","sourceRoot":"","sources":["../../../server/lib/diffExplanationJobs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { defaultDiffExplanationJobs, DiffExplanationJobError, isDiffExplanationToken, } from './diffExplanationJobs.js';
|
|
2
|
+
import { parseWorkspaceDiffCommit } from './workspaceDiffCommit.js';
|
|
2
3
|
const MAX_REQUEST_BYTES = 16_384;
|
|
3
4
|
const MAX_TOKEN_CHARS = 200;
|
|
4
5
|
const MAX_GOAL_CHARS = 4_000;
|
|
@@ -38,9 +39,9 @@ const parseTarget = (value) => {
|
|
|
38
39
|
}
|
|
39
40
|
return { ok: false, error: 'target must identify one workspace target.' };
|
|
40
41
|
};
|
|
41
|
-
const parseScope = (value) => (value === 'uncommitted' || value === 'review'
|
|
42
|
+
const parseScope = (value) => (value === 'uncommitted' || value === 'review' || value === 'committed'
|
|
42
43
|
? { ok: true, value }
|
|
43
|
-
: { ok: false, error: 'scope must be uncommitted or
|
|
44
|
+
: { ok: false, error: 'scope must be uncommitted, review, or committed.' });
|
|
44
45
|
const parseOverride = (value) => {
|
|
45
46
|
if (value === undefined || value === null) {
|
|
46
47
|
return { ok: true, value: null };
|
|
@@ -73,6 +74,7 @@ const parseStart = (req) => {
|
|
|
73
74
|
'request_generation',
|
|
74
75
|
'target',
|
|
75
76
|
'scope',
|
|
77
|
+
'commit',
|
|
76
78
|
'file_path',
|
|
77
79
|
'displayed_diff_signature',
|
|
78
80
|
'goal_context',
|
|
@@ -92,6 +94,10 @@ const parseStart = (req) => {
|
|
|
92
94
|
if (typeof body.displayed_diff_signature !== 'string' || !SIGNATURE_PATTERN.test(body.displayed_diff_signature)) {
|
|
93
95
|
return { ok: false, error: 'displayed_diff_signature must be a workspace diff signature.' };
|
|
94
96
|
}
|
|
97
|
+
const commit = parseWorkspaceDiffCommit(scope.value, body.commit);
|
|
98
|
+
if (!commit.ok) {
|
|
99
|
+
return commit;
|
|
100
|
+
}
|
|
95
101
|
if (body.file_path !== undefined && body.file_path !== null && (typeof body.file_path !== 'string' || !body.file_path.trim())) {
|
|
96
102
|
return { ok: false, error: 'file_path must be a non-empty repository-relative path.' };
|
|
97
103
|
}
|
|
@@ -105,6 +111,7 @@ const parseStart = (req) => {
|
|
|
105
111
|
requestGeneration: generation.value,
|
|
106
112
|
target: target.value,
|
|
107
113
|
scope: scope.value,
|
|
114
|
+
...(scope.value === 'committed' && { commit: commit.value }),
|
|
108
115
|
filePath: typeof body.file_path === 'string' ? body.file_path.trim() : null,
|
|
109
116
|
displayedDiffSignature: body.displayed_diff_signature,
|
|
110
117
|
goalContext: typeof body.goal_context === 'string' ? body.goal_context : null,
|