Commit Graph

1005 Commits

Author SHA1 Message Date
Fusion
47beb9b911 feat(FN-3168): add plugin routes wiring and listTasksModifiedSince contract
This merge adds plugin routes wiring to the dashboard with a new `listTasksModifiedSince` task store contract (FN-3796/FN-3798), stabilizes flaky tests for initial-open scroll behavior and favorites rollback timing, and removes the roadmap backend in favor of a reports plugin scaffold (FN-3824); cov

Fusion-Task-Id: FN-3168
2026-05-09 10:31:05 -07:00
Fusion
d82285ca56 feat(FN-3798): add listTasksModifiedSince contract to task store
Added a `listTasksModifiedSince` contract to the task store with wiring coverage in the plugin router, including a type-fix for limit narrowing. Tests cover both the store contract and the routing layer.

Fusion-Task-Id: FN-3798
2026-05-09 10:31:05 -07:00
Fusion
de174491bb feat(FN-3796): add plugin routes wiring and listTasksModifiedSince
Merged plugin infrastructure improvements: FN-3796 adds a complete plugin route wiring system with typed `pluginRunner`, `listTasksModifiedSince` store support, and comprehensive test coverage across core and dashboard packages. FN-3794 isolates WhatsApp sessions per project with unload context prop

Fusion-Task-Id: FN-3796
2026-05-09 10:31:05 -07:00
Fusion
9d1c05a7d9 feat(FN-3166): remove dashboard roadmap backend and add reports plugin scaf
Completes the FN-3166 multi-step removal of the legacy dashboard roadmap feature (backend routes, frontend API wrappers, nav state), along with FN-3792 deep-link URL support, and initial reports plugin scaffold with WhatsApp dedupe retention pruning.

Fusion-Task-Id: FN-3166
2026-05-09 10:31:04 -07:00
Fusion
18413a1c42 feat(FN-3792): add /tasks deep-link support with theme-data URL resolution
Adds a `/tasks` deep-link that rewrites legacy hash-style URLs on the client and redirects root-absolute paths on the server (FN-3792), along with a new `fusion-plugin-reports` scaffold including manifest, settings, and notification service improvements (FN-3778, FN-3790); also adds a session switch

Fusion-Task-Id: FN-3792
2026-05-09 10:31:04 -07:00
Fusion
abdd3ef0cc fix(FN-3165): remove remaining core roadmap type exports
- Remove the legacy roadmap type re-exports from @fusion/core types
- Update core index exports to stop exposing roadmap plugin types
- Switch dashboard roadmap route test type import to the roadmap plugin package

Fusion-Task-Id: FN-3165
2026-05-08 22:34:45 -07:00
Fusion
92ca3a238f feat(FN-3548): add agent action routes and approval pause/resume lifecycle
Merges the FN-3548 approval pause/resume system: agents now stall at workflow gates pending approval, with a full lifecycle spanning gate context lookup, action-gate pause/retry, executor and heartbeat pause callbacks, and dedicated approval decision routes. Also lands FN-3744 agent action routes an

Fusion-Task-Id: FN-3548
2026-05-08 20:30:40 -07:00
Fusion
c0d462a12d feat(FN-3163): test suggestion route error contract in roadmap routes
Adds an assertion for the suggestion route error contract in the roadmap routes test file, completing the test coverage for that endpoint.

