Commit Graph

1244 Commits

Author SHA1 Message Date
Fusion
ef4cb4b7ec feat(FN-4259): add release note for exhausted-loop contract
Fusion-Task-Id: FN-4259
Fusion-Task-Lineage: 7a7ca17b-93ce-4319-8461-7d1462a2c0e1
2026-05-13 06:29:36 -07:00
Fusion
2e8c33a047 chore(FN-4223): add changeset and polish research description test
Fusion-Task-Id: FN-4223
Fusion-Task-Lineage: bc114ff2-ee0f-4e96-b1d2-6ba3112a48e4
2026-05-13 06:29:36 -07:00
Fusion
100f023f69 feat(FN-4230): complete Step 4 — add changeset
Fusion-Task-Id: FN-4230
Fusion-Task-Lineage: 99ad972d-a633-4905-b8e1-d606f4237b7d
2026-05-13 06:29:35 -07:00
Fusion
d829a0dc4f feat(FN-4190): complete Step 7 — tracking UX and summarization discoverability
Fusion-Task-Id: FN-4190
Fusion-Task-Lineage: 5d94a4ad-32fb-4d20-8d04-5d757619f104
2026-05-13 06:29:35 -07:00
Fusion
fd0cd93192 feat(FN-4214): fix live-log empty-state when agent logs become stale
Fixes a live-log empty-state regression in the workflow results tab by adding test coverage for the stale agent-log case, with a changeset prepared to publish the patch.

Fusion-Task-Id: FN-4214

Fusion-Task-Lineage: da180434-6d1d-497e-8f5a-f29d07a874f2
2026-05-13 06:29:35 -07:00
Fusion
11bfc1f217 fix(FN-4114): normalize invariant requeue state and add changeset
Fusion-Task-Id: FN-4114
Fusion-Task-Lineage: 44fd5718-42dc-44d1-8f5a-97b67dd05d13
2026-05-13 06:29:35 -07:00
Fusion
4f86627cf6 feat(FN-4199): complete Step 5 — docs and changeset
Fusion-Task-Id: FN-4199
Fusion-Task-Lineage: fd530f3d-ef2e-4684-ab05-5aaab6856f15
2026-05-13 06:29:35 -07:00
Fusion
8c20a23361 feat(FN-4168): complete Step 6 — document stalled review signal
Fusion-Task-Id: FN-4168
Fusion-Task-Lineage: 781ffc66-cb1c-42b9-85e1-e5cbe0655863
2026-05-13 06:29:35 -07:00
Fusion
7b2bb00d39 fix(FN-4201): add autosize regression coverage and finalize gates
Fusion-Task-Id: FN-4201
Fusion-Task-Lineage: 6bfc2e72-8c11-4e63-b3c7-9245965d2380
2026-05-13 06:29:35 -07:00
Fusion
d4ed1f554e feat(FN-4092): complete Step 5 — document unavailable recovery contract
Fusion-Task-Id: FN-4092
Fusion-Task-Lineage: fcee3a44-5c36-4899-bf9d-835d36abdf2e
2026-05-13 06:29:35 -07:00
Fusion
ac2781afd3 feat(FN-4121): complete Step 8 — add changeset for org chart layout toggle
Fusion-Task-Id: FN-4121
Fusion-Task-Lineage: aa8b8ab7-c250-4ce5-b42e-7b7a2ba920b1
2026-05-13 06:29:35 -07:00
Fusion
2905526342 feat(FN-4174): complete Step 4 — add changeset for always-on web search row
Fusion-Task-Id: FN-4174
Fusion-Task-Lineage: 8b50a52b-dc3a-448d-998b-09023fbdd9af
2026-05-13 06:29:34 -07:00
Fusion
aac53f54ec feat(FN-4217): complete Step 5 — document in-review stall signal
Fusion-Task-Id: FN-4217
Fusion-Task-Lineage: f5434e90-ad0c-41c5-bee9-1244cb69622b
2026-05-13 06:29:34 -07:00
Fusion
bf6a679ff1 feat(FN-4257): run durable heartbeat task sessions in worktree
Fusion-Task-Id: FN-4257
Fusion-Task-Lineage: db48d51e-9e7d-471d-b26b-2a8763fb41d1
2026-05-13 06:29:34 -07:00
Fusion
08b59c5e02 feat(FN-4153): complete Steps 7-8 — verify gates and document toggle
Fusion-Task-Id: FN-4153
Fusion-Task-Lineage: 6ec09467-c7a0-4a9d-9a09-16d5ef6f7a86
2026-05-13 06:29:34 -07:00
Fusion
d682cd02bb feat(FN-4228): complete Step 5 — add changeset
Fusion-Task-Id: FN-4228
Fusion-Task-Lineage: 86a2aac1-a45f-4cb0-b004-a95db3676355
2026-05-13 06:29:34 -07:00
Fusion
fb7caad307 feat(FN-4171): complete Step 4 — add changeset for error wrap fix
Fusion-Task-Id: FN-4171
Fusion-Task-Lineage: ec60e8bb-4fab-4b3b-a0d9-51d9ba3d2041
2026-05-13 06:29:34 -07:00
Fusion
a8de122d6d test(FN-4164): complete Step 3 — guard mobile enable button touch target
Fusion-Task-Id: FN-4164
Fusion-Task-Lineage: 7e3ea70f-c2e7-40c5-9de8-d8d3ab67c513
2026-05-13 06:29:34 -07:00
Fusion
991776b80c feat(FN-4271): create tracking issue for github-imported tasks
Adds a tracking issue mechanism for GitHub-imported tasks, creating an internal Fusion task to track the import lifecycle. The TaskCard component gains visibility into tracking status, backed by new tests in both TaskCard and GitHub tracking modules.

