@neriros/ralphy 2.8.0 → 2.8.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/dist/cli/index.js +12 -1
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -69787,6 +69787,7 @@ import { join as join10 } from "path";
|
|
|
69787
69787
|
var AgentStateSchema = exports_external.object({
|
|
69788
69788
|
processedIssueIds: exports_external.array(exports_external.string()).default([]),
|
|
69789
69789
|
startedIssueIds: exports_external.array(exports_external.string()).default([]),
|
|
69790
|
+
failedIssueIds: exports_external.array(exports_external.string()).default([]),
|
|
69790
69791
|
lastPollAt: exports_external.string().nullable().default(null),
|
|
69791
69792
|
changeMeta: exports_external.record(exports_external.string(), exports_external.object({
|
|
69792
69793
|
issueId: exports_external.string(),
|
|
@@ -69977,12 +69978,15 @@ class AgentCoordinator {
|
|
|
69977
69978
|
}
|
|
69978
69979
|
const state = this.state;
|
|
69979
69980
|
const seen = new Set(state.processedIssueIds);
|
|
69981
|
+
const failed = new Set(state.failedIssueIds);
|
|
69980
69982
|
const queued = new Set(this.queue.map((i) => i.id));
|
|
69981
69983
|
const active = new Set(this.workers.map((w) => w.issueId));
|
|
69982
69984
|
let added = 0;
|
|
69983
69985
|
for (const issue of issues) {
|
|
69984
69986
|
if (seen.has(issue.id))
|
|
69985
69987
|
continue;
|
|
69988
|
+
if (failed.has(issue.id))
|
|
69989
|
+
continue;
|
|
69986
69990
|
if (queued.has(issue.id))
|
|
69987
69991
|
continue;
|
|
69988
69992
|
if (active.has(issue.id))
|
|
@@ -70073,6 +70077,10 @@ class AgentCoordinator {
|
|
|
70073
70077
|
this.state.processedIssueIds.push(issue.id);
|
|
70074
70078
|
this.deps.saveState(this.state);
|
|
70075
70079
|
}
|
|
70080
|
+
if (!ok && this.state && !this.state.failedIssueIds.includes(issue.id)) {
|
|
70081
|
+
this.state.failedIssueIds.push(issue.id);
|
|
70082
|
+
this.deps.saveState(this.state);
|
|
70083
|
+
}
|
|
70076
70084
|
this.notifyExited(issue, changeName, code);
|
|
70077
70085
|
this.deps.onWorkersChanged();
|
|
70078
70086
|
this.spawnNext();
|
|
@@ -70104,7 +70112,9 @@ class AgentCoordinator {
|
|
|
70104
70112
|
return;
|
|
70105
70113
|
const ok = code === 0;
|
|
70106
70114
|
if (this.opts.postComments !== false) {
|
|
70107
|
-
const body = ok ? `\u2705 Ralph completed work on this issue. Change: \`${changeName}\`` : `\u2717 Ralph exited with code ${code} on this issue. Change: \`${changeName}
|
|
70115
|
+
const body = ok ? `\u2705 Ralph completed work on this issue. Change: \`${changeName}\`` : `\u2717 Ralph exited with code ${code} on this issue. Change: \`${changeName}\`
|
|
70116
|
+
|
|
70117
|
+
` + `This issue has been quarantined and will not be auto-resumed on the next poll. ` + `Inspect the worktree at \`.ralph/worktrees/${changeName}\`, fix the underlying ` + `failure (e.g. lint/typecheck), then run \`ralph clean --name ${changeName}\` to ` + `clear the quarantine and let the next poll re-pick the issue.`;
|
|
70108
70118
|
try {
|
|
70109
70119
|
await updater.postComment(issue, body);
|
|
70110
70120
|
} catch (err) {
|
|
@@ -71119,6 +71129,7 @@ try {
|
|
|
71119
71129
|
if (meta) {
|
|
71120
71130
|
agentState.processedIssueIds = agentState.processedIssueIds.filter((id) => id !== meta.issueId);
|
|
71121
71131
|
agentState.startedIssueIds = agentState.startedIssueIds.filter((id) => id !== meta.issueId);
|
|
71132
|
+
agentState.failedIssueIds = agentState.failedIssueIds.filter((id) => id !== meta.issueId);
|
|
71122
71133
|
delete agentState.changeMeta[args.name];
|
|
71123
71134
|
await writeAgentState(projectRoot, agentState);
|
|
71124
71135
|
removed.push(`agent-state entry for ${meta.identifier} (${meta.issueId})`);
|