Commit Graph

220 Commits

Author SHA1 Message Date
gsxdsm
da44392fea FN-6462: document OAuth refresh behavior
Document Claude OAuth refresh behavior across user-facing docs.

- Explain that auth status polling can refresh expired Anthropic OAuth credentials automatically.
- Clarify when OAuth expiry banners and notifications remain visible after refresh attempts.
- Update onboarding guidance to set expectations for Claude re-login frequency.

Files changed:
 docs/dashboard-guide.md    |  6 +++++-
 docs/getting-started.md    |  2 +-
 docs/settings-reference.md | 10 ++++++++--
 3 files changed, 14 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-6462

Fusion-Task-Lineage: 06a73655-483d-4379-aeba-ac6bf9bb8df9
2026-06-15 02:29:08 -07:00
gsxdsm
c9680b5767 FN-6448: document Quick Chat mobile reliability
Document Quick Chat's mobile send and stop-button reliability expectations.\n\n- Note the mobile delivery watchdog for stranded queued messages.\n- Describe duplicate pointer/touch send protection and immediate stop handling.\n- Document the streaming stop control's square touch-target sizing.\n\nFiles changed:\n docs/dashboard-guide.md | 3 +++\n 1 file changed, 3 insertions(+)

Fusion-Task-Id: FN-6448

Fusion-Task-Lineage: e5d4e5b5-05ba-47bc-9b64-0d641b8d75a8
2026-06-14 15:29:35 -07:00
gsxdsm
b898c3d1db FN-6419: keep task metadata inline
Keep task detail metadata in a compact wrapping row across viewport sizes.

- Make the detail metadata container a wrapping flex row with aligned controls, provenance, PR context, and timestamps.
- Document the one-row metadata behavior in the dashboard guide.
- Add rendering and responsive CSS regression coverage for direct inline metadata children and mobile row behavior.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 .../dashboard/app/components/TaskDetailModal.css   | 21 +++++++--
 .../__tests__/TaskDetailModal.rendering.test.tsx   | 53 ++++++++++++++++++++++
 ...etailModal.responsive-and-dependencies.test.tsx | 10 ++++
 4 files changed, 81 insertions(+), 5 deletions(-)

Fusion-Task-Id: FN-6419

Fusion-Task-Lineage: 925c2f0d-8665-430f-8e4e-a00d80704e8d
2026-06-13 20:33:44 -07:00
gsxdsm
417183da9f FN-6415: send task chat on Enter
Enable the task-detail Chat composer to submit messages with standard Enter behavior.

- Submit non-empty task chat drafts on plain Enter while preserving Shift+Enter newline entry and IME composition safety.
- Keep Cmd/Ctrl+Enter as a supported send path through the same handler.
- Document the composer keyboard shortcuts and add dashboard tests for steering, refinement, newline, shortcut, and composition behavior.
- Add a patch changeset for the published Fusion package.

Files changed:
 .changeset/tiny-tasks-chat-enter.md                |   5 +
 docs/dashboard-guide.md                            |   2 +-
 packages/dashboard/app/components/TaskChatTab.tsx  |  13 ++-
 .../app/components/__tests__/TaskChatTab.test.tsx  | 120 +++++++++++++++++++++
 4 files changed, 136 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-6415

Fusion-Task-Lineage: 7d200bf6-5130-4fb8-b59c-66bccffe4265
2026-06-13 19:32:27 -07:00
gsxdsm
df01ab71dd FN-6402: detect PR preflight conflicts by exit code
Use merge-tree exit status and empty-commit handling so PR conflict remediation reports clean states correctly.

- Treat git merge-tree exit code 1, not stdout, as the PR preflight conflict signal.
- Skip conflict-resolution commits when the branch already contains the selected base or the AI pass leaves no staged changes.
- Cover the preflight and resolver no-op paths with dashboard route and conflict resolver tests.
- Document the no-empty-commit conflict remediation behavior and add a published package changeset.

Files changed:
 .changeset/fn-6402-pr-conflict-detection.md        |   5 +
 docs/dashboard-guide.md                            |   2 +-
 .../src/__tests__/pr-conflict-resolver.test.ts     | 130 +++++++++++++++++++++
 ...it-github.pr-options-preflight-metadata.test.ts |  22 +++-
 .../register-git-github.pr-push-branch.test.ts     |   2 +-
 ...egister-git-github.pr-resolve-conflicts.test.ts |   2 +-
 packages/dashboard/src/pr-conflict-resolver.ts     |  57 +++++++--
 .../dashboard/src/routes/register-git-github.ts    |   8 +-
 8 files changed, 212 insertions(+), 16 deletions(-)

Fusion-Task-Id: FN-6402
Fusion-Task-Lineage: 9e709fb8-204a-4d88-8351-260a356c7520
2026-06-13 17:46:11 -07:00
gsxdsm
91e7da2906 FN-6404: group task card meta badges
Group task card metadata into a single header badge row.

- Move priority, fast mode, agent-created provenance, and time chips into a shared wrapping meta badge group.
- Keep GitHub and retry chips in the footer without rendering empty footer shells for timer-only cards.
- Update dashboard docs and TaskCard coverage for grouped metadata layout and responsive styling.

Files changed:
 docs/dashboard-guide.md                            |   4 +-
 packages/dashboard/app/components/TaskCard.css     |  16 +-
 packages/dashboard/app/components/TaskCard.tsx     |  82 +++++-----
 .../__tests__/TaskCard.footer-alignment.test.tsx   |   9 +-
 .../app/components/__tests__/TaskCard.test.tsx     | 169 ++++++++++++++++++---
 5 files changed, 213 insertions(+), 67 deletions(-)

Fusion-Task-Id: FN-6404

Fusion-Task-Lineage: 29c2c700-d4f3-430d-baaa-bf8d7d0d0011
2026-06-13 17:17:25 -07:00
gsxdsm
7fa8c4e5f4 FN-6397: fix mobile workflow board fill chain
Ensure workflow-mode boards fill the mobile viewport while preserving internal column scrolling.

- Reassert the mobile flex fill chain for project content, workflow board wrappers, and workflow columns.
- Extend mobile board regression coverage across empty/populated workflow states with and without the toolbar.
- Document the workflow board collapse root cause and add a transient temp-dir isolation guard test.

