Commit Graph

7431 Commits

Author SHA1 Message Date
gsxdsm
e57db86a5c FN-6029: restore board drop-check regression coverage
Restore Board drag-drop pre-check coverage by extracting the decision logic into a reusable helper.

- extract Board canDropTask rejection logic into a shared helper used by the component
- replace Lane-mocking coverage with direct helper tests for workflow, column, and capacity branches
- add regression cases for missing workflows, default-workflow fallback, same-column WIP drops, and cross-workflow occupancy handling

Files changed:
 packages/dashboard/app/components/Board.tsx        |  37 +--
 .../__tests__/Board.canDropTask.test.tsx           | 261 ++++++++++++---------
 .../dashboard/app/components/boardCanDropTask.ts   |  56 +++++
 3 files changed, 218 insertions(+), 136 deletions(-)

Fusion-Task-Id: FN-6029

Fusion-Task-Lineage: cd71bbc5-0f97-49c3-9eef-0dd8221341c0
2026-06-08 13:32:58 -07:00
gsxdsm
40fb1f1d5a FN-6002: fix raw rgba CSS token violations
Replace raw RGBA styling in scoped dashboard CSS with theme-token-backed values.

- update PullRequestView.css state, banner, error, and disagreement styles to use CSS variables with existing rgba fallbacks
- replace SessionTerminal tooltip box-shadow with the shared shadow token
- exclude out-of-scope Board.canDropTask.test.tsx changes from the squash merge

Files changed:
 packages/dashboard/app/components/PullRequestView.css | 14 +++++++-------
 packages/dashboard/app/components/SessionTerminal.css |  2 +-
 2 files changed, 8 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-6002

Fusion-Task-Lineage: 1f0431e1-32e8-4c24-9f02-3d641e8b074f
2026-06-08 13:32:58 -07:00
gsxdsm
e623340e71 FN-5994: restore project summarization model settings
Keep summarization and PR metadata model selection on project settings while leaving workflow lanes on the workflow.

- restore the project summarization model lane in Project Models and replace per-phase workflow lanes with a workflow-settings redirect stub
- remove moved workflow model keys from project settings defaults/save paths and update settings docs/tests for the restored project lane behavior
- make PR metadata generation resolve its model from the title summarizer settings lane instead of task planning settings

Files changed:
 docs/settings-reference.md                         |   4 +-
 .../core/src/__tests__/settings-migration.test.ts  |  18 +-
 .../core/src/__tests__/settings-parity.test.ts     |  17 +-
 packages/core/src/__tests__/store-settings.test.ts |  54 ++--
 .../core/src/__tests__/task-creation-hook.test.ts  |  10 +-
 packages/core/src/builtin-workflow-settings.ts     |  24 --
 packages/core/src/settings-schema.ts               |  13 +-
 .../components/__tests__/SettingsModal.test.tsx    |  11 +-
 .../app/components/settings/save-split.ts          |  11 +-
 .../settings/sections/ProjectModelsSection.tsx     | 330 +++------------------
 .../src/__tests__/pr-metadata-generator.test.ts    |  25 +-
 packages/dashboard/src/pr-metadata-generator.ts    |   4 +-
 12 files changed, 140 insertions(+), 381 deletions(-)

Fusion-Task-Id: FN-5994

Fusion-Task-Lineage: f7f6f1ff-5d06-4d16-b46d-644eb219e7c1
2026-06-08 13:32:58 -07:00
gsxdsm
53ab22449f FN-6017: fix chat generation-slot race and restore dashboard test
Fix the chat-manager race so the rescued dashboard test can run reliably again.

- wait for the first hanging prompt to be created before asserting generation-slot state in the chat-manager isolation test
- remove the dashboard chat-manager test from Vitest excludes so it runs in both backfill and default dashboard API projects
- clear the chat-manager entry from the flaky-test quarantine ledger after rescuing the test

Files changed:
 packages/dashboard/src/__tests__/chat-manager.test.ts | 16 +++++++++++-----
 packages/dashboard/vitest.config.ts                   |  3 +--
 scripts/lib/test-quarantine.json                      |  8 +-------
 3 files changed, 13 insertions(+), 14 deletions(-)

Fusion-Task-Id: FN-6017

