Merged FN-4244: adds an override path for the no-task heartbeat procedure in the engine, allowing agents to execute a custom procedure when they have no active task. The fix commit corrects the initial implementation, with test coverage for procedure source selection and updated documentation in `do
Fusion-Task-Id: FN-4244
Fusion-Task-Lineage: 6bf1bfe4-de2c-4467-93dc-d90231a53eb2
This large merge delivers substantial improvements across the dashboard, engine, and CI infrastructure. Key themes include GitHub tracking feature parity (mobile layout, card icons, header alignment, title derivation, restart persistence, untitled issue handling), chat/room UX enhancements (draft au
Fusion-Task-Id: FN-4137
Exports merger error types from the engine package for use in the dashboard and CLI. Adds tests for the engine barrel exports and fixes workflow results tab styling to align the edit toggle with button styles.
Fusion-Task-Id: FN-4238
Added a diff volume gate to the merger that blocks or warns on large diffs before merge completes. The feature includes a new `merger-diff-volume-gate` module wired into the merger, configurable via project settings, with tests covering all gate paths. Also updated docs and the changeset for the `@r
Fusion-Task-Id: FN-4072
The merge delivers room heartbeat messaging for agents, allowing heartbeat-triggered agents to send messages into chat rooms and subscribe to room activity. Core changes include new chat-store room APIs, engine heartbeat room message tools, and corresponding tests, with a small dashboard ChatView up
Fusion-Task-Id: FN-4177
The fix ensures paused tasks are unpaused when `fn_task_done` is received, preventing tasks from remaining stuck in paused state after completion. Test coverage was added for the paused-to-done handoff scenario in both the executor prompt and review verdicts test files. This is a patch release (`@ru
Fusion-Task-Id: FN-4145
The branch delivers a fix for stale blockers in the WorkflowResultsTab component, with the primary logic change in the component file and comprehensive test coverage added in the companion test suite.
Fusion-Task-Id: FN-4091
Implements branch conflict detection and recovery across the Fusion engine, CLI, and dashboard — surfacing git worktree conflicts when tasks conflict with unrelated branch state, and providing a recovery workflow to resolve them. The executor and worktree pool now integrate typed branch conflict che
Fusion-Task-Id: FN-4068
Removed dead `validationTaskId` plumbing from the mission execution loop and added tests to pin the updated behavior, with documentation for the final delivery step.
Fusion-Task-Id: FN-4131
Fusion-Task-Lineage: 1b1f010a-f520-43a0-9c10-40618b5fbc13
Removes unused `bun install` steps from two CI workflow files (`ci.yml` and `pr-checks.yml`), cleaning up the test-shards job configuration.
Fusion-Task-Id: FN-4105
Implements a stale heartbeat reaper in the engine that detects and cleans up heartbeat runs exceeding their timeout, preventing blocked heartbeat cycles from stalling agent activity. Includes comprehensive tests for the reaper gates and documentation of the feature in agents.md.
Fusion-Task-Id: FN-4119
Adds direct merge commit routing to the merger, allowing non-squash merges to bypass the squash-audit path when configured. The feature includes new `mergeCommitStrategy` settings, updated dashboard UI, expanded merger lifecycle tests, and documentation.
Fusion-Task-Id: FN-4069
The scheduler now excludes failed review tasks from blocking overlap dispatch, preventing stuck tasks from stalling downstream work. A CSS fix prevents the failed badge from incorrectly overriding the in-review status in the list view, with tests covering both the scheduler logic and the badge displ
Fusion-Task-Id: FN-4200
Adds warning logic when overlapping in-progress step updates occur, and wraps workflow result table headers with proper text handling and styling in the dashboard UI.
Fusion-Task-Id: FN-4104
Implements optimistic room composer clear in the ChatView, providing instant UI feedback when switching rooms without waiting for server confirmation, with accompanying tests and documentation updates.
Fusion-Task-Id: FN-4179
Fusion-Task-Lineage: 0c3588fa-81ca-464b-b001-506c1756d0ea
Fixes a FN-3964 follow-up issue where paused state wasn't being cleared on task completion, adding a test to cover the fn_task_done path.
Fusion-Task-Id: FN-4167
This merge implements room message notifications across the system, adding a core room event type, wiring the notification dispatcher to room activity, and delivering notifications via ntfy and webhook providers with updated settings UI and API routes.
Fusion-Task-Id: FN-4178
Adds room transcript context compaction (FN-4180) to the dashboard chat layer — widens the fetch window then compacts older messages into a summary window to reduce token overhead while keeping full context recent. Includes a new 127-line test suite covering the compaction logic, a small fix to reus
Fusion-Task-Id: FN-4180
Fusion-Task-Lineage: 9e7e3a32-f2da-4c86-871b-37891f747561
Adds always-on web search capability to the research system, locking the web search provider in settings UI and updating the ResearchView to surface web search as a persistent toggle with agent tool integration, plus corresponding docs and test coverage.
Fusion-Task-Id: FN-4135
Adds comprehensive test coverage for the merger audit gate across two test files, extending lifecycle coverage to 183 lines and adding squash-audit coverage with 31 lines.
Fusion-Task-Id: FN-4097
Fixes overlap merge checkout logic by removing the composite checkout approach and replacing it with explicit workflow-specific checkout steps, with a new CI job to guard against regressions and a test hardening the temporary directory cleanup path.
Fusion-Task-Id: FN-4157
FN-4146 adds workspace verification to the planning system, including a new verification subtask in the planning module and reconciling the corresponding route tests. The bulk of the work is in `planning.ts` and its test files, with a minor adjustment to the merger overlap guard test.
Fusion-Task-Id: FN-4146
Adds a task reassignment sync helper to the core store, wires it into the system, and ships regression tests; includes a patch changeset for `@runfusion/fusion`.
Fusion-Task-Id: FN-4132
Fusion-Task-Lineage: 80ec3c62-7c09-49dd-9e49-74b203e48bf4
- Fall back to ntfy JSON publish requests for unicode titles/messages while preserving auth and click metadata
- Truncate ntfy titles and UTF-8 message bodies to documented limits without splitting surrogate pairs
- Extend notifier and provider tests to cover unicode mailbox events, truncation, and end-to-end message notification delivery
- Document the ntfy encoding/truncation behavior and add a patch changeset for @runfusion/fusion
Fusion-Task-Id: FN-4127
Implements an overlap guard for the merger that prevents concurrent merges of tasks with conflicting file changes, wired through a new overlap-aware fallback strategy and exposed via a dashboard setting. The feature includes a 406-line test suite for the overlap guard, a 203-line lifecycle integrati
Fusion-Task-Id: FN-4071
Preserves task rerun summaries so they persist across retries rather than being overwritten, with tests validating the persistence behavior and a patch changeset for `@runfusion/fusion`.
Fusion-Task-Id: FN-4106
Merge starvation recovery was hardened across the engine: self-healing now detects and clears blocked-in-review tasks that starve the merger, the project engine gains defensive recovery hooks for stalled merges, and tests cover the new recovery paths.
Fusion-Task-Id: FN-4084
Adds ntfy access token support to Fusion's notification system, wiring the token through the core settings schema, dashboard UI (SettingsModal), engine notifier, and notification pipeline, with corresponding tests across core, dashboard, and engine packages; also updates settings and storage documen
Fusion-Task-Id: FN-4078
FN-4093 introduced a reusable `setup-node-pnpm` composite GitHub Action and refactored the PR checks workflow to use it, reducing the workflow file by over 60 lines while adding a contract test for the action. A small follow-up stabilizes workspace quality gates by adding an export in the core store
Fusion-Task-Id: FN-4093
Restores green verification gates for executor review verdicts (FN-4095) with a targeted core store change, and adds a regression test ensuring the QuickChatFAB scrolls to the bottom when opened.
Fusion-Task-Id: FN-4095
Adds a squash-merge audit gate that verifies duplicate-cherry-pick commits and file-overlap losses after any squash merge into main, restoring the post-squash audit step to the merge workflow with test coverage for both the audit logic and the broader merger lifecycle.
Fusion-Task-Id: FN-4067
Fusion-Task-Lineage: 593aa917-5640-495b-b1ae-80c3eaa09d01
Hardened SQLite concurrent-write safety in `@fusion/core` by auditing WAL enforcement and adding immediate write transactions to prevent stale reads under load, with executor semaphore limit tests in `@fusion/engine` validating the concurrency bounds; added a new `store-concurrent-writes.test.ts` in
Fusion-Task-Id: FN-4083
Fusion-Task-Lineage: adabe51a-a9c4-481a-850d-985c373df51a
The merge replaces all real `setTimeout`/`sleep` polling with deterministic event-based waits across the executor pause integration tests, restart integration tests, dashboard tests, and chat-store tests, making the suite faster and more reliable.
Fusion-Task-Id: FN-4087
Implements workflow revision forking with a new per-project setting, allowing follow-up tasks to inherit a fork of the calling task's workflow rather than the original revision. The feature adds classification logic, fork execution, and the settings UI, with docs and tests covering the full flow.
Fusion-Task-Id: FN-4070
Restores the bound reports lookup in the heartbeat executor (FN-4056), updating the relevant logic in `agent-heartbeat.ts` with a corresponding test and documentation clarification in `agents.md`.
Fusion-Task-Id: FN-4056
Adds reviewer prompt compaction and automatic retry logic when the reviewer hits context-window limits, with matching test coverage and a changeset for `@runfusion/fusion`.
Fusion-Task-Id: FN-4082
Adds task priority support to the task creation flow, spanning the engine runtime (`agent-tools.ts`, `triage.ts`), the CLI extension interface (`extension.ts`), and corresponding documentation and tests. The changeset bumps `@runfusion/fusion` as a minor version.
Fusion-Task-Id: FN-4074
Fusion-Task-Lineage: 726c0ae6-90fb-4c13-ace1-215a2becb2a9
Added delegate collision detection and error surfacing across the task creation and delegation pipeline. The core store now throws a typed `DelegateCollisionError` when `createTask` encounters a duplicate task ID, the engine's `delegate_task` tool propagates these errors with context, and the CLI ex
Fusion-Task-Id: FN-4045
Adds defensive recovery logic for stale review sessions: the executor now guards against resuming in an invalid worktree context, the self-healing manager recovers stale session paths and unblocks dependent tasks, and the restart recovery coordinator is updated to classify these cases correctly. Inc
Fusion-Task-Id: FN-4031
Adds a global `thinkingLogEnabled` setting that gates AI thinking log persistence across the engine (executor, reviewer, merger, triage, step-session) and exposes the control in the dashboard Settings modal, with tests verifying settings parity and modal behavior.
Fusion-Task-Id: FN-4062
Enforces memory write contracts for triage and planning agents, adding tests in both `project-memory.test.ts` and `triage.test.ts` to guard the contract boundaries established in `project-memory.ts`.
Fusion-Task-Id: FN-4063
Fusion-Task-Lineage: 5f86295b-d583-4757-9aa5-30a64b2cc2d6
Centralized routing policy helpers in core and aligned both direct assignment and delegation to route engineer-role agents consistently, ensuring assigned tasks respect explicit engineer routing the same way delegated tasks do. Added comprehensive test coverage across core, CLI, dashboard, and engin
Fusion-Task-Id: FN-3935
Fusion-Task-Lineage: 069f4d54-f7a8-4bd3-a2c3-4de830de042f
Added memoization for startup slim task list reads (`store.ts`), with dashboard server routing startup reads through the memo window and tests covering the store watcher consumers in scheduler and worktree-pool, plus performance documentation.
Fusion-Task-Id: FN-4027
Codifies the worktree database open-path hydration failure with a recovery bootstrap mechanism, documented the behavior in storage docs, and added test coverage for the executor hydration degradation path — all gated behind a patch changeset for `@runfusion/fusion`.
Fusion-Task-Id: FN-4039
Hardened empty `rawResponse` handling in the memory insights module by adding defensive checks to prevent errors when the response is empty, accompanied by tests to cover those edge cases (FN-4041 Step 1).
Fusion-Task-Id: FN-4041
Added self-healing logic to prevent merge-confirmed tasks from re-entering the executor, with test coverage for both merge error recovery and self-healing behavior, plus corresponding architecture and task-management docs.
Fusion-Task-Id: FN-4019
Adds stale timer repair handling to the heartbeat scheduler with test coverage, and updates the agents documentation accordingly.
Fusion-Task-Id: FN-4033