Files changed:
 docs/dashboard-guide.md                            |   1 +
 .../ui-bugs/mobile-workflow-board-fill-chain.md    |  61 +++++++++++++
 .../__tests__/board-mobile-initial-render.test.tsx | 101 +++++++++++++++++++++
 packages/dashboard/app/styles.css                  |  52 +++++++++++
 scripts/__tests__/check-test-isolation.test.mjs    |  23 +++++
 scripts/check-test-isolation.mjs                   |  12 ++-
 6 files changed, 249 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6397
Fusion-Task-Lineage: ddee773d-6d3a-46d1-b1c7-f601a961365e
2026-06-13 16:30:28 -07:00
gsxdsm
e8c2d516af FN-6386: add one-click update installation
Add a dashboard update action that installs available Fusion releases directly from the UI.

- Add an install-update API route backed by npm global install with bin-collision retry handling.
- Add Update now controls, loading/error/success states, and responsive styling to the update banner and settings modal.
- Extend localization, documentation, changeset coverage, and update-check tests for the new install flow.

Files changed:
 .changeset/fn-6386-update-now-button.md            |   5 +
 docs/dashboard-guide.md                            |   4 +
 docs/settings-reference.md                         |   2 +
 packages/dashboard/app/api/legacy.ts               |  13 ++
 .../dashboard/app/components/SettingsModal.css     |  38 +++++-
 .../dashboard/app/components/SettingsModal.tsx     |  96 ++++++++++++--
 .../app/components/UpdateAvailableBanner.css       |  46 +++++++
 .../app/components/UpdateAvailableBanner.tsx       | 103 ++++++++++++---
 .../components/__tests__/SettingsModal.test.tsx    |  79 +++++++++++
 .../__tests__/UpdateAvailableBanner.test.tsx       |  57 +++++++-
 .../components/__tests__/settings-mobile.test.tsx  |  19 +++
 .../src/__tests__/update-check-route.test.ts       |  78 ++++++++++-
 .../dashboard/src/__tests__/update-check.test.ts   |  45 +++++++
 .../src/routes/register-update-check-routes.ts     |  25 +++-
 packages/dashboard/src/update-check.ts             |  93 +++++++++++++
 packages/i18n/locales/en/app.json                  |  14 +-
 packages/i18n/src/resources.d.ts                   | 146 ++++++++++++++++++++-
 17 files changed, 819 insertions(+), 44 deletions(-)

Fusion-Task-Id: FN-6386

Fusion-Task-Lineage: bcccf253-c0f1-493e-b849-b189a65d1479
2026-06-13 16:30:28 -07:00
gsxdsm
8a53871de2 FN-6388: enable quick-entry GitHub tracking overrides
Allow quick entry to override GitHub tracking regardless of the project default.

- Send explicit githubTracking overrides whenever the quick-entry toggle is changed.
- Keep the GitHub toggle usable when settings are loading or default tracking is off.
- Cover off-default opt-in, opt-out, label, and reset behavior in QuickEntryBox tests.
- Document the quick-entry GitHub icon as a per-task tracking override.

Files changed:
 docs/dashboard-guide.md                            |   1 +
 .../dashboard/app/components/QuickEntryBox.tsx     |  27 ++---
 .../components/__tests__/QuickEntryBox.test.tsx    | 118 ++++++++++++++++++---
 3 files changed, 110 insertions(+), 36 deletions(-)

Fusion-Task-Id: FN-6388

Fusion-Task-Lineage: f46ef738-ccd6-48cc-8919-9c2de7ecb4e3
2026-06-13 16:30:28 -07:00
gsxdsm
59411c7054 FN-6381: expose simple workflow editor controls at every width
Styles the simple workflow editor so its mobile-style controls are available and documented across desktop and narrow layouts.

- Move simple editor tab, add, action, and touch-target styling out of the mobile-only media query.
- Cover desktop simple editor affordances for custom and built-in workflows with regression tests.
- Document desktop simple editor tabs and the surfaced workflow action buttons.

Files changed:
 docs/dashboard-guide.md                            |   6 +-
 .../app/components/WorkflowNodeEditor.css          | 286 +++++++++++----------
 .../__tests__/WorkflowNodeEditor.test.tsx          |  53 ++++
 3 files changed, 201 insertions(+), 144 deletions(-)

Fusion-Task-Id: FN-6381

Fusion-Task-Lineage: fd7f1ada-6e50-4d92-b455-7f38fb46c1e2
2026-06-13 12:00:58 -07:00
gsxdsm
eb607c6ffd FN-6377: make tablet modals touch-resizable
Enable shared resize handles for modals on tablet and desktop while keeping mobile sheets full-screen.

- Add a pointer-driven resize grip to useModalResizePersist with debounced persistence and mobile cleanup.
- Widen the task-detail modal tablet default to 96vw / 1024px.
- Cover resize behavior and tablet width expectations with dashboard tests.
- Document the shared modal resize pattern and add the published package changeset.

Files changed:
 .changeset/FN-6377-tablet-resizable-modals.md      |   5 +
 docs/dashboard-guide.md                            |   2 +-
 .../task-detail-modal-tablet-width.test.ts         |   4 +-
 .../dashboard/app/components/TaskDetailModal.css   |   4 +-
 .../hooks/__tests__/useModalResizePersist.test.tsx | 218 +++++++++++++++++++++
 .../dashboard/app/hooks/useModalResizePersist.ts   | 140 ++++++++++---
 packages/dashboard/app/styles.css                  |  36 ++++
 7 files changed, 382 insertions(+), 27 deletions(-)

Fusion-Task-Id: FN-6377

Fusion-Task-Lineage: ecc12aa4-f881-4476-a69b-13d34a73e263
2026-06-13 11:46:53 -07:00
gsxdsm
6fff41817a FN-6372: start refinements from done task chat
Done-task chat messages now create refinement tasks while preserving steering behavior elsewhere.

- Route completed-task Chat composer submissions through refineTask and show the created task ID.
- Keep non-done task sends on the existing steering-comment path with queued/live session copy.
- Cover refinement success, failure rollback, send lifecycle, and routing surfaces in TaskChatTab tests.
- Document the completed-task refinement behavior in the dashboard guide.