Fusion-Task-Lineage: 5e3bd9ad-3502-4956-bab2-fa7b36f8bcab
2026-06-08 13:32:58 -07:00
gsxdsm
ce4d0a899f FN-6008: document FTS migration defer evidence and align workflow IDs
Refresh the FTS migration guidance with fresh evidence and reconcile workflow interpreter naming.

- document post-FN-5943 production evidence showing the single-file tasks_fts index remains bounded and rebuild-free
- keep the storage guidance explicitly deferred until recurring corruption or sustained bloat is observed
- relax the foreach parser test to accept the current nested loop/foreach error wording
- align the authoritative workflow driver ID with the task branch change during conflict resolution

Files changed:
 docs/storage.md                                         | 7 ++++++-
 packages/core/src/__tests__/workflow-ir-foreach.test.ts | 2 +-
 packages/engine/src/workflow-authoritative-driver.ts    | 2 +-
 3 files changed, 8 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-6008

Fusion-Task-Lineage: d8c7c05c-f003-453d-bbd1-d9f0dda62f7c
2026-06-08 13:32:58 -07:00
gsxdsm
a1411b1e0b FN-6023: enrich workflow tab with overview, graph, and model settings
Add richer workflow context and controls to the task detail workflow tab.

- show workflow overview cards for selected workflow, execution phase, aggregate result, and step progress
- add a collapsible workflow graph preview plus edit-workflow affordance wired through the task detail modal
- expose effective model settings and thinking level, update docs, and cover the new UI in WorkflowResultsTab tests

Files changed:
 docs/dashboard-guide.md                            |   2 +-
 packages/dashboard/app/components/AppModals.tsx    |   1 +
 .../dashboard/app/components/TaskDetailModal.tsx   |   5 +
 .../app/components/WorkflowResultsTab.css          | 113 +++++++++
 .../app/components/WorkflowResultsTab.tsx          | 281 ++++++++++++++++++++-
 .../__tests__/WorkflowResultsTab.test.tsx          | 209 ++++++++++++++-
 6 files changed, 592 insertions(+), 19 deletions(-)

Fusion-Task-Id: FN-6023

Fusion-Task-Lineage: 7d4b46d2-a3ad-4eb2-96ed-b6454943036c
2026-06-08 10:33:17 -07:00
gsxdsm
60eb2ec995 FN-6018: allow stopping and deleting failed agents
Let failed agents be stopped and deleted consistently across the dashboard and agent lifecycle.

- allow agents in the error state to transition to paused and cover the new lifecycle path in core tests
- expose delete controls for failed agents in the agents list and mobile detail view with dashboard regression coverage
- update CLI stop-tool guidance and add a patch changeset for the published package

Files changed:
 .changeset/fn-6018-agent-error-stop-delete.md      |  7 ++++
 packages/cli/src/__tests__/extension.test.ts       | 16 ++++++++
 packages/cli/src/extension.ts                      |  4 +-
 packages/core/src/__tests__/agent-store.test.ts    | 16 ++++++++
 packages/core/src/types.ts                         |  2 +-
 .../dashboard/app/components/AgentDetailView.tsx   |  4 ++
 packages/dashboard/app/components/AgentsView.tsx   |  2 +-
 .../__tests__/AgentDetailView.core.test.tsx        | 24 +++++++++++-
 .../app/components/__tests__/AgentsView.test.tsx   | 44 +++++++++++++++++++++-
 9 files changed, 112 insertions(+), 7 deletions(-)

Fusion-Task-Id: FN-6018

Fusion-Task-Lineage: 40159b9b-4d14-4f1e-9bd9-d018e54db7ee
2026-06-08 10:33:17 -07:00
gsxdsm
84330f7dc9 FN-6016: quarantine flaky chat-manager generation-slot test
Quarantine the flaky dashboard chat-manager generation-slot test until the underlying race is fixed.

- exclude packages/dashboard/src/__tests__/chat-manager.test.ts from dashboard API Vitest projects
- record the quarantine entry with failure context, rescue requirements, and the 2026-06-08 quarantine date

Files changed:
 packages/dashboard/vitest.config.ts | 2 ++
 scripts/lib/test-quarantine.json    | 8 +++++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6016

