Commit Graph

10199 Commits

Author SHA1 Message Date
gsxdsm
2be00efc04 fix(cli): stop engine teardown logs repainting shell after TUI quit
Root cause of "the TUI keeps rendering after I get my terminal back": on
quit, dispose() called logSink.releaseConsole() (re-pointing console.* at
the real terminal) and then tui.stop() left the alt-screen and restored the
user's shell. Every log line from the slow engine/mesh/dev-server teardown
that followed then painted over the recovered prompt.

dispose() now calls a new logSink.silence() instead, which drops all sink
and console.* output from quit through process exit. Shutdown-step
diagnostics (timeShutdownStep + the watchdog stall line) are gated behind
FUSION_DEBUG_SHUTDOWN so a normal quit is pristine; the 3s hard-exit
watchdog still guarantees the process dies.

Adds a silence() regression guard to log-sink.test.ts asserting sink
methods and captured console.* both go silent across surfaces.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 10:56:38 -07:00
gsxdsm
c48dcae331 FN-7197: assign Compound Engineering a distinct sidebar icon
Give Compound Engineering its own Boxes glyph across plugin navigation and headers.

- Register the Boxes lucide icon for plugin navigation so desktop and mobile sidebars can resolve it.
- Switch the Compound Engineering manifest, plugin definition, and view header from Sparkles to Boxes.
- Update navigation and manifest tests plus the release changeset for the published CLI bundle.

Files changed:
 .changeset/FN-7197-compound-engineering-icon.md            |  7 +++++++
 .../app/components/__tests__/MobileNavBar.test.tsx         |  2 +-
 .../app/components/__tests__/pluginNavIcon.test.ts         | 14 ++++++++++++++
 packages/dashboard/app/components/pluginNavIcon.tsx        |  7 ++++++-
 plugins/fusion-plugin-compound-engineering/manifest.json   |  2 +-
 .../src/__tests__/manifest.test.ts                         |  2 +-
 .../src/dashboard/CompoundEngineeringView.tsx              | 12 +++++++++---
 plugins/fusion-plugin-compound-engineering/src/index.ts    |  2 +-
 8 files changed, 40 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-7197

Fusion-Task-Lineage: 03c67bfa-3e28-4a2a-b15e-b2c3576588c1

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 10:06:43 -07:00
gsxdsm
ac4c3b7a01 FN-7192: Document custom workflow capacity dispatch
Clarify the custom workflow migration boundary and lock dispatch behavior with tests.

- Document that pure-v1 custom workflows keep trait-less default columns for rollback compatibility.
- Show the v2 hold(capacity) and wip traits required for custom workflow capacity dispatch.
- Add core and engine regression coverage for pure-v1 stranding and authored-v2 release behavior.

Files changed:
 docs/workflow-editor.md                            |  34 +++++
 docs/workflow-steps.md                             |  40 ++++++
 .../__tests__/custom-v1-workflow-dispatch.test.ts  | 154 +++++++++++++++++++++
 packages/engine/src/__tests__/hold-release.test.ts |  81 ++++++++++-
 4 files changed, 306 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-7192

Fusion-Task-Lineage: ff7af258-c0cb-4b81-8919-9e076c3ac1df

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 09:59:57 -07:00
gsxdsm
f0b3003c0a FN-7195: keep model names readable in token table
Keep Summary token-usage model labels readable in narrow task detail layouts.

- Add a desktop token table minimum width so right-dock layouts scroll instead of collapsing model labels.
- Restore normal model-name wrapping while preserving mobile stacked-card behavior.
- Cover the responsive CSS contract and add a patch changeset for the published package.

Files changed:
 .changeset/fn-7195-model-name-wrap.md                       |  7 +++++++
 packages/dashboard/app/components/TaskDetailModal.css       |  8 +++++++-
 .../__tests__/TaskDetailModal.summary-tab.test.tsx          | 13 ++++++++++++-
 3 files changed, 26 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-7195

Fusion-Task-Lineage: 97f972f6-ac6e-4632-86ed-b3184c7abbc2

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 09:47:07 -07:00
gsxdsm
631e8fc675 FN-7159: add canonical CE HTML checklist repair
Enable CE HTML document review to safely canonicalize malformed checklists.

- Add a DOM-safe checklist-repair operation that rewrites provable markdown-marker and checkbox list shapes into canonical CE checklist HTML.
- Refuse ambiguous, nested, state-bearing, or protected checklist-like markup while preserving report-only fallback semantics.
- Expand HTML mutation and CE doc-review tests plus operator docs and rendering guidance for the canonical checklist contract.

Files changed:
 .changeset/fn-7159-canonical-html-checklist.md     |   7 +
 docs/workflow-editor.md                            |   2 +-
 docs/workflow-steps.md                             |   5 +-
 .../src/__tests__/ce-doc-review-html-mode.test.ts  |   6 +-
 .../src/artifacts/__tests__/html-mutation.test.ts  | 135 ++++++++++++++-
 .../src/artifacts/html-mutation.ts                 | 186 ++++++++++++++++++++-
 .../ce-brainstorm/references/html-rendering.md     |  31 ++++
 .../src/skills/ce-doc-review/SKILL.md              |  13 +-
 .../skills/ce-ideate/references/html-rendering.md  |  31 ++++
 .../skills/ce-plan/references/html-rendering.md    |  31 ++++
 10 files changed, 436 insertions(+), 11 deletions(-)

Fusion-Task-Id: FN-7159
Fusion-Task-Lineage: bbde7003-2942-4363-98d5-53bc3a5976b8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 09:20:17 -07:00
gsxdsm
68d2d41f37 FN-7194: verify Compound Engineering workflow skills
Add regression coverage proving the built-in Compound Engineering workflow resolves and installs every referenced skill.

- Collect skill-bearing nodes from the built-in Compound Engineering workflow, including optional-group template children.\n- Assert ce-plan, ce-work, ce-code-review, and follow-on workflow skills map to bundled SKILL.md files.\n- Verify bundled CE skill installation places each workflow-named skill on the discovery root used by sessions.\n\nFiles changed:\n .../__tests__/ce-workflow-skill-alignment.test.ts  | 106 +++++++++++++++++++++\n 1 file changed, 106 insertions(+)

Fusion-Task-Id: FN-7194

Fusion-Task-Lineage: 8461ebae-1484-4e77-a9ae-e18531e617b5

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 09:12:13 -07:00
gsxdsm
8d3c15eb10 FN-7193: theme quick-add workflow controls
Theme quick-add optional step controls and workflow phase badges with shared dashboard tokens.

- Apply the dashboard accent token to optional-step checkboxes in the workflow quick-add dropdown.
- Co-locate workflow phase badge styles with the shared badge helper so all badge surfaces inherit themed colors.
- Add CSS regression coverage for themed checkboxes, phase badges, and duplicate badge-style removal.
- Add a patch changeset for the published Fusion package.

Files changed:
 ...fn-7193-quick-add-steps-badge-checkbox-theme.md |  7 ++++
 .../components/WorkflowOptionalStepsDropdown.css   |  6 ++++
 .../app/components/WorkflowResultsTab.css          | 18 ----------
 .../WorkflowOptionalStepsDropdown.test.tsx         | 10 ++++++
 .../__tests__/workflow-phase-badge.test.tsx        | 41 ++++++++++++++++++++++
 .../app/components/workflow-phase-badge.css        | 17 +++++++++
 .../app/components/workflow-phase-badge.tsx        |  2 ++
 7 files changed, 83 insertions(+), 18 deletions(-)

