Commit Graph

787 Commits

Author SHA1 Message Date
Fusion
a9ecc8ae2f feat(FN-3871): add tracking issue title/body formatters
Added GitHub tracking issue title and body formatters to the dashboard (`packages/dashboard/src/github-tracking.ts`), with corresponding tests and documentation in the architecture docs. A changeset was included for this user-facing feature.

Fusion-Task-Id: FN-3871
2026-05-09 23:51:23 -07:00
Fusion
647fbf6f82 feat(FN-3870): wire GitHub tracking issue creation
Implements GitHub tracking issue creation (FN-3870) for the dashboard, wiring new routes for planning subtasks and task workflows, adding a dedicated `github-tracking` module with issue creation and auth fallback logic, and updating the main `github.ts` with enhanced capabilities — backed by compreh

Fusion-Task-Id: FN-3870
2026-05-09 23:22:24 -07:00
Fusion
18e0a4e22e feat(FN-3892): honor assigned runtime model for merger sessions
- Add resolveMergerSessionModel helper to centralize merger model selection precedence
- Route merger session creation paths through the helper for commit, push/rebase, and autostash recovery flows
- Add comprehensive engine tests for merger model resolution and fallback behavior
- Document merger model hierarchy in settings reference and add a patch changeset for @runfusion/fusion

Fusion-Task-Id: FN-3892
2026-05-09 21:41:20 -07:00
Fusion
81243b762b feat(FN-3869): add github tracking fields and resolver to tasks
Adds GitHub tracking fields to the task model with schema migration, store accessors, and type definitions in `@fusion/core`. New `github-tracking.ts` module exposes a resolver for fetching GitHub issue/PR metadata, integrated into the task store. Test coverage spans the new module, store integratio

Fusion-Task-Id: FN-3869
2026-05-09 20:42:05 -07:00
Fusion
87966fd13f feat(FN-3902): add stash recovery view docs to dashboard guide
Added documentation for the stash recovery view to the dashboard guide (FN-3902 Step 1).

Fusion-Task-Id: FN-3902
2026-05-09 20:36:52 -07:00
Fusion
c935e290d3 feat(FN-3906): add Chat Rooms experimental feature with Settings toggle
Added an experimental Chat Rooms feature gated behind a settings toggle in the dashboard. The ChatView rooms UI is now conditionally rendered based on the experimental features setting, controlled via the SettingsModal. Included documentation updates and corresponding test coverage.

Fusion-Task-Id: FN-3906
2026-05-09 20:20:07 -07:00
Fusion
d604d090a8 feat(FN-3863): add stash recovery dashboard surface and API routes
Merged FN-3863 brings stash recovery to the dashboard via three coordinated steps: engine-side orphan stash surfacing API in `merger.ts`, dashboard API routes for stash recovery data, and a new `StashRecoveryView` component with mobile support and inspect-diff row actions, integrated into the header

Fusion-Task-Id: FN-3863
2026-05-09 19:49:02 -07:00
Fusion
e69631ec24 feat(FN-3901): add builtin research web-search provider as default
The merge adds a builtin web-search research provider as the default, replacing the need for external research provider configuration and removing the setup gate for builtin defaults. Dashboard settings UX for research defaults was aligned (ResearchView, SettingsModal), CLI research commands were up

Fusion-Task-Id: FN-3901
2026-05-09 19:41:09 -07:00
Fusion
309e3f91a1 feat(FN-3897): add blocker fan-out hook, badge, and detail modal section
Implemented the blocker fan-out feature across the dashboard: added a `useBlockerFanout` hook to track blocking relationships, rendered a fan-out badge on task cards, and added a blocking section to the task detail modal, with tests covering the hook and responsive modal behavior.

Fusion-Task-Id: FN-3897
2026-05-09 19:19:41 -07:00
Fusion
4c46b76fc1 feat(FN-3827): sweep stale autostashes after merge completion
Merger now properly cleans up autostash git refs that survive past their useful lifetime, fixing race conditions during restore/cleanup and adding scheduled stale-sweep runs in the engine. The feature includes docs for the autostash lifecycle, new test coverage for the cleanup and sweep paths, and a

