- Add visibility suspension hook to detect tab-hidden periods during chat loading
- Update useChat and useQuickChat to suppress load-failed toasts triggered by tab suspension resumes
- Expand hook test coverage for suspension timing and toast suppression behavior
- Add plugin authoring documentation updates and include FN-3838 changeset
Fusion-Task-Id: FN-3838
Added a `mentionMatching.ts` utility to normalize agent mention filtering across the codebase, fixing the handling of handles containing underscores. Updated `AgentMentionPopup`, `ChatView`, and `QuickChatFAB` to use the new utility, with corresponding tests added including a new `mentionMatching.te
Fusion-Task-Id: FN-3809
- Increase the member role text sizing in CreateRoomModal for better readability
- Update CreateRoomModal.css with the adjusted typography value
- Keep the change scoped to create-room role styling only
Fusion-Task-Id: FN-3808
- Add ApprovalNotificationBanner component and integrate it in App task flow
- Define approval trigger contract and persist banner dismissal state across refreshes
- Deduplicate approval notifications so repeated approvals do not re-show dismissed alerts
- Add App/banner tests and update dashboard docs for approval banner behavior
Fusion-Task-Id: FN-3551
Added pending-approval badge indicators across the agent detail view, agents overview, mailbox, header, and mobile nav, wired through new and existing agent/mailbox APIs, with test coverage and documentation updates.
Fusion-Task-Id: FN-3550
- Add dashboard approvals APIs and route handlers for listing requests, fetching detail, and submitting approve/deny decisions
- Emit approval SSE events and subscribe mailbox refresh logic to keep approval lists and badges live
- Extend Mailbox view with an Approvals tab, pending/history filters, request detail history, and approve/deny actions
- Update mailbox styles, approval route tests, and docs for the new approvals workflow
Fusion-Task-Id: FN-3549
Adds test coverage for direct-mode progress states and significantly expands PR review-tab coverage in TaskReviewTab, with a minor tab-count label alignment fix in TaskDetailModal.
Fusion-Task-Id: FN-3284
Added canonical task review data endpoints (FN-3283) with new core types, expanded task workflow API routes, and updated GitHub integration (removing deprecated git-github routes in favor of consolidated github.ts). New API tests added for the task endpoints.
Fusion-Task-Id: FN-3283
- Add self-healing recovery for stale in-review merging statuses when no active merger owns the task
- Skip merge re-enqueue for tasks already marked with transient merging statuses and add regression coverage
- Wire active merge task ID provider through project runtime for safer stale-status detection
- Use chat-sidebar-search-container in ChatView with matching CSS padding
- Normalize fusion-plugin-reports test script to use local vitest and add changeset for @runfusion/fusion patch
Fusion-Task-Id: FN-3829
This merge adds two substantial features: a rooms and chat sidebar system (FN-3806) with a new `CreateRoomModal` and enriched `ChatView`, wired through plugin routes and a new `listTasksModifiedSince` core API; and a durable review addressing workflow (FN-3282) that persists snapshots, renders addre
Fusion-Task-Id: FN-3282
Adds a rooms feature to the chat sidebar including a new CreateRoomModal for creating chat rooms, with mobile selection handling and search empty-state copy fixes. Also introduces listTasksModifiedSince plugin contract and report plugin scaffold, replacing the removed dashboard roadmap backend.
Fusion-Task-Id: FN-3806
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
The merge introduces a new reports plugin scaffold, removing the dashboard roadmap backend entirely (roadmap routes, suggestions engine, and associated tests deleted), while wiring plugin-based routes as the replacement. It adds universal web fetch to reviewer, merger, and triage agents, isolates Wh
Fusion-Task-Id: FN-3824
- Assert optimistic unfavorite UI appears immediately after clicking remove
- Wait for the settings update call before checking rollback behavior
- Re-query the portal within waitFor to verify favorited UI is restored after rejected update
Fusion-Task-Id: FN-3823
- Rename the first-open quick chat scroll test for clearer intent
- Install scroll descriptors before resolving deferred messages to capture initial isOpen behavior
- Assert the final scroll position reaches scrollHeight without brittle setter-count expectations
Fusion-Task-Id: FN-3814
This merge extracts the roadmap feature from the dashboard into a new reports plugin scaffold, adds universal web fetch to reviewer/merger/triage agents, and introduces /tasks deep-link routing. The massive file deletions are roadmap backend code and 2,100+ lines of associated tests being removed as
Fusion-Task-Id: FN-3805
This merge adds a new reports plugin scaffold, removes the roadmap backend from the dashboard and core packages, extends web fetch capability to reviewer/merger/triage agents, adds WhatsApp message dedupe retention pruning, introduces `/tasks` deep-link support with theme-data URL resolution, and in
Fusion-Task-Id: FN-3804
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
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
The merge introduces a new `fusion-plugin-reports` plugin scaffold with settings schema, manifest, entry point, and tests, alongside a mobile session switcher in the chat header. It also adds a mailbox notifications system with ntfy/webhook providers, cleans up roadmap types from core, and includes
Fusion-Task-Id: FN-3778
This merge delivers five features: a session switcher for the chat header with mobile-aware dropdown styling and proper ARIA state, mailbox notification events with deep-link highlighting to the unread task, a fix for org chart connector endpoints in wide subtrees, a correction to merge finalize so
Fusion-Task-Id: FN-3800
- Compute first/last child subtree leaf counts in AgentsView and expose them as CSS variables on org-chart child groups
- Update org chart connector offset math to anchor horizontal bars to first/last child subtree centers instead of fixed node half-widths
- Keep defaults tokenized for single-child cases and preserve vertical-layout connector behavior
- Extend dashboard CSS and component tests to assert the new connector offset variables and connector rule coverage
Fusion-Task-Id: FN-3797
Fixes the merger to re-squash instead of refusing when a no-op merge verification occurs mid-merge, with regression tests added to prevent recurrence. Also replaces hardcoded color/spacing values in ProjectCard and ProjectOverview CSS with design tokens for theme consistency.
Fusion-Task-Id: FN-3773
Completes Step 6 of FN-3746 by adding `focus-visible` states to ProjectCard and ProjectOverview CSS components, and documenting the Even Realities plugin API coverage in the project docs.
Fusion-Task-Id: FN-3746
Adds GitHub-flavored markdown rendering to message bodies in both
MailboxView and MailboxModal via a shared MailboxMessageContent
component (ReactMarkdown + remark-gfm). Plain-text messages render
unchanged. Raw HTML is not executed.
- New MailboxMessageContent component with mailbox-scoped pre/table/link
overrides; links open in a new tab with noopener noreferrer.
- Wired into the full message body and conversation thread bodies in
both Mailbox surfaces (parity preserved).
- CSS for .mailbox-markdown, .mailbox-markdown-pre, .mailbox-markdown-table
with horizontal scroll for code blocks/tables; removed white-space:
pre-wrap on bodies since markdown owns its own whitespace.
- 10 new unit tests cover headings, lists, bold/italic, inline code,
fenced code blocks, link target/rel, GFM tables, plain-text passthrough,
raw-HTML safety, and testId forwarding. Existing 108 mailbox tests
continue to pass.
- Add a first-event watchdog in legacy chat SSE handling to prevent hangs before initial stream data
- Cover watchdog behavior with legacy chat stream API tests
- Add hook-level regression tests for useChat and useQuickChat first-send stream scenarios
- Include a changeset for @runfusion/fusion patch release
Fusion-Task-Id: FN-3760
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
Chat UX improvements land first: bottom-snap scrolling behavior is wired into both `ChatView` and `QuickChatFAB`, with comprehensive test coverage added for the components and their underlying hooks; stale-closure bugs in the `useChat` and `useQuickChat` queue-flush handlers are also patched. Roadna
Fusion-Task-Id: FN-3771
Merged branch adds FN-3759 queue flush ref fixes for `useChat` and `useQuickChat` hooks (with expanded regression test coverage), extracts the roadmap UI into a standalone plugin with schema hook and store bootstrap, ships FN-3281 review revisions with dashboard/plugin integration updates, and resol
Fusion-Task-Id: FN-3759
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
Merges a significant refactor of agent action gating into a unified `gating-classifications.ts` module shared across permanent agents and executor gating logic, plus new glasses quick-capture support with dedicated routes and parser, and a fix restoring step progress visibility during task execution
Fusion-Task-Id: FN-3742
The merge adds the `fusion-plugin-even-cards` workspace plugin with board card endpoints and auth support, refactors agent action gating classifications into a unified `gating-classifications.ts` module, refreshes review state on manual triggers, repoints roadmap type imports to the plugin package,
Fusion-Task-Id: FN-3753
Repointed roadmap type imports to the plugin package across the dashboard (RoadmapsView, useRoadmaps hook, legacy API). Also replaced an invalid spinner token in the TaskDetailModal CSS.
Fusion-Task-Id: FN-3741
Fixed FN-3749 by repointing roadmap type imports from their original location to the plugin package across the legacy API, RoadmapsView component, and useRoadmaps hook.
Fusion-Task-Id: FN-3749
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
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
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
Merges mobile mailbox keyboard handling improvements (anchoring layout to the visual viewport, keeping the reply composer focused and visible when the keyboard opens) across MailboxModal, MailboxView, and MessageComposer, with corresponding tests; also makes the wake dispatch fire-and-forget to prev
Fusion-Task-Id: FN-3750
- Wire mobile keyboard viewport signals into mailbox view and modal containers for anchored mobile layout
- Keep reply composer focused and visible while keyboard is open, with updated component styles and regression tests
- Make messaging wake dispatch fire-and-forget to avoid request hangs and expand route tests for async behavior
- Add desktop vitest workspace aliases for @fusion/* imports and include FN-3750/FN-3751 changesets
Fusion-Task-Id: FN-3750
Fixes a duplicate import in the roadmap plugin and adds `@fusion/*` workspace aliases to the desktop vitest configuration so tests can resolve internal packages correctly.
Fusion-Task-Id: FN-3748
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
normalizeShellState rebuilds the object and its profiles array on every
call. useShellConnection was calling it during render, so consumers that
put state.profiles in a useEffect dep array (AppInner does, for the
shell-connection status effect) re-ran the effect on every render. The
async getShellConnectionNativeResult resolution then triggered another
render, feeding the loop. On desktop it stabilized; on iOS Safari it
could pin the main thread.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Merges agent onboarding test coverage (FN-3559: lock contract for modal/dialog flows, launch flow, summary handoff), adds heartbeat readonly gating with action-gate reload endpoints (FN-3734/FN-3730), fixes a service worker blank-page issue on first install, and documents dependency graph behaviors.
Fusion-Task-Id: FN-3559
Adds a reload endpoint for action-gate exempt tools in the engine, wiring it into the dashboard routing system and documenting the behavior in the agents guide, with a changeset for the published CLI package.
Fusion-Task-Id: FN-3730