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
As an executable-document author, I want to run Devin through the existing <Agent>, <Session>, and <Prompt> components, so one xmd run invocation
can hold useful multi-turn Devin conversations without claiming that they can
be resumed later.
Example
xmd run --default-agent devin review.md
<Sessionname="review">
<Prompt>Inspect the change and identify the highest-risk behavior.</Prompt>
<Prompt>Turn that finding into a regression-test proposal.</Prompt>
</Session>
Both prompts reach the same live Devin conversation. Another named Session in
the same invocation has its own conversation and may run concurrently.
Current gap
ACPX documents Devin as a raw devin acp command rather than a built-in agent.
The current XMD registry therefore resolves devin incorrectly as the bare
command. Even with the command corrected, XMD's ordinary ACP path waits for the
durable first-turn materialization signal used by Codex and Claude. Devin emits
neither that signal nor a provider-native session identity, so treating it as a
durable session would either fail or retain an identity that nothing supports.
The sanitized discovery traces establish the narrower usable protocol boundary:
authentication, prompt streaming, normal completion, and ACP cancellation work
through ACPX's Devin compatibility shim, but it publishes no durable acceptance
or conversation identity. They inform this lifetime decision; reusable
qualification against a live backend belongs to #743.
Contract
xmd run recognizes the agent name devin and launches devin acp. Devin
Sessions are invocation-scoped:
prompts in one Session are serialized and continue one live ACP conversation;
different Sessions own different live conversations and may execute
concurrently;
cancellation targets the active turn without converting the Session into a
durable one;
invocation teardown cancels active turns, closes every owned handle, and
retains no route, provider identity, or resumable session state; and
the same document, directory, and Session name in a later invocation start a
new Devin conversation.
ACPX remains in persistent mode while the invocation is live. Its bookkeeping
for Devin is held in an invocation-local store rather than the durable ACPX
store. The host declares that lifetime before agent availability is probed, and
the provider keeps invocation-scoped and durable runtimes separated so one
cannot consult the other's store.
Lifetime is also part of a provider-issued Session's compatibility. Two agent
names may resolve to the same command while the host declares different
lifetimes for them. A Prompt cannot consume a Session placed under another
lifetime merely because their commands match; the mismatch refuses before any
additional store access, route, ensure, turn, or retained write. Two aliases
declared with the same lifetime continue to share the command-derived placement.
No title update, ACP session id, ACPX record id, or cognition.ai/userMessageId is promoted into a durable identity.
Other agents keep their existing placement, materialization, retention,
ownership, and native-launch behavior.
Unsupported surfaces
xmd workflow, replay continuation that requires a new model turn, and <Session.Launch> do not support Devin because each requires durable session
continuity. Each refuses before probing, starting, or otherwise contacting
Devin.
Plan authorship is a separate host surface and remains outside this Story,
whether reached through the xmd plan command or through <Plan> in an
ordinary document run. Both entrypoints refuse Devin before contacting it. An
explicit --session or <Plan session> additionally requests continuity that
an invocation-scoped Devin session cannot provide.
xmd run --journal remains usable because its journal is a trace of the current
run and is not reopened as continuation state.
Acceptance
xmd run --default-agent devin resolves the production command as devin acp.
Two sequential prompts in one Session use one live conversation and the
second can act on context established by the first.
Two distinct Devin Sessions can have turns in flight concurrently, while two
prompts for one Session remain ordered.
Cancelling a turn sends ACP cancellation and settles the turn as cancelled.
Provider teardown attempts every handle even when another close fails.
The durable ACPX store receives no Devin record. A second provider invocation
with the same cwd and Session names creates fresh backend conversations.
xmd workflow, the xmd plan command, <Plan> in an ordinary document run,
and <Session.Launch> refuse Devin with zero doctor, ensure, turn, and
native-process calls.
A mixed invocation cannot cross Devin's invocation-local records with a
durable agent's records or runtime. Codex and Claude retain their current
materialization behavior unchanged.
Two names resolving to one command but declaring opposite lifetimes cannot
consume each other's Session in either direction and cause no additional
store, route, ensure, turn, or retention effect. The same-lifetime alias case
remains valid.
A credential-free black-box devin executable verifies the production argv,
ACPX Windsurf client metadata and diagnostics exchange, same-invocation
continuity, fresh later invocation, and absence of a durable record without
credentials or model cost.
Architecture, ACP-client, plan-command, workflow-session, and executable-MDX
evidence contracts describe this supported boundary and its refusals without
claiming live-backend certification.
Run the focused provider and host regressions explicitly:
deno task test packages/acp/tests/provider.test.ts
deno task test packages/cli/tests/agent-adapters.test.ts
deno task test packages/cli/tests/workflow-agent.test.ts
deno task test packages/cli/tests/plan-cli.test.ts
deno task test packages/cli/tests/plan-component.test.ts
deno task test packages/cli/tests/devin-agent.test.ts
The final command is the subprocess boundary: it runs a credential-free ACP
agent named devin through the production CLI and vendored ACPX shim.
Relationship
Closed issue #648 remains the durable first-turn materialization contract for
agents that publish its explicit acceptance signal. This issue does not weaken
or reinterpret that contract; it adds a host-declared invocation lifetime for
an agent that cannot satisfy it.
Issue #743 owns provider-neutral certification against real ACP-agent backends,
including the authorized Devin continuity, cancellation, teardown, and
sanitized-report requirements formerly included here. That cost-bearing
qualification does not delay this deterministic implementation.
Out of scope
Durable Devin sessions or cross-invocation resume.
Devin support in workflow continuation or any Plan-authorship surface.
Native Devin Session.Launch.
Inferring durable identity from display metadata or terminal response
metadata.
Patching ACPX's vendored registry or adding an npm dependency merely to name devin acp.
Provider-state export, workflow-artifact portability, or conversation forking.
Story
As an executable-document author, I want to run Devin through the existing
<Agent>,<Session>, and<Prompt>components, so onexmd runinvocationcan hold useful multi-turn Devin conversations without claiming that they can
be resumed later.
Example
Both prompts reach the same live Devin conversation. Another named Session in
the same invocation has its own conversation and may run concurrently.
Current gap
ACPX documents Devin as a raw
devin acpcommand rather than a built-in agent.The current XMD registry therefore resolves
devinincorrectly as the barecommand. Even with the command corrected, XMD's ordinary ACP path waits for the
durable first-turn materialization signal used by Codex and Claude. Devin emits
neither that signal nor a provider-native session identity, so treating it as a
durable session would either fail or retain an identity that nothing supports.
The sanitized discovery traces establish the narrower usable protocol boundary:
authentication, prompt streaming, normal completion, and ACP cancellation work
through ACPX's Devin compatibility shim, but it publishes no durable acceptance
or conversation identity. They inform this lifetime decision; reusable
qualification against a live backend belongs to #743.
Contract
xmd runrecognizes the agent namedevinand launchesdevin acp. DevinSessions are invocation-scoped:
concurrently;
durable one;
retains no route, provider identity, or resumable session state; and
new Devin conversation.
ACPX remains in persistent mode while the invocation is live. Its bookkeeping
for Devin is held in an invocation-local store rather than the durable ACPX
store. The host declares that lifetime before agent availability is probed, and
the provider keeps invocation-scoped and durable runtimes separated so one
cannot consult the other's store.
Lifetime is also part of a provider-issued Session's compatibility. Two agent
names may resolve to the same command while the host declares different
lifetimes for them. A Prompt cannot consume a Session placed under another
lifetime merely because their commands match; the mismatch refuses before any
additional store access, route, ensure, turn, or retained write. Two aliases
declared with the same lifetime continue to share the command-derived placement.
No title update, ACP session id, ACPX record id, or
cognition.ai/userMessageIdis promoted into a durable identity.Other agents keep their existing placement, materialization, retention,
ownership, and native-launch behavior.
Unsupported surfaces
xmd workflow, replay continuation that requires a new model turn, and<Session.Launch>do not support Devin because each requires durable sessioncontinuity. Each refuses before probing, starting, or otherwise contacting
Devin.
Plan authorship is a separate host surface and remains outside this Story,
whether reached through the
xmd plancommand or through<Plan>in anordinary document run. Both entrypoints refuse Devin before contacting it. An
explicit
--sessionor<Plan session>additionally requests continuity thatan invocation-scoped Devin session cannot provide.
xmd run --journalremains usable because its journal is a trace of the currentrun and is not reopened as continuation state.
Acceptance
xmd run --default-agent devinresolves the production command asdevin acp.second can act on context established by the first.
prompts for one Session remain ordered.
Provider teardown attempts every handle even when another close fails.
with the same cwd and Session names creates fresh backend conversations.
xmd workflow, thexmd plancommand,<Plan>in an ordinary document run,and
<Session.Launch>refuse Devin with zero doctor, ensure, turn, andnative-process calls.
durable agent's records or runtime. Codex and Claude retain their current
materialization behavior unchanged.
consume each other's Session in either direction and cause no additional
store, route, ensure, turn, or retention effect. The same-lifetime alias case
remains valid.
devinexecutable verifies the production argv,ACPX Windsurf client metadata and diagnostics exchange, same-invocation
continuity, fresh later invocation, and absence of a durable record without
credentials or model cost.
evidence contracts describe this supported boundary and its refusals without
claiming live-backend certification.
Evidence
output.jsoncancellation-output.jsonopenclaw/acpxDevin documentationRun the focused provider and host regressions explicitly:
The final command is the subprocess boundary: it runs a credential-free ACP
agent named
devinthrough the production CLI and vendored ACPX shim.Relationship
Closed issue #648 remains the durable first-turn materialization contract for
agents that publish its explicit acceptance signal. This issue does not weaken
or reinterpret that contract; it adds a host-declared invocation lifetime for
an agent that cannot satisfy it.
Issue #743 owns provider-neutral certification against real ACP-agent backends,
including the authorized Devin continuity, cancellation, teardown, and
sanitized-report requirements formerly included here. That cost-bearing
qualification does not delay this deterministic implementation.
Out of scope
Session.Launch.metadata.
devin acp.xmd run#743.