Commit Graph

16 Commits

Author SHA1 Message Date
gsxdsm
65abae26c6 FN-7181: improve PR metadata generation feedback
Ground PR metadata generation in repository evidence and make Create PR loading states explicit.

- Upgrade the PR metadata system/context prompt while preserving configurable title and description guidance.\n- Show disabled title/body skeleton states while AI metadata generates and block submission until content resolves.\n- Extend dashboard tests, docs, and changeset coverage for the improved PR prompt and loading behavior.\n\nFiles changed:\n .../fn-7181-pr-generation-prompt-and-loading.md    |  7 +++\n docs/dashboard-guide.md                            |  2 +-\n .../dashboard/app/components/PrCreateModal.css     | 62 ++++++++++++++++++++++\n .../dashboard/app/components/PrCreateModal.tsx     | 47 +++++++++++++---\n .../components/__tests__/PrCreateModal.test.tsx    | 60 ++++++++++++++++-----\n .../src/__tests__/pr-metadata-generator.test.ts    | 44 ++++++++++++---\n packages/dashboard/src/pr-metadata-generator.ts    | 33 +++++++++---\n 7 files changed, 221 insertions(+), 34 deletions(-)

Fusion-Task-Id: FN-7181

Fusion-Task-Lineage: 6565ddce-c205-4050-a37f-ffbb2f2d46d4

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 01:17:22 -07:00
gsxdsm
3a52c7a7cd FN-7176: add PR body markdown preview toggle
Add a markdown preview mode to the Create PR body editor while preserving raw submission text.

- Add a persisted Preview/Edit toggle for the Create PR body field.
- Render body markdown through the shared sanitized markdown pipeline in preview mode.
- Style the preview region and document the modal behavior.
- Cover edit, preview, regenerate, revert, empty/fallback, and submit payload flows.

Files changed:
 docs/dashboard-guide.md                            |   1 +
 .../dashboard/app/components/PrCreateModal.css     |  24 ++++-
 .../dashboard/app/components/PrCreateModal.tsx     |  51 +++++++++-
 .../components/__tests__/PrCreateModal.test.tsx    | 107 +++++++++++++++++++++
 4 files changed, 181 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-7176

Fusion-Task-Lineage: 82275fb1-f89a-4fa2-9c47-7a7e7982c6cd

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 01:11:03 -07:00
gsxdsm
411806163f FN-7170: make Create PR dialog draggable and resizable
Move the Create PR dialog onto the shared floating window shell.

- Render PrCreateModal in FloatingWindow with persisted desktop geometry and embedded-header dragging.
- Add CSS that lets the modal fill its floating panel while preserving a full-screen mobile layout.
- Update docs, release notes, and modal tests for floating behavior, resize handles, and non-overlay dismissal.

Files changed:
 .changeset/fn-7170-pr-create-modal-floating.md     |  7 ++
 docs/dashboard-guide.md                            |  1 +
 .../dashboard/app/components/PrCreateModal.css     | 63 +++++++++++----
 .../dashboard/app/components/PrCreateModal.tsx     | 28 ++++---
 .../__tests__/PrCreateModal.layout.test.tsx        |  6 +-
 .../components/__tests__/PrCreateModal.test.tsx    | 94 +++++++++++++++++++---
 .../app/components/__tests__/TaskCard.test.tsx     |  8 +-
 7 files changed, 168 insertions(+), 39 deletions(-)

Fusion-Task-Id: FN-7170

Fusion-Task-Lineage: 03452d6a-0da7-4891-a58e-6d93a93383f7

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 23:42:11 -07:00
gsxdsm
79239779cc FN-7171: fix Create PR commit preview layout
Keep the Create PR preview readable by aligning commit rows to their DOM order.

- Split commit-row and file-row grid templates so commit SHAs use a fixed content column.
- Prevent short commit SHAs from wrapping while leaving subjects in the flexible column.
- Add tests covering commit preview row ordering, empty commit hints, and file-row layout.
- Add a patch changeset for the published Fusion package.

Files changed:
 .changeset/fn-7171-pr-preview-commit-layout.md     |  7 +++
 .../dashboard/app/components/PrCreateModal.css     | 14 +++++-
 .../components/__tests__/PrCreateModal.test.tsx    | 55 ++++++++++++++++++++++
 3 files changed, 75 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-7171

Fusion-Task-Lineage: e0fe2ac5-1087-4a54-b60e-673c7b980780

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 23:30:52 -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
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
d37bebf8bf feat(FN-5516): merge fusion/fn-5516 2026-05-22 17:24:38 -07:00
gsxdsm
ed4d021d3d fix(dashboard): keep mobile nav visible on Android landscape and during keyboard
- Broaden mobile media query to include (max-height: 480px) so landscape
  phones (which exceed 768 CSS px wide) still render the bottom nav and
  mobile board layout instead of desktop horizontally-scrollable columns.
- Guard useMobileKeyboard against pinch-zoom (vv.scale > 1) — Android
  Chrome ignores user-scalable=no, and a focused textarea + zoom was
  false-positiving keyboard-open and hiding MobileNavBar.
- Read documentElement.clientHeight instead of stale window.innerHeight
  when computing keyboard overlap (Android multi-window can leave
  innerHeight cached at a wildly different value than the actual layout
  viewport — observed 2848 while html was 797).
- Add interactive-widget=resizes-content to the viewport meta so Android
  Chrome shrinks the layout viewport with the soft keyboard, matching iOS.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 13:12:36 -07:00
Fusion (runfusion.ai)
a448a10723 feat(FN-5051): complete Step 3 — add resizable PR modal sizing
Fusion-Task-Id: FN-5051
Fusion-Task-Lineage: a83d5a5a-0211-47ae-9894-0f9a31aaa1bd
2026-05-18 08:31:38 -07:00
Fusion (runfusion.ai)
4708c0c7a8 feat(FN-5049): complete Step 2 — tighten PR modal mobile spacing
Fusion-Task-Id: FN-5049
Fusion-Task-Lineage: d4b3872d-00ff-466a-bb0d-893c5d90962c
2026-05-18 07:52:44 -07:00
Fusion (runfusion.ai)
b4d6b85692 feat(FN-5049): complete Step 1 — add PR create modal scroll body
Fusion-Task-Id: FN-5049
Fusion-Task-Lineage: d4b3872d-00ff-466a-bb0d-893c5d90962c
2026-05-18 07:52:44 -07:00
Fusion (runfusion.ai)
c34e778a65 feat(FN-5010): complete Step 2 — tint chips via CSS var modifier
Fusion-Task-Id: FN-5010
Fusion-Task-Lineage: 0975200b-f771-4e8e-a851-8286c0309257
2026-05-18 05:10:44 -07:00
Fusion (runfusion.ai)
ae740bdb24 fix(FN-4764): add dismissible structured PR error blocks and styles
Fusion-Task-Id: FN-4764
Fusion-Task-Lineage: 14809ad5-8463-4e16-a934-1414225f17ae
2026-05-17 14:48:31 -07:00
Fusion (runfusion.ai)
d0fb08c037 feat(FN-4756): complete Step 2 — add PrCreateModal component
Fusion-Task-Id: FN-4756
Fusion-Task-Lineage: 9a559f69-3ca1-4d94-9b35-9c7a0849d82c
2026-05-17 03:13:57 -07:00