Skip to content

feat(plugins): enhance plugin system with transforms, updates, icons and dynamic controls - #377

Merged
co-l merged 15 commits into
co-l:developfrom
JamesDAdams:feat/update-plugins-system
Sep 28, 2026
Merged

co-l merged 15 commits into
co-l:developfrom
JamesDAdams:feat/update-plugins-system

Conversation

@JamesDAdams

Copy link
Copy Markdown
Collaborator

Summary

This PR enhances OpenFox's plugin system with several generic extension capabilities, UI improvements, and updates to the official plugin registry:

  1. Message Transforms Pipeline & Loopback Proxy:

    • Added support for message transforms (registerMessageTransform) allowing plugins (such as context compressors and prompt processors) to intercept and optimize LLM payloads in a fail-open pipeline (with timeouts and resilient fallbacks).
    • Added secure loopback proxying (/api/plugins/:id/proxy) strictly scoped to localhost / 127.0.0.1 for local plugin web dashboards and services.
  2. Generic Plugin UI & Settings Enhancements:

    • status fields & buttonVariant in PluginSettingsForm: Added support for live dynamic status indicators (type: 'status') backed by RPC checks, tone indicators, and automatic status refreshes upon executing button actions (primary, secondary, danger).
    • stats.modal.summary Plugin Zone: Added an extensible plugin zone <PluginZone id="stats.modal.summary" /> in the Session Stats summary section along with support for session-scoped reactive published values (${pluginId}:${compId}:${sessionId}:${key}).
    • Registry & Installed Plugin Icons: Supported both image URLs and inline SVG strings across installed and curated registry plugin cards via PluginLogo.
  3. Background Plugin Updates & Management:

    • Integrated periodic background update checking for installed plugins with configurable intervals (1h, 6h, 24h, startup).
    • Added author attribution, reinstall actions, and direct folder access in the Plugins settings tab.
  4. Updated plugins-registry.json:

    • Added icons (both SVG and URL images) across all curated plugins and added the Headroom compression plugin entry.

AI-Enhanced Development

Tell what models helped shape this PR:

  • AI Models: Gemini 3.7 Flash, Claude 3.7 Sonnet

Cache Impact

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

  • Yes — Message transforms can mutate prompt and context message structures before dispatch when an enabled plugin registers a transform. Without active transforms, messages pass through unmodified.

@github-actions github-actions Bot added the enhancement New feature or request label Sep 24, 2026
@JamesDAdams
JamesDAdams requested a review from co-l September 24, 2026 20:34
…UI fixes

- add the plugin.menu slot so a plugin can turn its own plugins-menu row into
  an action: label replaces the display name and activating the row runs onActivate
- add the openSettings activation kind to open the settings modal on a core or
  plugin tab
- render empty declarative stacks as nothing
- highlight a dropdown row only after keyboard navigation
- keep the original plugin owner when a UI contribution is re-registered at
  runtime, so header buttons keep opening their panels
Both plugins are published under github.com/JamesDAdams and installable by URL.
…system

# Conflicts:
#	src/server/tools/shell.ts
@co-l
co-l merged commit c6e8686 into co-l:develop Sep 28, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants