Skip to content

Releases: hashangit/openfusion

v0.2.1 — Persona system + editable prompts

17 Jun 23:07

Choose a tag to compare

Personas — tailor the worker + judge system prompts to the task — plus a full prompts editor.

Added

  • Personas: named bundles of the three system prompts (worker + analysis + synthesis) specialized for different kinds of work. Ships with four defaults:
    • Generalist — balanced all-rounder (the previous default, sharpened).
    • QA / Code Reviewer — candidates review like senior engineers; judge consolidates a prioritized, severity-tagged verdict.
    • Researcher — candidates argue from the gathered sources; judge reconciles into one well-reasoned answer, flagging unsupported claims.
    • Project Manager / Strategist — candidates weigh trade-offs and risks; judge consolidates a decisive recommendation with a clear rationale.
  • Personas tab — a full editor: pick a persona, edit all three prompts in textareas, set the active one, duplicate, reset a builtin to its shipped default, or create/delete your own.
  • Per-fusion persona override — the fusion tool now accepts an optional persona (id or name, e.g. qa, researcher) so an agent can match the persona to each call. Defaults to the active persona set in the dashboard.
  • GET/POST/PUT/DELETE /api/personas — full persona CRUD.

Changed

  • Config schema v2 → v3 with automatic migration (injects builtins, sets activePersona: "generalist"; a notice prints if a v2 file is upgraded).
  • Default Generalist prompts sharpened without bloat: workers "show reasoning briefly so the judge can weigh it"; synthesis "corrects wrong consensus instead of rubber-stamping it."
  • Each fusion now logs the persona it used (activities.persona, migration 003) — shown in Generations/Errors (null for pre-0.2.1 fusions).

Upgrade

npx -y openfusion-mcp        # restart the server — config auto-migrates to v3

Then open the new Personas tab to pick/edit a persona, and have your agent pass persona: "qa" | "researcher" | "pm" on calls where it fits.

57 tests green. Full changelog: CHANGELOG.md.

npm publish note: the code + tag + this release are live; the npm publish itself requires the maintainer's one-time password and runs separately (npm publish).

v0.2.0 — install & integration overhaul (npm + first-run + status)

17 Jun 21:21

Choose a tag to compare

The install & integration overhaul — OpenFusion is now on npm, with first-run hand-holding, a status surface, and the silent footguns fixed.

Added

  • Published to npmnpx -y openfusion-mcp works with no clone or build. Every client snippet now defaults to it.
  • npx openfusion-setup — interactive installer that picks your MCP client, writes the correct config snippet (claude mcp add, ZCode mcp.servers, Cursor .cursor/mcp.json, Zed context_servers, Codex mcp_servers, Gemini-CLI family, Cline, Claude Desktop…), and offers to install the agent skill. One command end-to-end.
  • First-run UX — on a fresh install the server prints a stderr banner (version, data path, configured status) and opens the dashboard automatically when a display is present. No more "where do I configure?" mystery.
  • GET /api/status — one lightweight call returning { version, home, configured, reasons?, firstRun, dbPath } for the dashboard, agents, and CLI health checks.

Changed / Fixed

  • GET /api/health now also returns version + configured (still ok:true for back-compat).
  • Version is no longer hardcoded — read from package.json via a shared helper; the MCP handshake reports the real version (was stale at 0.1.0).
  • Config upgrades print a notice — a v1→v2 migration on load now logs a one-time stderr message so you know a restart-after-update happened.
  • better-sqlite3 native-addon failures are now actionable — a clear "run npm rebuild better-sqlite3" message with toolchain requirements, instead of an opaque MODULE_NOT_FOUND stack trace.
  • Docs: README leads with npx; documents OPENFUSION_HOME (and that it prints on startup), the native-build requirement + recovery, an Updating section, and the client tool-call-timeout caveat.

Install (the new way)

npx openfusion-setup        # interactive: writes client config + installs skill
# then restart your MCP client — `fusion` + `open_dashboard` are available

Or manually point any MCP client at npx -y openfusion-mcp. 50 tests green. Full changelog: CHANGELOG.md.

npm publish note: the GitHub side (code, tag, this release) is live; the npm publish itself requires a one-time password from the maintainer and runs separately.

v0.1.2 — Generations tab + persisted outputs

17 Jun 17:54

Choose a tag to compare

A new Generations tab to read what each model actually produced for a fusion — plus generated text is now persisted so you can revisit any past run.

