You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Runner coordination handoff atomically releases the verified owner's claim and records its exit signal; older signals cannot displace a later claim (#2893)
Runner-coordination supersede takeover reports typed recovery evidence (exit_signal or stale_max_age with the displaced run id and stale window); explicit takeover reports none (#2893)
gates.draft.maxReviewRounds (default 4, 0 disables) caps draft_gate rounds and limits the verdict post to the judged ledger (#2462)
Map changeset fragments to docs checks and run literal referencing tests for skill contracts (#2508)
Handoff envelopes carry unitBoundaries, the target- and strategy-derived points where a unit coordinator hands back and a fresh successor resumes (ADR 0181) (#2532)
dev-loops loop implementation-brief prints a spec body's review expectations offline (#2588)
loop implementation-brief lists a helper inventory and importers of each touched source module; when git ls-files fails, importers is null with an importers_unavailable finding (#2588)
Claude Code coordinators make one SubagentHandback per run and pause in plain text; the orchestrator reads the coordinator output file (#2611)
On Claude Code the dev-loop coordinator never calls SubagentHandback while a child is in flight; it pauses in plain text and names each child (#2611)
Add opt-in Codex conductor model and reasoning settings to initial and resumed native coordinator dispatch (#2913)
Capture authenticated supplemental residual assessments as unqualified snapshots; delivery, CI, full-gate acceptance and thread closure remain dependent work (#2918)
The standalone review gate runs the judge between fan-in and the post; upsert-checkpoint-verdict.mjs --gate review takes --judge-spec-source (#2540)
Base-merge verdict carry classifier and evidence CLI (classify-base-merge-carry.mjs); carry takes effect once merge-pr and gate coordination consume it (#2752)
Grilled issues and slices need a ## Simplest design section; spec-lint flags a missing one, and the judge caps doc-lag and coverage findings on correct code at low (#2839)
loop validation-record runs the validation profile at a clean head and writes a head-pinned validation record (#2866)
resolve-angle-carry-forward.mjs --rerun-angle <angle> forces a named angle to re-review at the current head (reason operator_rerun) (#2895)
emit-coordinator-work-order --input <resolver-output.json> --harness <claude or pi> --entry <queue or direct> prints a compact pull-pointer dispatch payload (#2483)
The c coordinator execution identity prefix is recorded in ADR 0164, which amends ADR 0115 (#2483)
The subagent dev-loop contract row emits the coordinator work order for resumed queue and direct entries (#2483)
Changed
Copilot body-only feedback no longer blocks gate entry; the judge adjudicates it, and a numeric-id marker is refused as review_id_mismatch (#2937)
dev-loops states its purpose in one owning rule, PURPOSE-HIGHEST-SAFE-AUTONOMY; the README hero line and the package description carry it, and the #2937 rules cite it as their parent (#2937)
The draft round cap counts only rounds whose ledger was written after the cap landed, so in-flight pull requests get a fresh budget (#2462)
Past the draft round cap, a medium the judge rejects with a reason or defers to an issue is final and raises no blocker (#2462)
The findings-log writer derives a fan-out round's mode, provenance, verifiedItems and verdict from the keyed emit plan and fan-in ledger (#2526)
At pre_approval_gate, a round of only low and nit findings composes clean in every round, and the fixer refuses a low-only act list with low_fix_until_cap (#2724)
Fold prerelease CHANGELOG sections into one section on a stable version bump and use annotated tags in the release runbook (#2804)
A validation block that differs from the base only in paths no longer blocks the gate; mode and fullCommand differences still refuse (#2852)
A stale PR base now fails fast with base_stale_integrate_first; every gate-context run checks the PR base, with or without --base (#2885)
The judge owns every finding disposition, the review verdict and the next action; fan-in leaves findings unjudged (#2903)
The standalone review gate never resolves the gate-evidence angle, and the judge rejects template-only findings (#2903)
@dev-loops/core/loop/gate-fanin no longer exports deriveDisposition or isDefaultDeferrableSeverity; fan-in leaves findings unjudged (#2903)
The fixer fixes lows until the draft-gate round cap; a nit is fixed in draft round 1 and rejected from round 2 on, and at or past the cap lows defer and a low/nit-only round composes clean (#2937)
The autonomy principles are contract rules with one owner each, and the low/nit refusal at the cap carries the typed code low_fix_until_cap (#2937)
At the draft round cap, judge-acted findings with a specified remedy are fixed and one closure round verifies the fix delta; a later act item blocks (#2937)
Validate changelog fragments before PR creation and fragment-touching fix pushes; refresh the PR base and anchor local diff bases to origin (#2335)
Show the comparison base SHA when decision-record validation passes (#2335)
Reject empty or nonliteral PR bases before fetching; use effective head and base flags in preflights (#2335)
A draft gate round with only low or nit act items now converges after one fixer pass and a clean pre-push delta review (#2462)
With --emit-plan, consolidate-fanin derives ledger provenance, writes the keyed fanin-ledger.json, and fails closed on fresh units with no dispatch-prompt records (#2526)
Fixer full-phase orders state numbered push, CI, --construct and verify steps; the verifier builds the THREAD report, refuses hand-written ones and red CI (#2787)
The verifier CI guard judges only PR-rollup check runs like wait-pr-checks; the verifier posts one residual reply on bounded_out deferred threads (#2787)
The delta pre-push review input now carries a written patch path and a read-only evidence rule, so the reviewer needs no shell (#2854)
This repo now validates through current-head CI (validation.mode: ci-only) instead of local full validation (#2873)
Fixed
A read-only adapter reports verified terminal execution evidence from an owned Codex journal, so an execution that finished after its worker stopped reports completed (#2886)
An encoded path separator in a recorded file: cwd URI is rejected instead of decoded into a real separator, so it can no longer bind an expected cwd and clear the cleanup blocker (#2886)
Terminal records are counted across the journal, so a second contradictory terminal under another thread reports conflicting_terminal_records (#2886)
gate judge-pass expands a cluster-keyed spec-authority decision to its member findings, so one defect from two angles no longer refuses (#2903)
A base-only merge after the draft gate cap round no longer blocks the closure fixer order; the closure diff holds only PR-own changes, else closure_delta_no_pr_own_change (#2937)
A PR-side revert or delete toward the base now counts as a PR-own change in captureMainRelativeChangedFilesSince, so angle carry-forward lists it in its delta (#2937)
The inline-interpreter guard now refuses a heredoc or stdin script after interpreter flags (python3 -I - <<EOF), and the retro check uses the same matcher (#2943)
The shared segment separator keeps the & of a redirection (2>&1, &>f) in its segment so a redirection before a heredoc reaches the scan; every segment-splitting gate shares it (#2943)
Unit coordinators hand back only on routes that own a phase, and a phase-only target resumes by phase (#2532)
A handoff envelope keeps a Windows drive or network-share worktree root, and one root has one cwd spelling (#2532)
A resume identity rejects a non-string branch or phase instead of accepting malformed authoritative state (#2532)
Run threat-model on a SECURITY_SENSITIVE_SEAM diff in a draft_gate round, or in a pre_approval_gate round at a head where no draft round ran it, even when config disables it (#2899)
Combine targeted validation checks across fully mapped change sets while preserving full validation for unmapped or unsafe paths (#2508)
Verify native Codex child context and stable run identity; keep MAIN joining children to mitigate idle-parent wake limits, with shared artifact and protected-Git guidance (#2836)
Tracker-backed local handoffs use the sanctioned issue worktree path while preserving explicit phase and branch identities (#2845)
Accept the empty string and keep padding verbatim in matcher acceptedForms and rejectedForms so the spec-authority ledger write no longer fails (#2853)
Pi child agents no longer request the unavailable, redundant execution tool; contract checks guard supported tools and Claude capability parity (#2854)
The Pi pre-push reviewer selects the enabled Codex model instead of a stale model id (#2854)
ensure-worktree reports a typed dirty_after_provision warning whenever git status --porcelain is non-empty after provisioning (#2854)
The Pi render pins every rendered agent to its resolved tier model (the .devloops change adds dev-loop and gate-coordinator), and the preflight refusal names the project-trust ceiling (#2854)
ui-review: lockfile-aware frozen install, boot log with early-exit stop, axe resolved from the reviewed worktree with a stated skip, per-state screenshots in the report (#2855)
ui-review: the deck-fit harness skips per-slide axe for deck suites (timeout budget) and the drive logs one stderr line when axe is skipped (#2855)
Constrain ACT/THREAD outputs, create reports/markers exclusively, publish after writes/closes succeed, and limit recovery to the current execution's refused report and stale marker (#2860)
Spec-context can derive the formal spec and revision identity from the canonical live PR body while verifying its head (#2862)
merge-pr fetches once, then refuses after the ADR step with base_not_integrated when the head lacks origin/<base> (GATE-EXEC-BASE-REFRESH) (#2863)
.pi/agents is untracked and rendered with Pi-valid tools at worktree provision time; a subagent launch on an unrendered agent set is refused with agent_set_not_rendered (#2865)
A fresh dev-loops clone gets .pi/agents rendered at the first Pi session start (#2865)
PR coordinator handoffs bind verified existing isolated worktrees, preserve validated PR-body authority, and refuse missing or conflicting associations before dispatch (#2878)
Fixer construction removes its own marker after a failed publish, so a retry succeeds; a foreign or replaced marker is never removed (#2880)
resolve-pr-conflicts commits with the ambient git identity and falls back to the bot only when user.email is empty (#2832)