Fusion-Task-Lineage: 2cd97f8e-db06-4e49-b437-66fee64fb3a9
2026-06-08 10:33:16 -07:00
gsxdsm
3b3c5ed0bf FN-5997: fix mobile chat empty state spacing
Remove the extra mobile right margin from chat empty states while preserving other chat pane states.

- add mobile message-pane padding and remove card chrome from empty-state containers inside mobile chat messages
- expand the mobile chat rendering regression test to cover direct threads, room threads, loading, populated, streaming, and new-chat empty states
- rename the regression suite to FN-5997 and assert the empty state spans the full mobile message pane

Files changed:
 packages/dashboard/app/components/ChatView.css     |  9 +++++
 .../__tests__/ChatView.mobile-render.test.tsx      | 46 +++++++++++++++-------
 2 files changed, 40 insertions(+), 15 deletions(-)

Fusion-Task-Id: FN-5997

Fusion-Task-Lineage: ea424660-e8c6-4691-9234-463866aacb2e
2026-06-08 10:33:16 -07:00
gsxdsm
2fd214b4f2 FN-5975: extend archive FTS maintenance coverage
Add archive-database FTS maintenance and document the expanded compaction policy.

- add archive FTS maintenance helpers for optimize, rebuild, size measurement, and row counts
- extend self-healing maintenance to compact and rebuild archived_tasks_fts on a slower archive-specific cadence
- cover archive FTS maintenance with new core and engine tests and update architecture/storage docs

Files changed:
 docs/architecture.md                               |   2 +-
 docs/storage.md                                    |  12 +-
 .../__tests__/archive-db-fts-maintenance.test.ts   | 221 +++++++++++++++++++++
 packages/core/src/archive-db.ts                    |  61 +++++-
 packages/core/src/db.ts                            |  21 +-
 packages/core/src/store.ts                         |  20 ++
 .../src/__tests__/fts-maintenance-archive.test.ts  | 207 +++++++++++++++++++
 packages/engine/src/self-healing.ts                |  80 ++++++++
 8 files changed, 608 insertions(+), 16 deletions(-)

Fusion-Task-Id: FN-5975

Fusion-Task-Lineage: 13645c8c-3126-4d1b-af23-7cab1a8bb276
2026-06-08 10:33:16 -07:00
gsxdsm
c0b6f212c9 fix(FN-5994): address verification review feedback
Harden command normalization edge cases and abort loop compaction on timeout before falling through to stuck-task requeue.

Fusion-Task-Id: FN-5994
2026-06-08 10:23:01 -07:00
gsxdsm
0c8674c37c fix(FN-5994): prevent verification hangs
Normalize package file-filter verification to direct Vitest execution, kill timed-out process groups, and bound loop-recovery compaction so stuck tasks cannot spin indefinitely.

Fusion-Task-Id: FN-5994
2026-06-08 09:44:00 -07:00
gsxdsm
6d3d12897b fix(FN-0000): show auto-merge in selected workflow board 2026-06-08 08:22:16 -07:00
gsxdsm
035946272d Merge pull request #1509 from Runfusion/feature/workflow-loop-nodes
Show auto-merge toggle on workflow review columns
2026-06-08 08:15:41 -07:00
gsxdsm
c0fb923527 fix(FN-0000): address auto-merge review feedback 2026-06-08 07:57:11 -07:00
gsxdsm
bd5315fd4d feat: allow disabling built-in workflows 2026-06-08 07:53:42 -07:00
gsxdsm
d8a015e22c fix(FN-0000): show auto-merge on workflow review columns 2026-06-08 00:49:44 -07:00
gsxdsm
c9b780217b Merge pull request #1508 from Runfusion/feature/workflow-loop-nodes
Add bounded workflow loop nodes
2026-06-08 00:33:25 -07:00
gsxdsm
75867c4002 fix(FN-0000): address workflow loop review feedback 2026-06-08 00:19:50 -07:00
gsxdsm
c30492fdb0 test: align PR checks shape with Node build gate 2026-06-07 23:57:02 -07:00
gsxdsm
a504238d26 feat(FN-0000): add workflow loop nodes 2026-06-07 23:56:25 -07:00
gsxdsm
bd16ae836d Update packages/dashboard/app/components/ListView.tsx
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-06-07 23:39:51 -07:00
gsxdsm
d23296c8ee test: clean ListView act warnings 2026-06-07 23:32:57 -07:00
gsxdsm
56b194383d fix: address workflow PR feedback 2026-06-07 23:30:16 -07:00
gsxdsm
e138971030 fix: stabilize workflow board and loop recovery 2026-06-07 23:30:16 -07:00
gsxdsm
e1a244adf6 fix: remove unused Column import in dashboard legacy.ts 2026-06-07 23:30:16 -07:00
gsxdsm
708c3c2301 Merge pull request #1506 from Runfusion/feature/https-github.com-Runfusion-Fusion-issues-1472
fix(desktop): include ms in packaged runtime
2026-06-07 23:25:16 -07:00
gsxdsm
340b2efa39 Merge pull request #1467 from buihongduc132/upstream-pr/project-selector-enhancements
feat(dashboard): scrollable, autocomplete, bookmarkable project selector
2026-06-07 23:18:30 -07:00
gsxdsm
b3fe830132 fix(FN-5988): include ms in desktop package runtime
Ensure packaged desktop apps include the transitive debug dependency needed by extract-zip during startup.