Fusion-Task-Id: FN-3827
2026-05-09 18:46:29 -07:00
Fusion
46404f6a2b docs(FN-3896): document chat room delete and messaging flow
- Update dashboard guide chat room section with delete action UI and confirmation dialog behavior
- Document room deletion semantics, API call path, and failure toast handling
- Replace stale placeholder note with shipped room thread loading/rendering and send-message flow
- Clarify relationship between direct chat, rooms, and quick chat with current messaging contract

Fusion-Task-Id: FN-3896
2026-05-09 18:27:13 -07:00
Fusion
1563533e14 feat(FN-3889): add bulk delete with dependency conflict detection to ListVi
Bulk delete in ListView is now complete with dependency conflict detection and user-facing recovery options, backed by shared utility logic and tests. The feature touched ListView's core behavior, companion tests, and a small changeset documenting the user-facing recovery behavior.

Fusion-Task-Id: FN-3889
2026-05-09 17:55:19 -07:00
Fusion
ed5c49c461 feat(FN-3887): generalize schema compatibility reconciliation across schema
Generalizes schema compatibility reconciliation in the core database layer with hardened architecture lint table discovery, backed by new and expanded tests and aligned documentation; includes a changeset for the `@runfusion/fusion` package.

Fusion-Task-Id: FN-3887
2026-05-09 17:47:05 -07:00
Fusion
7ed685a21b feat(FN-3899): add chat rooms with send routing and delete-room UI
This merge delivers chat rooms with room send routing and delete-room UI in the dashboard (FN-3899), including fixes for bundled plugin view imports and a release changeset. Supporting changes include a merger improvement that tightens scope-warning diff base when baseBranch is missing, companies.sh

Fusion-Task-Id: FN-3899
2026-05-09 16:29:11 -07:00
Fusion
ff20e9f337 feat(FN-3891): document memory backup settings in settings reference
Documents the memory backup feature in the settings reference and adds a changeset to prepare for publishing.

Fusion-Task-Id: FN-3891
2026-05-09 14:41:58 -07:00
Fusion
61e941c749 docs(FN-3887): clarify ntfy allowlist requirement for agent messages
- Update settings reference language for ntfy integration
- Clarify that agent messages require allowlisting configuration
- Keep notification setup guidance aligned with current behavior

Fusion-Task-Id: FN-3887
2026-05-09 14:04:01 -07:00
gsxdsm
6bb949da6b docs(FN-3882): document clearStaleBlockedBy() in architecture.md SelfHealingManager section 2026-05-09 13:55:51 -07:00
Fusion
2278ceff31 feat(FN-3879): add chat room management in ChatView
- Add useChatRooms hook with room lifecycle state and API integration
- Wire ChatView UI for room selection/creation and update room-focused tests
- Tokenize ChatView and TaskCard color usage to align with dashboard design tokens
- Update architecture docs and include FN-3879 changesets for published CLI package

Fusion-Task-Id: FN-3879
2026-05-09 13:21:47 -07:00
Fusion
25dd8cbb34 feat(FN-3868): add changeset for github tracking settings
Adds a changeset for the GitHub tracking settings feature (FN-3868), preparing it for the next release. The feature itself was implemented in earlier steps; this changeset marks it for publication to npm.

Fusion-Task-Id: FN-3868
2026-05-09 13:21:47 -07:00
Fusion
e0a84b27fb feat(FN-3452): document mesh lease recovery semantics
Documents mesh lease recovery semantics across the agents, architecture, and multi-project reference files, adding 32 lines of clarifying documentation to explain how mesh leases are recovered in the system.

Fusion-Task-Id: FN-3452
2026-05-09 11:31:57 -07:00
Fusion
7bf93e8501 fix(FN-3825): surface inline notification test feedback in settings
- Persist per-provider notification test results and render inline success/error feedback blocks
- Add ntfy "Test message notification" action wired to message-event test payload
- Keep toast notifications while also showing provider-specific status text with aria-live feedback
- Update SettingsModal tests to verify ntfy message-event call path and inline webhook/ntfy feedback rendering