Fusion-Task-Id: FN-4271
2026-05-13 06:29:34 -07:00
Fusion
24e964274e feat(FN-4241): close stale merging fanout recovery gap in self-healing
Closes a gap in the stale merging fanout recovery path by adding recovery logic in the self-healing module, backed by unit tests covering the new behavior.

Fusion-Task-Id: FN-4241
2026-05-13 06:29:34 -07:00
Fusion
9c839eff11 feat(FN-4267): complete Step 4 — add release changeset
Fusion-Task-Id: FN-4267
Fusion-Task-Lineage: fc79d0e6-f30d-4a5c-84f3-33aac4cda1a4
2026-05-13 06:29:34 -07:00
Fusion
40ef791b4d feat(FN-4255): complete Step 4 — add docs and release note
Fusion-Task-Id: FN-4255
Fusion-Task-Lineage: 315c5491-0e27-46cb-8474-fda9bb3a0eff
2026-05-13 06:29:34 -07:00
Fusion
b3f2a716fa feat(FN-4275): complete Step 6 — add delivery metadata
Fusion-Task-Id: FN-4275
Fusion-Task-Lineage: 73857412-928d-4c51-8113-2ac5ce811d04
2026-05-13 06:29:34 -07:00
Fusion
d2d604f6a2 feat(FN-4266): complete Step 6 — add changeset
Ref: Runfusion/Fusion#216
Fusion-Task-Id: FN-4266
Fusion-Task-Lineage: 4105d2eb-f3d8-4297-9b49-bf7e5a2906be
2026-05-13 06:29:33 -07:00
Fusion
8427182b79 feat(FN-4270): complete Step 5 — add delivery changeset
Fusion-Task-Id: FN-4270
Fusion-Task-Lineage: 6e346590-2dd5-43cd-912f-9f9cbfb3421a
2026-05-13 06:29:33 -07:00
Fusion
7d3e7b48cf feat(FN-4250): ensure FileBrowserProvider wraps all App branches with tests
Refactored App.tsx to ensure FileBrowserProvider wraps all render branches, with a new test verifying the coverage. A design doc was added to document the approach, and vitest config received a minor adjustment.