Fusion-Task-Id: FN-5988
2026-06-07 23:12:04 -07:00
gsxdsm
55a8e14d5d Merge pull request #1502 from Runfusion/feature/workflow-settings
feat(workflow-settings): simplify workflow model lanes
2026-06-07 23:10:55 -07:00
gsxdsm
a27921a276 fix: address PR review feedback (#1467)
- guard optional project selection callbacks and keep bookmarked search matches visible
- use structured timeout/rate-limit handling in retry backoff
- add focused regressions for selector and retry behavior

Note: pnpm test passed the merge gate but hit pre-existing non-blocking engine mock failures in changed-package tests.
2026-06-07 23:03:38 -07:00
gsxdsm
de254858f2 Merge pull request #1498 from Runfusion/feature/engine-plugin
[codex] Add workflow extension plugin seams
2026-06-07 22:57:04 -07:00
gsxdsm
7850b08a18 Address PR review feedback (#1502)
- Bump workflow model lane changeset to minor

- Clear pending workflow model edits after value reload failures

- Exclude Vite source module requests with query strings from API proxy
2026-06-07 22:56:35 -07:00
gsxdsm
4ac47642f9 fix(dashboard): let vite serve api source modules 2026-06-07 22:23:54 -07:00
gsxdsm
6d47d1abd0 fix(engine): tighten workflow extension feedback fixes 2026-06-07 22:21:48 -07:00
gsxdsm
61ae1bf706 feat(workflow-settings): simplify workflow model lanes 2026-06-07 22:07:47 -07:00
gsxdsm
01523a6581 fix(engine): address workflow extension PR feedback 2026-06-07 21:19:10 -07:00
gsxdsm
71822f26db feat(engine): add workflow extension plugin seams 2026-06-07 20:43:44 -07:00
gsxdsm
cf80622875 FN-5993: prevent PR metadata generation hangs
Bound PR AI metadata generation so the PR dialog falls back cleanly instead of hanging indefinitely.

- add a 60s timeout and abort-aware fallback path to dashboard PR metadata generation
- forward request abort signals from the PR metadata route and avoid writing responses after disconnects
- cover timeout/abort behavior in PR metadata generator and route tests
- document the bounded fallback behavior in the dashboard guide

Files changed:
 docs/dashboard-guide.md                            |   1 +
 .../src/__tests__/pr-metadata-generator.test.ts    |  93 +++++++++-
 ...it-github.pr-options-preflight-metadata.test.ts |   8 +-
 packages/dashboard/src/pr-metadata-generator.ts    | 199 ++++++++++++++-------
 .../dashboard/src/routes/register-git-github.ts    |  10 ++
 5 files changed, 235 insertions(+), 76 deletions(-)

Fusion-Task-Id: FN-5993

Fusion-Task-Lineage: fc49c15a-2359-4d14-b0ae-fed4aecde2fb
2026-06-07 20:38:53 -07:00
gsxdsm
1f2c7e22dc FN-5992: improve workflow editor mobile responsiveness
Make the workflow editor and related settings panels usable on narrow screens.

- add mobile-specific full-screen layout overrides for the workflow editor, create dialog, sidebar, inspector, settings panel, and AI panel
- stack workflow selector, workflow settings, and workflow fields controls for phone-sized viewports
- document the workflow editor mobile behavior in the dashboard guide
- add CSS contract tests covering the new mobile workflow editor and panel rules

Files changed:
 docs/dashboard-guide.md                            |  13 +++
 .../app/components/WorkflowFieldsPanel.css         |  15 +++
 .../app/components/WorkflowNodeEditor.css          |  94 ++++++++++++++++++
 .../dashboard/app/components/WorkflowSelector.css  |  16 ++++
 .../app/components/WorkflowSettingsPanel.css       |  20 ++++
 .../__tests__/WorkflowNodeEditor.css.test.ts       | 105 +++++++++++++++++++++
 6 files changed, 263 insertions(+)

Fusion-Task-Id: FN-5992

Fusion-Task-Lineage: c92396dc-88e5-4da0-be3f-687e7bd10972
2026-06-07 20:36:35 -07:00
gsxdsm
312bec674d FN-5990: start workflow editor viewport at top-left
Ensure the workflow node editor opens at the origin instead of auto-fitting away from the top-left.

- replace React Flow's fitView startup behavior with an explicit default viewport at x=0, y=0, zoom=1
- add a regression test that asserts the initial viewport transform starts at the top-left with scale 1

Files changed:
 packages/dashboard/app/components/WorkflowNodeEditor.tsx |  2 +-
 .../app/components/__tests__/WorkflowNodeEditor.test.tsx | 16 ++++++++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-5990

Fusion-Task-Lineage: 682ca8f8-a698-4234-a2d6-31c8efa657db
2026-06-07 20:27:56 -07:00
gsxdsm
ffce26ab1d FN-5986: add browser demo lifecycle board flow
Add a browser demo workflow and supporting fixtures for board walkthroughs.

- add a demo README plus seeded Browser Demo Lifecycle workflow with Todo, In Progress, In Review, QA, and Publish columns
- seed representative browser demo tasks and lifecycle log entries across the custom workflow columns
- update the live simulator to advance workflow tasks through QA and Publish while preserving the legacy merge path
- add a core lifecycle test covering workflow selection and the Todo → In Progress → In Review → QA → Publish transitions

Files changed:
 demo/README.md                                     |  25 ++++
 demo/seed.ts                                       | 131 ++++++++++++++++++++-
 demo/simulate.ts                                   |  35 ++++--
 packages/core/src/__tests__/browser-demo-lifecycle.test.ts   |  71 +++++++++++
 4 files changed, 248 insertions(+), 14 deletions(-)

Fusion-Task-Id: FN-5986

Fusion-Task-Lineage: 9638f7da-9b50-4de1-8ffa-d861dbf7aff2
2026-06-07 20:25:00 -07:00
gsxdsm
2d81a95ad9 FN-5985: align mission goal link errors
Align mission goal link write paths on the documented GOAL_NOT_FOUND contract.

- return 400 GOAL_NOT_FOUND from linkable goal validation instead of 404 when a goal is missing
- update mission goal route tests to assert the new error payload across create, patch, set, and add flows
- document the link-vs-unlink missing-goal behavior and add a patch changeset for the published CLI package

Files changed:
 .../FN-5985-mission-goal-not-found-contract.md     |  5 ++++
 docs/missions.md                                   |  2 +-
 .../__tests__/mission-goal-links-routes.test.ts    | 32 +++++++++++++++++-----
 packages/dashboard/src/mission-routes.ts           |  9 +++++-
 4 files changed, 39 insertions(+), 9 deletions(-)

Fusion-Task-Id: FN-5985

Fusion-Task-Lineage: 5649266e-5813-41b4-8a54-c7c46df61a35
2026-06-07 20:23:07 -07:00
gsxdsm
d3a2c8863d FN-5945: narrow hot task updates to changed columns
Reduce SQLite and FTS churn on hot task-update paths.

- switch hot task writes to column-scoped UPDATE statements that touch only changed fields plus updatedAt
- keep create and replication-style persistence on full-row INSERT/UPSERT paths and rewrite task.json from the refreshed DB row after partial updates
- route executor lease renewals through renewCheckoutLease and add regression coverage plus storage docs for the narrower write paths

Files changed:
 docs/storage.md                                    |   5 +-
 .../core/src/__tests__/task-partial-update.test.ts | 191 ++++++
 packages/core/src/store.ts                         | 638 +++++++++++----------
 .../src/__tests__/executor-lease-renewal.test.ts   |  66 +++
 packages/engine/src/executor.ts                    |   2 +-
 5 files changed, 603 insertions(+), 299 deletions(-)

Fusion-Task-Id: FN-5945

Fusion-Task-Lineage: ad0c5b64-f411-4379-85ab-f81edfc18101
2026-06-07 20:15:26 -07:00
gsxdsm
e84410e520 FN-6007: prevent duplicate GitHub issue imports and tracking issues
Prevent duplicate GitHub issue/task linkage from creating redundant imports and tracking issues.

- add shared duplicate-detection helpers that match imported GitHub issues by source metadata as well as source URLs
- switch CLI and dashboard GitHub import flows to inspect full task records and reuse the helper during single and batch imports
- remove redundant duplicate/refine tracking-issue creation calls from task workflow routes and add a patch changeset with regression coverage

Files changed:
 .changeset/fn-6007-fix-duplicate-github-issues.md  |  5 ++
 packages/cli/src/__tests__/extension.test.ts       | 68 ++++++++++++++++
 packages/cli/src/extension.ts                      | 24 ++++--
 .../src/__tests__/github-tracking-hook.test.ts     | 68 ++++++++++++++++
 .../dashboard/src/__tests__/routes-github.test.ts  | 73 ++++++++++++++++++
 .../src/__tests__/routes-tasks-ops.test.ts         | 90 +---------------------
 .../dashboard/src/routes/register-git-github.ts    | 24 ++++--
 .../src/routes/register-task-workflow-routes.ts    | 16 ----
 8 files changed, 254 insertions(+), 114 deletions(-)

Fusion-Task-Id: FN-6007

Fusion-Task-Lineage: a32ebb1d-efe4-4a52-be9a-fa3d3b5954bf
2026-06-07 18:54:24 -07:00
gsxdsm
3615b0b19d FN-5941: stop todo/in-progress flapping
Prevent scheduler and self-healing churn from bouncing live tasks between todo and in-progress.

- add dispatch oscillation settings, scheduler settle-window tracking, and auto-pause audit/logging for rapid todo↔in-progress cycles
- harden self-healing against reclaiming genuinely active tasks by checking executor activity, grace windows, and heartbeat runs before requeueing
- cover the new reliability invariants with focused engine tests and document the new diagnostics/settings behavior

Files changed:
 docs/architecture.md                               |   1 +
 docs/diagnostics.md                                |   9 +
 docs/settings-reference.md                         |   3 +
 .../core/src/__tests__/settings-parity.test.ts     |   6 +
 packages/core/src/settings-schema.ts               |   6 +
 packages/core/src/types.ts                         |   9 +
 .../todo-inprogress-flapping.test.ts               | 556 +++++++++++++++++++++
 packages/engine/src/__tests__/scheduler.test.ts    |  14 +-
 .../self-healing-in-progress-limbo.test.ts         |   2 +-
 packages/engine/src/__tests__/self-healing.test.ts |   8 +-
 packages/engine/src/run-audit.ts                   |   8 +
 packages/engine/src/scheduler.ts                   | 113 ++++-
 packages/engine/src/self-healing.ts                | 230 +++++++--
 13 files changed, 928 insertions(+), 37 deletions(-)

Fusion-Task-Id: FN-5941

Fusion-Task-Lineage: babdd85e-d04c-47ca-901c-db692b2874bf
2026-06-07 18:51:47 -07:00
gsxdsm
904e68143e FN-6006: name built-in workflow seam nodes
Ensure built-in workflow seams render readable labels instead of "Not configured".

- add explicit names to built-in execute, review, merge, planning, and step-execute seam nodes
- surface seam-specific summaries in dashboard node summaries, with a fallback for unknown seam values
- extend core and dashboard tests to cover seam naming invariants and rendered summaries

Files changed:
 .../__tests__/builtin-coding-workflow-ir.test.ts   |  7 +++++
 .../core/src/__tests__/builtin-workflows.test.ts   | 24 +++++++++++++++
 packages/core/src/builtin-coding-workflow-ir.ts    |  6 ++--
 .../src/builtin-stepwise-coding-workflow-ir.ts     |  8 ++---
 packages/core/src/builtin-workflows.ts             | 22 +++++++-------
 .../nodes/__tests__/node-summary.test.ts           | 35 ++++++++++++++++++++++
 .../dashboard/app/components/nodes/node-summary.ts | 17 +++++++++++
 7 files changed, 101 insertions(+), 18 deletions(-)

Fusion-Task-Id: FN-6006

Fusion-Task-Lineage: 198fc500-ac8f-45c9-b6b5-7aa15285d1df
2026-06-07 18:51:47 -07:00
gsxdsm
26fa479003 FN-6005: add mobile auto-merge blank-screen regression coverage
Add broader regression coverage for the mobile auto-merge blank-screen dashboard issue.

- expand the mobile integration test harness to cover viewport, keyboard, and mobile nav shell behavior
- add regression cases for empty in-review states, detail panels, update rollbacks, and app-shell round trips
- verify sibling render failures surface the page error boundary fallback instead of leaving a blank screen

Files changed:
 packages/dashboard/app/components/__tests__/auto-merge-toggle-blank.mobile-integration.test.tsx | 220 ++++++++++++++++++++-
 1 file changed, 217 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-6005

Fusion-Task-Lineage: 7cbba538-343b-4540-910f-08ba6ce7d183
2026-06-07 18:51:47 -07:00
gsxdsm
934f2f0d04 FN-6004: add execFile to engine child_process test mocks
Update engine tests so child_process mocks cover execFile alongside exec.

- add execFile mock implementations and promisify support in branch/worktree tests that rely on child_process behavior
- extend simpler child_process mocks in integration, sandbox, and worktree tests to export execFile stubs
- keep existing exec and execSync mock behavior unchanged while restoring compatibility with code that now imports execFile

Files changed:
 packages/engine/src/__tests__/branch-autocorrect.test.ts       |  9 ++++++++-
 .../engine/src/__tests__/branch-conflicts-self-owned.test.ts   |  9 ++++++++-
 packages/engine/src/__tests__/branch-conflicts.test.ts         |  9 ++++++++-
 packages/engine/src/__tests__/integration-branch.test.ts       |  1 +
 .../engine/src/__tests__/sandbox/bubblewrap-detect.test.ts     |  1 +
 .../engine/src/__tests__/sandbox/sandbox-exec-backend.test.ts  |  1 +
 .../engine/src/__tests__/sandbox/sandbox-exec-detect.test.ts   |  1 +
 .../engine/src/__tests__/worktree-acquisition-backend.test.ts  |  2 +-
 .../src/__tests__/worktree-acquisition-worktrunk.test.ts       |  2 +-
 packages/engine/src/__tests__/worktree-backend.test.ts         |  2 +-
 .../engine/src/__tests__/worktree-hooks-cross-platform.test.ts |  2 +-
 packages/engine/src/__tests__/worktree-pool.test.ts            | 10 ++++++++--
 packages/engine/src/__tests__/worktree-stale-lock.test.ts      |  2 +-
 .../engine/src/__tests__/worktree-stale-registration.test.ts   |  2 +-
 14 files changed, 42 insertions(+), 11 deletions(-)

Fusion-Task-Id: FN-6004

Fusion-Task-Lineage: f87fb103-fe5d-4fc9-a640-9991c06e6448
2026-06-07 18:51:47 -07:00
gsxdsm
fa23782dbb FN-5972: fix mobile auto-merge blank dashboard
Restore mobile auto-merge dashboard stability and broaden regression coverage.

- share the mobile media query between viewport detection and board stabilization so landscape phones stay on the mobile path
- add an integration regression suite for toggling auto-merge across mobile, tablet, desktop, rollback, and task review surfaces
- expand dashboard and CLI tests, keep the new published changeset, and preserve related vitest coverage lists and safety comments

Files changed:
$(git diff --cached --stat)

Fusion-Task-Id: FN-5972

Fusion-Task-Lineage: f3a3bbae-21c2-451b-b24f-848cc12d0542
2026-06-07 18:51:46 -07:00