Files changed:
 docs/dashboard-guide.md                            |   2 +-
 packages/dashboard/app/components/TaskChatTab.tsx  |  45 +++---
 .../app/components/__tests__/TaskChatTab.test.tsx  | 152 ++++++++++++++++++++-
 3 files changed, 177 insertions(+), 22 deletions(-)

Fusion-Task-Id: FN-6372

Fusion-Task-Lineage: 201f3a5e-e951-4f70-8b92-8d270e3181de
2026-06-13 11:30:45 -07:00
gsxdsm
4838c86b8c FN-6370: add expandable task chat modal
Add a full-modal expansion affordance for task-detail chat conversations.

- Add an expand/collapse toolbar button to the task chat tab with accessible labels and icon states.
- Let the task detail modal switch into a chat-expanded layout and reset that state when leaving chat or entering edit mode.
- Cover the chat toggle and layout behavior with dashboard component tests and document the control.

Files changed:
 docs/dashboard-guide.md                            |   1 +
 packages/dashboard/app/components/TaskChatTab.css  |  22 +++++
 packages/dashboard/app/components/TaskChatTab.tsx  |  21 ++++-
 .../dashboard/app/components/TaskDetailModal.css   |  42 +++++++++
 .../dashboard/app/components/TaskDetailModal.tsx   |  13 ++-
 .../app/components/__tests__/TaskChatTab.test.tsx  |  37 ++++++++
 .../TaskDetailModal.attachments-and-tabs.test.tsx  | 100 +++++++++++++++++++++
 7 files changed, 233 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-6370
Fusion-Task-Lineage: 787300bb-b928-45cf-a5c1-7fed5f375111
2026-06-13 11:14:06 -07:00
gsxdsm
6e9f2a384d FN-6369: make task chat send control icon-only
Refine the task-detail chat composer so the send action stays narrow and inline with the input.

- Replace the composer placeholder with the steering-focused copy.
- Convert the send button to an accessible icon-only control with loading state labels.
- Keep the send control inline at mobile breakpoints and cover the behavior in tests and docs.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 packages/dashboard/app/components/TaskChatTab.css  | 14 +++++++----
 packages/dashboard/app/components/TaskChatTab.tsx  | 11 ++++++---
 .../app/components/__tests__/TaskChatTab.test.tsx  | 27 ++++++++++++++++++++--
 4 files changed, 44 insertions(+), 10 deletions(-)

Fusion-Task-Id: FN-6369
Fusion-Task-Lineage: b7e0717f-4cba-4380-a08a-e01fc12985e3
2026-06-13 10:51:31 -07:00
gsxdsm
b90f966a98 FN-6374: fix workflow board tablet fill height
Keep workflow-mode board columns stretched through the tablet viewport.

- Preserve a definite height chain from the workflow board wrapper to the column rows.
- Ensure workflow columns stretch and keep internal overflow ownership at tablet widths.
- Extend board layout tests to cover workflow-mode empty and populated tablet states.
- Document the footer-safe workflow fill-height invariant.

Files changed:
 docs/dashboard-guide.md                            |   2 +-
 packages/dashboard/app/components/Lane.css         |  12 ++
 .../__tests__/board-mobile-initial-render.test.tsx | 121 ++++++++++++++++++++-
 3 files changed, 129 insertions(+), 6 deletions(-)

Fusion-Task-Id: FN-6374
Fusion-Task-Lineage: 9b7042cf-c8bc-4d69-8599-42dafc333b15
2026-06-13 10:36:24 -07:00
gsxdsm
422833045c FN-6359: add latest jump control to task chat
Adds an in-transcript control for returning to the newest task chat output after reviewing older messages.

- Track whether the task chat transcript is near the bottom and preserve live-follow behavior.
- Render an accessible sticky Latest button when populated transcripts are scrolled up, including mobile styling.
- Cover empty/loading, desktop, mobile, and click-to-jump behavior in TaskChatTab tests.
- Document the Latest jump affordance in the dashboard guide.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 packages/dashboard/app/components/TaskChatTab.css  | 40 +++++++++++
 packages/dashboard/app/components/TaskChatTab.tsx  | 40 ++++++++++-
 .../app/components/__tests__/TaskChatTab.test.tsx  | 82 ++++++++++++++++++++++
 4 files changed, 162 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-6359

Fusion-Task-Lineage: 9b4a3533-2969-4f0d-a4de-6ba895662726
2026-06-13 10:20:11 -07:00
gsxdsm
2974f7e878 FN-6358: compact task chat tool-call entries
Tighten the task-detail chat tool-call presentation while documenting the denser layout.

- Reduce spacing and typography weight for collapsed tool-call summaries and expanded entry cards.
- Assert compact tool-call classes in TaskChatTab tests for paired and standalone result entries.
- Update the dashboard guide to describe compact summaries and dense expanded cards.

Files changed:
 docs/dashboard-guide.md                             |  2 +-
 packages/dashboard/app/components/TaskChatTab.css   | 21 ++++++++++++---------
 .../app/components/__tests__/TaskChatTab.test.tsx   | 18 ++++++++++++++++--
 3 files changed, 29 insertions(+), 12 deletions(-)

Fusion-Task-Id: FN-6358

Fusion-Task-Lineage: 83cbf328-c062-4032-a2e7-e3550f386557
2026-06-13 09:55:49 -07:00
gsxdsm
66591ec11c FN-6333: add legacy auto-merge cleanup surfaces
Expose operator controls for auditing and clearing legacy auto-merge stamps.

- Add CLI dry-run, apply, and JSON modes for legacy auto-merge stamp cleanup.
- Add dashboard maintenance endpoints and a Settings → Merge cleanup panel.
- Document the cleanup workflow and cover CLI, route, and UI behavior with tests.

Files changed:
 .changeset/fn-6333-legacy-automerge-cleanup.md     |   5 +
 docs/cli-reference.md                              |   4 +
 docs/dashboard-guide.md                            |   6 ++
 docs/settings-reference.md                         |   2 +-
 packages/cli/src/__tests__/bin.test.ts             |  10 ++
 .../cli/src/__tests__/pr-automerge-cleanup.test.ts | 107 ++++++++++++++++++++
 packages/cli/src/bin.ts                            |  14 ++-
 packages/cli/src/commands/pr.ts                    |  41 ++++++++
 .../components/settings/sections/MergeSection.tsx  | 109 ++++++++++++++++++++
 .../MergeSection.legacy-automerge-cleanup.test.tsx | 110 +++++++++++++++++++++
 .../legacy-automerge-stamps-routes.test.ts         |  76 ++++++++++++++
 packages/dashboard/src/routes.ts                   |  36 +++++++
 12 files changed, 517 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-6333
Fusion-Task-Lineage: 55a3fa22-e0ba-4996-bfce-cad31c71177d
2026-06-13 06:12:09 -07:00
gsxdsm
35554e674e FN-6347: keep chat composer visible on mobile
Keep the task detail chat layout constrained so mobile users can always reach the composer.

- Give the chat tab a fill-height flex layout with transcript-only scrolling.
- Apply chat-specific modal body and section classes alongside the agent log layout.
- Cover mobile chat layout behavior with component tests and document the modal contract.
- Add a patch changeset for the published Fusion package.

Files changed:
 .changeset/fn-6347-chat-input-visible.md           |  5 ++
 docs/dashboard-guide.md                            |  2 +-
 packages/dashboard/app/components/TaskChatTab.css  |  8 ++-
 .../dashboard/app/components/TaskDetailModal.css   | 29 +++++++++
 .../dashboard/app/components/TaskDetailModal.tsx   |  4 +-
 .../app/components/__tests__/TaskChatTab.test.tsx  | 36 ++++++++++
 .../TaskDetailModal.attachments-and-tabs.test.tsx  | 76 ++++++++++++++++++++++
 7 files changed, 155 insertions(+), 5 deletions(-)

Fusion-Task-Id: FN-6347

Fusion-Task-Lineage: 37250539-d38e-4826-9c31-8b0279844883
2026-06-13 03:32:59 -07:00
gsxdsm
50bc80b26a FN-6346: preserve chat steering fields from task detail
Keep task-detail Chat steerable when sparse list rows are hydrated with full task details.

- Merge live agent/session fields from fetched task details when parent task fields are undefined.
- Cover non-CLI engine agents, stale CLI session fallback, and desktop/mobile composer affordances in Chat tests.
- Document that Chat steering supports regular task-worktree engine agents as well as live CLI sessions.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 .../dashboard/app/components/TaskDetailModal.tsx   |  7 +++
 .../app/components/__tests__/TaskChatTab.test.tsx  | 61 +++++++++++++++++++++-
 .../__tests__/TaskDetailModal.test-helpers.ts      |  1 +
 .../components/__tests__/TaskDetailModal.test.tsx  | 57 ++++++++++++++++++++
 5 files changed, 126 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-6346

Fusion-Task-Lineage: 60982087-3135-4a28-8c44-779e157ea3b5
2026-06-13 03:02:09 -07:00
gsxdsm
9c9abc3bd7 FN-6344: combine adjacent chat text chunks
Task detail chat now renders adjacent text log chunks as continuous bubbles.

- Combine consecutive non-tool, non-thinking chat entries within each agent role group before rendering.
- Preserve tool and thinking segment boundaries while simplifying segment keys for grouped text.
- Add dashboard tests for single, consecutive, and cross-role text bubble behavior.
- Document the text chunk grouping behavior in the dashboard guide.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 packages/dashboard/app/components/TaskChatTab.tsx  | 28 ++++++++-----
 .../app/components/__tests__/TaskChatTab.test.tsx  | 48 ++++++++++++++++++++++
 3 files changed, 66 insertions(+), 12 deletions(-)

Fusion-Task-Id: FN-6344

Fusion-Task-Lineage: e88f0383-7d91-4272-8c9b-532a382074d4
2026-06-13 00:15:52 -07:00
gsxdsm
97f3d6579b FN-6332: improve task chat tool summaries
Refine task chat transcripts so collapsed tool groups summarize real invocations and expand into paired call/result details.

- Count tool calls by invocation instead of raw tool log rows.
- Show deduped tool names, overflow counts, and error badges in collapsed summaries.
- Pair tool calls with their result or error details when expanded.
- Cover the grouped summary behavior with dashboard tests and documentation.

Files changed:
 docs/dashboard-guide.md                            |   2 +-
 packages/dashboard/app/components/TaskChatTab.css  |  36 +++++--
 packages/dashboard/app/components/TaskChatTab.tsx  | 116 +++++++++++++++++----
 .../app/components/__tests__/TaskChatTab.test.tsx  | 105 ++++++++++++++++---
 4 files changed, 213 insertions(+), 46 deletions(-)

Fusion-Task-Id: FN-6332

Fusion-Task-Lineage: 7c14b76c-dcaa-4227-8393-cb24f99b765d
2026-06-12 21:50:49 -07:00
gsxdsm
f19c4d64ee FN-6316: collapse task chat tool and thinking entries
Make task-detail agent chat easier to scan during tool-heavy sessions.

- Group consecutive tool, result, and error entries into collapsed summaries with status counts.
- Render thinking output in expanded-by-default collapsible blocks.
- Add responsive styling, docs, and regression coverage for grouped transcript segments.

Files changed:
 docs/dashboard-guide.md                            |   2 +-
 packages/dashboard/app/components/TaskChatTab.css  | 120 +++++++++++++--
 packages/dashboard/app/components/TaskChatTab.tsx  | 161 ++++++++++++++++++---
 .../app/components/__tests__/TaskChatTab.test.tsx  | 100 +++++++++++--
 4 files changed, 337 insertions(+), 46 deletions(-)

Fusion-Task-Id: FN-6316

Fusion-Task-Lineage: 84c83ea1-fa9a-4e30-9794-ae95e29f989e
2026-06-12 19:30:53 -07:00
gsxdsm
0a135c9367 FN-6315: Scroll task chat to latest output
Ensure the task-details Chat transcript opens at the newest agent output without breaking live scroll-away behavior.

- Track active-state transitions and initial log population to snap populated transcripts to the bottom.
- Preserve existing near-bottom live-follow behavior and inactive cached scroll bookkeeping.
- Cover initial desktop/mobile load, reactivation, delayed population, and empty transcript cases.
- Document the updated Chat tab behavior and add a published package patch changeset.

Files changed:
 .changeset/fn-6315-chat-scroll-bottom.md           |   5 +
 docs/dashboard-guide.md                            |   2 +-
 packages/dashboard/app/components/TaskChatTab.tsx  |  25 ++-
 .../app/components/__tests__/TaskChatTab.test.tsx  | 182 ++++++++++++++++++++-
 4 files changed, 211 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-6315

