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
Part of roadmap #900. Follow-up from the v1.4.0 release dogfood in PR #959.
Problem
Current provenance and reviewer exclusion are centered on the PR opener, branch prefix, and one active builder label. During an explicit takeover this can become internally inconsistent: PR #959 remained authored on a Devin branch, the final repair commit came from Codex, the active label changed to builder:codex, and the Devin reviewer still excluded itself solely because Devin originally opened the PR.
The system needs a handoff-aware contributor model so builder recording, labels, review eligibility, Board status, and the gate describe the same exact-head history.
Outcome
Code Mower preserves ordered builder contribution episodes, exposes one current writer, and excludes every verified contributor to the current diff from satisfying its own independent review requirement.
Acceptance criteria
Persist a metadata-only handoff record binding repository, PR, branch, source lane, destination lane, expected head, and resulting head.
Preserve ordered source and takeover contribution episodes while exposing exactly one current writer.
Keep exactly one active builder label; a valid takeover preserves earlier builder history in provenance rather than erasing or contradicting it.
Builder auto-record, runner-recorded provenance, the gate, Board projection, and reviewer selection resolve the same exact-head builder lineage.
Reviewer exclusion uses verified contributors to the current diff. The PR opener alone is neither necessary nor sufficient; every contributing builder lane is excluded from gating its own work.
Direct reviewer wrappers, including Devin CLI, use the shared exclusion resolver instead of product-specific PR-author-only checks.
Conflicting author, branch, label, or provenance evidence without a valid handoff fails closed with a concise owner action.
A PR Prepare the v1.4.0 release and stop stale completions projecting complete #959-shaped regression with a Devin author and branch, explicit Codex takeover, and Codex final head records both contributors, identifies Codex as current writer, excludes Devin and Codex from self-gating, and accepts an independent Claude exact-head audit.
Public and cloud evidence remains metadata-only and contains no source, diffs, prompts, transcripts, paths, credentials, or provider output.
Boundaries
Reuse the reviewer-exclusion and provenance contracts from #293 and #296 plus explicit handoff evidence from #751. Do not grant review or merge authority through a handoff and do not infer contribution from provider prose.
Delivery
Three staged independently reviewable PRs (#990 → #991 → #992), each with one Code Mower builder, one independent exact-head merge-authority audit, focused adversarial regressions, privacy checks, and the normal Code Mower gate. This evidence-backed decomposition supersedes the original one-PR delivery requirement and the earlier work-order wording below.
Completion dependencies and PR map
Requires #962's verified handoff boundary and #975's role eligibility result; keep contributor independence a separate shared decision. The accepted #990 core and #991 producer used Code Mower Codex source with independent eligible Code Mower Claude review. The #992 source assignment is recorded before launch; all reviews exclude actual contributors. #949 and #977 consume this resolver; #951/#920 verify its behavior. Every verified contributor to the current diff remains excluded from satisfying its own required independent review. If no qualified eligible lane remains, fail closed with one owner action. Do not fix labels manually as the product completion criterion.
Convergence checkpoint and revised PR map
Draft #989 is unaccepted and preserved at 0706c53922f67168dfbb6d2a6493a031a9b0f205. A demonstrably complete audit of the preceding candidate found five P2s; its earlier nominal PASS was rejected because the reviewer admitted incomplete context. After the consolidated repair, a deterministic actual-consumer matrix found gate/status/controller/Board rejecting a configured branch conflict while both Greptile structural requeue failure paths still mutated labels when episodes were empty. The serial repair loop is stopped; no further repair round, full suite or audit is claimed for this head.
Lineage stage 1: extract and qualify the pure exact-head contract #990 — accepted through Add minimal typed builder-lineage core #994, reviewed head 6b1642d561ee46987870f492f95d4222179d2374, merged as e818a3b639dfe903bdc16aff3674af98a5a08233. Pure exact-head contract/parsing/identity/trust core, with no store/environment/network dependencies or live policy activation; independent Claude PASS, complete 80,246-byte / 10-file coverage, 3,688 full tests with 16 skips, owning matrix/guards/CI/authoritative gate passed, processes quiescent and held lease released/observed absent before merge.
Reconstruct owning diffs from preserved #989 source and regressions rather than blindly replaying repair commits. Keep generated/package/tools mirrors with their owning stage. #989 is superseded implementation evidence and remains draft until replacement PRs exist; it never becomes an accepted prerequisite. #963 stays open until all three staged PRs and the final actual-consumer matrix pass on main. Graphify #982 waits for this accepted outcome, then refreshes once; #915 still verifies the candidate and published artifacts.
The checkpoint passed 1,111 tests and 1,410 subtests with one expected opt-in installed-Codex sandbox rehearsal skipped; Ruff/privacy/package guards/readiness and all remote package/containment CI passed. Those results do not override the confirmed no-mutation invariant failure. Provider spend is unavailable; configured caps are ceilings, not billed usage. No new hosted Devin create allowance.
#992's bounded same-Codex correction delivered draft #997 at 8ee4067e33d737765d0b68a870a42598f4852e04. Fresh broker qualification checkpoint records 3,741 canonical full tests with 16 skips, all affected and owning checks, verified actual candidate/legacy installed payloads, depth-one installed-artifact checks, guards, and all CI matrices passing. Independent Code Mower Claude review attempted this exact head but failed before model inference because local OAuth authentication expired; it remains INCOMPLETE, with no review completion label or merge. Local reauthentication is required before a separately authorized bounded exact-head review. The original correction checkpoint remains historical evidence. Two of three lineage stages and seven of eight stabilization outcomes remain accepted; Graphify #982 refresh and #915 publication follow full #963 acceptance.
Current qualification checkpoint
Local authentication was restored. A separately bounded independent Code Mower Claude review completed on 8ee4067e33d737765d0b68a870a42598f4852e04 with verified complete input coverage and one remaining P2; qualified review and broker disposition. The earlier authentication failure remains INCOMPLETE historical evidence. Contract tracing narrowed the actionable regression to Devin’s public UNKNOWN/needs diagnostic for new lineage refusals; all CLIs already catch refusals and return nonzero, and no broad Codex/Claude rewrite is justified.
One bounded correction is running in the same Code Mower Codex session, restricted to the Devin wrapper, its owning/public-boundary tests and package manifest. No new hosted Devin create is authorized. The delivered head will require fresh exact-head qualification and independent review; the 3,741 passing tests and CI on 8ee do not override this P2. Draft #997 remains unmerged. Two of three #963 stages and seven of eight #979 outcomes remain accepted. Graphify #982 refresh follows full #963 acceptance, then #915 verifies actual release artifacts, installation, publication and closeout.
Part of stabilization epic #979 and roadmap #900.
Part of roadmap #900. Follow-up from the v1.4.0 release dogfood in PR #959.
Problem
Current provenance and reviewer exclusion are centered on the PR opener, branch prefix, and one active builder label. During an explicit takeover this can become internally inconsistent: PR #959 remained authored on a Devin branch, the final repair commit came from Codex, the active label changed to builder:codex, and the Devin reviewer still excluded itself solely because Devin originally opened the PR.
The system needs a handoff-aware contributor model so builder recording, labels, review eligibility, Board status, and the gate describe the same exact-head history.
Outcome
Code Mower preserves ordered builder contribution episodes, exposes one current writer, and excludes every verified contributor to the current diff from satisfying its own independent review requirement.
Acceptance criteria
Boundaries
Reuse the reviewer-exclusion and provenance contracts from #293 and #296 plus explicit handoff evidence from #751. Do not grant review or merge authority through a handoff and do not infer contribution from provider prose.
Delivery
Three staged independently reviewable PRs (#990 → #991 → #992), each with one Code Mower builder, one independent exact-head merge-authority audit, focused adversarial regressions, privacy checks, and the normal Code Mower gate. This evidence-backed decomposition supersedes the original one-PR delivery requirement and the earlier work-order wording below.
Completion dependencies and PR map
Requires #962's verified handoff boundary and #975's role eligibility result; keep contributor independence a separate shared decision. The accepted #990 core and #991 producer used Code Mower Codex source with independent eligible Code Mower Claude review. The #992 source assignment is recorded before launch; all reviews exclude actual contributors. #949 and #977 consume this resolver; #951/#920 verify its behavior. Every verified contributor to the current diff remains excluded from satisfying its own required independent review. If no qualified eligible lane remains, fail closed with one owner action. Do not fix labels manually as the product completion criterion.
Convergence checkpoint and revised PR map
Draft #989 is unaccepted and preserved at
0706c53922f67168dfbb6d2a6493a031a9b0f205. A demonstrably complete audit of the preceding candidate found five P2s; its earlier nominal PASS was rejected because the reviewer admitted incomplete context. After the consolidated repair, a deterministic actual-consumer matrix found gate/status/controller/Board rejecting a configured branch conflict while both Greptile structural requeue failure paths still mutated labels when episodes were empty. The serial repair loop is stopped; no further repair round, full suite or audit is claimed for this head.6b1642d561ee46987870f492f95d4222179d2374, merged ase818a3b639dfe903bdc16aff3674af98a5a08233. Pure exact-head contract/parsing/identity/trust core, with no store/environment/network dependencies or live policy activation; independent Claude PASS, complete 80,246-byte / 10-file coverage, 3,688 full tests with 16 skips, owning matrix/guards/CI/authoritative gate passed, processes quiescent and held lease released/observed absent before merge.d88c7dc03d58046983a5f932f4f01c788973aeab, merged asa420a8cf97ca596dcc583a7c1bb64657de44d392. Trusted delivery persistence, strict selected-history attribution and semantic publication/readback passed independent complete-input Claude review with zero P0/P1/P2 findings. Canonical full discovery passed 3,712 tests with 16 skips; owning checks, guards, CI and authoritative gate passed. Source/review processes were quiescent, and the held lease was released and independently observed absent. Automatic consumer/runner activation remains Lineage stage 3: converge admission, status and label mutations atomically #992.Reconstruct owning diffs from preserved #989 source and regressions rather than blindly replaying repair commits. Keep generated/package/tools mirrors with their owning stage. #989 is superseded implementation evidence and remains draft until replacement PRs exist; it never becomes an accepted prerequisite. #963 stays open until all three staged PRs and the final actual-consumer matrix pass on main. Graphify #982 waits for this accepted outcome, then refreshes once; #915 still verifies the candidate and published artifacts.
The checkpoint passed 1,111 tests and 1,410 subtests with one expected opt-in installed-Codex sandbox rehearsal skipped; Ruff/privacy/package guards/readiness and all remote package/containment CI passed. Those results do not override the confirmed no-mutation invariant failure. Provider spend is unavailable; configured caps are ceilings, not billed usage. No new hosted Devin create allowance.
#992's bounded same-Codex correction delivered draft #997 at
8ee4067e33d737765d0b68a870a42598f4852e04. Fresh broker qualification checkpoint records 3,741 canonical full tests with 16 skips, all affected and owning checks, verified actual candidate/legacy installed payloads, depth-one installed-artifact checks, guards, and all CI matrices passing. Independent Code Mower Claude review attempted this exact head but failed before model inference because local OAuth authentication expired; it remains INCOMPLETE, with no review completion label or merge. Local reauthentication is required before a separately authorized bounded exact-head review. The original correction checkpoint remains historical evidence. Two of three lineage stages and seven of eight stabilization outcomes remain accepted; Graphify #982 refresh and #915 publication follow full #963 acceptance.Current qualification checkpoint
Local authentication was restored. A separately bounded independent Code Mower Claude review completed on
8ee4067e33d737765d0b68a870a42598f4852e04with verified complete input coverage and one remaining P2; qualified review and broker disposition. The earlier authentication failure remains INCOMPLETE historical evidence. Contract tracing narrowed the actionable regression to Devin’s public UNKNOWN/needs diagnostic for new lineage refusals; all CLIs already catch refusals and return nonzero, and no broad Codex/Claude rewrite is justified.One bounded correction is running in the same Code Mower Codex session, restricted to the Devin wrapper, its owning/public-boundary tests and package manifest. No new hosted Devin create is authorized. The delivered head will require fresh exact-head qualification and independent review; the 3,741 passing tests and CI on 8ee do not override this P2. Draft #997 remains unmerged. Two of three #963 stages and seven of eight #979 outcomes remain accepted. Graphify #982 refresh follows full #963 acceptance, then #915 verifies actual release artifacts, installation, publication and closeout.