pi-goal-list-loop-audit 0.24.8 → 0.24.9
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/README.md +6 -7
- package/extensions/goal-loop-core.ts +8 -2
- package/extensions/loops/goal.ts +5 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -201,7 +201,7 @@ No external watchdog plugin needed.
|
|
|
201
201
|
/glla wedgealert=30 # hung-command alert minutes (default: 30, 0 = off)
|
|
202
202
|
/glla autoresume=on # held goals/loops auto-resume in fresh sessions (unattended rigs)
|
|
203
203
|
/glla auditcap=5 # pause the goal after N consecutive auditor disapprovals (default 3, 0 = unlimited)
|
|
204
|
-
/glla auditfeedbackchars=
|
|
204
|
+
/glla auditfeedbackchars=800 # cap the executor-visible auditor report (default 0 = full report)
|
|
205
205
|
/glla autoaccept=on # drafts ACTIVATE without the Confirm dialog (unattended rigs)
|
|
206
206
|
/glla project tokenlimit=500 # rare per-project override
|
|
207
207
|
```
|
|
@@ -212,12 +212,11 @@ auditor can't auth it — you're told once (info level) with the fix:
|
|
|
212
212
|
`/glla model=provider/id`, set once, rarely touched again. The plugin never
|
|
213
213
|
picks a model itself. Thinking follows the session too (floor `high`).
|
|
214
214
|
|
|
215
|
-
On disapproval, the executor receives
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
`/goal status`.
|
|
215
|
+
On disapproval, the executor receives the full auditor report by default
|
|
216
|
+
(`auditFeedbackChars=0`, since v0.24.9 — a truncated report loses exactly the
|
|
217
|
+
actionable tail of multi-item `<evidence>` blocks). Set a positive
|
|
218
|
+
`auditFeedbackChars` to cap it. The complete report is always stored in audit
|
|
219
|
+
history and is available through `/goal status` regardless.
|
|
221
220
|
|
|
222
221
|
`autoaccept=on` skips BOTH the Confirm dialog and the drafting interview
|
|
223
222
|
floor — every `propose_*` draft (goal, list batch, loop, task list)
|
|
@@ -287,8 +287,14 @@ export function mergeSettings<T extends Record<string, unknown>>(base: T, ...lay
|
|
|
287
287
|
return out as T;
|
|
288
288
|
}
|
|
289
289
|
|
|
290
|
-
/**
|
|
291
|
-
|
|
290
|
+
/**
|
|
291
|
+
* Default for executor-visible auditor feedback. 0 = no cap: the executor
|
|
292
|
+
* gets the FULL disapproval report (v0.24.9 — truncating by default cut
|
|
293
|
+
* exactly the actionable tail of multi-item <evidence> blocks; a few KB of
|
|
294
|
+
* report is negligible next to a wasted re-attempt). Set a positive
|
|
295
|
+
* auditFeedbackChars to cap.
|
|
296
|
+
*/
|
|
297
|
+
export const DEFAULT_AUDIT_FEEDBACK_CHARS = 0;
|
|
292
298
|
|
|
293
299
|
/**
|
|
294
300
|
* Bound the auditor report returned to the executor after disapproval.
|
package/extensions/loops/goal.ts
CHANGED
|
@@ -2282,7 +2282,7 @@ interface Settings {
|
|
|
2282
2282
|
/** v0.24.2: pause the goal after N consecutive auditor disapprovals (0 = unlimited). Default 3. */
|
|
2283
2283
|
auditCap?: number;
|
|
2284
2284
|
/** Maximum auditor-report characters returned to the executor after a
|
|
2285
|
-
* disapproval (0 = full report). Default
|
|
2285
|
+
* disapproval (0 = full report). Default 0 (full report). */
|
|
2286
2286
|
auditFeedbackChars?: number;
|
|
2287
2287
|
/** on → propose_* drafts activate WITHOUT the Confirm dialog and the
|
|
2288
2288
|
* interview floor is skipped — the seed carries the intent (unattended
|
|
@@ -2450,7 +2450,7 @@ async function openSettingsUI(ctx: ExtensionContext): Promise<void> {
|
|
|
2450
2450
|
`Wedge alert minutes — ${show("wedgeAlertMinutes", `(${WEDGE_ALERT_DEFAULT_MINUTES}m default)`)}`,
|
|
2451
2451
|
`Subagent model strategy — ${show("subagentModelStrategy", "(inherit-parent)")}`,
|
|
2452
2452
|
`Subagent Explore model pin — ${loadSettings(ctx.cwd).subagentModelOverrides?.Explore ?? "(follows strategy)"}`,
|
|
2453
|
-
`Audit feedback characters — ${show("auditFeedbackChars",
|
|
2453
|
+
`Audit feedback characters — ${show("auditFeedbackChars", "(full report)")}`,
|
|
2454
2454
|
"Done",
|
|
2455
2455
|
],
|
|
2456
2456
|
);
|
|
@@ -2505,7 +2505,7 @@ async function openSettingsUI(ctx: ExtensionContext): Promise<void> {
|
|
|
2505
2505
|
ctx.ui.notify("Explore model pin saved — applies to NEW pi sessions.", "info");
|
|
2506
2506
|
}
|
|
2507
2507
|
} else if (choice.startsWith("Audit feedback")) {
|
|
2508
|
-
const v = await ctx.ui.input("Auditor feedback returned to the executor (characters)",
|
|
2508
|
+
const v = await ctx.ui.input("Auditor feedback returned to the executor (characters)", "non-negative integer cap; 0 or empty = full report (default)");
|
|
2509
2509
|
if (v !== undefined) {
|
|
2510
2510
|
const raw = v.trim();
|
|
2511
2511
|
const n = Number(raw);
|
|
@@ -2528,7 +2528,7 @@ async function cmdSettings(args: string, ctx: ExtensionContext): Promise<void> {
|
|
|
2528
2528
|
// /glla notify='cmd $1' write to GLOBAL config
|
|
2529
2529
|
// /glla tokenlimit=2000000 write to GLOBAL config
|
|
2530
2530
|
// /glla wedgealert=30 hung-command alert minutes (0=off, unset=30)
|
|
2531
|
-
// /glla auditfeedbackchars=800 executor-visible disapproval report
|
|
2531
|
+
// /glla auditfeedbackchars=800 cap executor-visible disapproval report (0=full, the default)
|
|
2532
2532
|
// /glla project model=... write to PROJECT override (rare)
|
|
2533
2533
|
// /glla model=unset remove key (from global; project model=unset for project)
|
|
2534
2534
|
const trimmed = args.trim();
|
|
@@ -2784,7 +2784,7 @@ export default function (pi: ExtensionAPI): void {
|
|
|
2784
2784
|
["tokenlimit=", "per-goal token budget (0 = off): /glla tokenlimit=2000000"],
|
|
2785
2785
|
["autoresume=", "on: auto-resume held goals/loops in fresh sessions"],
|
|
2786
2786
|
["auditcap=", "N: pause goal after N consecutive auditor disapprovals (default 3, 0 = unlimited)"],
|
|
2787
|
-
["auditfeedbackchars=",
|
|
2787
|
+
["auditfeedbackchars=", "cap on executor-visible disapproval report chars (0 = full report, the default)"],
|
|
2788
2788
|
["autoaccept=", "on: drafts activate without the Confirm dialog (unattended rigs)"],
|
|
2789
2789
|
["project", "write a project override: /glla project key=value"],
|
|
2790
2790
|
]),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-goal-list-loop-audit",
|
|
3
|
-
"version": "0.24.
|
|
3
|
+
"version": "0.24.9",
|
|
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",
|