pi-goal-list-loop-audit 0.28.12 → 0.28.13

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.
@@ -4424,6 +4424,14 @@ export default function (pi: ExtensionAPI): void {
4424
4424
  // them toward the stall brake paused restored goals mid-recovery.
4425
4425
  postRestoreGraceTurns--;
4426
4426
  appendLedger(ctx.cwd, "post_restore_grace", { remaining: postRestoreGraceTurns });
4427
+ } else if (lastA?.stopReason === "error") {
4428
+ // v0.28.13 (endless-td 429 incident 2026-07-28): provider-error
4429
+ // turns (429 quota exhaustion, 5xx) are NOT model unproductivity —
4430
+ // the model never got a say. Counting them tripped the brake on a
4431
+ // healthy goal mid-CDP-capture (4 MiniMax-M3 429s → wrong
4432
+ // "unproductive turns" pause). pi's own retry owns the backoff;
4433
+ // the nudge counter neither increments nor resets on these turns.
4434
+ appendLedger(ctx.cwd, "stall_nudge_exempt_error", { nudgesSoFar: heartbeatNudges });
4427
4435
  } else {
4428
4436
  const s = loadSettings(ctx.cwd);
4429
4437
  const shortWordsThr = s.stallShortWords ?? DEFAULT_STALL_SHORT_WORDS;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-goal-list-loop-audit",
3
- "version": "0.28.12",
3
+ "version": "0.28.13",
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",