Commit Graph

337 Commits

Author SHA1 Message Date
gsxdsm
24017b8353 fix(dashboard): drop residual terminated-state refs lost in merger autostash
Recovers cleanups from stash@{2}/stash@{3} (FN-3530 merger autostashes)
that the merger never restored: 4 dead `[data-state="terminated"]`
selectors in AgentListModal.css, 3 CSS-class assertions in
agent-css-classes.test.ts targeting classes the runtime no longer emits,
and a `state: "terminated"` fixture in routes-agents.test.ts now flipped
to `paused` so the "invalid state transitions" test exercises a real
rejection (paused→paused is not in AGENT_VALID_TRANSITIONS).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 00:05:55 -07:00
Timothy Laurent
5fd678d619 fix(dashboard): resolve default model from settings for mission interview
The mission interview route passed modelProvider/modelId from the request
body directly without resolving the configured default model from settings.
When "Use default" was selected, both values were undefined, causing
createFnAgent to use pi's internal fallback instead of the user's
configured default (e.g. zai/glm-5.1). This produced "AI returned no
valid JSON" errors.

Use resolvePlanningSettingsModel() to resolve the effective model from
the settings hierarchy (planning-specific → project → global defaults),
with explicit request overrides still taking precedence.

Closes #48

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-05 22:24:38 -07:00
gsxdsm
12193d265c feat(FN-3299): auto-install bundled runtime plugins on first save
Hermes / OpenClaw / Paperclip runtime cards in Settings now lazily
register themselves on first Save instead of failing with `Plugin
"fusion-plugin-...-runtime" not found`. The CLI also bundles each
runtime plugin (with @fusion/plugin-sdk inlined via esbuild) into
dist/plugins/<id>/bundled.js so npm/npx-installed Fusion can load them
without the workspace SDK dependency.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 20:47:38 -07:00
gsxdsm
d47e48fa78 fix(dashboard): drop terminated-state leftovers and AgentListModal duplicate Resume
Removes no-op `agents.filter((a) => true)` calls (a leftover from the
terminated AgentState refactor) flagged by eslint and updates affected
tests and fixtures so `terminated` is no longer referenced. Also:

- Deletes the duplicate `state === "paused"` render branch in
  AgentListModal list view that produced two "Resume" buttons.
- Updates the AgentDetailView help text to reflect the current
  deletable states ("idle or paused").
- Aligns the bundled-plugin-install test with the new auto-load
  behavior for already-installed enabled plugins.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 20:47:38 -07:00
Fusion
dfbaee1e93 feat(FN-3298): add regression test for runtime plugin alias
Adds a regression test for runtime plugin alias functionality (FN-3298 Step 3), covering 25 lines of test coverage for this feature.

Fusion-Task-Id: FN-3298
2026-05-05 20:47:37 -07:00
Fusion
0aef085f13 feat(FN-3368): tighten research view test coverage and resolve dashboard ty
This merge introduces an eval automation domain store with persistence schema and a plugin dashboard view registry (FN-3512/FN-3513), adds scheduled eval batch architecture documentation (FN-3388), and includes substantial test coverage for Research routes and hooks (FN-3368 steps 1-3). The branch a

