Commit Graph

15 Commits

Author SHA1 Message Date
gsxdsm
fb6b441fbe FN-5960: add unlinked mission advisory reporting
Add explicit visibility for active missions that remain intentionally unlinked to goals.

- document the no-backfill decision with an engine-emitted unlinked mission advisory
- add a scheduler reporter that emits one deduped workflow insight for active missions without goal links and falls back to task logs when insight storage is unavailable
- cover the advisory reporter and scheduler integration with focused tests
- clear PR remediation errors when changing the Create Pull Request base branch

Files changed:
 docs/missions.md                                   |   2 +
 .../dashboard/app/components/PrCreateModal.tsx     |   2 +
 packages/engine/src/__tests__/scheduler.test.ts    |   8 +
 .../unlinked-missions-advisory-reporter.test.ts    | 170 +++++++++++++++++++++
 packages/engine/src/scheduler.ts                   |  18 +++
 .../src/unlinked-missions-advisory-reporter.ts     | 117 ++++++++++++++
 6 files changed, 317 insertions(+)

Fusion-Task-Id: FN-5960

Fusion-Task-Lineage: efdbb4f5-fbd5-4ed7-9b9e-58706041d993
2026-06-07 18:51:46 -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
dfef5dadbd merge main: branch-group promote/abandon gating + compound-engineering plugin; re-applied i18n t() wrapping to main's restructured promote sections 2026-06-03 20:56:05 -07:00
gsxdsm
1e49494bac feat(i18n): full-sweep string migration — 5,930 keys across 5 locales (#1352)
Migration (multi-agent sweep over 216 files, 60 batches):
- Every user-visible dashboard + TUI string moved to t() with the exact
  English inline default (en rendering byte-identical)
- Catalogs merged from per-batch fragments: en/zh-CN/zh-TW/fr/es now
  carry ~5,930 keys each across common/app/errors/cli namespaces;
  CLI bundles regenerated (6 locales incl. ko)

Integration fixes:
- 18 type errors: reserved {{count}} interpolations renamed, malformed
  plural call, hand-rolled t-param types replaced with TFunction<"app">
- 23 lint errors: superseded label constants/helpers removed
- ExecutorStatusBar hook-order violation (keyboard-open early return
  moved below hooks)
- TUI tests wrapped in I18nextProvider (uninitialized fallback renders
  literal {{placeholders}}); dashboard vitest.setup boots a minimal en
  i18next instance for the same reason

Known WIP (next commits): ~457 residual strings across 50 batches,
Korean drafts for swept keys, and a dashboard test-suite pass that is
still being stabilized (~283 failures under investigation — fake-timer
waitFor interaction, likely stale node_modules vs merged lockfile).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 19:06:53 -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
Fusion (runfusion.ai)
218046f8ea feat(FN-5051): complete Step 2 — wire modal resize persistence hook
Fusion-Task-Id: FN-5051
Fusion-Task-Lineage: a83d5a5a-0211-47ae-9894-0f9a31aaa1bd
2026-05-18 08:31:38 -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)
46794e758b fix(FN-5010): avoid template hex interpolation for chip color var
Fusion-Task-Id: FN-5010
Fusion-Task-Lineage: 0975200b-f771-4e8e-a851-8286c0309257
2026-05-18 05:10:44 -07:00
Fusion (runfusion.ai)
b58e65d587 feat(FN-5010): complete Step 1 — move label color to CSS custom property
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)
26c3d330d3 feat(FN-4764): complete Step 2-4 — surface structured gh errors in API UI CLI
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