Add ACP CodingAgentRun bridge - #129
Open
yyjeqhc wants to merge 10 commits into
Open
Conversation
yyjeqhc
force-pushed
the
feat/acp-coding-agent-bridge
branch
from
August 23, 2026 12:50
64ac72a to
36e0f57
Compare
yyjeqhc
force-pushed
the
feat/acp-coding-agent-bridge
branch
from
August 23, 2026 16:01
93d11c1 to
8e9ac8f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add the first WebCodex ACP coding-agent integration as a Codex-first
CodingAgentRunvertical slice.This PR includes the reviewed P0 architecture contract, the P1 implementation/review closure, and the final cross-platform Project/snapshot identity hardening. The product model is a protocol-aware detached execution object: WebCodex owns a durable
CodingAgentRun, while the private ACP session remains Runner-local.What this adds
coding_agent_start,coding_agent_observe, andcoding_agent_cancel@agentclientprotocol/codex-acpsession/request_permissionhandling; P1 never auto-allows and does not expose a public permission-response toolcoding_agent:runOAuth scope; legacy/default/shared-key authority does not receive it implicitlyIndependent review closure
Independent review and native CI found and closed the following correctness gaps in separate follow-up commits:
OutcomeUnknownacross real manager restart for damaged post-dispatch state, with no duplicate promptrecording_session_idonly after idempotent intent/project checks succeedproject:writepluscoding_agent:runand a currently writable Project for start, while observe/cancel retain the narrower authority contractPathequality in ACP Project binding with the existingcanonicalize_existing+ platform-awarepaths_equalcontract, covering macOS/varvs/private/var, Windows case/verbatim identity, and symlink-retarget fail-closed behaviorCodingAgentRunsnapshot validator used by normal response validation, registration inventory validation, and Runner durable-record validation; contradictory or unknown terminal truth now fails closedValidation
Final head:
93d11c170aa0604baaf8485979101b22f8bce88d(Harden ACP native project and snapshot identity).Special/Linux focused validation:
cargo test --locked -p webcodex-core coding_agent: 4 passed / 0 failedcargo check --all-targets: passedcargo fmt -- --check: passed on final treegit diff HEAD^ --check: passedNative macOS validation on mini at the exact final SHA:
/varvs/private/varlsp_initialize_timeout_cleanup_uses_configured_shutdown_budgettest and was reproduced unchanged onmain(5fa2aafb), so it is not introduced by this PRNative Windows validation on MSI at the exact final SHA:
GitHub Actions CI run for the exact final SHA is green across contract, Linux workspace crates, Linux server, Linux runner, Windows, macOS, and the aggregate gate.
Real opt-in Codex ACP dogfood from the implementation round also completed successfully against official
@agentclientprotocol/codex-acp1.6.2, observing normalized activity/message events andend_turn -> completed.Security / authority notes
lost/outcome_unknownrather than retry authoritycoding_agent:runis an independent delegated authority and is never inferred from existing project/shell/MCP scopesNon-goals
This PR intentionally does not add:
Commit stack
bf5a86eeDefine ACP Coding Agent Run contract44a1243fHarden ACP Coding Agent Run contract766410b0Implement ACP CodingAgentRun vertical slice205f0dd6Harden ACP CodingAgentRun review gaps36e0f577fix: close ACP run authority and identity gaps93d11c17Harden ACP native project and snapshot identity