Installing the Compound Engineering plugin from Settings → Built-in
Plugins failed with "Plugin manifest not found": the dashboard's
bundled-plugin fallback set (BUNDLED_PLUGIN_IDS in routes.ts) was
missing fusion-plugin-compound-engineering, so when the relative
./plugins/... path missed the server cwd, the bundled lookup was never
attempted. fusion-plugin-cli-printing-press had the same gap.
- Add both ids to the dashboard's BUNDLED_PLUGIN_IDS fallback set.
- Stage fusion-plugin-compound-engineering into dist/plugins via
bundlePluginEntry in the CLI tsup config so packaged installs can
resolve the bundled copy (every other bundled plugin already had a
staging block).
- Add route tests that actually exercise the bundled fallback (the
existing ones let cwd resolution succeed, so the fallback path was
untested).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The merge of main added resolvePrBaseRef (consumes tryRun mocks before the
push sequence) and classifyGhError mapping (network errors -> structured
502 with githubError payload). The long-orphaned test pinned the old shape.
Re-mapped mock queues to the real sequence, asserted the stronger current
error contract (status + githubError.code + retryable), and made the
accidentally-passing no-commits test deterministic. Mutate-to-prove
verified the push assertion still bites.
vi.waitFor polls, so the bound adds zero time to green runs; ink frame
scheduling has flaked past 3s under shard CPU contention while passing
instantly in isolation.
- WorkflowNodeEditor overlay was missing the `open` class, so the
graph editor mounted with display:none — clicking the button just
dismissed the steps view. Add `open` so the overlay renders.
- Add fusion-plugin-compound-engineering and fusion-plugin-roadmap to
BUILTIN_PLUGINS so they show under Settings → Built-in Plugins.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- WorkflowNodeEditor overlay was missing the `open` class, so the
graph editor mounted with display:none — clicking the button just
dismissed the steps view. Add `open` so the overlay renders.
- Add fusion-plugin-compound-engineering and fusion-plugin-roadmap to
BUILTIN_PLUGINS so they show under Settings → Built-in Plugins.
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
Restore the chat message pane empty state on mobile without regressing desktop sidebar layouts.
- style chat message-pane empty states as centered framed cards and normalize mobile spacing tokens
- keep sidebar padded empty states left-aligned so loading and list placeholders preserve their desktop layout
- add mobile and desktop regression coverage for direct chats and chat rooms across empty, loading, populated, and streaming states
Files changed:
packages/dashboard/app/components/ChatView.css | 26 +-
.../__tests__/ChatView.mobile-render.test.tsx | 299 +++++++++++++++++++++
2 files changed, 323 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-5948
Fusion-Task-Lineage: f4165f04-363d-4ade-8c10-6d242f943c6c
Harden executor worktree recovery coverage against fixed-path collisions.
- create a unique temporary root for the stale unregistered worktree test case
- derive the stale worktree path from that temporary root instead of a shared /tmp/test path
- initialize TaskExecutor with the same temporary root so setup and assertions stay aligned
Files changed:
packages/engine/src/__tests__/executor-worktree.test.ts | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-5965
Fusion-Task-Lineage: 4436bd02-b7f7-4e62-8514-0aef6cb67813