Files
fusion/plugins/fusion-plugin-droid-runtime
gsxdsm 68c4053a85 fix(droid): stop model-discovery process storm; read catalog from droid exec --help
discoverDroidModels ran `droid models`/`droid model list`, which aren't real
droid commands — they parse as a prompt and launch a persistent
`droid exec --stream-jsonrpc` agent session that never exits, leaking a process
per call. The dashboard reloads the droid extension on every chat-send, so these
piled into dozens of orphaned `droid` processes.

Switch discovery to parse `droid exec --help` (lists Available + Custom models,
exits cleanly) via new parseDroidModelsFromHelp, and add a SIGKILL-on-timeout
guard so a wedged spawn can never leak. Verified against the real binary: 46
models, 0 leaked processes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 03:40:56 -07:00
..
2026-06-19 07:34:26 -07:00
2026-06-19 07:34:26 -07:00

Droid Runtime Plugin

First-class Droid runtime/provider plugin (@fusion-plugin-examples/droid-runtime).

Purpose

This package is the canonical home for Droid-specific runtime behavior, including:

  • provider id droid-cli
  • model discovery + normalization
  • CLI subprocess streaming + session resume
  • MCP tool bridge + thinking effort mapping
  • probe contract via probeDroidBinary

Runtime + Provider

  • Runtime ID: droid
  • Display name: Droid Runtime
  • Provider surface preserved: Factory AI — via Droid CLI (droid-cli)

Core implementation files live in src/:

  • runtime-adapter.ts
  • provider.ts
  • process-manager.ts
  • probe.ts
  • prompt/tool/thinking/control helpers

Dashboard UI contribution surfaces

The plugin registers uiSlots for:

  • settings-provider-card
  • settings-integration-card
  • onboarding-provider-card
  • onboarding-setup-help
  • post-onboarding-recommendation

Compatibility with @fusion/droid-cli

packages/droid-cli is now a thin compatibility shim. It keeps the historical pi-extension entrypoint, but delegates runtime/provider behavior to this plugin package.