Added

  • Generations tab — read the actual outputs of a fusion, side by side:
    • Pick an activity from a dropdown, then choose Candidates or Judge view.
    • Candidates view: generation boxes side by side (2 by default; + Add box extends the row to the right with horizontal scroll). Each box has its own model dropdown (pick which candidate shows), a scrollable rendered view of that model's generation, and per-box stats (tokens/cost/latency/status).
    • Judge view: the structured analysis (consensus · contradictions · partial coverage · unique insights · blind spots) plus the synthesized final answer, each with stats.
    • Generations render with lightweight markdown (headings, bold, inline code, code fences, lists) and a copy button.
  • Generated text is now persisted to SQLite (migration 002_add_generated_text) — every future fusion's outputs are stored so you can re-read them anytime. Historical fusions (pre-0.1.2) show an honest "predates generation logging" note.

Changed

  • Nav reorder: Dashboard · Generations · Candidates · Judge · API Keys · Errors — Generations now sits right after Dashboard; Errors moved to the end.

Upgrade

git pull && pnpm install && pnpm build
node dist/index.js   # the migration runs automatically on first launch

47 tests green. Full changelog: CHANGELOG.md.

v0.1.1 — on/off toggles, benchmark mode, error log, judge latency fix

17 Jun 11:06

Choose a tag to compare

On/off toggles, Benchmark Mode, an Error Log tab, and a judge-latency fix.

Added

  • On/off toggles for candidates and judges — configure as many as you like, enable the ones you want to fuse with. Candidates enforce 2–5 enabled; judges enforce exactly 1 enabled. Disabled slots are skipped entirely (and no longer need API keys).
  • Benchmark Mode (Candidates page, default off) — removes the max-candidate limit and forces a 10-minute candidate timeout, for comparing many models head-to-head in one fusion.
  • Error Log tab — a dedicated troubleshooting view listing failed and partial fusions, each with a one-click copy button that copies the full activity JSON (incl. sub_calls and the error message) to the clipboard for bug reports.

Fixed

  • Judge latency was always 0 in the dashboard — both judge steps (analysis, synthesis) now record and show real wall-clock latency (including retry time) in the per-step breakdown.

Changed

  • Config schema bumped to v2 with automatic v1→v2 migration on load: the single judge object became a judges list; candidates gained an enabled flag; settings gained benchmarkMode. Existing configs upgrade transparently.
  • Only enabled candidates/judges are fanned out; the API Keys page only shows providers used by enabled slots.

Install / upgrade

git clone https://github.com/hashangit/openfusion.git   # or git pull && pnpm install
cd openfusion
pnpm build
node dist/index.js   # your existing config auto-migrates to v2

46 tests green. Full changelog: CHANGELOG.md.

v0.1.0 — OpenFusion

15 Jun 20:53

Choose a tag to compare

The first public release of OpenFusion — a local MCP server that brings OpenRouter's Fusion panel architecture to any MCP-capable client.

Why

OpenRouter showed that fusing the outputs of several models beats any single frontier model — and that a budget panel of cheap models, fused, lands within ~1% of Claude Fable 5 on deep research at roughly half the price. The catch: you had to use OpenRouter. OpenFusion removes that catch — bring your own keys for any provider, run it on your machine, point any MCP client at it.

Highlights

  • fusion MCP tool — fan a prompt out to 2–5 candidates in parallel (single-shot, no tools), then a two-step judge (structured analysis → synthesis) on the same model returns one consolidated answer. ~¾ of the lift comes from synthesis, not model diversity.
  • open_dashboard tool — opens the config/stats UI.
  • Resilient by designPromise.allSettled + per-candidate timeout; proceeds with survivors; errors only when <2 candidates succeed.
  • Encrypted at rest — provider keys in AES-256-GCM secrets.enc (chmod-600 machine-bound key); dashboard binds to 127.0.0.1 only.
  • Observable — every fusion logged to SQLite (1 activity + N+2 sub-calls) and visualized in a glass-morphic dashboard: KPIs, fusions-per-day, cost-by-model, token-usage-by-model, expandable activity log.
  • Works everywhere — install recipes for 18+ clients in INSTALL.md (Claude Code, Cursor, Cline, Zed, Codex, Gemini CLI, Qwen Code, Kimi Code, Continue, Antigravity, opencode, and more). Ships a SKILL.md that teaches agents when (and when not) to fuse.
  • 38 deterministic tests via pi-ai faux providers — no real API calls in the suite.

Install

git clone https://github.com/hashangit/openfusion.git
cd openfusion
pnpm install && pnpm build
node dist/index.js   # then open http://localhost:9077 to configure

See the README and INSTALL.md.

Tech

TypeScript (ESM, ES2022) · @earendil-works/pi-ai · @modelcontextprotocol/sdk v1 · better-sqlite3 · Express 5 · React + Vite + Tailwind + recharts · Vitest.

Full changelog: CHANGELOG.md