Fusion-Task-Id: FN-3163
2026-05-08 18:36:51 -07:00
Fusion
a087aa4e57 feat(FN-3707): implement mesh auth snapshot replication across core, engine
The merge delivers two major features: mesh auth snapshot synchronization across nodes (FN-3707 steps 2/4/5, including core types, central-core plumbing, peer-exchange updates, and settings/node sync route helpers) and a bundled roadmap plugin with chat UX improvements (FN-3162, FN-3756, FN-3771, FN

Fusion-Task-Id: FN-3707
2026-05-08 18:26:14 -07:00
Fusion
a4550ff4f6 feat(FN-3281): ship review revisions and dashboard/plugin integration updates
- Add same-task review revision action and lock-resume regression coverage in TaskReview flow
- Migrate built-in roadmap surface to bundled plugin registration and update lazy view wiring
- Align node-specific working-directory/runtime resolution across core, engine, and dashboard routes
- Add even-realities polling task notifications and default non-ephemeral agents to active with supporting docs/changesets

Fusion-Task-Id: FN-3281
2026-05-08 17:17:59 -07:00
Fusion
0da7aa8c0f feat(FN-3773): default non-ephemeral agents to active and add polling task
Non-ephemeral agents now default to `active` state on creation (FN-3773), with aligned test coverage across the agent store and dashboard routes. The even-realities plugin gains a polling notification system including a notification store, card rendering, diff logic, and API routes. Review state per

Fusion-Task-Id: FN-3773
2026-05-08 16:48:44 -07:00
Fusion
60962765bf feat(FN-3280): harden reviewState persistence, API, and PR feedback sync
Merges reviewState hardening (FN-3280 steps 2-3: hardened persistence, API fixes, and PR feedback sync), stepIndex reconciliation for task updates (FN-3757), roadmap route context extraction into the fusion-plugin-roadmap plugin (FN-3160), and shared state snapshots for mesh sync with autostash hard

Fusion-Task-Id: FN-3280
2026-05-08 16:28:03 -07:00
Fusion
5ef3c97ed7 feat(FN-3160): move roadmap route context into fusion-plugin-roadmap plugin
The merge completes FN-3160 by making the roadmap route context plugin-owned, moving `roadmap-routes` and `roadmap-suggestions` logic from the dashboard into `fusion-plugin-roadmap` with updated plugin-loader integration. It also includes FN-3755's shared state snapshot support for mesh sync hardeni

Fusion-Task-Id: FN-3160
2026-05-08 15:43:22 -07:00
Fusion
ae6fdf9329 feat(FN-3451): add shared state snapshots for mesh sync
This merge completes the mesh sync shared-state pipeline (FN-3451 Steps 1–3) by adding agent run snapshot limits, applying inbound snapshots, and returning shared state snapshots, while hardening agent store cache initialization during sync. It also unifies agent action gating classifications across

Fusion-Task-Id: FN-3451
2026-05-08 14:03:17 -07:00
Fusion
3c6fd99584 feat(FN-3279): refresh review state on manual trigger and restore roadmap e
Adds review tab refresh UX, metadata, and API (FN-3279) alongside permanent-agent action gating coordination tools (FN-3724), and introduces two new workspace plugin packages: `fusion-plugin-even-cards` (board/task cards with auth and board-routes) and `fusion-plugin-even-realities-glasses` (cards,

Fusion-Task-Id: FN-3279
2026-05-08 13:05:27 -07:00
Fusion
e2e0d4ed84 feat(FN-3752): add fusion-plugin-even-realities-glasses plugin package
This merge introduces `fusion-plugin-even-realities-glasses`, a new plugin package providing tools for cards, notifications, quick capture, settings sync, Fusion API client, and agent actions, along with corresponding tests. It also adds eval feature flags and documentation, applies UI refinements t

Fusion-Task-Id: FN-3752
2026-05-08 12:12:57 -07:00
Fusion
a6ec5b9ce6 feat(FN-3738): add fusion-plugin-even-realities-glasses plugin package with
Implements a new Fusion plugin package (`fusion-plugin-even-realities-glasses`) providing settings schema, a Fusion HTTP API client, cards, quick capture actions, a notifier, and transport stub — plus plugin routes and lifecycle hooks wired into the pi extension. The branch concludes with a small fi

Fusion-Task-Id: FN-3738
2026-05-08 12:05:46 -07:00
Fusion
aa548f81bf feat(FN-3278): add direct-mode review tab to task detail modal
Merges FN-3278 review tab direct-mode (data, rendering, regression tests, typing fixes, and docs across Steps 2/3/6), FN-3750 mobile keyboard stabilization for mailbox and reply composer, FN-3751 fire-and-forget wake dispatch to prevent request hangs, and FN-3748 workspace aliases for @fusion/* pack

Fusion-Task-Id: FN-3278
2026-05-08 11:36:26 -07:00
Fusion
ceb113c680 feat(FN-3751): make wake dispatch fire-and-forget to prevent request hangs
Merges FN-3751 mailbox wake dispatch (fire-and-forget fix, async coverage tests, and gate verification) with FN-3748 workspace aliases for `@fusion/*` packages in desktop vite config. The bulk of file changes are routing refactors and agent route tests supporting the wake mechanism, plus a minor ver

Fusion-Task-Id: FN-3751
2026-05-08 11:23:53 -07:00
Fusion
d90d66538a feat(FN-3737): add even realities integration research report
Adds a new Even Realities integration research report to the documentation.

Fusion-Task-Id: FN-3737
2026-05-08 10:41:59 -07:00
Fusion
7b4cd5ed25 feat(FN-3277): add review tab reviewState persistence and enriched UI state
This merge completes a review tab feature with persistent `reviewState` — adding the core types, TaskReviewTab UI enhancements (enriched states and interactions), GitHub integration routes for refresh/address flows, and full regression coverage for both PR and non-PR modes. The architecture docs wer

Fusion-Task-Id: FN-3277
2026-05-08 10:36:22 -07:00
Fusion
6fffa830bf feat(FN-3159): move roadmap ownership from core to fusion-plugin-roadmap pl
Moves roadmap ownership from `@fusion/core` to `fusion-plugin-roadmap`, deleting ~1,800 lines of roadmap store, types, ordering, and handoff logic from core and replacing it with ~760 lines of new route handlers in the plugin. The dashboard's roadmap routes and suggestions modules are substantially

Fusion-Task-Id: FN-3159
2026-05-08 09:35:45 -07:00
Fusion
45fe41c075 feat(FN-3722): route plugin store to configured global directory
Merges centralized plugin installation (FN-3722): TaskStore plugin store is now routed to a configured global directory with legacy migration hardening, and CLI plugin commands are aligned accordingly, backed by comprehensive integration and regression tests. Also includes a dashboard fix to return

Fusion-Task-Id: FN-3722
2026-05-08 08:07:01 -07:00
gsxdsm
68eff4418c fix(dashboard): return 404 for stale asset paths instead of SPA fallback
The catch-all served index.html for every unmatched URL, so a request
for a stale /assets/<oldhash>.js (after a rebuild changed the chunk
hash) got HTML back. Strict module MIME checking then failed the
script load and the page rendered as a blank shell. Exclude
/assets/, /icons/, /fonts/, /brands/, and any path with a file
extension so those return a real 404 — versionCheck.handleChunkLoadError
already knows how to recover from that.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 07:59:49 -07:00
Fusion
f3164b7724 feat(FN-3731): add action-gate reload endpoint for reloadable exempt-tools
Adds a reload endpoint for action-gate exempt tools, exposing `POST /api/system/reload-exempt-tools` on the dashboard to hot-reload the engine's mutable EXEMPT_TOOLS registry without a restart. The endpoint is wired through `agent-action-gate.ts` with test coverage for reloadable behavior.

Fusion-Task-Id: FN-3731
2026-05-08 07:18:58 -07:00
Fusion
845272effa test(FN-3729): add eval dashboard coverage
- Add EvalsView test coverage for eval runs entry rendering
- Add useEvals hook tests for response handling
- Add dashboard eval routes tests to verify API behavior
- Wire EvalsView with the additional exercised path

Fusion-Task-Id: FN-3729
2026-05-08 04:21:20 -07:00
Fusion
951b0d543f feat(FN-3725): add shell regression matrix and stabilize action gate and ro
This merge adds two policy features (executor role enforcement in core and internal coordination tool exemptions in the engine), introduces a shell regression matrix covering mobile, desktop, and dashboard with corresponding readme entries, and fixes a broad suite of tests across the dashboard, engi

Fusion-Task-Id: FN-3725
2026-05-08 02:17:41 -07:00
Fusion
f8a0903538 fix(FN-3716): stabilize verification and role policy checks
- Add shared agent role policy helpers for implementation task detection and executor-role enforcement
- Provide a standardized role-mismatch error formatter for delegation and assignment paths
- Update test isolation leak detection to ignore ephemeral fusion-test-home-root temp directories while preserving baseline checks

Fusion-Task-Id: FN-3716
2026-05-08 02:00:08 -07:00
Fusion
83be5775cd feat(FN-3724): add split-button for git pull with rebase option
The merge adds a pull split-button in the GitManager modal that lets users choose between a regular `git pull` and a `git pull --rebase`, with styling and test coverage for the menu interactions and API payload. It also fixes plugin toggle rendering (FN-3723) and adds a release note for plugin insta

Fusion-Task-Id: FN-3724
2026-05-08 00:01:20 -07:00
Fusion
b7f68d7dc0 feat(FN-3182): scope plugin installs globally with project enablement
- Store plugin installation metadata in central DB while preserving per-project enable/disable state
- Update plugin CLI and dashboard Plugin Manager copy/behavior to distinguish global install from project enablement
- Expand plugin store and loader test coverage, including legacy migration and scoped install assertions
- Update runtime plugin e2e tests to use isolated central DB directories and document the new semantics
- Add a changeset for @runfusion/fusion describing the plugin scope behavior change

Fusion-Task-Id: FN-3182
2026-05-07 23:21:05 -07:00
Fusion
954ae1078d feat(FN-3276): add task review tab with metadata persistence and desktop la
This merge lands three major features and a significant dashboard enhancement. FN-3276 adds a full Review tab to the task detail modal with multi-step lifecycle: review metadata persistence in the task store, new task workflow routes for refresh and same-task revision, and the review tab UI surface

Fusion-Task-Id: FN-3276
2026-05-07 23:21:05 -07:00
Fusion
6f3173abe7 feat(FN-3506): add discovery contract and integrate remote node discovery i
Merges node discovery onboarding (FN-3506) with two steps: a pre-registration discovery contract wired into the AddNodeModal UI, and full remote discovery integration with documentation. Also adds a local embedded runtime manager to the desktop app (FN-3404) and wires permanent-agent approval contex

Fusion-Task-Id: FN-3506
2026-05-07 23:21:05 -07:00
Fusion
c0ed278a4d feat(FN-3504): add path mapping API with core contracts, routes, client hel
This merge introduces three major features: a full path-mapping API layer across core, dashboard, and desktop (FN-3504, four commits), shell multi-profile support with a new NativeShellConnectionManager component and connection manager onboarding flow (FN-3403), and migration of the WhatsApp plugin

Fusion-Task-Id: FN-3504
2026-05-07 18:47:08 -07:00
Fusion
61a3942f06 feat(FN-3713): remove legacy webhook key references from schema test
Cleans up legacy webhook key references from the schema test file, removing outdated assertions that referenced deprecated fields.

Fusion-Task-Id: FN-3713
2026-05-07 18:29:54 -07:00
Fusion
903830b9af feat(FN-3560): add permanent agent gating enforcement in pi with tool class
The merge lands three major features: a permanent-agent gating system (FN-3560, 6 steps) that classifies and enforces tool access policies for permanent agents in the PI extension, with full test coverage and updated agent docs; an OpenClaw MCP bridge (FN-3717) adding MCP config, schema server, and

Fusion-Task-Id: FN-3560
2026-05-07 18:07:12 -07:00
Fusion
f43a5fd029 feat(FN-3394): add evals dashboard view with API routes and client hooks
Adds a full evals dashboard view (FN-3394) with a client hook, server-side read routes, and navigation integration across the Header and mobile nav, backed by comprehensive tests. Wires Hermes chat message tools with mailbox behavior documentation (FN-3620), and extends the agent heartbeat and tools

Fusion-Task-Id: FN-3394
2026-05-07 17:24:11 -07:00
Fusion
f894bdc1d6 feat(FN-3620): wire Hermes chat message tools and document mailbox behavior
Merges FN-3620, completing the Hermes chat mailbox integration with wired message tools, locked sender/recipient contract tests, and mailbox behavior documentation, plus a small CSS polish adding `focus-visible` styles and token radius to the render toggle. A changeset for FN-3710 (cluster task ID o

Fusion-Task-Id: FN-3620
2026-05-07 16:53:55 -07:00
Fusion
9e638f1902 feat(FN-3716): add planning mode priority controls for task routes and subt
Adds per-subtask priority controls to planning mode with three implementation steps (route priority support, UI controls, and design-token polish), gates research tools behind an experimental feature flag with a new core infrastructure module, and introduces a WhatsApp chat plugin with discovery and

Fusion-Task-Id: FN-3716
2026-05-07 16:03:25 -07:00
Fusion
8bbb7346b8 feat(FN-3714): add WhatsApp chat plugin with plugin discovery and install U
Adds a WhatsApp chat plugin (`plugins/fusion-plugin-whatsapp-chat/`) as the first bundled plugin, including the plugin package with UI rendering, dashboard plugin manager integration, CLI bundling support, and plugin route runtime context. Also updates documentation to cover plugin management and ap

Fusion-Task-Id: FN-3714
2026-05-07 14:28:29 -07:00
Timothy Laurent
d6ad56a173 fix(dashboard): address PR review feedback for model filtering and insights
- Always apply configured-provider filter (even when empty set)
- Convert getConfiguredProviderNames to async (fs/promises)
- Validate model overrides as non-empty provider+model pair
- Clear stale persisted insight model when no longer available
- Replace hardcoded max-height with design token in overflow menu

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-07 14:10:45 -07:00
Timothy Laurent
86712d4966 feat(insights): model selector with favorites, provider filtering, and configured-providers-only API
- Wire up CustomModelDropdown in InsightsView with favorites support:
  favoriteProviders, favoriteModels, and toggle callbacks
- Auto-promote resolved planning provider as implicit favorite when
  no explicit favorites are set
- Filter /models API to only return providers with credentials in
  Fusion's own auth stores (primary + legacy .pi + models.json),
  excluding supplemental stores (Codex CLI, Claude Code, env vars)
  that surface unconfigured providers
- Still allow enabled extension providers (Claude CLI, Droid CLI,
  llama.cpp) when their settings toggles are on

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-07 14:10:45 -07:00
Timothy Laurent
6e81daf98f fix(insights): preserve custom model selection across retries
Stores modelProvider/modelId in the run's inputMetadata.metadata at
creation time, then recovers it in the retry handler so the user's
explicit model choice survives a transient failure and retry.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-07 14:10:44 -07:00
Timothy Laurent
41af820f1d fix(insights): validate localStorage model values and tighten fallback condition
- Guard against malformed localStorage values (e.g. "provider/") by
  validating both parts are non-empty before sending to the server
- Only wire settings fallback when both provider AND modelId are
  explicitly provided, preventing mismatched provider/modelId combos

Addresses ISSUE-002 and ISSUE-003 from code quality review.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-07 14:09:39 -07:00
Timothy Laurent
1dcf9be93f feat(insights): accept optional model override in POST /run with settings fallback; fix retry handler
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-07 14:09:38 -07:00
Fusion
81da75f661 feat(FN-3713): add web builtin tool opt-in for AI agents
Added agent permission policy model with persistence in core, and wired web-builtin tool opt-in enabling planning and synthesis web tools in the dashboard with corresponding docs and a changeset. Also added an inline fast-mode toggle wired into peer executor state, retry logic for cluster task-ID ov

Fusion-Task-Id: FN-3713
2026-05-07 12:06:49 -07:00
Fusion
51c6ddb9a5 feat(FN-3545): add agent permission policy model and persistence
Introduces a multi-agent permission policy model in `@fusion/core` (types, store persistence, API exposure) with corresponding dashboard UI wiring in the agent onboarding modal and task detail modal, plus a distributed task ID overlap retry mechanism for cluster creation, an inline fast mode toggle

Fusion-Task-Id: FN-3545
2026-05-07 12:00:43 -07:00
Fusion
9ad340bba1 feat(FN-3710): retry overlap-class cluster create failures in distributed t
Adds retry logic for distributed task ID overlap conflicts across the cluster, hardening the ID allocator with exponential-backoff recovery, wiring the retry into task workflow registration, and documenting the behavior in architecture docs. Minor CSS tokenization on the Mailbox and Plugin Manager m

Fusion-Task-Id: FN-3710
2026-05-07 11:48:25 -07:00
Fusion
af0fc5fc95 feat(FN-3555): document richer onboarding drafts in agents.md and dashboard
Documents richer onboarding drafts in agents.md and updates the dashboard README with a small addition, completing Step 4 of the onboarding feature.

Fusion-Task-Id: FN-3555
2026-05-07 11:25:01 -07:00
Fusion
edbc8b2535 feat(FN-3703): implement assigned-agent triage inheritance in engine and tr
Implements assigned-agent triage inheritance (FN-3703), allowing triage logic to be delegated to the assigned agent rather than always routing through the original owner, with test coverage and documentation. Also adds immediate wake controls for agent inbox and message API (FN-3087), wires shared s

Fusion-Task-Id: FN-3703
2026-05-07 11:18:56 -07:00
Fusion
bbfa5f7b45 feat(FN-3708): restore narrow logs/system mouse auto-toggle policy and docu
The merge delivers three feature themes: FN-3708 restores and tests a narrow logs/system mouse auto-toggle policy in the TUI app with documentation, FN-3087 adds immediate wake controls for the agent inbox and messaging API routes, and FN-3704 separates plugin lifecycle management from setup probe s

Fusion-Task-Id: FN-3708
2026-05-07 11:00:51 -07:00