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 +4 -0
- package/docs/INDEX.md +1 -1
- package/extensions/goal-commands.ts +10 -0
- package/extensions/goal-loop.ts +8 -0
- package/package.json +1 -1
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.
|
|
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();
|
package/extensions/goal-loop.ts
CHANGED
|
@@ -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.
|
|
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",
|