Fusion-Task-Id: FN-3368
2026-05-05 13:05:57 -07:00
Fusion
d7880c66b0 feat(FN-3157): add plugin dashboard view registry with nav integration
Merged FN-3157 to add a plugin dashboard views system, including a plugin view registry with lazy loading, navigation integration for Header and MobileNavBar, a usePluginDashboardViews hook with cache and refetch support, and tests covering the no-loader path. Also added documentation in `docs/PLUGI

Fusion-Task-Id: FN-3157
2026-05-05 12:14:20 -07:00
Fusion
f2accb736f feat(FN-3209): fix refine continuation flow in planning mode and add local
Merges fixes for the planning refine continuation flow (FN-3209) alongside a new local startup script for development environments. The changes include updates to `PlanningModeModal.tsx`, new and updated tests for the planning system, route handler improvements in `chat.ts` and `planning.ts`, and do

Fusion-Task-Id: FN-3209
2026-05-05 11:32:05 -07:00
gsxdsm
41375736e7 Reapply "fix: isolate chat SSE broadcasts per generation"
This reverts commit 46f1f042b0.
2026-05-05 08:21:33 -07:00
gsxdsm
46f1f042b0 Revert "fix: isolate chat SSE broadcasts per generation"
This reverts commit 9d27064c29.
2026-05-05 08:14:10 -07:00
gsxdsm
9d27064c29 fix: isolate chat SSE broadcasts per generation
After stopping a streaming chat reply, the next message would appear
sent but show no Stop button or "Connecting…" indicator. The cancel
broadcast from the prior generation was leaking into the new SSE
subscription and immediately marking it as errored.

Each `chatManager.sendMessage` now allocates a per-generation id;
`ChatStreamManager` only delivers tagged broadcasts to subscribers
from the matching generation. `sendMessage`'s cleanup also stops
deleting a newer generation's `activeGenerations` slot when an older
one finally unwinds.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 07:35:18 -07:00
Fusion
9e2a8006b9 feat(FN-3430): preserve and consume final assistant done payload
This merge adds done-payload snapshot handling across the chat system (FN-3430), normalizing how final assistant messages are preserved and consumed in the dashboard hooks, plus it normalizes dashboard mailbox and user identity for inter-agent messaging (FN-3484) and introduces plugin workflow step

Fusion-Task-Id: FN-3430
2026-05-05 06:42:18 -07:00
Fusion
59f6c8426e feat(FN-3484): normalize dashboard mailbox and user identity for messaging
This merge normalizes dashboard user identity and mailbox messaging (FN-3484, 4 steps), adds workflow step execution for plugins (FN-3490), and updates the restart integration store mock for plugin templates (FN-3096). Core changes touch the message store and store modules with identity normalizatio

Fusion-Task-Id: FN-3484
2026-05-05 06:32:34 -07:00
Fusion
5bf33e8f66 feat(FN-3096): update restart integration store mock for plugin templates
Updates the restart integration test mock to account for plugin template behavior, keeping the test in sync with recent plugin template changes.

Fusion-Task-Id: FN-3096
2026-05-05 06:32:34 -07:00
gsxdsm
af0bc4bd07 feat(FN-3475): merge fusion/fn-3475
Fusion-Task-Id: FN-3497
2026-05-05 06:32:33 -07:00
Fusion
112d8894a5 feat(FN-3446): expand dashboard guide view sections and add regression test
Merged two commits completing the FN-3446 dashboard guide feature: the documentation was expanded with new view sections, and a regression test suite was added for the dashboard guide to prevent future regressions.

Fusion-Task-Id: FN-3446
2026-05-05 06:32:33 -07:00
Fusion
6e6413263f feat(FN-3415): add todo documentation contract test
Adds a contract test for todo documentation in the core task store, covering the behavior documented in the system.

Fusion-Task-Id: FN-3415
2026-05-05 06:32:33 -07:00
Fusion
51866654b8 feat(FN-3416): verify auth route provider expectations in step 2
Test-only merge for FN-3416: adds verification for auth route provider expectations, completing Step 2 of the task with no file changes reported.

Fusion-Task-Id: FN-3416
2026-05-05 01:24:14 -07:00
Fusion
43dd04860c 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
aab28e1adb feat(FN-3434): add Claude OAuth credential interop with verification and st
This merge lands four major features: the desktop app gains shell onboarding with remote mode support via a new `DesktopModeChooser` and `shell-settings` module (FN-3399); the dashboard gains full archived insights support with the `InsightsView` redesign and `useInsights` hook overhaul (FN-3315); C

Fusion-Task-Id: FN-3434
2026-05-04 23:47:26 -07:00
Fusion
854c59398a feat(FN-3413): update auth route fixtures to github-copilot
Updates authentication route test fixtures to use "github-copilot" as the provider name instead of the previous value, ensuring tests align with the current auth provider configuration.

Fusion-Task-Id: FN-3413
2026-05-04 23:47:25 -07:00
Fusion
1655ef578f feat(FN-3301): render commit body in expanded git views
Completes the commit body rendering in expanded git views within `GitManagerModal`, including updated component implementation and tests. The dashboard git routes and modal component now properly display full commit body content.

Fusion-Task-Id: FN-3301
2026-05-04 22:17:10 -07:00
Fusion
7b45ae15ee feat(FN-3447): add planning session rewind capability with modal back actio
This merge delivers four major features: a planning session rewind system (FN-3447, steps 1–4) with a new backend route for rolling back sessions, modal back-action wiring, and updated typing; workspace verification gates (FN-3385) for agent prompt editing; an agents view org chart spacing rework (F

Fusion-Task-Id: FN-3447
2026-05-04 21:21:22 -07:00
gsxdsm
f909688dd9 Merge pull request #30 from timothyjlaurent/fix/sqlite-corruption-wal-pragmas
fix: prevent SQLite B-tree corruption with WAL tuning and batched agent logs
2026-05-04 21:20:32 -07:00
Fusion
8f0f9257ed feat(FN-3114): stabilize docker config modal recreate indicator test
The merge stabilizes a test case in the NodeDetailModal test file related to the docker config modal's recreate indicator, correcting an assertion that was causing intermittent failures.

Fusion-Task-Id: FN-3114
2026-05-04 19:05:48 -07:00
Fusion
739e10bf3c feat(FN-3356): ship llama.cpp provider integration, mobile org chart contro
This merge delivers v0.19.0 with several major features and reliability improvements: a new llama.cpp provider integration for the pi extension and mobile dashboards, an extensive refactor of the agent heartbeat system with per-agent configuration and test coverage, a large PlanningModeModal test su

Fusion-Task-Id: FN-3356
2026-05-04 18:19:38 -07:00
Fusion
53ae8c5465 feat(FN-3324): add runtime guard regression sentinel
Adds a regression test sentinel in the engine's in-process runtime test suite to guard against runtime guard behavior regressions (FN-3324).

Fusion-Task-Id: FN-3324
2026-05-04 15:33:39 -07:00
Fusion
95d368e7d7 feat(FN-3211): document app CPU metric in system stats
Updated the architecture documentation to document the app CPU metric in the system stats section.

Fusion-Task-Id: FN-3211
2026-05-04 15:16:53 -07:00
Fusion
a66ddf2e7f feat(FN-3314): align auth route assertion in agents routes test
Test FN-3314 completes its final step by refining an auth route assertion in the agents routes test, ensuring the test accurately validates the expected behavior.

Fusion-Task-Id: FN-3314
2026-05-04 15:04:36 -07:00
Timothy Laurent
cd09f12c77 merge main: resolve db.test.ts import conflict
Combined both branches: TaskStore import from main + rmSync import
from our branch (needed for fresh DB test cleanup).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-04 14:58:47 -07:00
Timothy Laurent
8e7b8e139f fix(tests): resolve 4 failing tests across cli and dashboard packages
- task.test.ts: save/delete GITHUB_REPOSITORY env before
  runTaskPrCreate fallback test so CI env doesn't bypass the
  getCurrentRepo code path
- app.test.tsx: increase waitForFrameContains timeout for ASCII QR
  render from 3s to 6s to accommodate slower CI environments
- remote-auth.test.ts: switch createRemoteSettings default from
  tailscale to cloudflare with a static ingressUrl so
  resolveRemoteBaseUrl doesn't 409 when no tunnel is running

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-04 14:54:55 -07:00
Fusion
3b4bb2d134 test(FN-3314): align persistent auth route assertion
- Update the remote access auth login-url test to assert global settings persistence
- Replace the outdated store.updateSettings expectation with store.updateGlobalSettings
- Keep persistent token strategy verification coverage intact
2026-05-04 14:53:08 -07:00
Fusion
eeab870857 feat(FN-3199): align memory insight docs with canonical paths
Updates three documentation files to align memory insight and plugin path references with their canonical locations.

Fusion-Task-Id: FN-3199
2026-05-04 13:43:22 -07:00
Fusion
73430354e1 docs(FN-3293): finalize stabilization audit documentation
- Add FN-3293 stabilization update section to docs/test-audit-report.md
- Document deterministic test hardening across CLI, dashboard, droid-cli, and core suites
- Update flaky hotspot notes to reflect resolved dashboard retry timeout coverage

Fusion-Task-Id: FN-3293
2026-05-04 13:17:57 -07:00
Fusion
7ae22a7ee5 feat(FN-3410): finalize planning verification and launcher updates
- Rework planning subtask descriptions and update planning logic/tests for clearer execution guidance
- Add launcher/update notice handling in cli-alias with package-config coverage and release script updates
- Refine agent detail and agents list UI/CSS for compressed mobile header behavior with updated dashboard tests
- Add changesets and related docs/readme touch-ups for release tracking
- Ref: runfusion/fusion#33
2026-05-04 10:56:30 -07:00
Fusion
1e73863ac6 feat(FN-3195): document llama.cpp provider setup and onboarding
Docs(FN-3195): adds llama.cpp provider setup and onboarding documentation to the main and dashboard READMEs.

Fusion-Task-Id: FN-3195
2026-05-04 10:18:38 -07:00
Fusion
0237607d81 feat(FN-3014): document research recovery semantics
Documents research recovery semantics in the CLI reference and settings reference, adding 9 lines of documentation across both files.

Fusion-Task-Id: FN-3014
2026-05-04 09:20:07 -07:00
Fusion
3b1435f6b9 feat(FN-3074): sort done column by recency, preserve merge-active state, ad
This merge adds done-column sorting by most recent completion while preserving merge-active state on verification bounces, introduces a comprehensive droid runtime regression test suite covering engine delegation, auth routes, and model routing, hardens the CLI native bundle externalization, and fix

Fusion-Task-Id: FN-3074
2026-05-04 07:25:14 -07:00
Fusion
813bdad2e1 feat(FN-3071): add droid runtime plugin with event bridge, process manageme
This merge introduces a droid runtime plugin system with event bridge and process management (FN-3228), stabilizes plugin workspace verification gates and suppresses placeholder plugin shells in onboarding/settings flows (FN-3071), tokenizes danger/error styling in task detail components (FN-3350),

Fusion-Task-Id: FN-3071
2026-05-04 04:30:16 -07:00
Fusion
8cb8055531 feat(FN-3350): tokenize task detail danger/error styling
Fixes task detail modal danger/error styling by switching to token-based CSS variables for consistent theming across dark and light modes.

Fusion-Task-Id: FN-3350
2026-05-04 04:09:28 -07:00
Fusion
fbb96b25a5 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
Fusion
2b102af38e feat(FN-3349): add in-review retry mechanism and delivery docs
This merge adds a changeset for feature FN-3349 (in-review retry behavior) and delivery documentation to the `@runfusion/fusion` package.

Fusion-Task-Id: FN-3349
2026-05-04 01:20:43 -07:00
gsxdsm
bacc103e4e fix(FN-XXX): unify codex auth and chat fallback 2026-05-03 23:08:05 -07:00
Fusion
ba893b82bf feat(FN-3336): recover chat isGenerating state on session load to prevent U
Merges FN-3336 to recover chat streaming state on page reload — adds `isGenerating()` and `getGeneratingSessionIds()` to `ChatManager`, enriches the session API to surface active-streaming sessions, and makes `useChat` and `useQuickChat` hooks restore the `isGenerating` flag when loading existing se

Fusion-Task-Id: FN-3336
2026-05-03 16:51:01 -07:00
gsxdsm
bf80d37a43 fix(tests): correct sessionId destructure and waitFor in thinking-block tests
The two FN-3300 streaming-path tests destructured `{ sessionId }` from
createSessionWithAgent (which returns a string), causing
SessionNotFoundError. Also added the missing vi.waitFor(currentQuestion)
that the streaming setup requires before submitResponse.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 11:21:49 -07:00
Fusion
ca8787d112 feat(FN-3300): restore Claude usage tracking with Fusion Anthropic auth sto
This merge restores Claude usage tracking by reading from Fusion's Anthropic auth storage (FN-3135, FN-3289), adds fixes for response-text extraction bugs in `continueAgentConversation` and `getFirstQuestionFromAgent` with diagnostic logging for empty responses (FN-3300), and includes new test cover

Fusion-Task-Id: FN-3300
2026-05-03 11:00:50 -07:00
Fusion
593396ba2a feat(FN-3289): restore Claude usage from Fusion Anthropic auth storage in d
Step 2 of FN-3289 restores Claude usage tracking by integrating with Fusion's existing Anthropic auth-storage instead of maintaining separate credentials, eliminating credential duplication and improving consistency between the dashboard and CLI. The changes update the usage tracking module, add cor

Fusion-Task-Id: FN-3289
2026-05-03 10:36:28 -07:00
Fusion
7f3fb7799d feat(FN-2999): harden research lifecycle with idempotent cancel/retry, SSE
Merges FN-2999 research hardening (idempotent cancel/retry routes, aligned SSE event wiring, and cleaned status handling in the core research store and orchestrator) plus UI improvements to AgentDetailView header actions and planning disclosure UX in the modal, with a CSS token fallback fix in Scrip

Fusion-Task-Id: FN-2999
2026-05-03 09:11:04 -07:00
Fusion
cc6c9abe61 feat(FN-3212): remove runtime memory-backend side-load, add regression test
Merged FN-3207, FN-3212, and FN-3242: removed runtime memory-backend side-loading in core, added comprehensive regression tests for QuickChat, chat routes, and SSE streams, and documented compact mobile chat dialogs in the dashboard guide. The refactor in `project-memory.ts` reduces complexity while

Fusion-Task-Id: FN-3212
2026-05-03 07:37:03 -07:00
Fusion
59f2868f24 feat(FN-3120): show resolved planning model in planning modal
Adds a resolved planning model display to the planning modal by introducing a new `/api/models/resolve` endpoint, wiring it through the legacy API, and updating the modal to show the final resolved model alongside its source (FN-3120).

Fusion-Task-Id: FN-3120
2026-05-03 06:17:30 -07:00