gsxdsm
6e9f2a384d
FN-6369: make task chat send control icon-only
...
Refine the task-detail chat composer so the send action stays narrow and inline with the input.
- Replace the composer placeholder with the steering-focused copy.
- Convert the send button to an accessible icon-only control with loading state labels.
- Keep the send control inline at mobile breakpoints and cover the behavior in tests and docs.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskChatTab.css | 14 +++++++----
packages/dashboard/app/components/TaskChatTab.tsx | 11 ++++++---
.../app/components/__tests__/TaskChatTab.test.tsx | 27 ++++++++++++++++++++--
4 files changed, 44 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-6369
Fusion-Task-Lineage: b7e0717f-4cba-4380-a08a-e01fc12985e3
2026-06-13 10:51:31 -07:00
gsxdsm
f68775a5a6
FN-6376: preserve user-paused tasks during recovery
...
Ensure automated resume and recovery paths leave user-paused tasks paused.
- Skip user-paused tasks when cascading agent resume and approval-decision unpauses.
- Preserve userPaused during stuck-task recovery and log skipped recoveries for user-paused tasks.
- Add regression coverage across engine heartbeat, self-healing, and dashboard route surfaces.
- Document the invariant and add a patch changeset.
Files changed:
.changeset/fn-6376-user-paused-stays-paused.md | 5 ++++
docs/architecture.md | 1 +
.../src/__tests__/routes-agent-runs.test.ts | 4 +++
.../src/__tests__/routes-approval.test.ts | 26 +++++++++++++++--
.../src/routes/register-agent-runtime-routes.ts | 2 +-
.../src/routes/register-approval-routes.ts | 2 +-
.../src/__tests__/heartbeat-executor.test.ts | 28 ++++++++++++++++++
packages/engine/src/__tests__/self-healing.test.ts | 33 +++++++++++++++++++++-
packages/engine/src/agent-heartbeat.ts | 3 +-
packages/engine/src/self-healing.ts | 12 ++++++--
10 files changed, 108 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-6376
Fusion-Task-Lineage: efa00cb1-58e1-496a-919b-69867f8bff3c
2026-06-13 10:44:01 -07:00
gsxdsm
b90f966a98
FN-6374: fix workflow board tablet fill height
...
Keep workflow-mode board columns stretched through the tablet viewport.
- Preserve a definite height chain from the workflow board wrapper to the column rows.
- Ensure workflow columns stretch and keep internal overflow ownership at tablet widths.
- Extend board layout tests to cover workflow-mode empty and populated tablet states.
- Document the footer-safe workflow fill-height invariant.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/Lane.css | 12 ++
.../__tests__/board-mobile-initial-render.test.tsx | 121 ++++++++++++++++++++-
3 files changed, 129 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-6374
Fusion-Task-Lineage: 9b7042cf-c8bc-4d69-8599-42dafc333b15
2026-06-13 10:36:24 -07:00
gsxdsm
38007db549
FN-6364: reset iOS mobile viewport on restore
...
Recover stale iOS document scroll after returning to the Fusion dashboard.
- Add an iOS-only restore hook that clears orphaned body offsets and scrolls the document back to the origin when unlocked.
- Wire the restore reset from the dashboard app shell for mobile layouts.
- Cover visible/page-show restores, platform no-ops, active-lock guards, and orphaned style cleanup.
- Document the mobile restore drift solution for future regressions.
Files changed:
.../mobile-ios-restore-document-scroll-drift.md | 59 ++++++++++
packages/dashboard/app/App.tsx | 4 +-
.../hooks/__tests__/useMobileScrollLock.test.ts | 121 ++++++++++++++++++++-
.../dashboard/app/hooks/useMobileScrollLock.ts | 61 +++++++++++
4 files changed, 243 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6364
Fusion-Task-Lineage: 9243cab8-5fbb-4332-ac4d-aabefde4161c
2026-06-13 10:29:24 -07:00
gsxdsm
422833045c
FN-6359: add latest jump control to task chat
...
Adds an in-transcript control for returning to the newest task chat output after reviewing older messages.
- Track whether the task chat transcript is near the bottom and preserve live-follow behavior.
- Render an accessible sticky Latest button when populated transcripts are scrolled up, including mobile styling.
- Cover empty/loading, desktop, mobile, and click-to-jump behavior in TaskChatTab tests.
- Document the Latest jump affordance in the dashboard guide.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskChatTab.css | 40 +++++++++++
packages/dashboard/app/components/TaskChatTab.tsx | 40 ++++++++++-
.../app/components/__tests__/TaskChatTab.test.tsx | 82 ++++++++++++++++++++++
4 files changed, 162 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6359
Fusion-Task-Lineage: 9b4a3533-2969-4f0d-a4de-6ba895662726
2026-06-13 10:20:11 -07:00
gsxdsm
fb102a86d5
FN-6362: reset mobile keyboard restore metrics
...
Reset mobile keyboard restore sampling so collapsed viewports clear stale keyboard-open metrics.
- Add a restore-specific sampling path for visibilitychange/pageshow that can reset the viewport baseline and bypass the impossible-sample hold once.
- Preserve the existing in-session impossible-sample guard and tail polling behavior for normal focus/resize updates.
- Cover iOS restore, stale offset drift, genuinely open restored keyboards, and Android-style shrink reset cases.
- Document the mobile keyboard restore stale viewport fix for future UI debugging.
Files changed:
.../mobile-keyboard-restore-stale-viewport.md | 59 ++++++++
.../app/hooks/__tests__/useMobileKeyboard.test.ts | 160 +++++++++++++++++++++
packages/dashboard/app/hooks/useMobileKeyboard.ts | 75 +++++++---
3 files changed, 275 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-6362
Fusion-Task-Lineage: 3919d892-b2d5-419a-abeb-84ac298ca2d5
2026-06-13 10:14:11 -07:00
gsxdsm
2974f7e878
FN-6358: compact task chat tool-call entries
...
Tighten the task-detail chat tool-call presentation while documenting the denser layout.
- Reduce spacing and typography weight for collapsed tool-call summaries and expanded entry cards.
- Assert compact tool-call classes in TaskChatTab tests for paired and standalone result entries.
- Update the dashboard guide to describe compact summaries and dense expanded cards.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskChatTab.css | 21 ++++++++++++---------
.../app/components/__tests__/TaskChatTab.test.tsx | 18 ++++++++++++++++--
3 files changed, 29 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-6358
Fusion-Task-Lineage: 83cbf328-c062-4032-a2e7-e3550f386557
2026-06-13 09:55:49 -07:00
gsxdsm
00282fbf20
FN-6357: document external integration evidence format
...
Document the labeled provenance evidence layout expected by spec validation.
- Add an AGENTS.md example for required external integration evidence fields.
- Expand contributing guidance with accepted labels, URL expectations, and checksum rules.
- Add a regression test that keeps the documented example aligned with the evidence gate.
Files changed:
AGENTS.md | 14 ++++++++
docs/contributing.md | 28 ++++++++++++++++
.../src/__tests__/docs-evidence-example.test.ts | 37 ++++++++++++++++++++++
3 files changed, 79 insertions(+)
Fusion-Task-Id: FN-6357
Fusion-Task-Lineage: 788260ed-d5cf-4592-b117-40af5c45e0a1
2026-06-13 09:18:58 -07:00
gsxdsm
95b91c1f72
FN-6355: add deterministic docs index test script
...
Expose the docs README index suite as a focused CLI test lane and document its deterministic invocation.
- Add a package script for running only the docs README index Vitest file.
- Lock the package-config contract around the new script and dashboard quality runner expectations.
- Clarify the CI shard docs to pass Vitest shard flags without a bare separator.
Files changed:
docs/contributing.md | 2 +-
packages/cli/package.json | 1 +
packages/cli/src/__tests__/package-config.test.ts | 37 ++++++++++++++++++-----
3 files changed, 31 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6355
Fusion-Task-Lineage: 2a02bc5f-2407-4bad-8aed-afa519826ce7
2026-06-13 07:38:54 -07:00
gsxdsm
66591ec11c
FN-6333: add legacy auto-merge cleanup surfaces
...
Expose operator controls for auditing and clearing legacy auto-merge stamps.
- Add CLI dry-run, apply, and JSON modes for legacy auto-merge stamp cleanup.
- Add dashboard maintenance endpoints and a Settings → Merge cleanup panel.
- Document the cleanup workflow and cover CLI, route, and UI behavior with tests.
Files changed:
.changeset/fn-6333-legacy-automerge-cleanup.md | 5 +
docs/cli-reference.md | 4 +
docs/dashboard-guide.md | 6 ++
docs/settings-reference.md | 2 +-
packages/cli/src/__tests__/bin.test.ts | 10 ++
.../cli/src/__tests__/pr-automerge-cleanup.test.ts | 107 ++++++++++++++++++++
packages/cli/src/bin.ts | 14 ++-
packages/cli/src/commands/pr.ts | 41 ++++++++
.../components/settings/sections/MergeSection.tsx | 109 ++++++++++++++++++++
.../MergeSection.legacy-automerge-cleanup.test.tsx | 110 +++++++++++++++++++++
.../legacy-automerge-stamps-routes.test.ts | 76 ++++++++++++++
packages/dashboard/src/routes.ts | 36 +++++++
12 files changed, 517 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6333
Fusion-Task-Lineage: 55a3fa22-e0ba-4996-bfce-cad31c71177d
2026-06-13 06:12:09 -07:00
gsxdsm
bffae81a98
FN-6277: track and reconcile legacy auto-merge stamps
...
Track legacy auto-merge stamp provenance and add safe operator cleanup.
- Add autoMergeProvenance storage and migration support so user overrides can be distinguished from legacy review-entry stamps.
- Mark existing ambiguous in-review autoMerge=true tasks as legacy stamps without changing behavior, and expose a dry-run/apply reconciliation API to clear them safely.
- Emit a non-mutating advisory when global auto-merge is disabled while legacy stamped review tasks remain.
- Cover migration, persistence, reconciliation, movement, merge resolution, and advisory behavior with regression tests and docs.
Files changed:
.../fn-6277-legacy-automerge-stamp-cleanup.md | 5 +
docs/architecture.md | 2 +-
docs/settings-reference.md | 2 +-
packages/core/src/__tests__/db-migrate.test.ts | 30 ++--
packages/core/src/__tests__/db.test.ts | 44 +++---
packages/core/src/__tests__/goals-schema.test.ts | 2 +-
packages/core/src/__tests__/insight-store.test.ts | 10 +-
.../legacy-automerge-stamp-reconcile.test.ts | 144 +++++++++++++++++++
.../src/__tests__/merge-request-record.test.ts | 2 +-
packages/core/src/__tests__/mission-store.test.ts | 2 +-
packages/core/src/__tests__/run-audit.test.ts | 4 +-
.../core/src/__tests__/store-merge-queue.test.ts | 2 +-
packages/core/src/__tests__/store-movement.test.ts | 14 ++
packages/core/src/__tests__/task-documents.test.ts | 2 +-
packages/core/src/__tests__/task-merge.test.ts | 16 ++-
packages/core/src/db.ts | 10 +-
packages/core/src/index.ts | 1 +
packages/core/src/store.ts | 157 ++++++++++++++++++++-
packages/core/src/task-merge.ts | 8 +-
packages/core/src/types.ts | 10 +-
.../automerge-toggle-legacy-advisory.test.ts | 128 +++++++++++++++++
packages/engine/src/project-engine.ts | 68 ++++++++-
22 files changed, 593 insertions(+), 70 deletions(-)
Fusion-Task-Id: FN-6277
Fusion-Task-Lineage: 22d36519-f2ba-4ca7-8a09-12fc803c9a5b
2026-06-13 05:06:05 -07:00
gsxdsm
35554e674e
FN-6347: keep chat composer visible on mobile
...
Keep the task detail chat layout constrained so mobile users can always reach the composer.
- Give the chat tab a fill-height flex layout with transcript-only scrolling.
- Apply chat-specific modal body and section classes alongside the agent log layout.
- Cover mobile chat layout behavior with component tests and document the modal contract.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6347-chat-input-visible.md | 5 ++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskChatTab.css | 8 ++-
.../dashboard/app/components/TaskDetailModal.css | 29 +++++++++
.../dashboard/app/components/TaskDetailModal.tsx | 4 +-
.../app/components/__tests__/TaskChatTab.test.tsx | 36 ++++++++++
.../TaskDetailModal.attachments-and-tabs.test.tsx | 76 ++++++++++++++++++++++
7 files changed, 155 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-6347
Fusion-Task-Lineage: 37250539-d38e-4826-9c31-8b0279844883
2026-06-13 03:32:59 -07:00
gsxdsm
50bc80b26a
FN-6346: preserve chat steering fields from task detail
...
Keep task-detail Chat steerable when sparse list rows are hydrated with full task details.
- Merge live agent/session fields from fetched task details when parent task fields are undefined.
- Cover non-CLI engine agents, stale CLI session fallback, and desktop/mobile composer affordances in Chat tests.
- Document that Chat steering supports regular task-worktree engine agents as well as live CLI sessions.
Files changed:
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/TaskDetailModal.tsx | 7 +++
.../app/components/__tests__/TaskChatTab.test.tsx | 61 +++++++++++++++++++++-
.../__tests__/TaskDetailModal.test-helpers.ts | 1 +
.../components/__tests__/TaskDetailModal.test.tsx | 57 ++++++++++++++++++++
5 files changed, 126 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6346
Fusion-Task-Lineage: 60982087-3135-4a28-8c44-779e157ea3b5
2026-06-13 03:02:09 -07:00
gsxdsm
4e6df035c1
FN-6275: allow verified no-op completions
...
Allow executors to finish already-satisfied tasks without fabricating commits while preserving existing completion guards.
- Add leading sentinel parsing for premise-stale, no-op, duplicate, and redundant completion summaries.
- Permit zero-commit fn_task_done only for recognized sentinels or existing no-commit contracts, with audit log/activity details.
- Document the verified no-op completion contract and add regression coverage for accepted and refused paths.
Files changed:
.changeset/fn-6275-no-op-completion.md | 5 ++
docs/architecture.md | 1 +
.../src/__tests__/no-op-completion-marker.test.ts | 55 ++++++++++++
packages/core/src/agent-prompts.ts | 4 +
packages/core/src/index.ts | 5 ++
packages/core/src/no-op-completion-marker.ts | 48 ++++++++++
.../__tests__/executor-task-done-invariant.test.ts | 100 +++++++++++++++++++++
.../engine/src/__tests__/executor-test-helpers.ts | 1 +
packages/engine/src/executor.ts | 64 ++++++++++++-
9 files changed, 279 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6275
Fusion-Task-Lineage: 0a2ec21b-415f-411c-bfcd-4f1c19a6a136
2026-06-13 02:54:57 -07:00
gsxdsm
9c9abc3bd7
FN-6344: combine adjacent chat text chunks
...
Task detail chat now renders adjacent text log chunks as continuous bubbles.
- Combine consecutive non-tool, non-thinking chat entries within each agent role group before rendering.
- Preserve tool and thinking segment boundaries while simplifying segment keys for grouped text.
- Add dashboard tests for single, consecutive, and cross-role text bubble behavior.
- Document the text chunk grouping behavior in the dashboard guide.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskChatTab.tsx | 28 ++++++++-----
.../app/components/__tests__/TaskChatTab.test.tsx | 48 ++++++++++++++++++++++
3 files changed, 66 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-6344
Fusion-Task-Lineage: e88f0383-7d91-4272-8c9b-532a382074d4
2026-06-13 00:15:52 -07:00
gsxdsm
0765913db9
Merge branch 'fix/fn-352-no-commit-coordination'
2026-06-13 00:03:17 -07:00
gsxdsm
000a73b3f0
Merge origin/main into fix/fn-352-no-commit-coordination
...
Reconcile the FN-352 no-commit coordination guard skip with main's
independently-landed FN-424 work. Both branches added a no_commits
guard bypass at the same fn_task_done call site:
- FN-352 (this branch): getNoCommitEligibilityReason(task) covering
Review Level 1 coordination prompts with board-only scope and
explicit no-source intent (e.g. "Do not change product source").
- FN-424 (main): evaluatePromptDerivedNoCommitEligibility(...) plus
non-blocking audit logging of the skip.
Their prompt phrase-matching differs, so neither alone satisfies the
merged test file. Resolved by OR-ing both eligibility checks and
wrapping the skip in main's audit-logging block. Both helpers still
refuse the contradictory implementation+coordination prompt.
All 18 executor-task-done-invariant tests pass; engine typecheck clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-13 00:01:30 -07:00
gsxdsm
a9b11399d9
FN-6336: reattach orphaned assigned executions
...
Self-healing now resumes stranded assigned in-progress work when an agent has no active run or execution.
- Add a self-healing pass that groups stale assigned in-progress tasks by durable agent and calls the executor resume seam without moving tasks backward.
- Emit run-audit telemetry for reattached orphaned executions and wire the resume hook through the in-process runtime.
- Cover grace windows, pause/active-run/active-execution guards, task filtering, and registration order with engine tests.
- Document the recovery behavior and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-6336-reattach-orphaned-executions.md | 5 +
docs/agents.md | 2 +
docs/architecture.md | 2 +
...lf-healing-reattach-orphaned-executions.test.ts | 217 +++++++++++++++++++++
packages/engine/src/run-audit.ts | 1 +
packages/engine/src/runtimes/in-process-runtime.ts | 1 +
packages/engine/src/self-healing.ts | 122 ++++++++++++
7 files changed, 350 insertions(+)
Fusion-Task-Id: FN-6336
Fusion-Task-Lineage: 6d8519b9-d8b0-4726-9b45-bfa445b7883e
2026-06-12 23:17:28 -07:00
gsxdsm
1c4ec5f002
FN-6327: add engineer backlog auto-claim controls
...
Expose engineer backlog auto-claim configuration in dashboard settings and agent heartbeat settings.
- Add a project-level Scheduling & Capacity checkbox for engineer backlog auto-claim.
- Add a per-agent Heartbeat Settings checkbox that persists runtimeConfig.engineerBacklogAutoClaim.
- Cover the new settings UI with dashboard component tests.
- Document the project default and per-agent override locations and add a release changeset.
Files changed:
.../FN-6327-engineer-backlog-auto-claim-ui.md | 5 +
docs/settings-reference.md | 4 +-
.../dashboard/app/components/AgentDetailView.tsx | 25 ++++-
.../AgentDetailView.advanced-settings.test.tsx | 104 +++++++++++++++++++++
.../components/__tests__/SettingsModal.test.tsx | 66 +++++++++++++
.../settings/sections/SchedulingSection.tsx | 14 +++
6 files changed, 215 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6327
Fusion-Task-Lineage: fddc39bc-f50e-42fa-ae67-7c3eca59cbeb
2026-06-12 22:55:01 -07:00
gsxdsm
97f3d6579b
FN-6332: improve task chat tool summaries
...
Refine task chat transcripts so collapsed tool groups summarize real invocations and expand into paired call/result details.
- Count tool calls by invocation instead of raw tool log rows.
- Show deduped tool names, overflow counts, and error badges in collapsed summaries.
- Pair tool calls with their result or error details when expanded.
- Cover the grouped summary behavior with dashboard tests and documentation.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskChatTab.css | 36 +++++--
packages/dashboard/app/components/TaskChatTab.tsx | 116 +++++++++++++++++----
.../app/components/__tests__/TaskChatTab.test.tsx | 105 ++++++++++++++++---
4 files changed, 213 insertions(+), 46 deletions(-)
Fusion-Task-Id: FN-6332
Fusion-Task-Lineage: 7c14b76c-dcaa-4227-8393-cb24f99b765d
2026-06-12 21:50:49 -07:00
gsxdsm
43456664cf
FN-6331: remove Beads repository guidance
...
Remove Beads-specific repository guidance and documentation from the project.
- Delete the Beads/Dolt sync evaluation document and remove it from docs indexes/tests.
- Remove bd/Beads issue-tracking and session-push instructions from AGENTS.md and contributing docs.
- Keep the Dolt ignore rule generic rather than tied to bd initialization.
Files changed:
.gitignore | 2 +-
AGENTS.md | 113 -----
docs/README.md | 1 -
docs/beads-dolt-sync-evaluation.md | 501 ---------------------
docs/contributing.md | 57 ---
.../cli/src/__tests__/docs-readme-index.test.ts | 1 -
6 files changed, 1 insertion(+), 674 deletions(-)
Fusion-Task-Id: FN-6331
Fusion-Task-Lineage: d7498df6-6bc6-4a6d-b09b-d640184dc586
2026-06-12 21:50:49 -07:00
gsxdsm
508551c593
FN-6299: allow archiving tasks from any column
...
Allow task archiving from every live board column while preserving a safe restore target.
- Record the pre-archive column and restore archived tasks to that column, downgrading active execution columns to todo.
- Expose archive actions and CLI/tooling documentation for all non-archived tasks.
- Expand store, dashboard, and route tests for archive/unarchive behavior across columns.
- Quarantine the flaky core db test observed during verification and add the published package changeset.
Files changed:
.changeset/fn-6299-archive-any-column.md | 5 ++
docs/cli-reference.md | 4 ++
docs/task-management.md | 9 +--
.../cli/skill/fusion/references/extension-tools.md | 6 +-
.../skill/fusion/references/fusion-capabilities.md | 4 +-
packages/cli/src/bin.ts | 2 +-
packages/cli/src/extension.ts | 18 ++---
.../src/__tests__/store-archive-search.test.ts | 76 +++++++++++++++++-----
packages/core/src/store.ts | 61 ++++++++++++-----
packages/core/src/types.ts | 4 ++
packages/core/vitest.config.ts | 1 +
packages/dashboard/app/components/TaskCard.tsx | 2 +-
.../dashboard/app/components/TaskDetailModal.tsx | 2 +-
.../app/components/__tests__/TaskCard.test.tsx | 35 +++++++++-
...etailModal.responsive-and-dependencies.test.tsx | 26 ++++++++
.../src/__tests__/routes-tasks-ops.test.ts | 8 +--
.../src/routes/register-task-workflow-routes.ts | 9 +--
scripts/lib/test-quarantine.json | 5 ++
18 files changed, 215 insertions(+), 62 deletions(-)
Fusion-Task-Id: FN-6299
Fusion-Task-Lineage: fd5b5c12-35b8-4843-ab4e-14608d1ea395
2026-06-12 21:50:49 -07:00
gsxdsm
ac8ad834ce
Merge branch 'main' into fix/fn-352-no-commit-coordination
2026-06-12 21:39:07 -07:00
gsxdsm
9d0573a2ee
Merge pull request #1663 from plarson/fix/fn-343-merge-worktree-cleanup
...
fix: classify harmless merge worktree cleanup failures
2026-06-12 21:34:51 -07:00
gsxdsm
167f9b0542
FN-6324: allow opted-in engineer backlog auto-claim
...
Engineer backlog auto-claim now respects an explicit opt-in while keeping the default executor-only behavior.
- Add engineerBacklogAutoClaim settings and runtime overrides for backlog pickup role checks.
- Update heartbeat auto-claim filtering, logs, and no-task prompt guidance for opted-in engineer agents.
- Cover executor/default engineer/opted-in engineer routing with core and heartbeat tests.
- Document the setting and record quarantined unrelated temp-root flakes seen during verification.
Files changed:
.changeset/FN-6324-engineer-backlog-auto-claim.md | 5 ++
docs/agents.md | 3 +
docs/settings-reference.md | 1 +
.../core/src/__tests__/agent-role-policy.test.ts | 33 +++++++++-
packages/core/src/agent-role-policy.ts | 11 +++-
packages/core/src/settings-schema.ts | 1 +
packages/core/src/types.ts | 4 ++
packages/core/vitest.config.ts | 6 ++
.../src/__tests__/heartbeat-executor.test.ts | 70 ++++++++++++++++++++++
packages/engine/src/agent-heartbeat.ts | 65 +++++++++++++++-----
scripts/lib/test-quarantine.json | 20 +++++++
11 files changed, 199 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-6324
Fusion-Task-Lineage: 4d124d98-4ad1-44ce-a76c-f1db3199b3c6
2026-06-12 19:45:37 -07:00
gsxdsm
e7bb23be66
FN-6330: document bd workflow in contributing guide
...
Document the repository-local Beads issue workflow for contributors.
- Add the bd ready/claim/create/close/sync workflow with expected outcomes.
- Document Beads issue types and priority levels.
- Clarify that local Beads tracking is separate from the Fusion storage evaluation.
Files changed:
docs/contributing.md | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 57 insertions(+)
Fusion-Task-Id: FN-6330
Fusion-Task-Lineage: 9a56def0-40bf-4e61-8582-4bb66e382a3a
2026-06-12 19:35:13 -07:00
gsxdsm
f19c4d64ee
FN-6316: collapse task chat tool and thinking entries
...
Make task-detail agent chat easier to scan during tool-heavy sessions.
- Group consecutive tool, result, and error entries into collapsed summaries with status counts.
- Render thinking output in expanded-by-default collapsible blocks.
- Add responsive styling, docs, and regression coverage for grouped transcript segments.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskChatTab.css | 120 +++++++++++++--
packages/dashboard/app/components/TaskChatTab.tsx | 161 ++++++++++++++++++---
.../app/components/__tests__/TaskChatTab.test.tsx | 100 +++++++++++--
4 files changed, 337 insertions(+), 46 deletions(-)
Fusion-Task-Id: FN-6316
Fusion-Task-Lineage: 84c83ea1-fa9a-4e30-9794-ae95e29f989e
2026-06-12 19:30:53 -07:00
gsxdsm
869a4f77da
FN-6329: prevent Quick Chat keyboard board shift
...
Keep the mobile board layout stable while Quick Chat owns the keyboard viewport.
- Treat fullscreen mobile overlays as suppressors for App-level footer hiding.
- Pass Quick Chat mobile open state into the shared keyboard flag helper.
- Cover iOS, Android, modal, and non-mobile keyboard flag behavior.
- Document the Quick Chat mobile keyboard board-shift root cause and fix.
Files changed:
.../quick-chat-mobile-keyboard-board-shift.md | 58 ++++++++++++++++++++++
packages/dashboard/app/App.tsx | 4 +-
.../utils/__tests__/mobileBarKeyboardFlags.test.ts | 57 ++++++++++++++++++++-
.../dashboard/app/utils/mobileBarKeyboardFlags.ts | 10 +++-
4 files changed, 126 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6329
Fusion-Task-Lineage: f7c37252-c0ea-44f0-b4e3-5aa2022cf7bc
2026-06-12 19:22:11 -07:00
gsxdsm
1d190f37ed
FN-6322: validate settings scopes workflow payload
...
Clarify and cover the settings scopes response shape including workflow settings.
- Document that GET /api/settings/scopes returns workflowSettings with global and project scopes.
- Assert workflowSettings is always a non-null object for default and project-scoped route tests.
- Preserve exact workflow setting payload coverage when workflow overrides are present.
Files changed:
docs/settings-reference.md | 2 +-
packages/dashboard/src/__tests__/routes-settings.test.ts | 11 +++++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6322
Fusion-Task-Lineage: 08796f9d-be99-46a1-8326-251a8d79dda4
2026-06-12 19:17:25 -07:00
gsxdsm
0a135c9367
FN-6315: Scroll task chat to latest output
...
Ensure the task-details Chat transcript opens at the newest agent output without breaking live scroll-away behavior.
- Track active-state transitions and initial log population to snap populated transcripts to the bottom.
- Preserve existing near-bottom live-follow behavior and inactive cached scroll bookkeeping.
- Cover initial desktop/mobile load, reactivation, delayed population, and empty transcript cases.
- Document the updated Chat tab behavior and add a published package patch changeset.
Files changed:
.changeset/fn-6315-chat-scroll-bottom.md | 5 +
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskChatTab.tsx | 25 ++-
.../app/components/__tests__/TaskChatTab.test.tsx | 182 ++++++++++++++++++++-
4 files changed, 211 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6315
Fusion-Task-Lineage: 6cd7c418-124f-4730-a533-cc866f9a16a8
2026-06-12 18:26:45 -07:00
gsxdsm
8f66a41c1c
FN-6308: parallelize dashboard quality lanes
...
Reduce dashboard quality gate wall-clock by orchestrating existing Vitest lanes with bounded concurrency.
- Add a dashboard quality orchestrator that runs app/API lanes through the existing heap wrapper with safe concurrency and failure short-circuiting.
- Route dashboard quality scripts through the orchestrator while preserving compatibility lane scripts and shard boundaries.
- Export project glob metadata and strengthen guards for lane parity, heap usage, and settings route response expectations.
- Document the new dashboard quality orchestration model and measured FN-6308 timing results.
Files changed:
docs/test-speed-audit-FN-5048.md | 8 +-
docs/testing.md | 35 +++-
packages/dashboard/package.json | 14 +-
.../scripts/__tests__/run-quality-tests.test.ts | 110 ++++++++++
packages/dashboard/scripts/run-quality-tests.mjs | 221 +++++++++++++++++++++
.../__tests__/dashboard-test-config-guard.test.ts | 134 ++++++++++---
.../src/__tests__/routes-settings.test.ts | 14 +-
packages/dashboard/vitest.config.ts | 49 ++++-
8 files changed, 540 insertions(+), 45 deletions(-)
Fusion-Task-Id: FN-6308
Fusion-Task-Lineage: 05a465fd-8eef-4c03-baa3-2b7cb024fef0
2026-06-12 18:18:24 -07:00
gsxdsm
0d51a58d09
FN-6320: enable active task chat steering
...
Allow task chat steering whenever an in-progress task has an active assigned or checked-out agent session.
- Treat in-progress sessions as steerable unless they are explicitly paused, waiting, failed, or needing replan.
- Keep in-review steering constrained to review and merge statuses while honoring paused states.
- Cover queued, cleared, checked-out, blocked, and non-board task states in TaskChatTab tests.
- Update dashboard docs to describe active, assigned, non-paused chat sessions.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskChatTab.tsx | 16 +++--
.../app/components/__tests__/TaskChatTab.test.tsx | 81 ++++++++++++++++++++--
3 files changed, 89 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-6320
Fusion-Task-Lineage: bdc7df52-5d1f-4882-82a7-9fe32496e1d1
2026-06-12 18:03:51 -07:00
gsxdsm
bd87ce7d7e
FN-6304: add optional workflow steps
...
Allow workflows to define default-on optional steps and expose browser verification as a togglable workflow option.
- Add core optional-step helpers, IR metadata, compiler support, exports, and regression coverage.
- Mark browser verification optional in the built-in coding workflow and document optional workflow-step behavior.
- Add dashboard/API support for optional step defaults and enabled-state presentation with localized label cleanup.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6304-optional-workflow-steps.md | 5 ++
docs/task-management.md | 2 +-
docs/workflow-steps.md | 8 ++
packages/core/src/__tests__/workflow-ir.test.ts | 45 +++++++++++
.../src/__tests__/workflow-optional-steps.test.ts | 88 ++++++++++++++++++++++
packages/core/src/builtin-coding-workflow-ir.ts | 1 +
packages/core/src/index.ts | 3 +
packages/core/src/store.ts | 3 +
packages/core/src/workflow-compiler.ts | 30 +++++++-
packages/core/src/workflow-ir-types.ts | 11 +++
packages/core/src/workflow-ir.ts | 32 +++++++-
packages/core/src/workflow-optional-steps.ts | 46 +++++++++++
packages/dashboard/app/api/legacy.ts | 10 +++
.../dashboard/app/components/InlineCreateCard.css | 20 +++++
.../dashboard/app/components/InlineCreateCard.tsx | 87 ++++++++++++++++-----
.../app/components/WorkflowResultsTab.tsx | 44 +++++++++--
.../components/__tests__/InlineCreateCard.test.tsx | 41 +++++++++-
.../__tests__/WorkflowResultsTab.test.tsx | 58 +++++++++++++-
.../src/__tests__/workflow-routes.test.ts | 22 ++++++
.../src/routes/register-workflow-routes.ts | 16 +++-
packages/i18n/locales/en/app.json | 6 +-
packages/i18n/locales/es/app.json | 3 -
packages/i18n/locales/fr/app.json | 3 -
packages/i18n/locales/ko/app.json | 3 -
packages/i18n/locales/zh-CN/app.json | 3 -
packages/i18n/locales/zh-TW/app.json | 3 -
packages/i18n/src/resources.d.ts | 6 +-
27 files changed, 543 insertions(+), 56 deletions(-)
Fusion-Task-Id: FN-6304
Fusion-Task-Lineage: 385f8ae1-494f-4e2b-a6e9-3a2d2bbe7f71
2026-06-12 17:57:19 -07:00
gsxdsm
0cd2ae1032
FN-6314: allow chat steering during review sessions
...
Task Chat can now steer active assigned sessions while tasks are being reviewed or merged.
- Permit composer steering for in-review reviewing, merging, merging-fix, and fixing statuses when an agent is assigned or checked out.
- Keep paused, user-paused, unassigned, todo, and done tasks disabled with clearer active-session messaging.
- Cover in-review steering and disabled-session states in TaskChatTab tests and update dashboard documentation.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskChatTab.tsx | 13 +++--
.../app/components/__tests__/TaskChatTab.test.tsx | 61 ++++++++++++++++++++--
3 files changed, 67 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6314
Fusion-Task-Lineage: 42c0f4f7-58f5-4e0c-837f-9f4b7c497fa3
2026-06-12 16:10:02 -07:00
Phil Larson
3a729f53a9
fix(FN-352): allow no-commit coordination completion
2026-06-12 15:51:50 -07:00
Phil Larson
e35f3dd2b8
feat(FN-343): complete Step 5 — document cleanup diagnostics and changeset
...
Fusion-Task-Id: FN-343
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-06-12 15:51:45 -07:00
Phil Larson
4f803b8625
feat(FN-343): complete Step 5 — document cleanup diagnostics and changeset
...
Fusion-Task-Id: FN-343
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-06-12 15:50:53 -07:00
gsxdsm
2b5c4ae745
FN-6307: trim dashboard test waits
...
Trim heavyweight dashboard test paths while preserving coverage and recording the timing evidence.
- Seed the planning route rate limiter directly so boundary assertions avoid 999 duplicate HTTP session creations.
- Replace negative wait polling in NewTaskModal and heartbeat saturation assertions with direct checks after the triggering event settles.
- Document FN-6307 timing measurements and note the unrelated pre-existing settings-route failures observed during verification.
Files changed:
docs/test-speed-audit-FN-5048.md | 20 +++++++++++++
.../app/components/__tests__/NewTaskModal.test.tsx | 8 ++----
.../src/__tests__/routes-planning.test.ts | 33 +++++++++++++---------
3 files changed, 41 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-6307
Fusion-Task-Lineage: b32b22e7-6729-4bd0-bc3a-ad053178bb1c
2026-06-12 14:58:59 -07:00
gsxdsm
039d3ce440
FN-6236: move fast triage into workflow settings
...
Move fast triage prompting into the workflow/settings prompt model.
- Add a core-owned fast triage prompt and expose the workflow prompt mode type.
- Add a fast-mode builtin workflow variant and route triage prompt selection through workflow settings.
- Remove the engine-local fast triage prompt constant and update triage tests for workflow-driven fast mode.
- Document the fast triage prompt mode setting and add a patch changeset.
Files changed:
.changeset/FN-6236-fast-mode-workflow-variant.md | 7 +
docs/settings-reference.md | 2 +
packages/core/src/__tests__/agent-prompts.test.ts | 16 +-
.../builtin-workflow-settings-triage.test.ts | 5 +
packages/core/src/agent-prompts.ts | 221 +++++++++++++++++++
packages/core/src/builtin-workflow-prompts.ts | 12 +-
packages/core/src/builtin-workflow-settings.ts | 18 +-
packages/core/src/index.ts | 5 +
packages/core/src/types.ts | 4 +
.../triage-duplicate-search-regression.test.ts | 18 +-
.../triage-fast-mode-workflow-variant.test.ts | 219 +++++++++++++++++++
.../triage-planning-prompt-single-source.test.ts | 8 +-
packages/engine/src/__tests__/triage.test.ts | 64 +++---
packages/engine/src/triage.ts | 235 ++-------------------
14 files changed, 565 insertions(+), 269 deletions(-)
Fusion-Task-Id: FN-6236
Fusion-Task-Lineage: 369954d8-41e7-4d88-aa6d-e6bbca077d50
2026-06-12 14:39:51 -07:00
gsxdsm
ba610a1c0e
FN-6296: fix stuck-kill force-requeue cleanup
...
Reap hung executor surfaces before requeueing stuck-kill timeout tasks.
- terminate spawned child agents and active session surfaces before clearing execution guards
- remove stale worktrees during force-requeue while preserving concurrent recovery ownership
- add regression coverage and architecture notes for the cleanup contract
Files changed:
docs/architecture.md | 2 +
.../engine/src/__tests__/executor-recovery.test.ts | 248 ++++++++++++++++++++-
packages/engine/src/executor.ts | 61 ++++-
3 files changed, 305 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-6296
Fusion-Task-Lineage: a393e2b1-a72c-4d7b-9de2-6bf7268986d4
2026-06-12 14:08:52 -07:00
gsxdsm
283adce4d0
FN-6295: move AI merge clean rooms into worktrees
...
Move AI-merge clean-room worktrees into the configured worktrees directory while preserving legacy cleanup.
- Resolve AI-merge roots through the configured worktrees directory using a hidden .ai-merge container.
- Keep local git excludes and stale cleanup compatible with legacy .fusion/ai-merge and tmpdir locations.
- Exclude the .ai-merge container from worktree pool and self-healing one-level sweeps.
- Add regression coverage for path resolution, cleanup, orphan reap, and cap enforcement behavior.
- Update architecture and agent guidance for the relocated clean-room root.
Files changed:
AGENTS.md | 2 +-
docs/architecture.md | 4 +-
.../engine/src/__tests__/merger-ai-cleanup.test.ts | 50 +++++++++----
.../__tests__/self-healing-tempdir-sweep.test.ts | 87 +++++++++++++++++++---
.../engine/src/__tests__/worktree-paths.test.ts | 24 ++++++
.../engine/src/__tests__/worktree-pool.test.ts | 55 ++++++++++++++
packages/engine/src/merger-ai.ts | 27 +++++--
packages/engine/src/self-healing.ts | 25 +++----
packages/engine/src/worktree-paths.ts | 17 +++++
packages/engine/src/worktree-pool.ts | 10 +--
10 files changed, 247 insertions(+), 54 deletions(-)
Fusion-Task-Id: FN-6295
Fusion-Task-Lineage: d95d32c2-3253-4964-b68a-252b4cb65109
2026-06-12 12:49:34 -07:00
gsxdsm
0897b2a0bf
FN-6281: add bounded graph resume retries
...
Add a narrow persisted retry path for transient workflow-graph failures during resume after restart or unpause.
- Persist graphResumeRetryCount with schema migration, store round-tripping, manual retry reset, and task serialization coverage.
- Retry only no-progress execute-seam graph failures immediately following resume markers, then clear transient status/error and re-run within a capped budget.
- Preserve terminal graph failure handling for explicit reasons, durable task failures, completed progress, non-resume cases, and exhausted retry budgets.
- Document the resume-limbo retry contract and add a patch changeset for @runfusion/fusion.
Files changed:
.changeset/fn-6281-graph-resume-retry.md | 5 +
docs/architecture.md | 1 +
packages/core/src/__tests__/db-migrate.test.ts | 30 +--
packages/core/src/__tests__/db.test.ts | 44 ++---
packages/core/src/__tests__/goals-schema.test.ts | 2 +-
packages/core/src/__tests__/insight-store.test.ts | 10 +-
.../core/src/__tests__/manual-retry-reset.test.ts | 1 +
.../src/__tests__/merge-request-record.test.ts | 2 +-
packages/core/src/__tests__/mission-store.test.ts | 2 +-
packages/core/src/__tests__/run-audit.test.ts | 4 +-
.../core/src/__tests__/store-merge-queue.test.ts | 2 +-
.../core/src/__tests__/store-persistence.test.ts | 22 +++
packages/core/src/__tests__/task-documents.test.ts | 2 +-
packages/core/src/db.ts | 10 +-
packages/core/src/manual-retry-reset.ts | 1 +
packages/core/src/store.ts | 14 +-
packages/core/src/types.ts | 5 +
.../engine/src/__tests__/executor-recovery.test.ts | 201 +++++++++++++++++++++
packages/engine/src/executor.ts | 54 ++++++
19 files changed, 359 insertions(+), 53 deletions(-)
Fusion-Task-Id: FN-6281
Fusion-Task-Lineage: f9061445-8624-465a-9255-c3d02eac1bdb
2026-06-12 11:10:12 -07:00
gsxdsm
36ba1b9d68
FN-6292: prevent dependency-blocking file leases
...
Prevent dependency waiters from holding file-scope leases that can block their own dependencies.
- Exclude in-progress tasks with unmet scheduling dependencies from active overlap lease maps.
- Add self-healing recovery for existing dependency/lease circular waits with triple-proof auditing.
- Cover scheduler and self-healing behavior with regression tests and document the new audit events.
Files changed:
AGENTS.md | 1 +
docs/architecture.md | 5 +-
packages/engine/src/__tests__/scheduler.test.ts | 108 +++++++++++++
packages/engine/src/__tests__/self-healing.test.ts | 172 ++++++++++++++++++++-
packages/engine/src/scheduler.ts | 67 +++++---
packages/engine/src/self-healing.ts | 132 ++++++++++++++++
6 files changed, 462 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-6292
Fusion-Task-Lineage: 7c0e852d-bdb1-4775-a6b7-2b60b7583da1
2026-06-12 10:49:02 -07:00
gsxdsm
4bd6024ef7
FN-6300: add live task chat tab
...
Add a live chat-style task detail tab for following and steering active agent work.
- Add TaskChatTab with grouped agent log bubbles, live-follow scrolling, and steering message composer.
- Share chat input autosize helpers between ChatView and task chat.
- Wire the Chat tab into task detail navigation with localized labels and regression coverage.
Files changed:
docs/dashboard-guide.md | 2 +
.../dashboard/app/components/AgentLogViewer.tsx | 2 +-
packages/dashboard/app/components/ChatView.tsx | 25 +-
packages/dashboard/app/components/TaskChatTab.css | 193 ++++++++++++++
packages/dashboard/app/components/TaskChatTab.tsx | 276 +++++++++++++++++++++
.../dashboard/app/components/TaskDetailModal.tsx | 13 +-
.../app/components/__tests__/TaskChatTab.test.tsx | 181 ++++++++++++++
.../TaskDetailModal.attachments-and-tabs.test.tsx | 19 +-
.../TaskDetailModal.definition-actions.test.tsx | 104 ++++----
...etailModal.responsive-and-dependencies.test.tsx | 2 +-
packages/dashboard/app/utils/chatInputAutosize.ts | 18 ++
packages/i18n/locales/en/app.json | 1 +
packages/i18n/locales/es/app.json | 1 +
packages/i18n/locales/fr/app.json | 1 +
packages/i18n/locales/ko/app.json | 1 +
packages/i18n/locales/zh-CN/app.json | 1 +
packages/i18n/locales/zh-TW/app.json | 1 +
17 files changed, 757 insertions(+), 84 deletions(-)
Fusion-Task-Id: FN-6300
Fusion-Task-Lineage: 1eb8a17b-3ca5-4cba-81c6-ac7ccce0a113
2026-06-12 10:00:08 -07:00
gsxdsm
7ffea9f4a6
FN-6290: expose Google Generative AI custom providers
...
Expose Google Generative AI as a selectable custom-provider API type across settings UI and docs.
- Add Google Generative AI options to custom-provider add and edit dropdowns.
- Cover add, edit, and existing Google-provider selection behavior with dashboard tests.
- Document the supported API type and add localized provider labels.
- Add a changeset for the published Fusion package.
Files changed:
.changeset/fn-6290-expose-google-generative-ai.md | 5 ++
docs/dashboard-guide.md | 5 +-
docs/settings-reference.md | 2 +-
.../app/components/CustomProvidersSection.tsx | 2 +
.../__tests__/CustomProvidersSection.test.tsx | 62 ++++++++++++++++++++++
packages/i18n/locales/en/app.json | 1 +
packages/i18n/locales/es/app.json | 1 +
packages/i18n/locales/fr/app.json | 1 +
packages/i18n/locales/ko/app.json | 1 +
packages/i18n/locales/zh-CN/app.json | 1 +
packages/i18n/locales/zh-TW/app.json | 1 +
11 files changed, 79 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6290
Fusion-Task-Lineage: 295cbba2-cae1-4998-9456-d6a306be6e34
2026-06-12 07:13:00 -07:00
gsxdsm
2085610e9e
FN-6246: move AI merge clean rooms into repo storage
...
Move AI merge clean-room worktrees into a repo-local ignored root while preserving legacy temp cleanup.
- Add repo-local `.fusion/ai-merge` resolution and ignore handling for AI merge worktrees.
- Sweep both repo-local clean rooms and legacy tempdir worktrees with active-session and age safeguards.
- Prune stale git worktree metadata after cleanup and classify missing clean-room errors as transient.
- Update cleanup tests, architecture docs, and changeset coverage for the relocation.
Files changed:
.changeset/fn-6246-ai-merge-cleanroom-relocation.md | 5 +
AGENTS.md | 2 +-
docs/architecture.md | 6 +-
.../merger-ai-cleanup-active-session.test.ts | 22 ++-
.../engine/src/__tests__/merger-ai-cleanup.test.ts | 48 +++++-
.../ai-merge-worktree-cleanup.test.ts | 26 ++-
.../__tests__/self-healing-tempdir-sweep.test.ts | 34 ++++
.../transient-merge-error-classifier.test.ts | 2 +
packages/engine/src/merger-ai.ts | 144 ++++++++++-------
packages/engine/src/self-healing.ts | 180 ++++++++++++---------
.../engine/src/transient-merge-error-classifier.ts | 14 +-
11 files changed, 325 insertions(+), 158 deletions(-)
Fusion-Task-Id: FN-6246
Fusion-Task-Lineage: f6fe8ef2-aa7b-4cc3-903f-b7a5cc165487
2026-06-12 06:49:29 -07:00
gsxdsm
40b9d553dd
FN-6286: document custom provider model selection
...
Document how custom providers are configured and surfaced in model pickers.
- Add Custom Providers dashboard guide coverage for adding, editing, deleting, detecting models, and masked API key behavior.
- Explain that saved custom provider models appear in Project Models and workflow model dropdowns.
- Add a stable settings-reference anchor for the customProviders setting.
Files changed:
docs/dashboard-guide.md | 64 ++++++++++++++++++++++++++++++++++++++++++++++
docs/settings-reference.md | 2 +-
2 files changed, 65 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6286
Fusion-Task-Lineage: 79520376-d448-4048-af43-a532fba68853
2026-06-12 05:26:08 -07:00
gsxdsm
ec4b247a86
FN-6284: refire deferred agent assignments
...
Ensure assigned agents resume task work even when their heartbeat loop is idle.
- add deferred assignment refiring when an agent is assigned work without an active heartbeat run
- track in-process runtime activity so scheduled work is not double-started
- cover idle, active, and concurrent heartbeat assignment paths with scheduler and runtime tests
- document the deferred assignment wake-up behavior and add a changeset
Files changed:
.changeset/fn-6284-deferred-assignment-refire.md | 5 +
docs/agents.md | 2 +
docs/architecture.md | 1 +
.../src/__tests__/heartbeat-scheduler.test.ts | 174 ++++++++++++++++++++-
packages/engine/src/agent-heartbeat.ts | 109 ++++++++++++-
.../runtimes/__tests__/in-process-runtime.test.ts | 24 +++
packages/engine/src/runtimes/in-process-runtime.ts | 3 +
7 files changed, 311 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-6284
Fusion-Task-Lineage: cf8a9abe-163e-45c6-961a-095891e45ea5
2026-06-12 03:00:45 -07:00
gsxdsm
44b756d927
FN-6258: allow deferred built-in workflow selection
...
Allow branching built-in workflows to stay selectable while deferring legacy step materialization.\n\n- Treat interpreter-deferred built-in compile errors as valid zero-step selections or default fallbacks.\n- Update builtin:coding merge-region layout expectations and documentation for workflow-native merge primitives.\n- Cover explicit selection, create-time selection, and project-default fallback cases for deferred built-ins.\n- Add a patch changeset for the published CLI package.\n\nFiles changed:\n .changeset/fuzzy-workflows-branching.md | 5 ++\n docs/workflow-steps.md | 4 +-\n .../core/src/__tests__/builtin-workflows.test.ts | 53 +++++++++++++++--\n packages/core/src/builtin-workflows.ts | 10 +++-\n packages/core/src/store.ts | 43 ++++++++++----\n packages/core/src/workflow-compiler.ts | 66 +++++-----------------\n 6 files changed, 109 insertions(+), 72 deletions(-)
Fusion-Task-Id: FN-6258
Fusion-Task-Lineage: 0958f522-029e-4f2a-9292-b408c2a4c208
2026-06-11 22:48:59 -07:00
gsxdsm
2efa833357
FN-6250: add Compound Engineering session cancellation
...
Add cancel controls and backend support for preserving interrupted Compound Engineering sessions.
- Add an orchestrator cancel path and POST route that stops live work without deleting session history.
- Wire dashboard APIs, hooks, and UI buttons to cancel active, launching, or awaiting-input sessions.
- Cover cancellation behavior across orchestrator, routes, hooks, flow controls, and session panel tests.
- Document the cancel versus discard workflow in plugin docs and README.
Files changed:
docs/plugins/compound-engineering.md | 13 ++-
.../fusion-plugin-compound-engineering/README.md | 11 ++-
.../src/__tests__/orchestrator-cancel.test.ts | 101 +++++++++++++++++++++
.../src/__tests__/session-routes.test.ts | 35 +++++++
.../src/dashboard/CeFlow.tsx | 16 +++-
.../src/dashboard/CompoundEngineeringView.css | 20 ++++
.../src/dashboard/CompoundEngineeringView.tsx | 40 +++++++-
.../src/dashboard/__tests__/CeFlow.test.tsx | 20 ++++
.../__tests__/CompoundEngineeringView.test.tsx | 53 ++++++++++-
.../hooks/__tests__/useCeSessions.test.tsx | 44 ++++++++-
.../src/dashboard/hooks/api.ts | 10 ++
.../src/dashboard/hooks/useCeSessions.ts | 23 ++++-
.../src/routes/session-routes.ts | 11 +++
.../src/session/orchestrator.ts | 20 ++++
14 files changed, 404 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-6250
Fusion-Task-Lineage: e9997056-364c-44e1-b846-00b08a1ff8fc
2026-06-11 22:42:21 -07:00