steroids-cli 0.14.2 → 0.15.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/commands/ai-run.d.ts +10 -0
- package/dist/commands/ai-run.d.ts.map +1 -0
- package/dist/commands/ai-run.js +255 -0
- package/dist/commands/ai-run.js.map +1 -0
- package/dist/commands/ai.d.ts.map +1 -1
- package/dist/commands/ai.js +7 -1
- package/dist/commands/ai.js.map +1 -1
- package/dist/commands/coder-noop-submission.d.ts +2 -2
- package/dist/commands/coder-noop-submission.d.ts.map +1 -1
- package/dist/commands/coder-noop-submission.js +8 -1
- package/dist/commands/coder-noop-submission.js.map +1 -1
- package/dist/commands/completion.d.ts.map +1 -1
- package/dist/commands/completion.js +9 -0
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/loop-phases-coder-decision.d.ts +2 -0
- package/dist/commands/loop-phases-coder-decision.d.ts.map +1 -1
- package/dist/commands/loop-phases-coder-decision.js +18 -41
- package/dist/commands/loop-phases-coder-decision.js.map +1 -1
- package/dist/commands/loop-phases-coder.d.ts.map +1 -1
- package/dist/commands/loop-phases-coder.js +2 -1
- package/dist/commands/loop-phases-coder.js.map +1 -1
- package/dist/commands/loop-phases-reviewer.d.ts.map +1 -1
- package/dist/commands/loop-phases-reviewer.js +78 -74
- package/dist/commands/loop-phases-reviewer.js.map +1 -1
- package/dist/commands/loop.d.ts.map +1 -1
- package/dist/commands/loop.js +6 -0
- package/dist/commands/loop.js.map +1 -1
- package/dist/commands/push-task-branch.d.ts +12 -0
- package/dist/commands/push-task-branch.d.ts.map +1 -0
- package/dist/commands/push-task-branch.js +24 -0
- package/dist/commands/push-task-branch.js.map +1 -0
- package/dist/commands/tasks.js +1 -1
- package/dist/commands/tasks.js.map +1 -1
- package/dist/database/queries.d.ts +8 -2
- package/dist/database/queries.d.ts.map +1 -1
- package/dist/database/queries.js +17 -1
- package/dist/database/queries.js.map +1 -1
- package/dist/git/section-pr.js +1 -1
- package/dist/health/stuck-task-detector-types.d.ts +3 -3
- package/dist/health/stuck-task-detector-types.d.ts.map +1 -1
- package/dist/health/stuck-task-detector.js +21 -5
- package/dist/health/stuck-task-detector.js.map +1 -1
- package/dist/index.js +0 -4
- package/dist/index.js.map +1 -1
- package/dist/monitor/investigator-actions.d.ts.map +1 -1
- package/dist/monitor/investigator-actions.js +44 -39
- package/dist/monitor/investigator-actions.js.map +1 -1
- package/dist/monitor/investigator-agent.d.ts +9 -0
- package/dist/monitor/investigator-agent.d.ts.map +1 -1
- package/dist/monitor/investigator-agent.js +2 -0
- package/dist/monitor/investigator-agent.js.map +1 -1
- package/dist/monitor/investigator-helpers.d.ts +5 -0
- package/dist/monitor/investigator-helpers.d.ts.map +1 -0
- package/dist/monitor/investigator-helpers.js +44 -0
- package/dist/monitor/investigator-helpers.js.map +1 -0
- package/dist/monitor/investigator-prompt.d.ts.map +1 -1
- package/dist/monitor/investigator-prompt.js +11 -3
- package/dist/monitor/investigator-prompt.js.map +1 -1
- package/dist/monitor/scanner-queries.d.ts +3 -0
- package/dist/monitor/scanner-queries.d.ts.map +1 -1
- package/dist/monitor/scanner-queries.js +57 -0
- package/dist/monitor/scanner-queries.js.map +1 -1
- package/dist/monitor/scanner.d.ts +1 -1
- package/dist/monitor/scanner.d.ts.map +1 -1
- package/dist/monitor/scanner.js +10 -2
- package/dist/monitor/scanner.js.map +1 -1
- package/dist/orchestrator/merge-queue-rebase.d.ts +27 -0
- package/dist/orchestrator/merge-queue-rebase.d.ts.map +1 -0
- package/dist/orchestrator/merge-queue-rebase.js +355 -0
- package/dist/orchestrator/merge-queue-rebase.js.map +1 -0
- package/dist/orchestrator/merge-queue.d.ts +40 -0
- package/dist/orchestrator/merge-queue.d.ts.map +1 -0
- package/dist/orchestrator/merge-queue.js +352 -0
- package/dist/orchestrator/merge-queue.js.map +1 -0
- package/dist/orchestrator/task-selector.d.ts +2 -1
- package/dist/orchestrator/task-selector.d.ts.map +1 -1
- package/dist/orchestrator/task-selector.js +20 -5
- package/dist/orchestrator/task-selector.js.map +1 -1
- package/dist/parallel/clone.d.ts +0 -15
- package/dist/parallel/clone.d.ts.map +1 -1
- package/dist/parallel/clone.js +0 -37
- package/dist/parallel/clone.js.map +1 -1
- package/dist/providers/invocation-logger.d.ts +2 -2
- package/dist/providers/invocation-logger.d.ts.map +1 -1
- package/dist/providers/invocation-logger.js +1 -1
- package/dist/providers/invocation-logger.js.map +1 -1
- package/dist/runners/daemon.d.ts.map +1 -1
- package/dist/runners/daemon.js +0 -79
- package/dist/runners/daemon.js.map +1 -1
- package/dist/runners/orchestrator-loop.d.ts.map +1 -1
- package/dist/runners/orchestrator-loop.js +11 -29
- package/dist/runners/orchestrator-loop.js.map +1 -1
- package/dist/runners/wakeup-checks.js +1 -1
- package/dist/runners/wakeup-checks.js.map +1 -1
- package/dist/runners/wakeup-sanitise-recovery.d.ts +21 -0
- package/dist/runners/wakeup-sanitise-recovery.d.ts.map +1 -0
- package/dist/runners/wakeup-sanitise-recovery.js +209 -0
- package/dist/runners/wakeup-sanitise-recovery.js.map +1 -0
- package/dist/runners/wakeup-sanitise.d.ts +1 -1
- package/dist/runners/wakeup-sanitise.d.ts.map +1 -1
- package/dist/runners/wakeup-sanitise.js +58 -179
- package/dist/runners/wakeup-sanitise.js.map +1 -1
- package/dist/workspace/git-helpers.d.ts +8 -0
- package/dist/workspace/git-helpers.d.ts.map +1 -1
- package/dist/workspace/git-helpers.js +34 -0
- package/dist/workspace/git-helpers.js.map +1 -1
- package/dist/workspace/merge-lock.d.ts +5 -3
- package/dist/workspace/merge-lock.d.ts.map +1 -1
- package/dist/workspace/merge-lock.js +16 -15
- package/dist/workspace/merge-lock.js.map +1 -1
- package/migrations/028_add_merge_queue_fields.sql +8 -0
- package/migrations/manifest.json +9 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-queue.d.ts","sourceRoot":"","sources":["../../src/orchestrator/merge-queue.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAKnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAK1D,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AACrE,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,WAAW,CAAC;AAExD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAe/D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAYjE;AAID,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,cAAc,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,UAAU,CAsCZ;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,GAAG,iBAAiB,GAAG,iBAAiB,GAC5D,IAAI,CAqBN;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAClC;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,kBAAkB,CAuCpB;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,cAAc,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAOvE;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,IAAI,CASN;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAUN;AAID,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,IAAI,CAyBN;AAID,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,cAAc,EACtB,iBAAiB,EAAE,MAAM,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CA6Gf;AAiDD,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,cAAc,EACtB,iBAAiB,EAAE,MAAM,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAgBf"}
|
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Merge queue pipeline — routes merge_pending tasks through the merge gate.
|
|
4
|
+
*
|
|
5
|
+
* Responsibility: pipeline routing, merge orchestration, pool slot and lock lifecycle.
|
|
6
|
+
* Step functions (fetchAndPrepare, attemptRebaseAndFastForward, etc.) are composed
|
|
7
|
+
* here but contain their own logic.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.classifyPushError = classifyPushError;
|
|
11
|
+
exports.classifyFetchError = classifyFetchError;
|
|
12
|
+
exports.fetchAndPrepare = fetchAndPrepare;
|
|
13
|
+
exports.handlePrepFailure = handlePrepFailure;
|
|
14
|
+
exports.attemptRebaseAndFastForward = attemptRebaseAndFastForward;
|
|
15
|
+
exports.pushTargetBranch = pushTargetBranch;
|
|
16
|
+
exports.cleanupTaskBranch = cleanupTaskBranch;
|
|
17
|
+
exports.markCompleted = markCompleted;
|
|
18
|
+
exports.transitionToRebasing = transitionToRebasing;
|
|
19
|
+
exports.handleMergeAttempt = handleMergeAttempt;
|
|
20
|
+
exports.processMergeQueue = processMergeQueue;
|
|
21
|
+
const node_child_process_1 = require("node:child_process");
|
|
22
|
+
const queries_js_1 = require("../database/queries.js");
|
|
23
|
+
const merge_lock_js_1 = require("../workspace/merge-lock.js");
|
|
24
|
+
const pool_js_1 = require("../workspace/pool.js");
|
|
25
|
+
const clone_js_1 = require("../parallel/clone.js");
|
|
26
|
+
const git_helpers_js_1 = require("../workspace/git-helpers.js");
|
|
27
|
+
const global_db_js_1 = require("../runners/global-db.js");
|
|
28
|
+
function classifyPushError(error) {
|
|
29
|
+
const lower = error.toLowerCase();
|
|
30
|
+
if (lower.includes('non-fast-forward') || lower.includes('fetch first') || lower.includes('stale info')) {
|
|
31
|
+
return 'race_loss';
|
|
32
|
+
}
|
|
33
|
+
if (lower.includes('could not resolve') ||
|
|
34
|
+
lower.includes('connection') ||
|
|
35
|
+
lower.includes('timeout') ||
|
|
36
|
+
lower.includes('unable to access') ||
|
|
37
|
+
lower.includes('temporary failure')) {
|
|
38
|
+
return 'transient';
|
|
39
|
+
}
|
|
40
|
+
return 'permanent';
|
|
41
|
+
}
|
|
42
|
+
function classifyFetchError(error) {
|
|
43
|
+
const lower = error.toLowerCase();
|
|
44
|
+
if (lower.includes('could not resolve') ||
|
|
45
|
+
lower.includes('connection') ||
|
|
46
|
+
lower.includes('timeout') ||
|
|
47
|
+
lower.includes('unable to access') ||
|
|
48
|
+
lower.includes('temporary failure')) {
|
|
49
|
+
return 'transient';
|
|
50
|
+
}
|
|
51
|
+
return 'permanent';
|
|
52
|
+
}
|
|
53
|
+
function fetchAndPrepare(slotPath, taskBranch, targetBranch, approvedSha) {
|
|
54
|
+
// Fetch latest from remote
|
|
55
|
+
try {
|
|
56
|
+
(0, node_child_process_1.execFileSync)('git', ['fetch', 'origin', targetBranch, taskBranch], {
|
|
57
|
+
cwd: slotPath, encoding: 'utf-8', timeout: 120_000,
|
|
58
|
+
env: { ...process.env, GIT_TERMINAL_PROMPT: '0' },
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
63
|
+
const stderr = err?.stderr ?? '';
|
|
64
|
+
const errText = stderr.trim() || msg;
|
|
65
|
+
const classification = classifyFetchError(errText);
|
|
66
|
+
return { ok: false, error: classification === 'transient' ? 'fetch_transient' : 'fetch_permanent' };
|
|
67
|
+
}
|
|
68
|
+
// Idempotency check: if approved_sha is already an ancestor of target HEAD, skip
|
|
69
|
+
try {
|
|
70
|
+
(0, node_child_process_1.execFileSync)('git', ['merge-base', '--is-ancestor', approvedSha, `origin/${targetBranch}`], {
|
|
71
|
+
cwd: slotPath, encoding: 'utf-8', timeout: 30_000,
|
|
72
|
+
});
|
|
73
|
+
return { ok: true, alreadyMerged: true };
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// Not an ancestor — proceed with merge
|
|
77
|
+
}
|
|
78
|
+
// SHA verification: branch HEAD must match approved_sha
|
|
79
|
+
try {
|
|
80
|
+
const branchHead = (0, node_child_process_1.execFileSync)('git', ['rev-parse', `origin/${taskBranch}`], {
|
|
81
|
+
cwd: slotPath, encoding: 'utf-8', timeout: 30_000,
|
|
82
|
+
}).trim();
|
|
83
|
+
if (branchHead !== approvedSha) {
|
|
84
|
+
return { ok: false, error: 'sha_mismatch' };
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return { ok: false, error: 'fetch_permanent' };
|
|
89
|
+
}
|
|
90
|
+
return { ok: true, slotPath, taskBranchLocal: taskBranch, targetBranch };
|
|
91
|
+
}
|
|
92
|
+
function handlePrepFailure(db, taskId, error) {
|
|
93
|
+
switch (error) {
|
|
94
|
+
case 'sha_mismatch':
|
|
95
|
+
// Task branch was modified after approval — return to review
|
|
96
|
+
db.prepare(`UPDATE tasks SET status = 'review', merge_phase = NULL, approved_sha = NULL, rebase_attempts = 0, updated_at = datetime('now')
|
|
97
|
+
WHERE id = ?`).run(taskId);
|
|
98
|
+
(0, queries_js_1.addAuditEntry)(db, taskId, 'merge_pending', 'review', 'orchestrator', {
|
|
99
|
+
actorType: 'orchestrator',
|
|
100
|
+
notes: '[merge_queue] SHA mismatch — task branch modified after approval, returning to review',
|
|
101
|
+
});
|
|
102
|
+
break;
|
|
103
|
+
case 'fetch_transient':
|
|
104
|
+
// Transient network error — retry next iteration (no status change)
|
|
105
|
+
break;
|
|
106
|
+
case 'fetch_permanent':
|
|
107
|
+
(0, queries_js_1.updateTaskStatus)(db, taskId, 'blocked_error', 'orchestrator', '[merge_queue] Permanent fetch failure — remote may be unreachable or credentials expired');
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function attemptRebaseAndFastForward(slotPath, taskBranch, targetBranch) {
|
|
112
|
+
// Checkout target branch at origin HEAD
|
|
113
|
+
(0, node_child_process_1.execFileSync)('git', ['checkout', '-B', targetBranch, `origin/${targetBranch}`], {
|
|
114
|
+
cwd: slotPath, encoding: 'utf-8', timeout: 30_000,
|
|
115
|
+
});
|
|
116
|
+
// Try ff-only merge first
|
|
117
|
+
try {
|
|
118
|
+
(0, node_child_process_1.execFileSync)('git', ['merge', '--ff-only', `origin/${taskBranch}`], {
|
|
119
|
+
cwd: slotPath, encoding: 'utf-8', timeout: 30_000,
|
|
120
|
+
});
|
|
121
|
+
return { merged: true };
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
// Not fast-forwardable — try deterministic rebase
|
|
125
|
+
}
|
|
126
|
+
// Deterministic rebase: rebase task branch onto target, then ff merge
|
|
127
|
+
try {
|
|
128
|
+
(0, node_child_process_1.execFileSync)('git', ['checkout', '-B', taskBranch, `origin/${taskBranch}`], {
|
|
129
|
+
cwd: slotPath, encoding: 'utf-8', timeout: 30_000,
|
|
130
|
+
});
|
|
131
|
+
(0, node_child_process_1.execFileSync)('git', ['rebase', `origin/${targetBranch}`], {
|
|
132
|
+
cwd: slotPath, encoding: 'utf-8', timeout: 120_000,
|
|
133
|
+
});
|
|
134
|
+
// Switch back to target and ff-merge the rebased branch
|
|
135
|
+
(0, node_child_process_1.execFileSync)('git', ['checkout', targetBranch], {
|
|
136
|
+
cwd: slotPath, encoding: 'utf-8', timeout: 30_000,
|
|
137
|
+
});
|
|
138
|
+
(0, node_child_process_1.execFileSync)('git', ['merge', '--ff-only', taskBranch], {
|
|
139
|
+
cwd: slotPath, encoding: 'utf-8', timeout: 30_000,
|
|
140
|
+
});
|
|
141
|
+
return { merged: true };
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
// Abort any in-progress rebase
|
|
145
|
+
try {
|
|
146
|
+
(0, node_child_process_1.execFileSync)('git', ['rebase', '--abort'], { cwd: slotPath, encoding: 'utf-8', timeout: 10_000 });
|
|
147
|
+
}
|
|
148
|
+
catch { /* already clean */ }
|
|
149
|
+
return { merged: false, reason: 'conflicts' };
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
async function pushTargetBranch(slotPath, targetBranch) {
|
|
153
|
+
const result = await (0, git_helpers_js_1.pushWithRetriesAsync)(slotPath, 'origin', targetBranch, 3, [1000, 4000, 16000]);
|
|
154
|
+
if (result.success) {
|
|
155
|
+
return { ok: true };
|
|
156
|
+
}
|
|
157
|
+
const errorClass = classifyPushError(result.error ?? '');
|
|
158
|
+
return { ok: false, errorClass, error: result.error };
|
|
159
|
+
}
|
|
160
|
+
function cleanupTaskBranch(slotPath, taskBranch) {
|
|
161
|
+
try {
|
|
162
|
+
(0, node_child_process_1.execFileSync)('git', ['push', 'origin', '--delete', taskBranch], {
|
|
163
|
+
cwd: slotPath, encoding: 'utf-8', timeout: 60_000,
|
|
164
|
+
env: { ...process.env, GIT_TERMINAL_PROMPT: '0' },
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
// Non-fatal — branch may already be deleted or remote unreachable
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
function markCompleted(db, taskId, mergedSha) {
|
|
172
|
+
db.prepare(`UPDATE tasks SET status = 'completed', merge_phase = NULL, approved_sha = NULL, rebase_attempts = 0, updated_at = datetime('now')
|
|
173
|
+
WHERE id = ?`).run(taskId);
|
|
174
|
+
(0, queries_js_1.addAuditEntry)(db, taskId, 'merge_pending', 'completed', 'orchestrator', {
|
|
175
|
+
actorType: 'orchestrator',
|
|
176
|
+
notes: '[merge_queue] Merge completed successfully',
|
|
177
|
+
commitSha: mergedSha,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
const MAX_REBASE_ATTEMPTS = 3;
|
|
181
|
+
function transitionToRebasing(db, taskId, reason) {
|
|
182
|
+
// Increment rebase_attempts and check cap
|
|
183
|
+
const task = db.prepare('SELECT rebase_attempts FROM tasks WHERE id = ?').get(taskId);
|
|
184
|
+
const attempts = (task?.rebase_attempts ?? 0) + 1;
|
|
185
|
+
if (attempts > MAX_REBASE_ATTEMPTS) {
|
|
186
|
+
db.prepare(`UPDATE tasks SET status = 'disputed', merge_phase = NULL, updated_at = datetime('now')
|
|
187
|
+
WHERE id = ?`).run(taskId);
|
|
188
|
+
(0, queries_js_1.addAuditEntry)(db, taskId, 'merge_pending', 'disputed', 'orchestrator', {
|
|
189
|
+
actorType: 'orchestrator',
|
|
190
|
+
notes: `[merge_queue] Rebase cap reached (${MAX_REBASE_ATTEMPTS} attempts): ${reason}`,
|
|
191
|
+
});
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
db.prepare(`UPDATE tasks SET merge_phase = 'rebasing', rebase_attempts = ?, updated_at = datetime('now')
|
|
195
|
+
WHERE id = ?`).run(attempts, taskId);
|
|
196
|
+
(0, queries_js_1.addAuditEntry)(db, taskId, 'merge_pending', 'merge_pending', 'orchestrator', {
|
|
197
|
+
actorType: 'orchestrator',
|
|
198
|
+
notes: `[merge_queue] Transitioning to rebase (attempt ${attempts}/${MAX_REBASE_ATTEMPTS}): ${reason}`,
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
// ─── Orchestrator ────────────────────────────────────────────────────────────
|
|
202
|
+
async function handleMergeAttempt(db, task, config, sourceProjectPath, runnerId) {
|
|
203
|
+
const remote = config.git?.remote ?? 'origin';
|
|
204
|
+
const targetBranch = config.git?.branch ?? 'main';
|
|
205
|
+
const approvedSha = task.approved_sha;
|
|
206
|
+
if (!approvedSha) {
|
|
207
|
+
(0, queries_js_1.updateTaskStatus)(db, task.id, 'blocked_error', 'orchestrator', '[merge_queue] No approved_sha — cannot merge without reviewer-verified SHA');
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
// Local-only guard: no remote configured → skip merge queue
|
|
211
|
+
const remoteUrl = (0, pool_js_1.resolveRemoteUrl)(sourceProjectPath);
|
|
212
|
+
if (!remoteUrl) {
|
|
213
|
+
markCompleted(db, task.id, approvedSha);
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
const projectId = (0, clone_js_1.getProjectHash)(sourceProjectPath);
|
|
217
|
+
const gdb = (0, global_db_js_1.openGlobalDatabase)();
|
|
218
|
+
let slotId;
|
|
219
|
+
let lockAcquired = false;
|
|
220
|
+
try {
|
|
221
|
+
// Claim pool slot for merge workspace
|
|
222
|
+
const slot = (0, pool_js_1.claimSlot)(gdb.db, projectId, runnerId ?? `merge:${process.pid}`, task.id);
|
|
223
|
+
const finalSlot = (0, pool_js_1.finalizeSlotPath)(gdb.db, slot.id, sourceProjectPath, remoteUrl);
|
|
224
|
+
slotId = finalSlot.id;
|
|
225
|
+
// Try to acquire merge lock (non-blocking)
|
|
226
|
+
lockAcquired = (0, merge_lock_js_1.acquireWorkspaceMergeLock)(gdb.db, projectId, runnerId ?? `merge:${process.pid}`, slotId, 0, 0, true);
|
|
227
|
+
if (!lockAcquired) {
|
|
228
|
+
// Another merge is in progress — retry next iteration
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
const taskBranch = finalSlot.task_branch ?? `steroids/task-${task.id}`;
|
|
232
|
+
const slotPath = finalSlot.slot_path;
|
|
233
|
+
// Step 1: Fetch and prepare
|
|
234
|
+
const prepResult = fetchAndPrepare(slotPath, taskBranch, targetBranch, approvedSha);
|
|
235
|
+
if (prepResult.alreadyMerged) {
|
|
236
|
+
markCompleted(db, task.id, approvedSha);
|
|
237
|
+
cleanupTaskBranch(slotPath, taskBranch);
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
if (!prepResult.ok) {
|
|
241
|
+
handlePrepFailure(db, task.id, prepResult.error);
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
// Step 2: Attempt rebase and fast-forward
|
|
245
|
+
const mergeResult = attemptRebaseAndFastForward(slotPath, taskBranch, targetBranch);
|
|
246
|
+
if (!mergeResult.merged) {
|
|
247
|
+
transitionToRebasing(db, task.id, 'Merge conflicts detected during fast-forward attempt');
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
// Step 3: Push target branch
|
|
251
|
+
const pushResult = await pushTargetBranch(slotPath, targetBranch);
|
|
252
|
+
if (!pushResult.ok) {
|
|
253
|
+
switch (pushResult.errorClass) {
|
|
254
|
+
case 'race_loss':
|
|
255
|
+
// Another merge won the race — retry next iteration (no status change)
|
|
256
|
+
return;
|
|
257
|
+
case 'transient':
|
|
258
|
+
// Network issue — retry next iteration (no status change)
|
|
259
|
+
return;
|
|
260
|
+
case 'permanent':
|
|
261
|
+
(0, queries_js_1.updateTaskStatus)(db, task.id, 'blocked_error', 'orchestrator', `[merge_queue] Permanent push failure: ${pushResult.error}`);
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
// Step 4: Get merged SHA
|
|
266
|
+
let mergedSha;
|
|
267
|
+
try {
|
|
268
|
+
mergedSha = (0, node_child_process_1.execFileSync)('git', ['rev-parse', 'HEAD'], {
|
|
269
|
+
cwd: slotPath, encoding: 'utf-8', timeout: 10_000,
|
|
270
|
+
}).trim();
|
|
271
|
+
}
|
|
272
|
+
catch { /* non-critical */ }
|
|
273
|
+
// Step 5: Cleanup task branch (non-fatal)
|
|
274
|
+
cleanupTaskBranch(slotPath, taskBranch);
|
|
275
|
+
// Step 6: Mark completed
|
|
276
|
+
markCompleted(db, task.id, mergedSha);
|
|
277
|
+
}
|
|
278
|
+
finally {
|
|
279
|
+
if (lockAcquired) {
|
|
280
|
+
try {
|
|
281
|
+
(0, merge_lock_js_1.releaseWorkspaceMergeLock)(gdb.db, projectId);
|
|
282
|
+
}
|
|
283
|
+
catch { /* ignore */ }
|
|
284
|
+
}
|
|
285
|
+
if (slotId !== undefined) {
|
|
286
|
+
try {
|
|
287
|
+
(0, pool_js_1.releaseSlot)(gdb.db, slotId);
|
|
288
|
+
}
|
|
289
|
+
catch { /* ignore */ }
|
|
290
|
+
}
|
|
291
|
+
try {
|
|
292
|
+
gdb.close();
|
|
293
|
+
}
|
|
294
|
+
catch { /* ignore */ }
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
// ─── Rebase phase wrapper ────────────────────────────────────────────────────
|
|
298
|
+
async function handleRebasePhase(db, task, config, sourceProjectPath, phase, runnerId) {
|
|
299
|
+
const { handleRebaseCoder, handleRebaseReview } = await import('./merge-queue-rebase.js');
|
|
300
|
+
const targetBranch = config.git?.branch ?? 'main';
|
|
301
|
+
const remoteUrl = (0, pool_js_1.resolveRemoteUrl)(sourceProjectPath);
|
|
302
|
+
if (!remoteUrl) {
|
|
303
|
+
// Local-only — no rebase needed, mark completed
|
|
304
|
+
markCompleted(db, task.id, task.approved_sha ?? undefined);
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
const projectId = (0, clone_js_1.getProjectHash)(sourceProjectPath);
|
|
308
|
+
const gdb = (0, global_db_js_1.openGlobalDatabase)();
|
|
309
|
+
let slotId;
|
|
310
|
+
try {
|
|
311
|
+
const slot = (0, pool_js_1.claimSlot)(gdb.db, projectId, runnerId ?? `rebase:${process.pid}`, task.id);
|
|
312
|
+
const finalSlot = (0, pool_js_1.finalizeSlotPath)(gdb.db, slot.id, sourceProjectPath, remoteUrl);
|
|
313
|
+
slotId = finalSlot.id;
|
|
314
|
+
const taskBranch = finalSlot.task_branch ?? `steroids/task-${task.id}`;
|
|
315
|
+
const slotPath = finalSlot.slot_path;
|
|
316
|
+
if (phase === 'rebasing') {
|
|
317
|
+
await handleRebaseCoder(db, task, config, slotPath, targetBranch, taskBranch, runnerId);
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
await handleRebaseReview(db, task, config, slotPath, targetBranch, taskBranch, runnerId);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
finally {
|
|
324
|
+
if (slotId !== undefined) {
|
|
325
|
+
try {
|
|
326
|
+
(0, pool_js_1.releaseSlot)(gdb.db, slotId);
|
|
327
|
+
}
|
|
328
|
+
catch { /* ignore */ }
|
|
329
|
+
}
|
|
330
|
+
try {
|
|
331
|
+
gdb.close();
|
|
332
|
+
}
|
|
333
|
+
catch { /* ignore */ }
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
// ─── Router ──────────────────────────────────────────────────────────────────
|
|
337
|
+
async function processMergeQueue(db, task, config, sourceProjectPath, runnerId) {
|
|
338
|
+
const mergePhase = task.merge_phase ?? 'queued';
|
|
339
|
+
switch (mergePhase) {
|
|
340
|
+
case 'queued':
|
|
341
|
+
await handleMergeAttempt(db, task, config, sourceProjectPath, runnerId);
|
|
342
|
+
break;
|
|
343
|
+
case 'rebasing':
|
|
344
|
+
case 'rebase_review':
|
|
345
|
+
await handleRebasePhase(db, task, config, sourceProjectPath, mergePhase, runnerId);
|
|
346
|
+
break;
|
|
347
|
+
default:
|
|
348
|
+
(0, queries_js_1.updateTaskStatus)(db, task.id, 'blocked_error', 'orchestrator', `[merge_queue] Unknown merge_phase: ${mergePhase}`);
|
|
349
|
+
break;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
//# sourceMappingURL=merge-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-queue.js","sourceRoot":"","sources":["../../src/orchestrator/merge-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { isTaskLocked, type LockAcquisitionResult, type LockReleaseResult, type
|
|
|
8
8
|
import { acquireSectionLock, releaseSectionLock, isSectionLocked } from '../locking/section-lock.js';
|
|
9
9
|
export interface SelectedTask {
|
|
10
10
|
task: Task;
|
|
11
|
-
action: 'review' | 'resume' | 'start';
|
|
11
|
+
action: 'review' | 'resume' | 'start' | 'merge';
|
|
12
12
|
rejectionNotes?: string;
|
|
13
13
|
}
|
|
14
14
|
export interface SelectedTaskWithLock extends SelectedTask {
|
|
@@ -69,6 +69,7 @@ export declare function getTaskCounts(db: Database.Database, sectionId?: string)
|
|
|
69
69
|
pending: number;
|
|
70
70
|
in_progress: number;
|
|
71
71
|
review: number;
|
|
72
|
+
merge_pending: number;
|
|
72
73
|
completed: number;
|
|
73
74
|
disputed: number;
|
|
74
75
|
failed: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-selector.d.ts","sourceRoot":"","sources":["../../src/orchestrator/task-selector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAGL,YAAY,EAEZ,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAGpC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"task-selector.d.ts","sourceRoot":"","sources":["../../src/orchestrator/task-selector.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@ function hasPendingOrInProgressWork(db, sectionId) {
|
|
|
35
35
|
const row = db
|
|
36
36
|
.prepare(`SELECT COUNT(*) as count FROM tasks
|
|
37
37
|
WHERE section_id = ?
|
|
38
|
-
AND status IN ('pending', 'in_progress', 'review')
|
|
38
|
+
AND status IN ('pending', 'in_progress', 'review', 'merge_pending')
|
|
39
39
|
AND is_follow_up = 0`)
|
|
40
40
|
.get(sectionId);
|
|
41
41
|
return row.count > 0;
|
|
@@ -96,7 +96,7 @@ function selectTaskBatch(db, maxSize = 10) {
|
|
|
96
96
|
const sections = db
|
|
97
97
|
.prepare(`SELECT s.id, s.name, s.position,
|
|
98
98
|
SUM(CASE WHEN t.status = 'pending' THEN 1 ELSE 0 END) as pending_count,
|
|
99
|
-
SUM(CASE WHEN t.status IN ('in_progress', 'review') THEN 1 ELSE 0 END) as active_count
|
|
99
|
+
SUM(CASE WHEN t.status IN ('in_progress', 'review', 'merge_pending') THEN 1 ELSE 0 END) as active_count
|
|
100
100
|
FROM sections s
|
|
101
101
|
LEFT JOIN tasks t ON t.section_id = s.id
|
|
102
102
|
GROUP BY s.id
|
|
@@ -163,6 +163,7 @@ function getTaskCounts(db, sectionId) {
|
|
|
163
163
|
pending: 0,
|
|
164
164
|
in_progress: 0,
|
|
165
165
|
review: 0,
|
|
166
|
+
merge_pending: 0,
|
|
166
167
|
completed: 0,
|
|
167
168
|
disputed: 0,
|
|
168
169
|
failed: 0,
|
|
@@ -244,10 +245,23 @@ function findNextTaskSkippingLocked(db, lockedTaskIds, runnerId, sectionId) {
|
|
|
244
245
|
OR NOT EXISTS (
|
|
245
246
|
SELECT 1 FROM tasks t2
|
|
246
247
|
WHERE ((t2.section_id = t.section_id) OR (t2.section_id IS NULL AND t.section_id IS NULL))
|
|
247
|
-
AND t2.status IN ('pending', 'in_progress', 'review')
|
|
248
|
+
AND t2.status IN ('pending', 'in_progress', 'review', 'merge_pending')
|
|
248
249
|
AND t2.is_follow_up = 0
|
|
249
250
|
)
|
|
250
251
|
)`;
|
|
252
|
+
// Priority 0: Tasks awaiting merge (closest to completion)
|
|
253
|
+
const mergePendingTasks = db
|
|
254
|
+
.prepare(`SELECT t.* FROM tasks t
|
|
255
|
+
LEFT JOIN sections s ON t.section_id = s.id
|
|
256
|
+
WHERE t.status = 'merge_pending' ${sectionFilter}
|
|
257
|
+
${followUpEligibilityFilter}
|
|
258
|
+
ORDER BY COALESCE(s.position, 999999), t.created_at`)
|
|
259
|
+
.all(...sectionParams);
|
|
260
|
+
for (const task of mergePendingTasks) {
|
|
261
|
+
if (canSelectTask(db, task) && (!lockedTaskIds.has(task.id) || isLockedByUs(db, task.id, runnerId))) {
|
|
262
|
+
return { task, action: 'merge' };
|
|
263
|
+
}
|
|
264
|
+
}
|
|
251
265
|
// Priority 1: Tasks in 'review' status
|
|
252
266
|
const reviewTasks = db
|
|
253
267
|
.prepare(`SELECT t.* FROM tasks t
|
|
@@ -338,7 +352,7 @@ async function selectNextTaskWithWait(db, options) {
|
|
|
338
352
|
}
|
|
339
353
|
else {
|
|
340
354
|
const counts = getTaskCounts(db);
|
|
341
|
-
if (counts.pending === 0 && counts.in_progress === 0 && counts.review === 0) {
|
|
355
|
+
if (counts.pending === 0 && counts.in_progress === 0 && counts.review === 0 && counts.merge_pending === 0) {
|
|
342
356
|
return null; // All tasks completed
|
|
343
357
|
}
|
|
344
358
|
}
|
|
@@ -365,7 +379,8 @@ async function selectNextTaskWithWait(db, options) {
|
|
|
365
379
|
const currentCounts = getTaskCounts(db);
|
|
366
380
|
if (currentCounts.pending === 0 &&
|
|
367
381
|
currentCounts.in_progress === 0 &&
|
|
368
|
-
currentCounts.review === 0
|
|
382
|
+
currentCounts.review === 0 &&
|
|
383
|
+
currentCounts.merge_pending === 0) {
|
|
369
384
|
return null; // All tasks completed while waiting
|
|
370
385
|
}
|
|
371
386
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-selector.js","sourceRoot":"","sources":["../../src/orchestrator/task-selector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task-selector.js","sourceRoot":"","sources":["../../src/orchestrator/task-selector.ts"],"names":[],"mappings":"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"}
|
package/dist/parallel/clone.d.ts
CHANGED
|
@@ -19,20 +19,6 @@ export interface WorkspaceCloneResult {
|
|
|
19
19
|
usedLocalClone: boolean;
|
|
20
20
|
steroidsSymlinkPath: string;
|
|
21
21
|
}
|
|
22
|
-
export interface IntegrationWorkspaceOptions {
|
|
23
|
-
projectPath: string;
|
|
24
|
-
sessionId: string;
|
|
25
|
-
baseBranch: string;
|
|
26
|
-
remote?: string;
|
|
27
|
-
workspaceRoot?: string;
|
|
28
|
-
integrationBranchName?: string;
|
|
29
|
-
/** Canonical remote URL (e.g. GitHub). When set, origin is re-pointed before any fetch. */
|
|
30
|
-
canonicalRemoteUrl?: string;
|
|
31
|
-
}
|
|
32
|
-
export interface IntegrationWorkspaceResult extends WorkspaceCloneResult {
|
|
33
|
-
integrationBranchName: string;
|
|
34
|
-
integrationWorkstreamId: string;
|
|
35
|
-
}
|
|
36
22
|
export declare class WorkspaceCloneError extends Error {
|
|
37
23
|
cause?: unknown | undefined;
|
|
38
24
|
constructor(message: string, cause?: unknown | undefined);
|
|
@@ -55,5 +41,4 @@ export declare function ensureWorkspaceSteroidsSymlink(workspacePath: string, pr
|
|
|
55
41
|
* Create an isolated workspace clone for one parallel workstream.
|
|
56
42
|
*/
|
|
57
43
|
export declare function createWorkspaceClone(options: WorkspaceCloneOptions): WorkspaceCloneResult;
|
|
58
|
-
export declare function createIntegrationWorkspace(options: IntegrationWorkspaceOptions): IntegrationWorkspaceResult;
|
|
59
44
|
//# sourceMappingURL=clone.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../../src/parallel/clone.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2BH,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gGAAgG;IAChG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../../src/parallel/clone.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2BH,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gGAAgG;IAChG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAID,qBAAa,mBAAoB,SAAQ,KAAK;IACR,KAAK,CAAC,EAAE,OAAO;gBAAvC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,OAAO,YAAA;CAQpD;AA6ED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAK1D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,aAAa,GAAE,MAAkC,GAChD,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAK7E;AA0ED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,MAAM,CAyBR;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,oBAAoB,CAuJzF"}
|
package/dist/parallel/clone.js
CHANGED
|
@@ -10,7 +10,6 @@ exports.getWorkspacePath = getWorkspacePath;
|
|
|
10
10
|
exports.isSameFileSystem = isSameFileSystem;
|
|
11
11
|
exports.ensureWorkspaceSteroidsSymlink = ensureWorkspaceSteroidsSymlink;
|
|
12
12
|
exports.createWorkspaceClone = createWorkspaceClone;
|
|
13
|
-
exports.createIntegrationWorkspace = createIntegrationWorkspace;
|
|
14
13
|
const node_crypto_1 = require("node:crypto");
|
|
15
14
|
const loader_js_1 = require("../config/loader.js");
|
|
16
15
|
const skills_js_1 = require("../commands/skills.js");
|
|
@@ -341,40 +340,4 @@ function createWorkspaceClone(options) {
|
|
|
341
340
|
steroidsSymlinkPath,
|
|
342
341
|
};
|
|
343
342
|
}
|
|
344
|
-
function getIntegrationWorkstreamId(sessionId) {
|
|
345
|
-
return `integration-${sessionId.slice(0, 8)}`;
|
|
346
|
-
}
|
|
347
|
-
function createIntegrationWorkspace(options) {
|
|
348
|
-
const remote = options.remote ?? 'origin';
|
|
349
|
-
const integrationWorkstreamId = getIntegrationWorkstreamId(options.sessionId);
|
|
350
|
-
const integrationBranchName = options.integrationBranchName ?? `steroids/integration-${options.sessionId.slice(0, 8)}`;
|
|
351
|
-
const clone = createWorkspaceClone({
|
|
352
|
-
projectPath: options.projectPath,
|
|
353
|
-
workstreamId: integrationWorkstreamId,
|
|
354
|
-
branchName: integrationBranchName,
|
|
355
|
-
workspaceRoot: options.workspaceRoot,
|
|
356
|
-
force: true,
|
|
357
|
-
});
|
|
358
|
-
try {
|
|
359
|
-
// Re-point origin to canonical remote (e.g. GitHub) so workstream branch
|
|
360
|
-
// fetches reach branches pushed by pool slots, not the local project dir.
|
|
361
|
-
if (options.canonicalRemoteUrl) {
|
|
362
|
-
(0, node_child_process_1.execFileSync)('git', ['-C', clone.workspacePath, 'remote', 'set-url', remote, options.canonicalRemoteUrl], { stdio: 'inherit', env: { ...process.env, GIT_TERMINAL_PROMPT: '0' } });
|
|
363
|
-
}
|
|
364
|
-
(0, node_child_process_1.execFileSync)('git', ['-C', clone.workspacePath, 'fetch', remote, options.baseBranch], { stdio: 'inherit', env: { ...process.env, GIT_TERMINAL_PROMPT: '0' } });
|
|
365
|
-
// Force-update local base branch to match remote — getWorkstreamCommitList()
|
|
366
|
-
// uses it as baseline, and it may be stale after origin rewrite.
|
|
367
|
-
(0, node_child_process_1.execFileSync)('git', ['-C', clone.workspacePath, 'branch', '--force', options.baseBranch, `${remote}/${options.baseBranch}`], { stdio: 'inherit', env: { ...process.env, GIT_TERMINAL_PROMPT: '0' } });
|
|
368
|
-
(0, node_child_process_1.execFileSync)('git', ['-C', clone.workspacePath, 'checkout', '-B', integrationBranchName, `${remote}/${options.baseBranch}`], { stdio: 'inherit', env: { ...process.env, GIT_TERMINAL_PROMPT: '0' } });
|
|
369
|
-
}
|
|
370
|
-
catch (error) {
|
|
371
|
-
(0, node_fs_1.rmSync)(clone.workspacePath, { recursive: true, force: true });
|
|
372
|
-
throw new WorkspaceCloneError('Failed to bootstrap integration workspace branch', error);
|
|
373
|
-
}
|
|
374
|
-
return {
|
|
375
|
-
...clone,
|
|
376
|
-
integrationBranchName,
|
|
377
|
-
integrationWorkstreamId,
|
|
378
|
-
};
|
|
379
|
-
}
|
|
380
343
|
//# sourceMappingURL=clone.js.map
|