fix(web): register all bundled plugins in the web server#1553
fix(web): register all bundled plugins in the web server#1553ChiragArora31 wants to merge 3 commits into
Conversation
Greptile SummaryThis 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
Confidence Score: 5/5Safe 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.
|
| 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]
Reviews (2): Last reviewed commit: "Merge remote-tracking branch 'upstream/m..." | Re-trigger Greptile
…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
Resolves #1228.
Summary
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.tspnpm --filter @aoagents/ao-web... buildpnpm --filter @aoagents/ao-web testwas also run; it still has existing unrelated failures inserialize.test.ts,page.test.tsx,api-routes.test.ts, and the tmux integration test whentmuxis unavailable.