@galda/cli 0.10.91 → 0.10.92
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/engine/lib.mjs +5 -3
- package/package.json +1 -1
package/engine/lib.mjs
CHANGED
|
@@ -2987,12 +2987,14 @@ export function replayQueueLog(rawText, reviewDefinitions = {}) {
|
|
|
2987
2987
|
}
|
|
2988
2988
|
for (const t of tasks) {
|
|
2989
2989
|
if (t.status !== 'running') continue;
|
|
2990
|
+
const parent = goals.find((g) => g.id === t.goalId);
|
|
2990
2991
|
// A Manager restart is an infrastructure interruption, not a request for
|
|
2991
2992
|
// human judgment. Resume the same task once from the files/session already
|
|
2992
|
-
// on disk
|
|
2993
|
-
//
|
|
2993
|
+
// on disk, but only while its parent goal is genuinely in flight. A stale
|
|
2994
|
+
// running task under a partial/review/done goal must never resurrect work
|
|
2995
|
+
// the customer has already moved past. The bounded counter prevents loops.
|
|
2994
2996
|
const recoveries = Number(t.restartRecoveries ?? 0);
|
|
2995
|
-
if (recoveries < 1) {
|
|
2997
|
+
if (parent?.status === 'running' && recoveries < 1) {
|
|
2996
2998
|
t.status = 'queued';
|
|
2997
2999
|
t.restartRecoveries = recoveries + 1;
|
|
2998
3000
|
t.recoveredFromRestart = true;
|
package/package.json
CHANGED