Fusion-Task-Id: FN-7193

Fusion-Task-Lineage: e1db3949-a493-4949-945d-26f567eace89

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 09:09:03 -07:00
gsxdsm
b5ed4e0098 chore(cli): re-add changeset for TUI quit hard-exit fix
Restores the .changeset entry dropped during the squash-merge that landed
the dashboard shutdown watchdog + timeShutdownStep instrumentation. Code
was already on main; only the release-notes changeset was lost.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 08:43:15 -07:00
gsxdsm
fb509b1ed3 FN-7190: fix linear built-in workflow dispatch
Ensure selectable linear built-in workflows carry the default queue traits needed for Todo release.

- Convert linear built-in workflow IR to v2 with cloned canonical coding workflow columns.
- Guard synthesized linear built-ins so todo retains hold-capacity dispatch traits.
- Cover quick-fix, review-heavy, design, and compound-engineering Todo release behavior with regression tests.
- Document that selectable built-ins dispatch through capacity-released queue columns.
- Add a patch changeset for the published CLI package.

Files changed:
 .changeset/fn-7190-linear-builtin-todo-hold.md     |   7 ++
 docs/workflow-editor.md                            |   2 +-
 docs/workflow-steps.md                             |   5 +
 .../core/src/__tests__/builtin-workflows.test.ts   | 110 +++++++++++++++++++++
 packages/core/src/builtin-workflows.ts             |  46 ++++++---
 packages/engine/src/__tests__/hold-release.test.ts |  28 ++++++
 6 files changed, 181 insertions(+), 17 deletions(-)

Fusion-Task-Id: FN-7190

Fusion-Task-Lineage: a0a40365-4bd5-49a8-8ae4-5e313cf1d4e0

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 08:19:01 -07:00
gsxdsm
fecb27e768 FN-7149: add DOM-safe CE HTML mutation
Add a parse5-backed mutation path for CE HTML artifacts with docs and validation coverage.

- Add safe CE HTML mutation helpers for open-question append, heading repair, whitespace normalization, visible-text replacement, atomic writes, and rollback on validation failure.
- Cover DOM mutation behavior and ce-doc-review HTML-mode expectations with focused tests.
- Update CE skill/reference guidance and workflow docs to require DOM-safe artifact edits with report-only fallback.
- Add parse5 to the compound engineering plugin and record the published CLI changeset.

Files changed:
 .changeset/fn-7149-dom-safe-html-mutation.md       |   7 +
 docs/workflow-editor.md                            |   2 +-
 docs/workflow-steps.md                             |  10 +-
 .../package.json                                   |   1 +
 .../src/__tests__/ce-doc-review-html-mode.test.ts  |  38 +-
 .../src/artifacts/__tests__/html-mutation.test.ts  | 228 +++++++++
 .../src/artifacts/html-mutation.ts                 | 519 +++++++++++++++++++++
 .../src/skills/ce-brainstorm/references/handoff.md |  12 +-
 .../ce-brainstorm/references/html-rendering.md     |  12 +-
 .../src/skills/ce-doc-review/SKILL.md              |  20 +-
 .../skills/ce-ideate/references/html-rendering.md  |  12 +-
 .../src/skills/ce-plan/SKILL.md                    |  18 +-
 .../skills/ce-plan/references/html-rendering.md    |  16 +-
 .../src/skills/ce-plan/references/plan-handoff.md  |  24 +-
 pnpm-lock.yaml                                     |   3 +
 15 files changed, 853 insertions(+), 69 deletions(-)

Fusion-Task-Id: FN-7149

Fusion-Task-Lineage: eaf84a8b-a52b-487d-9517-22e4499e8af7

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 08:03:32 -07:00
gsxdsm
7a2137c250 FN-7191: allow direct agent questions
Permanent agents can ask structured user questions without approval gating.

- Classify fn_ask_question as a read-only coordination tool for permanent-agent decisions.
- Exempt fn_ask_question from the action gate under locked-down policies.
- Document the user-question exemption and add release notes plus gate coverage.

Files changed:
 .changeset/FN-7191-ask-question-no-gate.md         |  7 +++
 docs/agents.md                                     |  2 +-
 .../engine/src/__tests__/agent-action-gate.test.ts | 14 ++++++
 .../src/__tests__/gating-classifications.test.ts   |  6 +++
 .../src/__tests__/permanent-agent-gating.test.ts   | 50 ++++++++++++++++++++++
 packages/engine/src/gating-classifications.ts      | 10 +++++
 6 files changed, 88 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-7191

Fusion-Task-Lineage: 349084a8-9098-49f7-ab82-c5a775c0a24c

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 07:53:44 -07:00
gsxdsm
4405dec310 FN-7187: re-engage executors from in-review chat
Route user comments on in-review tasks through the executor re-engagement path.

- Reuse review-address re-engagement for Chat steering and Comments-tab user comments.
- Suppress re-engagement for open PR blockers, live sessions, and non-user task comments.
- Cover the in-review comment wake behavior with dashboard route tests and operator docs.

Files changed:
 .changeset/fn-7187-in-review-chat-reengage.md      |   7 +
 docs/dashboard-guide.md                            |   2 +-
 .../src/__tests__/routes-tasks-ops.test.ts         | 236 +++++++++++++++++++++
 .../src/routes/register-task-workflow-routes.ts    | 138 +++++++++---
 4 files changed, 351 insertions(+), 32 deletions(-)

Fusion-Task-Id: FN-7187

Fusion-Task-Lineage: f0984ede-4038-439a-a8b4-5d6ed6756c40

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 02:47:38 -07:00
gsxdsm
a0602d0d26 FN-7169: Open board tasks in the right sidebar
Add a default-off project setting that routes board task-card opens into the right dock when available.

- Add the openTasksInRightSidebar project setting, defaults, docs, and release changeset.
- Wire Appearance settings to save the toggle and refresh embedded settings closes.
- Render board-opened task detail inside the right dock with mobile/dock-inactive fallback to the full panel.
- Cover the setting defaults, board routing, right-dock task surface, and Appearance toggle with tests.

Files changed:
 .changeset/fn-7169-open-tasks-in-right-sidebar.md  |   7 ++
 docs/dashboard-guide.md                            |   2 +
 docs/settings-reference.md                         |   1 +
 .../core/src/__tests__/settings-defaults.test.ts   |  13 +++
 packages/core/src/settings-schema.ts               |   1 +
 packages/core/src/types.ts                         |   7 ++
 packages/dashboard/app/App.tsx                     |  29 +++++-
 .../__tests__/App.openTasksInRightSidebar.test.ts  |  16 +++
 packages/dashboard/app/components/RightDock.tsx    |  41 ++++++--
 .../dashboard/app/components/SettingsModal.tsx     |   1 +
 .../app/components/__tests__/RightDock.test.tsx    | 109 +++++++++++++++++++++
 .../app/components/dashboard/MainContent.tsx       |  13 ++-
 .../__tests__/MainContent.graph-popout.test.tsx    |  29 ++++++
 .../dashboard/app/components/dashboard/types.ts    |   2 +
 .../settings/sections/AppearanceSection.tsx        |   9 +-
 .../sections/__tests__/AppearanceSection.test.tsx  |  63 ++++++++++++
 .../app/components/useRightDockController.tsx      |  64 +++++++++++-
 packages/dashboard/app/hooks/useAppSettings.ts     |   5 +
 packages/dashboard/vitest.config.ts                |   1 +
 19 files changed, 397 insertions(+), 16 deletions(-)

