Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ed89238480
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const user = useAtomValue(userAtom); | ||
| const runtime = useAtomValue(activeWorkspaceRuntimeAtom); | ||
| const requestWorkspaceMcpConnection = runtime?.requestWorkspaceMcpConnection; | ||
| const selectedMachineId = useAtomValue(settingsSelectedMachineIdAtom); |
There was a problem hiding this comment.
Default connector actions to the local machine
When users open the MCP tab normally, settingsSelectedMachineIdAtom is null: desktop tab navigation explicitly resets it in desktop-settings-modal.tsx, while the mobile MCP route mounts McpSetting directly, and this surface provides no machine selector or local-machine fallback. Consequently status polling is skipped and every OAuth/secret/test action reaches the localMachineRequired path, so built-in connectors cannot be authorized unless the atom happens to retain a machine from another settings flow. Default this to the current local machine or expose an explicit target selector.
AGENTS.md reference: packages/shared/AGENTS.md:L27-L30
Useful? React with 👍 / 👎.
| const response = await sender({ | ||
| machineId, | ||
| workspaceId, | ||
| method: 'workspace-mcp/connection', |
There was a problem hiding this comment.
Negotiate support before sending the new Machine RPC
In a mixed-version installation where the renderer has this change but the local daemon has not yet been updated or restarted, canUseLocalMachineRpc proves only that the routing plane is local, after which this newly introduced method is sent unconditionally. No corresponding key/version was added to machine-protocol-capabilities.ts, so the older daemon rejects the request and all connector management fails rather than being reported as unsupported. Add and advertise a capability binding and check it before dispatching this RPC.
AGENTS.md reference: packages/shared/AGENTS.md:L9-L15
Useful? React with 👍 / 👎.
Risk: high | Confidence: high
Related issue
Internal same-repository change; no intake issue required.
Problem / pressure
Workspace MCP supports shared configuration, but users must manually discover provider endpoints and authentication details. Personal OAuth tokens and secret-bearing MCP URLs cannot safely live in the shared Workspace catalog.
Summary
Adds reviewed connector cards for Linear, Notion, Cloudflare, PostHog, and Feishu. Linear, Notion, Cloudflare, and PostHog use browser OAuth with discovery, PKCE, refresh, pinned provider boundaries, and bounded network behavior. Feishu uses guided personal-URL setup. Credentials are AES-GCM encrypted on the execution Machine and never enter Flock or Convex. Session startup resolves an authorized built-in preset into temporary ACP MCP headers. Canva and Slack remain excluded from this version.
Visual explanation
The trust boundary is intentional: shared catalog data identifies capability and policy, while personal authorization remains on the Machine that executes the Agent.
Before / after
auth_required.Test plan
pnpm formatpnpm checkon the final rebased head: typecheck, lint with 0 errors, all repository tests, i18n, import guards, platform boundaries, and public boundary passed.pnpm run docs checkContext handoff
Instructions for reviewing agents
workspace-mcp-auth-service.ts,workspace-mcp-credential-store.ts, and session resolution for OAuth redirect, token leakage, and deletion-winning race behavior.Authoring context