Skip to content

fix(web): register all bundled plugins in the web server#1553

Open
ChiragArora31 wants to merge 3 commits into
AgentWrapper:mainfrom
ChiragArora31:fix/1228-web-builtin-plugin-parity
Open

fix(web): register all bundled plugins in the web server#1553
ChiragArora31 wants to merge 3 commits into
AgentWrapper:mainfrom
ChiragArora31:fix/1228-web-builtin-plugin-parity

Conversation

@ChiragArora31

Copy link
Copy Markdown
Contributor

Resolves #1228.

Summary

  • Adds the missing built-in plugin workspace dependencies to the web package.
  • Registers bundled runtime, agent, workspace, SCM, tracker, terminal, and notifier plugins through static imports.
  • Adds a service test that asserts the web server registers the plugins it must bundle statically.

Root cause

The web server only registered a subset of built-in plugins, so configs using other bundled plugins could work in CLI contexts but fail in the dashboard.

Approach

Mirror the bundled plugin set with explicit imports because the web build cannot rely on core dynamic plugin discovery.

Verification

  • pnpm --filter @aoagents/ao-web test -- services.test.ts
  • pnpm --filter @aoagents/ao-web... build
  • pnpm --filter @aoagents/ao-web test was also run; it still has existing unrelated failures in serialize.test.ts, page.test.tsx, api-routes.test.ts, and the tmux integration test when tmux is unavailable.

@greptile-apps

greptile-apps Bot commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR fixes the web server's incomplete plugin registry by adding the 12 previously missing built-in plugins (aider, workspace-clone, scm/tracker/terminal gitlab variants, and all six notifiers) as static imports in services.ts and wiring up their package.json workspace dependencies.

  • packages/web/src/lib/services.ts: 12 new import statements and corresponding registry.register() calls, mirroring the static-import pattern already used for the existing plugins.
  • packages/web/package.json / pnpm-lock.yaml: workspace dependency entries added for each newly imported plugin, keeping the lockfile in sync.
  • packages/web/src/__tests__/services.test.ts: new vi.mock stubs for all added (and two previously unmocked) plugins, plus a consolidated test case asserting every newly bundled plugin is registered.

Confidence Score: 5/5

Safe to merge — the change is purely additive, following the established static-import pattern with no modifications to existing logic.

All changes are additive: new static imports, new registry.register() calls, and new workspace dependencies. No existing code paths are altered, and the new test case directly verifies every newly registered plugin.

No files require special attention.

Important Files Changed

Filename Overview
packages/web/src/lib/services.ts Adds static imports and registry.register() calls for 12 previously-missing built-in plugins (aider, workspace-clone, scm-gitlab, terminal-iterm2, terminal-web, tracker-gitlab, and 6 notifiers); mirrors the existing pattern correctly.
packages/web/src/tests/services.test.ts Adds vi.mock stubs for all newly added plugins plus the previously unmocked process/cursor plugins, and adds a new test case asserting all 13 newly-registered plugins are passed to registry.register(); @aoagents/ao-plugin-agent-kimicode is still not stubbed (pre-existing gap).
packages/web/package.json Adds workspace:* dependencies for the 12 newly imported plugins; consistent with the existing dependency declarations and lockfile updates.
pnpm-lock.yaml Lockfile updated in lock-step with package.json additions; also upgrades node-abi from 3.89.0 to 3.92.0.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Next.js Web Server starts] --> B[getServices called]
    B --> C{_aoServices cached?}
    C -- yes --> D[Return cached Services]
    C -- no --> E[initServices]
    E --> F[loadDashboardConfig]
    E --> G[createPluginRegistry]
    G --> H[Register runtime plugins\ntmux · process]
    H --> I[Register agent plugins\naider · claude-code · codex · cursor · kimicode · opencode]
    I --> J[Register workspace plugins\nworktree · clone]
    J --> K[Register SCM plugins\ngithub · gitlab]
    K --> L[Register terminal plugins\niterm2 · web]
    L --> M[Register tracker plugins\ngithub · gitlab · linear]
    M --> N[Register notifier plugins\ncomposio · desktop · discord · openclaw · slack · webhook]
    N --> O[createSessionManager]
    O --> P[createLifecycleManager]
    P --> Q[Cache & return Services]
Loading

Reviews (2): Last reviewed commit: "Merge remote-tracking branch 'upstream/m..." | Re-trigger Greptile

@ChiragArora31 ChiragArora31 changed the title Register all bundled plugins in the web server fix(web): register all bundled plugins in the web server Apr 29, 2026
…n-plugin-parity

Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	packages/web/package.json
#	packages/web/src/lib/services.ts
#	pnpm-lock.yaml
…-1553

# Conflicts:
#	packages/web/src/__tests__/services.test.ts
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.

bug(web): Dashboard missing 10 built-in plugins, only 8 of 18 registered in services.ts

1 participant