Fusion-Task-Id: FN-7169
Fusion-Task-Lineage: b135a1ac-b661-4774-9a04-91aaf5184394
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 02:17:25 -07:00
gsxdsm
9050ee1a42 FN-7185: add PR feedback addressing action
Add a dashboard action that starts an AI pass for actionable pull-request review feedback.

- Add a lifecycle route that validates linked PR tasks, seeds a ce-resolve-pr-feedback steering prompt, returns in-review tasks to active work, and wakes assigned agents when needed.
- Add shared PR feedback gating plus task-card and Review tab buttons with loading states, toasts, styling, docs, and translations.
- Cover the route, API client, task card, and Review tab behavior with regression tests.

Files changed:
 .changeset/fn-7185-address-pr-feedback.md          |   7 +
 docs/dashboard-guide.md                            |   1 +
 packages/dashboard/app/__tests__/api-tasks.test.ts |  12 ++
 packages/dashboard/app/api/legacy.ts               |  11 ++
 packages/dashboard/app/components/TaskCard.css     |   7 +-
 packages/dashboard/app/components/TaskCard.tsx     |  44 +++++-
 .../dashboard/app/components/TaskReviewTab.tsx     |  41 ++++-
 .../app/components/__tests__/TaskCard.test.tsx     | 164 +++++++++++++++++++-
 .../components/__tests__/TaskReviewTab.test.tsx    | 127 ++++++++++++++++
 packages/dashboard/app/utils/prFeedback.ts         |  22 +++
 .../dashboard/src/__tests__/routes-tasks.test.ts   | 165 +++++++++++++++++++++
 .../src/routes/register-task-workflow-routes.ts    |  67 +++++++++
 packages/i18n/locales/en/app.json                  |  10 ++
 packages/i18n/locales/es/app.json                  |  22 ++-
 packages/i18n/locales/fr/app.json                  |  22 ++-
 packages/i18n/locales/ko/app.json                  |  22 ++-
 packages/i18n/locales/zh-CN/app.json               |  22 ++-
 packages/i18n/locales/zh-TW/app.json               |  22 ++-
 18 files changed, 764 insertions(+), 24 deletions(-)

Fusion-Task-Id: FN-7185

Fusion-Task-Lineage: b2e98163-4fc6-45c9-8ace-a14eeb096e10

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 02:04:31 -07:00
gsxdsm
dc54b615d4 FN-7182: pause auto-merge for manual pull requests
Manual pull requests now pause automatic merge processing until human action closes or merges the PR.

- Mark dashboard-created or linked pull requests with manual provenance and preserve it across PR refreshes and merges.
- Exclude tasks with manual open or draft PRs from automatic merge processing while preserving pipeline PR automation.
- Add regression coverage and document the manual PR handoff behavior.

Files changed:
 .changeset/FN-7182-no-auto-merge-with-manual-pr.md |  7 ++
 docs/architecture.md                               |  2 +-
 docs/dashboard-guide.md                            |  1 +
 packages/core/src/__tests__/task-helpers.test.ts   | 49 ++++++++++++-
 packages/core/src/__tests__/task-merge.test.ts     | 60 +++++++++++++++-
 packages/core/src/index.ts                         |  2 +-
 packages/core/src/task-helpers.ts                  | 13 ++++
 packages/core/src/task-merge.ts                    | 10 ++-
 packages/core/src/types.ts                         |  6 ++
 .../dashboard/src/__tests__/routes-auth.test.ts    | 80 ++++++++++++++++++++++
 .../dashboard/src/__tests__/routes-github.test.ts  | 45 +++++++++++-
 .../dashboard/src/routes/register-git-github.ts    | 20 +++++-
 12 files changed, 285 insertions(+), 10 deletions(-)

Fusion-Task-Id: FN-7182

Fusion-Task-Lineage: c415a9dc-43c1-4609-a032-367991e949a1

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 01:43:08 -07:00
gsxdsm
524c15c2fd FN-7188: prevent agents from pausing failed tasks
Clarify agent heartbeat and tool guidance so failures surface through recovery paths instead of task pauses.

- Update heartbeat prompts to prohibit failure/blocker handling via fn_task_pause.
- Clarify fn_task_pause tool copy as explicit user-requested manual control only.
- Refresh generated Fusion skill docs and add regression coverage for the guidance.
- Add a patch changeset for the published CLI package.

Files changed:
 .changeset/FN-7188-no-pause-on-failure.md                    |  7 +++++++
 packages/cli/skill/fusion/references/best-practices.md       |  6 +++---
 packages/cli/skill/fusion/references/extension-tools.md      |  2 +-
 packages/cli/skill/fusion/references/fusion-capabilities.md  |  2 +-
 packages/cli/skill/fusion/workflows/task-management.md       |  2 +-
 packages/cli/src/__tests__/extension.test.ts                 |  8 ++++++++
 packages/cli/src/extension.ts                                | 10 ++++++++--
 .../engine/src/__tests__/heartbeat-session-prompt.test.ts    | 10 ++++++++++
 packages/engine/src/agent-heartbeat.ts                       | 12 ++++++++++--
 9 files changed, 49 insertions(+), 10 deletions(-)

Fusion-Task-Id: FN-7188
Fusion-Task-Lineage: 29df6168-7920-49d5-9c11-804727033721
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 01:22:43 -07:00
gsxdsm
65abae26c6 FN-7181: improve PR metadata generation feedback
Ground PR metadata generation in repository evidence and make Create PR loading states explicit.

- Upgrade the PR metadata system/context prompt while preserving configurable title and description guidance.\n- Show disabled title/body skeleton states while AI metadata generates and block submission until content resolves.\n- Extend dashboard tests, docs, and changeset coverage for the improved PR prompt and loading behavior.\n\nFiles changed:\n .../fn-7181-pr-generation-prompt-and-loading.md    |  7 +++\n docs/dashboard-guide.md                            |  2 +-\n .../dashboard/app/components/PrCreateModal.css     | 62 ++++++++++++++++++++++\n .../dashboard/app/components/PrCreateModal.tsx     | 47 +++++++++++++---\n .../components/__tests__/PrCreateModal.test.tsx    | 60 ++++++++++++++++-----\n .../src/__tests__/pr-metadata-generator.test.ts    | 44 ++++++++++++---\n packages/dashboard/src/pr-metadata-generator.ts    | 33 +++++++++---\n 7 files changed, 221 insertions(+), 34 deletions(-)

Fusion-Task-Id: FN-7181

Fusion-Task-Lineage: 6565ddce-c205-4050-a37f-ffbb2f2d46d4

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 01:17:22 -07:00
gsxdsm
3a52c7a7cd FN-7176: add PR body markdown preview toggle
Add a markdown preview mode to the Create PR body editor while preserving raw submission text.

- Add a persisted Preview/Edit toggle for the Create PR body field.
- Render body markdown through the shared sanitized markdown pipeline in preview mode.
- Style the preview region and document the modal behavior.
- Cover edit, preview, regenerate, revert, empty/fallback, and submit payload flows.

Files changed:
 docs/dashboard-guide.md                            |   1 +
 .../dashboard/app/components/PrCreateModal.css     |  24 ++++-
 .../dashboard/app/components/PrCreateModal.tsx     |  51 +++++++++-
 .../components/__tests__/PrCreateModal.test.tsx    | 107 +++++++++++++++++++++
 4 files changed, 181 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-7176

