gsxdsm
c468c161c2
FN-7141: add chat context token budget indicator
...
Add a desktop Direct-chat header indicator for estimated tokens used against the active model context window.
- Estimate chat token usage client-side, including streaming text, and format compact counts.
- Render the context-window badge only for non-mobile Direct-chat threads with known model context windows.
- Cover desktop, mobile, floating-narrow, rooms, unknown-context, and streaming surfaces with tests.
- Document the dashboard behavior and add a release changeset.
Files changed:
.changeset/fn-7141-chat-context-window.md | 7 +
docs/dashboard-guide.md | 2 +
packages/dashboard/app/components/ChatView.css | 22 +++
packages/dashboard/app/components/ChatView.tsx | 35 +++-
.../__tests__/ChatView.context-window.test.tsx | 193 +++++++++++++++++++++
.../app/utils/__tests__/estimateChatTokens.test.ts | 34 ++++
packages/dashboard/app/utils/estimateChatTokens.ts | 29 ++++
packages/i18n/locales/en/app.json | 1 +
8 files changed, 322 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7141
Fusion-Task-Lineage: 3ede9af4-b8d6-4da6-996f-cd9277ef49ac
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 17:22:12 -07:00
gsxdsm
13d97b7c33
FN-7145: verify CE workflow skill loading
...
Add coverage and documentation for skill-backed workflow step loading.
- Derive compound-engineering skill-step expectations from the built-in workflow definition.
- Assert every skill-backed step requests namespaced and bare skills and uses injected CE skill paths.
- Cover missing FUSION_CE_SKILLS_DIR warnings, skill-less steps, and toolMode-independent skill loading.
- Document the skill-backed workflow execution invariant.
Files changed:
docs/workflow-steps.md | 9 ++
.../__tests__/ce-workflow-step-executor.test.ts | 112 +++++++++++++++++++--
2 files changed, 115 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-7145
Fusion-Task-Lineage: 1a344fa7-fa0c-4f04-af5a-1a90d48cd34c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 17:17:28 -07:00
gsxdsm
9e7c57da08
FN-7139: show task columns on agent badges
...
Enrich dashboard agent task indicators with linked task column context.
- Add API-side transient taskColumn enrichment for active agent task links, including an unresolved sentinel for missing tasks.
- Render shared agent task badges across agent panels, detail views, lists, and mobile surfaces.
- Extend dashboard/API coverage and document the task-column badge behavior with a published changeset.
Files changed:
.changeset/fn-7139-agent-task-column-context.md | 7 ++
docs/dashboard-guide.md | 2 +
packages/core/src/types.ts | 5 ++
.../dashboard/app/components/ActiveAgentsPanel.tsx | 3 +-
.../dashboard/app/components/AgentDetailView.tsx | 5 +-
.../dashboard/app/components/AgentListModal.tsx | 3 +-
.../dashboard/app/components/AgentTaskBadge.tsx | 28 +++++++
packages/dashboard/app/components/AgentsView.tsx | 3 +-
.../__tests__/ActiveAgentsPanel.test.tsx | 55 ++++++++++---
.../__tests__/AgentDetailView.core.test.tsx | 65 +++++++++++++++
.../AgentDetailView.mobile-scroll.test.tsx | 16 +++-
.../components/__tests__/AgentListModal.test.tsx | 16 +++-
.../app/components/__tests__/AgentsView.test.tsx | 23 +++++-
.../dashboard/src/__tests__/routes-agents.test.ts | 92 +++++++++++++++++++++-
packages/dashboard/src/routes.ts | 13 ++-
15 files changed, 306 insertions(+), 30 deletions(-)
Fusion-Task-Id: FN-7139
Fusion-Task-Lineage: 3f6d9470-b98f-4bd3-a91e-7e69ab624d48
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 17:11:13 -07:00
gsxdsm
aeafee75e5
test: remove dead post-await sleeps in skills install tests
...
runSkillsInstall already awaits the spawned child exit event, so the
fixed 100ms post-await sleeps were redundant wall-clock time (FN-5048).
Removes ~400ms of dead waits; assertions unchanged, 22 tests still pass.
2026-06-27 17:03:55 -07:00
gsxdsm
6f46fa17dd
FN-7138: show task column context in agent assignments
...
Agent Current Task output now includes linked task column context to distinguish active execution from parked or stale links.
- Add shared Current Task formatting for active, terminal, and unresolved task links.
- Show linked task columns in engine and CLI agent list/show surfaces.
- Cover parked, active, terminal, and missing task-link display cases with tests.
- Document the durable agent task-link invariant and release the CLI fix.
Files changed:
.changeset/fn-7138-agent-current-task-context.md | 7 ++++
docs/agents.md | 1 +
docs/architecture.md | 2 +-
packages/cli/src/__tests__/extension.test.ts | 44 ++++++++++++++++++++++
packages/cli/src/extension.ts | 35 +++++++++++++++--
packages/core/src/agent-store.ts | 30 +++++++++++++++
packages/core/src/index.ts | 2 +-
.../src/__tests__/agent-tools-delegation.test.ts | 44 +++++++++++++++++++++-
packages/engine/src/agent-tools.ts | 15 ++++++--
9 files changed, 169 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-7138
Fusion-Task-Lineage: 0ea97b4c-d4f8-4289-a5b6-e5c51b47b768
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 16:16:25 -07:00
gsxdsm
5066f90db2
FN-7137: stack queued chat messages
...
Stack queued chat sends above the composer and flush them in order.
- Persist pending chat sends as per-session FIFO arrays with legacy single-message restore fallback.
- Render stacked queued previews above the direct and quick chat composer with per-item dismissal.
- Flush one queued message after each completed or safely verified idle generation, preserving reconnect guards.
- Extend chat hook and composer tests for multi-message queuing, restore, dismissal, and FIFO sends.
- Document the queued stack behavior and add a published package changeset.
Files changed:
.changeset/fn-7137-stack-queued-chat-messages.md | 7 +
docs/dashboard-guide.md | 4 +-
packages/dashboard/app/components/ChatView.css | 15 +-
packages/dashboard/app/components/ChatView.tsx | 38 ++--
.../__tests__/ChatView.autosize.test.tsx | 2 +-
.../__tests__/ChatView.cli-mount.test.tsx | 2 +-
.../__tests__/ChatView.core-interactions.test.tsx | 27 ++-
.../__tests__/ChatView.default-model-icon.test.tsx | 2 +-
.../components/__tests__/ChatView.draft.test.tsx | 2 +-
.../__tests__/ChatView.hash-mention.test.tsx | 2 +-
.../__tests__/ChatView.mobile-render.test.tsx | 2 +-
.../components/__tests__/ChatView.rooms.test.tsx | 2 +-
.../__tests__/ChatView.scroll-to-top.test.tsx | 2 +-
.../__tests__/ChatView.swipe-back.test.tsx | 2 +-
.../components/__tests__/ChatView.test-harness.tsx | 2 +-
.../dashboard/app/hooks/__tests__/useChat.test.ts | 247 +++++++++++++++++----
.../app/hooks/chatPendingMessageStorage.ts | 38 +++-
packages/dashboard/app/hooks/useChat.ts | 125 ++++++++---
18 files changed, 390 insertions(+), 131 deletions(-)
Fusion-Task-Id: FN-7137
Fusion-Task-Lineage: 65dd5ed7-a8db-447b-9a50-ce73ea7b597f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 15:56:42 -07:00
gsxdsm
ba599a4ea1
FN-7136: preserve workflow edges between adjacent group nodes
...
Keep workflow graph edges connected when optional-group containers appear consecutively.
- Reject stale saved top-level layout coordinates only when connected container spans overlap in the same visual row.
- Advance auto-layout layers by each consecutive container layer's rendered width.
- Add coverage for desktop flow mapping, auto-layout, mobile graph rendering, and release-note changeset.
Files changed:
.../fn-7136-consecutive-optional-group-edges.md | 7 ++
.../__tests__/workflow-auto-layout.test.ts | 116 +++++++++++++++++++-
.../__tests__/workflow-flow-mapping.test.ts | 122 ++++++++++++++++++++-
.../__tests__/workflow-mobile-graph.test.ts | 10 +-
.../app/components/workflow-auto-layout.ts | 3 +
.../app/components/workflow-flow-mapping.ts | 50 ++++++++-
6 files changed, 299 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-7136
Fusion-Task-Lineage: 1fa1e528-a68e-4eee-9018-6752fe62a1f5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 15:39:01 -07:00
gsxdsm
6713c99011
FN-7135: Record triage token usage by model
...
Record triage and spec-review session token usage so Command Center model analytics includes planning models.\n\n- Add fail-soft token usage recording for triage session completion, fallback disposal, pause/delete, and engine stop paths.\n- Capture spec-review subagent token deltas before unregistering or force-disposing subagent sessions.\n- Add regression coverage for primary, fallback, and spec-review model token attribution.\n- Add a patch changeset for published CLI release notes.\n\nFiles changed:\n .changeset/fn-7135-triage-token-usage.md | 7 +\n .../src/__tests__/triage-token-usage.test.ts | 206 +++++++++++++++++++++\n packages/engine/src/triage.ts | 63 +++++++\n 3 files changed, 276 insertions(+)
Fusion-Task-Id: FN-7135
Fusion-Task-Lineage: abbff18a-44e8-41fd-9012-388115914fc7
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 15:06:12 -07:00
gsxdsm
a593cc7428
FN-7130: require agent-browser for browser verification
...
Browser Verification steps now explicitly request and log agent-browser usage.
- Mark the built-in browser verification workflow step as browser-required and document that it runs through agent-browser.
- Add executor helpers to inject the agent-browser skill, probe CLI availability, and log start/finish outcomes.
- Cover workflow metadata, browser verification execution logging, availability probing, and skill augmentation with tests.
- Add a patch changeset for the published Fusion package.
Files changed:
.../fn-7130-browser-verification-agent-browser.md | 7 +
docs/workflow-steps.md | 4 +-
.../__tests__/builtin-coding-workflow-ir.test.ts | 23 ++
.../core/src/__tests__/builtin-workflows.test.ts | 12 +
.../core/src/builtin-browser-verification-group.ts | 4 +
packages/core/src/types.ts | 7 +
...iltin-coding-browser-verification-group.test.ts | 8 +-
.../executor-browser-verification.test.ts | 267 +++++++++++++++++++++
packages/engine/src/executor.ts | 118 +++++++++
9 files changed, 447 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-7130
Fusion-Task-Lineage: 3a76522e-70e1-4445-ad18-b9e1b9b355fc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 14:27:06 -07:00
gsxdsm
c1613ad7f6
FN-7122: expose MCP servers as pi session tools
...
Connect configured MCP servers during pi chat and agent session startup so their discovered tools are available as namespaced custom tools.
- Add MCP session tool connection, tool-name sanitization, result mapping, and disposal handling.
- Merge discovered MCP tools into pi customTools while skipping readonly sessions and avoiding secret-bearing logs.
- Cover MCP tool wrapping and pi session integration with targeted tests.
- Document MCP forwarding behavior and promote the MCP SDK to an engine runtime dependency.
Files changed:
.changeset/fn-7122-mcp-session-tools.md | 7 +
docs/mcp.md | 2 +
packages/engine/package.json | 2 +-
.../engine/src/__tests__/mcp-session-tools.test.ts | 105 ++++++++
.../src/__tests__/pi-mcp-session-tools.test.ts | 24 ++
packages/engine/src/mcp-session-tools.ts | 262 ++++++++++++++++++++
packages/engine/src/pi.ts | 71 +++++-
pnpm-lock.yaml | 264 ++++++++++++++++++++-
8 files changed, 713 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-7122
Fusion-Task-Lineage: e7ff57e7-9bfb-41a4-9ebd-6c868bac2745
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 14:09:47 -07:00
gsxdsm
b1066c62cc
fix: bounce in-review tasks back for pre-merge optional-step fixes
...
A pre-merge optional step REVISE (Code Review / Browser Verification)
reopens the last plan step to pending and schedules a rerun bounce via
sendTaskBackForFix. The hosting graph run reports disposition "completed",
so the outer completion flow can route the task to in-review before the
setTimeout(0) bounce fires. performWorkflowRerunBounce previously handled
only in-progress/todo and threw on in-review ("cannot bounce to
in-progress"), stranding the task in-review with a pending step: the merge
gate blocks forever while self-healing only re-runs the graph (re-passing
the advisory step) and never re-launches the executor — a permanent
deadlock (observed on FN-7122, stuck >1h).
The bounce's only caller (sendTaskBackForFix) unconditionally intends
remediation, so in-review now bounces back to in-progress exactly like
in-progress (todo hop preserving step progress + worktree). Adds a
regression test asserting the in-review bounce returns "bounced" and
re-dispatches.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-27 14:02:34 -07:00
gsxdsm
63b44b819a
FN-7133: fix PR merge status repository lookup
...
Fix PR-mode auto-merge status checks to query GitHub with the project repository.
- Resolve the current project owner/repo once from the task cwd before PR status checks.
- Pass owner/repo/number to getPrMergeStatus for shared-group, task, and retry paths.
- Cover repository resolution and PR status argument behavior in lifecycle tests.
- Add a patch changeset for the published CLI fix.
Files changed:
.changeset/FN-7133-pr-merge-status-repo-args.md | 7 ++++
.../src/commands/__tests__/task-lifecycle.test.ts | 39 +++++++++++++++++++++-
packages/cli/src/commands/task-lifecycle.ts | 17 +++++++---
3 files changed, 58 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-7133
Fusion-Task-Lineage: 3f9bfd65-6950-40dc-9505-53140bd6a6a1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 13:28:47 -07:00
gsxdsm
7657cc6d84
feat(cli): instrument dashboard shutdown to pinpoint stalling teardown step
...
Each graceful-shutdown teardown step (dev servers, hybrid executor,
engine manager, peer exchange, mesh, central-core) now runs through
timeShutdownStep, which records the in-flight step name. A hang leaves
that name set, so the hard-exit watchdog reports the exact culprit on
stderr before force-exiting — no repro needed. Per-step timings print to
stderr under FUSION_DEBUG_SHUTDOWN=1; otherwise only steps slower than
1s are surfaced. Folds the per-step try/catch into the wrapper so a
throwing step logs and continues instead of stranding the process.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-27 13:24:57 -07:00
gsxdsm
661b6b8a47
fix(cli): guarantee TUI quit exits even if graceful shutdown stalls
...
Pressing q/Ctrl+C in the TUI routes through SIGINT so the dashboard's
graceful shutdown runs (kills dev-server process groups, engines, mesh,
central-core). That shutdown awaits several teardown steps with no
timeout, so a single hung step left process.exit(0) unreachable: the
process never exited and the still-alive dashboard kept writing output
onto the restored shell. The shutdownInProgress guard also swallowed
repeat signals, so mashing q could not escape.
Both shutdown() and devShutdown() now arm an unref'd 3s hard-exit
watchdog on the first signal and force an immediate process.exit(0) on a
second signal.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-27 13:22:28 -07:00
gsxdsm
39d20be05f
FN-7129: add per-step optional revision budgets
...
Add optional workflow-step revision budgets that can cap or unbound remediation loops.
- Add optional-group maxRevisions parsing, validation, exports, and docs.
- Expose numeric and unbounded revision budget controls in the workflow node editor.
- Apply per-step budgets in executor and self-healing fix loops with regression coverage.
Files changed:
.changeset/fn-7129-per-step-revision-budget.md | 7 ++
docs/dashboard-guide.md | 1 +
docs/settings-reference.md | 2 +-
docs/workflow-steps.md | 10 ++-
.../__tests__/workflow-ir-optional-group.test.ts | 29 ++++++-
packages/core/src/index.ts | 2 +
packages/core/src/workflow-ir-types.ts | 37 +++++++++
packages/core/src/workflow-ir.ts | 15 ++++
.../app/components/WorkflowNodeEditor.tsx | 87 ++++++++++++++++----
.../__tests__/WorkflowNodeEditor.test.tsx | 95 ++++++++++++++++++++++
packages/engine/src/__tests__/self-healing.test.ts | 63 ++++++++++++++
.../workflow-graph-optional-group.test.ts | 30 ++++++-
.../workflow-graph-optional-step-fix.test.ts | 53 ++++++++++++
packages/engine/src/executor.ts | 15 ++--
packages/engine/src/self-healing.ts | 64 +++++++++++----
packages/engine/src/workflow-graph-executor.ts | 6 +-
16 files changed, 469 insertions(+), 47 deletions(-)
Fusion-Task-Id: FN-7129
Fusion-Task-Lineage: dbde94e5-3c99-4f67-aed9-458563e845ae
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 13:05:50 -07:00
gsxdsm
c3c4216f76
FN-7132: classify task creation as a gated mutation
...
Classify fn_task_create as a task-agent mutation so permanent-agent policies can require approval or block task creation.
- Move fn_task_create out of the permanent-agent read-only tool set and into the shared task mutation classification.
- Add parity tests covering permanent-agent and action-gate decisions for fn_task_create.
- Preserve delegate and GitHub import tools as permanent-agent read-only coordination tools while documenting the distinction.
- Add a patch changeset for the published Fusion package.
Files changed:
.../fn-7132-task-create-mutation-classification.md | 7 +++
docs/agents.md | 6 +--
.../src/__tests__/gating-classifications.test.ts | 58 +++++++++++++++++++++-
.../src/__tests__/permanent-agent-gating.test.ts | 3 +-
packages/engine/src/gating-classifications.ts | 10 ++--
5 files changed, 75 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-7132
Fusion-Task-Lineage: 6e32ed9d-f0fa-46f2-a749-c5dbe863fb1f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 12:44:50 -07:00
gsxdsm
3d26d4e74b
FN-7127: standardize task show tool naming
...
Unify task-show references so planning, triage, docs, and telemetry use fn_task_show consistently.
- Replace legacy fn_task_get guidance and examples with fn_task_show across agent prompts, mission planning, triage, and docs.
- Keep fn_task_get as a deprecated read-only recognition alias for historical or in-flight calls.
- Update tests and changesets to cover the unified tool name and usage telemetry.
Files changed:
.changeset/FN-7118-shared-task-read-tools.md | 2 +-
.changeset/FN-7127-unify-task-show-tool-name.md | 7 ++++++
docs/cli-reference.md | 2 +-
docs/missions.md | 2 +-
.../cli/skill/fusion/references/engine-tools.md | 2 +-
packages/core/src/__tests__/usage-events.test.ts | 1 +
packages/core/src/agent-prompts.ts | 12 +++++-----
.../__tests__/milestone-slice-interview.test.ts | 2 +-
.../src/__tests__/mission-interview.test.ts | 2 +-
.../src/__tests__/planning-board-tools.test.ts | 6 ++---
.../dashboard/src/milestone-slice-interview.ts | 4 ++--
packages/dashboard/src/mission-interview.ts | 2 +-
packages/dashboard/src/planning-board-tools.ts | 10 +++++---
packages/dashboard/src/planning.ts | 2 +-
.../src/__tests__/agent-task-read-tools.test.ts | 28 +++++++++++++++-------
packages/engine/src/__tests__/triage.test.ts | 6 ++---
packages/engine/src/agent-tools.ts | 5 +++-
packages/engine/src/gating-classifications.ts | 8 +++++--
packages/engine/src/triage.ts | 12 ++++++----
19 files changed, 74 insertions(+), 41 deletions(-)
Fusion-Task-Id: FN-7127
Fusion-Task-Lineage: adf5a127-2741-4c88-97b3-aab239ab3960
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 12:25:53 -07:00
gsxdsm
59803c243d
FN-7123: use workflow settings for task models
...
Task model displays now resolve task-scoped workflow settings consistently with execution.
- Add a shared workflow settings overlay helper for stored workflow values and declaration defaults.
- Expose task effective settings through the dashboard API and consume them in TaskDetail model surfaces.
- Cover core overlay behavior, route output, and Workflow tab model rendering with regression tests.
- Document workflow model lane precedence and add a published package changeset.
Files changed:
.changeset/fn-7123-workflow-tab-project-model.md | 7 ++
docs/settings-reference.md | 14 ++-
.../__tests__/effective-settings-overlay.test.ts | 70 ++++++++++++++
packages/core/src/effective-settings-overlay.ts | 27 ++++++
packages/core/src/index.ts | 4 +
packages/dashboard/app/api/legacy.ts | 5 +
.../dashboard/app/components/TaskDetailModal.tsx | 13 ++-
...skDetailModal.models-progress-workflow.test.tsx | 46 +++++++++
.../__tests__/TaskDetailModal.test-helpers.ts | 1 +
.../__tests__/WorkflowResultsTab.test.tsx | 33 +++++++
packages/dashboard/app/test/mockApi.ts | 9 ++
.../task-effective-settings-route.test.ts | 107 +++++++++++++++++++++
.../src/routes/register-task-workflow-routes.ts | 21 ++++
packages/engine/src/effective-settings.ts | 25 ++---
14 files changed, 355 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-7123
Fusion-Task-Lineage: 5fa9d338-c886-44aa-bdba-0d361b3602d5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 12:20:42 -07:00
gsxdsm
a19df338ad
FN-7131: add done-task summary tab
...
Done task details now open to a read-only Summary tab before Chat.
- Add TaskSummaryTab with completion summary markdown, landed-file stats, completed steps, workflow results, and retry context.
- Default done-task detail entrypoints to Summary while preserving explicit tab selections and plugin tab typing.
- Style and localize the Summary tab, document it, and add dashboard coverage for defaulting and tab content.
- Add a minor changeset for the published CLI package.
Files changed:
.changeset/fn-7131-summary-tab.md | 7 +
docs/dashboard-guide.md | 1 +
packages/dashboard/app/App.tsx | 2 +-
.../dashboard/app/components/TaskDetailModal.css | 181 +++++++++++++++++
.../dashboard/app/components/TaskDetailModal.tsx | 63 ++++--
.../dashboard/app/components/TaskSummaryTab.tsx | 160 +++++++++++++++
.../TaskDetailModal.definition-actions.test.tsx | 56 +++---
.../__tests__/TaskDetailModal.summary-tab.test.tsx | 222 +++++++++++++++++++++
.../dashboard/app/components/dashboard/types.ts | 2 +-
.../app/hooks/__tests__/useModalManager.test.ts | 10 +-
.../dashboard/app/hooks/useMainPanelTaskDetail.ts | 9 +-
packages/dashboard/app/hooks/useModalManager.ts | 12 +-
packages/dashboard/app/plugins/types.ts | 2 +-
packages/i18n/locales/en/app.json | 16 ++
14 files changed, 687 insertions(+), 56 deletions(-)
Fusion-Task-Id: FN-7131
Fusion-Task-Lineage: e8ca4ade-9904-4705-a151-d9e55f67b398
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 12:15:42 -07:00
gsxdsm
45e27f8875
FN-7126: govern task creation with action gate
...
Task creation and delegation now honor task-agent mutation policies in action-gate evaluation.
- Classify task creation, delegation, and import tools as task_agent_mutation for action-gate policy decisions.
- Preserve permanent-agent recognition for coordination paths while documenting the split semantics.
- Update permission policy examples, regression tests, and release note metadata.
Files changed:
.changeset/fn-7126-task-create-action-gate.md | 7 +++++++
docs/agents.md | 2 +-
packages/core/src/types.ts | 2 +-
.../engine/src/__tests__/agent-action-gate.test.ts | 24 ++++++++++++++++++----
.../src/__tests__/gating-classifications.test.ts | 16 +++++++++++++--
packages/engine/src/gating-classifications.ts | 10 ++++++---
6 files changed, 50 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-7126
Fusion-Task-Lineage: 0e5d2aea-6670-4f9c-9ee8-5a135774c784
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 11:54:06 -07:00
gsxdsm
68282769e6
FN-7128: raise optional-step fix cycle budget
...
Code Review and Browser Verification now rerun through bounded fix passes until they pass.
- Raise the shared maxPostReviewFixes default and fallbacks from 1 to 3.
- Document the built-in optional-step fix cycle and release-note the operator-facing behavior.
- Update workflow graph, settings, and fallback tests for repeated optional-step remediation.
Files changed:
.changeset/fn-7128-optional-step-cycle-default.md | 7 ++
docs/settings-reference.md | 2 +-
docs/workflow-steps.md | 2 +-
.../src/__tests__/workflow-ir-settings.test.ts | 2 +-
packages/core/src/builtin-workflow-settings.ts | 8 +-
packages/core/src/types.ts | 8 +-
.../workflow-graph-optional-group.test.ts | 112 +++++++++++++++++----
.../workflow-graph-optional-step-fix.test.ts | 35 +++++++
.../workflow-settings-fallback-alignment.test.ts | 2 +-
packages/engine/src/executor.ts | 2 +-
packages/engine/src/self-healing.ts | 4 +-
11 files changed, 152 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-7128
Fusion-Task-Lineage: 8165f746-3828-453a-8ca4-8134c8d33c8f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 11:42:01 -07:00
gsxdsm
b5378d232c
FN-7124: add engine-controls popover dismiss button
...
Add an explicit dismiss affordance for the footer engine-controls popover while preserving pending slider saves.
- Add a visible, localized Close engine controls X button inside the engine-control popover.
- Flush pending project concurrency debounce writes before closing via button, Escape, outside-click, or trigger toggle.
- Cover the dismiss affordance and flush behavior with dashboard tests and docs.
- Add a patch changeset for the published CLI bundle.
Files changed:
.changeset/fn-7124-engine-controls-close.md | 6 ++
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/EngineControlMenu.css | 19 +++++
.../dashboard/app/components/EngineControlMenu.tsx | 87 +++++++++++++++++-----
.../__tests__/EngineControlMenu.test.tsx | 42 +++++++++++
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, 142 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-7124
Fusion-Task-Lineage: cdd052e7-d4f1-4d4e-8348-002f7702a170
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 11:27:17 -07:00
gsxdsm
cb6838a63f
FN-7125: add artifact route image integration coverage
...
Add integration coverage for task image artifacts flowing through the artifacts API.
- Add a real TaskStore-backed artifacts route integration test.
- Assert registered task image artifacts list with task metadata.
- Assert image media streams the registered bytes and content type.
- Cover empty task-scoped artifact listings.
Files changed:
.../__tests__/artifacts-route-integration.test.ts | 98 ++++++++++++++++++++++
1 file changed, 98 insertions(+)
Fusion-Task-Id: FN-7125
Fusion-Task-Lineage: d79ccc2e-0819-4304-a757-c9d6a2aabb77
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 11:22:21 -07:00
gsxdsm
c15d1294eb
FN-7115: expose governed heartbeat workflow tools
...
Expose the missing governed workflow and promotion tools to heartbeat agent sessions.\n\n- Add workflow authoring/settings, research cancellation, and task promotion/select tools to the shared heartbeat work surface.\n- Keep task-read discovery and executor-only worktree tools correctly scoped while documenting the heartbeat lane surface.\n- Cover tool injection, permission-gate behavior, and workflow factory exposure with regression tests.\n\nFiles changed:\n .changeset/FN-7115-heartbeat-tool-injection.md | 7 ++\n docs/agents.md | 6 +-\n .../engine/src/__tests__/agent-action-gate.test.ts | 86 +++++++++++++++++++++-\n .../agent-workflow-tools-exposure.test.ts | 16 ++--\n .../src/__tests__/heartbeat-executor.test.ts | 31 +++++---\n .../src/__tests__/heartbeat-session-prompt.test.ts | 69 ++++++++++++++++-\n packages/engine/src/agent-heartbeat.ts | 22 ++++--\n 7 files changed, 207 insertions(+), 30 deletions(-)
Fusion-Task-Id: FN-7115
Fusion-Task-Lineage: 0883767b-7982-4f10-a466-1467b867dea1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 11:17:03 -07:00
gsxdsm
8f0f020caa
FN-7118: add shared task read tool factories
...
Add reusable heartbeat-safe task read tools for agents.\n\n- Add shared fn_task_list, fn_task_show, and fn_task_search factories with text-safe formatting.\n- Wire the task read tools into permanent/custom heartbeat work tooling and prompts.\n- Classify task read surfaces as read-only coordination exemptions and export the factories.\n- Cover cross-surface task read behavior with engine tests and document the agent surface.\n\nFiles changed:\n .changeset/FN-7118-shared-task-read-tools.md | 7 +\n docs/agents.md | 2 +-\n .../src/__tests__/agent-task-read-tools.test.ts | 160 ++++++++++++++++++++\n .../src/__tests__/gating-classifications.test.ts | 15 ++\n .../src/__tests__/heartbeat-executor.test.ts | 31 ++--\n .../src/__tests__/heartbeat-session-prompt.test.ts | 8 +-\n packages/engine/src/agent-heartbeat.ts | 16 +-\n packages/engine/src/agent-tools.ts | 161 ++++++++++++++++++++-\n packages/engine/src/gating-classifications.ts | 11 ++\n packages/engine/src/index.ts | 7 +\n 10 files changed, 396 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-7118
Fusion-Task-Lineage: 89a5b3a2-9295-435f-8bb9-f66f8ec73cc1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 11:08:09 -07:00
gsxdsm
5ab4a5961c
FN-7119: rescue quarantined engine and CLI tests
...
Restore quarantined scheduler/reliability coverage while preserving override column-agent model selection.
- remove rescued engine and CLI tests from quarantine configs and the ledger
- add scheduler fake updateSettings coverage so heartbeat writes do not skew call-count assertions
- preserve override column-agent runtime models during initial execution and mid-flight task edits
- update the stale user-configured command guard registry and add a patch changeset
Files changed:
.changeset/fn-7119-column-agent-model.md | 7 +++
docs/testing.md | 2 +
packages/cli/vitest.config.ts | 6 +-
.../executor-column-agent-principal.test.ts | 34 +++++++++-
.../lease-recovery-central-claim.test.ts | 5 ++
.../owning-node-unavailable-interactions.test.ts | 5 ++
.../todo-inprogress-flapping.test.ts | 5 ++
.../src/__tests__/restart.integration.test.ts | 8 +++
.../__tests__/scheduler-ephemeral-toggle.test.ts | 5 ++
.../scheduler-node-unreachable-audit.test.ts | 5 ++
.../__tests__/scheduler-overlap-starvation.test.ts | 5 ++
.../user-configured-command-no-execsync.test.ts | 12 +---
packages/engine/src/executor.ts | 18 ++++--
packages/engine/vitest.config.ts | 26 +++-----
scripts/lib/test-quarantine.json | 73 +---------------------
15 files changed, 106 insertions(+), 110 deletions(-)
Fusion-Task-Id: FN-7119
Fusion-Task-Lineage: 7dc033c8-29d1-4c0e-bfc1-b0ff0d325f43
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 10:50:33 -07:00
gsxdsm
92436d031b
FN-7120: add mobile New Chat switcher action
...
Adds a mobile direct-chat shortcut for starting a new chat from the session switcher.
- Add a New Chat menuitem to the mobile direct-chat session dropdown using the existing NewChatDialog flow.
- Style the new mobile switcher action with touch-friendly spacing and focus handling.
- Extend mobile ChatView tests and docs, and add a changeset for the published CLI package.
Files changed:
.changeset/fn-7120-mobile-new-chat.md | 7 ++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.css | 31 ++++++
packages/dashboard/app/components/ChatView.tsx | 17 +++
.../components/__tests__/ChatView.mobile.test.tsx | 115 +++++++++++++++++++--
5 files changed, 162 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-7120
Fusion-Task-Lineage: 5d066667-20c1-4015-9b84-a9e558eecd48
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 10:45:31 -07:00
gsxdsm
e909d41fed
FN-7116: suppress transient footer connecting flashes
...
Keep executor footer stats stable through a one-off suspension-like fetch blip.
- Debounce transient executor stats failures after a successful poll while retaining last-good stats.
- Preserve explicit error reporting for first-load, non-transient, and sustained failures.
- Cover desktop and mobile footer behavior plus hook retry and visibility-resume cases.
- Document the footer behavior and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7116-footer-connecting-flash.md | 7 ++
docs/dashboard-guide.md | 2 +
.../__tests__/ExecutorStatusBar.test.tsx | 24 +++-
.../app/hooks/__tests__/useExecutorStats.test.ts | 132 ++++++++++++++++++++-
packages/dashboard/app/hooks/useExecutorStats.ts | 24 +++-
5 files changed, 179 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-7116
Fusion-Task-Lineage: 617b91a3-3d7c-42f1-8a44-ba3245eaf0dc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 10:38:23 -07:00
gsxdsm
368f1e0e45
FN-7117: show all token models in Command Center
...
Show full-fidelity model token breakdowns in Command Center while keeping Overview compact.
- Remove the Tokens detail chart cap so bars, pies, and tables include every analytics model bucket.
- Keep Overview model summaries explicitly limited to the top consumers with a named cap.
- Add dashboard coverage and docs for full Tokens attribution versus Overview summaries.
- Add a patch changeset for the published CLI bundle.
Files changed:
.changeset/fn-7117-tokens-by-model.md | 7 ++
docs/dashboard-guide.md | 5 +-
.../components/command-center/CommandCenter.tsx | 8 ++-
.../__tests__/CommandCenter.test.tsx | 78 +++++++++++++++++++++-
.../components/command-center/areas/TokensArea.tsx | 38 ++++++-----
.../areas/__tests__/TokensArea.test.tsx | 68 +++++++++++++++++++
6 files changed, 182 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-7117
Fusion-Task-Lineage: 7bf4c090-1054-40d0-97bf-e0e495077af5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 10:34:15 -07:00
gsxdsm
c61217e71a
FN-7121: show queued chat previews above composer
...
Show queued Chat messages above the composer with a clear divider and covered placement behavior.
- Move the queued-message indicator out of the textarea wrapper so it spans above the input row.
- Add divider styling and responsive pending-message alignment for the composer.
- Extend ChatView coverage for placement, dismissal, and divider removal.
- Document the queued-message preview behavior and add a patch changeset.
Files changed:
.changeset/fn-7121-queued-message-above-input.md | 7 ++++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.css | 19 +++++++++--
packages/dashboard/app/components/ChatView.tsx | 35 ++++++++++++--------
.../__tests__/ChatView.core-interactions.test.tsx | 37 +++++++++++++++++++---
5 files changed, 77 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-7121
Fusion-Task-Lineage: b5cb0577-ca4e-459b-9b9e-5c60efd7bdfd
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 10:29:36 -07:00
gsxdsm
9511880525
Add MCP to gitignore
2026-06-27 10:23:27 -07:00
gsxdsm
e1dba3fcc9
FN-7113: validate workflow graph integrity before execution
...
Reject malformed workflow graphs at save and run boundaries.
- Add central IR validation for duplicate top-level node ids, unregistered extension keys, and unreachable required nodes.
- Re-validate resolved workflow IR in the graph runner before side effects and fail closed on invalid graphs.
- Expand graph integrity tests and document save/run validation behavior with a release changeset.
Files changed:
.changeset/FN-7113-workflow-graph-integrity.md | 7 +
docs/custom-workflow-reliability-acceptance-map.md | 7 +-
docs/workflow-steps.md | 20 +++
.../workflow-ir-extension-metadata.test.ts | 49 ++++++-
packages/core/src/__tests__/workflow-ir.test.ts | 106 +++++++++++++++-
packages/core/src/workflow-ir.ts | 51 +++++++-
.../__tests__/workflow-graph-task-runner.test.ts | 141 +++++++++++++++++----
packages/engine/src/workflow-graph-task-runner.ts | 46 +++++--
8 files changed, 386 insertions(+), 41 deletions(-)
Fusion-Task-Id: FN-7113
Fusion-Task-Lineage: f41e0d81-7cdf-497a-96ab-fe42504d0be4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:31 -07:00
gsxdsm
9fc68bc350
FN-7114: speed up insights route tests
...
Optimize the insights route test harness by avoiding full server and engine graph imports.
- Mount the insights router in a lightweight Express app for the suite.
- Mock only the engine exports consumed by the router.
- Preserve route error payload assertions while keeping the shared store reset isolation.
Files changed:
.../src/__tests__/insights-routes.test.ts | 41 +++++++++++++---------
1 file changed, 25 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-7114
Fusion-Task-Lineage: 93c5616a-7e28-4062-aac7-8ca030a3a420
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:31 -07:00
gsxdsm
56b4664df9
FN-7112: normalize pi-claude-cli requirement comments
...
Normalize pi-claude-cli requirement comments to the FNXC convention.\n\n- Convert ACP bridge and CLI validation requirement notes to FNXC-prefixed JSDoc comments.\n- Update inline ACP bridge comments to include dated FNXC context without changing behavior.\n\nFiles changed:\n packages/pi-claude-cli/index.ts | 28 ++++++++++++----------------\n 1 file changed, 12 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-7112
Fusion-Task-Lineage: 970a9ebc-2c8f-4481-9e2b-c1c3fcf5cc24
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:31 -07:00
gsxdsm
2b9e383e18
FN-7111: classify heartbeat tool parity gaps
...
Classify remaining heartbeat-agent tool gaps so permission gates enforce mutating and network behaviors consistently.
- Add shared classifications for workflow mutators, task update/promote/refine, verification/worktree acquisition, and research cancellation.
- Apply command-execution classifications in both action-gate and permanent-agent gating paths.
- Update operator docs, permission-policy examples, parity tests, and the published package changeset.
Files changed:
.changeset/FN-7111-tool-classification-parity.md | 7 ++
docs/agents.md | 8 +-
packages/core/src/types.ts | 12 ++-
.../engine/src/__tests__/agent-action-gate.test.ts | 11 ++-
.../src/__tests__/gating-classifications.test.ts | 93 +++++++++++++++++++++-
.../src/__tests__/permanent-agent-gating.test.ts | 44 ++++++++++
packages/engine/src/agent-action-gate.ts | 6 ++
packages/engine/src/gating-classifications.ts | 36 ++++++++-
packages/engine/src/permanent-agent-gating.ts | 5 ++
9 files changed, 206 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-7111
Fusion-Task-Lineage: d2f5ee71-c742-4f10-af55-fec380f08f64
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:31 -07:00
gsxdsm
1a30ddd6e8
FN-7108: broaden heartbeat agent tool access
...
Heartbeat agents now receive safe coordination and discovery tools while risky calls remain permission-gated.
- Add shared heartbeat workflow, research, and clarification tools for task-scoped and no-task runs.
- Give no-task permanent agents artifact registry access alongside existing delegation, messaging, memory, goal, and identity tools.
- Cover the expanded tool surface and action-gate behavior with heartbeat and permission-policy tests.
- Document the permission-governed heartbeat tool model and add a minor changeset.
Files changed:
.changeset/FN-7108-agent-tool-access.md | 7 ++
docs/agents.md | 9 ++-
.../src/__tests__/heartbeat-executor.test.ts | 24 +++---
.../src/__tests__/heartbeat-session-prompt.test.ts | 89 +++++++++++++++++++++-
.../src/__tests__/pi-create-fn-agent.test.ts | 67 ++++++++++++++++
packages/engine/src/agent-heartbeat.ts | 41 +++++++++-
6 files changed, 221 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-7108
Fusion-Task-Lineage: 83302055-72be-47f8-a41d-70164d12f010
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:31 -07:00
gsxdsm
c17d745665
FN-7109: notify operators when CLI agents await input
...
Notify external providers when terminal-backed CLI agents pause for tool permission or user input.
- Add a dedicated cli-agent-awaiting-input notification event to settings, schema defaults, dashboard options, and provider tests.
- Dispatch CLI-agent waiting-on-input notifications from the in-process runtime with task context and prompt-scoped dedupe keys.
- Document the operator behavior and add a published package changeset for the new notification surface.
Files changed:
.changeset/fn-7109-cli-agent-notification.md | 7 ++
docs/agents.md | 4 +
docs/settings-reference.md | 4 +-
.../cli-agent-permission-notifications.md | 13 +++
.../core/src/__tests__/global-settings.test.ts | 1 +
packages/core/src/settings-schema.ts | 1 +
packages/core/src/types.ts | 6 ++
.../SettingsModal.remote-notifications.test.tsx | 1 +
.../components/__tests__/settings-mobile.test.tsx | 2 +-
.../settings/sections/NotificationsSection.tsx | 3 +
.../src/__tests__/in-process-runtime.test.ts | 56 ++++++++++-
packages/engine/src/__tests__/notifier.test.ts | 6 +-
.../engine/src/__tests__/ntfy-provider.test.ts | 4 +
.../engine/src/__tests__/webhook-provider.test.ts | 2 +
.../engine/src/cli-agent/__tests__/runtime.test.ts | 39 +++++++-
.../__tests__/notification-service.test.ts | 56 ++++++++++-
.../src/notification/notification-service.ts | 9 +-
packages/engine/src/notification/ntfy-provider.ts | 7 ++
.../engine/src/notification/webhook-provider.ts | 2 +
packages/engine/src/notifier.ts | 1 +
packages/engine/src/runtimes/in-process-runtime.ts | 111 +++++++++++++++++++++
21 files changed, 326 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-7109
Fusion-Task-Lineage: 636c1875-92a2-46a7-847e-1f4955c0822f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:31 -07:00
gsxdsm
e687ff3700
FN-7110: assert normalized CE skill requests
...
Update CE workflow-step convention coverage for normalized skill request matching.
- Refresh the U1 test narrative around requestedSkillMatchKey normalization.
- Assert namespaced, slash, SKILL.md-suffixed, mixed-case, and dual CE skill requests resolve once.
- Keep negative coverage for requests when the CE install directory is not discoverable.
Files changed:
.../__tests__/ce-workflow-step-conventions.test.ts | 85 ++++++++++++----------
1 file changed, 47 insertions(+), 38 deletions(-)
Fusion-Task-Id: FN-7110
Fusion-Task-Lineage: 807649db-6c61-4c1e-9b04-28257992eb21
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:30 -07:00
gsxdsm
04f8fe5d59
FN-7107: load CE stage skills for interactive sessions
...
Ensure Compound Engineering stages request and expose their registered skills when launching interactive sessions.
- Add plugin-local skill resolution checks that warn when a stage skill install is missing.
- Pass a stable additional skill path and requested stage skill into every CE interactive session.
- Add coverage for stage skill loading options and update skill reachability expectations.
Files changed:
...d-skills-not-loading-in-interactive-sessions.md | 1 +
.../src/__tests__/skill-reachability.test.ts | 71 +++++++++++++---------
.../src/__tests__/stage-skill-loading.test.ts | 69 +++++++++++++++++++++
.../src/session/orchestrator.ts | 48 ++++++++++++++-
4 files changed, 157 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-7107
Fusion-Task-Lineage: 0504e9ba-c2e7-4317-9c90-55693baf8170
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:30 -07:00
gsxdsm
f42b49ab2d
FN-7105: add CI print-mode regression guard
...
Add regression coverage ensuring CI=true no longer forces test-changed into full-suite mode.
- Add a reusable --print-mode subprocess helper for synthetic test-changed repositories.
- Seed the synthetic repo with changeset config so mode decisions match workspace expectations.
- Assert CI=true stays in gate or changed mode while --full and FUSION_TEST_FULL still select full mode.
Files changed:
scripts/__tests__/test-changed.test.mjs | 54 +++++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
Fusion-Task-Id: FN-7105
Fusion-Task-Lineage: f4a26d96-3992-4f25-a456-04f2b9b8a4dc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:30 -07:00
gsxdsm
9843f2e772
FN-7104: Align ce-brainstorm durable artifact references
...
Keep bundled ce-brainstorm guidance aligned with docs/plans as the durable planning artifact.
- Update the visual probe reference to name docs/plans as the durable artifact.
- Add a recursive skill-content guard that prevents docs/brainstorms from being described as new or durable output.
- Assert legacy docs/brainstorms wording remains limited to ce-plan inputs.
Files changed:
.../__tests__/skill-content-alias-guard.test.ts | 85 ++++++++++++++++++++++
.../ce-brainstorm/references/visual-probes.md | 2 +-
2 files changed, 86 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7104
Fusion-Task-Lineage: dd26a511-816d-479c-99ac-7cfec2b96bd4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:30 -07:00
gsxdsm
b69dd8eb14
FN-7103: alias brainstorm artifacts to unified plans
...
Compound Engineering now treats brainstorm output as the requirements-only form of unified plan artifacts.
- Point the brainstorm stage at docs/plans while keeping the existing stage and skill identifiers for compatibility.
- Surface CE plan frontmatter metadata during artifact discovery and reading.
- Harden CE artifact discovery against symlink escapes for conventional artifact paths.
- Update docs, tests, and changeset coverage for the unified brainstorm/plan artifact flow.
Files changed:
.changeset/fn-7103-ce-plan-alias.md | 7 ++
docs/plugins/compound-engineering.md | 21 +++-
.../fusion-plugin-compound-engineering/README.md | 36 ++++--
.../orchestrator-interrupt-resume.test.ts | 8 +-
.../src/__tests__/session-store.test.ts | 38 ++++++
.../src/__tests__/stage-registry.test.ts | 18 +++
.../src/__tests__/sync.test.ts | 36 +++++-
.../src/artifacts/__tests__/discovery.test.ts | 133 +++++++++++++++++++-
.../src/artifacts/discovery.ts | 136 +++++++++++++++++++--
.../src/session/stage-registry.ts | 10 +-
.../src/sync/reconciler.ts | 2 +-
11 files changed, 413 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-7103
Fusion-Task-Lineage: 284a5c5c-40f7-44b2-8e3e-1de671dde36a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:30 -07:00
gsxdsm
28cdd1c215
FN-7099: add project plan approval mode
...
Add a project-wide plan approval mode that can override workflow approval gates.
- Add core plan approval resolution for workflow, auto-approve-all, and require-all modes.
- Apply the resolved approval mode in triage recovery and planning finalization.
- Expose the mode in settings UI with translations, docs, tests, and a changeset.
Files changed:
.changeset/fn-7099-plan-approval-mode.md | 7 +++
docs/settings-reference.md | 3 +-
docs/storage.md | 5 +-
packages/core/src/__tests__/plan-approval.test.ts | 37 ++++++++++++++
packages/core/src/index.ts | 2 +
packages/core/src/plan-approval.ts | 21 ++++++++
packages/core/src/settings-schema.ts | 3 +-
packages/core/src/types.ts | 5 ++
.../dashboard/app/components/SettingsModal.tsx | 1 +
.../SettingsModal.scheduling-merge.test.tsx | 17 +++++++
.../__tests__/SettingsModal.test-harness.tsx | 1 +
.../components/settings/sections/MergeSection.tsx | 19 +++++++
.../MergeSection.legacy-automerge-cleanup.test.tsx | 23 ++++++++-
packages/engine/src/__tests__/triage.test.ts | 58 ++++++++++++++++++++++
packages/engine/src/triage.ts | 10 +++-
packages/i18n/locales/en/app.json | 5 ++
packages/i18n/src/resources.d.ts | 5 ++
17 files changed, 215 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-7099
Fusion-Task-Lineage: 8b276000-1df3-41e4-a94d-724aac559954
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:30 -07:00
gsxdsm
9e2fb5d62c
FN-7102: count active triage planners in project health
...
Align project health in-flight readouts with live agent slot holders.\n\n- Count non-paused triage planning tasks alongside in-progress executors for dashboard health and CLI project displays.\n- Keep persisted projectHealth.inFlightAgentCount as bookkeeping while deriving user-facing counts from live task state.\n- Cover CLI and dashboard health routes for paused, inactive, and per-project triage planner cases.\n- Document the live count behavior and add a patch changeset.\n\nFiles changed:\n .changeset/fn-7102-health-triage-inflight.md | 7 +++\n docs/cli-reference.md | 2 +\n docs/multi-project.md | 4 +-\n .../cli/src/commands/__tests__/project.test.ts | 59 +++++++++++++++---\n packages/cli/src/commands/project.ts | 35 +++++++----\n packages/cli/src/project-resolver.ts | 17 ++++--\n packages/core/src/types.ts | 4 +-\n .../dashboard/src/__tests__/project-routes.test.ts | 71 ++++++++++++++++++----\n .../src/routes/register-project-routes.ts | 9 ++-\n 9 files changed, 163 insertions(+), 45 deletions(-)
Fusion-Task-Id: FN-7102
Fusion-Task-Lineage: ebcba74c-238d-4ca7-aa77-df0d329c0ea9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:30 -07:00
gsxdsm
5899dca4f8
FN-7094: update Compound Engineering plugin to v3.15.0
...
Update the Compound Engineering plugin content and installers to the upstream v3.15.0 release.
- Refresh bundled Compound Engineering agents, skills, references, and helper scripts from upstream v3.15.0.
- Add upstream provenance metadata and regression coverage for provenance, agent installation, and skill installation behavior.
- Update plugin registration and installer logic to expose the expanded agent and skill catalog.
Files changed:
.../fusion-plugin-compound-engineering/README.md | 18 +-
.../src/__tests__/agent-installation.test.ts | 16 +-
.../src/__tests__/skill-installation.test.ts | 19 +-
.../src/__tests__/upstream-provenance.test.ts | 62 ++
.../src/agent-installation.ts | 66 +-
.../src/agents/ce-adversarial-document-reviewer.md | 12 +-
.../src/agents/ce-adversarial-reviewer.md | 12 +-
.../agents/ce-agent-native-planning-strategist.md | 71 ++
.../src/agents/ce-best-practices-researcher.md | 23 +-
.../src/agents/ce-data-integrity-guardian.md | 4 +
.../src/agents/ce-deployment-verification-agent.md | 4 +
.../src/agents/ce-figma-design-sync.md | 4 +-
.../src/agents/ce-framework-docs-researcher.md | 4 +
.../src/agents/ce-git-history-analyzer.md | 2 +-
.../src/agents/ce-issue-intelligence-analyst.md | 9 +-
.../src/agents/ce-learnings-researcher.md | 16 +-
.../agents/ce-pattern-recognition-specialist.md | 4 +
.../src/agents/ce-performance-oracle.md | 4 +
.../src/agents/ce-pr-comment-resolver.md | 120 +--
.../src/agents/ce-product-lens-reviewer.md | 2 +-
.../src/agents/ce-project-standards-reviewer.md | 8 +-
.../src/agents/ce-repo-research-analyst.md | 6 +-
.../src/agents/ce-scope-guardian-reviewer.md | 6 +-
.../src/agents/ce-security-lens-reviewer.md | 2 +-
.../src/agents/ce-security-sentinel.md | 4 +
.../src/agents/ce-session-historian.md | 14 +-
.../src/agents/ce-slack-researcher.md | 25 +-
.../src/agents/ce-web-researcher.md | 13 +-
.../src/index.ts | 15 +-
.../src/skill-installation.ts | 69 +-
.../src/skills/ce-brainstorm/SKILL.md | 125 ++-
.../references/agents/slack-researcher.md | 127 +++
.../references/brainstorm-sections.md | 161 +++-
.../src/skills/ce-brainstorm/references/handoff.md | 114 ++-
.../ce-brainstorm/references/html-rendering.md | 253 ++++--
.../ce-brainstorm/references/markdown-rendering.md | 55 +-
.../ce-brainstorm/references/synthesis-summary.md | 30 +-
.../references/universal-brainstorming.md | 14 +-
.../ce-brainstorm/references/visual-probes.md | 128 +++
.../ce-brainstorm/scripts/visual-probe-server.js | 419 ++++++++++
.../src/skills/ce-code-review/SKILL.md | 921 ++++++++++-----------
.../references/action-class-rubric.md | 26 +
.../references/cross-model-review.md | 63 ++
.../skills/ce-code-review/references/diff-scope.md | 12 +-
.../ce-code-review/references/findings-schema.json | 26 +-
.../ce-code-review/references/persona-catalog.md | 54 +-
.../references/personas/adversarial-reviewer.md | 102 +++
.../references/personas/agent-native-reviewer.md | 173 ++++
.../references/personas/api-contract-reviewer.md | 43 +
.../references/personas/correctness-reviewer.md | 43 +
.../references/personas/data-migration-reviewer.md | 111 +++
.../personas/deployment-verification-agent.md | 157 ++++
.../personas/julik-frontend-races-reviewer.md | 44 +
.../references/personas/learnings-researcher.md | 247 ++++++
.../personas/maintainability-reviewer.md | 68 ++
.../references/personas/performance-reviewer.md | 45 +
.../personas/previous-comments-reviewer.md | 59 ++
.../personas/project-standards-reviewer.md | 75 ++
.../references/personas/reliability-reviewer.md | 43 +
.../references/personas/security-reviewer.md | 45 +
.../references/personas/swift-ios-reviewer.md | 99 +++
.../references/personas/testing-reviewer.md | 43 +
.../references/review-output-template.md | 117 +--
.../ce-code-review/references/subagent-template.md | 51 +-
.../references/validator-template.md | 6 +-
.../scripts/cross-model-adversarial-review.sh | 218 +++++
.../src/skills/ce-commit-push-pr/SKILL.md | 19 +-
.../references/pr-description-writing.md | 2 +-
.../src/skills/ce-commit/SKILL.md | 4 +-
.../src/skills/ce-compound/SKILL.md | 164 +++-
.../references/agents/best-practices-researcher.md | 115 +++
.../references/agents/data-integrity-guardian.md | 68 ++
.../references/agents/framework-docs-researcher.md | 93 +++
.../agents/pattern-recognition-specialist.md | 55 ++
.../references/agents/performance-oracle.md | 108 +++
.../references/agents/security-sentinel.md | 91 ++
.../references/agents/session-historian.md | 83 ++
.../scripts/session-history/discover-sessions.sh | 130 +++
.../scripts/session-history/extract-errors.py | 254 ++++++
.../scripts/session-history/extract-metadata.py | 456 ++++++++++
.../scripts/session-history/extract-skeleton.py | 570 +++++++++++++
.../src/skills/ce-debug/SKILL.md | 286 +++++--
.../skills/ce-debug/references/anti-patterns.md | 91 ++
.../skills/ce-debug/references/defense-in-depth.md | 35 +
.../references/investigation-techniques.md | 374 +++++++++
.../src/skills/ce-ideate/SKILL.md | 223 ++---
.../agents/issue-intelligence-analyst.md | 200 +++++
.../references/agents/learnings-researcher.md | 247 ++++++
.../references/agents/slack-researcher.md | 127 +++
.../ce-ideate/references/agents/web-researcher.md | 121 +++
.../ce-ideate/references/divergent-ideation.md | 89 ++
.../skills/ce-ideate/references/html-rendering.md | 631 ++++++++++++++
.../ce-ideate/references/ideation-sections.md | 191 +++++
.../ce-ideate/references/markdown-rendering.md | 236 ++++++
.../ce-ideate/references/post-ideation-workflow.md | 246 ++----
.../ce-ideate/references/universal-ideation.md | 24 +-
.../src/skills/ce-plan/SKILL.md | 171 ++--
.../agents/agent-native-planning-strategist.md | 62 ++
.../references/agents/architecture-strategist.md | 46 +
.../references/agents/best-practices-researcher.md | 114 +++
.../references/agents/data-integrity-guardian.md | 68 ++
.../references/agents/data-migration-reviewer.md | 103 +++
.../agents/deployment-verification-agent.md | 157 ++++
.../references/agents/framework-docs-researcher.md | 93 +++
.../references/agents/git-history-analyzer.md | 40 +
.../references/agents/learnings-researcher.md | 247 ++++++
.../agents/pattern-recognition-specialist.md | 55 ++
.../references/agents/performance-oracle.md | 108 +++
.../references/agents/repo-research-analyst.md | 256 ++++++
.../ce-plan/references/agents/security-sentinel.md | 91 ++
.../ce-plan/references/agents/slack-researcher.md | 127 +++
.../references/agents/spec-flow-analyzer.md | 80 ++
.../ce-plan/references/agents/web-researcher.md | 121 +++
.../skills/ce-plan/references/approach-altitude.md | 55 ++
.../ce-plan/references/deepening-workflow.md | 68 +-
.../skills/ce-plan/references/html-rendering.md | 253 ++++--
.../ce-plan/references/markdown-rendering.md | 55 +-
.../src/skills/ce-plan/references/plan-handoff.md | 81 +-
.../src/skills/ce-plan/references/plan-sections.md | 231 +++++-
.../skills/ce-plan/references/synthesis-summary.md | 28 +-
.../ce-plan/references/universal-planning.md | 9 +-
.../src/skills/ce-resolve-pr-feedback/SKILL.md | 12 +-
.../references/agents/pr-comment-resolver.md | 56 ++
.../references/evaluation-rubric.md | 106 +++
.../ce-resolve-pr-feedback/references/full-mode.md | 207 ++---
.../references/targeted-mode.md | 24 +-
.../ce-resolve-pr-feedback/scripts/get-pr-comments | 13 +-
.../scripts/get-thread-for-comment | 11 +-
.../src/skills/ce-strategy/SKILL.md | 4 +-
.../src/skills/ce-work/SKILL.md | 191 +++--
.../ce-work/references/agents/figma-design-sync.md | 165 ++++
.../skills/ce-work/references/execution-engines.md | 85 ++
.../ce-work/references/non-code-execution.md | 23 +
.../ce-work/references/review-findings-followup.md | 104 +++
.../skills/ce-work/references/shipping-workflow.md | 89 +-
.../src/skills/ce-work/references/tracker-defer.md | 16 +-
.../src/upstream-provenance.ts | 15 +
137 files changed, 12130 insertions(+), 1994 deletions(-)
Fusion-Task-Id: FN-7094
Fusion-Task-Lineage: 85df8f84-86f1-496a-953a-e4cf5a9da596
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:30 -07:00
gsxdsm
674031b7f2
FN-7101: stabilize App deep-link history state
...
Reset App deep-link test history state around replaceState stubs so full-file order no longer leaks navigation state.
- Reset the real browser history snapshot before stubbing replaceState.
- Restore replaceState before cleanup so history state and URL are reset through the original implementation.
- Document why deep-link tests must clear navIndex between mounts.
Files changed:
packages/dashboard/app/components/__tests__/App.test.tsx | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7101
Fusion-Task-Lineage: 5c44441f-f0d2-4ad3-bdcf-5a0a0e3e6e6f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:30 -07:00
gsxdsm
a8f51e9423
FN-7098: clarify prompt settings ownership
...
Clarify where Settings and Workflow Editor prompt editing responsibilities live.
- Add explanatory Prompts settings copy and a Workflow Editor navigation affordance.
- Thread the workflow settings opener into the Prompts section while keeping agent prompt tabs available.
- Document prompt ownership and add regression coverage for the new Prompts section behavior.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7098-prompts-workflow-alignment.md | 7 ++
docs/settings-reference.md | 11 +-
.../dashboard/app/components/SettingsModal.tsx | 9 +-
.../__tests__/SettingsModal.prompts.test.tsx | 118 +++++++++++++++++++++
.../settings/sections/PromptsSection.tsx | 23 +++-
5 files changed, 164 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-7098
Fusion-Task-Lineage: 57ac1f1b-77f8-4180-abe9-f6752768b17b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:29 -07:00
gsxdsm
f34b62cef9
FN-7097: count triage planners in running agents
...
Include active triage planners in live running-agent counts so global concurrency readouts match slot usage.
- Count unpaused triage tasks with planning status alongside in-progress tasks.
- Add resolver coverage for triage-only, mixed, and multi-project running-agent counts.
- Document that concurrency readouts include active triage planners and add a patch changeset.
Files changed:
.changeset/fn-7097-triage-running-count.md | 7 +++
docs/dashboard-guide.md | 3 +-
docs/multi-project.md | 3 +-
.../src/__tests__/project-store-resolver.test.ts | 73 ++++++++++++++++++++--
packages/dashboard/src/project-store-resolver.ts | 11 +++-
5 files changed, 87 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-7097
Fusion-Task-Lineage: 705daf65-0883-40cd-b620-3be8c0f38543
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:29 -07:00
gsxdsm
c2f8026d7a
FN-7091: recover messaging index corruption on send
...
Repair the messaging send path when SQLite reports corrupt messages-table indexes despite quick_check passing.
- Detect SQLite corruption errors from codes, names, and messages instead of only FTS5 text.
- Add a scoped REINDEX messages repair and single retry around message inserts.
- Return actionable repair guidance when reindexing or the retry still fails.
- Cover send recovery and corruption classification with regression tests, plus a patch changeset.
Files changed:
.changeset/fn-7091-messaging-corruption-recovery.md | 7 ++
packages/core/src/__tests__/db.test.ts | 38 ++++++++
packages/core/src/__tests__/message-store.test.ts | 100 +++++++++++++++++++++
packages/core/src/db.ts | 43 +++++++--
packages/core/src/message-store.ts | 81 ++++++++++++++---
5 files changed, 251 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-7091
Fusion-Task-Lineage: 47bcbe17-b428-4702-9835-59cb9e6ec164
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:29 -07:00
gsxdsm
ee3a06ecfd
FN-7095: add actionable backup failure details
...
Database Backup automation failures now expose the affected database, paths, and root cause.
- Add DB-qualified error formatting for project and central backup creation, verification, schedule validation, and command failures.
- Normalize routine and cron in-process backup failures so empty or opaque errors become actionable AutomationRunResult errors.
- Cover missing database files, backup directory failures, central copy failures, corrupt backup quarantine, and runner normalization with regression tests.
- Document backup failure detail behavior and add a patch changeset.
Files changed:
.changeset/fn-7095-backup-detail.md | 7 ++
docs/storage.md | 2 +
packages/core/src/__tests__/backup.test.ts | 114 ++++++++++++++++++++-
packages/core/src/backup.ts | 112 +++++++++++++++-----
packages/engine/src/__tests__/cron-runner.test.ts | 35 +++++++
.../engine/src/__tests__/routine-runner.test.ts | 45 ++++++++-
packages/engine/src/cron-runner.ts | 20 +++-
packages/engine/src/routine-runner.ts | 20 +++-
8 files changed, 324 insertions(+), 31 deletions(-)
Fusion-Task-Id: FN-7095
Fusion-Task-Lineage: 368e3edf-20d3-4756-97be-75734dbff703
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:29 -07:00