Repository navigation
1.33.0: spec-review live feedback, report-not-revert, per-run review state, queue and resume fixes
1.33.0
-
The spec review is visible while it runs. It announces its start, keeps a live widget with the elapsed time and the last tool call (a heartbeat keeps a slow run from reading as a hang), links the full transcript when the verdict lands, and posts a clean pass instead of leaving it silent;
notifysends the verdict to your desktop too, for when you're elsewhere. The pre-approval dry-run gets the same live widget, naming the command (n/total) and its elapsed seconds. -
Stray writes are reported, never silently reverted. A review no longer puts back files that changed while it ran — a file touched in that window is as likely to be your own edit as the reviewer's — and lists the paths in its result instead; the next review's delta still starts from the snapshot taken before it. The explorer, trier, spec reviewer, dry-run and cartographer still put back what they changed, but the notification now names the paths and the post-run snapshot, so an edit of yours made meanwhile is recoverable. Untracked files over 20 MB are named in the brief and the result: no snapshot or diff contains them.
-
Reviews keep their own state. Resume state is one file per run under
.pi/pb/review-runs/, so two reviews no longer overwrite each other and finishing one doesn't delete another's; archive GCs a spec's runs, starting a review clears superseded runs from that session (including crashes that left no resume marker), and the legacyreview-run.jsonmigrates once. -
A prose-only pass gives no verdict, not a clean one. When a finished pass reported only in prose and nothing parseable came back, the result says
⚠ NO VERDICTand the phase stays short of reviewed, instead of waving the change through. A recorded diff base that no longer resolves falls back to HEAD with a warning rather than diffing as nothing, and a follow-up no longer says "nothing changed" when only a large untracked file moved. -
A stopped run no longer strands the queue. A fresh run aborted while waiting for a concurrency slot leaves the queue and the next free slot skips it, so the runs behind it start; runs that outlive their session (a switch mid-run) put back and clean up without touching the replaced session.
-
Resume follows the spec as it is now. A spec rewrite that renumbers a task no longer leaves the build claiming a task that no longer exists; it resumes at the next todo instead of reporting nothing left to build.