Expose Plan Review, Code Review, and Browser Verification optional groups across engineering built-ins, with Quick Fix defaulting all three off and Compound Engineering keeping CE code review inside the shared optional toggle.
Fusion-Task-Id: FN-7224
Classify write-capable graph nodes before handler dispatch and let executor adapters fulfill the declared worktree requirement, keeping custom-node execution out of lifecycle decision making.
Fusion-Task-Id: FN-7224
Move completed-step replay and proven-merge finalization into workflow-owned execution paths so graph restarts continue from live task projection instead of failing stale step nodes.
Fusion-Task-Id: FN-7224
## Summary
Default Coding now runs planned work step by step while keeping review
overhead explicit and toggleable: Plan Review runs before execution by
default, Code Review runs once at the end by default, and there is no
per-step or mandatory final review seam in that default path.
The original monolithic coding workflow remains available as Legacy
coding, while Coding (per-step review) keeps its per-step review/rework
loop and now also gets the default-on Plan Review gate before execution.
Task creation now preserves selected built-in workflows instead of
silently falling back to default Coding, including the Compound
Engineering workflow's plugin-gated create path.
## Validation
- `pnpm --filter @fusion/core exec vitest run
src/__tests__/builtin-workflows.test.ts
src/__tests__/workflow-optional-steps.test.ts
src/__tests__/builtin-code-review-group.test.ts --silent=passed-only
--reporter=dot`
- `pnpm --filter @fusion/dashboard exec vitest run
src/routes/__tests__/task-create-workflow-route.test.ts
--silent=passed-only --reporter=dot`
- `pnpm --filter @fusion/dashboard exec vitest run
app/components/__tests__/WorkflowNodeEditor.test.tsx
--silent=passed-only --reporter=dot`
- `pnpm --filter @fusion/core typecheck`
- `pnpm --filter @fusion/dashboard typecheck`
- `pnpm check:changesets`
- Browser smoke: loaded `http://localhost:5174/` and opened the
Workflows view.
---
[](https://github.com/EveryInc/compound-engineering-plugin)

<!-- stage-review-badge-begin -->
---
<a href="https://stagereview.app/Runfusion/Fusion/pull/1819">
<picture>
<source media="(prefers-color-scheme: dark)"
srcset="https://stagereview.app/assets/gh-open-in-stage-dark.svg">
<img src="https://stagereview.app/assets/gh-open-in-stage-light.svg"
alt="Open in Stage">
</picture>
</a>
<!-- stage-review-badge-end -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Updated the default Coding workflow to the new stepwise flow with a
default **Plan Review** gate and consolidated final review behavior;
added **Legacy coding** for the monolithic option.
* Improved the Tasks dock experience: active tasks are shown by default,
**Show Done** toggle, improved empty states, and clearer task-detail
back navigation.
* Command Center token analytics now shows the correct **Z.ai** icon for
standalone GLM model rows.
* **Bug Fixes**
* Hardened workflow recovery and already-merged detection to prevent
unsafe finalization and handle stale in-review pause/resume replays more
safely.
* **Documentation**
* Refreshed workflow, steps, dashboard, and architecture docs to match
the new gates and recovery behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Default the right-dock task sidebar to active work and make task-detail navigation reversible.
- Filter the dock Tasks list to hide done tasks by default while keeping archived tasks out of the compact sidebar.
- Add a Show Done toggle, updated empty states, and styling for the compact controls.
- Convert the task-detail header arrow into an accessible back button that uses the existing close-detail path.
- Document the sidebar behavior, add a patch changeset, and cover the active/default/back-button flows in tests.
Files changed:
.changeset/fn-7218-task-sidebar-active-list.md | 7 ++
docs/dashboard-guide.md | 5 +-
packages/dashboard/app/components/DockTaskList.css | 37 +++++++++
packages/dashboard/app/components/DockTaskList.tsx | 53 ++++++++++---
packages/dashboard/app/components/RightDock.tsx | 17 ++++-
.../app/components/__tests__/DockTaskList.test.tsx | 89 ++++++++++++++++++++--
.../app/components/__tests__/RightDock.test.tsx | 69 ++++++++++++-----
7 files changed, 239 insertions(+), 38 deletions(-)
Fusion-Task-Id: FN-7218
Fusion-Task-Lineage: ce8fe55e-a89e-4ca6-940e-2ca06c3c26df
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
recoverCompletedTask refused workflow-graph re-entry when the live task
has incomplete plan steps or a remediation bounce is already scheduled.
A pre-merge optional/advisory REVISE reopens steps and schedules a
sendTaskBackForFix bounce; a competing graph re-entry re-passed the
advisory step (budget exhausted), advanced to merge, and looped forever
on the 'task has incomplete steps' gate. Defer to the bounce /
stale-incomplete-review recovery so the executor finishes the steps.
Fusion-Task-Id: FN-7210
Embedded Import Tasks panes now flex to the available viewport height.\n\n- Add a base embedded-body flex rule shared by Issues and Pull Requests.\n- Cover the full-height behavior and non-embedded modal safeguards in CSS tests.\n- Add a patch changeset for the published Fusion package.\n\nFiles changed:\n .changeset/fn-7208-import-tasks-full-height.md | 7 +++++\n .../dashboard/app/components/GitHubImportModal.css | 4 +++\n .../__tests__/GitHubImportModal.test.tsx | 30 ++++++++++++++++++++++\n 3 files changed, 41 insertions(+)
Fusion-Task-Id: FN-7208
Fusion-Task-Lineage: 483889f2-48db-4c18-a58c-63f9a3661e45
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
Task-detail chat now adapts message width to narrow host containers while preserving wide layouts.
- Add a task chat container query that switches narrow hosts to the one-column chat layout.
- Widen user message bubbles to the full host width in right-side and narrow detail panels.
- Cover the CSS behavior with a targeted TaskChatTab regression test and add a patch changeset.
Files changed:
.changeset/fn-7207-task-chat-narrow-width.md | 7 +++++
packages/dashboard/app/components/TaskChatTab.css | 30 ++++++++++++++++++++++
.../app/components/__tests__/TaskChatTab.test.tsx | 23 +++++++++++++++++
3 files changed, 60 insertions(+)
Fusion-Task-Id: FN-7207
Fusion-Task-Lineage: d36fc06d-1e0c-4313-b764-13f31fe09d71
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
Narrow chat surfaces now let messages span their constrained container width.
- Add a ChatView container query that makes all message variants full-width in narrow hosts such as Quick Chat popups and the right dock.
- Update the mobile bubble cap to full width while preserving tablet assistant widening and desktop caps.
- Cover the responsive CSS contracts in dashboard tests and document the behavior with a patch changeset.
Files changed:
.changeset/fn-7204-full-width-chat-messages.md | 7 +++++++
docs/dashboard-guide.md | 6 +++---
packages/dashboard/app/components/ChatView.css | 12 +++++++++++-
.../__tests__/ChatView.core-contracts.test.tsx | 20 +++++++++++++++++---
.../components/__tests__/ChatView.mobile.test.tsx | 4 ++--
5 files changed, 40 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-7204
Fusion-Task-Lineage: 19da0d46-f0bf-46e7-9f87-900c5184f378
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
Refresh plugin dashboard navigation metadata from the current on-disk manifest so rebuilt plugins do not serve stale view details.
- Resolve the authoritative manifest path from plugin entry directories and package roots.
- Re-read and validate dashboardViews metadata before returning dashboard navigation entries, falling back only when the manifest cannot be used.
- Await refreshed dashboard-view metadata in the dashboard route and cover rebuild/removal cases with tests.
- Add a patch changeset for the published CLI package.
Files changed:
.../FN-7201-plugin-dashboard-view-refresh.md | 7 ++
packages/core/src/__tests__/plugin-loader.test.ts | 114 ++++++++++++++++++++-
packages/core/src/plugin-loader.ts | 94 ++++++++++++++++-
.../dashboard/src/__tests__/plugin-routes.test.ts | 42 +++++++-
packages/dashboard/src/routes.ts | 2 +-
5 files changed, 244 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-7201
Fusion-Task-Lineage: dbdd5575-1999-4c9c-93a4-25eb8f213e07
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
Keep Compound Engineering navigation surfaces on the Boxes glyph even when stale plugin metadata is served.
- Route desktop and mobile plugin nav entries through a dashboard-view icon resolver.
- Pin Compound Engineering plugin nav icons to Boxes by plugin id while preserving normal icon fallback behavior for other plugins.
- Align manifest/header icon invariants and add regression coverage for stale Sparkles/Grid3X3 metadata.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/FN-7198-compound-engineering-icon-match.md | 7 +++++++
packages/dashboard/app/components/LeftSidebarNav.tsx | 4 ++--
packages/dashboard/app/components/MobileNavBar.tsx | 6 +++---
.../app/components/__tests__/LeftSidebarNav.test.tsx | 6 +++++-
.../app/components/__tests__/MobileNavBar.test.tsx | 10 +++++++---
.../app/components/__tests__/pluginNavIcon.test.ts | 10 +++++++++-
packages/dashboard/app/components/pluginNavIcon.tsx | 12 ++++++++++++
.../src/__tests__/manifest.test.ts | 14 ++++++++++++++
.../src/dashboard/CompoundEngineeringView.tsx | 3 ++-
9 files changed, 61 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-7198
Fusion-Task-Lineage: e910bb82-55a7-4c81-a4fe-947a07b3e308
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>