Skip to content

v0.4.2

Choose a tag to compare

@guimatheus92 guimatheus92 released this 07 Aug 15:02
· 21 commits to main since this release
2ce10b6

Fixed

  • A pipeline failure is no longer reported as a clean review. When the orchestrator produced no parseable findings (exit code 2), finalizeReview still wrote a normal zero-finding pr-review-summary.md and a done progress event — and status treats the summary's existence as "done, exit 0", so a detached run that failed presented as a clean PR. On findingsUnavailable the run now writes the failure to error.txt instead of minting the summary, emits an error progress event, and status reports failed (exit 22) with the message inline. Codex second-opinion findings collected before the failure are still posted, and the exit code stays 2.
  • Stdout salvage now recovers findings from a narrated orchestrator transcript. The JSON parser extracted exactly one value — the first fenced block or the earliest [/{, which a prose bracket like [security] could win, defeating the whole parse. parseJsonFindings now merges findings from every JSON block in the blob (all fenced blocks — excised so nothing parses twice — then every balanced value, with structural recursion reaching nested payloads) and also understands the orchestrator's own {"reviewers":[{"name":…,"findings":[…]}]} file payload printed to stdout instead of written. Values found loose in prose must pass a strict finding-shape gate, so quoted log objects are not minted into findings.
  • orchestrator-failure.log now keeps the orchestrator's full stdout/stderr (was: last 8 KB tails). When the contract fails, stdout may hold the only copy of the reviewer findings, and a tail made even manual salvage impossible.
  • status no longer reports interrupted (with a dead-end --resume hint) when the findings file on disk is corrupt. The interrupted state now requires a resumable output file — one that parses to the {reviewers:[…]} shape --resume actually loads. A truncated/corrupt file falls through to failed with error.txt surfaced inline; a valid phase1-findings.json fallback still reads interrupted because resume genuinely recovers it. (Found by running this release's own reviewer against its PR.)

Full details: #10

🤖 Generated with Claude Code