[codex] Enable remote plugins by default (#30297)

## Summary

- enable the remote plugin feature by default
- promote the remote plugin feature from under development to stable
- preserve the existing `features.remote_plugin` override for explicitly
disabling it
- keep legacy disabled-path coverage explicit in TUI and app-server
tests

## Impact

Remote plugin functionality is enabled by default for configurations
that do not set the feature flag. The existing Codex backend
authentication gate still applies.

## Validation

- `just fmt`
- `just test -p codex-features`
- `just test -p codex-tui
plugins_popup_remote_section_fallback_states_snapshot`
- targeted `codex-app-server` plugin-list and skills-list tests
- `git diff --check`

The full TUI and app-server suites were also exercised locally. All
remote-plugin-related coverage passed; unrelated local
sandbox/test-binary failures remain outside this change.
This commit is contained in:
xl-openai
2026-06-28 11:46:25 -07:00
committed by GitHub
parent bdd282f3bb
commit e428a12d22
15 changed files with 62 additions and 69 deletions
@@ -1200,9 +1200,10 @@ async fn plugins_popup_admin_disabled_available_plugin_has_view_only_hint() {
}
#[tokio::test]
async fn plugins_popup_remote_section_fallback_states_snapshot() {
async fn plugins_popup_remote_section_fallback_states_when_remote_plugin_disabled_snapshot() {
let (mut chat, _rx, _op_rx) = make_chatwidget_manual(/*model_override*/ None).await;
chat.set_feature_enabled(Feature::Plugins, /*enabled*/ true);
chat.set_feature_enabled(Feature::RemotePlugin, /*enabled*/ false);
let select_tab_containing = |chat: &mut ChatWidget, visible_text: &str| -> String {
for _ in 0..8 {
@@ -1266,7 +1267,6 @@ async fn plugins_popup_remote_section_fallback_states_snapshot() {
let (mut remote_chat, _rx, _op_rx) = make_chatwidget_manual(/*model_override*/ None).await;
remote_chat.set_feature_enabled(Feature::Plugins, /*enabled*/ true);
remote_chat.set_feature_enabled(Feature::RemotePlugin, /*enabled*/ true);
remote_chat.add_plugins_output();
let remote_cwd = remote_chat.config.cwd.clone();
remote_chat.on_plugins_loaded(