gsxdsm
|
5e5b0dbb8f
|
FN-9098: bridge scoped Fusion tools into Cursor
Publish engine-owned Fusion tools to Cursor through a crash-safe, worktree-scoped MCP bridge.
- preserve operator MCP configuration with locking, journaling, quarantine, and lease reconciliation
- enforce identity-scoped fn_* provenance so injected custom and MCP tools are never exposed
- secure loopback dispatch with per-session tokens, heartbeats, cleanup, and normalized tool events
- document the Cursor contract and cover bridge lifecycle, config hygiene, and failure handling
Files changed:
.changeset/fn-9098-cursor-mcp-bridge.md | 7 +
docs/cursor-cli-contract.md | 140 ++-------------
docs/mcp.md | 4 +
.../src/__tests__/agent-session-helpers.test.ts | 24 +++
.../src/__tests__/step-session-executor.test.ts | 16 ++
.../src/__tests__/web-fetch-universal.test.ts | 4 +-
packages/engine/src/agent-heartbeat.ts | 3 +-
packages/engine/src/agents/agent-runtime.ts | 9 +
.../engine/src/agents/agent-session-helpers.ts | 26 +--
packages/engine/src/execution/reviewer.ts | 1 +
.../engine/src/execution/step-session-executor.ts | 31 ++--
.../engine/src/executor/execute-workflow-step.ts | 4 +-
packages/engine/src/merger.ts | 4 +-
plugins/fusion-plugin-cursor-runtime/README.md | 18 +-
plugins/fusion-plugin-cursor-runtime/package.json | 2 +-
.../src/__tests__/cursor-mcp-config.test.ts | 100 +++++++++++
.../cursor-mcp-server-failure.stream.jsonl | 3 +
.../fixtures/cursor-mcp-tool-call.stream.jsonl | 4 +
.../src/__tests__/runtime-adapter.test.ts | 57 +++++-
.../src/__tests__/worktree-hygiene.test.ts | 52 ++++++
.../src/cursor-mcp-config.ts | 196 +++++++++++++++++++++
.../src/mcp-schema-server.cjs | 155 ++++++++++++++++
.../src/prompt-transport.ts | 4 +-
.../src/runtime-adapter.ts | 67 +++++--
.../src/tool-bridge.ts | 48 +++++
.../src/tool-mapping.ts | 11 ++
plugins/fusion-plugin-cursor-runtime/src/types.ts | 6 +-
.../src/worktree-hygiene.ts | 117 ++++++++++++
28 files changed, 934 insertions(+), 179 deletions(-)
Fusion-Task-Id: FN-9098
Fusion-Task-Lineage: 11b6cb10-ce0e-4f33-9007-c83f2bbf82ea
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
|
2026-08-15 16:51:54 -07:00 |
|
gsxdsm
|
b6efd89ae5
|
FN-9097: add Cursor CLI execution runtime
Add a supervised Cursor CLI runtime for routed Cursor model sessions.
- Stream Cursor prompt output into Fusion session callbacks with resume support.
- Support Windows Cursor shims, inactivity-based supervision, and cursor-agent to cursor fallback execution.
- Route Cursor CLI models through the bundled plugin and document the runtime contract.
Files changed:
.changeset/fn-9097-cursor-cli-runtime.md | 7 ++
docs/cursor-cli-contract.md | 21 ++++
docs/settings-reference.md | 4 +-
.../cli-runtime-routing-conformance.test.ts | 11 +-
.../engine/src/agents/agent-session-helpers.ts | 6 +-
packages/engine/src/agents/cli-provider-routing.ts | 27 ++---
plugins/fusion-plugin-cursor-runtime/README.md | 21 ++++
plugins/fusion-plugin-cursor-runtime/package.json | 1 +
.../src/__tests__/cli-spawn.test.ts | 25 ++++-
.../src/__tests__/prompt-transport.test.ts | 58 ++++++++++
.../src/__tests__/runtime-adapter.test.ts | 44 +++++---
.../src/__tests__/stream-parser.test.ts | 12 +++
.../fusion-plugin-cursor-runtime/src/cli-spawn.ts | 57 +++++++++-
plugins/fusion-plugin-cursor-runtime/src/index.ts | 4 +-
.../src/prompt-transport.ts | 120 +++++++++++++++++++++
.../src/runtime-adapter.ts | 59 ++++++----
.../src/stream-parser.ts | 43 ++++++++
plugins/fusion-plugin-cursor-runtime/src/types.ts | 18 ++--
pnpm-lock.yaml | 3 +
19 files changed, 458 insertions(+), 83 deletions(-)
Fusion-Task-Id: FN-9097
Fusion-Task-Lineage: a4eed861-6059-4528-9f80-3426f5ccad58
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
|
2026-08-15 08:51:35 -07:00 |
|
gsxdsm
|
8b00bab0b0
|
chore(release): v0.76.0
Version bump via changesets.
|
2026-08-13 01:41:54 -07:00 |
|
gsxdsm
|
a1ea7fe562
|
chore(release): v0.76.0-beta.3
Version bump via changesets.
|
2026-08-13 01:34:18 -07:00 |
|
gsxdsm
|
c7451ec6b2
|
chore(release): v0.76.0-beta.2
Version bump via changesets.
|
2026-08-12 17:37:09 -07:00 |
|
gsxdsm
|
36691e54d2
|
chore(release): v0.76.0-beta.1
Version bump via changesets.
|
2026-08-12 00:17:27 -07:00 |
|
gsxdsm
|
03f84d406c
|
chore(release): v0.76.0-beta.0
Version bump via changesets.
|
2026-08-08 14:25:19 -07:00 |
|
gsxdsm
|
64413f4e8d
|
chore(release): v0.75.1
Version bump via changesets.
|
2026-08-06 00:18:07 -07:00 |
|
gsxdsm
|
cb500eeb4c
|
chore(release): v0.75.1-beta.2
Version bump via changesets.
|
2026-08-05 18:19:27 -07:00 |
|
gsxdsm
|
68e964383f
|
chore(release): v0.75.1-beta.1
Version bump via changesets.
|
2026-08-05 00:12:09 -07:00 |
|
gsxdsm
|
6a5e1b0145
|
chore(release): v0.75.1-beta.0
Version bump via changesets.
|
2026-08-04 20:38:29 -07:00 |
|
gsxdsm
|
5dbfef7b64
|
chore(release): v0.75.0
Version bump via changesets.
|
2026-08-04 16:41:28 -07:00 |
|
gsxdsm
|
b1d5e0fec3
|
chore(release): v0.75.0-beta.2
Version bump via changesets.
|
2026-08-04 11:58:02 -07:00 |
|
gsxdsm
|
993a2f9d86
|
chore(release): v0.75.0-beta.1
Version bump via changesets.
|
2026-08-04 01:59:50 -07:00 |
|
gsxdsm
|
77c698a249
|
chore(release): v0.75.0-beta.0
Version bump via changesets.
|
2026-08-03 13:04:46 -07:00 |
|
gsxdsm
|
a3bb584bff
|
chore(release): v0.74.0
Version bump via changesets.
|
2026-08-02 20:31:14 -07:00 |
|
gsxdsm
|
bc34b724ac
|
chore(release): v0.74.0-beta.9
Version bump via changesets.
|
2026-08-02 20:00:46 -07:00 |
|
gsxdsm
|
0ae6c396d0
|
chore(release): v0.74.0-beta.8
Version bump via changesets.
|
2026-08-02 18:32:41 -07:00 |
|
gsxdsm
|
546a19aef6
|
chore(release): v0.74.0-beta.7
Version bump via changesets.
|
2026-08-01 20:22:07 -07:00 |
|
gsxdsm
|
1e83dcceec
|
chore(release): v0.74.0-beta.6
Version bump via changesets.
|
2026-08-01 00:55:04 -07:00 |
|
dependabot[bot]
|
af3d78d2cd
|
chore(deps-dev): bump vitest from 4.1.8 to 4.1.10 (#2446)
Bumps
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)
from 4.1.8 to 4.1.10.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitest-dev/vitest/releases">vitest's
releases</a>.</em></p>
<blockquote>
<h2>v4.1.10</h2>
<h3> 🐞 Bug Fixes</h3>
<ul>
<li><strong>browser</strong>: Check fs access in builtin commands
[backport to v4] - by <a
href="https://github.com/hi-ogawa"><code>@hi-ogawa</code></a>,
<strong>Hiroshi Ogawa</strong> and <strong>OpenCode
(claude-opus-4-8)</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10680">vitest-dev/vitest#10680</a>
<a href="https://github.com/vitest-dev/vitest/commit/5c18dd267"><!-- raw
HTML omitted -->(5c18d)<!-- raw HTML omitted --></a></li>
<li><strong>vm</strong>: Fix external module resolve error with deps
optimizer query for encoded URI [backport to v4] - by <a
href="https://github.com/SveLil"><code>@SveLil</code></a> and <a
href="https://github.com/hi-ogawa"><code>@hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10661">vitest-dev/vitest#10661</a>
<a href="https://github.com/vitest-dev/vitest/commit/bae52b511"><!-- raw
HTML omitted -->(bae52)<!-- raw HTML omitted --></a></li>
</ul>
<h5> <a
href="https://github.com/vitest-dev/vitest/compare/v4.1.9...v4.1.10">View
changes on GitHub</a></h5>
<h2>v4.1.9</h2>
<h3>🐞 Bug Fixes</h3>
<ul>
<li>Fix <code>importOriginal</code> with optimizer and query import
[backport to v4] - by <strong>Hiroshi Ogawa</strong>, <strong>David
Harris</strong>, <strong>Codex</strong>and <strong>Vladimir</strong> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/10546">vitest-dev/vitest#10546</a>
<a href="https://github.com/vitest-dev/vitest/commit/a5180190c"><!-- raw
HTML omitted -->(a5180)<!-- raw HTML omitted --></a></li>
<li><strong>browser</strong>:
<ul>
<li>Wait for orchestrator readiness before resolving browser sessions
[backport to v4] - by <strong>Vladimir</strong> and <strong>Séamus
O'Connor</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10555">vitest-dev/vitest#10555</a>
<a href="https://github.com/vitest-dev/vitest/commit/7fb29651a"><!-- raw
HTML omitted -->(7fb29)<!-- raw HTML omitted --></a></li>
<li>Wait for iframe tester readiness before preparing [backport to v4] -
by <strong>Vladimir</strong> and <strong>Séamus O'Connor</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10497">vitest-dev/vitest#10497</a>
and <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10556">vitest-dev/vitest#10556</a>
<a href="https://github.com/vitest-dev/vitest/commit/fbc626c40"><!-- raw
HTML omitted -->(fbc62)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>mocker</strong>:
<ul>
<li>Hoist vi.mock() for vite-plus/test imports [backport to v4] - by
<strong>Hiroshi Ogawa</strong>, <strong>LongYinan</strong>,
<strong>Claude Opus 4.8</strong> and <strong>Vladimir</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10548">vitest-dev/vitest#10548</a>
<a href="https://github.com/vitest-dev/vitest/commit/2c9559c02"><!-- raw
HTML omitted -->(2c955)<!-- raw HTML omitted --></a></li>
</ul>
</li>
<li><strong>pool</strong>:
<ul>
<li>Prevent test run hang on worker crash [backport to v4] - by
<strong>Ari Perkkiö</strong> and <strong>Jattioui Ismail</strong> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10543">vitest-dev/vitest#10543</a>
and <a
href="https://redirect.github.com/vitest-dev/vitest/issues/10564">vitest-dev/vitest#10564</a>
<a href="https://github.com/vitest-dev/vitest/commit/934b0f587"><!-- raw
HTML omitted -->(934b0)<!-- raw HTML omitted --></a></li>
</ul>
</li>
</ul>
<h5><a
href="https://github.com/vitest-dev/vitest/compare/v4.1.8...v4.1.9">View
changes on GitHub</a></h5>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="db616d227b"><code>db616d2</code></a>
chore: release v4.1.10 (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/10718">#10718</a>)</li>
<li><a
href="bae52b5112"><code>bae52b5</code></a>
fix(vm): fix external module resolve error with deps optimizer query for
enco...</li>
<li><a
href="a7a61e78c7"><code>a7a61e7</code></a>
chore: release v4.1.9 (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/10598">#10598</a>)</li>
<li><a
href="934b0f587c"><code>934b0f5</code></a>
fix(pool): prevent test run hang on worker crash (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/10543">#10543</a>)
[backport to v4] (#...</li>
<li><a
href="7fb29651af"><code>7fb2965</code></a>
fix(browser): wait for orchestrator readiness before resolving browser
sessio...</li>
<li><a
href="a5180190c1"><code>a518019</code></a>
fix: fix <code>importOriginal</code> with optimizer and query import
[backport to v4] (#...</li>
<li>See full diff in <a
href="https://github.com/vitest-dev/vitest/commits/v4.1.10/packages/vitest">compare
view</a></li>
</ul>
</details>
<br />
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: gsxdsm <gsxdsm@users.noreply.github.com>
|
2026-07-27 19:40:08 -07:00 |
|
gsxdsm
|
256c64a7bd
|
chore(release): v0.74.0-beta.5
Version bump via changesets.
|
2026-07-26 18:11:47 -07:00 |
|
gsxdsm
|
0022621d22
|
chore(release): v0.74.0-beta.4
Version bump via changesets.
|
2026-07-26 17:00:59 -07:00 |
|
gsxdsm
|
bf317f6340
|
chore(release): v0.74.0-beta.3
Version bump via changesets.
|
2026-07-25 21:06:33 -07:00 |
|
gsxdsm
|
2560944663
|
chore(release): v0.74.0-beta.2
Version bump via changesets.
|
2026-07-25 16:16:07 -07:00 |
|
gsxdsm
|
a0496c175c
|
chore(release): v0.74.0-beta.1
Version bump via changesets.
|
2026-07-25 10:08:15 -07:00 |
|
gsxdsm
|
58d55d6439
|
chore(release): v0.74.0-beta.0
Version bump via changesets.
|
2026-07-24 23:12:53 -07:00 |
|
gsxdsm
|
127b640b3f
|
chore(release): v0.73.0
Version bump via changesets.
|
2026-07-23 22:43:43 -07:00 |
|
gsxdsm
|
593f38249c
|
chore(release): v0.73.0-beta.6
Version bump via changesets.
|
2026-07-23 22:16:37 -07:00 |
|
gsxdsm
|
26628b356b
|
chore(release): v0.73.0-beta.5
Version bump via changesets.
|
2026-07-23 20:23:55 -07:00 |
|
gsxdsm
|
a45d82d09b
|
chore(release): v0.73.0-beta.4
Version bump via changesets.
|
2026-07-23 00:16:34 -07:00 |
|
gsxdsm
|
2cbb80c501
|
chore(release): v0.73.0-beta.3
Version bump via changesets.
|
2026-07-22 19:37:44 -07:00 |
|
gsxdsm
|
88e343e331
|
chore(release): v0.73.0-beta.2
Version bump via changesets.
|
2026-07-21 21:01:23 -07:00 |
|
gsxdsm
|
dcc249c674
|
chore(release): v0.73.0-beta.1
Version bump via changesets.
|
2026-07-21 20:22:16 -07:00 |
|
gsxdsm
|
11c4def87f
|
chore(release): v0.73.0-beta.0
Version bump via changesets.
|
2026-07-21 01:00:46 -07:00 |
|
gsxdsm
|
5c7ed8b26f
|
chore(release): v0.72.0
Version bump via changesets.
|
2026-07-18 00:52:59 -07:00 |
|
gsxdsm
|
7dda1aa3f5
|
chore(release): v0.71.0
Version bump via changesets.
|
2026-07-17 20:13:12 -07:00 |
|
gsxdsm
|
e31223c25f
|
chore(release): v0.70.2
Version bump via changesets.
|
2026-07-17 19:17:17 -07:00 |
|
gsxdsm
|
eccb115c7e
|
chore(release): v0.70.1
Version bump via changesets.
|
2026-07-17 18:17:15 -07:00 |
|
gsxdsm
|
f5538e6253
|
chore(release): v0.70.0
Version bump via changesets.
|
2026-07-17 17:12:42 -07:00 |
|
gsxdsm
|
1ff83a2735
|
chore(release): v0.60.0
Version bump via changesets.
|
2026-07-13 10:32:12 -07:00 |
|
gsxdsm
|
502c4c132f
|
chore(release): v0.59.0
Version bump via changesets.
|
2026-07-13 01:23:43 -07:00 |
|
gsxdsm
|
f82a3d2840
|
chore(release): v0.58.0
Version bump via changesets.
|
2026-07-11 23:50:00 -07:00 |
|
gsxdsm
|
3e7e4a865b
|
FN-7700: enrich Cursor model picker with reasoning/contextWindow metadata
Threads optional reasoning and context-window metadata from Cursor CLI model discovery through to the dashboard's Cursor model picker, replacing hardcoded false/0 defaults with pass-through values when the CLI reports them.
- Extend cursorDiscoveryToModels/discoverCursorProviderModels to carry reasoning/contextWindow from structured JSON model entries
- Update runtime-provider-probes.ts to surface the new metadata fields
- Update cursor-agent process-manager and provider to parse and propagate reasoning/contextWindow from CLI output
- Add/extend tests covering the new metadata plumbing in cursor-model-cache, process-manager, and provider
- Add changeset documenting the patch-level dashboard feature
Files changed:
.changeset/fn-7700-cursor-picker-reasoning-context-window.md | 7 ++++
packages/dashboard/src/__tests__/cursor-model-cache.test.ts | 26 ++++++++++++
packages/dashboard/src/cursor-model-cache.ts | 24 +++++++----
packages/dashboard/src/runtime-provider-probes.ts | 11 ++++-
plugins/fusion-plugin-cursor-runtime/src/__tests__/process-manager.test.ts | 33 +++++++++++++++
plugins/fusion-plugin-cursor-runtime/src/__tests__/provider.test.ts | 23 +++++++++++
plugins/fusion-plugin-cursor-runtime/src/process-manager.ts | 48 +++++++++++++++++++---
plugins/fusion-plugin-cursor-runtime/src/provider.ts | 19 ++++++++-
8 files changed, 176 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-7700
Fusion-Task-Lineage: 6b371a92-204a-4201-8c7d-df65e9210a1b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
|
2026-07-08 23:39:34 -07:00 |
|
gsxdsm
|
bccb552211
|
FN-7697: fix Cursor CLI auth-status and model-list discovery
Corrects the Cursor plugin's CLI integration to match cursor-agent's real command contract instead of best-effort heuristics.
- Derive authentication from `cursor-agent status --format json` (`isAuthenticated` field), failing closed with an actionable reason on non-zero exit or malformed JSON, instead of treating `--version` success as auth-ready.
- Switch model discovery to `cursor-agent models` plain-text output (`id - Label` lines), filtering header/tip/empty-state lines, since `--json`/`model list` are not supported.
- Update README to document the corrected CLI usage.
- Add regression tests covering probe.ts auth-status parsing and process-manager.ts model discovery.
- Add changeset (patch) documenting the fix.
Files changed:
.changeset/fn-7697-cursor-cli.md | 7 ++
plugins/fusion-plugin-cursor-runtime/README.md | 3 +-
.../src/__tests__/probe.test.ts | 94 +++++++++++++++++++---
.../src/__tests__/process-manager.test.ts | 89 +++++++++++++-------
plugins/fusion-plugin-cursor-runtime/src/probe.ts | 39 +++++++--
.../src/process-manager.ts | 84 ++++++++++++-------
6 files changed, 239 insertions(+), 77 deletions(-)
Fusion-Task-Id: FN-7697
Fusion-Task-Lineage: 6dd56a7f-da8f-4a73-82ff-5e9baab697c5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
|
2026-07-08 23:39:33 -07:00 |
|
gsxdsm
|
400f04530c
|
chore(release): v0.57.0
Version bump via changesets.
|
2026-07-08 16:27:10 -07:00 |
|
gsxdsm
|
eb86555797
|
chore(release): v0.56.1
Version bump via changesets.
|
2026-07-05 19:57:09 -07:00 |
|
gsxdsm
|
2025f9d56d
|
chore(release): v0.56.0
Version bump via changesets.
|
2026-07-05 17:13:36 -07:00 |
|
gsxdsm
|
843f365452
|
chore(release): v0.55.0
Version bump via changesets.
|
2026-07-03 13:10:20 -07:00 |
|
gsxdsm
|
abb1917999
|
FN-7419: add Cursor CLI binary path override
Add a global Cursor CLI binary path override that is validated before enabling or probing Cursor routing.
- Add global settings schema/types and API support for storing a trimmed Cursor CLI binary path override.
- Surface a Settings Authentication control to save, clear, and test the Cursor CLI binary path.
- Probe configured Cursor binaries before PATH fallbacks and expose diagnostics for status/routes.
- Cover settings, route, dashboard, and cursor runtime behavior with focused tests and documentation.
Files changed:
.changeset/fn-7419-cursor-cli-binary-path.md | 7 ++
docs/cursor-cli-contract.md | 33 ++++--
docs/settings-reference.md | 2 +
.../core/src/__tests__/cursor-cli-settings.test.ts | 34 ++++++
packages/core/src/settings-schema.ts | 6 +
packages/core/src/types.ts | 8 ++
packages/dashboard/app/api/legacy.ts | 17 ++-
.../app/components/CursorCliProviderCard.css | 37 +++++-
.../app/components/CursorCliProviderCard.tsx | 78 ++++++++++++-
.../__tests__/ModelOnboardingModal.test.tsx | 4 +
.../__tests__/SettingsModal.general.test.tsx | 2 +
.../__tests__/SettingsModal.models-auth.test.tsx | 75 ++++++++++++
.../SettingsModal.remote-notifications.test.tsx | 2 +
.../SettingsModal.scheduling-merge.test.tsx | 2 +
.../__tests__/SettingsModal.test-harness.tsx | 3 +
.../dashboard/src/__tests__/routes-auth.test.ts | 130 ++++++++++++++++++++-
.../dashboard/src/routes/register-auth-routes.ts | 69 +++++++++--
.../src/__tests__/probe.test.ts | 61 +++++++++-
.../src/__tests__/process-manager.test.ts | 10 ++
.../src/__tests__/provider.test.ts | 57 +++++++++
plugins/fusion-plugin-cursor-runtime/src/probe.ts | 39 +++++--
.../fusion-plugin-cursor-runtime/src/provider.ts | 15 ++-
plugins/fusion-plugin-cursor-runtime/src/types.ts | 3 +
23 files changed, 655 insertions(+), 39 deletions(-)
Fusion-Task-Id: FN-7419
Fusion-Task-Lineage: 2c192a37-a1db-41a9-99f5-a480ed311d9c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
|
2026-07-02 11:38:33 -07:00 |
|