steroids-cli 0.17.1 → 0.18.1
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/README.md +8 -0
- package/dist/commands/loop-phases-coder-decision.d.ts.map +1 -1
- package/dist/commands/loop-phases-coder-decision.js +2 -1
- package/dist/commands/loop-phases-coder-decision.js.map +1 -1
- package/dist/commands/loop-phases-helpers.d.ts.map +1 -1
- package/dist/commands/loop-phases-helpers.js.map +1 -1
- package/dist/commands/loop-phases-reviewer.d.ts.map +1 -1
- package/dist/commands/loop-phases-reviewer.js +18 -39
- package/dist/commands/loop-phases-reviewer.js.map +1 -1
- package/dist/commands/monitor-respond.d.ts.map +1 -1
- package/dist/commands/monitor-respond.js +15 -2
- package/dist/commands/monitor-respond.js.map +1 -1
- package/dist/commands/monitor.d.ts +1 -1
- package/dist/commands/monitor.d.ts.map +1 -1
- package/dist/commands/monitor.js +41 -6
- package/dist/commands/monitor.js.map +1 -1
- package/dist/commands/reviewer-preflight.d.ts.map +1 -1
- package/dist/commands/reviewer-preflight.js +8 -64
- package/dist/commands/reviewer-preflight.js.map +1 -1
- package/dist/commands/sections-delete.d.ts.map +1 -1
- package/dist/commands/sections-delete.js +16 -1
- package/dist/commands/sections-delete.js.map +1 -1
- package/dist/commands/task-runtime-cleanup.d.ts +13 -0
- package/dist/commands/task-runtime-cleanup.d.ts.map +1 -0
- package/dist/commands/task-runtime-cleanup.js +134 -0
- package/dist/commands/task-runtime-cleanup.js.map +1 -0
- package/dist/commands/tasks-reset.d.ts.map +1 -1
- package/dist/commands/tasks-reset.js +20 -52
- package/dist/commands/tasks-reset.js.map +1 -1
- package/dist/commands/tasks.d.ts.map +1 -1
- package/dist/commands/tasks.js +10 -68
- package/dist/commands/tasks.js.map +1 -1
- package/dist/commands/web.d.ts +1 -0
- package/dist/commands/web.d.ts.map +1 -1
- package/dist/commands/web.js +6 -1
- package/dist/commands/web.js.map +1 -1
- package/dist/database/queries.d.ts.map +1 -1
- package/dist/database/queries.js +3 -0
- package/dist/database/queries.js.map +1 -1
- package/dist/git/section-pr.d.ts +4 -3
- package/dist/git/section-pr.d.ts.map +1 -1
- package/dist/git/section-pr.js +8 -15
- package/dist/git/section-pr.js.map +1 -1
- package/dist/intake/reviewer-approval.d.ts +5 -1
- package/dist/intake/reviewer-approval.d.ts.map +1 -1
- package/dist/intake/reviewer-approval.js +90 -15
- package/dist/intake/reviewer-approval.js.map +1 -1
- package/dist/monitor/investigator-agent.d.ts +2 -1
- package/dist/monitor/investigator-agent.d.ts.map +1 -1
- package/dist/monitor/investigator-agent.js +26 -6
- package/dist/monitor/investigator-agent.js.map +1 -1
- package/dist/monitor/investigator-prompt.d.ts +2 -1
- package/dist/monitor/investigator-prompt.d.ts.map +1 -1
- package/dist/monitor/investigator-prompt.js +110 -69
- package/dist/monitor/investigator-prompt.js.map +1 -1
- package/dist/monitor/loop.d.ts.map +1 -1
- package/dist/monitor/loop.js +63 -7
- package/dist/monitor/loop.js.map +1 -1
- package/dist/monitor/response-mode.d.ts +38 -0
- package/dist/monitor/response-mode.d.ts.map +1 -0
- package/dist/monitor/response-mode.js +189 -0
- package/dist/monitor/response-mode.js.map +1 -0
- package/dist/orchestrator/approval-effects-replay.d.ts +17 -0
- package/dist/orchestrator/approval-effects-replay.d.ts.map +1 -0
- package/dist/orchestrator/approval-effects-replay.js +55 -0
- package/dist/orchestrator/approval-effects-replay.js.map +1 -0
- package/dist/orchestrator/automated-approval-effects.d.ts +26 -0
- package/dist/orchestrator/automated-approval-effects.d.ts.map +1 -0
- package/dist/orchestrator/automated-approval-effects.js +294 -0
- package/dist/orchestrator/automated-approval-effects.js.map +1 -0
- package/dist/orchestrator/merge-queue-completion.d.ts +12 -0
- package/dist/orchestrator/merge-queue-completion.d.ts.map +1 -0
- package/dist/orchestrator/merge-queue-completion.js +33 -0
- package/dist/orchestrator/merge-queue-completion.js.map +1 -0
- package/dist/orchestrator/merge-queue.d.ts +8 -1
- package/dist/orchestrator/merge-queue.d.ts.map +1 -1
- package/dist/orchestrator/merge-queue.js +48 -13
- package/dist/orchestrator/merge-queue.js.map +1 -1
- package/dist/orchestrator/reviewer-approval-outcome.d.ts +26 -0
- package/dist/orchestrator/reviewer-approval-outcome.d.ts.map +1 -0
- package/dist/orchestrator/reviewer-approval-outcome.js +52 -0
- package/dist/orchestrator/reviewer-approval-outcome.js.map +1 -0
- package/dist/orchestrator/reviewer-policy.d.ts +12 -0
- package/dist/orchestrator/reviewer-policy.d.ts.map +1 -0
- package/dist/orchestrator/reviewer-policy.js +53 -0
- package/dist/orchestrator/reviewer-policy.js.map +1 -0
- package/dist/orchestrator/reviewer.d.ts +4 -19
- package/dist/orchestrator/reviewer.d.ts.map +1 -1
- package/dist/orchestrator/reviewer.js +14 -63
- package/dist/orchestrator/reviewer.js.map +1 -1
- package/dist/orchestrator/section-completion.d.ts +9 -0
- package/dist/orchestrator/section-completion.d.ts.map +1 -0
- package/dist/orchestrator/section-completion.js +22 -0
- package/dist/orchestrator/section-completion.js.map +1 -0
- package/dist/orchestrator/submission-context.d.ts +30 -0
- package/dist/orchestrator/submission-context.d.ts.map +1 -0
- package/dist/orchestrator/submission-context.js +124 -0
- package/dist/orchestrator/submission-context.js.map +1 -0
- package/dist/runners/global-db-connection.d.ts.map +1 -1
- package/dist/runners/global-db-connection.js +21 -0
- package/dist/runners/global-db-connection.js.map +1 -1
- package/dist/runners/global-db-schema-migrations-v21.d.ts +3 -2
- package/dist/runners/global-db-schema-migrations-v21.d.ts.map +1 -1
- package/dist/runners/global-db-schema-migrations-v21.js +8 -3
- package/dist/runners/global-db-schema-migrations-v21.js.map +1 -1
- package/dist/runners/global-db-schema.d.ts +2 -1
- package/dist/runners/global-db-schema.d.ts.map +1 -1
- package/dist/runners/global-db-schema.js +6 -1
- package/dist/runners/global-db-schema.js.map +1 -1
- package/dist/runners/wakeup-project.d.ts.map +1 -1
- package/dist/runners/wakeup-project.js +9 -1
- package/dist/runners/wakeup-project.js.map +1 -1
- package/dist/runners/wakeup-sanitise-recovery.d.ts +1 -1
- package/dist/runners/wakeup-sanitise-recovery.d.ts.map +1 -1
- package/dist/runners/wakeup-sanitise-recovery.js +26 -15
- package/dist/runners/wakeup-sanitise-recovery.js.map +1 -1
- 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 +5 -5
- package/dist/runners/wakeup-sanitise.js.map +1 -1
- package/package.json +28 -2
|
@@ -1,72 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runReviewerSubmissionPreflight = runReviewerSubmissionPreflight;
|
|
4
|
-
const
|
|
5
|
-
const submission_resolution_js_1 = require("../git/submission-resolution.js");
|
|
6
|
-
const submission_durability_js_1 = require("../git/submission-durability.js");
|
|
7
|
-
const loop_phases_helpers_js_1 = require("./loop-phases-helpers.js");
|
|
8
|
-
const commit_recovery_js_1 = require("./commit-recovery.js");
|
|
4
|
+
const submission_context_js_1 = require("../orchestrator/submission-context.js");
|
|
9
5
|
function runReviewerSubmissionPreflight(db, task, effectiveProjectPath, jsonMode = false) {
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
.
|
|
13
|
-
FROM audit
|
|
14
|
-
WHERE task_id = ?
|
|
15
|
-
AND to_status = 'review'
|
|
16
|
-
AND commit_sha IS NOT NULL
|
|
17
|
-
ORDER BY created_at DESC, id DESC
|
|
18
|
-
LIMIT 1`)
|
|
19
|
-
.get(task.id);
|
|
20
|
-
let latestSubmissionMetadata = null;
|
|
21
|
-
if (latestSubmissionAudit?.metadata) {
|
|
22
|
-
try {
|
|
23
|
-
latestSubmissionMetadata = JSON.parse(latestSubmissionAudit.metadata);
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
latestSubmissionMetadata = null;
|
|
27
|
-
}
|
|
6
|
+
const submissionContext = (0, submission_context_js_1.loadSubmissionContext)(db, effectiveProjectPath, task.id);
|
|
7
|
+
if (!submissionContext.durableRefTrusted) {
|
|
8
|
+
(0, submission_context_js_1.noteDurableRefMismatch)(db, task, effectiveProjectPath);
|
|
28
9
|
}
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const durableShaMatchesAudit = durableRefState.sha === latestAuditCommitSha;
|
|
33
|
-
const durableShaMatchesMetadata = !latestSubmissionMetadata.durable_ref_sha ||
|
|
34
|
-
latestSubmissionMetadata.durable_ref_sha === durableRefState.sha;
|
|
35
|
-
if (durableShaMatchesAudit && durableShaMatchesMetadata) {
|
|
36
|
-
const deduped = [durableRefState.sha, ...submissionCandidates.filter((sha) => sha !== durableRefState.sha)];
|
|
37
|
-
submissionCandidates.splice(0, submissionCandidates.length, ...deduped);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
(0, queries_js_1.addAuditEntry)(db, task.id, task.status, task.status, 'orchestrator', {
|
|
41
|
-
actorType: 'orchestrator',
|
|
42
|
-
notes: `[integrity] Durable ref mismatch: ref=${durableRefState.sha}, latest_audit=${latestAuditCommitSha}. Falling back to submission history.`,
|
|
43
|
-
});
|
|
44
|
-
}
|
|
10
|
+
const approvalSafety = (0, submission_context_js_1.resolveApprovalSafety)(effectiveProjectPath, submissionContext);
|
|
11
|
+
if (!approvalSafety.ok) {
|
|
12
|
+
return (0, submission_context_js_1.handleUnsafeApprovalSubmission)(db, task, approvalSafety, { jsonMode });
|
|
45
13
|
}
|
|
46
|
-
|
|
47
|
-
const latestCandidate = submissionCandidates[0] ?? null;
|
|
48
|
-
const allUnreachable = submissionResolution.status !== 'resolved';
|
|
49
|
-
const latestMissingWithOlderReachable = submissionResolution.status === 'resolved' &&
|
|
50
|
-
latestCandidate !== null &&
|
|
51
|
-
submissionResolution.sha !== latestCandidate;
|
|
52
|
-
if (allUnreachable || latestMissingWithOlderReachable) {
|
|
53
|
-
const recoveryAttempts = (0, loop_phases_helpers_js_1.countCommitRecoveryAttempts)(db, task.id) + 1;
|
|
54
|
-
const reasonTag = allUnreachable ? 'all_submissions_unreachable' : 'latest_missing_with_older_reachable';
|
|
55
|
-
const attemptsText = submissionResolution.attempts.join(' | ') || 'none';
|
|
56
|
-
if (recoveryAttempts >= commit_recovery_js_1.COMMIT_RECOVERY_MAX_ATTEMPTS) {
|
|
57
|
-
(0, queries_js_1.updateTaskStatus)(db, task.id, 'disputed', 'orchestrator', `[commit_recovery] Escalating after ${recoveryAttempts} attempts (${reasonTag}; attempts: ${attemptsText}).`);
|
|
58
|
-
if (!jsonMode) {
|
|
59
|
-
console.log('\n✗ Commit recovery cap reached; task escalated to disputed.');
|
|
60
|
-
}
|
|
61
|
-
return { ok: false };
|
|
62
|
-
}
|
|
63
|
-
(0, queries_js_1.updateTaskStatus)(db, task.id, 'in_progress', 'orchestrator', `[commit_recovery] ${reasonTag} (${submissionResolution.status === 'resolved' ? 'resolved_with_stale_latest' : submissionResolution.reason}; attempts: ${attemptsText}). ` +
|
|
64
|
-
`Treating task as resubmission. Coder must output exact line: SUBMISSION_COMMIT: <sha> for the commit that implements the task.`);
|
|
65
|
-
if (!jsonMode) {
|
|
66
|
-
console.log('\n⟳ Reviewer preflight blocked due to unhealthy submission chain; returning to coder.');
|
|
67
|
-
}
|
|
68
|
-
return { ok: false };
|
|
69
|
-
}
|
|
70
|
-
return { ok: true, submissionCommitSha: submissionResolution.sha };
|
|
14
|
+
return { ok: true, submissionCommitSha: approvalSafety.approvalSha };
|
|
71
15
|
}
|
|
72
16
|
//# sourceMappingURL=reviewer-preflight.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewer-preflight.js","sourceRoot":"","sources":["../../src/commands/reviewer-preflight.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"reviewer-preflight.js","sourceRoot":"","sources":["../../src/commands/reviewer-preflight.ts"],"names":[],"mappings":";;AAeA,wEAiBC;AA5BD,iFAK+C;AAM/C,SAAgB,8BAA8B,CAC5C,EAAyC,EACzC,IAA6C,EAC7C,oBAA4B,EAC5B,QAAQ,GAAG,KAAK;IAEhB,MAAM,iBAAiB,GAAG,IAAA,6CAAqB,EAAC,EAAE,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACnF,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;QACzC,IAAA,8CAAsB,EAAC,EAAE,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,cAAc,GAAG,IAAA,6CAAqB,EAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC;IAEtF,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;QACvB,OAAO,IAAA,sDAA8B,EAAC,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC;AACvE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sections-delete.d.ts","sourceRoot":"","sources":["../../src/commands/sections-delete.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"sections-delete.d.ts","sourceRoot":"","sources":["../../src/commands/sections-delete.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAOnD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA4GxF"}
|
|
@@ -7,6 +7,8 @@ const queries_js_1 = require("../database/queries.js");
|
|
|
7
7
|
const output_js_1 = require("../cli/output.js");
|
|
8
8
|
const errors_js_1 = require("../cli/errors.js");
|
|
9
9
|
const errors_js_2 = require("../cli/errors.js");
|
|
10
|
+
const global_db_js_1 = require("../runners/global-db.js");
|
|
11
|
+
const task_runtime_cleanup_js_1 = require("./task-runtime-cleanup.js");
|
|
10
12
|
async function deleteSectionCmd(args, flags) {
|
|
11
13
|
const out = (0, output_js_1.createOutput)({ command: 'sections', subcommand: 'delete', flags });
|
|
12
14
|
const { values, positionals } = (0, node_util_1.parseArgs)({
|
|
@@ -55,12 +57,14 @@ EXAMPLES:
|
|
|
55
57
|
if (!section) {
|
|
56
58
|
throw (0, errors_js_1.sectionNotFoundError)(sectionIdInput);
|
|
57
59
|
}
|
|
60
|
+
const sectionTasks = db.prepare('SELECT id, title, status FROM tasks WHERE section_id = ? ORDER BY created_at ASC').all(section.id);
|
|
58
61
|
if (flags.dryRun) {
|
|
59
|
-
const taskCount =
|
|
62
|
+
const taskCount = sectionTasks.length;
|
|
60
63
|
out.log(`Would delete section: ${section.name} (${section.id})`);
|
|
61
64
|
if (taskCount > 0) {
|
|
62
65
|
if (values.force) {
|
|
63
66
|
out.log(` Would also delete ${taskCount} task(s)`);
|
|
67
|
+
out.log(' Would also release any runner/workspace state owned by those tasks');
|
|
64
68
|
}
|
|
65
69
|
else {
|
|
66
70
|
out.log(` Section has ${taskCount} task(s) — add --force to delete them too`);
|
|
@@ -70,6 +74,17 @@ EXAMPLES:
|
|
|
70
74
|
}
|
|
71
75
|
let deletedTaskCount;
|
|
72
76
|
try {
|
|
77
|
+
if (values.force && sectionTasks.length > 0) {
|
|
78
|
+
const { db: globalDb, close: closeGlobal } = (0, global_db_js_1.openGlobalDatabase)();
|
|
79
|
+
try {
|
|
80
|
+
for (const task of sectionTasks) {
|
|
81
|
+
(0, task_runtime_cleanup_js_1.cleanupTaskRuntimeState)(globalDb, task.id, projectPath, out, db);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
finally {
|
|
85
|
+
closeGlobal();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
73
88
|
deletedTaskCount = (0, queries_js_1.deleteSection)(db, section.id, { force: values.force });
|
|
74
89
|
}
|
|
75
90
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sections-delete.js","sourceRoot":"","sources":["../../src/commands/sections-delete.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"sections-delete.js","sourceRoot":"","sources":["../../src/commands/sections-delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type Database from 'better-sqlite3';
|
|
2
|
+
export declare const FORCE_DELETE_TASK_STATUSES: readonly ["in_progress", "review", "merge_pending"];
|
|
3
|
+
export declare function taskDeleteRequiresForce(status: string): boolean;
|
|
4
|
+
export interface TaskRuntimeCleanupSummary {
|
|
5
|
+
runnerIds: string[];
|
|
6
|
+
releasedSlotIds: number[];
|
|
7
|
+
unblockedSessionIds: string[];
|
|
8
|
+
releasedMergeLocks: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function cleanupTaskRuntimeState(globalDb: Database.Database, taskId: string, projectPath: string, out?: {
|
|
11
|
+
log: (message: string) => void;
|
|
12
|
+
}, projectDb?: Database.Database): TaskRuntimeCleanupSummary;
|
|
13
|
+
//# sourceMappingURL=task-runtime-cleanup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-runtime-cleanup.d.ts","sourceRoot":"","sources":["../../src/commands/task-runtime-cleanup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAI3C,eAAO,MAAM,0BAA0B,qDAAsD,CAAC;AAE9F,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE;IAAE,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,EACxC,SAAS,CAAC,EAAE,QAAQ,CAAC,QAAQ,GAC5B,yBAAyB,CA4J3B"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FORCE_DELETE_TASK_STATUSES = void 0;
|
|
4
|
+
exports.taskDeleteRequiresForce = taskDeleteRequiresForce;
|
|
5
|
+
exports.cleanupTaskRuntimeState = cleanupTaskRuntimeState;
|
|
6
|
+
const node_child_process_1 = require("node:child_process");
|
|
7
|
+
const clone_js_1 = require("../parallel/clone.js");
|
|
8
|
+
const pool_js_1 = require("../workspace/pool.js");
|
|
9
|
+
exports.FORCE_DELETE_TASK_STATUSES = ['in_progress', 'review', 'merge_pending'];
|
|
10
|
+
function taskDeleteRequiresForce(status) {
|
|
11
|
+
return exports.FORCE_DELETE_TASK_STATUSES.includes(status);
|
|
12
|
+
}
|
|
13
|
+
function cleanupTaskRuntimeState(globalDb, taskId, projectPath, out, projectDb) {
|
|
14
|
+
const projectId = (0, clone_js_1.getProjectHash)(projectPath);
|
|
15
|
+
const runnerMap = new Map();
|
|
16
|
+
const candidateRunnerIds = new Set();
|
|
17
|
+
if (projectDb) {
|
|
18
|
+
const invocationRunnerIds = projectDb
|
|
19
|
+
.prepare(`SELECT DISTINCT runner_id
|
|
20
|
+
FROM task_invocations
|
|
21
|
+
WHERE task_id = ?
|
|
22
|
+
AND runner_id IS NOT NULL
|
|
23
|
+
AND status = 'running'`)
|
|
24
|
+
.all(taskId);
|
|
25
|
+
for (const row of invocationRunnerIds) {
|
|
26
|
+
candidateRunnerIds.add(row.runner_id);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const runners = globalDb
|
|
30
|
+
.prepare(`SELECT DISTINCT r.id, r.pid
|
|
31
|
+
FROM runners r
|
|
32
|
+
LEFT JOIN parallel_sessions ps ON ps.id = r.parallel_session_id
|
|
33
|
+
WHERE r.current_task_id = ?
|
|
34
|
+
AND (r.project_path = ? OR ps.project_path = ?)`)
|
|
35
|
+
.all(taskId, projectPath, projectPath);
|
|
36
|
+
for (const runner of runners) {
|
|
37
|
+
runnerMap.set(runner.id, runner);
|
|
38
|
+
candidateRunnerIds.add(runner.id);
|
|
39
|
+
}
|
|
40
|
+
for (const runnerId of candidateRunnerIds) {
|
|
41
|
+
if (runnerMap.has(runnerId)) {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
const runner = globalDb
|
|
45
|
+
.prepare(`SELECT r.id, r.pid, r.current_task_id
|
|
46
|
+
FROM runners r
|
|
47
|
+
LEFT JOIN parallel_sessions ps ON ps.id = r.parallel_session_id
|
|
48
|
+
WHERE r.id = ?
|
|
49
|
+
AND (r.project_path = ? OR ps.project_path = ? OR r.project_path IS NULL)`)
|
|
50
|
+
.get(runnerId, projectPath, projectPath);
|
|
51
|
+
if (runner && runner.current_task_id && runner.current_task_id !== taskId) {
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
runnerMap.set(runnerId, { id: runnerId, pid: runner?.pid ?? null });
|
|
55
|
+
}
|
|
56
|
+
for (const runner of runnerMap.values()) {
|
|
57
|
+
if (!runner.pid)
|
|
58
|
+
continue;
|
|
59
|
+
const ps = (0, node_child_process_1.spawnSync)('ps', ['-p', String(runner.pid), '-o', 'command='], { encoding: 'utf-8' });
|
|
60
|
+
const cmdOutput = `${ps.stdout ?? ''}${ps.stderr ?? ''}`.toLowerCase();
|
|
61
|
+
if (!cmdOutput.includes('steroids') || !cmdOutput.includes('runners')) {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
out?.log(` -> Killing active runner process (PID: ${runner.pid})`);
|
|
65
|
+
try {
|
|
66
|
+
process.kill(runner.pid, 'SIGKILL');
|
|
67
|
+
(0, node_child_process_1.spawnSync)('sleep', ['0.1']);
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
if (error?.code !== 'ESRCH') {
|
|
71
|
+
throw new Error(`Failed to kill active runner PID ${runner.pid}: ${error.message}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const sessionIdsToUnblock = new Set();
|
|
76
|
+
const releasedSlotIds = [];
|
|
77
|
+
let releasedMergeLocks = 0;
|
|
78
|
+
globalDb.transaction(() => {
|
|
79
|
+
for (const runner of runnerMap.values()) {
|
|
80
|
+
const workstreams = globalDb
|
|
81
|
+
.prepare('SELECT id, session_id FROM workstreams WHERE runner_id = ?')
|
|
82
|
+
.all(runner.id);
|
|
83
|
+
for (const workstream of workstreams) {
|
|
84
|
+
out?.log(` -> Revoking workstream lease (${workstream.id})`);
|
|
85
|
+
globalDb
|
|
86
|
+
.prepare('UPDATE workstreams SET runner_id = NULL, lease_expires_at = NULL WHERE id = ?')
|
|
87
|
+
.run(workstream.id);
|
|
88
|
+
sessionIdsToUnblock.add(workstream.session_id);
|
|
89
|
+
}
|
|
90
|
+
globalDb.prepare('DELETE FROM runners WHERE id = ?').run(runner.id);
|
|
91
|
+
}
|
|
92
|
+
for (const sessionId of sessionIdsToUnblock) {
|
|
93
|
+
globalDb
|
|
94
|
+
.prepare(`UPDATE parallel_sessions
|
|
95
|
+
SET status = 'running'
|
|
96
|
+
WHERE id = ?
|
|
97
|
+
AND status IN ('blocked_recovery', 'failed', 'blocked_validation', 'blocked_conflict')`)
|
|
98
|
+
.run(sessionId);
|
|
99
|
+
}
|
|
100
|
+
const slots = globalDb
|
|
101
|
+
.prepare('SELECT id FROM workspace_pool_slots WHERE project_id = ? AND task_id = ?')
|
|
102
|
+
.all(projectId, taskId);
|
|
103
|
+
for (const slot of slots) {
|
|
104
|
+
(0, pool_js_1.releaseSlot)(globalDb, slot.id);
|
|
105
|
+
releasedSlotIds.push(slot.id);
|
|
106
|
+
}
|
|
107
|
+
for (const runnerId of runnerMap.keys()) {
|
|
108
|
+
const released = globalDb
|
|
109
|
+
.prepare(`DELETE FROM workspace_merge_locks
|
|
110
|
+
WHERE project_id = ?
|
|
111
|
+
AND runner_id = ?`)
|
|
112
|
+
.run(projectId, runnerId);
|
|
113
|
+
releasedMergeLocks += released.changes;
|
|
114
|
+
}
|
|
115
|
+
for (const slotId of releasedSlotIds) {
|
|
116
|
+
const released = globalDb
|
|
117
|
+
.prepare(`DELETE FROM workspace_merge_locks
|
|
118
|
+
WHERE project_id = ?
|
|
119
|
+
AND slot_id = ?`)
|
|
120
|
+
.run(projectId, slotId);
|
|
121
|
+
releasedMergeLocks += released.changes;
|
|
122
|
+
}
|
|
123
|
+
})();
|
|
124
|
+
if (releasedMergeLocks > 0) {
|
|
125
|
+
out?.log(` -> Released ${releasedMergeLocks} merge lock(s)`);
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
runnerIds: [...runnerMap.keys()],
|
|
129
|
+
releasedSlotIds,
|
|
130
|
+
unblockedSessionIds: [...sessionIdsToUnblock],
|
|
131
|
+
releasedMergeLocks,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=task-runtime-cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-runtime-cleanup.js","sourceRoot":"","sources":["../../src/commands/task-runtime-cleanup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks-reset.d.ts","sourceRoot":"","sources":["../../src/commands/tasks-reset.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"tasks-reset.d.ts","sourceRoot":"","sources":["../../src/commands/tasks-reset.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAOnD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAwOpF;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAiFrF"}
|
|
@@ -14,6 +14,7 @@ const global_db_js_1 = require("../runners/global-db.js");
|
|
|
14
14
|
const git_lifecycle_js_1 = require("../workspace/git-lifecycle.js");
|
|
15
15
|
const pool_js_1 = require("../workspace/pool.js");
|
|
16
16
|
const clone_js_1 = require("../parallel/clone.js");
|
|
17
|
+
const task_runtime_cleanup_js_1 = require("./task-runtime-cleanup.js");
|
|
17
18
|
async function resetTaskCmd(args, flags) {
|
|
18
19
|
const out = (0, output_js_1.createOutput)({ command: 'tasks', subcommand: 'reset', flags });
|
|
19
20
|
const { values, positionals } = (0, node_util_1.parseArgs)({
|
|
@@ -123,7 +124,13 @@ DESCRIPTION:
|
|
|
123
124
|
const fullyValidatedTasks = [];
|
|
124
125
|
for (const task of validatedTasks) {
|
|
125
126
|
try {
|
|
126
|
-
|
|
127
|
+
const { db: globalDb, close: closeGlobal } = (0, global_db_js_1.openGlobalDatabase)();
|
|
128
|
+
try {
|
|
129
|
+
(0, task_runtime_cleanup_js_1.cleanupTaskRuntimeState)(globalDb, task.id, projectPath, out, db);
|
|
130
|
+
}
|
|
131
|
+
finally {
|
|
132
|
+
closeGlobal();
|
|
133
|
+
}
|
|
127
134
|
fullyValidatedTasks.push(task);
|
|
128
135
|
}
|
|
129
136
|
catch (e) {
|
|
@@ -206,55 +213,6 @@ DESCRIPTION:
|
|
|
206
213
|
}
|
|
207
214
|
});
|
|
208
215
|
}
|
|
209
|
-
function killRunnerAndRevokeLease(taskId, projDb, out) {
|
|
210
|
-
const { db: globalDb, close: closeGlobal } = (0, global_db_js_1.openGlobalDatabase)();
|
|
211
|
-
try {
|
|
212
|
-
let runnerId = null;
|
|
213
|
-
try {
|
|
214
|
-
const inv = projDb.prepare(`SELECT runner_id FROM task_invocations WHERE task_id = ? AND runner_id IS NOT NULL ORDER BY created_at DESC LIMIT 1`).get(taskId);
|
|
215
|
-
if (inv)
|
|
216
|
-
runnerId = inv.runner_id;
|
|
217
|
-
}
|
|
218
|
-
catch (err) {
|
|
219
|
-
// ignore
|
|
220
|
-
}
|
|
221
|
-
if (runnerId) {
|
|
222
|
-
// Find the active runner PID in global registry
|
|
223
|
-
const runner = globalDb.prepare(`SELECT pid, parallel_session_id FROM runners WHERE id = ?`).get(runnerId);
|
|
224
|
-
if (runner && runner.pid) {
|
|
225
|
-
// PID Reuse Sanity Check: Ensure it belongs to a Steroids runner process
|
|
226
|
-
const ps = (0, node_child_process_1.spawnSync)('ps', ['-p', String(runner.pid), '-o', 'command='], { encoding: 'utf-8' });
|
|
227
|
-
const cmdOutput = ps.stdout.toLowerCase();
|
|
228
|
-
if (cmdOutput.includes('steroids') && cmdOutput.includes('runners')) {
|
|
229
|
-
out.log(` -> Killing active runner process (PID: ${runner.pid})`);
|
|
230
|
-
try {
|
|
231
|
-
process.kill(runner.pid, 'SIGKILL');
|
|
232
|
-
(0, node_child_process_1.spawnSync)('sleep', ['0.1']);
|
|
233
|
-
}
|
|
234
|
-
catch (e) {
|
|
235
|
-
if (e.code !== 'ESRCH') {
|
|
236
|
-
throw new Error(`Failed to kill active runner PID ${runner.pid}: ${e.message}`);
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
// Revoke lease and unblock session
|
|
242
|
-
globalDb.transaction(() => {
|
|
243
|
-
// Find workstream using deterministic lookup
|
|
244
|
-
const ws = globalDb.prepare(`SELECT id, session_id FROM workstreams WHERE runner_id = ?`).get(runnerId);
|
|
245
|
-
if (ws) {
|
|
246
|
-
out.log(` -> Revoking workstream lease (${ws.id})`);
|
|
247
|
-
globalDb.prepare(`UPDATE workstreams SET runner_id = NULL, lease_expires_at = NULL WHERE id = ?`).run(ws.id);
|
|
248
|
-
// Unblock session
|
|
249
|
-
globalDb.prepare(`UPDATE parallel_sessions SET status = 'running' WHERE id = ? AND status IN ('blocked_recovery', 'failed', 'blocked_validation', 'blocked_conflict')`).run(ws.session_id);
|
|
250
|
-
}
|
|
251
|
-
})();
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
finally {
|
|
255
|
-
closeGlobal();
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
216
|
async function deleteTaskCmd(args, flags) {
|
|
259
217
|
const out = (0, output_js_1.createOutput)({ command: 'tasks', subcommand: 'delete', flags });
|
|
260
218
|
const { values, positionals } = (0, node_util_1.parseArgs)({
|
|
@@ -301,15 +259,25 @@ EXAMPLES:
|
|
|
301
259
|
out.error(errors_js_1.ErrorCode.TASK_NOT_FOUND, `Task not found: ${identifier}`);
|
|
302
260
|
process.exit((0, errors_js_1.getExitCode)(errors_js_1.ErrorCode.TASK_NOT_FOUND));
|
|
303
261
|
}
|
|
304
|
-
if (task.status
|
|
305
|
-
out.error(errors_js_1.ErrorCode.GENERAL_ERROR, `Task is currently
|
|
262
|
+
if ((0, task_runtime_cleanup_js_1.taskDeleteRequiresForce)(task.status) && !values.force) {
|
|
263
|
+
out.error(errors_js_1.ErrorCode.GENERAL_ERROR, `Task is currently active (${task.status}). Use --force to delete it anyway.`);
|
|
306
264
|
process.exit(1);
|
|
307
265
|
}
|
|
308
266
|
if (flags.dryRun) {
|
|
309
267
|
out.log(`Would delete task: ${task.title} (${task.id})`);
|
|
310
268
|
out.log(` Status: ${task.status}`);
|
|
269
|
+
if ((0, task_runtime_cleanup_js_1.taskDeleteRequiresForce)(task.status)) {
|
|
270
|
+
out.log(' Would also stop any active runner and release task-owned workspace state');
|
|
271
|
+
}
|
|
311
272
|
return;
|
|
312
273
|
}
|
|
274
|
+
const { db: globalDb, close: closeGlobal } = (0, global_db_js_1.openGlobalDatabase)();
|
|
275
|
+
try {
|
|
276
|
+
(0, task_runtime_cleanup_js_1.cleanupTaskRuntimeState)(globalDb, task.id, projectPath, out, db);
|
|
277
|
+
}
|
|
278
|
+
finally {
|
|
279
|
+
closeGlobal();
|
|
280
|
+
}
|
|
313
281
|
(0, queries_js_1.deleteTask)(db, task.id);
|
|
314
282
|
if (flags.json) {
|
|
315
283
|
out.success({ deleted: { id: task.id, title: task.title } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks-reset.js","sourceRoot":"","sources":["../../src/commands/tasks-reset.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tasks-reset.js","sourceRoot":"","sources":["../../src/commands/tasks-reset.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/commands/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/commands/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAsJnD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA+EpF"}
|
package/dist/commands/tasks.js
CHANGED
|
@@ -18,8 +18,8 @@ const integration_js_1 = require("../hooks/integration.js");
|
|
|
18
18
|
const tasks_reset_js_1 = require("./tasks-reset.js");
|
|
19
19
|
const tasks_deps_js_1 = require("./tasks-deps.js");
|
|
20
20
|
const status_js_1 = require("../git/status.js");
|
|
21
|
-
const section_pr_js_1 = require("../git/section-pr.js");
|
|
22
21
|
const loader_js_1 = require("../config/loader.js");
|
|
22
|
+
const automated_approval_effects_js_1 = require("../orchestrator/automated-approval-effects.js");
|
|
23
23
|
const HELP = (0, help_js_1.generateHelp)({
|
|
24
24
|
command: 'tasks',
|
|
25
25
|
description: 'Manage tasks in the automated development workflow',
|
|
@@ -943,64 +943,6 @@ EXAMPLES:
|
|
|
943
943
|
}
|
|
944
944
|
});
|
|
945
945
|
}
|
|
946
|
-
/**
|
|
947
|
-
* Check if a section is completed after a task is marked complete
|
|
948
|
-
*/
|
|
949
|
-
async function checkSectionCompletion(db, sectionId, flags) {
|
|
950
|
-
if (!sectionId) {
|
|
951
|
-
return;
|
|
952
|
-
}
|
|
953
|
-
// Get section info
|
|
954
|
-
const section = (0, queries_js_1.getSection)(db, sectionId);
|
|
955
|
-
if (!section) {
|
|
956
|
-
return;
|
|
957
|
-
}
|
|
958
|
-
// Section is "done" when all tasks are in terminal states AND at least one completed.
|
|
959
|
-
// Terminal states: completed, skipped, failed, disputed, blocked_error, blocked_conflict.
|
|
960
|
-
// Non-terminal (active): pending, in_progress, review, partial.
|
|
961
|
-
const sectionTasks = (0, queries_js_1.listTasks)(db, { sectionId });
|
|
962
|
-
const activeCount = sectionTasks.filter(t => ['pending', 'in_progress', 'review', 'merge_pending', 'partial'].includes(t.status)).length;
|
|
963
|
-
const completedCount = sectionTasks.filter(t => t.status === 'completed').length;
|
|
964
|
-
const sectionDone = sectionTasks.length > 0 && activeCount === 0 && completedCount > 0;
|
|
965
|
-
if (sectionDone) {
|
|
966
|
-
// Trigger section.completed hooks (skipped when --no-hooks)
|
|
967
|
-
if (!(0, integration_js_1.shouldSkipHooks)(flags)) {
|
|
968
|
-
await (0, integration_js_1.triggerHooksSafely)(() => (0, integration_js_1.triggerSectionCompleted)({
|
|
969
|
-
id: section.id,
|
|
970
|
-
name: section.name,
|
|
971
|
-
taskCount: sectionTasks.length,
|
|
972
|
-
}, sectionTasks.map((t) => ({ id: t.id, title: t.title })), { verbose: flags.verbose }), { verbose: flags.verbose });
|
|
973
|
-
}
|
|
974
|
-
// Auto-PR: always runs regardless of --no-hooks (hooks and PRs are orthogonal)
|
|
975
|
-
const projectPath = process.cwd();
|
|
976
|
-
const config = (0, loader_js_1.loadConfig)(projectPath);
|
|
977
|
-
await (0, section_pr_js_1.checkSectionCompletionAndPR)(db, projectPath, sectionId, config);
|
|
978
|
-
}
|
|
979
|
-
}
|
|
980
|
-
/**
|
|
981
|
-
* Check if the entire project is completed after a task is marked complete
|
|
982
|
-
*/
|
|
983
|
-
async function checkProjectCompletion(db, flags) {
|
|
984
|
-
if ((0, integration_js_1.shouldSkipHooks)(flags)) {
|
|
985
|
-
return;
|
|
986
|
-
}
|
|
987
|
-
// Get all tasks
|
|
988
|
-
const allTasks = (0, queries_js_1.listTasks)(db, { status: 'all' });
|
|
989
|
-
// Check if all tasks are completed
|
|
990
|
-
const allCompleted = allTasks.every((t) => t.status === 'completed');
|
|
991
|
-
if (allCompleted && allTasks.length > 0) {
|
|
992
|
-
// Get sections
|
|
993
|
-
const sections = (0, queries_js_1.listSections)(db);
|
|
994
|
-
// Get unique source files
|
|
995
|
-
const files = Array.from(new Set(allTasks.map((t) => t.source_file).filter(Boolean)));
|
|
996
|
-
// Trigger project.completed hooks
|
|
997
|
-
await (0, integration_js_1.triggerHooksSafely)(() => (0, integration_js_1.triggerProjectCompleted)({
|
|
998
|
-
totalTasks: allTasks.length,
|
|
999
|
-
files,
|
|
1000
|
-
sectionCount: sections.length,
|
|
1001
|
-
}, { verbose: flags.verbose }), { verbose: flags.verbose });
|
|
1002
|
-
}
|
|
1003
|
-
}
|
|
1004
946
|
async function approveTaskCmd(args, flags) {
|
|
1005
947
|
const out = (0, output_js_1.createOutput)({ command: 'tasks', subcommand: 'approve', flags });
|
|
1006
948
|
const { values, positionals } = (0, node_util_1.parseArgs)({
|
|
@@ -1041,16 +983,16 @@ OPTIONS:
|
|
|
1041
983
|
out.error(errors_js_1.ErrorCode.TASK_NOT_FOUND, `Task not found: ${identifier}`, { identifier });
|
|
1042
984
|
process.exit((0, errors_js_1.getExitCode)(errors_js_1.ErrorCode.TASK_NOT_FOUND));
|
|
1043
985
|
}
|
|
1044
|
-
(0,
|
|
986
|
+
await (0, automated_approval_effects_js_1.completeTaskWithApprovalEffects)(db, task, {
|
|
987
|
+
actor: `model:${values.model}`,
|
|
988
|
+
notes: values.notes ?? 'Approved via steroids tasks approve',
|
|
989
|
+
config: (0, loader_js_1.loadConfig)(projectPath),
|
|
990
|
+
projectPath,
|
|
991
|
+
intakeProjectPath: projectPath,
|
|
992
|
+
hooksEnabled: !(0, integration_js_1.shouldSkipHooks)(flags),
|
|
993
|
+
verbose: flags.verbose,
|
|
994
|
+
});
|
|
1045
995
|
const updated = (0, queries_js_1.getTask)(db, task.id);
|
|
1046
|
-
// Trigger task.completed hooks
|
|
1047
|
-
if (!(0, integration_js_1.shouldSkipHooks)(flags) && updated) {
|
|
1048
|
-
await (0, integration_js_1.triggerHooksSafely)(() => (0, integration_js_1.triggerTaskCompleted)(updated, { verbose: flags.verbose }), { verbose: flags.verbose });
|
|
1049
|
-
// Check if section is now complete
|
|
1050
|
-
await checkSectionCompletion(db, updated.section_id, flags);
|
|
1051
|
-
// Check if entire project is now complete
|
|
1052
|
-
await checkProjectCompletion(db, flags);
|
|
1053
|
-
}
|
|
1054
996
|
out.success({ task: updated });
|
|
1055
997
|
if (!flags.json) {
|
|
1056
998
|
out.log(`Task approved: ${task.title}`);
|