Fusion-Task-Lineage: 82275fb1-f89a-4fa2-9c47-7a7e7982c6cd

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 01:11:03 -07:00
gsxdsm
b60a743377 FN-7186: fix reviewer-agent revision requests
Route review revision requests through canonical review data so reviewer-agent feedback can be selected reliably.

- Rebuild /review/address validation from PR review details or direct reviewer-agent logs before matching selected items.
- Preserve addressing state while accepting log-derived reviewer-agent item ids and rejecting mismatched sources.
- Cover reviewer-agent, fallback-log, PR, and invalid-selection paths in dashboard route tests.
- Document that Review revision feedback may come from PR data or reviewer-agent logs.
- Add a patch changeset for the published Fusion package.

Files changed:
 .changeset/fn-7186-review-revision-fix.md          |   7 ++
 docs/dashboard-guide.md                            |   4 +-
 .../dashboard/src/__tests__/routes-tasks.test.ts   | 126 +++++++++++++++++----
 .../src/routes/register-task-workflow-routes.ts    |  76 +++++++++----
 4 files changed, 170 insertions(+), 43 deletions(-)

Fusion-Task-Id: FN-7186

Fusion-Task-Lineage: 8b0f6e4c-93b1-489c-ab96-5a2541b7c18a

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 00:33:26 -07:00
gsxdsm
9c207fd286 FN-7180: add configurable PR metadata prompts
Add project-scoped guidance fields for AI-generated Create PR metadata.

- Store PR title and description prompt guidance as project settings only.
- Surface editable guidance textareas in Project Models settings.
- Append trimmed guidance to the PR metadata system prompt without changing defaults for blank values.
- Document the settings and add release notes/tests for persistence, UI, and prompt generation.

Files changed:
 .changeset/fn-7180-pr-prompt-settings.md           |  7 ++
 docs/dashboard-guide.md                            |  1 +
 docs/settings-reference.md                         |  2 +
 .../core/src/__tests__/settings-defaults.test.ts   | 11 ++-
 packages/core/src/__tests__/store-settings.test.ts | 19 +++++
 packages/core/src/settings-schema.ts               |  2 +
 packages/core/src/types.ts                         | 12 ++++
 .../app/__tests__/settings-sections.test.tsx       | 54 ++++++++++++++
 .../dashboard/app/components/SettingsModal.tsx     |  4 ++
 .../settings/sections/ProjectModelsSection.tsx     | 12 ++++
 .../src/__tests__/pr-metadata-generator.test.ts    | 84 ++++++++++++++++++++++
 packages/dashboard/src/pr-metadata-generator.ts    | 23 ++++--
 12 files changed, 225 insertions(+), 6 deletions(-)

Fusion-Task-Id: FN-7180

Fusion-Task-Lineage: 9bdc42d5-ffd3-4208-b64a-96d142cc1dc8

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 00:28:13 -07:00
gsxdsm
01fe47d50f FN-7175: fix Create PR dialog recovery and dismissal
Stabilize the Create PR dialog so metadata hangs and stray clicks no longer block manual PR creation.

- Bound AI metadata generation in the dialog to a 15 second timeout that falls back to manual title/body recovery.
- Keep the floating Create PR shell dismissible only via explicit close actions and default the diff preview collapsed.
- Expand modal tests and dashboard docs for timeout recovery, collapsed preview, and dismissal behavior.
- Add a patch changeset for the published Fusion package.

Files changed:
 .changeset/fn-7175-create-pr-dialog-fixes.md       |  7 +++
 docs/dashboard-guide.md                            |  6 +-
 .../dashboard/app/components/PrCreateModal.tsx     | 34 ++++++++++-
 .../components/__tests__/PrCreateModal.test.tsx    | 65 ++++++++++++++++++++--
 4 files changed, 101 insertions(+), 11 deletions(-)

Fusion-Task-Id: FN-7175

Fusion-Task-Lineage: 675d2212-54a1-465f-a9bf-6af4ba33674a

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 00:15:21 -07:00
gsxdsm
9f45f108e5 FN-7174: reset lost steps before stuck requeue cleanup
Preserve durable stuck-requeue progress while preventing retries from skipping deleted uncommitted work.

- Reconcile completed and in-progress steps before stuck cleanup removes executor worktrees.
- Reset step progress when a branch has no unique commits or git proof fails before checkout deletion.
- Cover normal, loop-timeout, and force stuck-requeue paths with regression tests and documentation.

Files changed:
 .changeset/fn-7174-stuck-requeue-progress.md       |   7 +
 docs/architecture.md                               |   2 +-
 packages/core/src/types.ts                         |   9 +-
 ...xecutor-stuck-requeue-preserve-progress.test.ts | 282 +++++++++++++++++++++
 packages/engine/src/executor.ts                    |  99 ++++----
 5 files changed, 349 insertions(+), 50 deletions(-)

Fusion-Task-Id: FN-7174

Fusion-Task-Lineage: 3b8b09e7-fceb-4b3d-af80-993a8842a51a

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 00:08:53 -07:00
gsxdsm
0956214009 FN-7184: render pull request review context
Render pull-request review details in the task Review tab so PR-backed tasks show actionable context.\n\n- Preserve PR review metadata when mapping legacy review API data.\n- Show PR reviewers, checks, blocking reasons, comment state, author, path, and GitHub links.\n- Add responsive Review-tab styles and coverage for empty, partial, and populated PR review states.\n\nFiles changed:\n packages/dashboard/app/api/legacy.ts               |  51 ++++++--\n .../dashboard/app/components/TaskReviewTab.css     | 101 +++++++++++++++\n .../dashboard/app/components/TaskReviewTab.tsx     |  94 +++++++++++++-\n .../components/__tests__/TaskReviewTab.test.tsx    | 143 ++++++++++++++++++++-\n 4 files changed, 368 insertions(+), 21 deletions(-)

Fusion-Task-Id: FN-7184

Fusion-Task-Lineage: 59680355-1afa-44e1-b5e1-33e26335a2c8

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-28 00:02:24 -07:00
gsxdsm
fc958bc54b FN-7178: improve review comment rendering
Render task Review tab comments with cleaner content, author context, and filter controls.

- Reuse the sanitized mailbox markdown renderer and strip GitHub HTML comments in plain-text mode.
- Add human/bot author derivation, avatars, badges, and All/Human/Bot filtering for review items.
- Cover rendering, filtering, selection pruning, and author classification with dashboard tests.
- Document the Review tab behavior and add the release changeset.

Files changed:
 .../fn-7178-task-review-comment-rendering.md       |   7 +
 docs/dashboard-guide.md                            |   1 +
 .../dashboard/app/components/TaskReviewTab.css     | 117 ++++++++++++++++
 .../dashboard/app/components/TaskReviewTab.tsx     | 144 ++++++++++++-------
 .../components/__tests__/TaskReviewTab.test.tsx    | 153 +++++++++++++++++++++
 .../utils/__tests__/githubCommentAuthor.test.ts    |  46 +++++++
 .../dashboard/app/utils/githubCommentAuthor.ts     |  33 +++++
 packages/dashboard/vitest.config.ts                |   1 +
 8 files changed, 455 insertions(+), 47 deletions(-)

Fusion-Task-Id: FN-7178

Fusion-Task-Lineage: 98269a09-3c57-492d-b433-d6ccb81d5b17

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 23:53:51 -07:00
gsxdsm
5b71bdb284 FN-7177: color PR badges by GitHub status
Align dashboard PR badges with live GitHub PR state colors.

