pi-goal-list-loop-audit 0.26.7 → 0.26.8
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/extensions/goal-loop-core.ts +10 -2
- package/extensions/loops/goal.ts +11 -11
- package/package.json +1 -1
|
@@ -660,8 +660,16 @@ export function cloneGoal(goal: Goal): Goal {
|
|
|
660
660
|
* setting for unattended restarts). One mechanical predicate; no heuristics.
|
|
661
661
|
*/
|
|
662
662
|
export function shouldAutoResumeOnSessionStart(reason: string | undefined, autoResume: boolean | undefined): boolean {
|
|
663
|
-
|
|
664
|
-
|
|
663
|
+
// v0.26.8: default flipped to ON — keep pushing forward on every session
|
|
664
|
+
// start unless the user explicitly opts out (/glla autoresume=off). The
|
|
665
|
+
// "super stuck" brakes (stall escalation, stale-api terminal, pending-
|
|
666
|
+
// latch watchdog) still stop the machine loudly; a mere process restart
|
|
667
|
+
// is not a reason to hold work. Explicit off preserves the v0.21.0 gate:
|
|
668
|
+
// only sessions with history (resume/reload/fork) auto-resume.
|
|
669
|
+
if (autoResume === false) {
|
|
670
|
+
return reason === "resume" || reason === "reload" || reason === "fork";
|
|
671
|
+
}
|
|
672
|
+
return true;
|
|
665
673
|
}
|
|
666
674
|
|
|
667
675
|
/**
|
package/extensions/loops/goal.ts
CHANGED
|
@@ -3221,7 +3221,7 @@ async function cmdSettings(args: string, ctx: ExtensionContext): Promise<void> {
|
|
|
3221
3221
|
patch.autoResume = true;
|
|
3222
3222
|
changed = true;
|
|
3223
3223
|
} else if (["off", "false", "0", "no", "unset"].includes(value)) {
|
|
3224
|
-
patch.autoResume = undefined
|
|
3224
|
+
patch.autoResume = false; // v0.26.8: explicit off must persist — undefined now means ON
|
|
3225
3225
|
changed = true;
|
|
3226
3226
|
} else {
|
|
3227
3227
|
ctx.ui.notify(`autoresume must be on or off, got: ${value}`, "warning");
|
|
@@ -3329,7 +3329,7 @@ async function cmdSettings(args: string, ctx: ExtensionContext): Promise<void> {
|
|
|
3329
3329
|
saveSettings(scope, ctx.cwd, patch);
|
|
3330
3330
|
const effective = loadSettings(ctx.cwd);
|
|
3331
3331
|
ctx.ui.notify(
|
|
3332
|
-
`Saved to ${scope} config. Effective now: model=${effective.auditorModel ?? "(session model)"} thinking=${effective.auditorThinkingLevel ?? "(session)"} notify=${effective.notifyCmd ?? "(off)"} tokenLimit=${effective.tokenLimit ?? 0}${(effective.tokenLimit ?? 0) > 0 ? "" : " (off)"} autoResume=${effective.autoResume ===
|
|
3332
|
+
`Saved to ${scope} config. Effective now: model=${effective.auditorModel ?? "(session model)"} thinking=${effective.auditorThinkingLevel ?? "(session)"} notify=${effective.notifyCmd ?? "(off)"} tokenLimit=${effective.tokenLimit ?? 0}${(effective.tokenLimit ?? 0) > 0 ? "" : " (off)"} autoResume=${effective.autoResume === false ? "off" : "on (default)"} auditFeedbackChars=${effective.auditFeedbackChars ?? DEFAULT_AUDIT_FEEDBACK_CHARS}${(effective.auditFeedbackChars ?? DEFAULT_AUDIT_FEEDBACK_CHARS) === 0 ? " (full report)" : ""}\n` +
|
|
3333
3333
|
`Note: the auditor runs without extensions — it must be a built-in provider, not an extension-registered one.`,
|
|
3334
3334
|
"info",
|
|
3335
3335
|
);
|
|
@@ -3444,7 +3444,7 @@ export default function (pi: ExtensionAPI): void {
|
|
|
3444
3444
|
["thinking=", "auditor thinking level: /glla thinking=high"],
|
|
3445
3445
|
["notify=", "desktop push command: /glla notify='notify-send pi \"$1\"'"],
|
|
3446
3446
|
["tokenlimit=", "per-goal token budget (0 = off): /glla tokenlimit=2000000"],
|
|
3447
|
-
["autoresume=", "on: auto-resume
|
|
3447
|
+
["autoresume=", "on (default): auto-resume goals/loops on every session start; off: hold on fresh sessions"],
|
|
3448
3448
|
["auditcap=", "N: pause goal after N consecutive auditor disapprovals (default 5, 0 = unlimited)"],
|
|
3449
3449
|
["auditfeedbackchars=", "cap on executor-visible disapproval report chars (0 = full report, the default)"],
|
|
3450
3450
|
["aggressivemode=", "on: keep-going defaults — autoResume, cap 10, stuck 10, wedge off, quota auto-retry, cap→TODOs"],
|
|
@@ -3641,12 +3641,12 @@ export default function (pi: ExtensionAPI): void {
|
|
|
3641
3641
|
} catch (err) {
|
|
3642
3642
|
ctx.ui.notify(`glla subagent override sync failed: ${err instanceof Error ? err.message : String(err)}`, "warning");
|
|
3643
3643
|
}
|
|
3644
|
-
// Restore gate (v0.21.0
|
|
3645
|
-
//
|
|
3646
|
-
//
|
|
3647
|
-
//
|
|
3648
|
-
//
|
|
3649
|
-
//
|
|
3644
|
+
// Restore gate (v0.21.0, default flipped v0.26.8): auto-resume on EVERY
|
|
3645
|
+
// session start by default — keep pushing forward unless super stuck
|
|
3646
|
+
// (the stall escalation / stale-api / latch brakes still stop loudly).
|
|
3647
|
+
// /glla autoresume=off restores the v0.21.0 gate: fresh sessions
|
|
3648
|
+
// ("startup"/"new", or a pi too old to report a reason) HOLD, only
|
|
3649
|
+
// sessions with history ("resume"/"reload"/"fork") auto-resume.
|
|
3650
3650
|
const autoResume = shouldAutoResumeOnSessionStart(event?.reason, resolveEffectiveAggressiveSettings(loadSettings(ctx.cwd)).autoResume);
|
|
3651
3651
|
// v0.25.0 (contract item 6): aggressiveMode announces every auto-event.
|
|
3652
3652
|
if (
|
|
@@ -3668,7 +3668,7 @@ export default function (pi: ExtensionAPI): void {
|
|
|
3668
3668
|
state.loop = { ...l, active: false, stopReason: HELD_ON_RESTORE };
|
|
3669
3669
|
persistState(ctx);
|
|
3670
3670
|
ctx.ui.notify(
|
|
3671
|
-
`Loop held on restore (
|
|
3671
|
+
`Loop held on restore (/glla autoresume=off): ${l.target.slice(0, 60)} — /loop to resume, /glla autoresume=on to auto-resume in this project.`,
|
|
3672
3672
|
"info",
|
|
3673
3673
|
);
|
|
3674
3674
|
}
|
|
@@ -3687,7 +3687,7 @@ export default function (pi: ExtensionAPI): void {
|
|
|
3687
3687
|
const resumeHint = `${resumeCmd} to continue${queued > 0 ? ` (+${queued} waiting in the list)` : ""} · /glla autoresume=on to auto-resume in this project`;
|
|
3688
3688
|
updateGoal({
|
|
3689
3689
|
status: "paused",
|
|
3690
|
-
pauseReason: "restored in a fresh session —
|
|
3690
|
+
pauseReason: "restored in a fresh session — held because /glla autoresume=off",
|
|
3691
3691
|
pauseSuggestedAction: resumeHint,
|
|
3692
3692
|
}, ctx);
|
|
3693
3693
|
ctx.ui.notify(
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-goal-list-loop-audit",
|
|
3
|
-
"version": "0.26.
|
|
3
|
+
"version": "0.26.8",
|
|
4
4
|
"description": "Goal. Loop. Audit. Done. — 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 — only the read tools needed to verify your goal.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "dracon",
|