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 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=16000 # auditor report returned to the executor (default 800, 0 = full report)
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 up to `auditFeedbackChars` characters
216
- from the auditor report (default 800, preserving the previous behavior).
217
- Increase it for multi-item `<evidence>` blocks and raw verification output,
218
- or set `/glla auditfeedbackchars=0` to return the full report. The complete
219
- report continues to be stored in audit history and is available through
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
- /** Backward-compatible default for executor-visible auditor feedback. */
291
- export const DEFAULT_AUDIT_FEEDBACK_CHARS = 800;
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.
@@ -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 800. */
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", `(${DEFAULT_AUDIT_FEEDBACK_CHARS} default)`)}`,
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)", `non-negative integer; 0 = full report, empty = default ${DEFAULT_AUDIT_FEEDBACK_CHARS}`);
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 chars (0=full)
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=", `executor-visible disapproval report characters (default ${DEFAULT_AUDIT_FEEDBACK_CHARS}, 0 = full report)`],
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.8",
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",