- Add a shared PR badge modifier helper for open, draft, merged, closed, and conflict states.\n- Apply the helper to single and multi-PR task card badges so live payload changes repaint correctly.\n- Add token-backed merged/conflict styling, regression coverage, and a patch changeset.

Files changed:\n .changeset/fn-7177-pr-badge-status-color.md        |  7 ++++\n packages/dashboard/app/components/GitHubBadge.tsx  |  8 +++--\n packages/dashboard/app/components/TaskCard.tsx     |  9 +++--\n .../app/components/__tests__/GitHubBadge.test.tsx  |  1 +\n .../app/components/__tests__/TaskCard.test.tsx     | 41 +++++++++++++++++++---\n packages/dashboard/app/styles.css                  | 15 ++++++--\n .../app/utils/__tests__/prBadgeClass.test.ts       | 22 ++++++++++++\n packages/dashboard/app/utils/prBadgeClass.ts       | 28 +++++++++++++++\n 8 files changed, 119 insertions(+), 12 deletions(-)

Fusion-Task-Id: FN-7177

Fusion-Task-Lineage: 23954f1b-d184-49a6-9635-7d9c1d0aea11

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 23:47:21 -07:00
gsxdsm
411806163f FN-7170: make Create PR dialog draggable and resizable
Move the Create PR dialog onto the shared floating window shell.

- Render PrCreateModal in FloatingWindow with persisted desktop geometry and embedded-header dragging.
- Add CSS that lets the modal fill its floating panel while preserving a full-screen mobile layout.
- Update docs, release notes, and modal tests for floating behavior, resize handles, and non-overlay dismissal.

Files changed:
 .changeset/fn-7170-pr-create-modal-floating.md     |  7 ++
 docs/dashboard-guide.md                            |  1 +
 .../dashboard/app/components/PrCreateModal.css     | 63 +++++++++++----
 .../dashboard/app/components/PrCreateModal.tsx     | 28 ++++---
 .../__tests__/PrCreateModal.layout.test.tsx        |  6 +-
 .../components/__tests__/PrCreateModal.test.tsx    | 94 +++++++++++++++++++---
 .../app/components/__tests__/TaskCard.test.tsx     |  8 +-
 7 files changed, 168 insertions(+), 39 deletions(-)

Fusion-Task-Id: FN-7170

Fusion-Task-Lineage: 03452d6a-0da7-4891-a58e-6d93a93383f7

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 23:42:11 -07:00
gsxdsm
27b0cbb05a FN-7183: link PR numbers to GitHub
Make task-detail PR numbers open their GitHub pull request when a URL is present.

- Render the PR number as a secure external link when prInfo.url is available.
- Keep the existing plain text PR number fallback when no URL is present.
- Add focus/hover styling, dashboard documentation, regression tests, and a patch changeset.

Files changed:
 .changeset/fn-7183-pr-number-link.md               |  7 +++++++
 docs/dashboard-guide.md                            |  1 +
 packages/dashboard/app/components/PrPanel.css      | 13 ++++++++++++
 packages/dashboard/app/components/PrPanel.tsx      | 12 ++++++++++-
 .../app/components/__tests__/PrPanel.test.tsx      | 24 ++++++++++++++++++++++
 5 files changed, 56 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-7183

Fusion-Task-Lineage: 0a349723-9dda-4784-b747-b140b85a3013

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 23:37:24 -07:00
gsxdsm
79239779cc FN-7171: fix Create PR commit preview layout
Keep the Create PR preview readable by aligning commit rows to their DOM order.

- Split commit-row and file-row grid templates so commit SHAs use a fixed content column.
- Prevent short commit SHAs from wrapping while leaving subjects in the flexible column.
- Add tests covering commit preview row ordering, empty commit hints, and file-row layout.
- Add a patch changeset for the published Fusion package.

Files changed:
 .changeset/fn-7171-pr-preview-commit-layout.md     |  7 +++
 .../dashboard/app/components/PrCreateModal.css     | 14 +++++-
 .../components/__tests__/PrCreateModal.test.tsx    | 55 ++++++++++++++++++++++
 3 files changed, 75 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-7171

Fusion-Task-Lineage: e0fe2ac5-1087-4a54-b60e-673c7b980780

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 23:30:52 -07:00
gsxdsm
f7e20abe9f FN-7168: add Chat to the right dock
Adds Chat as an inline right-dock tool with compact dock rendering and pop-out support.

- Register Chat as a built-in right-dock overflow view with its toolbar icon and lazy-loaded view.
- Add a compact ChatView layout prop so narrow dock hosts use the mobile-style list/detail flow.
- Cover Chat dock visibility, storage fallback, lazy-load docs, and compact layout behavior with tests.
- Document the updated right-dock tool roster and add a minor changeset.

Files changed:
 .changeset/FN-7168-right-dock-chat.md              |  7 ++
 docs/dashboard-guide.md                            |  7 +-
 .../app/__tests__/lazy-loaded-views-docs.test.ts   |  6 +-
 packages/dashboard/app/components/ChatView.tsx     |  9 ++-
 packages/dashboard/app/components/RightDock.tsx    |  2 +-
 .../__tests__/ChatView.sessions-rooms.test.tsx     |  9 +++
 .../app/components/__tests__/RightDock.test.tsx    |  9 ++-
 .../__tests__/overflowViewRegistry.chat.test.tsx   | 90 ++++++++++++++++++++++
 .../__tests__/overflowViewRegistry.test.tsx        |  5 +-
 .../app/components/overflowViewRegistry.tsx        | 25 ++++++
 10 files changed, 158 insertions(+), 11 deletions(-)

Fusion-Task-Id: FN-7168

Fusion-Task-Lineage: 194c66f6-bdd9-438e-b648-2a79629534a6

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 23:25:19 -07:00
gsxdsm
e42679daff FN-7173: preserve stuck triage drafts on requeue
Stuck triage retries now continue from saved planning drafts instead of restarting.

- Detect non-empty PROMPT.md drafts or saved plan task documents after stuck-detector aborts.
- Requeue draft-backed stuck triage runs as replans with explicit resume feedback and bounded retry escalation.
- Cover prompt-vs-plan recovery, cold retries, approval recovery, and exhaustion behavior in engine tests.
- Document the stuck-triage preservation invariant and add a patch changeset.

Files changed:
 ...-7173-preserve-triage-draft-on-stuck-requeue.md |   7 +
 docs/architecture.md                               |   6 +-
 .../triage-stuck-requeue-preserve-draft.test.ts    | 348 +++++++++++++++++++++
 packages/engine/src/__tests__/triage.test.ts       |   2 +-
 packages/engine/src/triage.ts                      | 153 ++++++++-
 5 files changed, 499 insertions(+), 17 deletions(-)

Fusion-Task-Id: FN-7173
Fusion-Task-Lineage: 8e59b025-92cc-4902-bf88-b203b65c2c7d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 23:18:28 -07:00
gsxdsm
11e5dde6bd FN-7179: show active PRs in pull request views
Add list mode so Pull Requests hosts without a selected PR display active project pull requests.

- Fetch and render the active pull request list for no-id PullRequestView mounts.
- Allow selecting a PR for detail view and returning to the active PR list.
- Add list loading, empty, error, styling, i18n, regression tests, and a patch changeset.

