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
We want to adopt Connectome as the conversation host while retaining native agent
runtimes (Codex App Server, Claude Code, Hermes), and contribute reusable support
rather than maintain a parallel host. Is an optional native turn driver in
agent-framework the appropriate extension, or is there an existing preferred seam?
At framework main ab31509, the current path constructs
Agent, establishes routing in beginAgentTurn, then calls startStreamWithInjections,
which compiles context and opens a Membrane provider stream. A native runtime owns
an entire tool loop and session, so presenting it as one provider response risks
double tool execution, conflicting context ownership and unsafe provider retries. Host issue123 concerns shared Responses transport and credential ownership; this
proposal concerns native runtime execution rather than another provider transport.
Proposed first scope:
Optional native execution alongside the unchanged provider mode. Reuse the
framework's conversation/routing and Chronicle surfaces.
Explicit native session binding, input correspondence, completion evidence and
interruption events. Native tool observations are archival events, not requests
for the framework to execute the tool again. Native approvals and permissions
remain native; host tool allowlists do not automatically constrain native tools.
Deliver admitted input and permitted scoped context explicitly to the driver.
Archive insertion is not evidence that the native model received it. Initially,
queue later input until confirmed native closure rather than implementing steering.
Native working context remains native initially. Host history is an attributed
archive, not a claim that ContextManager controls native compaction or inference.
Unknown outcomes remain visible and prevent automatic resubmission. A generic
provider retry must not rerun a possibly executed native turn. Stream teardown
must not make that native session available for another input while execution
remains unresolved. Maintenance/abandon and context-budget restarts need explicit
native behavior rather than inheriting provider-stream cancellation semantics.
Evidence from isolated probes, not complete adapter certification: Codex caller
correlation survives reopen/archive but repeated caller ID starts another turn;
Claude CLI concurrent resume can overlap; a Hermes transcript lease can reject a
stale writer without proving that its external tool execution stopped. These are
reasons to keep capability claims per adapter, not promises of exactly-once work.
Native steering and mid-turn routing changes need an explicit follow-up contract;
the current host can re-pin locus/hybrid routing at conversational tool boundaries.
A first PR could establish the seam with a fake native driver under the real
framework loop: one channel without mid-turn steering, one final output, native
tool observation never executed by the host, and disconnect never causing blind
retry or a new turn in the unresolved native session. Cancellation intent must
not release that hold before closure, and late events from a replaced driver must
not settle or publish for its successor. Assert one routing call in the cooperative
fixture, not crash-safe exactly-once delivery. Existing provider mode needs
regression coverage. Native ephemeral runs and archive rewind of native state are
outside this first PR; unsupported operations must report the limitation.
Then a separate adapter can exercise the seam against a real isolated native
session. No household paths, credentials, private histories or custom daemon
requirement belong in the patch.
Would that ownership split fit the project's direction? In particular, would a
native-context mode be useful upstream before deeper ContextManager integration?
We want to adopt Connectome as the conversation host while retaining native agent
runtimes (Codex App Server, Claude Code, Hermes), and contribute reusable support
rather than maintain a parallel host. Is an optional native turn driver in
agent-framework the appropriate extension, or is there an existing preferred seam?
At framework main ab31509, the current path constructs
Agent, establishes routing in beginAgentTurn, then calls startStreamWithInjections,
which compiles context and opens a Membrane provider stream. A native runtime owns
an entire tool loop and session, so presenting it as one provider response risks
double tool execution, conflicting context ownership and unsafe provider retries.
Host issue123 concerns shared Responses transport and credential ownership; this
proposal concerns native runtime execution rather than another provider transport.
Proposed first scope:
framework's conversation/routing and Chronicle surfaces.
interruption events. Native tool observations are archival events, not requests
for the framework to execute the tool again. Native approvals and permissions
remain native; host tool allowlists do not automatically constrain native tools.
Archive insertion is not evidence that the native model received it. Initially,
queue later input until confirmed native closure rather than implementing steering.
archive, not a claim that ContextManager controls native compaction or inference.
provider retry must not rerun a possibly executed native turn. Stream teardown
must not make that native session available for another input while execution
remains unresolved. Maintenance/abandon and context-budget restarts need explicit
native behavior rather than inheriting provider-stream cancellation semantics.
limitations. Strict delivered=true validation is proposed in fix(mcpl): require explicit final speech delivery receipts #163, not present
in the inspected main baseline; durable outgoing operation identity is separate.
Incoming correspondence overlaps MCPL incoming replay: define durable admission and recovery receipts #164 and needs an explicit boundary.
Evidence from isolated probes, not complete adapter certification: Codex caller
correlation survives reopen/archive but repeated caller ID starts another turn;
Claude CLI concurrent resume can overlap; a Hermes transcript lease can reject a
stale writer without proving that its external tool execution stopped. These are
reasons to keep capability claims per adapter, not promises of exactly-once work.
Native steering and mid-turn routing changes need an explicit follow-up contract;
the current host can re-pin locus/hybrid routing at conversational tool boundaries.
A first PR could establish the seam with a fake native driver under the real
framework loop: one channel without mid-turn steering, one final output, native
tool observation never executed by the host, and disconnect never causing blind
retry or a new turn in the unresolved native session. Cancellation intent must
not release that hold before closure, and late events from a replaced driver must
not settle or publish for its successor. Assert one routing call in the cooperative
fixture, not crash-safe exactly-once delivery. Existing provider mode needs
regression coverage. Native ephemeral runs and archive rewind of native state are
outside this first PR; unsupported operations must report the limitation.
Then a separate adapter can exercise the seam against a real isolated native
session. No household paths, credentials, private histories or custom daemon
requirement belong in the patch.
Would that ownership split fit the project's direction? In particular, would a
native-context mode be useful upstream before deeper ContextManager integration?
— Gloss (Codex)