Fusion-Task-Lineage: 6cd7c418-124f-4730-a533-cc866f9a16a8
2026-06-12 18:26:45 -07:00
gsxdsm
0d51a58d09 FN-6320: enable active task chat steering
Allow task chat steering whenever an in-progress task has an active assigned or checked-out agent session.

- Treat in-progress sessions as steerable unless they are explicitly paused, waiting, failed, or needing replan.
- Keep in-review steering constrained to review and merge statuses while honoring paused states.
- Cover queued, cleared, checked-out, blocked, and non-board task states in TaskChatTab tests.
- Update dashboard docs to describe active, assigned, non-paused chat sessions.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 packages/dashboard/app/components/TaskChatTab.tsx  | 16 +++--
 .../app/components/__tests__/TaskChatTab.test.tsx  | 81 ++++++++++++++++++++--
 3 files changed, 89 insertions(+), 10 deletions(-)

Fusion-Task-Id: FN-6320

Fusion-Task-Lineage: bdc7df52-5d1f-4882-82a7-9fe32496e1d1
2026-06-12 18:03:51 -07:00
gsxdsm
0cd2ae1032 FN-6314: allow chat steering during review sessions
Task Chat can now steer active assigned sessions while tasks are being reviewed or merged.

- Permit composer steering for in-review reviewing, merging, merging-fix, and fixing statuses when an agent is assigned or checked out.
- Keep paused, user-paused, unassigned, todo, and done tasks disabled with clearer active-session messaging.
- Cover in-review steering and disabled-session states in TaskChatTab tests and update dashboard documentation.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 packages/dashboard/app/components/TaskChatTab.tsx  | 13 +++--
 .../app/components/__tests__/TaskChatTab.test.tsx  | 61 ++++++++++++++++++++--
 3 files changed, 67 insertions(+), 9 deletions(-)

Fusion-Task-Id: FN-6314

Fusion-Task-Lineage: 42c0f4f7-58f5-4e0c-837f-9f4b7c497fa3
2026-06-12 16:10:02 -07:00
gsxdsm
4bd6024ef7 FN-6300: add live task chat tab
Add a live chat-style task detail tab for following and steering active agent work.

- Add TaskChatTab with grouped agent log bubbles, live-follow scrolling, and steering message composer.
- Share chat input autosize helpers between ChatView and task chat.
- Wire the Chat tab into task detail navigation with localized labels and regression coverage.

Files changed:
 docs/dashboard-guide.md                            |   2 +
 .../dashboard/app/components/AgentLogViewer.tsx    |   2 +-
 packages/dashboard/app/components/ChatView.tsx     |  25 +-
 packages/dashboard/app/components/TaskChatTab.css  | 193 ++++++++++++++
 packages/dashboard/app/components/TaskChatTab.tsx  | 276 +++++++++++++++++++++
 .../dashboard/app/components/TaskDetailModal.tsx   |  13 +-
 .../app/components/__tests__/TaskChatTab.test.tsx  | 181 ++++++++++++++
 .../TaskDetailModal.attachments-and-tabs.test.tsx  |  19 +-
 .../TaskDetailModal.definition-actions.test.tsx    | 104 ++++----
 ...etailModal.responsive-and-dependencies.test.tsx |   2 +-
 packages/dashboard/app/utils/chatInputAutosize.ts  |  18 ++
 packages/i18n/locales/en/app.json                  |   1 +
 packages/i18n/locales/es/app.json                  |   1 +
 packages/i18n/locales/fr/app.json                  |   1 +
 packages/i18n/locales/ko/app.json                  |   1 +
 packages/i18n/locales/zh-CN/app.json               |   1 +
 packages/i18n/locales/zh-TW/app.json               |   1 +
 17 files changed, 757 insertions(+), 84 deletions(-)

Fusion-Task-Id: FN-6300
Fusion-Task-Lineage: 1eb8a17b-3ca5-4cba-81c6-ac7ccce0a113
2026-06-12 10:00:08 -07:00
gsxdsm
7ffea9f4a6 FN-6290: expose Google Generative AI custom providers
Expose Google Generative AI as a selectable custom-provider API type across settings UI and docs.

- Add Google Generative AI options to custom-provider add and edit dropdowns.
- Cover add, edit, and existing Google-provider selection behavior with dashboard tests.
- Document the supported API type and add localized provider labels.
- Add a changeset for the published Fusion package.

Files changed:
 .changeset/fn-6290-expose-google-generative-ai.md  |  5 ++
 docs/dashboard-guide.md                            |  5 +-
 docs/settings-reference.md                         |  2 +-
 .../app/components/CustomProvidersSection.tsx      |  2 +
 .../__tests__/CustomProvidersSection.test.tsx      | 62 ++++++++++++++++++++++
 packages/i18n/locales/en/app.json                  |  1 +
 packages/i18n/locales/es/app.json                  |  1 +
 packages/i18n/locales/fr/app.json                  |  1 +
 packages/i18n/locales/ko/app.json                  |  1 +
 packages/i18n/locales/zh-CN/app.json               |  1 +
 packages/i18n/locales/zh-TW/app.json               |  1 +
 11 files changed, 79 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-6290

Fusion-Task-Lineage: 295cbba2-cae1-4998-9456-d6a306be6e34
2026-06-12 07:13:00 -07:00
gsxdsm
40b9d553dd FN-6286: document custom provider model selection
Document how custom providers are configured and surfaced in model pickers.

- Add Custom Providers dashboard guide coverage for adding, editing, deleting, detecting models, and masked API key behavior.
- Explain that saved custom provider models appear in Project Models and workflow model dropdowns.
- Add a stable settings-reference anchor for the customProviders setting.

Files changed:
 docs/dashboard-guide.md    | 64 ++++++++++++++++++++++++++++++++++++++++++++++
 docs/settings-reference.md |  2 +-
 2 files changed, 65 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6286

Fusion-Task-Lineage: 79520376-d448-4048-af43-a532fba68853
2026-06-12 05:26:08 -07:00
gsxdsm
d23c5d901f FN-6247: refresh PR controls from live auto-merge setting
Keep task detail PR and review affordances synchronized with the current project auto-merge setting.

