Skip to content

TUI config cleanup: plugin marketplace#24257

Merged
etraut-openai merged 15 commits into
mainfrom
etraut/tui-remote-config-refresh
May 27, 2026
Merged

TUI config cleanup: plugin marketplace#24257
etraut-openai merged 15 commits into
mainfrom
etraut/tui-remote-config-refresh

Conversation

@etraut-openai
Copy link
Copy Markdown
Collaborator

@etraut-openai etraut-openai commented May 23, 2026

Why

Plugin and marketplace mutations are applied by the app server, but several TUI follow-up paths still refreshed state from the TUI host config. In remote workspace mode, that can leave plugin UI state tied to stale client-local config.toml after the server has already applied the mutation.

What

  • Stop reloading the TUI host config after app-server-owned plugin, marketplace, skill, and app mutations.
  • Use the same app-server-owned refresh path for local and remote sessions: ask the app server to reload user config where the running session needs it, then refetch plugin list/detail state from the app server.
  • Build plugin mention candidates from existing app-server plugin/list and plugin/read data in both local and remote sessions instead of TUI-host plugin config.
  • Avoid the duplicate local config reload after ReloadUserConfig asks the app server to reload config.

Verification

Manually launched a local WebSocket app-server with a temp server CODEX_HOME, launched the TUI with a separate temp host CODEX_HOME and --remote, installed a sample plugin from a temp local marketplace through /plugins, and confirmed the TUI refreshed to installed state while only the server config gained [plugins."sample@debug"]. Trace logs showed the TUI using app-server plugin/list and plugin/read for the refresh path.

Copy link
Copy Markdown
Contributor

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9dc4888f9c

ℹ️ 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".

Comment thread codex-rs/tui/src/app/app_server_events.rs Outdated
Comment thread codex-rs/tui/src/app/config_persistence.rs Outdated
Copy link
Copy Markdown
Contributor

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a0731909f6

ℹ️ 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".

Comment thread codex-rs/tui/src/app/config_persistence.rs Outdated
Comment thread codex-rs/tui/src/app/config_persistence.rs Outdated
Comment thread codex-rs/tui/src/app/config_persistence.rs Outdated
@etraut-openai etraut-openai changed the title tui: refresh plugin config from app server tui: avoid local plugin config refreshes May 23, 2026
Copy link
Copy Markdown
Contributor

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bce7464192

ℹ️ 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".

Comment thread codex-rs/tui/src/app/plugin_mentions.rs Outdated
Comment thread codex-rs/tui/src/app/event_dispatch.rs
Comment thread codex-rs/tui/src/app/event_dispatch.rs
@etraut-openai etraut-openai changed the title tui: avoid local plugin config refreshes tui: skip local plugin config refreshes remotely May 23, 2026
Copy link
Copy Markdown
Contributor

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 66294a20db

ℹ️ 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".

Comment thread codex-rs/tui/src/app/event_dispatch.rs Outdated
Comment thread codex-rs/tui/src/app/background_requests.rs Outdated
@etraut-openai etraut-openai changed the title tui: skip local plugin config refreshes remotely tui: avoid remote-local plugin config reads May 23, 2026
Copy link
Copy Markdown
Contributor

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2bef73cc37

ℹ️ 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".

Comment thread codex-rs/tui/src/app/plugin_mentions.rs Outdated
Comment thread codex-rs/tui/src/chatwidget/plugins.rs Outdated
Copy link
Copy Markdown
Contributor

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2ea97fff98

ℹ️ 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".

Comment thread codex-rs/tui/src/app/event_dispatch.rs Outdated
Comment thread codex-rs/tui/src/app/event_dispatch.rs Outdated
@canvrno-oai
Copy link
Copy Markdown
Contributor

Codex raised this concern, and was able to demonstrate the issue with a compiled TUI binary and a remote plugin that met the required criteria (MCP only, no skills or apps):

[codex]
I think there is a regression for installed remote plugins that are MCP-only.

The new mention refresh path builds candidates from plugin/list + plugin/read, then drops any plugin whose detail has no enabled skills, apps, or MCP servers (tui/src/app/plugin_mentions.rs, plugin_capability_summary_from_detail). For remote marketplace plugins, remote_plugin_detail_to_info in app-server/src/request_processors/plugins.rs currently returns mcp_servers: Vec::new(), so an installed/enabled remote plugin whose only capability is an MCP server is treated as capability-less and omitted from @ plugin mentions.

This appears to regress the previous path, which used the installed bundle/local capability summaries and could see MCP servers for that plugin. A repro shape is: install/enable a remote marketplace plugin with only an MCP server, then refresh/open plugin mentions in remote mode; it disappears on this branch because plugin/read reports no MCP servers.

Possible fixes: populate remote plugin/read with MCP capability data from the installed/materialized bundle, or merge installed-bundle capability data into the mention path before applying the empty-capability filter. A regression test for an MCP-only remote plugin would be useful here.

@etraut-openai
Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown
Contributor

Codex Review: Didn't find any major issues. Can't wait for the next one!

ℹ️ 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".

Copy link
Copy Markdown
Contributor

@fcoury-oai fcoury-oai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Smoke tested with a local plugin, worked as expected.

Approved 👍

@etraut-openai etraut-openai merged commit f20904c into main May 27, 2026
31 checks passed
@etraut-openai etraut-openai deleted the etraut/tui-remote-config-refresh branch May 27, 2026 14:22
@github-actions github-actions Bot locked and limited conversation to collaborators May 27, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants