Commit Graph

4807 Commits

Author SHA1 Message Date
Fusion
9300b7a10b fix(FN-3842): treat already-merged branch as finalize success 2026-05-09 10:31:05 -07:00
Fusion
78c88a58b8 feat(FN-3842): complete Step 2 — add phantom-guard diagnostics 2026-05-09 10:31:05 -07:00
Fusion
fb486e0af9 feat(FN-3845): suppress suspended-tab chat load failures and rewrite mailbo
Merges FN-3845 chat-first mailbox guidance and FN-3838 toast suppression for suspended tabs. Adds a new `visibilitySuspension` hook to suppress chat load failure toasts when browser tabs are hidden, rewrites the mailbox opt-in guidance to lead with chat-first messaging, and expands test coverage acr

Fusion-Task-Id: FN-3845
2026-05-09 10:31:05 -07:00
Fusion
ed6d2e2423 fix(FN-3838): suppress suspended-tab chat load failure toasts
- 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
2026-05-09 10:31:05 -07:00
Fusion
4aa3c94fd2 feat(FN-3169): expand plugin authoring documentation
Updated the plugin authoring documentation (`docs/PLUGIN_AUTHORING.md`) with expanded authoring capabilities as part of Step 3, adding 23 lines of guidance for developers creating extensions.

Fusion-Task-Id: FN-3169
2026-05-09 10:31:05 -07:00
Fusion
b950e4a14a fix(FN-3794): scope plugin unload and WhatsApp connections per project
- Scope WhatsApp chat plugin connection state by project root to avoid cross-project leakage
- Extend plugin onUnload context plumbing and align core/plugin tests with the new ctx contract
- Document plugin onUnload context usage and add FN-3794 changeset metadata
- Promote universal web fetch availability across triage/reviewer/merger paths with updated engine tests
- Add reports/roadmap plugin test and scaffold updates carried by the branch

Fusion-Task-Id: FN-3794
2026-05-09 10:31:05 -07:00
Fusion
7854343115 docs(FN-3854): document Chat Rooms in dashboard guide
- Add a new Chat Rooms subsection under Chat View in docs/dashboard-guide.md
- Document Direct/Rooms scope toggle behavior and room creation workflow
- Capture room-name validation rules, member picker requirements, and current UI limitations
- Link to architecture and storage references for chat room API and schema details