Fusion-Task-Id: FN-4250
2026-05-13 06:29:33 -07:00
Fusion
53aa1e90f1 feat(FN-4249): complete Step 4 — document invariant and add changeset
Fusion-Task-Id: FN-4249
Fusion-Task-Lineage: e0052fae-38e1-4d66-8240-43d26f5790bb
2026-05-13 06:29:33 -07:00
gsxdsm
8b5df5c79d chore(release): v0.28.1
Version bump via changesets.
2026-05-12 23:05:47 -07:00
gsxdsm
33a1a9df1e fix: drop false-positive committed_reservation_for_existing_id integrity check
The rule flagged every committed reservation pointing at an existing task ID
as an anomaly, but that's the happy-path steady state — reservations
transition to `committed` immediately after the task row is inserted, so a
committed reservation is always expected to reference an existing task. On
any node with task history, the dashboard banner fired with hundreds of
"affected" IDs and the store emitted a spurious `[task-id-integrity] anomaly
detected` error log.

Removes the rule, its type/label/reader, and updates tests (core regression
guard now asserts committed reservations don't trigger anomalies; dashboard
server-test fixtures use a still-valid anomaly kind).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 23:04:56 -07:00
gsxdsm
b967967e90 chore(release): v0.28.0
Version bump via changesets.
2026-05-12 22:53:17 -07:00
Fusion
68f9fb2e6c fix(FN-4258): add changeset for task card GitHub icon anchor
- Add a patch changeset for @runfusion/fusion
- Document the dashboard task card update that anchors the GitHub linked/imported indicator to the bottom-right corner
- Preserve note of existing link behavior and accessibility metadata in release notes

Fusion-Task-Id: FN-4258
2026-05-12 22:52:01 -07:00
Fusion
0de04afeeb feat(FN-4187): fix mobile swipe-back navigation into PlanningMode detail pa
Merged PlanningModeModal swipe-back and New Session handling: the feature commits wire key swipe-back gestures to control mobile detail-pane visibility and document the nav trigger rule, while the test commit adds coverage for New Session and mobile swipe-back regressions.

Fusion-Task-Id: FN-4187
2026-05-12 22:52:01 -07:00
Fusion
6976911ec5 feat(FN-4173): enable always-on web search in ResearchView
Adds a changeset for a minor feature that locks the web search provider UI as always-on in ResearchView, with corresponding component and test updates.

Fusion-Task-Id: FN-4173
2026-05-12 22:52:01 -07:00
Fusion
6417f00e9d feat(FN-4163): make github tracking enable button compact on desktop
Adds compact desktop styling for the GitHub tracking enable button in the task detail modal, with a new CSS regression test covering the button styling.

Fusion-Task-Id: FN-4163
2026-05-12 22:52:01 -07:00
Fusion
91f15e0744 feat(FN-4140): land settings modal to general section by default
Adds a changeset for a patch and updates the SettingsModal to default to the "general" section on open, with tests covering the section routing behavior.

Fusion-Task-Id: FN-4140
2026-05-12 22:52:01 -07:00
Fusion
25e76d61da feat(FN-4227): add clickable file path links across dashboard
- Add reusable file path linkification utilities and FileBrowser context wiring across dashboard modals and log surfaces
- Linkify task detail, review, workflow, chat, activity, agent, dev server, and settings sync outputs so workspace paths open in the file browser
- Preserve inline code styling when wrapping detected paths and extend FileBrowserModal handling for linked navigation
- Cover the new linking behavior with dashboard tests and add a changeset plus AGENTS guidance for the reusable pattern

Fusion-Task-Id: FN-4227
2026-05-12 21:55:43 -07:00
Fusion
173bae9d2c feat(FN-4108): persist scope override fields (+4 more)
Commits merged:
- test(FN-4073): finalize invariant regression coverage
- feat(FN-4073): complete Step 4 — document merge invariant
- feat(FN-4073): complete Step 3 — enforce squash file-scope invariant
- feat(FN-4073): complete Step 2 — add file-scope invariant helper
- feat(FN-4073): complete Step 1 — persist scope override fields

Files changed:
.changeset/FN-4073-file-scope-invariant.md         |   9 +
 AGENTS.md                                          |   6 +
 packages/core/src/__tests__/store-update.test.ts   |  18 ++
 packages/core/src/db.ts                            |   2 +
 packages/core/src/store.ts                         |  34 +-
 packages/core/src/types.ts                         |   8 +
 .../__tests__/merger-file-scope-invariant.test.ts  | 357 +++++++++++++++++++++
 .../engine/src/__tests__/merger-test-helpers.ts    |   5 +
 packages/engine/src/merger.ts                      | 155 ++++++++-
 9 files changed, 582 insertions(+), 12 deletions(-)

