pi-goal-list-loop-audit 0.38.95 → 0.38.96

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/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.38.96 — /glla resume + /loop resume release the load hold before probing (2026-09-23)
4
+
5
+ - Field: a deterministic-400 manual hold cold-loaded (load hold engaged), then `/glla resume` consumed the manual hold and the goal stayed parked — the fired recovery probe died silently on the `supervisorPaused` gate, which includes `loadHoldAt`. No probe, no timer, stale resume text. `/glla resume` and `/loop resume` now release the cold-load hold at entry like `/goal resume` and agent-resume already do (audit/GLLA-RESUME-LOAD-HOLD-2026-09-23.md). Workaround on 0.38.95: run `/goal resume`.
6
+
3
7
  ## 0.38.95 — Stop the pause cycles: image-count clamp, ledger dedupe (2026-09-23)
4
8
 
5
9
  - The payload guard now clamps image blocks per request (default 4, the observed provider limit) as well as bytes — small screenshots fit the byte budget but 400'd on count (field 2026-09-21: `Image count 12 exceeds limit 4`). Oldest-first, keep-recent floor wins on conflict; eviction entries carry the remaining count (audit/PAUSES-2026-09-22.md).
package/docs/INDEX.md CHANGED
@@ -16,7 +16,7 @@ Policy contracts and recent changes live in the `audit/` directory of the
16
16
  failback; v0.35.9 hardened cross-version npm tarball checks; v0.35.10
17
17
  handles multi-entry npm dry-run reports; v0.35.11 accepts both npm report
18
18
  shapes; v0.35.12 supports npm 12's keyed pack reports; v0.35.13 fixes stale-API recovery loops.
19
- v0.35.14–v0.38.95 continue through the supervisor freeze (`/glla pause`),
19
+ v0.35.14–v0.38.96 continue through the supervisor freeze (`/glla pause`),
20
20
  load hold, auditor picker parity, Windows launch fix, zombie-watchdog
21
21
  subagent carve-out, due-wait backstop, the `/glla agents` visibility panel,
22
22
  durable state-root selection, blank-until-resume auditor context, frozen
@@ -2481,6 +2481,16 @@ async function cmdGllaResume(ctx: ExtensionContext): Promise<void> {
2481
2481
  appendLedger(ctx.cwd, "supervisor_resume", { frozenMs });
2482
2482
  ctx.ui.notify(`Supervisor RESUMED after ${fmtElapsed(frozenMs)} — heartbeat re-arms, recovery probes, auto-resume, continuation dispatch, and auditor quiet notifies are live again.`, "info");
2483
2483
  }
2484
+ // v0.38.96 (field 2026-09-23, dracon-utilities): /glla resume carries the
2485
+ // same consent semantics as /goal resume, so it must release the cold-load
2486
+ // hold too — otherwise manuallyResumeMainModelRecovery consumes the manual
2487
+ // hold and its probe dies silently on the supervisorPaused gate (which
2488
+ // includes loadHoldAt): no probe, no timer, goal still parked.
2489
+ if (clearLoadHold(state)) {
2490
+ persistState(ctx);
2491
+ appendLedger(ctx.cwd, "load_hold_released", { via: "glla-resume" });
2492
+ ctx.ui.notify("Load hold released — automation is live again.", "info");
2493
+ }
2484
2494
  if (manuallyResumeMainModelRecovery(ctx)) return;
2485
2495
  if (state.mainModelRecovery?.retryAt || state.mainModelRecovery?.pendingModelSwitch) {
2486
2496
  clearMainModelRecoveryTimer();
@@ -1015,6 +1015,14 @@ async function cmdLoop(args: string, ctx: ExtensionContext): Promise<void> {
1015
1015
 
1016
1016
  if (!sub || sub === "resume") {
1017
1017
  releaseInitialSessionLoadBarrier();
1018
+ // v0.38.96 (field 2026-09-23): same release the held-loop path does
1019
+ // below, but at entry — the recovery branches return before it, and a
1020
+ // manual-resume probe fired under a load hold dies silently on the
1021
+ // supervisorPaused gate (hold consumed, loop still held, nothing armed).
1022
+ if (clearLoadHold(state)) {
1023
+ persistState(ctx);
1024
+ appendLedger(ctx.cwd, "load_hold_released", { via: "loop-resume" });
1025
+ }
1018
1026
  if (state.mainModelRecovery?.manualResumeRequired && state.mainModelRecovery.kind === "loop") {
1019
1027
  manuallyResumeMainModelRecovery(ctx);
1020
1028
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-goal-list-loop-audit",
3
- "version": "0.38.95",
3
+ "version": "0.38.96",
4
4
  "description": "Mission control for long running pi work: interview drafted goals, an audited task queue, and metric or audit loops that run for hours. Every completion is rechecked by a detached auditor with raw evidence, while Confirm drafts, decision pauses, and consent gates keep you in charge.",
5
5
  "license": "AGPL-3.0-only",
6
6
  "author": "dracon",