Skip to content

feat(plugins): add plugin settings modal and registration contract - #287

Open
JamesDAdams wants to merge 1 commit into
co-l:developfrom
JamesDAdams:feat/add-plugins-settings-modal
Open

feat(plugins): add plugin settings modal and registration contract#287
JamesDAdams wants to merge 1 commit into
co-l:developfrom
JamesDAdams:feat/add-plugins-settings-modal

Conversation

@JamesDAdams

Copy link
Copy Markdown
Contributor

Summary

Adds plugin settings modal and registration capability to OpenFox. Plugins can now register custom configuration options (via dynamic form fields or a hosted custom UI iframe) using registry.registerSettings() or by specifying "hasSettings": true in package.json under openfox.

  • Backend (src/server/routes/plugins.ts, src/server/providers/plugins/):
    • Extended ProviderPluginRegistry and ProviderRegistry with registerSettings and registerSettingsForPlugin.
    • Added GET /api/plugins/:name/settings and POST /api/plugins/:name/settings endpoints for reading and saving plugin configuration.
    • Implemented password field sanitization (secrets are never echoed in GET responses and are merged server-side when updated).
    • Server-side required-field validation.
  • Frontend (web/src/components/settings/):
    • Created PluginSettingsModal supporting dynamic input types (text, password, number, boolean, select, textarea) and custom UI URL embeds.
    • Added a conditional Settings button to installed plugin cards in PluginsTab (only displayed when settings are available).
    • Client-side required-field validation before submitting.
  • Documentation:
    • Updated README.md with examples for registering plugin settings and declaring openfox.hasSettings.
image image

AI-Enhanced Development

Tell what models helped shape this PR:

  • AI Models: Gemini 3.6 Flash / hy3

Cache Impact

Does this PR affect anything cached — system prompts, tool definitions, skills, or other context?

  • No

@JamesDAdams
JamesDAdams force-pushed the feat/add-plugins-settings-modal branch from c4d7222 to 6e319b4 Compare September 4, 2026 12:25
@JamesDAdams

Copy link
Copy Markdown
Contributor Author

@co-l I make the change for i18n translate

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