Files changed:
 .changeset/fn-7179-pr-sidebar-list.md              |   7 +
 .../app/__tests__/pull-request-view.test.tsx       | 122 ++++++++++++++-
 .../dashboard/app/components/PullRequestView.css   |  96 ++++++++++++
 .../dashboard/app/components/PullRequestView.tsx   | 163 ++++++++++++++++++---
 packages/i18n/locales/en/app.json                  |   6 +
 5 files changed, 370 insertions(+), 24 deletions(-)

Fusion-Task-Id: FN-7179
Fusion-Task-Lineage: 712dccae-eb03-4aea-b89e-0a333db7c3fc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 23:08:10 -07:00
gsxdsm
987abc763b FN-7162: reopen actionable steps after review bounces
Post-verdict remediation now resumes executable work before rechecking optional gates.

- Reopen the terminal verification/delivery suffix together with the nearest actionable implementation step for revision bounces.
- Cover Code Review, Browser Verification, gate-promoted revisions, and non-revision optional outcomes with regression tests.
- Document post-verdict bounce semantics and add a patch changeset for the published CLI package.

Files changed:
 .changeset/fn-7162-post-verdict-bounce-step-completion.md |   7 ++
 docs/workflow-steps.md                             |   9 +-
 packages/engine/src/__tests__/executor-step-session.test.ts    | 117 +++++++++++++++++++--
 packages/engine/src/__tests__/workflow-graph-optional-step-fix.test.ts       |  60 +++++++++++
 packages/engine/src/executor.ts                    |  51 +++++++--
 5 files changed, 222 insertions(+), 22 deletions(-)

Fusion-Task-Id: FN-7162
Fusion-Task-Lineage: 8d422fc9-54e8-431d-97bb-e7a4a6763eaa
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 23:01:10 -07:00
gsxdsm
5d9184d380 FN-7172: add right dock pin toggle
Add a persisted right-dock pin control that switches between overlay and push layouts.\n\n- Add a toolbar pin button with accessible labels and persisted pinned state.\n- Switch pinned docks into the flex row so the main project content narrows instead of being overlaid.\n- Cover pin persistence, layout classes, header toggling, mobile behavior, and expanded modal independence in tests.\n- Document the overlay/push workflow and add a minor changeset for the published CLI package.\n\nFiles changed:\n .changeset/fn-7172-right-dock-pin-push-mode.md     |   7 +\n docs/dashboard-guide.md                            |   8 +-\n packages/dashboard/app/components/RightDock.css    |   9 ++\n packages/dashboard/app/components/RightDock.tsx    |  45 +++++-\n .../app/components/__tests__/RightDock.test.tsx    | 174 +++++++++++++++++++--\n .../app/components/useRightDockController.tsx      |  21 ++-\n 6 files changed, 241 insertions(+), 23 deletions(-)

Fusion-Task-Id: FN-7172

Fusion-Task-Lineage: 1608fead-74cd-4a1e-87be-1ce27f388f34

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 22:55:40 -07:00
gsxdsm
2448447de6 FN-7161: add worktree grouping board setting
Add an opt-in project setting that controls whether board WIP columns show worktree grouping.

- Add the `showWorktreeGrouping` project setting with default-off schema, settings form wiring, and app state propagation.
- Apply the setting to board, lane, and column rendering so WIP/processing columns group by worktree only when enabled.
- Cover default persistence, settings UI, and column grouping behavior with targeted tests and document the operator-facing setting.

Files changed:
 .changeset/fn-7161-worktree-grouping-setting.md    |   7 ++
 docs/dashboard-guide.md                            |   2 +
 docs/settings-reference.md                         |   1 +
 .../core/src/__tests__/settings-defaults.test.ts   |  12 +++
 packages/core/src/__tests__/store-settings.test.ts |   8 ++
 packages/core/src/settings-schema.ts               |   1 +
 packages/core/src/types.ts                         |   7 ++
 packages/dashboard/app/App.tsx                     |   2 +
 .../app/__tests__/settings-sections.test.tsx       |  32 ++++++
 packages/dashboard/app/components/Board.tsx        |   6 +-
 packages/dashboard/app/components/Column.tsx       |  28 +++---
 packages/dashboard/app/components/Lane.tsx         |   2 +
 .../dashboard/app/components/SettingsModal.tsx     |   1 +
 .../app/components/__tests__/Column.test.tsx       | 112 ++++++++++++++++++++-
 .../app/components/dashboard/MainContent.tsx       |   3 +
 .../dashboard/app/components/dashboard/types.ts    |   1 +
 .../settings/sections/WorktreesSection.tsx         |   5 +
 packages/dashboard/app/hooks/useAppSettings.ts     |   4 +
 18 files changed, 216 insertions(+), 18 deletions(-)

Fusion-Task-Id: FN-7161
Fusion-Task-Lineage: 4482522d-ea18-4b4f-b3fb-92af5ff5b9cd
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 22:37:19 -07:00
gsxdsm
e5a0273282 FN-7166: Refresh artifact lists from registration events
Artifact list surfaces now refresh from authoritative registry and artifact-message signals.\n\n- Emit an artifact:registered TaskStore event after successful registry writes and forward it over dashboard SSE.\n- Subscribe useArtifacts to artifact/message SSE events, scope refreshes by project/task, debounce duplicate signals, and avoid loading flashes when project context is missing.\n- Document live artifact refresh behavior and add regression coverage for store events and hook refresh paths.\n\nFiles changed:\n .changeset/FN-7166-artifact-live-refresh.md        |   7 +\n docs/dashboard-guide.md                            |   3 +-\n packages/core/src/__tests__/artifacts.test.ts      |  20 +-\n packages/core/src/store.ts                         |   8 +-\n .../app/hooks/__tests__/useArtifacts.test.ts       | 227 +++++++++++++++++++--\n packages/dashboard/app/hooks/useArtifacts.ts       |  83 +++++++-\n packages/dashboard/src/sse.ts                      |   7 +\n 7 files changed, 335 insertions(+), 20 deletions(-)

Fusion-Task-Id: FN-7166

Fusion-Task-Lineage: f13e254d-d65c-423e-8d9c-94c31761eac2

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 22:15:53 -07:00
gsxdsm
34efa8b89a FN-7165: title refinement tasks with source feedback
Refinement tasks now surface the source task ID and operator feedback in their generated titles.

- Build refinement titles from the source task ID plus normalized feedback instead of the source title or description fallback.
- Preserve the source-ID prefix while capping titles at MAX_TITLE_LENGTH and leaving refinement descriptions unchanged.
- Update refinement task and prompt-heading tests for titled, untitled, whitespace-heavy, and long-feedback cases.
- Add a changeset for the published CLI package.

Files changed:
 .changeset/fn-7165-refinement-title.md           |  7 +++
 packages/core/src/__tests__/store-create.test.ts |  2 +-
 packages/core/src/__tests__/store-ops.test.ts    | 75 +++++++++++++++++-------
 packages/core/src/store.ts                       | 28 ++++-----
 4 files changed, 71 insertions(+), 41 deletions(-)

Fusion-Task-Id: FN-7165

Fusion-Task-Lineage: abb16dae-26d1-4600-bb19-e2634ab16795

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 22:07:07 -07:00
gsxdsm
bee93c3e2b FN-7163: keep executor footer stable during stats refreshes
Keep the executor footer mounted while heartbeat polling refreshes stats.\n\n- Make executor stats loading initial-only per project so routine refreshes preserve populated footer state.\n- Keep the engine controls popover mounted after the first successful stats render.\n- Add regression coverage for heartbeat refreshes, project switches, and transient failures.\n- Document the stable footer behavior and add a patch changeset.\n\nFiles changed:\n .changeset/fn-7163-footer-heartbeat-blink.md       |   7 +\n docs/dashboard-guide.md                            |   3 +-\n .../dashboard/app/components/ExecutorStatusBar.tsx |  15 ++-\n .../__tests__/ExecutorStatusBar.test.tsx           |  76 +++++++++++\n .../app/hooks/__tests__/useExecutorStats.test.ts   | 147 +++++++++++++++++++++\n packages/dashboard/app/hooks/useExecutorStats.ts   |  67 +++++++---\n 6 files changed, 294 insertions(+), 21 deletions(-)

