computer: Carry Think methods onto clients - #26
Merged
Conversation
Workspace clients returned by getWorkspace() omit the Think compatibility surface even when the owner enables useThink. Remote Think consumers must otherwise duplicate Computer's filesystem translations or avoid the common client API. Preserve the owner option on Workspace and its remote stub, then install the shared compatibility methods while constructing local and remote clients. Type the common filesystem surface so consumers can use it without an unsafe filesystem cast. Clients whose owner leaves useThink disabled remain unchanged. Remote stubs are also disposed if client initialization fails.
commit: |
aron-cf
approved these changes
Jul 30, 2026
aron-cf
left a comment
Contributor
There was a problem hiding this comment.
Amazing, thanks for fixing this.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR carries Think's optional filesystem compatibility methods onto clients returned by
getWorkspace()when the owningWorkspaceenablesuseThink. Local workspaces already received these methods, but local and remote clients dropped that owner-side choice, which forced consumers to duplicate Computer's filesystem translations.useThinkremains a single owner-side opt-in. The workspace exposes its resolved value, the remote stub carries it across RPC, and the shared client factory applies the same compatibility methods to either client path. Clients whose owner leaves the option disabled keep their existing shape.The public
WorkspaceClient.fssurface now usesWorkspaceFilesysteminstead ofany, and its optional Think methods describe the runtime-dependent client shape. A remote stub is disposed if reading its configuration or constructing the client fails.The package README and virtual filesystem guide now document that
useThinkapplies togetWorkspace()clients. The next Computer alpha can be used by the Agents SDK without a second filesystem adapter.