[codex] add Devin CLI provider#3639
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.
Bugbot Autofix is ON, but it could not run because the branch was deleted or merged before autofix could start.
Reviewed by Cursor Bugbot for commit 0dacca1. Configure here.
7a3595d to
6f81182
Compare
cc55436 to
ddffa1a
Compare
0d6f37d to
d7b9c3f
Compare
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
Everything should be working. If you have issues Ill respond by Monday as its the 4th tmrw (today) |
ApprovabilityVerdict: Needs human review Diff is too large for automated approval analysis. A human reviewer should evaluate this PR. You can customize Macroscope's approvability policy. Learn more. |
|
Forgot a few things and will fix tmrw |
|
Clarifying the Windows PATH capture change in
For
It then joins the non-empty values so T3 Code sees the current user and machine PATH entries instead of relying only on the stale inherited process snapshot. This is why a restart may appear to fix the issue, but the app should not depend on a full Windows session refresh to find newly installed CLIs. For Devin specifically, the server-side shared shell fix is the direct dependency for resolving |
There was a problem hiding this comment.
Effect Service Conventions review. The new Devin provider code largely follows the conventions well (namespace subpath imports, Schema.TaggedErrorClass errors with structured fields, shared makeAcpAdapterLive extraction, removal of the standalone GrokAdapterShape). One error-convention issue was found: two newly-added error constructions derive the wrapper message from cause.message. The conventions require the message to come only from stable structural attributes, with the underlying failure preserved solely as cause (which is already passed here). These mirror the existing Grok/Cursor pattern, but per the instructions the conventions are authoritative for newly changed code.
Posted via Macroscope — Effect Service Conventions
There was a problem hiding this comment.
One retained error-convention violation in the new shared ACP runtime. The two previously flagged instances (DevinAdapter.ts and DevinDriver.ts) remain unaddressed as well.
Posted via Macroscope — Effect Service Conventions
41be1fb to
38e6c79
Compare
|
Closing as PR is stale. |

What Changed
Adds a Devin CLI provider backed by Devin's ACP server.
session/elicitationinto T3 structureduser-input.requested/user-input.resolvedevents so Devin can request form or URL-based user input without hanging.Why
Closes #3636.
Devin CLI exposes ACP via
devin acp, which makes it possible to integrate as a local CLI-backed provider in the same general family as existing ACP provider integrations.References:
UI Changes
Adds Devin as an early-access provider option with Devin icons and configurable binary/config paths in provider settings.
Screenshots are not included yet; this is a draft PR and the UI change is limited to provider picker/settings metadata.
Validation
pnpm exec vp checkpassed. It still reports existing unrelated lint warnings in web/mobile files.pnpm exec vp run typecheckpassed.pnpm exec vp run --filter t3 test -- src/provider/Layers/DevinAdapter.test.ts src/provider/Layers/DevinProvider.test.ts src/provider/acp/DevinAcpSupport.test.tspassed: 31 tests.pnpm exec vp run --filter @t3tools/contracts test -- src/settings.test.tspassed: 13 tests.pnpm exec vp run --filter @t3tools/web test -- src/components/settings/ProviderSettingsForm.test.tspassed: 11 tests.Checklist
Note
Medium Risk
Large new session/turn/approval path with intricate prompt-settlement and cancel races, but it mirrors existing ACP providers and is heavily covered by integration tests.
Overview
Adds Devin as a multi-instance CLI provider (
devin acp), including driver, snapshot/health probing, adapter, and catalog/settings/UI wiring alongside other shipped drivers.The Devin ACP adapter runs sessions over the shared ACP runtime: permissions, mid-turn steering (reuse turn id while
promptsInFlight> 0), cancel/stop with strict prompt settlement, resume cursors, model discovery from session setup, and in-session model/mode switches via Devin-specific grouping of thinking/speed/context variants into base models plus option descriptors.session/elicitationis mapped to structureduser-input.requested/user-input.resolved(form schemas and URL prompts) with mock-agent coverage viaT3_ACP_EMIT_ELICITATION.Shared provider/ACP pieces: optional
skipAuthenticationon ACP startup, shared flatten/find model select helpers (Cursor now imports these),ProviderModelDiscoveryCacheto refresh snapshots after real-session model discovery, and per-instanceProviderModelMergePolicyso Devin drops stale raw variant slugs when grouped models update.Reviewed by Cursor Bugbot for commit 0dacca1. Configure here.
Note
Add Devin CLI as a built-in provider with ACP adapter, text generation, and settings UI
makeAcpJsonTextGenerationfactory.DEVIN_MODEL_MERGE_POLICYto retain custom models across discovery refreshes while dropping raw ACP model variants covered by base model IDs.PROVIDER_OPTIONSwith a 'new' sidebar badge.GrokAdapterandCursorTextGenerationto use the new sharedAcpAdapterLiveandmakeAcpJsonTextGenerationabstractions, reducing per-provider boilerplate.selectedOptionLabelsarray, optional questions) across web and mobile.buildWindowsEnvironmentCaptureCommandto capture PATH as a normalized semicolon-joined string, and fixes JSON-RPC string id preservation inmakeAcpPatchedProtocol.Macroscope summarized 558b9a9.