Fusion-Task-Id: FN-7163

Fusion-Task-Lineage: ad1d7eb2-f531-42b3-b588-fbb69d09d0f3

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 22:02:59 -07:00
gsxdsm
a95cfa7f92 FN-7160: unify live agent counts and fix use markers
Unifies running-agent slot accounting across engine, CLI, and dashboard surfaces.

- Add shared core helpers for identifying and counting active top-level agent tasks, including in-review reviewer, merger, fix, and PR merge states.
- Reuse the shared count in engine semaphore repair, project health displays, and dashboard project-store routes.
- Correct Command Center utilization markers to use a zero-based active/cap ratio.
- Cover the shared predicate and affected CLI, dashboard, and engine behaviors with regression tests.

Files changed:
 .changeset/fn-7160-running-agent-count.md          |  7 ++++
 docs/dashboard-guide.md                            |  2 +-
 .../cli/src/commands/__tests__/project.test.ts     | 40 ++++++++++++++----
 packages/cli/src/commands/project.ts               | 15 +++----
 .../core/src/__tests__/live-agent-count.test.ts    | 47 ++++++++++++++++++++++
 packages/core/src/index.ts                         |  2 +
 packages/core/src/live-agent-count.ts              | 30 ++++++++++++++
 packages/core/src/types.ts                         |  2 +-
 .../command-center/CommandCenterControls.tsx       | 14 ++++---
 .../__tests__/CommandCenterControls.test.tsx       | 22 +++++++++-
 .../dashboard/src/__tests__/project-routes.test.ts | 31 +++++++++-----
 .../src/__tests__/project-store-resolver.test.ts   | 20 ++++++---
 packages/dashboard/src/project-store-resolver.ts   |  9 ++---
 .../src/routes/register-project-routes.ts          |  7 ++--
 packages/engine/src/__tests__/concurrency.test.ts  | 18 +++++++++
 packages/engine/src/concurrency.ts                 | 12 +++---
 16 files changed, 220 insertions(+), 58 deletions(-)

Fusion-Task-Id: FN-7160

Fusion-Task-Lineage: f48332f8-ac5d-46eb-b975-d2f6c880ddd5

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 21:39:40 -07:00
gsxdsm
d7a02c4d5b FN-7151: free scoped project concurrency slots
Free stopped or paused project engines' leaked slots without disturbing other projects.

- Add scoped semaphore accounting around the shared global agent pool.
- Return residual per-project slots after runtime stop drains aborted agents.
- Keep idle leak reconciliation scoped to the owning project so active projects retain their slots.
- Cover scoped release, reconciliation, project pause, and in-process runtime behavior with tests.

Files changed:
 .../fn-7151-free-concurrency-slots-on-stop.md      |   7 ++
 docs/architecture.md                               |   2 +-
 packages/engine/src/__tests__/concurrency.test.ts  | 126 +++++++++++++++++++++
 .../src/__tests__/project-engine-manager.test.ts   |  60 ++++++++++
 packages/engine/src/concurrency.ts                 | 123 +++++++++++++++++++-
 packages/engine/src/project-engine.ts              |   2 +-
 .../runtimes/__tests__/in-process-runtime.test.ts  |  51 +++++++++
 packages/engine/src/runtimes/in-process-runtime.ts |  22 +++-
 8 files changed, 385 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-7151

Fusion-Task-Lineage: e59e5e0c-67e8-4f80-a6b9-1ea4febaeb97

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 20:55:59 -07:00
gsxdsm
605e4d7734 FN-7158: emit reflection run-audit telemetry
Record agent reflection outcomes in run audit without persisting reflection prose.\n\n- Emit generated, skipped, and failed reflection telemetry from AgentReflectionService.\n- Add run-audit metadata contracts, diagnostics docs, and operator-facing run-audit guidance.\n- Cover telemetry payloads and best-effort audit failures in agent reflection tests.\n- Add a minor changeset for the published Fusion CLI package.\n\nFiles changed:\n .changeset/fn-7158-reflection-telemetry.md         |  7 ++\n AGENTS.md                                          |  1 +\n docs/diagnostics.md                                | 12 +++\n .../engine/src/__tests__/agent-reflection.test.ts  | 99 ++++++++++++++++++++++\n packages/engine/src/agent-reflection.ts            | 60 ++++++++++++-\n packages/engine/src/run-audit.ts                   | 41 +++++++++\n 6 files changed, 219 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-7158

Fusion-Task-Lineage: e8a83fe9-2112-4ce4-9367-a6fa38b6fbb4

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 20:33:22 -07:00
gsxdsm
b570a834ba FN-7156: open Missions on overview by default
Ensure the Missions tab opens to the overview unless an explicit mission target is requested.

- Remove selected-mission cache restore and inline first-mission auto-selection.
- Treat hidden inline Missions as inactive so reopening resets to overview.
- Update SWR cache keys and dashboard tests for the overview-first behavior.
- Add a patch changeset documenting the operator-facing fix.

Files changed:
 .changeset/fn-7156-missions-overview-default.md    |   7 +
 .../dashboard/app/components/DashboardLoader.tsx   |   1 -
 .../dashboard/app/components/MissionManager.tsx    |  50 ++----
 .../components/__tests__/DashboardLoader.test.tsx  |   1 -
 .../MissionManager.overview-default.test.tsx       | 174 +++++++++++++++++++++
 .../dashboard/app/utils/__tests__/swrCache.test.ts |   1 -
 packages/dashboard/app/utils/swrCache.ts           |   1 -
 7 files changed, 191 insertions(+), 44 deletions(-)

Fusion-Task-Id: FN-7156

Fusion-Task-Lineage: 1be987d5-33c6-4a59-905f-14c8d22b75d1

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 20:27:09 -07:00
gsxdsm
8ef9750064 FN-7157: theme quick entry steps dropdown
Align the optional workflow steps menu with dashboard theme tokens.

- Replace hardcoded fallback styling with shared surface, border, radius, shadow, hover, and accent tokens.
- Add dropdown CSS regression coverage for canonical tokens and no hardcoded fallback colors.
- Cover open-panel option states with multiple selections and missing descriptions.
- Add a patch changeset for the published Fusion package.

Files changed:
 .changeset/fn-7157-steps-dropdown-theme.md         |  7 +++
 .../components/WorkflowOptionalStepsDropdown.css   | 15 +++---
 .../WorkflowOptionalStepsDropdown.test.tsx         | 57 ++++++++++++++++++++++
 3 files changed, 71 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-7157

Fusion-Task-Lineage: 2b68c021-416c-403d-b137-1afc91870d3f

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 20:22:11 -07:00
gsxdsm
8b124960b8 FN-7154: prevent duplicate automation schedule runs
Add an atomic schedule claim so concurrent automation pollers execute each due window only once.

- Add AutomationStore.claimDueSchedule to CAS-advance nextRunAt before execution.
- Gate CronRunner execution on the claim across project, global, and all-scope pollers.
- Cover single-store, shared SQLite, legacy command, step, and in-process intercept deduplication paths.
- Document the claim-then-run automation invariant.