Fusion-Task-Id: FN-4108
2026-05-12 21:52:58 -07:00
Fusion
3f5a2fcbf3 feat(FN-4244): add no-task heartbeat procedure override
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
2026-05-12 21:45:34 -07:00
Fusion
2d8b4d6bbb feat(FN-4225): add mobile double-tap to select graph task nodes
Adds touch double-tap detection to the node drag hook, enabling mobile-friendly interactions on the graph canvas, with coverage in the node drag and GraphTaskNode test suites.

Fusion-Task-Id: FN-4225
2026-05-12 21:23:24 -07:00
Fusion
d0c9e47f66 feat(FN-4253): close linked GitHub issues on task deletion
Implements automatic closing of linked GitHub issues when a task is deleted (FN-4253), adding deletion logic to the GitHub tracking state module with corresponding tests for both state management and deletion behavior, plus a patch changeset for the `@runfusion/fusion` CLI.

Fusion-Task-Id: FN-4253
2026-05-12 21:11:21 -07:00
Fusion
ab8f3a5630 feat(FN-4137): add review markdown toggle to document view (FN-4137)
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
2026-05-12 20:51:08 -07:00
Fusion
8220ec66b7 feat(FN-4238): export merger errors from engine and polish workflow results
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
2026-05-12 20:39:01 -07:00
Fusion
5c521434d2 feat(FN-4124): surface mission interview drafts across mission tooling
- Add dashboard API routes and mission interview store support to list and inspect draft missions
- Update Mission Manager UI to surface draft interview sessions with styling and regression coverage
- Extend CLI mission commands and extension tools to expose draft listings consistently
- Document the draft surfacing behavior and include a changeset for the published CLI package

Fusion-Task-Id: FN-4124
2026-05-12 19:38:39 -07:00
gsxdsm
42afaa8e6e fix(dashboard): guard taskIdIntegrity access in health banner
Optional-chain `taskIdIntegrity` so the project view doesn't crash with
`undefined is not an object (evaluating 'taskIdIntegrity.status')` when
the dashboard health response omits the field (e.g. against an older
server from before FN-4192).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 19:35:18 -07:00
Fusion
aecefac136 feat(FN-4098): document branch conflict recovery feature
Adds documentation for branch conflict recovery (FN-4098), covering the new CLI command, executor branch rename setting, recovery workflow, and delivery artifacts across the CLI reference, settings reference, and task management docs, with a changeset for the `@runfusion/fusion` package.

Fusion-Task-Id: FN-4098
2026-05-12 19:21:58 -07:00
Fusion
15281c304e feat(FN-4192): add task ID integrity detection and dashboard alerts
Implements task ID integrity detection across the stack (FN-4192): a new `task-id-integrity` module in core provides detector logic wired into the store, integrity health is surfaced via the dashboard API and legacy endpoint, and a banner component surfaces alerts in the UI — backed by comprehensive

Fusion-Task-Id: FN-4192
2026-05-12 19:10:07 -07:00
Fusion
73a774c7ae feat(FN-4133): lazy-load dockerode in DockerClientService
Lazy-loads the `dockerode` module in `DockerClientService` so the heavy dependency is only imported when Docker functionality is actually needed, improving startup time for non-Docker use cases. Tests were added to verify the lazy-loading behavior.

Fusion-Task-Id: FN-4133
2026-05-12 18:33:13 -07:00
Fusion
8fa3e8bfd1 feat(FN-4072): add diff volume gate to merger
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
2026-05-12 18:26:58 -07:00
Fusion
e7fc3a9d17 feat(FN-4177): add heartbeat messaging support for chat rooms
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
2026-05-12 18:20:17 -07:00
Fusion
df52cc2e84 feat(FN-4145): clear task pause state when fn_task_done is received
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
2026-05-12 17:59:59 -07:00