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
All existing request messages now include workspace and/or all_workspaces fields for workspace-scoped operations. The SDK's existing types and converters don't thread these fields through.
Affected request messages (partial list)
Message
New fields
CreateSandboxRequest
workspace
GetSandboxRequest
workspace
ListSandboxesRequest
workspace, all_workspaces
DeleteSandboxRequest
workspace
CreateProviderRequest
workspace
GetProviderRequest
workspace
ListProvidersRequest
workspace, all_workspaces
DeleteProviderRequest
workspace
ExposeServiceRequest
workspace
ListServicesRequest
workspace, all_workspaces
ExecSandboxRequest
workspace
All SSH/TCP/Policy requests
workspace
Implementation scope
Add Workspace field to types.Sandbox (from ObjectMeta.workspace)
Add workspace option to CreateOptions or as a parameter
Add workspace filtering to ListOptions
Update all converters to pass workspace fields
Update all fakes to respect workspace scoping
Tests for workspace-scoped operations
Design question
Should workspace be a field on the resource type (like Labels), or a parameter on each method call? The proto has it on requests, but ObjectMeta.workspace also carries it on the resource itself.
Target drop
Drop C (implements workspace CRUD and retroactively adds scoping to Drops A and B RPCs)
References
ObjectMeta.workspace field: datamodel.proto line 39
Request message workspace fields: throughout openshell.proto
Activity
rhuss commentedon Jul 29, 2026
Implementation Hints
This issue deserves a full spec (cross-cutting change touching every client, converter, fake, and the public API surface).
Setup spex (if not already initialized)
Or:
/spex:initin Claude Code.Recommended workflow
/spex:specdescribing workspace scoping across all RPCs./spex:planto design the approach./spex:tasksto break down the work./spex:implementto execute./spex:verifyfor final checks.Key design decisions the spec should address
workspacelive in the client API? Options:Create(ctx, name, spec, labels, workspace)) -- breaking changeCreateOptionsstruct passed variadically -- non-breaking, extensibleall_workspacesinteract withListOptions?Get/Deleteaccept workspace as a parameter or option?Depends on
Workspacetype definitionsAffected files (every sub-client)
sandbox_client.go,sandbox.go(SandboxInterface)types/options.go(ListOptions)Proto Sync from Upstream PR #2445 (#40)
feat(sdk): add workspace scoping to all RPCs
Add Workspace Scoping to All RPCs [Spec + Impl] (#41)