Repository navigation
Conversation
Buzz turned off Codex's Apps and plugins features on every Codex thread, so connectors such as Gmail or Google Drive were never available to Buzz agents, even with apps = true in config.toml. A thread's config outranks config.toml. Add a per-agent, device-local "Apps and plugins" setting, off by default. When it is on and the agent is not protected, Buzz leaves both features to Codex's own configuration. Protected agents and security reviews keep them off, and inherited MCP servers and web search stay disabled. Co-authored-by: studio <dc2fc481343672df31a689840c09299972e704dac592e0da6f18486646a7ee3e@buzz.block.builderlab.xyz> Signed-off-by: Tom Brow <tomb@squareup.com>
|
@codex review |
Codex Review Summary: ✅ CompletedThis 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. |
|
Codex Review: Didn't find any major issues. Chef's kiss. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
A remote target runs its own Codex sign-in, and the setting is hidden while bound, so this computer's choice must not carry over. Co-authored-by: studio <dc2fc481343672df31a689840c09299972e704dac592e0da6f18486646a7ee3e@buzz.block.builderlab.xyz> Signed-off-by: Tom Brow <tomb@squareup.com>
Retitles the setting, links its description to the apps and plugins docs, and lets SwitchPreferenceRow take a rich description. Co-authored-by: studio <dc2fc481343672df31a689840c09299972e704dac592e0da6f18486646a7ee3e@buzz.block.builderlab.xyz> Signed-off-by: Tom Brow <tomb@squareup.com>
Co-authored-by: studio <dc2fc481343672df31a689840c09299972e704dac592e0da6f18486646a7ee3e@buzz.block.builderlab.xyz> Signed-off-by: Tom Brow <tomb@squareup.com>
kazemek21
left a comment
There was a problem hiding this comment.
Kyle reviewed the PR and the Nexus review-tracker notes. Approved with the non-blocking comment below.
Posted by Codex (gpt-6.1-sol) on behalf of kylez.
| mcp_servers: { ...mcp, ...bridge?.config }, | ||
| "features.plugins": false, | ||
| "features.apps": false, | ||
| ...(settings.apps && !agent.protection |
There was a problem hiding this comment.
[P2] Keep Apps and plugins disabled in the title helper
With this setting enabled, these params also reach offerTitle(). Its separate ephemeral thread spreads the config and disables MCP servers, but now loses the Apps/plugins-off overrides, so the automatic naming helper inherits connected-tool access too. Please explicitly force both features off in the title thread, independently of the conversation setting.
Posted by Codex (gpt-6.1-sol) on behalf of kylez.
There was a problem hiding this comment.
🤖 Fixed in 5a0881f: the title thread now sets features.apps and features.plugins to false whatever the conversation allows, and the Solo chat title test covers it with the setting on.
The Solo chat title thread reuses the conversation's config, so an agent that allows Codex apps and plugins would pass them on to it. Co-authored-by: studio <dc2fc481343672df31a689840c09299972e704dac592e0da6f18486646a7ee3e@buzz.block.builderlab.xyz> Signed-off-by: Tom Brow <tomb@squareup.com>
Codex agents in Buzz never see Codex Apps (ChatGPT connectors such as Gmail, Google Drive or Google Calendar) or Codex plugins. Buzz sends
features.apps: falseandfeatures.plugins: falsein the thread config of everythread/startandthread/resume, and a thread's config outranksconfig.toml. So settingapps = truein Codex's config has no effect, while the Codex CLI on the same home does get them. Codex's own logs for those sessions showfeature.apps=falseandfeature.plugins=false.This adds a per-agent Codex apps and plugins toggle in the Codex agent's Settings tab, off by default, described as "The agent may use apps and plugins that are installed in Codex." When it's on and the agent isn't protected, Buzz stops forcing the two features off, so Codex's own configuration decides (Codex enables Apps by default). The agent then gets the Apps connected to Codex's ChatGPT sign-in on that computer. The setting is device-local, like Workspace, because which Apps exist depends on that computer's Codex sign-in.
Unchanged: inherited MCP servers and web search stay disabled, protected agents keep both features off whatever the setting says (and the toggle is disabled for them), and security reviews keep their own config. A remote execution target doesn't show the setting and never gets Apps or plugins, since it runs its own Codex sign-in.
Screenshots
These are the real Codex Settings tab mounted in a local fixture with a fake Codex process, not the full desktop app.
Validation
CodexRuntime, bundled and driven with a simulated relay likelive.mjs, against Codex 0.169.0 and a real ChatGPT sign-in in a disposable Codex home that linksauth.jsonandconfig.tomlascodex.shdoes). The same read-only prompt asking for today's Google Calendar events:codex_apps→google_calendar.search_events(completed) and replied with the count.app/listfor that thread) and has nocodex_appsserver, while one started without them getscodex_appswith its tools. A thread started with the overrides, then resumed without them, getscodex_apps, so turning the setting on also applies to saved conversations on their next turn.runtime.test.tscovers the setting on for an unprotected agent (no feature overrides, MCP and web search still off) and on for a protected agent (still off).tabs.test.tsxcovers saving it on and off, its doc links, the disabled state for a protected agent, and that a remote execution target never resolves it.vitest run src/bundled/codex src/features/agents src/bundled/goose: 2,436 passed, 14 skipped.tsc --noEmitand Biome pass.codex_appsserver as Calendar.Regressions
syncedSettingsSchema).