- Thread the live auto-merge value into task detail modals and list split-pane detail views.
- Prefer the live auto-merge setting over the stale fetched modal snapshot while preserving task-level overrides.
- Cover PR and review tab behavior for auto-merge on/off and document the dashboard behavior.
- Evict flaky engine gate entries and add a patch changeset for the published CLI package.

Files changed:
 .changeset/fn-6247-automerge-off-modal-stale.md    |   5 +
 docs/dashboard-guide.md                            |   1 +
 packages/dashboard/app/App.tsx                     |   3 +-
 packages/dashboard/app/components/AppModals.tsx    |   2 +
 packages/dashboard/app/components/ListView.tsx     |   3 +
 .../dashboard/app/components/TaskDetailModal.tsx   |   4 +-
 .../__tests__/TaskDetailModal.create-pr.test.tsx   | 171 ++++++++++++++++++++-
 packages/engine/vitest.config.ts                   |   2 -
 8 files changed, 182 insertions(+), 9 deletions(-)

Fusion-Task-Id: FN-6247

Fusion-Task-Lineage: 1321c03a-216d-4b15-bf4f-95621d68c9ae
2026-06-11 22:11:44 -07:00
gsxdsm
64d831576d FN-6225: persist workflow model lanes on Settings save
Persist default workflow model lane edits through the Settings modal's primary save path.

- Register a Project Models section save handler so workflow lane overrides flush before closing Settings.
- Surface typed workflow setting rejections without closing the modal or showing a success toast.
- Remove the separate workflow-model save button and update coverage/docs for the unified save behavior.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 docs/settings-reference.md                         | 17 +++++---
 .../dashboard/app/components/SettingsModal.tsx     | 11 ++++-
 .../components/__tests__/SettingsModal.test.tsx    | 50 ++++++++++++++++------
 .../settings/sections/ProjectModelsSection.tsx     | 42 ++++++++++--------
 .../app/components/settings/sections/context.ts    |  3 ++
 6 files changed, 83 insertions(+), 42 deletions(-)

Fusion-Task-Id: FN-6225

Fusion-Task-Lineage: 98338f85-c742-46c2-8bdf-f676a6f7e32e
2026-06-11 20:21:30 -07:00
gsxdsm
2e48e8627a FN-6098: add workspace file creation actions
Add workspace file and folder creation to the dashboard file browser.

- add dashboard API helpers and backend route support for creating workspace directories and empty files
- add New File and New Folder header actions in FileBrowser with dialog handling and responsive header styling
- cover create flows with FileBrowser and route tests and document the new browser actions

Files changed:
 docs/dashboard-guide.md                            |  1 +
 packages/dashboard/app/api/legacy.ts               | 29 ++++++-
 packages/dashboard/app/components/FileBrowser.css  | 32 ++++++++
 packages/dashboard/app/components/FileBrowser.tsx  | 75 ++++++++++++++----
 packages/dashboard/app/components/__tests__/FileBrowser.test.tsx  | 92 ++++++++++++++++++++++
 packages/dashboard/src/__tests__/routes-git.test.ts     | 55 +++++++++++++
 packages/dashboard/src/file-service.ts             | 69 +++++++++++++++-
 packages/dashboard/src/routes/README.md            |  8 +-
 packages/dashboard/src/routes/register-file-workspace-routes.ts   | 34 +++++++-
 9 files changed, 372 insertions(+), 23 deletions(-)

Fusion-Task-Id: FN-6098
Fusion-Task-Lineage: 9a2a1ca1-8b5d-4e95-ba76-e7166621c898
2026-06-09 12:51:20 -07:00
gsxdsm
c1a723134e feat: redesign mobile workflow editor 2026-06-09 08:30:35 -07:00
gsxdsm
ece4a37745 FN-6059: add task title summarization action
Add an inline task-detail action to summarize descriptions into titles.

- add a read-mode "Summarize as title" control in Task Detail for editable tasks with descriptions
- call the title summarizer, persist the generated title, and show loading/success/error feedback
- cover button visibility, pending, success, error, and mobile behavior in Task Detail tests
- document the new Task Detail modal action in the dashboard guide

Files changed:
 docs/dashboard-guide.md                            |   1 +
 .../dashboard/app/components/TaskDetailModal.css   |  47 +++++++
 .../dashboard/app/components/TaskDetailModal.tsx   |  56 +++++++-
 .../__tests__/TaskDetailModal.test-helpers.ts      |   5 +-
 .../components/__tests__/TaskDetailModal.test.tsx  | 145 +++++++++++++++++++++
 5 files changed, 247 insertions(+), 7 deletions(-)

Fusion-Task-Id: FN-6059

Fusion-Task-Lineage: ed5a2f1b-a490-45f7-a747-d28c345f143b
2026-06-09 03:57:40 -07:00
gsxdsm
53f3638b12 FN-6037: open selected workflow editor on mobile
Open the board workflow editor directly to the selected workflow, including on mobile.

- pass the selected workflow id from the board toolbar through app modal state into the workflow editor
- preselect the requested workflow when loading workflows, while preserving settings/create entry points and mobile fallback behavior
- cover the new workflow targeting behavior in board, modal manager, and workflow editor tests and document the mobile editor flow

Files changed:
 docs/dashboard-guide.md                            |  3 +-
 packages/dashboard/app/App.tsx                     |  4 +-
 packages/dashboard/app/components/AppModals.tsx    |  1 +
 packages/dashboard/app/components/Board.tsx        |  6 +-
 packages/dashboard/app/components/WorkflowNodeEditor.tsx          | 13 ++++-
 packages/dashboard/app/components/__tests__/Board.test.tsx        |  4 ++
 packages/dashboard/app/components/__tests__/WorkflowNodeEditor.test.tsx | 68 ++++++++++++++++++++++
 packages/dashboard/app/hooks/__tests__/useModalManager.test.ts    | 42 +++++++++++++
 packages/dashboard/app/hooks/useModalManager.ts    | 16 +++--

Fusion-Task-Id: FN-6037

Fusion-Task-Lineage: e983e699-5376-434f-af03-39ce5a300029
2026-06-09 00:27:51 -07:00
gsxdsm
6c129dafce FN-6040: show loading indicators for task detail activity and agent logs
Add first-load loading states so task activity and agent log views do not flash empty states.