Fusion-Task-Id: FN-3825
2026-05-09 11:02:12 -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
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
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
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
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
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
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
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
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
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
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
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
Fusion
72552fa93d feat(FN-3510): document coverage suites in multi-project docs
Added 8 lines of documentation for coverage suites in the multi-project guide (FN-3510 Step 6).

Fusion-Task-Id: FN-3510
2026-05-08 19:36:58 -07:00
Fusion
ea8cca24bb feat(FN-3164): update roadmap API architecture docs
Updated the roadmap API architecture documentation in `docs/architecture.md` as part of Step 6 of FN-3164.

Fusion-Task-Id: FN-3164
2026-05-08 19:20:58 -07:00
Fusion
eed16abacb feat(FN-3509): document node mapping availability UI in dashboard guide
Documents the node mapping availability UI in the dashboard guide.

Fusion-Task-Id: FN-3509
2026-05-08 18:44:16 -07:00
Fusion
6ab07c27d0 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
05329fb059 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
7913ea1f61 feat(FN-3761): extract roadmap UI into bundled plugin with chat fixes and m
This merge introduces a bundled roadmap plugin (extracting the roadmap UI into `plugins/fusion-plugin-roadmap`) with a new plugin-owned schema hook and store bootstrap, fixes chat scroll behavior by adding bottom-snap on open and correcting stale refs in queue flush handling for both `useChat` and `

Fusion-Task-Id: FN-3761
2026-05-08 18:12:59 -07:00
Fusion
08d2d130b5 feat(FN-3756): extract roadmap UI into bundled plugin and add autostash orp
Merges major roadmap plugin extraction (FN-3160/3161/3162), hardening the merger with autostash orphan cleanup and TOCTOU defenses (FN-3755/3756), adding shared state snapshots for mesh sync (FN-3451), shipping polling task notifications for the even realities plugin (FN-3743), defaulting non-epheme

Fusion-Task-Id: FN-3756
2026-05-08 17:43:47 -07:00
Fusion
726eb9a1d7 feat(FN-3162): add plugin-owned roadmap schema hook and store bootstrap
The merge introduces a plugin-owned roadmap schema system (FN-3162), allowing plugins to define their own schema initialization hook, with tests bootstrapped in the roadmap store and documentation added to the plugin authoring guide. The parallel FN-3281 work delivers review revisions, updates the l

Fusion-Task-Id: FN-3162
2026-05-08 17:37:38 -07:00
Fusion
c0cd5553da 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
6a6cb07d2c feat(FN-3508): resolve node-specific working dirs and align runtime surfaces
- Add canonical working-directory resolution with node mapping support in core and engine paths
- Update runtime/multi-project documentation and include published-package changesets for the merged work
- Migrate roadmap dashboard surface to the bundled plugin registry flow and adjust lazy-view integration/tests
- Default non-ephemeral agents to active state and extend related agent/route/executor test coverage

Fusion-Task-Id: FN-3508
2026-05-08 17:04:19 -07:00
Fusion
7e749ae1f4 feat(FN-3161): extract roadmap UI into plugin and remove built-in roadmaps
Merges a major roadmap plugin migration (FN-3161) that extracts the built-in roadmaps UI into `fusion-plugin-roadmap` with bundled plugin view registration, alongside three smaller features: agent default state hardening (FN-3773), polling task notifications for the even realities plugin (FN-3743),

Fusion-Task-Id: FN-3161
2026-05-08 17:01:28 -07:00
gsxdsm
24f2c56413 fix(engine): defend autostash drop against TOCTOU race
dropAutostashBySha resolved SHA→stash@{N} then ran git stash drop ${ref}
non-atomically. Any other process (interactive shell, parallel merger,
fix-agent) pushing a stash between resolve and drop shifted the index, so
we silently dropped the wrong entry while leaving ours behind. The task
log then claimed "Restored pre-merge autostash X cleanly" even though the
stash was still in the list — observed on FN-3558 (e81e922) and others.

Verify the ref still resolves to our SHA via git rev-parse before dropping;
on mismatch, re-resolve and retry up to 5x. Return success/failure so the
caller can record honest status to the task feed instead of unconditionally
logging "cleanly".

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 14:05:06 -07:00