pi-goal-list-loop-audit 0.28.2 → 0.28.3

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.
@@ -4083,7 +4083,8 @@ export default function (pi: ExtensionAPI): void {
4083
4083
  // never auto-resumes. Once running, the chain auto-continues forever
4084
4084
  // unless a super-stuck brake (stall escalation / stale-api / latch)
4085
4085
  // stops it loudly.
4086
- const autoResume = shouldAutoResumeOnSessionStart(event?.reason, resolveEffectiveAggressiveSettings(loadSettings(ctx.cwd)).autoResume);
4086
+ const autoResumeSetting = resolveEffectiveAggressiveSettings(loadSettings(ctx.cwd)).autoResume;
4087
+ const autoResume = shouldAutoResumeOnSessionStart(event?.reason, autoResumeSetting);
4087
4088
  // v0.25.0 (contract item 6): aggressiveMode announces every auto-event.
4088
4089
  if (
4089
4090
  autoResume &&
@@ -4109,10 +4110,14 @@ export default function (pi: ExtensionAPI): void {
4109
4110
  );
4110
4111
  }
4111
4112
  } else if (state.goal && state.goal.status === "active" && state.goal.autoContinue) {
4112
- if (autoResume) {
4113
+ // v0.28.3 (S2 completed): an infra interrupt outranks the DEFAULT
4114
+ // hold — the goal never chose to stop; pi killed its handle. With
4115
+ // autoresume unset, an interrupted goal auto-resumes even on a human
4116
+ // session load; explicit /glla autoresume=off still holds.
4117
+ const wasInterrupted = !!state.goal.interruptedAt;
4118
+ if (autoResume || (wasInterrupted && autoResumeSetting !== false)) {
4113
4119
  // v0.28.1 (S2): clear the stale-handle interrupt marker — this IS
4114
4120
  // the auto-resume the marker promised.
4115
- const wasInterrupted = !!state.goal.interruptedAt;
4116
4121
  if (wasInterrupted) updateGoal({ interruptedAt: undefined, interruptedReason: undefined }, ctx);
4117
4122
  ctx.ui.notify(
4118
4123
  `Resuming ${state.goal.policy === "list" ? "list item" : "goal"} [${state.goal.id}]: ${state.goal.objective.slice(0, 70)}${listQueue().length > 0 ? ` (+${listQueue().length} queued)` : ""}${wasInterrupted ? " — auto-resumed after the stale-handle interrupt" : ""}`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-goal-list-loop-audit",
3
- "version": "0.28.2",
3
+ "version": "0.28.3",
4
4
  "description": "Goal. Loop. Audit. Done. \u2014 a pi-coding-agent extension that supervises long-running work, with isolated auditor on each completion. Beat bamboozling by design: the auditor runs in a fresh session with no extensions, no skills, no editor \u2014 only the read tools needed to verify your goal.",
5
5
  "license": "MIT",
6
6
  "author": "dracon",