Skip to content

Route Environment work through one owner - #510

Merged
SaladDay merged 1 commit into
aos/cutoverfrom
aos/environment-owner
Oct 7, 2026
Merged

SaladDay merged 1 commit into
aos/cutoverfrom
aos/environment-owner

Conversation

@SaladDay

@SaladDay SaladDay commented Oct 7, 2026 •

Copy link
Copy Markdown
Collaborator

dispatch.Environment is the one contract between the Router and a Session's Environment owner. It is resolved once, at the Session's first assignment_bind on a Router, and closed at release after work and Executors settle.

  • The owner configures and prepares executions (including read-only preparation), applies runtime_prepare, lists, writes and exports the workspace. The Router keeps admission, transfer framing and fencing.
  • Preparation admits the assignment before it consults the owner. A Session without an owner gets each operation's typed unsupported code. A Runtime that resolves owners rejects the bind of a Session it does not serve with assignment_conflict.
  • The daemon composes localworkspace.Binding as the owner and declares workspace_read_preparation and workspace_output_export from it.
  • Deleted: the Run-path type assertion that fell back to the Harness Session, the workspace extension interfaces, the adapter stubs and declarations, Claude's workspace_directory bridge (Go and TypeScript), and unreachable write/export branches.
  • runtime-protocol.md and harness-onboarding.md (en + zh).

Lane H2a of the agent-outside-sandbox plan; blind-reviewed. Deferred to H2b: typed results/errors in the contract file, owner close on Router shutdown, and one composition of the read-only/export declaration.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

@SaladDay
SaladDay merged commit aa9741a into aos/cutover Oct 7, 2026
1 check passed
@SaladDay
SaladDay deleted the aos/environment-owner branch October 7, 2026 17:26
dispatch.Environment is the contract between the Router and a Session's
Environment owner, resolved once from the Session's first assignment_bind.
The owner configures and prepares executions (including read-only
preparation), applies runtime_prepare, lists, writes and exports the
workspace, and releases its hold on assignment_release. The Router keeps
admission, transfer framing and fencing. Preparation admits the assignment
before it consults the owner. A Session without an owner gets each
operation's typed unsupported code, and a Runtime that resolves owners
rejects the bind of a Session it does not serve with assignment_conflict.

The daemon adapts localworkspace.Binding as the owner at composition and
declares workspace_read_preparation and workspace_output_export from it.
The Run-path type assertion that fell back to the Harness Session is gone,
and with it the workspace extension interfaces, the adapter stubs and
declarations, and Claude's workspace_directory bridge in Go and TypeScript.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant