pi-goal-list-loop-audit 0.38.113 → 0.39.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/CHANGELOG.md +134 -0
- package/INSTALL.md +5 -2
- package/README.md +44 -2
- package/docs/INDEX.md +13 -52
- package/docs/RECOVERY.md +85 -0
- package/docs/RUNTIME-INVENTORY.md +11 -11
- package/extensions/continuous-supervision.ts +6 -0
- package/extensions/goal-commands.ts +49 -18
- package/extensions/goal-compactor.ts +2 -0
- package/extensions/goal-heartbeat.ts +5 -0
- package/extensions/goal-loop-auditor-process.ts +15 -4
- package/extensions/goal-loop-display.ts +75 -13
- package/extensions/goal-loop-forever.ts +3 -0
- package/extensions/goal-loop.ts +89 -73
- package/extensions/loops/goal-activation.ts +35 -11
- package/extensions/loops/goal-auditor-hooks.ts +2 -1
- package/extensions/loops/goal-orchestrator.ts +2 -1
- package/extensions/loops/goal-tools.ts +26 -1
- package/extensions/loops/goal.ts +2 -0
- package/extensions/respec-builder-audit.ts +21 -0
- package/extensions/respec-builder-runtime.ts +274 -0
- package/extensions/respec-builder-ui.ts +56 -0
- package/extensions/respec-builder.ts +128 -0
- package/extensions/summary-renderer.ts +90 -0
- package/package.json +1 -1
- package/prompts/goal-loop-respec-builder.md +59 -0
- package/scripts/generate-inventory.mjs +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,140 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.39.8 — consistent recovery and completed project UI (2026-10-05)
|
|
6
|
+
|
|
7
|
+
### Preserve work across model changes
|
|
8
|
+
|
|
9
|
+
- Manually selecting a model during loop recovery leaves a visible, resumable
|
|
10
|
+
hold with its objective and iteration history retained. Cancellation no
|
|
11
|
+
longer leaves an invisible loop with an obsolete retry countdown.
|
|
12
|
+
- Existing loops stranded with a main-model recovery stop reason remain
|
|
13
|
+
visible and can resume through `/loop resume` or `/glla resume`.
|
|
14
|
+
|
|
15
|
+
### Dismiss completed projects
|
|
16
|
+
|
|
17
|
+
- Completed projects disappear from the live widget and footer. Their
|
|
18
|
+
archived summary and `/loop status` remain available for inspection.
|
|
19
|
+
Unfinished queued work still renders its own UI.
|
|
20
|
+
- Loading terminal-only state no longer engages a work-resume hold or warns
|
|
21
|
+
that the completed project must resume. Legacy terminal-only load holds
|
|
22
|
+
clear on restore; explicit supervisor pauses remain intact.
|
|
23
|
+
- Empty or terminal-only blank sessions no longer advertise a work-resume
|
|
24
|
+
action while waiting for a transcript to load.
|
|
25
|
+
|
|
26
|
+
### Make recovery commands consistent
|
|
27
|
+
|
|
28
|
+
- `/glla resume` recognises the same held-loop reasons as `/loop resume`,
|
|
29
|
+
including stalled project audits, manual pauses, auditor infrastructure
|
|
30
|
+
failures and project bounds. It delegates to the loop handler, preserving
|
|
31
|
+
the saved claim, blocker checks and branch restrictions.
|
|
32
|
+
- `/list resume` admits auditing list heads to the existing claim-recovery
|
|
33
|
+
path. `/goal pause`, `cancel` and `verify` preserve terminal goals.
|
|
34
|
+
- Manual verify and review refuse stale hosts. Decision pickers revalidate
|
|
35
|
+
both the session and the exact pending decision after selection, execute
|
|
36
|
+
list/loop control options through their real handlers, and leave work
|
|
37
|
+
paused when a content choice cannot be delivered.
|
|
38
|
+
- Goal pause, resume and manual verify stop when their state transaction
|
|
39
|
+
cannot be persisted, avoiding false success messages and dispatches.
|
|
40
|
+
- Explicitly stopped project audits say **Audit stopped** and stop advertising
|
|
41
|
+
an unavailable resume command.
|
|
42
|
+
- `/goal decide` is discoverable in completion; status points to `/list show`
|
|
43
|
+
for inspection. Resume descriptions and bound-stop hints match admission.
|
|
44
|
+
- A real command-to-worker regression resumes a stalled project audit and
|
|
45
|
+
verifies its retained claim through independent approval and archival.
|
|
46
|
+
|
|
47
|
+
### Explain recovery and updates
|
|
48
|
+
|
|
49
|
+
- A new recovery guide explains resume command choice, audit progress versus
|
|
50
|
+
tool waits, manual model changes, completed UI and the opportunistic 200k
|
|
51
|
+
compaction target.
|
|
52
|
+
- README and installation instructions link to that guide. The docs index
|
|
53
|
+
leads with practical reading paths; unpublished milestones are consolidated
|
|
54
|
+
into this release entry.
|
|
55
|
+
|
|
56
|
+
## 0.39.4 — project builder, audit recovery and opportunistic compaction (2026-10-05)
|
|
57
|
+
|
|
58
|
+
### check compaction before idle loop dispatch
|
|
59
|
+
|
|
60
|
+
- Metric loops and project builder turns check the configured context-token
|
|
61
|
+
threshold at their actual idle dispatch boundary, matching goal/list sends.
|
|
62
|
+
Hosts without a settled-turn event can still attempt opportunistic compaction.
|
|
63
|
+
- A failed optional compaction resumes the same active loop through a fresh
|
|
64
|
+
owner context. Busy hosts, queued messages, paused work and audit dispatches
|
|
65
|
+
retain their guards; an attempted episode is not retried every turn.
|
|
66
|
+
|
|
67
|
+
### preserve project audit boundaries and recovery evidence
|
|
68
|
+
|
|
69
|
+
- Startup and manual audit-job cleanup preserve jobs belonging to unresolved
|
|
70
|
+
goal or project increment claims, including held work. Once those claims
|
|
71
|
+
settle, ordinary age and worker-identity retention applies again.
|
|
72
|
+
- Health reports exclude claim-protected jobs from cleanup candidates. Cleanup
|
|
73
|
+
also refuses to delete jobs when the durable claim journal cannot be read.
|
|
74
|
+
- Settled-turn and idle-boundary transcript compaction wait while an exact
|
|
75
|
+
project increment audit dispatch owns the boundary.
|
|
76
|
+
- The project-audit heartbeat regression now exercises six actual heartbeat
|
|
77
|
+
ticks during a dispatched worker run, beyond the stall escalation threshold.
|
|
78
|
+
|
|
79
|
+
### protect project increment audits from continuation stalls
|
|
80
|
+
|
|
81
|
+
- The main-session heartbeat no longer counts failed continuation attempts
|
|
82
|
+
while the exact project increment audit dispatch is running. Detached worker
|
|
83
|
+
timeout handling remains responsible for the audit. A saved claim alone, a
|
|
84
|
+
replacement claim, or a cancelled dispatch cannot suppress the heartbeat.
|
|
85
|
+
- Held project audits say **Audit held** and show the recorded stop reason
|
|
86
|
+
instead of displaying an ambiguous auditing phase with generic held text.
|
|
87
|
+
|
|
88
|
+
### explain long audit tool waits
|
|
89
|
+
|
|
90
|
+
- Audit cards keep the current tool's ticking elapsed time and timeout visible
|
|
91
|
+
when it stops producing events. The card says it is waiting on the tool,
|
|
92
|
+
rather than turning the current call into a historical "last tool" row.
|
|
93
|
+
- Compact footers lead with the tool wait and its elapsed/timeout clock.
|
|
94
|
+
Waiting is distinct from fresh activity; cancelled, overdue and invalid
|
|
95
|
+
telemetry cannot claim a healthy wait. Timeout handling stays automatic.
|
|
96
|
+
- Automatic and manual audit progress use the worker's effective granted tool
|
|
97
|
+
timeout, matching the watchdog rather than showing only the base budget.
|
|
98
|
+
|
|
99
|
+
### respec project builder
|
|
100
|
+
|
|
101
|
+
- `/loop respec [project direction]` drafts intended requirements for confirmation,
|
|
102
|
+
builds coherent increments, runs isolated audits and replans unfinished work.
|
|
103
|
+
Task claims and spec checkboxes cannot verify requirements. Later audits cover
|
|
104
|
+
previous capabilities as regressions; completion requires all adopted criteria.
|
|
105
|
+
- Scope refinements require confirmation, retain removal/task history and fence
|
|
106
|
+
old verdicts by revision. Blockers stay visible; all-blocked projects park,
|
|
107
|
+
and clearing a blocker preserves pause until explicit resume.
|
|
108
|
+
- Durable audit identities recover saved verdicts across restart, concurrent
|
|
109
|
+
wakes share one worker, pause/stop cancels audits, and archive failures retain
|
|
110
|
+
approved evidence for settlement retry. Completion archives the project before
|
|
111
|
+
exposing terminal state and announces waiting queue items.
|
|
112
|
+
- Project audit cards show live worker/retry state, model, elapsed time and last
|
|
113
|
+
activity. `/loop status` lists every requirement and its acceptance/evidence.
|
|
114
|
+
Verified project summaries use semantic colors and bold, archive before
|
|
115
|
+
delivery, and replay unacknowledged receipts on reload.
|
|
116
|
+
- Full audit fixes persistence rollback, supervisor freeze/retry gating,
|
|
117
|
+
rapid pause/resume rearming, blocked-project resume and continuous audit
|
|
118
|
+
visibility. Project receipts use the shared durable outbox across project
|
|
119
|
+
replacement; large summaries disclose omissions and retain full archives.
|
|
120
|
+
Generic loop recaps preserve verified project summaries.
|
|
121
|
+
- Project cards/status expose phase, increment, verified/remaining coverage,
|
|
122
|
+
blockers, evidence and next action using the existing semantic palette.
|
|
123
|
+
- Regression-shield rejection reports unfinished work and carries missing
|
|
124
|
+
contract evidence into replanning. Stale audit wakes are rejected before
|
|
125
|
+
model resolution or dispatch.
|
|
126
|
+
|
|
127
|
+
### semantic summary colors
|
|
128
|
+
|
|
129
|
+
- Summary emphasis uses bold, including Markdown italic emphasis and quotes;
|
|
130
|
+
summaries do not render italics.
|
|
131
|
+
- Terminal completion summaries use the active theme’s semantic colors for
|
|
132
|
+
outcomes, remaining work, next actions and verification results. Unknown
|
|
133
|
+
verification stays neutral; reported or skipped checks use amber, and
|
|
134
|
+
failures use red without recoloring unrelated approval references.
|
|
135
|
+
- Styling is applied by a registered renderer. Saved summary Markdown,
|
|
136
|
+
archive content, receipt identity and headless output retain plain content;
|
|
137
|
+
continuation messages continue through Pi’s default renderer.
|
|
138
|
+
|
|
5
139
|
## 0.38.113 — make background audits clear (2026-10-03)
|
|
6
140
|
|
|
7
141
|
- The live audit widget uses a compact card, keeping audit state, completed
|
package/INSTALL.md
CHANGED
|
@@ -201,7 +201,10 @@ Useful controls:
|
|
|
201
201
|
```
|
|
202
202
|
|
|
203
203
|
`/glla pause` freezes supervisor automation without killing active work.
|
|
204
|
-
`/glla resume` releases it
|
|
204
|
+
`/glla resume` releases it and resumes eligible saved work, including held
|
|
205
|
+
projects through the same recovery path as `/loop resume`.
|
|
206
|
+
See the [recovery guide](docs/RECOVERY.md) for command choice, audit progress,
|
|
207
|
+
model changes, completed projects and compaction. A BUSY/no-stream Pi turn is aborted and parked by
|
|
205
208
|
GLLA, then automatically re-dispatched within the **Zero-stream retries**
|
|
206
209
|
budget (default 3, configurable from 0–10); exhaustion requires an explicit
|
|
207
210
|
mode-correct resume. A user abort means stop; recovery is not silently
|
|
@@ -276,7 +279,7 @@ PI_CODING_AGENT_DIR=/tmp/bare-agent pi -p "say ok" --model "provider/model-id"
|
|
|
276
279
|
### Work restored but not running
|
|
277
280
|
|
|
278
281
|
That is a consent/supervision state, not proof of loss. Inspect `/glla status`
|
|
279
|
-
and use `/goal resume`, `/list resume`, `/list next`, or `/loop resume` as
|
|
282
|
+
and use `/glla resume`, or `/goal resume`, `/list resume`, `/list next`, or `/loop resume` as
|
|
280
283
|
appropriate. Keep `Auto-resume` enabled only when automatic restart after
|
|
281
284
|
session load is intentional.
|
|
282
285
|
|
package/README.md
CHANGED
|
@@ -214,6 +214,8 @@ drafting flow. Ambiguous context is never queued automatically.
|
|
|
214
214
|
/loop start "reduce flaky tests" measure="..." direction=min
|
|
215
215
|
/loop start "keep improving the spec" measure=none max=20 cadence=900
|
|
216
216
|
/loop audit # recurring project-audit cadence
|
|
217
|
+
/loop respec [project direction] # draft intended scope, build, audit and replan
|
|
218
|
+
/loop refine <suggestion> # steer the next round; scope changes need confirmation
|
|
217
219
|
/loop status
|
|
218
220
|
/loop stop
|
|
219
221
|
```
|
|
@@ -238,7 +240,42 @@ There are three loop styles:
|
|
|
238
240
|
- **Project audit:** each iteration looks for the next important finding,
|
|
239
241
|
appends evidence to the audit ledger, and works through the findings.
|
|
240
242
|
|
|
241
|
-
|
|
243
|
+
Use `/goal` for one defined outcome, `/list` for a known task queue, and
|
|
244
|
+
`/loop respec` for developing a project through evolving build and audit batches.
|
|
245
|
+
|
|
246
|
+
`/loop respec` develops a project through substantial increments. It researches
|
|
247
|
+
the code and root `SPEC.md` (or `spec.md`), drafts intended capabilities with
|
|
248
|
+
observable acceptance criteria, and asks you to confirm that scope. Existing
|
|
249
|
+
behavior and desired behavior are kept distinct; missing features become work
|
|
250
|
+
to build. `## Rules` remains binding project guidance.
|
|
251
|
+
|
|
252
|
+
After confirmation, the builder plans a coherent batch, implements it, and
|
|
253
|
+
submits it to the isolated auditor. A task marked implemented is a claim;
|
|
254
|
+
only independent approval verifies its requirements. Failed checks and unfinished
|
|
255
|
+
requirements feed replanning. Each later audit also checks previously verified
|
|
256
|
+
capabilities for regressions. The project finishes only when every adopted
|
|
257
|
+
requirement is independently verified and the project archive is written.
|
|
258
|
+
|
|
259
|
+
The widget and `/loop status` show phase, increment, verified/remaining coverage
|
|
260
|
+
and blockers. During auditing, the card shows the actual worker state, model,
|
|
261
|
+
elapsed time and last activity, including retries; a restored claim without
|
|
262
|
+
live telemetry is shown as waiting for dispatch. `/loop status` lists every
|
|
263
|
+
requirement, its acceptance criteria, blocker and verification evidence.
|
|
264
|
+
Verified completion posts a semantic summary of shipped capabilities,
|
|
265
|
+
acceptance checks and evidence, saved in the journal and project archive;
|
|
266
|
+
unacknowledged delivery uses the durable outbox and retries on reload, even
|
|
267
|
+
after a new project replaces the old loop, without rerunning the audit. Large
|
|
268
|
+
summary cards name omitted requirements/reports; the archive and `/loop status`
|
|
269
|
+
retain the full criteria and evidence.
|
|
270
|
+
After completion, the project widget and GLLA footer disappear. The archive
|
|
271
|
+
and `/loop status` retain the result; other unfinished work remains visible.
|
|
272
|
+
`/loop pause` holds work, `/loop resume` continues saved state, and
|
|
273
|
+
`/loop stop` stops it without calling unfinished work complete. If all remaining
|
|
274
|
+
work is blocked, automation parks with reasons; clearing a blocker leaves work
|
|
275
|
+
paused until resume. `/loop refine <suggestion>` supplies direction for the next
|
|
276
|
+
round. Changes to adopted requirements show current/proposed acceptance criteria
|
|
277
|
+
and need your confirmation. Text after `respec` is project direction, not metric
|
|
278
|
+
or budget option syntax. Generic `/loop start` remains the metric/bounded path.
|
|
242
279
|
|
|
243
280
|
## The autonomy model
|
|
244
281
|
|
|
@@ -420,7 +457,8 @@ proof of a quota or billing state.
|
|
|
420
457
|
and re-dispatched within the configurable **Zero-stream retries** budget
|
|
421
458
|
(default 3, range 0 to 10), then requires explicit resume;
|
|
422
459
|
- `/goal resume`, `/list resume`, and `/loop resume` are explicit recovery
|
|
423
|
-
paths;
|
|
460
|
+
paths; `/glla resume` is the broad recovery command and routes eligible held
|
|
461
|
+
projects through the same handler as `/loop resume`;
|
|
424
462
|
- a user abort means stop, not “try again behind my back”;
|
|
425
463
|
- a loaded objective can be displayed without injecting stale auditor context
|
|
426
464
|
until continuation consent exists;
|
|
@@ -433,6 +471,10 @@ Use `/glla pause` to freeze supervisor automation without killing active work,
|
|
|
433
471
|
`/glla resume` to release it, `/glla bug [message]` to capture failure context to `bugs/` without touching durable goal state, and `/glla status` or `/goal status` to inspect
|
|
434
472
|
what happened.
|
|
435
473
|
|
|
474
|
+
See the [recovery guide](docs/RECOVERY.md) for the resume command table,
|
|
475
|
+
audit progress indicators, model changes, completed projects and compaction
|
|
476
|
+
above the default 200k target.
|
|
477
|
+
|
|
436
478
|
### Settings worth knowing
|
|
437
479
|
|
|
438
480
|
Open `/glla` for the settings table. The most important choices are:
|
package/docs/INDEX.md
CHANGED
|
@@ -2,58 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
Ordered by reading path, not alphabetically.
|
|
4
4
|
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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.113 continue through the supervisor freeze (`/glla pause`),
|
|
20
|
-
load hold, auditor picker parity, Windows launch fix, zombie-watchdog
|
|
21
|
-
subagent carve-out, due-wait backstop, the `/glla agents` visibility panel,
|
|
22
|
-
durable state-root selection, blank-until-resume auditor context, frozen
|
|
23
|
-
subagent recovery, bounded repair/replan recovery, production RPC child
|
|
24
|
-
stopping, mandatory hermetic auditor-extension validation, optional provider
|
|
25
|
-
extensions, bounded zero-stream retry containment, crash-safe persistence,
|
|
26
|
-
packed-artifact release verification, and the 2026-09-07 display/lifecycle/
|
|
27
|
-
settings audit pass (abort-latch send guards, ownership compare-and-swap,
|
|
28
|
-
auditor inherit/clear parity), the v0.38.25 post-objective summary
|
|
29
|
-
(canonical approval render, persist + replay, audit-goal counts line), the v0.38.27 selective port of PRs #45/#46 (`/loop pause` soft-hold, widget subtask count), the v0.38.28 provenance-row closure fix, the v0.38.29 compact active-card recovery/judgment projection, and the v0.38.53 consent-safe `glla-delegate`
|
|
30
|
-
skill/list-drafting release, and the v0.38.54 opt-in context-checkpoint
|
|
31
|
-
projection (prompt-cache continuity, issue #53), and the v0.38.55 full-parity
|
|
32
|
-
terminal card, unified auditor-retry envelope, and agent-side resume_goal;
|
|
33
|
-
and the v0.38.106 audit repairs, versionless companion guidance and refreshed
|
|
34
|
-
store icon; v0.38.107 recovers completed detached audit results before retry,
|
|
35
|
-
preserves second-pass visibility, and fits the store thumbnail to its 8:5 card.
|
|
36
|
-
v0.38.109 keeps work moving after optional compaction failures and fixes
|
|
37
|
-
settings-editor ownership, narrow rendering, and stale approved-summary text.
|
|
38
|
-
v0.38.112 audits the full terminal UI: responsive settings, search, focus
|
|
39
|
-
continuity, picker height, scrollable draft review, and settlement wording.
|
|
40
|
-
v0.38.111 applies project optional tool arguments with schema validation.
|
|
41
|
-
v0.38.110 audits /glla menus and commands: model policy, narrow picker
|
|
42
|
-
rendering, concurrent edits, mutation guards, and accurate option wording.
|
|
43
|
-
See CHANGELOG.md for the full trail.
|
|
44
|
-
- `../README.md`: what the plugin is, install, quickstart, and the
|
|
45
|
-
architectural guarantee (drafting + confirm + detached auditor).
|
|
46
|
-
- `../INSTALL.md`: source install / local development setup and the
|
|
47
|
-
recommended companion plugins.
|
|
48
|
-
|
|
49
|
-
## Entry points
|
|
50
|
-
- `../README.md`: what the plugin is, install, quickstart
|
|
51
|
-
- `SETTINGS.md`: canonical settings reference (files, precedence, every key)
|
|
52
|
-
- `../INSTALL.md`: source install / local development setup
|
|
53
|
-
- `../skills/glla-delegate/SKILL.md`: normal-chat goal/list delegation and consent ladder
|
|
54
|
-
- `../CHANGELOG.md`: user-facing changelog; the first versioned heading is
|
|
55
|
-
the current released package version (use `/glla version` to compare with
|
|
56
|
-
the registry); post-release work may appear in `Unreleased` above it.
|
|
5
|
+
## Start here
|
|
6
|
+
|
|
7
|
+
- [README](../README.md): install, first goal, and choosing goal/list/loop work.
|
|
8
|
+
- [Recovery guide](RECOVERY.md): resume commands, audit progress, model changes,
|
|
9
|
+
completed projects and opportunistic compaction.
|
|
10
|
+
- [Settings](SETTINGS.md): settings files, precedence and every option.
|
|
11
|
+
- [Installation and updating](../INSTALL.md): npm/source setup, companions and
|
|
12
|
+
reloading existing sessions.
|
|
13
|
+
- [Delegation skill](../skills/glla-delegate/SKILL.md): normal-chat goal/list
|
|
14
|
+
delegation and confirmation.
|
|
15
|
+
- [Changelog](../CHANGELOG.md): changes shipped in each release. The history
|
|
16
|
+
spans v0.35.14–v0.39.8; `/glla version` shows the installed version and the
|
|
17
|
+
registry comparison command. A checkout can contain unpublished changes.
|
|
57
18
|
|
|
58
19
|
## Architecture
|
|
59
20
|
- `ARCHITECTURE.md`: 20-minute newcomer overview (three loops, audit lifecycle, persistence)
|
package/docs/RECOVERY.md
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Recovering and inspecting work
|
|
2
|
+
|
|
3
|
+
Start with `/glla status`. For full saved details, use `/goal status`,
|
|
4
|
+
`/list show`, or `/loop status`, depending on the work surface.
|
|
5
|
+
|
|
6
|
+
## Which resume command?
|
|
7
|
+
|
|
8
|
+
| Command | Use it for |
|
|
9
|
+
| --- | --- |
|
|
10
|
+
| `/glla resume` | Broad recovery: release supervisor/load holds, retry saved model recovery, or resume the current goal, list item or eligible held loop. If a paused goal and held loop both qualify, the UI asks which one. |
|
|
11
|
+
| `/goal resume` | Resume the current goal through its goal recovery path. |
|
|
12
|
+
| `/list resume` | Resume the current list item, including recovery of its pending completion audit. |
|
|
13
|
+
| `/loop resume` | Resume an eligible held metric loop or project builder, retaining its target, iteration and audit claim. |
|
|
14
|
+
|
|
15
|
+
For a held project, `/glla resume` delegates to the same loop recovery as
|
|
16
|
+
`/loop resume`. Both retain blocker and branch checks. Neither overrides an
|
|
17
|
+
explicit `/loop stop` or declares unfinished work complete. Resume feedback
|
|
18
|
+
explains when work cannot restart.
|
|
19
|
+
|
|
20
|
+
After loading a session, **Loaded without starting** means the saved work is
|
|
21
|
+
restored but automation awaits your decision. Load the intended conversation,
|
|
22
|
+
inspect its state, then resume. Enable **Auto-resume** in `/glla` only if you
|
|
23
|
+
want automation to restart after future loads.
|
|
24
|
+
|
|
25
|
+
## Is an audit progressing?
|
|
26
|
+
|
|
27
|
+
Read the auditor rows, rather than the main session's spinner alone:
|
|
28
|
+
|
|
29
|
+
| Display | Meaning and next step |
|
|
30
|
+
| --- | --- |
|
|
31
|
+
| **Auditing**, recent activity | The detached auditor is producing events. Tool completions and changing evidence provide stronger progress evidence than elapsed time alone. A long duration alone does not establish a stall. |
|
|
32
|
+
| Waiting on a tool, elapsed/timeout | A tool is still running. Its ticking timer is a wait indicator; timeout handling remains automatic. |
|
|
33
|
+
| Waiting for dispatch | A saved claim exists, but no live worker activity is observed yet. Inspect status for restoration or recovery holds. |
|
|
34
|
+
| **Audit held** | Automation parked with a recorded reason. Inspect `/loop status`, resolve the cause, then resume through the command shown. |
|
|
35
|
+
| **Audit stopped** | The project was explicitly stopped. Resume is not offered for that stop. |
|
|
36
|
+
| Completion review disapproved | The auditor found an unmet contract. Read its required fixes; repair work can continue automatically. Rejection does not mean approval is stuck. |
|
|
37
|
+
|
|
38
|
+
If progress stops and the UI reports a wedged main session, follow its recovery
|
|
39
|
+
message: interrupt the stuck turn with Escape if needed, then resume. Use
|
|
40
|
+
`/glla bug <what you observed>` to capture GLLA diagnostics without changing
|
|
41
|
+
the saved objective. A process that has exited cannot reconcile an audit;
|
|
42
|
+
load/resume the original session before inspecting its pending claim again.
|
|
43
|
+
|
|
44
|
+
## Changing models during recovery
|
|
45
|
+
|
|
46
|
+
Manually selecting a model cancels the current automatic main-model recovery
|
|
47
|
+
episode. A recovery-held loop keeps its objective and iteration history,
|
|
48
|
+
stays visible, and offers `/loop resume` or `/glla resume` to continue using
|
|
49
|
+
the selected model. Changing the model alone does not resume loop supervision.
|
|
50
|
+
|
|
51
|
+
If an older loaded extension still hides the objective or shows an obsolete
|
|
52
|
+
retry countdown, update GLLA and run `/reload`, inspect `/loop status`, then
|
|
53
|
+
resume. Saved legacy recovery holds are supported from 0.39.8 onward.
|
|
54
|
+
|
|
55
|
+
## When a project completes
|
|
56
|
+
|
|
57
|
+
Project completion requires independent verification of every adopted
|
|
58
|
+
requirement and a written archive. After completion, the project widget and
|
|
59
|
+
GLLA footer disappear; other unfinished work can still show its own UI.
|
|
60
|
+
The semantic completion summary, `/loop status` and archive retain the
|
|
61
|
+
verification evidence. There is no resume action for an already completed
|
|
62
|
+
project. Start a new project when its intended scope changes.
|
|
63
|
+
|
|
64
|
+
## Why context can exceed 200k
|
|
65
|
+
|
|
66
|
+
**200,000 tokens is the default opportunistic compaction target.** Configure
|
|
67
|
+
`compactionTokenThreshold` through the global settings; see [SETTINGS.md](SETTINGS.md).
|
|
68
|
+
GLLA checks at safe idle boundaries during supervised work. Active tools,
|
|
69
|
+
audits, queued messages and pauses can defer an attempt. An idle conversation
|
|
70
|
+
without active GLLA work does not start automation simply by crossing the target.
|
|
71
|
+
|
|
72
|
+
Pi's summarizer can fail, for example when its output hits the model's token
|
|
73
|
+
cap. GLLA records that failure and continues eligible work. It does not retry
|
|
74
|
+
the same failed compaction episode every turn. The episode rearms when a later
|
|
75
|
+
safe check observes context below half the configured target. Pi's `/compact`
|
|
76
|
+
is available for a manual attempt; summarizer success is not guaranteed by
|
|
77
|
+
GLLA's scheduling. Compare current context with the recorded attempt time
|
|
78
|
+
before treating an older high-token sample as the current transcript size.
|
|
79
|
+
|
|
80
|
+
## Updating a running session
|
|
81
|
+
|
|
82
|
+
The npm package is also the Pi plugin; there is no separate Pi-only release.
|
|
83
|
+
Follow the [update instructions](../INSTALL.md), run `/reload` in existing
|
|
84
|
+
sessions, and use `/glla version` to check the version actually loaded.
|
|
85
|
+
Publishing a package does not replace code already loaded in a live session.
|
|
@@ -2,25 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
Generated by `node scripts/generate-inventory.mjs`. Run with `--check` to detect drift. Counts describe files and literal registrations, not executed coverage.
|
|
4
4
|
|
|
5
|
-
- Extension/script files:
|
|
6
|
-
- Extension/script lines:
|
|
7
|
-
- Top-level test files:
|
|
5
|
+
- Extension/script files: 96
|
|
6
|
+
- Extension/script lines: 65038
|
|
7
|
+
- Top-level test files: 348
|
|
8
8
|
- Ambient bridge names: 179 (audit baseline: 183)
|
|
9
9
|
- Commands: `/glla`, `/goal`, `/list`, `/loop`, `/review`
|
|
10
|
-
- Tools: `complete_goal`, `complete_task`, `list_activate`, `list_add`, `list_status`, `pause_goal`, `propose_goal_draft`, `propose_loop_draft`, `propose_loop_refine`, `propose_task_list`, `record_goal_judgment`, `resume_goal`, `update_task_batch`, `update_task_status`
|
|
10
|
+
- Tools: `audit_project_increment`, `block_project_requirement`, `claim_project_task`, `complete_goal`, `complete_task`, `list_activate`, `list_add`, `list_status`, `pause_goal`, `plan_project_increment`, `propose_goal_draft`, `propose_loop_draft`, `propose_loop_refine`, `propose_project_refinement`, `propose_project_requirements`, `propose_task_list`, `record_goal_judgment`, `resume_goal`, `unblock_project_requirement`, `update_task_batch`, `update_task_status`
|
|
11
11
|
|
|
12
12
|
## Largest modules
|
|
13
13
|
|
|
14
14
|
| Module | Lines |
|
|
15
15
|
|---|---:|
|
|
16
16
|
| [extensions/goal-loop-core.ts](../extensions/goal-loop-core.ts) | 4966 |
|
|
17
|
-
| [extensions/loops/goal-tools.ts](../extensions/loops/goal-tools.ts) |
|
|
18
|
-
| [extensions/loops/goal-activation.ts](../extensions/loops/goal-activation.ts) |
|
|
19
|
-
| [extensions/goal-commands.ts](../extensions/goal-commands.ts) |
|
|
20
|
-
| [extensions/goal-loop-display.ts](../extensions/goal-loop-display.ts) |
|
|
21
|
-
| [extensions/goal-loop-auditor-process.ts](../extensions/goal-loop-auditor-process.ts) |
|
|
22
|
-
| [extensions/loops/goal-auditor-hooks.ts](../extensions/loops/goal-auditor-hooks.ts) |
|
|
23
|
-
| [extensions/goal-heartbeat.ts](../extensions/goal-heartbeat.ts) |
|
|
17
|
+
| [extensions/loops/goal-tools.ts](../extensions/loops/goal-tools.ts) | 4172 |
|
|
18
|
+
| [extensions/loops/goal-activation.ts](../extensions/loops/goal-activation.ts) | 3762 |
|
|
19
|
+
| [extensions/goal-commands.ts](../extensions/goal-commands.ts) | 3557 |
|
|
20
|
+
| [extensions/goal-loop-display.ts](../extensions/goal-loop-display.ts) | 2747 |
|
|
21
|
+
| [extensions/goal-loop-auditor-process.ts](../extensions/goal-loop-auditor-process.ts) | 2675 |
|
|
22
|
+
| [extensions/loops/goal-auditor-hooks.ts](../extensions/loops/goal-auditor-hooks.ts) | 2656 |
|
|
23
|
+
| [extensions/goal-heartbeat.ts](../extensions/goal-heartbeat.ts) | 2098 |
|
|
24
24
|
| [extensions/loops/goal-session.ts](../extensions/loops/goal-session.ts) | 2062 |
|
|
25
25
|
| [extensions/loops/goal-settings-ui.ts](../extensions/loops/goal-settings-ui.ts) | 2023 |
|
|
26
26
|
|
|
@@ -55,6 +55,11 @@ function durableStateSignature(state: State, liveSubagentCount: number): string
|
|
|
55
55
|
iteration: state.loop.iteration,
|
|
56
56
|
stopReason: state.loop.stopReason,
|
|
57
57
|
bestValue: state.loop.bestValue,
|
|
58
|
+
builder: state.loop.builder ? {
|
|
59
|
+
phase: state.loop.builder.phase, revision: state.loop.builder.revision,
|
|
60
|
+
cycle: state.loop.builder.cycle, attemptId: state.loop.builder.audit?.attemptId,
|
|
61
|
+
requirements: state.loop.builder.requirements?.map(r => ({ id: r.id, status: r.status })),
|
|
62
|
+
} : undefined,
|
|
58
63
|
}
|
|
59
64
|
: null;
|
|
60
65
|
const recovery = state.mainModelRecovery
|
|
@@ -85,6 +90,7 @@ export function activeSupervisionPlanes(state: State, liveSubagentCount = 0): Su
|
|
|
85
90
|
if (goal.status === "auditing" || !!goal.pendingCompletion) planes.push("auditor");
|
|
86
91
|
}
|
|
87
92
|
if (state.loop?.active) planes.push("loop");
|
|
93
|
+
if (state.loop?.builder?.phase === "auditing" && state.loop.builder.audit && !planes.includes("auditor")) planes.push("auditor");
|
|
88
94
|
if ((state.list?.length ?? 0) > 0) planes.push("queue");
|
|
89
95
|
if (state.mainModelRecovery) planes.push("provider-recovery");
|
|
90
96
|
if (liveSubagentCount > 0) planes.push("subagent");
|