Fusion Agent
10c399d01e
FN-120: fix workspace review evidence and landing recovery
...
Harden workspace review evidence and automatic landing recovery across workflow execution and merge paths.
- Preserve per-repository review evidence and reroute recoverable workspace review failures.
- Improve workflow lifecycle validation, continuation handling, and automatic recovery for workspace landing.
- Add regression coverage and document the updated workspace behavior.
Files changed:
.changeset/fn-120-workspace-review-landing.md | 7 ++
docs/architecture.md | 4 +
...e-empty-merge-boundary-finalization-livelock.md | 4 +
docs/testing.md | 4 +
docs/workflow-steps.md | 4 +
docs/workspaces.md | 6 +
.../__tests__/builtin-coding-workflow-ir.test.ts | 11 +-
...workspace-worktrees-concurrent-merge.pg.test.ts | 20 +++
packages/core/src/db/legacy-adoption.ts | 4 +
packages/core/src/store.ts | 5 +-
.../task-store/async/async-workflow-workitems.ts | 21 ++++
packages/core/src/task-store/task-mutation-ops.ts | 20 ++-
.../src/task-store/workflow-workitems-ops-2.ts | 6 +-
.../workflows/builtin-coding-ideas-workflow-ir.ts | 9 +-
.../src/workflows/builtin-coding-workflow-ir.ts | 20 ++-
.../builtin-stepwise-coding-workflow-ir.ts | 21 +++-
...tin-stepwise-final-review-coding-workflow-ir.ts | 13 +-
.../src/workflows/workflow-lifecycle-validation.ts | 28 ++++-
.../__tests__/builtin-workflows-lifecycle.test.ts | 4 +
.../engine/src/__tests__/project-engine.test.ts | 79 ++++++++++++
.../graph-node-missing-worktree-recovery.test.ts | 32 ++++-
.../src/__tests__/reviewer-workspace.test.ts | 2 +
.../src/__tests__/task-pipeline-smoke.test.ts | 10 +-
.../src/__tests__/workflow-task-runtime.test.ts | 10 +-
.../engine/src/__tests__/workspace-e2e.test.ts | 29 +++++
.../engine/src/__tests__/workspace-merger.test.ts | 4 +-
.../__tests__/workspace-review-evidence.test.ts | 58 +++++++++
packages/engine/src/execution/reviewer.ts | 2 +
.../create-authoritative-workflow-seams.ts | 59 +++++----
.../engine/src/executor/execute-workflow-graph.ts | 29 ++++-
packages/engine/src/executor/graph-failure-pure.ts | 6 +
.../engine/src/executor/handle-graph-failure.ts | 26 ++++
...-unusable-worktree-graph-failure-to-recovery.ts | 22 +++-
.../engine/src/executor/run-graph-custom-node.ts | 4 +-
.../src/executor/workspace-review-per-repo.ts | 55 +++++----
packages/engine/src/merge/merger-ai.ts | 137 ++++++++++-----------
.../engine/src/merge/workspace-review-reroute.ts | 52 ++++++++
packages/engine/src/project-engine.ts | 47 +++++++
.../self-healing/auto-recover-worktree-session.ts | 2 +-
.../src/workflows/workflow-graph-executor.ts | 28 ++++-
.../engine/src/workflows/workflow-merge-nodes.ts | 6 +-
.../src/worktree/workspace-review-evidence.ts | 110 +++++++++++++++++
.../engine/src/worktree/worktree-acquisition.ts | 24 +++-
43 files changed, 874 insertions(+), 170 deletions(-)
Fusion-Task-Id: FN-120
Fusion-Task-Lineage: 61c36613-89bd-44ca-8676-de77662bf53e
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-23 01:36:12 +00:00
Fusion Agent
7563fcfe1b
FN-037: configure AI-authored task output language
...
Configure a persisted output-language setting and apply it across AI-authored task text and workflow summaries.
- Add project/global output-language settings with defaults, validation, UI controls, translations, and documentation.
- Propagate the selected language through planning, execution, review, summaries, and task creation.
- Add focused coverage for language resolution and update affected dashboard, engine, and localization tests.
Files changed:
.changeset/fn-037-task-output-language.md | 7 ++
docs/settings-reference.md | 4 +
docs/task-management.md | 4 +
.../core/src/__tests__/ai-output-language.test.ts | 21 +++++
packages/core/src/ai/ai-output-language.ts | 42 +++++++++
packages/core/src/ai/ai-summarize.ts | 16 +++-
packages/core/src/config/settings-schema.ts | 2 +
packages/core/src/index.gate.ts | 2 +
packages/core/src/index.ts | 2 +
packages/core/src/task-store/settings-ops.ts | 7 ++
packages/core/src/task-store/task-creation.ts | 4 +
packages/core/src/types/settings/settings-scope.ts | 2 +
.../app/__tests__/settings-sections.test.tsx | 21 +++--
.../__tests__/SettingsModal.models-auth.test.tsx | 10 +-
.../app/components/settings/section-keys.ts | 2 +-
.../sections/ProjectModelsSection.search.ts | 13 ++-
.../settings/sections/ProjectModelsSection.tsx | 28 ++++--
.../settings-default-descriptions.test.tsx | 4 +-
.../src/__tests__/github-tracking.test.ts | 4 +-
.../__tests__/planning-prompt-resolution.test.ts | 29 ++++--
.../src/__tests__/routes-planning.test.ts | 32 ++++++-
packages/dashboard/src/ai-session-store.ts | 15 ++-
packages/dashboard/src/github-tracking.ts | 3 +
packages/dashboard/src/planning.ts | 75 +++++++++++++--
.../routes/register-ai-text-assistant-routes.ts | 11 ++-
.../src/routes/register-planning-subtask-routes.ts | 6 +-
.../src/routes/register-task-workflow-routes.ts | 9 +-
packages/dashboard/src/shared/settings-sections.ts | 2 +-
.../__tests__/ce-workflow-step-executor.test.ts | 45 ++++++++-
.../__tests__/executor-review-artifacts.test.ts | 65 +++++++++++++
packages/engine/src/__tests__/triage.test.ts | 7 +-
.../src/__tests__/workflow-task-runtime.test.ts | 23 +++++
.../create-authoritative-workflow-primitives.ts | 14 ++-
.../create-authoritative-workflow-seams.ts | 17 +++-
.../engine/src/executor/execute-workflow-graph.ts | 19 +++-
.../engine/src/executor/execute-workflow-step.ts | 13 ++-
packages/engine/src/executor/execution-prompt.ts | 10 +-
.../engine/src/executor/handoff-task-to-review.ts | 10 +-
.../engine/src/executor/run-graph-custom-node.ts | 6 +-
.../src/executor/task-executor-graph-facades.ts | 8 +-
packages/engine/src/triage.ts | 35 ++-----
.../src/workflows/workflow-completion-summary.ts | 101 ++++++++++++++++++---
.../engine/src/workflows/workflow-task-runtime.ts | 12 +++
packages/i18n/locales/en/app.json | 7 +-
packages/i18n/locales/es/app.json | 7 +-
packages/i18n/locales/fr/app.json | 7 +-
packages/i18n/locales/ko/app.json | 7 +-
packages/i18n/locales/pt-BR/app.json | 14 ++-
packages/i18n/locales/zh-CN/app.json | 7 +-
packages/i18n/locales/zh-TW/app.json | 7 +-
packages/i18n/src/resources.d.ts | 13 ++-
51 files changed, 680 insertions(+), 151 deletions(-)
Fusion-Task-Id: FN-037
Fusion-Task-Lineage: 968a707e-7ffe-43ba-b983-d679b031f7a5
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
gsxdsm
3aa32a846c
FN-8910: allow held tasks to remediate review findings
...
Allow pre-merge remediation to proceed under project-level merge holds while preserving task-level operator holds.
- Restrict remediation holds to operator-authored task-level auto-merge settings
- Record remediation and revision-budget refusals for parked review tasks
- Keep fire-and-forget remediation failures in their review lane
- Cover shared-branch recovery behavior and document the policy
Files changed:
.changeset/fn-8910-premerge-remediation-hold.md | 7 ++
docs/workflow-steps.md | 2 +
packages/core/src/__tests__/task-merge.test.ts | 44 ++++++-------
packages/core/src/merge/task-merge.ts | 20 +++---
.../__tests__/executor-graph-requeue-gate.test.ts | 60 ++++++++++++++++-
...cutor-live-branch-group-auto-merge-hold.test.ts | 63 ++++++++++++++++--
.../workflow-graph-optional-step-fix.test.ts | 24 +++++--
.../src/__tests__/workflow-task-runtime.test.ts | 10 ++-
packages/engine/src/executor.ts | 76 ++++++++++++++++++----
9 files changed, 244 insertions(+), 62 deletions(-)
Fusion-Task-Id: FN-8910
Fusion-Task-Lineage: b5e10f87-67cf-4acf-b125-91be5ade17a8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-09 15:16:12 -07:00
gsxdsm
eaadd153b1
FN-8764: route workflow stages through durable role agents
...
Route workflow stages through task-scoped durable role agents.
- Persist normalized multi-role agents and workflow principal fences with migrations.
- Route planning, execution, review, and merge workflow nodes through authorized permanent principals with capacity leasing and recovery.
- Retire ephemeral workflow-stage workers and expose role-aware agent configuration, workflow editing, and documentation.
- Preserve lifecycle-column ratchet coverage by centralizing workflow-role classification rather than adding test exemptions.
Files changed:
.changeset/fn-8764-workflow-role-agents.md | 7 +
CONCEPTS.md | 3 +
docs/agents.md | 6 +
docs/architecture.md | 6 +
docs/cli-reference.md | 2 +
docs/dashboard-guide.md | 4 +
docs/settings-reference.md | 6 +-
docs/storage.md | 2 +
docs/workflow-steps.md | 6 +
.../src/__tests__/extension-agent-update.test.ts | 11 +-
packages/cli/src/__tests__/extension.test.ts | 18 +-
packages/cli/src/extension.ts | 41 +-
.../core/src/__tests__/agent-permissions.test.ts | 12 +
.../core/src/__tests__/agent-role-policy.test.ts | 7 +
packages/core/src/__tests__/agent-roles.test.ts | 21 +
.../legacy-column-collection-gating-ledger.test.ts | 19 +-
.../src/__tests__/postgres/schema-applier.test.ts | 16 +-
.../core/src/__tests__/settings-parity.test.ts | 9 +-
.../workflow-agent-node-classification.test.ts | 25 +
.../src/__tests__/workflow-work-item-cas.test.ts | 38 ++
packages/core/src/agents/agent-permissions.ts | 11 +-
packages/core/src/agents/agent-role-policy.ts | 39 +-
packages/core/src/agents/agent-store.ts | 190 ++++++-
.../core/src/async-stores/async-agent-store.ts | 6 +
packages/core/src/config/settings-schema.ts | 5 +-
packages/core/src/index.gate.ts | 2 +-
packages/core/src/index.ts | 7 +-
.../0045_fn_8764_multi_role_workflow_agents.sql | 20 +
.../0046_fn_8764_workflow_principal_fence.sql | 49 ++
packages/core/src/postgres/schema-applier.ts | 22 +-
packages/core/src/postgres/schema/project.ts | 21 +
packages/core/src/store.ts | 2 +-
.../task-store/async/async-workflow-workitems.ts | 49 +-
packages/core/src/task-store/row-types.ts | 4 +
packages/core/src/task-store/settings-helpers.ts | 16 +-
packages/core/src/task-store/settings-ops-2.ts | 13 +-
packages/core/src/task-store/settings-ops.ts | 16 +-
packages/core/src/task-store/task-row-mappers.ts | 4 +
.../src/task-store/workflow-task-create-ops.ts | 6 +-
.../src/task-store/workflow-workitems-ops-2.ts | 25 +-
packages/core/src/types.ts | 2 +
packages/core/src/types/agents/agents.ts | 45 +-
packages/core/src/types/merge/merge-queue.ts | 17 +
packages/core/src/types/settings/settings-scope.ts | 9 +-
packages/core/src/workflows/workflow-ir-types.ts | 58 +++
packages/core/src/workflows/workflow-ir.ts | 19 +
.../dashboard/app/components/AgentDetailView.css | 14 +
.../dashboard/app/components/AgentDetailView.tsx | 34 +-
.../dashboard/app/components/NewAgentDialog.tsx | 28 +-
.../app/components/WorkflowNodeEditor.tsx | 19 +
.../__tests__/AgentDetailView.core.test.tsx | 4 +-
.../app/components/__tests__/AgentsView.test.tsx | 2 +-
.../__tests__/SettingsModal.general.test.tsx | 86 ---
.../__tests__/SettingsModal.test-harness.tsx | 1 -
.../components/agent-presets/agentCreatePayload.ts | 9 +-
.../app/components/settings/section-keys.ts | 1 -
.../settings/sections/GeneralSection.tsx | 8 -
.../settings-default-descriptions.test.tsx | 1 -
.../app/components/workflow-flow-mapping.ts | 7 +
packages/dashboard/src/mission-routes.ts | 26 +-
.../src/routes/__tests__/agent-core-routes.test.ts | 23 +-
.../src/routes/register-agent-core-routes.ts | 42 +-
...gister-agent-import-export-generation-routes.ts | 21 -
.../engine/src/__tests__/agent-action-gate.test.ts | 33 ++
.../engine/src/__tests__/agent-assignment.test.ts | 370 -------------
.../src/__tests__/ephemeral-worker-manager.test.ts | 575 ---------------------
...ecutor-ephemeral-disabled-dispatch-gate.test.ts | 223 --------
.../__tests__/executor-fast-mode-workflows.test.ts | 58 +++
.../engine/src/__tests__/log-severity-manifest.ts | 1 -
.../__tests__/log-severity-spam-contract.test.ts | 3 -
.../resolved-read-with-literal-filter.test.ts | 4 -
.../__tests__/scheduler-ephemeral-toggle.test.ts | 175 -------
.../__tests__/scheduler-workflow-cutover.test.ts | 19 -
.../src/__tests__/workflow-agent-capacity.test.ts | 47 ++
.../src/__tests__/workflow-agent-routing.test.ts | 137 +++++
.../src/__tests__/workflow-graph-foreach.test.ts | 15 +
.../__tests__/workflow-graph-task-runner.test.ts | 73 +++
.../src/__tests__/workflow-task-runtime.test.ts | 95 ++++
.../src/__tests__/workflow-work-scheduler.test.ts | 20 +
packages/engine/src/agents/agent-action-gate.ts | 64 +++
packages/engine/src/agents/agent-assignment.ts | 135 -----
packages/engine/src/agents/agent-reflection.ts | 1 +
.../engine/src/agents/ephemeral-worker-manager.ts | 429 ---------------
.../engine/src/agents/workflow-agent-capacity.ts | 113 ++++
.../engine/src/agents/workflow-agent-router.ts | 185 +++++++
packages/engine/src/execution/reviewer.ts | 26 +-
packages/engine/src/executor.ts | 501 +++++++++++++++---
packages/engine/src/index.ts | 1 -
packages/engine/src/merger.ts | 20 +-
packages/engine/src/pi.ts | 11 +
packages/engine/src/runtimes/in-process-runtime.ts | 37 --
packages/engine/src/scheduler.ts | 114 +---
packages/engine/src/triage.ts | 196 ++++++-
.../src/workflows/workflow-graph-executor.ts | 109 +++-
.../engine/src/workflows/workflow-graph-loop.ts | 13 +-
.../src/workflows/workflow-graph-task-runner.ts | 12 +
.../engine/src/workflows/workflow-task-runtime.ts | 125 ++++-
.../src/workflows/workflow-work-scheduler.ts | 8 +-
98 files changed, 2722 insertions(+), 2468 deletions(-)
Fusion-Task-Id: FN-8764
Fusion-Task-Lineage: 5527fccb-342d-46f6-8108-bbf89142efec
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-07 01:36:34 -07:00
gsxdsm
cb57093d03
refactor: domain folder layout (types, API, core, engine) ( #2398 )
...
## Summary
Wave 17 organizes Fusion into **domain folders** (stacks on #2397 ).
### Layout
- **core/types/** — board, task, agents, settings, merge, workflow,
mesh, …
- **core/src/** — agents, ai, async-stores, workflows, tasks, config,
db, …
- **dashboard/app/api/** — client, tasks, agents, git, missions,
planning, …
- **engine/src/** — agents, auth, execution, merge, missions, overseer,
worktree, …
Root keepers retained for large entrypoints (`store.ts`, `executor.ts`,
`merger.ts`, …).
Public barrels (`@fusion/core`, `@fusion/engine`, `app/api.ts` → legacy)
stay stable.
## Test plan
- [x] `@fusion/core` typecheck
- [x] `@fusion/engine` typecheck (pre-existing playwright-core noise
only)
- [ ] CI merge gate
**Stack:** #2394 → #2397 → **this PR**
2026-08-03 00:20:53 -07:00
gsxdsm
b007de5f94
fix(ci,tests): repair binary release pipeline and re-green the full suite
...
Binary Release (v0.73.0-beta.5 was fully red):
- bun compile: mark chromium-bidi external — playwright-core@1.60 (feature-video)
optionally requires it and bun fails closed on unresolvable requires.
- Windows desktop EXE: quote -c.publish.channel=beta in release.yml; PowerShell
tokenizes the bare flag into `-c` + a path and electron-builder ENOENTs on it.
Full suite (all 4 shards red from stale-test drift, no product bugs found):
- engine: align mock stores/assertions with atomic store.moveTaskIf dispatch
(#2371 ), the fail-closed non-empty PROMPT.md artifact gate (#2390 ), oldest-
first admission (FN-8453), alreadyClaimed graph routing (#2393 ), startStep
step projection (#2403/FN-8464), structured retry presentation (FN-8503),
provider-lane pause reasons (#2339 ), typed column-boundary entry (#2378 ),
Type.Integer in CAS document schemas (#2375 ), bounded model-registry refresh.
- engine-no-blocking-shellout: re-pin 17 drifted allowlist line numbers and drop
the stale REBASE_HEAD entry whose execSync was removed.
- core: schema-applier expectations track migrations 0033-0035 (96 tables) and
the synthetic 0000 fixture gains workflow_work_items/mission_contract_assertions;
work-item terminal state is "succeeded" post-#2378.
Known follow-up (not addressed here): self-healing starved-refinement escalation
bumps task.priority, which FN-8453 oldest-first admission no longer consults.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-23 21:43:00 -07:00
gsxdsm
b169072224
fix(FN-7233): enforce workflow summary and done guards
2026-06-29 11:07:11 -07:00
gsxdsm
2135bd653d
fix(FN-7228): record workflow completion summaries
2026-06-29 10:32:51 -07:00
gsxdsm
c93217dee0
fix(FN-7225): honor plan review approvals in workflows
...
Fusion-Task-Id: FN-7225
2026-06-29 02:08:08 -07:00
gsxdsm
c61164853c
test(FN-7039): update stale visitedNodeIds fixtures for code-review optional-group
...
Prior WIP added a default-on code-review optional-group to builtin:coding on the
success path (execute -> browser-verification -> code-review -> review). 9 exact
visitedNodeIds expectations across 3 suites predated that node and were failing.
Updated expectations to match the real traversal (insert code-review in position).
No product code touched; no assertions weakened.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 22:38:12 -07:00
gsxdsm
4faadd4f75
Merge remote-tracking branch 'origin/main' into conflict-resolution-1712
...
# Conflicts:
# packages/dashboard/app/components/WorkflowNodeEditor.tsx
# packages/engine/src/__tests__/executor-fast-mode-workflows.test.ts
2026-06-23 15:44:52 -07:00
gsxdsm
f9043d733e
fix(dashboard): polish workflow and chrome defaults
2026-06-22 19:48:50 -07:00
gsxdsm
5506fcc0fc
feat(FN-6880): migrate built-in browser-verification to an optional-group (U6)
...
Replace the pre-merge `workflow-step` seam node + `optionalSteps` declaration in
the coding and stepwise-coding built-ins with a `browser-verification`
optional-group (default OFF) whose template runs the browser-verification step.
Enabled tasks run it once pre-merge; disabled tasks bypass it (two-task
divergence engine test; stepwise confirmed run-once post-foreach). Coding is now
interpreter-deferred like stepwise (the group is a branching node). Parity
oracles updated deliberately. Legacy seam-anchor/runWorkflowSteps left for U7.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-21 18:54:58 -07:00
gsxdsm
3098478d9e
Merge origin/main: align merge-region visited nodes with collapse refactor
...
main's workflow-graph-executor now collapses the merge-policy region
(merge-gate, branch-group-*, merge-attempt) into a single synthetic
`merge` node. Reconcile the S05 work-item-driver test's visitedNodeIds
assertion to match, and union the `observed` recording-primitive fields
from both branches (executedTasks + merge attempt/run/workflow ids).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-13 15:47:01 -07:00
gsxdsm
25cf473553
fix(FN-000): seed work item primitive identity
...
Address PR #1578 feedback by seeding run and workflow identifiers into work-item handler context so merge primitives receive the leased work identity.
2026-06-11 08:43:12 -07:00
gsxdsm
3af587af6e
fix(FN-000): harden workflow work item dispatch
...
Address PR #1578 feedback by failing unwired work item dispatch without a no-op persistence path and forwarding work item attempts into merge primitive context.
2026-06-11 08:30:31 -07:00
gsxdsm
c7e278c3db
fix(FN-000): honor manual merge work states
...
Address PR #1578 feedback by deriving merge-gate routing from task/settings auto-merge policy and persisting manual-hold work items as manual-required instead of failed.
2026-06-11 08:04:11 -07:00
gsxdsm
fa4445138a
feat(FN-000): run workflow work items through runtime
...
Fusion-Task-Id: FN-000
2026-06-09 20:44:45 -07:00
gsxdsm
b872b37d72
FN-6117: expose task attachments in workflow step prompts
...
Make workflow-driven task execution keep attachment context available across step prompts and retries.
- add attachment guidance to full step prompts so agents can read project-root task attachments from worktrees
- include attachment availability in reduced retry prompts after context-limit failures
- cover attachment preservation through workflow runtime execution and step prompt generation with engine tests
Files changed:
.../src/__tests__/step-session-executor.test.ts | 272 +++++++++++++++++++++
.../src/__tests__/workflow-task-runtime.test.ts | 94 ++++++-
packages/engine/src/step-session-executor.ts | 13 +-
3 files changed, 376 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6117
Fusion-Task-Lineage: 520eb1bc-e276-449a-acfe-ccbabefe69e3
2026-06-09 13:31:30 -07:00
gsxdsm
fc8086c480
fix(FN-6035): fail execute on missing prepared worktree
2026-06-08 22:05:45 -07:00
gsxdsm
8d3b869ec1
fix(FN-6035): model pre-merge workflow steps in builtin coding
2026-06-08 22:02:26 -07:00
gsxdsm
b6800e8622
fix(FN-6035): address workflow primitive review feedback
2026-06-08 21:16:32 -07:00
gsxdsm
8f42098cc3
feat(FN-6035): route execution through workflow primitives
...
Fusion-Task-Id: FN-6035
2026-06-08 19:13:14 -07:00
gsxdsm
ce8402e37b
fix(FN-6021): align workflow runtime fallback run ids
2026-06-07 17:59:24 -07:00
gsxdsm
cbc2bbff7d
refactor(workflow): add workflow task runtime facade
2026-06-07 17:42:43 -07:00