Capture the 4-list registration requirement for bundled plugins
(Settings catalog, dashboard fallback set, CLI auto-install list,
tsup staging) in docs/solutions/, and add the Bundled Plugin concept
to CONCEPTS.md.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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
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
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
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>
Document why the FN-5852 queued-message loss survived two fixes (client
gates a destructive flush on a route-level enrichment field that SSE
payloads lack) and seed CONCEPTS.md with Generation, Queued message, and
Enrichment field.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 427 orphaned dashboard test files ran in NO gate; 395 now gated via self-maintaining backfill lanes (glob minus curated minus skip-list), 31 pre-existing failures + build-output skip-listed with reasons
- settings -t name-filter lanes replaced by one unfiltered lane (describe blocks can no longer fall through filters)
- scripts/check-test-inventory.mjs: --capture/--diff superset harness + --dashboard-curated completeness guard
- pr-checks.yml: engine-slow CI gate (non-empty assertion) + inventory guard job
- docs/testing.md: guard, skip-list policy, harness usage
- ko added to SUPPORTED_LOCALES and every enumeration site (config,
settings enum, help text, tests); Korean catalogs authored for all
current keys; CLI bundles regenerated for 6 locales; 한국어 endonym
- README translated into zh-CN, zh-TW, fr, es, ko; every README carries
a language-switcher line and the localized ones note that English is
canonical
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
handlePlan charged the budget but never checked the ceiling or set the
flag, so a plan-ONLY stream kept emitting after crossing the cap (caught by
both review bots). It now flags + truncates exactly like text/thinking.
Adds the plan-only flood regression test (185 total) and the category
frontmatter field to the new solutions doc.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>