Skip to content

Draft alternate exec process split layout#15234

Closed
starr-openai wants to merge 10 commits intomainfrom
starr/exec-process-layout-like-15232-alt
Closed

Draft alternate exec process split layout#15234
starr-openai wants to merge 10 commits intomainfrom
starr/exec-process-layout-like-15232-alt

Conversation

@starr-openai
Copy link
Copy Markdown
Contributor

Summary

Notes

Co-authored-by: Codex noreply@openai.com

starr-openai and others added 10 commits March 19, 2026 14:18
Add a narrow ExecProcess trait for process lifecycle RPCs and expose it
from Environment behind an ExecutorEnvironment trait. Keep the first cut
behavior-preserving by delegating remote mode to the existing
ExecServerClient and returning an unavailable process stub for default
local Environment values.

Co-authored-by: Codex <noreply@openai.com>
Fall back to an in-process exec-server client when no remote URL is
configured, so constructed Environment values have a real process
capability in both local and remote modes.

Co-authored-by: Codex <noreply@openai.com>
Give Environment a real local ExecProcess implementation by default and
keep remote mode selecting the websocket-backed client when configured.
The local implementation lazily initializes an in-process exec-server
client on first use.

Co-authored-by: Codex <noreply@openai.com>
Replace the in-process client wrapper with a local ExecProcess that owns
ExecServerHandler directly and forwards process notifications to the
trait event stream. This keeps the default Environment process path
entirely local instead of routing through ExecServerClient.

Co-authored-by: Codex <noreply@openai.com>
Remove the duplicate direct-handler local process implementation and make
the local ExecProcess path delegate to the existing in-process
ExecServerClient. Keep lazy initialization only to support sync
Environment::default().

Co-authored-by: Codex <noreply@openai.com>
Remove sync Default from Environment, construct the local process client
with connect_in_process() in create(None), and switch the fs-only app
server default to a local filesystem constructor.

Co-authored-by: Codex <noreply@openai.com>
Drop the stale remote_exec_server_client() accessor now that Environment
exposes the process capability directly, and rename the capability getter
to get_executor() on the environment trait and concrete type.

Co-authored-by: Codex <noreply@openai.com>
Remove the temporary Environment::local_filesystem() helper and export
LocalFileSystem so fs-only defaults can construct the local filesystem
directly without going through Environment.

Co-authored-by: Codex <noreply@openai.com>
Apply the pending formatting reorderings and switch the server-side
filesystem default to LocalFileSystem so the current PR compiles again.

Co-authored-by: Codex <noreply@openai.com>
Reshape the exec process seam to mirror the filesystem split style with
separate process, local_process, remote_process, and server/process_handler
modules, and make Environment own an Arc<dyn ExecProcess>.

Co-authored-by: Codex <noreply@openai.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant