Keep task detail PR and review affordances synchronized with the current project auto-merge setting.
- Thread the live auto-merge value into task detail modals and list split-pane detail views.
- Prefer the live auto-merge setting over the stale fetched modal snapshot while preserving task-level overrides.
- Cover PR and review tab behavior for auto-merge on/off and document the dashboard behavior.
- Evict flaky engine gate entries and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-6247-automerge-off-modal-stale.md | 5 +
docs/dashboard-guide.md | 1 +
packages/dashboard/app/App.tsx | 3 +-
packages/dashboard/app/components/AppModals.tsx | 2 +
packages/dashboard/app/components/ListView.tsx | 3 +
.../dashboard/app/components/TaskDetailModal.tsx | 4 +-
.../__tests__/TaskDetailModal.create-pr.test.tsx | 171 ++++++++++++++++++++-
packages/engine/vitest.config.ts | 2 -
8 files changed, 182 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6247
Fusion-Task-Lineage: 1321c03a-216d-4b15-bf4f-95621d68c9ae
Keep the mobile dashboard pinned while offscreen auto-merge controls are toggled.
- Reset document horizontal scroll during mobile board stabilization and immediately after auto-merge toggles.
- Cover portrait and landscape mobile scroll realignment in the auto-merge integration test.
- Document the real-browser blank-dashboard root cause and add a patch changeset.
Files changed:
.changeset/FN-6243-mobile-auto-merge-blank.md | 5 ++
...bile-auto-merge-toggle-document-scroll-blank.md | 55 ++++++++++++++++++++++
packages/dashboard/app/components/Board.tsx | 47 ++++++++++++++++--
...-merge-toggle-blank.mobile-integration.test.tsx | 49 +++++++++++++++++++
4 files changed, 152 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6243
Fusion-Task-Lineage: 91f74de2-667f-4732-a840-47b792288bec
Persist default workflow model lane edits through the Settings modal's primary save path.
- Register a Project Models section save handler so workflow lane overrides flush before closing Settings.
- Surface typed workflow setting rejections without closing the modal or showing a success toast.
- Remove the separate workflow-model save button and update coverage/docs for the unified save behavior.
Files changed:
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 17 +++++---
.../dashboard/app/components/SettingsModal.tsx | 11 ++++-
.../components/__tests__/SettingsModal.test.tsx | 50 ++++++++++++++++------
.../settings/sections/ProjectModelsSection.tsx | 42 ++++++++++--------
.../app/components/settings/sections/context.ts | 3 ++
6 files changed, 83 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-6225
Fusion-Task-Lineage: 98338f85-c742-46c2-8bdf-f676a6f7e32e
Restore Pi-upgraded workspaces to keep Fusion resources accessible and recover title generation when configured models go stale.
- Mark read-only Fusion/Pi provider settings views as project-trusted so extension loading keeps working after Pi upgrades.
- Retry task title summarization with automatic model resolution when the configured provider model is missing from the Pi registry.
- Cover provider settings trust behavior and stale summarizer fallback paths with regression tests.
- Document the read-only settings trust contract and add a patch changeset.
Files changed:
.changeset/fn-6218-pi-upgrade-regressions.md | 5 +
docs/settings-reference.md | 2 +
docs/task-management.md | 2 +
.../commands/__tests__/provider-settings.test.ts | 16 ++++
packages/cli/src/commands/provider-settings.ts | 5 +
packages/core/src/__tests__/ai-summarize.test.ts | 102 +++++++++++++++++++++
packages/core/src/ai-summarize.ts | 85 ++++++++++++-----
.../src/__tests__/pi-create-fn-agent.test.ts | 32 +++++++
packages/engine/src/pi.ts | 7 +-
9 files changed, 233 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-6218
Fusion-Task-Lineage: 3d6aca32-a56a-43a0-a57b-8e6abc839ce9
Guarantee AI merge clean-room worktrees are pruned on merge completion and swept by task state.
- prune pre-existing same-task AI merge temp worktrees before starting a new merge and audit cleanup outcomes
- add task-aware tempdir sweep rules with a short grace period for done or archived tasks and immediate cleanup for deleted tasks
- extend merger and self-healing coverage and document the updated stale worktree policy
Files changed:
.changeset/ai-merge-cleanup-sweep.md | 5 +
docs/architecture.md | 2 +-
packages/engine/src/__tests__/merger-ai-cleanup.test.ts | 109 ++++++++++++++++++--
packages/engine/src/__tests__/self-healing-tempdir-sweep.test.ts | 112 ++++++++++++++++++++-
packages/engine/src/merger-ai.ts | 63 ++++++++++++
packages/engine/src/self-healing.ts | 26 ++++-
6 files changed, 300 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-6199
Fusion-Task-Lineage: 659cc52f-0994-4315-a187-6c865bbe3983
Explain how bundled workflows stay hidden until their required plugin is installed.
- document the plugin-gated built-in workflow model in the plugin authoring guide
- show the core gating map and workflow visibility rules for listing and lookup
- note that the Compound Engineering built-in workflow appears only while its plugin is installed
Files changed:
docs/PLUGIN_AUTHORING.md | 48 ++++++++++++++++++++++++++++++++++++
docs/plugins/compound-engineering.md | 6 +++++
2 files changed, 54 insertions(+)
Fusion-Task-Id: FN-6200
Fusion-Task-Lineage: 72c64220-aef9-4f6b-92c3-5f53e67292fc
Turn on the workflow rollout flags by default and update docs/tests for the new opt-out behavior.
- default workflowColumns, workflowGraphExecutor, workflowInterpreterDualObserve, and workflowInterpreterAuthoritative to enabled in global settings
- update workflow docs and concepts to describe explicit flag-off overrides instead of default-off rollout gating
- remove redundant demo/test setup that manually enabled workflow columns and keep characterization coverage for both enabled and disabled states
- add a changeset for the published CLI package documenting the default-on workflow rollout
Files changed:
.changeset/fn-6126-workflow-flags-default-on.md | 5 +++++
CONCEPTS.md | 4 ++--
demo/seed.ts | 1 -
docs/workflow-steps.md | 10 +++++-----
packages/core/src/__tests__/move-task-characterization.test.ts | 4 +---
packages/core/src/settings-schema.ts | 7 ++++++-
packages/core/src/types.ts | 4 +++-
packages/core/src/workflow-columns-settings.ts | 4 ++--
8 files changed, 24 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-6126
Fusion-Task-Lineage: 334283a6-e80a-42d0-bf66-68f88a12e287
Expose the dashboard file viewer to plugin views and wire Compound Engineering artifacts to it.
- add an openFile callback to the dashboard plugin view context and pass through the app host implementation
- switch Compound Engineering artifact Open actions to the built-in file viewer with matching styling and coverage
- document the new plugin context capability and add a published changeset for the CLI package
Files changed:
.changeset/ce-docs-built-in-viewer.md | 5 +++
docs/PLUGIN_AUTHORING.md | 2 +-
packages/dashboard/app/App.tsx | 1 +
packages/dashboard/app/plugins/types.ts | 2 ++
.../src/dashboard-interop.d.ts | 1 +
.../src/dashboard/CompoundEngineeringView.css | 16 +++++++++
.../src/dashboard/CompoundEngineeringView.tsx | 24 +++++++-------
.../__tests__/CompoundEngineeringView.test.tsx | 38 ++++++++++++++++++++++
8 files changed, 76 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-6119
Fusion-Task-Lineage: 8feb461c-b1d2-4059-9aa1-ffc756d15196
Ensure agent-created untitled tasks still request AI-generated titles even when project auto-summarization is disabled.
- force summarize=true for agent-created tasks that do not provide an explicit title
- add engine tests covering untitled, titled, and title-generation behavior with autoSummarizeTitles disabled
- document the agent-task summarization behavior in settings docs
- add a patch changeset for the published CLI package
Files changed:
.changeset/agent-task-title-summaries.md | 5 ++
docs/settings-reference.md | 2 +-
packages/engine/src/__tests__/agent-tools.test.ts | 63 +++++++++++++++++++++++
packages/engine/src/agent-tools.ts | 1 +
4 files changed, 70 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6107
Fusion-Task-Lineage: d0c25981-a5cb-48ca-b835-9267817b4edd
Add an ESLint guard to keep plugin dashboard views out of server entrypoints.
- add a custom fusion/no-plugin-view-reexport ESLint rule for plugin src/index.ts files
- flag relative re-exports of *-view entrypoints so CSS-bearing dashboard modules stay out of Node-loaded plugin entries
- document the server-entry export constraint in the plugin authoring guide
Files changed:
docs/PLUGIN_AUTHORING.md | 1 +
eslint.config.mjs | 47 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 48 insertions(+)
Fusion-Task-Id: FN-6106
Fusion-Task-Lineage: 6bbfa073-e7fd-42a9-a332-c638b81cd55f
Add an inline task-detail action to summarize descriptions into titles.
- add a read-mode "Summarize as title" control in Task Detail for editable tasks with descriptions
- call the title summarizer, persist the generated title, and show loading/success/error feedback
- cover button visibility, pending, success, error, and mobile behavior in Task Detail tests
- document the new Task Detail modal action in the dashboard guide
Files changed:
docs/dashboard-guide.md | 1 +
.../dashboard/app/components/TaskDetailModal.css | 47 +++++++
.../dashboard/app/components/TaskDetailModal.tsx | 56 +++++++-
.../__tests__/TaskDetailModal.test-helpers.ts | 5 +-
.../components/__tests__/TaskDetailModal.test.tsx | 145 +++++++++++++++++++++
5 files changed, 247 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-6059
Fusion-Task-Lineage: ed5a2f1b-a490-45f7-a747-d28c345f143b