gsxdsm
0eaa3c7b9a
FN-8990: clean up plugin reload scratch files
...
Keep plugin hot-reload cache-busting copies ephemeral and remove legacy tracked artifacts.
- Delete tracked plugin reload scratch files.
- Remove temporary import copies after successful and failed reloads.
- Add cleanup and tracked-artifact regression coverage.
Files changed:
.changeset/fn-8990-plugin-reload-scratch-cleanup.md | 7 ++
packages/core/src/__tests__/plugin-hot-reload.test.ts | 25 ++++ -
packages/core/src/plugins/plugin-loader.ts | 16 ++-
plugins/fusion-plugin-droid-runtime/src/.index.reload-1.ts | 84 ----------------
plugins/fusion-plugin-droid-runtime/src/.index.reload-2.ts | 84 ----------------
plugins/fusion-plugin-hermes-runtime/src/.index.reload-1.ts | 108 --------------------
plugins/fusion-plugin-hermes-runtime/src/.index.reload-2.ts | 108 --------------------
plugins/fusion-plugin-hermes-runtime/src/.index.reload-3.ts | 108 --------------------
plugins/fusion-plugin-openclaw-runtime/src/.index.reload-1.ts | 95 -----------------
plugins/fusion-plugin-paperclip-runtime/src/.index.reload-1.ts | 112 ---------------------
scripts/__tests__/no-tracked-plugin-reload-artifacts.test.mjs | 27 +++++
11 files changed, 72 insertions(+), 702 deletions(-)
Fusion-Task-Id: FN-8990
Fusion-Task-Lineage: 2221ebaf-b8ab-4a3c-8934-addfa348c98c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 03:40:21 -07:00
gsxdsm
e3dba364d1
FN-8564: update bundled Pi runtime to 0.82.0
...
Update Fusion's matched Pi dependencies and compatibility coverage for version 0.82.0.
- Pin Pi AI and coding-agent packages to the exact 0.82.0 release pair.
- Refresh provider catalog, supplemental model, auth storage, and Droid thinking coverage.
- Add the published CLI patch changeset.
Files changed:
.changeset/fn-8564-pi-082.md | 7 +
packages/cli/package.json | 4 +-
packages/cli/src/__tests__/package-config.test.ts | 2 +-
packages/core/package.json | 2 +-
packages/dashboard/package.json | 2 +-
...ister-model-routes-kimi-k3-supplemental.test.ts | 6 +-
packages/engine/package.json | 4 +-
.../src/__tests__/provider-registration.test.ts | 4 +-
packages/engine/src/auth-storage.ts | 11 +-
packages/engine/src/pi.ts | 6 +
packages/pi-claude-cli/package.json | 8 +-
.../src/thinking-config.ts | 10 +-
pnpm-lock.yaml | 176 +++++++++++----------
pnpm-workspace.yaml | 6 +-
.../__tests__/check-pi-versions-pinned.test.mjs | 8 +-
15 files changed, 142 insertions(+), 114 deletions(-)
Fusion-Task-Id: FN-8564
Fusion-Task-Lineage: 543c5e17-4cb2-446f-9a1c-ec7ec8b8117a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-24 19:06:14 -07:00
gsxdsm
241a5c94ea
chore: bump @earendil-works/pi to 0.81.1 ( #2399 )
...
## Summary
- Bump `@earendil-works/pi-ai` and `@earendil-works/pi-coding-agent`
from **0.80.10 → 0.81.1** (exact matched pins).
- Update `pnpm-workspace.yaml` overrides so floating `*` consumers
(`droid-cli`, `pi-llama-cpp`, runtime plugins) stay on the same
ModelRuntime surface.
- Refresh pin-guard tests, package-config assertions, and FNXC notes for
the new pin.
## What's new in pi 0.81.x
- Qwen Token Plan providers
- Expanded usage accounting (tools/compaction/branch summaries)
- Resilient compaction retries + retry lifecycle events
- Full provider-extension registration API
- Built-in llama.cpp router management
- Provider/catalog fixes (Bedrock env credentials, OpenAI Responses
early-stream retry, Codex 272K defaults, extension stream-fallback
restore)
## Test plan
- [x] `scripts/check-pi-versions-pinned` (4/4)
- [x] Typecheck: core, engine, dashboard, cli, pi-claude-cli
- [x] `package-config.test.ts` (35)
- [x] `provider-registration.test.ts` (14)
- [x] `auth-storage-concurrency` + `model-registry-refresh` (15)
- [x] `register-model-routes-kimi-k3-supplemental` (1)
- [ ] CI gate green
- [ ] Spot-check Anthropic OAuth + API key session
- [ ] Spot-check openai-codex model picker / supplemental models
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Updates**
* Updated the bundled Pi runtime to version 0.81.1.
* Added support for newer models and providers, including Qwen Token
Plan.
* Improved usage accounting and session reliability.
* Strengthened compaction retry handling and provider catalog accuracy.
* Added support for the expanded maximum thinking level.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-22 01:32:14 -07:00
gsxdsm
fd43a57a41
FN-8179: align pi SDK versions with ModelRuntime API
...
Align workspace pi SDK dependencies with the ModelRuntime API required by the engine.
- Pin pi AI and coding-agent packages to 0.80.10 across workspace consumers.
- Keep session option typing compatible with the updated SDK contract.
- Add a patch changeset and regenerate the dependency lockfile.
Files changed:
.changeset/fn-8179-pi-sdk-align.md | 7 +
packages/cli/package.json | 4 +-
packages/core/package.json | 2 +-
packages/dashboard/package.json | 2 +-
packages/engine/package.json | 4 +-
packages/engine/src/pi.ts | 8 +-
packages/pi-claude-cli/package.json | 8 +-
.../src/thinking-config.ts | 9 +-
pnpm-lock.yaml | 947 +++++++++++----------
pnpm-workspace.yaml | 5 +
10 files changed, 520 insertions(+), 476 deletions(-)
Fusion-Task-Id: FN-8179
Fusion-Task-Lineage: aef45c2e-f353-4014-93de-44be91f43293
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 19:01:03 -07:00
gsxdsm
cc743eec38
FN-7838: make CLI agent cold-start timeouts configurable via env vars
...
Raises Grok and Droid CLI cold-start timeout defaults from 60s to 120s and lets operators override them via environment variables.
- Grok runtime adapter: new GROK_CLI_FIRST_OUTPUT_TIMEOUT_MS env override for the first-output cold-start guard; default raised 60000ms → 120000ms; invalid/non-positive values fall back to the default
- Droid provider: new PI_DROID_CLI_FIRST_LINE_TIMEOUT_MS env override for the first-line cold-start guard; default raised 60000ms → 120000ms; invalid/non-positive values fall back to the default
- 30-minute inactivity safety net left unchanged on both adapters
- Added/updated unit tests covering the new env-driven timeout resolution and fallback behavior for both plugins
- Documented the new settings in docs/settings-reference.md and both plugin READMEs
- Added a minor changeset for @runfusion/fusion
Files changed:
.changeset/fn-7838-cli-timeout-configurable.md | 7 ++
docs/settings-reference.md | 13 ++-
plugins/fusion-plugin-droid-runtime/README.md | 8 ++
.../src/__tests__/provider.test.ts | 97 +++++++++++++++++++++-
.../fusion-plugin-droid-runtime/src/provider.ts | 26 ++++--
plugins/fusion-plugin-grok-runtime/README.md | 8 ++
.../src/__tests__/runtime-adapter.test.ts | 52 +++++++++++-
.../src/runtime-adapter.ts | 23 ++++-
8 files changed, 222 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-7838
Fusion-Task-Lineage: 7aad4470-b28f-42bd-be01-8363a1dd05e5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-11 22:16:47 -07:00
gsxdsm
5191e1f22d
FN-6911: defer Droid CLI startup probes
...
Defer Droid CLI validation and discovery so startup no longer spawns or hangs on droid.
- Register the Droid provider without boot-time validation or model discovery side effects.
- Trigger CLI validation only when a Droid stream starts and expose explicit model discovery.
- Add regression coverage for non-interactive droid process spawning and startup probe behavior.
- Add a patch changeset for the published Fusion CLI package.
Files changed:
.changeset/fn-6911-droid-cli-no-boot-spawn.md | 5 ++
.../commands/__tests__/droid-cli-extension.test.ts | 15 +++-
packages/droid-cli/index.ts | 33 ++++----
packages/droid-cli/src/__tests__/index.test.ts | 90 +++++++++-------------
.../src/__tests__/discover-models.test.ts | 7 +-
.../src/__tests__/probe.test.ts | 8 ++
.../src/__tests__/process-manager.test.ts | 74 ++++++++++++++++++
.../src/__tests__/startup-probes.test.ts | 5 +-
8 files changed, 160 insertions(+), 77 deletions(-)
Fusion-Task-Id: FN-6911
Fusion-Task-Lineage: ef4bc3df-bfe8-416a-b701-64f752faea30
2026-06-21 23:44:26 -07:00
gsxdsm
1f23a2e622
FN-6878: register Droid provider before probes
...
Register Droid provider startup without waiting on local binary probes.
- Register the Droid CLI provider synchronously with an empty model list, then refresh discovered models asynchronously.
- Harden Droid runtime probes to convert spawn errors and timeouts into unavailable sentinel results.
- Add coverage for non-blocking startup, failed probes, unavailable binaries, and process cleanup behavior.
- Add a patch changeset for the published Fusion CLI package.
Files changed:
.changeset/fn-6878-droid-boot.md | 5 ++
packages/droid-cli/index.ts | 73 +++++++++++-------
packages/droid-cli/src/__tests__/index.test.ts | 52 ++++++++++++-
.../src/__tests__/process-manager.test.ts | 58 +++++++--------
.../src/__tests__/discover-models.test.ts | 8 ++
.../src/__tests__/probe.test.ts | 43 ++++++++++-
.../src/__tests__/startup-probes.test.ts | 86 ++++++++++++++++++++++
plugins/fusion-plugin-droid-runtime/src/probe.ts | 32 +++++---
8 files changed, 283 insertions(+), 74 deletions(-)
Fusion-Task-Id: FN-6878
Fusion-Task-Lineage: 4e44a6e8-0eea-4867-a172-3bdc0c6368e1
2026-06-21 16:40:32 -07:00
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
gsxdsm
37c4cfa56e
FN-6808: handle AI CLI probe spawn failures
...
Resolve synchronous AI CLI probe launch failures as unavailable auth states.
- Catch synchronous spawn failures in Claude and Droid probe helpers so fire-and-forget validation paths do not reject.
- Return unavailable/unauthenticated sentinels for Droid model discovery and CLI presence/auth checks.
- Add regression coverage for Claude and Droid presence/auth probes plus a patch changeset.
Files changed:
.../fn-6808-cli-probe-unhandled-rejection.md | 5 ++++
.../src/__tests__/process-manager.test.ts | 25 ++++++++++++++++++++
.../src/__tests__/process-manager.test.ts | 25 ++++++++++++++++++++
packages/pi-claude-cli/src/process-manager.ts | 12 +++++++++-
.../src/process-manager.ts | 27 +++++++++++++++++++---
5 files changed, 90 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6808
Fusion-Task-Lineage: 79702ef2-e116-4313-a557-da17a6888c30
2026-06-20 21:32:43 -07:00
gsxdsm
84830595f2
FN-6485: remove synchronous CLI probes
...
Remove blocking execSync validation paths from CLI process managers while preserving async probe coverage.
- Drop synchronous Claude and Droid CLI presence/auth validators from process managers.
- Keep async spawn-based validation as the sole probing path for session startup.
- Replace sync validator tests with execSync guard coverage for both CLI integrations.
Files changed:
.../droid-cli/src/__tests__/execsync-guard.test.ts | 17 ++++++++
.../src/__tests__/process-manager.test.ts | 46 +---------------------
.../src/__tests__/execsync-guard.test.ts | 14 +++++++
.../src/__tests__/process-manager.test.ts | 46 +---------------------
.../pi-claude-cli/src/__tests__/provider.test.ts | 1 -
packages/pi-claude-cli/src/process-manager.ts | 44 +++------------------
.../src/process-manager.ts | 43 +++-----------------
7 files changed, 45 insertions(+), 166 deletions(-)
Fusion-Task-Id: FN-6485
Fusion-Task-Lineage: e3f0f656-3445-4672-b597-a811924137e9
2026-06-16 15:08:24 -07:00
gsxdsm
53e0741aca
FN-5787: normalize streamed sentence spacing in event bridge
...
Normalize missing sentence spaces in streamed droid deltas for chat and agent logs.
- add targeted delta normalization for punctuation-to-sentence-start boundaries
- apply normalization to both text and thinking streaming deltas, including cross-block fallback context
- add regression tests covering repaired boundaries and non-regression cases (lowercase/property access/existing spaces)
Files changed:
plugins/fusion-plugin-droid-runtime/src/__tests__/event-bridge.test.ts | 118 +++++++++++++++++++++
plugins/fusion-plugin-droid-runtime/src/event-bridge.ts | 57 +++++++++-
2 files changed, 171 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-5787
Fusion-Task-Lineage: 21a91f46-2269-4406-bce6-b19a57f445e0
2026-05-31 11:55:11 -07:00
gsxdsm
cec191eac3
FN-5638: migrate pi-ai and pi-coding-agent packages to @earendil-works scope
...
Fusion-Task-Id: FN-5638
Fusion-Task-Lineage: 6e99c156-5f6c-42e6-bd26-618e08ffd05f
2026-05-28 21:23:48 -07:00
Fusion
fe8c186527
feat(FN-3998): add task lineage commit associations API, UI, and tests
...
Adds task lineage commit associations: a new API route stores and exposes which commits belong to which task, the `TaskChangesTab` surfaces these lineage links visually, and documentation covers the reconciliation model. Includes comprehensive tests for both the route and component.
Fusion-Task-Id: FN-3998
2026-05-11 06:47:43 -07:00
Fusion
bb4a1b7df4
feat(FN-3471): apply tokenized sizing and focus styles to component CSS
...
Merged CSS changes that apply tokenized sizing and focus styles to InsightsView and DesktopModeChooser components, with the majority of changes in InsightsView.css.
Fusion-Task-Id: FN-3471
2026-05-05 00:21:21 -07:00
Fusion
7e1768b1b1
feat(FN-3328): refactor droid-cli into compatibility shim backed by fusion-
...
Merged FN-3328: Refactored the droid integration by converting `droid-cli` into a lightweight compatibility shim that delegates to `fusion-plugin-droid-runtime`, reducing droid-cli by ~5,400 lines of code while moving the actual runtime logic into the plugin scaffold. Updated the plugin loader to al
Fusion-Task-Id: FN-3328
2026-05-04 17:22:21 -07:00
gsxdsm
50eb39fa70
chore: fix eslint warnings
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-04 07:08:01 -07:00
Fusion
6ea1384631
feat(FN-3072): fix design tokens, mobile touch targets, and plugin settings
...
This merge addresses FN-3072 design feedback by updating CSS design tokens and mobile touch targets in ModelOnboardingModal, PluginSlot, and SettingsModal components, while also adding tests for droid settings plugin integration states. FN-3137 refines MissionManager's back-button navigation test as
Fusion-Task-Id: FN-3072
2026-05-04 05:25:52 -07:00
Fusion
5be5da1938
feat(FN-3332): add droid runtime plugin with event bridge and process manag
...
The merge delivers a new `fusion-plugin-droid-runtime` plugin providing a full MCP server and runtime adapter for droid-based agents, with event bridging, process management, tool mapping, and a prompt builder. It also adds agent delegation and org hierarchy tools to the pi extension, while fixing a
Fusion-Task-Id: FN-3332
2026-05-04 03:04:33 -07:00