Files changed:
 docs/architecture.md                               |   1 +
 .../core/src/__tests__/automation-store.test.ts    |  77 +++++++++++++++
 packages/core/src/automation-store.ts              |  33 +++++++
 packages/engine/src/__tests__/cron-runner.test.ts  | 110 +++++++++++++++++++++
 packages/engine/src/cron-runner.ts                 |  18 +++-
 5 files changed, 237 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-7154

Fusion-Task-Lineage: 490ba154-9dd8-4e92-bacb-24b7184cb6f8

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 20:09:52 -07:00
gsxdsm
c1216eb271 FN-7155: keep goal mission picker natural-height
Keep the goal-to-mission link picker from stretching vertically in stacked layouts.

- Reset the linked mission picker flex sizing at tablet and mobile breakpoints while preserving full-width stacking.
- Add CSS regression coverage for the base flex value and breakpoint overrides.

Files changed:
 packages/dashboard/app/components/GoalsView.css    | 20 ++++++++-
 .../app/components/__tests__/GoalsView.css.test.ts | 48 ++++++++++++++++++++++
 2 files changed, 66 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-7155

Fusion-Task-Lineage: cad957bb-3efd-4435-9386-fcf84cb0d209

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 20:02:33 -07:00
gsxdsm
bb89e1ec3c FN-7153: relabel project card engine controls
Project dashboard cards now describe engine lifecycle actions directly.

- Change project card Pause/Resume controls to Stop engine/Start engine while preserving existing behavior.
- Replace the pause icon with a stop-square glyph for the stop action.
- Update project card i18n resources, generated resource types, tests, and the release changeset.

Files changed:
 .changeset/fn-7153-stop-engine-label.md            |   7 ++
 packages/dashboard/app/components/ProjectCard.tsx  |  20 ++--
 .../app/components/__tests__/ProjectCard.test.tsx  | 103 ++++++++++++++++++---
 .../__tests__/ProjectThemeTokens.test.tsx          |   1 +
 packages/i18n/locales/en/app.json                  |  10 +-
 packages/i18n/locales/es/app.json                  |  10 +-
 packages/i18n/locales/fr/app.json                  |  10 +-
 packages/i18n/locales/ko/app.json                  |  10 +-
 packages/i18n/locales/zh-CN/app.json               |  10 +-
 packages/i18n/locales/zh-TW/app.json               |  10 +-
 packages/i18n/src/resources.d.ts                   |  74 +++++++++++++--
 11 files changed, 208 insertions(+), 57 deletions(-)

Fusion-Task-Id: FN-7153

Fusion-Task-Lineage: 14a4efe7-7538-425e-9759-ded550438df2

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 19:54:22 -07:00
gsxdsm
6ca51185f3 FN-7152: close Quick Chat on outside clicks
Quick Chat now dismisses from page clicks while other floating windows stay persistent.

- Add an opt-in outside-pointer dismissal path to FloatingWindow with safeguards for inside clicks, nested dialogs, touch compatibility events, and active drag/resize gestures.
- Enable outside-click dismissal only for the Quick Chat floating window and document the behavior.
- Cover the opt-in behavior, default persistence, nested surfaces, gesture guards, and listener cleanup with FloatingWindow tests.
- Add a release changeset for the Quick Chat dismissal feature.

Files changed:
 .changeset/fn-7152-quick-chat-outside-click-close.md      |   7 ++
 docs/dashboard-guide.md                                    |   1 +
 packages/dashboard/app/App.tsx                             |   4 +
 packages/dashboard/app/components/FloatingWindow.css       |   5 +-
 packages/dashboard/app/components/FloatingWindow.tsx       |  45 +++++++++
 packages/dashboard/app/components/__tests__/FloatingWindow.test.tsx | 109 +++++++++++++++++++++
 6 files changed, 170 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-7152
Fusion-Task-Lineage: 5bd6c10a-3e21-4eb9-bd1e-99f3aaf9c7b6
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 19:48:50 -07:00
gsxdsm
100164dc50 FN-7150: show ephemeral agent token counts
Surface task-derived token usage for ephemeral agents in dashboard agent views.

- Attribute task token totals across assigned, source, and checkout agent links.
- Backfill zero-valued agent list token totals from linked task usage.
- Allow Agent Detail token usage windows for ephemeral/task-worker agents and cover the routes with tests.
- Document the dashboard behavior and add a patch changeset.

Files changed:
 .changeset/fn-7150-ephemeral-agent-token-counts.md |  7 ++
 docs/dashboard-guide.md                            |  1 +
 .../core/src/__tests__/agent-token-usage.test.ts   | 99 ++++++++++++++++++++--
 packages/core/src/__tests__/team-analytics.test.ts | 48 +++++++++++
 packages/core/src/agent-token-usage.ts             | 83 +++++++++++++++++-
 packages/core/src/index.ts                         |  4 +-
 .../__tests__/AgentTokenStatsPanel.test.tsx        | 21 +++++
 .../src/__tests__/routes-agent-token-usage.test.ts | 20 ++++-
 .../dashboard/src/__tests__/routes-agents.test.ts  | 87 +++++++++++++++++++
 .../src/routes/register-agent-core-routes.ts       | 38 ++++++++-
 .../src/routes/register-agent-runtime-routes.ts    |  5 +-
 11 files changed, 395 insertions(+), 18 deletions(-)

Fusion-Task-Id: FN-7150
Fusion-Task-Lineage: ce2661ce-5ba5-43b0-aa5c-7fddee90a915
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 19:37:39 -07:00
gsxdsm
7ebf58ee3b FN-7147: add report-only HTML CE doc review
Enable CE document review to inspect HTML artifacts without mutating generated plans.

- Expand ce-doc-review guidance to accept markdown and HTML plan artifacts, keeping autofix/write-back only for markdown.
- Update ce-plan and brainstorm handoffs so HTML plans route through report-only findings instead of skipped-review envelopes.
- Add regression coverage that rejects legacy HTML-skip wording across the edited CE review surfaces.
- Document the compound-engineering workflow behavior and add the release changeset.

Files changed:
 .changeset/fn-7147-html-aware-ce-doc-review.md     |  7 ++
 docs/workflow-editor.md                            |  2 +-
 docs/workflow-steps.md                             |  4 +-
 .../src/__tests__/ce-doc-review-html-mode.test.ts  | 81 ++++++++++++++++++++++
 .../src/skills/ce-brainstorm/references/handoff.md | 26 ++++---
 .../ce-brainstorm/references/html-rendering.md     | 20 +++---
 .../src/skills/ce-doc-review/SKILL.md              | 37 ++++++----
 .../skills/ce-ideate/references/html-rendering.md  | 20 +++---
 .../src/skills/ce-plan/SKILL.md                    | 25 ++++---
 .../skills/ce-plan/references/html-rendering.md    | 18 ++---
 .../src/skills/ce-plan/references/plan-handoff.md  | 37 +++++-----
 11 files changed, 196 insertions(+), 81 deletions(-)

Fusion-Task-Id: FN-7147
Fusion-Task-Lineage: 1f710dd9-ced7-4026-bc74-55a4160cb1bd
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 18:33:02 -07:00
gsxdsm
729bd5e5f9 chore(release): v0.50.0
Version bump via changesets.
2026-06-27 18:10:19 -07:00
gsxdsm
8da2950340 Update 2026-06-27 18:08:48 -07:00