Part of roadmap #900.
Devin peer participant, hosted lifecycle, context, builder, and reviewer support for v1.4.0
Problem
Code Mower v1.3.1 recognizes Devin as a participant, has a maintained local CLI builder/informational reviewer, and can create and poll hosted Devin v3 release-qualification sessions. It does not yet provide a reusable provider-neutral lifecycle for dispatch, progress, questions, answers, cancellation, recovery, result collection, or PR binding. Coworker context supports only Claude and Codex. The dormant hosted devin reviewer configuration also declares merge authority despite current documentation and calibration policy saying Devin is not promoted.
Outcome
A session started from Claude, Codex, or Devin can select Devin and use the same provider-neutral commands to dispatch a trusted work order, inspect state, answer a clarification, collect a verified PR/result, cancel, and recover after restart. Devin receives the same explicitly authorized Coworker or later Graphify context packet as other participants. Local CLI and hosted API remain distinct transports under one product identity. Both reviewer transports remain informational until calibration independently earns promotion.
Target user surface:
code-mower session dispatch SESSION.json --to devin --role builder --work-order WORK_ORDER --max-acu 2 --apply
code-mower session status SESSION.json --participant devin
code-mower session message SESSION.json --participant devin --message-stdin --apply
code-mower session collect SESSION.json --participant devin --apply
code-mower session cancel SESSION.json --participant devin --apply
Scope and sequence
- Capability model and safe reviewer posture.
- Reusable Devin v3 create/get/list-messages/send/terminate/archive client plus lifecycle state machine and uncertain-create reconciliation.
- Provider-neutral session dispatch, status, message, cancel, collect, persistence, Board state, and recovery.
- Hosted Devin work-order delivery, exact repository/issue/branch policy, completion schema, PR binding, provenance, and fix rounds.
- Private context delivery to Devin orchestrator/builder/reviewer roles.
- Local and hosted exact-head reviewer parity, kept informational pending calibration.
- Devin host/skill/doctor and optional first-run setup.
- Qualification and public sanitized scorecard.
- v1.4.0 release, package rehearsal, campaign, Board refresh, and CodeMower.com metadata upload.
Architecture and safety contract
- Product identity is separate from
devin_cli and devin_api_v3 transports.
- Capability declarations cover coordinate, build, review, message, cancel, context, and structured result behavior.
- Normalize lifecycle to received/dispatching/active/waiting-for-user/waiting-for-approval/succeeded/failed/cancelled/creation-unknown.
- Checkpoint before paid create. Reconcile uncertain creation through a unique bounded tag and created-after query; accept exactly one match. Never auto-retry a paid create.
- Require exact repository allowlisting, bounded response sizes/time, explicit
--apply, and a positive ACU cap for live work.
- Keep credentials, context, prompts, messages, transcripts, and raw output in protected local state only. Board/cloud receive allowlisted metadata.
- Verify returned repository, issue, PR, author/provenance, and current head before accepting completion.
- Correct hosted reviewer merge authority immediately; selection never promotes a reviewer.
Dependencies
The lifecycle contract must stabilize before substantial Slack runtime work. Graphify #876 may run in parallel. The Graphify packet adapter later reuses the same context-recipient contract.
Delivery protocol
Each child issue produces one PR. Use a named Code Mower builder and an independent reviewer; exact-head evidence, focused tests, full relevant CI, privacy checks, and code-mower/gate are required. Once lane admission lands, use Devin itself for bounded subsequent child deliveries so the epic dogfoods the target capability.
Scorecard
| Child |
Builder |
PR/head |
Peer audit |
Tests/gate |
Live evidence |
State |
| Capability/posture (#904) |
Codex |
#925 / 5782403b240c3a2512f0f6881d42288b5919bd53 |
Requested; both configured audit paths disabled |
Focused checks pass; CI fixture correction remains local; gate awaits Claude |
Metadata-only upload dry run passed; no live upload |
needs-owner: Git metadata write denied and audit runner disabled |
| v3 lifecycle |
pending |
pending |
pending |
pending |
bounded API |
blocked by capability |
| Session lifecycle |
pending |
pending |
pending |
pending |
recovery fixture |
blocked |
| Builder/PR binding |
pending |
pending |
pending |
pending |
bounded delivery |
blocked |
| Context |
pending |
pending |
pending |
pending |
private canary |
blocked |
| Reviewer parity |
pending |
pending |
pending |
pending |
calibration |
blocked |
| Setup/doctor |
pending |
pending |
pending |
pending |
fresh install |
blocked |
| Qualification |
pending |
pending |
pending |
pending |
scorecard |
blocked |
| Release |
pending |
pending |
pending |
pending |
v1.4.0 |
blocked |
Definition of done
- Devin has peer-level session hosting, lifecycle control, local and hosted builder use, private context delivery, recoverability, and informational exact-head review.
- Hosted and local transports expose consistent states and safe reason codes while preserving product-specific differences.
- Five bounded delivery samples, two clean reviewer controls, two known-blocked catches, and adjudicated findings are recorded; reviewer authority changes only if the published promotion thresholds are met.
- Claude + Codex remains the initial default; Devin setup is optional and clear.
- v1.4.0 is published and installed, its qualification campaign passes, and allowlisted metadata is visible on CodeMower.com.
Delivery checklist
Part of roadmap #900.
Devin peer participant, hosted lifecycle, context, builder, and reviewer support for v1.4.0
Problem
Code Mower v1.3.1 recognizes Devin as a participant, has a maintained local CLI builder/informational reviewer, and can create and poll hosted Devin v3 release-qualification sessions. It does not yet provide a reusable provider-neutral lifecycle for dispatch, progress, questions, answers, cancellation, recovery, result collection, or PR binding. Coworker context supports only Claude and Codex. The dormant hosted
devinreviewer configuration also declares merge authority despite current documentation and calibration policy saying Devin is not promoted.Outcome
A session started from Claude, Codex, or Devin can select Devin and use the same provider-neutral commands to dispatch a trusted work order, inspect state, answer a clarification, collect a verified PR/result, cancel, and recover after restart. Devin receives the same explicitly authorized Coworker or later Graphify context packet as other participants. Local CLI and hosted API remain distinct transports under one product identity. Both reviewer transports remain informational until calibration independently earns promotion.
Target user surface:
Scope and sequence
Architecture and safety contract
devin_clianddevin_api_v3transports.--apply, and a positive ACU cap for live work.Dependencies
The lifecycle contract must stabilize before substantial Slack runtime work. Graphify #876 may run in parallel. The Graphify packet adapter later reuses the same context-recipient contract.
Delivery protocol
Each child issue produces one PR. Use a named Code Mower builder and an independent reviewer; exact-head evidence, focused tests, full relevant CI, privacy checks, and
code-mower/gateare required. Once lane admission lands, use Devin itself for bounded subsequent child deliveries so the epic dogfoods the target capability.Scorecard
5782403b240c3a2512f0f6881d42288b5919bd53Definition of done
Delivery checklist