Fusion-Task-Id: FN-3854
2026-05-09 10:31:05 -07:00
Fusion
42c6cc4a4e feat(FN-3850): normalize mention filtering for underscore handles in chat
The merge normalizes mention filtering in the chat components to handle underscore-prefixed handles, introducing a new `mentionMatching.ts` utility consumed by `AgentMentionPopup`, `ChatView`, and `QuickChatFAB`, with matching tests. It also removes a redundant try/catch in the PI approval gate (`pi

Fusion-Task-Id: FN-3850
2026-05-09 10:31:05 -07:00
Fusion
ef1d4c7768 feat(FN-3809): normalize mention filtering for underscore handles
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
2026-05-09 10:31:05 -07:00
Fusion
05016de3d5 fix(FN-3808): increase create-room member role typography
- 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
2026-05-09 10:31:05 -07:00
Fusion
409e18d70a feat(FN-3551): add persistent approval notification banner
- 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
2026-05-09 10:31:05 -07:00
Fusion
3026bccc81 feat(FN-3550): add pending approval badges to agent views and header
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
2026-05-09 10:31:05 -07:00
Fusion
070421c0ab feat(FN-3549): add mailbox approvals inbox and decision flow
- 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
2026-05-09 10:31:05 -07:00
Fusion
73a3a80117 feat(FN-3807): update schema-version assertions in tests
Schema version assertions were updated across seven core test files, with the most changes in `db.test.ts` and `insight-store.test.ts`, along with minor adjustments in the mission store, run audit, task documents, and roadmap store tests; a corresponding schema version constant was updated in `db.ts

Fusion-Task-Id: FN-3807
2026-05-09 10:31:05 -07:00
Fusion
c9cc970601 feat(FN-3284): expand PR review-tab test coverage and add direct-mode progr
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
2026-05-09 10:31:05 -07:00
Fusion
3b967d489c feat(FN-3283): add canonical task review data endpoints
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
2026-05-09 10:31:05 -07:00
Fusion
72edfaca05 fix(FN-3829): recover stale merging status and align chat sidebar search styling
- 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
2026-05-09 10:31:05 -07:00
Fusion
fff18ea313 feat(FN-3282): add durable review addressing snapshots
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
2026-05-09 10:31:05 -07:00
Fusion
301038effd feat(FN-3806): implement rooms create modal and chat sidebar with plugin ro
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
2026-05-09 10:31:05 -07:00
Fusion
da71e73ee0 feat(FN-3835): add plugin routes wiring and listTasksModifiedSince
Adds plugin routes infrastructure including `listTasksModifiedSince` contract in the task store, plugin types definitions, and wiring tests, while deprecating the dashboard roadmap backend in favor of a reports plugin scaffold; also stabilizes favorites and scroll-to-bottom tests and documents the s

Fusion-Task-Id: FN-3835
2026-05-09 10:31:05 -07:00
Fusion
cd97d08372 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
2dcfb19b35 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
a04cf1b8a6 feat(FN-3824): remove dashboard roadmap backend and add reports plugin scaf
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
2026-05-09 10:31:05 -07:00
Fusion
09fc04c0b2 test(FN-3823): stabilize favorites rollback timing assertions
- 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
2026-05-09 10:31:05 -07:00
Fusion
71ac2c5258 test(FN-3814): stabilize initial-open scroll-to-bottom regression test
- 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
2026-05-09 10:31:05 -07:00
Fusion
9e415f81f8 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
c744ef83c2 fix(FN-3794): pass unload context and isolate WhatsApp sessions per project
- Extend PluginOnUnload to receive runtime context and wire ctx through plugin-loader unload hooks
- Scope WhatsApp chat plugin connections by project root to avoid cross-project session leakage
- Update plugin authoring docs and add a patch changeset for @runfusion/fusion
- Align plugin test suites across WhatsApp and example/runtime plugins with the new onUnload context contract

Fusion-Task-Id: FN-3794
2026-05-09 10:31:04 -07:00
Fusion
b05d011c67 test(FN-3167): add roadmap plugin API client coverage
- Add comprehensive tests for roadmap plugin API client behavior and error handling
- Document plugin roadmap test ownership and maintenance expectations in README

Fusion-Task-Id: FN-3167
2026-05-09 10:31:04 -07:00
Fusion
b15324eaec feat(FN-3805): remove dashboard roadmap backend, add reports plugin scaffol
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
2026-05-09 10:31:04 -07:00
Fusion
0f885ee73c feat(FN-3804): remove dashboard roadmap backend and add reports plugin scaf
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
2026-05-09 10:31:04 -07:00
Fusion
1d0c090b7f feat(FN-3803): add universal web fetch to reviewer, merger, and triage agen
The merge introduces the universal web fetch tool across reviewer/merger/triage agents (FN-3803, 4 commits) with docs and regression test, extracts the roadmap as a plugin scaffold in `plugins/fusion-plugin-reports` (FN-3166, FN-3165) while removing dashboard roadmap backend and associated tests, ad

Fusion-Task-Id: FN-3803
2026-05-09 10:31:04 -07:00
Fusion
fbb1f5e36e 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
34b47343d6 feat(FN-3795): add WhatsApp dedupe retention pruning and reports plugin sca
Merges the reports plugin scaffold (FN-3778, FN-3790) with notification service improvements across the engine, plus mailbox UI enhancements; adds WhatsApp message deduplication retention pruning (FN-3795) with tests and documentation; introduces /tasks deep-link routing with theme-data URL resoluti

Fusion-Task-Id: FN-3795
2026-05-09 10:31:04 -07:00
Fusion
3b52721b70 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
Berlin Luk
021768bbf0 fix: guard PR retries for missing task branches 2026-05-09 21:04:47 +08:00
Fusion
7a2c0b53a2 feat(FN-3790): integrate dashboard, plugin, and merge-finalize updates
- Add reports plugin scaffold, Even Realities integration, and bundled plugin docs/API coverage updates
- Improve dashboard UX with chat session switchers, markdown mailbox rendering, org-chart connector fixes, and focus-visible/mobile styling refinements
- Harden engine and API behavior with SSE first-event watchdog, merge finalize no-op re-squash fix, and notification/stream reliability test coverage
- Remove remaining core roadmap type exports and document roadmap/plugin architecture and agent tooling updates

Fusion-Task-Id: FN-3790
2026-05-08 23:10:41 -07:00
Fusion
52a99389b8 feat(FN-3788): mention roadmap in bundled plugins docs
Updates the plugin management docs to reference the roadmap in the bundled plugins section.

Fusion-Task-Id: FN-3788
2026-05-08 23:07:17 -07:00
Fusion
d71c9102f7 feat(FN-3778): add reports plugin scaffold with notification service improv
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
2026-05-08 22:59:47 -07:00
CEO Agent
d6edc2d7d8 fix(FN-3789): add @fusion/dashboard to REQUIRED_BUILD_PACKAGES
@fusion/desktop tests dynamically import('@fusion/dashboard') in
local-runtime.ts. When packages/dashboard/dist/index.js is absent
(fresh checkout, merger verification env, CI without an explicit
dashboard build) Vite fails with 'Failed to resolve entry for package
@fusion/dashboard' before the desktop vitest alias takes effect.

scripts/ensure-test-artifacts.mjs is the canonical bootstrap layer
that pnpm test calls before running suites; register @fusion/dashboard
there so the dist is built on demand. Extends node:test coverage
mirroring the hermes/openclaw patterns.

Unblocks: FN-3789, FN-3793, FN-3795, FN-3803 (and any future task
whose merger verification path runs desktop tests).
2026-05-08 22:43:58 -07:00
Fusion
74cf6115b5 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
c6edb0efb6 fix(FN-3165): document roadmap plugin extraction
- Update architecture docs to reflect roadmap ownership in plugins/fusion-plugin-roadmap instead of @fusion/core
- Clarify storage table docs so roadmap tables are described as plugin-owned schema hooks
- Rewrite FN-1675 audit section to remove obsolete core-roadmap test references and point to current plugin/dashboard test commands
- Add a changeset for @runfusion/fusion documenting the roadmap extraction doc cleanup

Fusion-Task-Id: FN-3165
2026-05-08 22:29:27 -07:00
Fusion
fdf387b220 feat(FN-3800): add session switcher to chat header and mobile switcher
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
2026-05-08 22:25:47 -07:00
Fusion
42357c1649 fix(FN-3797): restore org chart connector endpoints for wide subtrees
- 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
2026-05-08 21:31:26 -07:00
Fusion
efe8733320 feat(FN-3773): fix no-op re-squash in merge finalize instead of refusing me
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
2026-05-08 21:28:14 -07:00
Fusion
61349f36fc feat(FN-3747): add even realities glasses plugin integration
Adds a changeset for the new Even Realities glasses plugin integration (`@runfusion/fusion` minor bump), accompanied by a test stabilization for the research wait extension.

Fusion-Task-Id: FN-3747
2026-05-08 21:18:56 -07:00
Fusion
551bcdc53d feat(FN-3746): document plugin API coverage and add focus-visible states
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
2026-05-08 21:06:44 -07:00
gsxdsm
72f8c48de9 feat(dashboard): render mailbox messages as markdown
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.
2026-05-08 20:48:26 -07:00
Fusion
b080ea0bc5 fix(FN-3760): add SSE first-event watchdog for legacy chat streams
- 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
2026-05-08 20:45:48 -07:00
Fusion
df9f5a95c6 feat(FN-3750): add test for selected roadmap update merge path
Adds test coverage for the selected roadmap update merge path in the roadmaps dashboard module.

Fusion-Task-Id: FN-3750
2026-05-08 20:42:30 -07:00
Fusion
6ee85daa47 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