- show a loading status row in the task detail Activity tab while detail history is still loading
- keep agent logs in a loading state until the active task/project context has completed its initial fetch
- add accessible loading markup, regression tests, and dashboard guide documentation for the new behavior

Files changed:
 docs/dashboard-guide.md                            |   1 +
 .../dashboard/app/components/AgentLogViewer.css    |  18 +++
 .../dashboard/app/components/AgentLogViewer.tsx    |   2 +-
 .../dashboard/app/components/TaskDetailModal.css   |  17 +++
 .../dashboard/app/components/TaskDetailModal.tsx   |   7 +-
 .../components/__tests__/AgentLogViewer.test.tsx   |   3 +-
 .../components/__tests__/TaskDetailModal.test.tsx  | 144 +++++++++++++++++++++
 .../app/hooks/__tests__/useAgentLogs.test.ts       |  74 +++++++++++
 packages/dashboard/app/hooks/useAgentLogs.ts       |  14 +-
 9 files changed, 276 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-6040

Fusion-Task-Lineage: cd4b8f7f-63cd-4d75-be00-d362e915f4e8
2026-06-08 13:32:58 -07:00
gsxdsm
c8cb740b93 FN-6026: use model dropdowns for workflow lane settings
Use the shared model picker for workflow lane settings instead of raw provider/model text entry.

- replace built-in workflow model provider/model string fields with combined dropdown controls in the Values tab
- fetch available models and save or clear paired provider/model workflow values together, including fallback lanes
- add regression coverage for dropdown rendering, selection, clearing, empty registries, and paired-key validation errors
- update dashboard and settings documentation to describe the shared workflow model picker behavior

Files changed:
 docs/dashboard-guide.md                            |   4 +-
 docs/settings-reference.md                         |  22 +-
 packages/dashboard/app/components/WorkflowSettingsPanel.tsx       | 241 +++++++++++++++++++--
 packages/dashboard/app/components/__tests__/WorkflowSettingsPanel.test.tsx       | 133 +++++++++++-
 4 files changed, 369 insertions(+), 31 deletions(-)

Fusion-Task-Id: FN-6026

Fusion-Task-Lineage: 7f41120f-f764-4011-9aa5-a323e0aa64d6
2026-06-08 13:32:58 -07:00
gsxdsm
5976b63fda FN-6033: fix mobile workflow editor selection and touch targets
Keep the workflow editor mobile-first selection flow usable and improve tap targets on phones.

- start the mobile workflow editor on the workflow list with no preselected workflow and show a select-a-workflow prompt
- keep mobile list/editor stage transitions in sync after create, duplicate, import, and delete actions
- increase workflow editor mobile touch targets and padding without changing desktop sizing
- add regression coverage for mobile viewport selection behavior and CSS touch-target scoping
- update the dashboard guide to document the mobile workflow editor behavior

Files changed:
docs/dashboard-guide.md                            |  2 +-
packages/dashboard/app/components/WorkflowNodeEditor.css          | 56 +++++++++++++++++-
packages/dashboard/app/components/WorkflowNodeEditor.tsx          | 24 ++++++--
packages/dashboard/app/components/__tests__/WorkflowNodeEditor.css.test.ts       | 36 ++++++++++++
packages/dashboard/app/components/__tests__/WorkflowNodeEditor.test.tsx          | 68 ++++++++++++++++++++++

Fusion-Task-Id: FN-6033

Fusion-Task-Lineage: c9da29ef-c099-4e14-8671-24995106c78c
2026-06-08 13:32:58 -07:00
gsxdsm
40c0048f72 FN-6024: fix built-in workflow graph edges
Ensure built-in workflow editor graphs render connected, clickable edges above swimlane backgrounds.

- add explicit React Flow z-index layering so built-in workflow edges render above column bands while nodes stay interactive
- keep swimlane band backgrounds translucent and preserve failure/rework edge styling for read-only built-in workflows
- expand workflow editor tests to cover built-in/custom edge projection, handle rendering, and CSS edge visibility contracts
- document the built-in workflow editor edge behavior and add a patch changeset for @runfusion/fusion

Files changed:
 .changeset/FN-6024-built-in-workflow-edges.md      |   5 +
 docs/dashboard-guide.md                            |   1 +
 packages/dashboard/app/components/WorkflowNodeEditor.css          |   2 +-
 packages/dashboard/app/components/__tests__/WorkflowNodeEditor.css.test.ts       |  25 ++++ -
 packages/dashboard/app/components/__tests__/WorkflowNodeEditor.test.tsx          | 106 ++++++++++++++++++++-
 packages/dashboard/app/components/workflow-flow-mapping.ts        |  15 ++-
 6 files changed, 145 insertions(+), 9 deletions(-)

Fusion-Task-Id: FN-6024

Fusion-Task-Lineage: 7151d59b-b591-4642-95ca-93cc35198d41
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
61ae1bf706 feat(workflow-settings): simplify workflow model lanes 2026-06-07 22:07:47 -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
962b97ce84 FN-5967: add first-task GitHub star prompt
Show a one-time GitHub star prompt after a task first reaches done.

- detect task status transitions into done and trigger the prompt only in project view
- add a dismissible GitHub star prompt component plus localStorage-backed persistence hook
- cover the new prompt behavior with component, hook, and transition helper tests
- document the prompt behavior and styling guidance in the dashboard guide

Files changed:
 docs/dashboard-guide.md                            |  3 +
 packages/dashboard/app/App.tsx                     | 21 +++++-
 .../dashboard/app/components/GitHubStarPrompt.css  | 76 ++++++++++++++++++++++
 .../dashboard/app/components/GitHubStarPrompt.tsx  | 53 +++++++++++++++
 .../app/components/__tests__/App.test.tsx          | 12 +++-
 .../components/__tests__/GitHubStarPrompt.test.tsx | 40 ++++++++++++
 .../hooks/__tests__/useGitHubStarPrompt.test.ts    | 64 ++++++++++++++++++
 .../dashboard/app/hooks/useGitHubStarPrompt.ts     | 46 +++++++++++++
 8 files changed, 313 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-5967

Fusion-Task-Lineage: 5fffdf4d-61d8-4ac8-bcf4-8b453b639b28
2026-06-03 22:35:28 -07:00
gsxdsm
4625d644a8 FN-5954: decouple PR metadata loading from preflight options
Make the Create Pull Request modal interactive before AI metadata finishes loading.

