3.9 KiB
Devin Claude Bridge Progress
Updated: 2026-07-27
Baseline
- Fork version:
3.8.49. - Starting branch:
release/v3.8.49. - Starting commit:
ed7db3ee5f89a144b2d931d8605534522f83de30. - Fixed runtime artifacts: Node
26.0.0, Claude Code2.1.220, Devin CLI3000.2.17. - Existing
devin-cliremains unchanged; the new path is the separatedevin-cli-agenticprovider.
Proved offline
- Focused unit and ACP suite: 27 tests passed.
- Anthropic wire suite: non-streaming JSON, SSE event order,
tool_use, directtool_resultcontinuation, ACP error, and early process exit passed. - Final container build completed with the pinned CLIs and the production OmniRoute build.
- Artifact inspection confirmed Node
26.0.0, Claude Code2.1.220, and Devin CLI3000.2.17while the container had no network. - Runtime isolation verifier passed in static and container checks.
- Real Claude Code offline E2E passed in 9 turns. It loaded
CLAUDE.md, discovered the project skill and slash command, fired hooks, requestedSkill,Bash,Read, andEdit, observed a failing test, corrected the edit, reran the test successfully, and returned the fixture's final success marker. - Every offline inference action recorded by the ACP fixture names only
devin-cli-agentic; provider termination returned an explicit error.
Evidence is generated under .sandbox/evidence and is intentionally ignored by Git.
Regression status
- Focused ESLint and
typecheck:corepassed; the final executor changes were rechecked withtypecheck:coreand the 27-test bridge suite. - The complete
npm run checkreached the unit suite after lint, but the repository test runner did not terminate afterquota-redis-store.test.ts: anioredisclient kept reconnecting to an unavailable local Redis endpoint. The runner was interrupted after repeatedECONNREFUSEDevents, so this command is not reported as passed. - Documentation accuracy checks passed before this final status update and are rerun after it.
- The fresh image rebuild and dedicated Devin volume ownership retry passed.
Live Devin
Not passed. The official Devin login succeeded inside the dedicated volume, and model
discovery selected swe-1-7-lightning. Authorized live runs established the following:
devin acp --agent-type summarizeris not a neutral inference backend. The CLI's own help identifies it as a no-tools summarizer, and its injected role caused future-action narration, summaries, and malformed tool envelopes instead of a reliable Claude Code tool loop.- The default
devin acpagent can emit the required XML tool envelope in a minimal probe, but the full Claude Code request caused it to emit ACPtool_callevents and attempt to own tool execution. - The adapter now rejects
tool_callandtool_call_updatewithdevin_internal_tool_execution(502). Two live requests were observed failing closed; a third in-flight request was aborted when the test was stopped to avoid automatic paid retries. - No three-scenario live pass exists. The live test must remain red until the official CLI exposes a neutral no-tools generation mode (without the summarizer role) or another supported Devin API provides equivalent raw model inference.
The offline contract still proves narrative -> single repair -> tool_use, and a second
narrative now fails closed instead of being accepted as a successful final response.
Safety record
No host Claude executable, configuration, login, OAuth token, Keychain, or Anthropic API was
used. The first pre-isolation unit attempt initialized the repository's default OmniRoute
database at /Users/lucasisrael/.omniroute/storage.sqlite; it was not rolled back or touched
again. All subsequent bridge commands set isolated database paths under .sandbox.
The final live attempts used only the dedicated Docker volumes. Claude Code ran only inside the non-root container; no host Claude configuration or credential path was mounted or read.