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
Chat resource tabs are keyed by workspaceId when it's present, and workspace chats leave it out (message tab attachments, the sandbox transport, the client). Three server writers stamped it unconditionally, so the same workflow/file/table got stored and rendered as two tabs
Agent CLI effects now stamp the workspace only in organization chats, matching sandbox-resource-transport
open_resource no longer emits workspaceId; the tool executor already stamps the target workspace for organization chats
handleResourceSideEffects takes the chat owner and stamps the workspace only in organization chats
Existing duplicated rows are left as-is
Type of Change
Bug fix
Testing
resource-owner.test.ts now asserts a workspace-chat agent effect and open_resource produce the same key as an open tab; it fails on the pre-fix code
bun run --cwd apps/sim test on lib/mothership/agent-cli, tools/server/open-resource, tools/registry, request/tools (562 passed); wider lib/mothership + copilot/mothership routes + home stream hooks (3,280 passed)
bun run type-check, bun run lint, check:audits (54 audits), docs-manifest:check
resources.test.ts covers both owners of handleResourceSideEffects; the workspace-chat case fails with the guard reverted
Checklist
Code follows project style guidelines
Self-reviewed my changes
Tests added/updated and passing (new tests pass the test-audit authoring gate)
[Medium risk] Removes workspace ID from resource tab metadata.
The PR appears safe to merge; no outstanding finding or new blocking issue was identified.
Summary
The PR makes workspace-chat resources use an implicit workspace key while retaining explicit workspace addressing for organization chats. The latest revision replaces mock-call assertions in the resource-scope test with assertions on emitted events.
Agent CLI effects, open_resource, and tool side effects now follow the chat-owner distinction.
No new actionable issue was identified in the changes since the previous review.
Diagram
%%{init: {'theme': 'neutral'}}%%
flowchart LR
Tool[Resource-producing tool] --> Owner{Chat owner}
Owner -->|Organization| Scoped[Resource with target workspaceId]
Owner -->|Workspace| Implicit[Resource without workspaceId]
Scoped --> Effects[Persist and emit resource]
Implicit --> Effects
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
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.
Summary
workspaceIdwhen it's present, and workspace chats leave it out (message tab attachments, the sandbox transport, the client). Three server writers stamped it unconditionally, so the same workflow/file/table got stored and rendered as two tabssandbox-resource-transportopen_resourceno longer emitsworkspaceId; the tool executor already stamps the target workspace for organization chatshandleResourceSideEffectstakes the chat owner and stamps the workspace only in organization chatsType of Change
Testing
resource-owner.test.tsnow asserts a workspace-chat agent effect andopen_resourceproduce the same key as an open tab; it fails on the pre-fix codebun run --cwd apps/sim teston lib/mothership/agent-cli, tools/server/open-resource, tools/registry, request/tools (562 passed); wider lib/mothership + copilot/mothership routes + home stream hooks (3,280 passed)bun run type-check,bun run lint,check:audits(54 audits),docs-manifest:checkresources.test.tscovers both owners ofhandleResourceSideEffects; the workspace-chat case fails with the guard revertedChecklist
test-auditauthoring gate)