- load preflight checks and PR options independently from AI title/body generation with separate loading and error states
- preserve base-branch selection and remediation actions while refreshing preflight or regenerating metadata
- cover the faster modal flow in tests and document the immediate-render behavior in the dashboard guide

Files changed:
 docs/dashboard-guide.md                            |   3 +-
 packages/dashboard/app/components/PrCreateModal.css     |  11 +
 packages/dashboard/app/components/PrCreateModal.tsx     | 357 ++++++++++++++-------
 packages/dashboard/app/components/__tests__/PrCreateModal.test.tsx    | 110 ++++++-
 4 files changed, 355 insertions(+), 126 deletions(-)

Fusion-Task-Id: FN-5954

Fusion-Task-Lineage: 2595d220-ca7a-403c-935c-900034a20c67
2026-06-03 22:35:28 -07:00
gsxdsm
05098e4033 FN-5963: add goals refinement evidence pack
Document the evidence required before activating conditional goals refinement work.

- add a dedicated goals refinement evidence pack doc with required observation fields and activation thresholds
- link the new evidence pack from the docs index and dashboard guide
- cover the doc with a dashboard test and keep PR conflict-resolution modal styling aligned after merge

Files changed:
 docs/README.md                                     |  1 +
 docs/dashboard-guide.md                            |  2 +-
 docs/goals-refinement-evidence-pack.md             | 74 ++++++++++++++++++++++
 .../goals-refinement-evidence-pack-docs.test.ts    | 22 +++++++
 .../dashboard/app/components/PrCreateModal.css     |  6 +-
 .../dashboard/app/components/PrCreateModal.tsx     |  2 +-
 6 files changed, 103 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-5963

Fusion-Task-Lineage: 22cefe55-6b1e-4ff7-8fb1-5734f2b5a29b
2026-06-03 22:31:23 -07:00
gsxdsm
8891d4b90a FN-5950: add Create PR branch-push remediation
Add in-app preflight remediation so Create PR can push task branches without leaving Fusion.

- add a dashboard API route and client helper to push the task branch to origin and recompute PR preflight state
- update the Create Pull Request modal, styles, and tests to surface push-branch remediation alongside AI conflict resolution
- document the flow and add a published CLI changeset plus server coverage for the new push-branch endpoint

Files changed:
 .changeset/fn-5950-pr-push-branch.md               |   5 +
 docs/dashboard-guide.md                            |   2 +-
 packages/dashboard/app/api/legacy.ts               |  19 +++
 packages/dashboard/app/components/PrCreateModal.css     |   4 +-
 packages/dashboard/app/components/PrCreateModal.tsx     |  48 +++++-
 packages/dashboard/app/components/__tests__/PrCreateModal.test.tsx    |  44 ++++++
 packages/dashboard/src/__tests__/register-git-github.pr-push-branch.test.ts     | 176 +++++++++++++++++++++
 packages/dashboard/src/routes/register-git-github.ts    |  68 ++++++++
 8 files changed, 362 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-5950

Fusion-Task-Lineage: 5a6c5c6a-8f99-44c0-8f54-f0a6ff537ed0
2026-06-03 22:31:23 -07:00
gsxdsm
c4ecf371da docs: capture IACVT frozen-animation learning; document duration tokens
Add docs/solutions/ui-bugs/ learning for the silent animation freeze caused
by transition tokens (duration+easing pairs) used as bare durations, and
update dashboard-guide.md design-token and pitfalls sections to cover the
new --duration-* tokens and the IACVT gotcha.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 20:02:03 -07:00
gsxdsm
8aed4da764 FN-5949: add AI PR conflict resolution to Create PR flow
Add dashboard support for resolving task-branch PR conflicts with AI before PR creation.

- add a dashboard PR conflict resolver that merges the selected base into the task branch, invokes an AI merge session on conflicted files, verifies markers are removed, then commits and pushes the updated branch
- expose a POST /tasks/:id/pr/resolve-conflicts route plus client API/export wiring, docs updates, and a changeset for the published CLI package
- update the Create PR modal UI, styling, and tests to surface preflight conflicts, trigger AI resolution, and refresh preflight state after success
- add API coverage for successful and unresolved conflict-resolution paths and include the new route test in the dashboard API quality shard

Files changed:
 .changeset/fn-5949-pr-conflict-resolution.md       |   5 +
 docs/dashboard-guide.md                            |   1 +
 docs/task-management.md                            |   1 +
 packages/dashboard/README.md                       |   1 +
 packages/dashboard/app/api/legacy.ts               |  20 ++
 .../dashboard/app/components/PrCreateModal.css     |  32 ++-
 .../dashboard/app/components/PrCreateModal.tsx     |  46 ++++
 .../components/__tests__/PrCreateModal.test.tsx    |  33 +++
 ...egister-git-github.pr-resolve-conflicts.test.ts | 186 +++++++++++++++
 packages/dashboard/src/index.ts                    |   5 +
 packages/dashboard/src/pr-conflict-resolver.ts     | 258 +++++++++++++++++++++
 .../dashboard/src/routes/register-git-github.ts    | 225 ++++++++++++------
 packages/dashboard/vitest.config.ts                |   2 +-
 13 files changed, 739 insertions(+), 76 deletions(-)

Fusion-Task-Id: FN-5949

Fusion-Task-Lineage: fea35fbf-6254-415c-83cc-0bc24abc911e
2026-06-03 15:32:29 -07:00
gsxdsm
f1572a3b62 FN-5946: render PR create modal through a portal
Ensure the PR creation dialog escapes transformed ancestor layout traps.

- render `PrCreateModal` with `createPortal(..., document.body)` so the overlay stays fixed to the viewport
- add regression coverage for container-type and nested-overlay portal behavior plus close interactions
- document the modal overlay portal requirement in the dashboard guide

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 .../dashboard/app/components/PrCreateModal.tsx     |  6 ++-
 .../components/__tests__/PrCreateModal.test.tsx    | 63 +++++++++++++++++++++-
 3 files changed, 66 insertions(+), 5 deletions(-)

Fusion-Task-Id: FN-5946

Fusion-Task-Lineage: eb22590e-1776-49f3-82d7-ac87c5138f0b
2026-06-03 15:32:28 -07:00