Skip to content

fix: let users uninstall the Codex plugin from the catalog - #49

Open
camjac251 wants to merge 1 commit into
tolibear:mainfrom
camjac251:fix/codex-marketplace-policy
Open

fix: let users uninstall the Codex plugin from the catalog#49
camjac251 wants to merge 1 commit into
tolibear:mainfrom
camjac251:fix/codex-marketplace-policy

Conversation

@camjac251

Copy link
Copy Markdown

Summary

The Codex marketplace entry declares "installation": "INSTALLED_BY_DEFAULT". Codex reads that as an admin-managed deployment, so the plugin catalog labels GoalBuddy "Installed by admin" and renders a disabled row in place of the uninstall action. A user who installed GoalBuddy themselves cannot remove it from the catalog.

This changes the entry to "AVAILABLE", which is also the enum's default.

Evidence

codex-rs/tui/src/chatwidget/plugin_catalog.rs builds the action row:

if plugin.summary.install_policy == PluginInstallPolicy::InstalledByDefault {
    // ... name: "Installed by admin"
    // ... is_disabled: true
} else if let Some(plugin_id) = plugin_uninstall_id(&plugin.summary) {
    // the uninstall action
}

The same policy also drives the "Admin assigned" and "Enabled by Admin" labels elsewhere in the catalog. It does not trigger auto-install anywhere in core, so the current value buys nothing and costs the uninstall action.

MarketplacePluginInstallPolicy in codex-rs/core-plugins/src/marketplace.rs marks Available as #[default].

"authentication": "ON_INSTALL" is left as is: that is also its enum default.

Test plan

  • npm run check passes (109 internal tests).
  • The existing marketplace-manifest test asserted the old value, so it is updated with a comment recording why AVAILABLE is correct.

The marketplace entry declared INSTALLED_BY_DEFAULT. Codex reads that as an
admin-managed deployment: the plugin catalog labels the plugin "Installed by
admin" and renders a disabled row in place of the uninstall action, so a user
who installed GoalBuddy themselves cannot remove it from the catalog.

GoalBuddy is user-installed, so the entry now declares AVAILABLE, which is also
the enum's default. The authentication policy stays ON_INSTALL, likewise the
default.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant