gsxdsm
9fd286b1d3
fix(FN-7242): keep code review remediation recovering
2026-06-29 18:41:43 -07:00
gsxdsm
90b62b7884
FN-7246: preserve explicit empty step dependencies
...
Preserve authored empty workflow step dependencies so parallel roots remain independent.
- Keep parser and TaskStep projections from dropping explicit empty dependsOn arrays.
- Treat missing dependsOn as the legacy previous-step fallback while allowing [] to mean no dependencies.
- Cover heading and JSON parsers plus parallel foreach scheduling with regression tests and docs.
Files changed:
.changeset/fn-7246-workflow-depends-on-empty.md | 7 +++++++
docs/workflow-steps.md | 4 ++--
packages/core/src/__tests__/step-parsers.test.ts | 8 ++++----
packages/core/src/step-parsers.ts | 30 +++++++++++++++++++++---------
packages/core/src/types.ts | 13 +++++++++----
packages/engine/src/__tests__/workflow-parse-steps.test.ts | 12 ++++++++++++
packages/engine/src/__tests__/workflow-step-parallel.test.ts | 30 +++++++++++++++++++++++++++++-
packages/engine/src/workflow-graph-foreach.ts | 9 +++++++--
packages/engine/src/workflow-node-handlers.ts | 6 +++++-
9 files changed, 96 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-7246
Fusion-Task-Lineage: a75687fa-5711-4509-b60f-43669323a6c0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 18:05:44 -07:00
gsxdsm
6f2b8ab6e5
FN-7244: retry unavailable Plan Review without replanning
...
Preserve existing task specs when Plan Review retries after reviewer outages.
- Route plan-review-unavailable triage tasks through the Plan Review/finalization path instead of the planner.
- Validate existing PROMPT.md content and fail clearly when it is missing, empty, or invalid.
- Preserve retry status across interrupted triage work and cover retry behavior with engine tests.
- Document the retry lifecycle and add a patch changeset.
Files changed:
.../fn-7244-plan-review-unavailable-retry.md | 7 +
docs/architecture.md | 2 +
docs/workflow-steps.md | 2 +
.../triage-plan-review-unavailable-retry.test.ts | 251 +++++++++
packages/engine/src/__tests__/triage.test.ts | 604 +++++++++++++++++++++
packages/engine/src/triage.ts | 108 +++-
6 files changed, 945 insertions(+), 29 deletions(-)
Fusion-Task-Id: FN-7244
Fusion-Task-Lineage: 80e790e3-d2b9-4309-beec-3dbf6a03db39
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 17:40:00 -07:00
gsxdsm
72e50ac8c6
fix(artifacts): support task image artifact previews ( #1821 )
...
## Summary
Task image artifacts can now complete the full loop: agents and chat
flows can register base64 image bytes, and task details can display
those artifacts with an expandable preview instead of leaving them as
undiscoverable metadata.
This keeps binary payloads on the existing managed artifact storage
path, validates that base64 payloads are real non-empty image data, and
documents the new `dataBase64` field for engine-tool callers. The task
details artifacts gallery now treats image cards as expandable while
leaving document, audio, video, and generic artifact cards on their
existing behavior.
## Validation
- `pnpm --filter @fusion/dashboard exec vitest run
app/components/__tests__/TaskDocumentsTab.test.tsx
src/routes/__tests__/artifacts-route-integration.test.ts
--silent=passed-only --reporter=dot`
- `pnpm --filter @fusion/engine exec vitest run
src/__tests__/agent-artifact-tools.test.ts --silent=passed-only
--reporter=dot`
---
[](https://github.com/EveryInc/compound-engineering-plugin )

<!-- stage-review-badge-begin -->
---
<a href="https://stagereview.app/Runfusion/Fusion/pull/1821 ">
<picture>
<source media="(prefers-color-scheme: dark)"
srcset="https://stagereview.app/assets/gh-open-in-stage-dark.svg ">
<img src="https://stagereview.app/assets/gh-open-in-stage-light.svg "
alt="Open in Stage">
</picture>
</a>
<!-- stage-review-badge-end -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added inline base64 (`dataBase64`) support for registering image
artifacts from agent tools, including task-scoped chat registration.
* Task details now allow expanding image media artifacts in a preview
lightbox with accessible keyboard interaction.
* **Bug Fixes**
* Improved verification for media streaming by validating raw binary
responses; added HTTP 200/404 coverage for image endpoints.
* **Documentation**
* Updated `fn_artifact_register` tool documentation to include the
optional `dataBase64` parameter.
* **Tests**
* Added coverage for base64 validation/error handling and lightbox
expand/close behavior (including Escape and Tab focus trapping).
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-29 17:33:50 -07:00
copilot-swe-agent[bot]
8544b5b08b
fix(FN-7143): simplify base64 validation and improve error messages
2026-06-30 00:18:04 +00:00
Phil Larson
06b863ed2f
fix: address external review checkout review feedback
2026-06-29 17:17:59 -07:00
Phil Larson
b829821dd9
fix(engine): review explicit external checkouts
2026-06-29 17:17:59 -07:00
copilot-swe-agent[bot]
1bf8d83bc1
Merge remote-tracking branch 'origin/main' into fusion/fn-7143
2026-06-30 00:14:37 +00:00
gsxdsm
d7f26bb6cf
fix(FN-7219): stabilize compound engineering workflow
2026-06-29 16:42:11 -07:00
gsxdsm
42226edde1
FN-7245: expose workflow authoring tools to agents
...
Expose workflow authoring and selection tools through agent-visible extension surfaces.
- Register workflow list/get/create/update/delete/settings/select and trait-list tools in the published pi extension.
- Export shared workflow tool schemas/factories and include workflow settings in centralized authoring tool sets.
- Update action-gate classifications, permission examples, docs, tests, and the changeset for the new agent workflow surface.
Files changed:
.changeset/FN-7245-workflow-tools.md | 7 +
docs/agents.md | 4 +-
docs/cli-reference.md | 17 ++
docs/workflow-steps.md | 9 +-
.../src/__tests__/extension-workflow-tools.test.ts | 244 +++++++++++++++++++++
packages/cli/src/__tests__/extension.test.ts | 8 +
packages/cli/src/extension.ts | 142 ++++++++++++
packages/core/src/types.ts | 6 +-
.../dashboard/src/__tests__/chat-manager.test.ts | 9 +-
.../planning-document-tools-exposure.test.ts | 19 +-
.../engine/src/__tests__/agent-action-gate.test.ts | 8 +
.../agent-workflow-tools-exposure.test.ts | 30 ++-
.../src/__tests__/gating-classifications.test.ts | 13 +-
.../src/__tests__/permanent-agent-gating.test.ts | 4 +-
packages/engine/src/agent-tools.ts | 13 +-
packages/engine/src/gating-classifications.ts | 6 +-
packages/engine/src/index.ts | 7 +
17 files changed, 506 insertions(+), 40 deletions(-)
Fusion-Task-Id: FN-7245
Fusion-Task-Lineage: 82501602-7177-4ee8-a67b-32de35aa73de
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 16:35:51 -07:00
gsxdsm
3886e585dd
fix(FN-7143): show compound workflow node progress
...
Record skill-backed workflow nodes into workflowStepResults and teach task progress surfaces to include those graph-node records without re-showing disabled optional workflow checks.
2026-06-29 14:59:16 -07:00
gsxdsm
b26d8a6772
fix(FN-7143): address image artifact review feedback
...
- classify image artifact support as a minor feature changeset
- reject non-image, empty, and signature-mismatched dataBase64 payloads
- trap keyboard focus in the task image lightbox
- assert media streaming with raw image bytes
Fusion-Task-Id: FN-7143
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 14:59:07 -07:00
gsxdsm
a766813ed9
FN-7239: scope executor prompts and quarantine stale pause test
...
Scope missing executor prompts safely while keeping graph coverage aligned with the post-cutover workflow route.
- Treat absent executor prompts as empty before worktree path scoping.
- Update graph retry, parity, and smoke expectations for plan review, completion summary, and post-merge traversal.
- Quarantine only the stale executor-pause direct-dispatch suite with a ledger entry and engine-default exclude.
Files changed:
.changeset/fn-7239-scope-prompt-guard.md | 7 ++++
.../engine/src/__tests__/executor-pause.test.ts | 10 +++++
.../src/__tests__/task-pipeline-smoke.test.ts | 7 ++++
.../workflow-graph-executor-parity.test.ts | 15 ++++++-
...ow-graph-executor-retry-coding-workflow.test.ts | 48 +++++++++++++++++-----
packages/engine/src/executor.ts | 15 ++++---
packages/engine/vitest.config.ts | 5 +++
scripts/lib/test-quarantine.json | 8 +++-
8 files changed, 97 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-7239
Fusion-Task-Lineage: 9382e4e0-7cfc-416a-93e8-6ba1c7cd7879
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 14:17:29 -07:00
gsxdsm
41c0cf3603
fix(FN-7235): scope workflow remediation recovery
...
Keep merge finalization from stranding scoped workflow tasks on out-of-scope branch residue, move built-in optional gate remediation attempts into workflow config, and guard review remediation against out-of-scope fixes.
Also covers FN-7236 review-remediation scope drift.
2026-06-29 14:00:32 -07:00
gsxdsm
50f8807037
fix(FN-7233): persist workflow transition notifications
...
Store workflow transition notification markers as durable task state so recovery alerts do not depend on human-readable log text.
2026-06-29 12:40:00 -07:00
gsxdsm
e09d45037f
fix(FN-7233): move workflow lifecycle policy into nodes
2026-06-29 12:23:20 -07:00
gsxdsm
24d78816a0
fix(FN-7233): route workflow reviews through remediation nodes
2026-06-29 11:24:41 -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
2b73a0a238
FN-7228: add task pipeline smoke and plan review retry
...
Add engine coverage for the default task pipeline while preserving accepted plans during Plan Review retries.
- Add a deterministic engine-core smoke test for the minimal builtin:coding task pipeline.
- Reuse existing PROMPT.md when retrying plan-review-unavailable tasks instead of replanning them.
- Cover missing-PROMPT retry failure handling and workflow parity ordering.
- Add a patch changeset for the Plan Review retry behavior.
Files changed:
.changeset/fn-7228-plan-review-retry.md | 7 ++
.../src/__tests__/task-pipeline-smoke.test.ts | 140 +++++++++++++++++++++
packages/engine/src/__tests__/triage.test.ts | 47 +++++++
.../workflow-graph-executor-parity.test.ts | 6 +-
packages/engine/src/triage.ts | 49 +++++++-
packages/engine/vitest.config.ts | 5 +
6 files changed, 252 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-7228
Fusion-Task-Lineage: e61ba4aa-6d96-4413-9048-9eeaf9ea95b5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 10:21:29 -07:00
gsxdsm
6239b2acb3
fix(FN-7228): make built-in code review blocking
2026-06-29 10:16:17 -07:00
gsxdsm
6fc50d8d9e
fix(FN-7232): enforce workflow merge boundary
2026-06-29 10:05:49 -07:00
gsxdsm
353aaf3b4a
fix(FN-7143): support task image artifacts
...
Fusion-Task-Id: FN-7143
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 09:47:59 -07:00
gsxdsm
123639c89f
fix(FN-7231): require current workflow merge proof
2026-06-29 09:28:02 -07:00
gsxdsm
875cfad136
fix(FN-7231): require merge proof before workflow done
2026-06-29 09:01:00 -07:00
gsxdsm
4184062288
fix(FN-7224): notify workflow graph task flows
...
Fusion-Task-Id: FN-7224
2026-06-29 08:49:59 -07:00
gsxdsm
8b20f3458e
fix(FN-7224): address workflow code review findings
...
Fusion-Task-Id: FN-7224
2026-06-29 08:36:07 -07:00
gsxdsm
57d8065778
fix(FN-7224): let workflow nodes own worktree prep
...
Classify write-capable graph nodes before handler dispatch and let executor adapters fulfill the declared worktree requirement, keeping custom-node execution out of lifecycle decision making.
Fusion-Task-Id: FN-7224
2026-06-29 08:22:49 -07:00
gsxdsm
cb94fc8451
fix(FN-7224): make workflow graph replay idempotent
...
Move completed-step replay and proven-merge finalization into workflow-owned execution paths so graph restarts continue from live task projection instead of failing stale step nodes.
Fusion-Task-Id: FN-7224
2026-06-29 08:15:32 -07:00
gsxdsm
05c54fbe29
fix(FN-7228): complete workflow recovery after reviews pass
...
Fusion-Task-Id: FN-7228
2026-06-29 04:12:13 -07:00
gsxdsm
c088f8a412
fix(FN-7228): preserve plan review status during execution
2026-06-29 03:40:43 -07:00
gsxdsm
984e36255d
fix(FN-7229): stop parking execution errors in review
2026-06-29 03:33:18 -07:00
gsxdsm
f430f5db39
fix(FN-7228): respect workflow step dependencies
2026-06-29 03:23:01 -07:00
gsxdsm
50ccd79b9f
fix(FN-7226): land graph step-session commits
2026-06-29 03:15:30 -07:00
gsxdsm
399a4a2a5f
fix(FN-7226): use graph projection for step sessions
2026-06-29 03:09:43 -07:00
gsxdsm
1efcdcfe35
fix(FN-7224): clear stale graph pins on reset
2026-06-29 02:55:35 -07:00
gsxdsm
36d090c326
fix(FN-7225): keep plan review in triage
2026-06-29 02:47:17 -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
998a7f2745
fix(FN-7226): make plan review the single pre-execution gate
...
Fusion-Task-Id: FN-7226
2026-06-29 01:48:27 -07:00
gsxdsm
1d21241725
fix(FN-7225): auto-retry stale parse pause aborts
2026-06-29 01:13:31 -07:00
gsxdsm
1f365163a4
fix(FN-7225): clear stale pause state on workflow retry
2026-06-29 01:05:44 -07:00
gsxdsm
b86ddf4d10
fix(FN-7225): route failed plan review to triage
2026-06-29 00:48:49 -07:00
gsxdsm
c7cbd1dbf1
fix(FN-7221): clear stale workflow pins on spec rebuild
2026-06-29 00:37:17 -07:00
gsxdsm
138d6447fb
fix(workflows): address review feedback on recovery and docs
2026-06-29 00:10:27 -07:00
gsxdsm
d1caa3bdbf
test(workflows): cover coding optional gates
2026-06-28 23:45:32 -07:00
gsxdsm
e963be4088
FN-7220: harden workflow recovery lineage checks
...
Harden workflow recovery so pause/resume parks and already-merged detection preserve task ownership lineage.
- Reject already-merged recovery candidates with foreign task or lineage trailers before accepting patch-id, tree, or branch-tip matches.
- Recover benign pause/resume abort parks back to todo when the task has no live executor/session state.
- Add real-git and executor regression coverage plus architecture docs and a changeset for recovery behavior.
Files changed:
.changeset/fn-7220-workflow-recovery-lineage.md | 7 +
docs/architecture.md | 8 +-
.../already-merged-detector.real-git.test.ts | 69 ++++++++
.../executor-paused-abort-todo-benign.test.ts | 194 ++++++++++++++++++---
.../self-healing-already-merged.real-git.test.ts | 64 ++++++-
packages/engine/src/already-merged-detector.ts | 113 +++++++++---
packages/engine/src/executor.ts | 84 +++++++++
packages/engine/src/self-healing.ts | 134 ++++++++++++--
8 files changed, 609 insertions(+), 64 deletions(-)
Fusion-Task-Id: FN-7220
Fusion-Task-Lineage: 186c65bc-fe1a-457a-b90a-abbd73044252
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 22:43:02 -07:00
gsxdsm
58a0c1f1d6
FN-7214: make workflow node pause resume re-entrant
...
Workflow graph pause aborts now re-enter interrupted nodes instead of failing the task.
- Track and abort active workflow graph runners during hard cancel and global pause flows.
- Stamp interrupted workflow nodes with typed engine-pause abort context and surface it through graph run results.
- Re-enter safe todo, in-progress, and auto-mergeable in-review graph nodes with retry bounds and run-audit evidence.
- Add regression coverage and architecture notes for paused node re-entry behavior.
Files changed:
.changeset/fn-7214-workflow-graph-node-pause-resume.md | 7 +
docs/architecture.md | 4 +-
packages/engine/src/__tests__/executor-paused-abort-todo-benign.test.ts | 231 ++++++++++++++++++++-
packages/engine/src/__tests__/workflow-graph-paused-node-resume.test.ts | 148 +++++++++++++
packages/engine/src/executor.ts | 158 +++++++++++++-
packages/engine/src/workflow-graph-executor.ts | 50 ++++-
packages/engine/src/workflow-graph-task-runner.ts | 26 ++-
7 files changed, 614 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-7214
Fusion-Task-Lineage: 1689e3fd-e35f-4e83-8049-aabbab49cecd
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 19:42:45 -07:00
gsxdsm
fac7556321
fix(FN-7210): stop merge-retry loop starving executor remediation pass
...
recoverCompletedTask refused workflow-graph re-entry when the live task
has incomplete plan steps or a remediation bounce is already scheduled.
A pre-merge optional/advisory REVISE reopens steps and schedules a
sendTaskBackForFix bounce; a competing graph re-entry re-passed the
advisory step (budget exhausted), advanced to merge, and looped forever
on the 'task has incomplete steps' gate. Defer to the bounce /
stale-incomplete-review recovery so the executor finishes the steps.
Fusion-Task-Id: FN-7210
2026-06-28 19:22:06 -07:00
gsxdsm
3a83868543
FN-7212: apply reviewer model overrides
...
Route reviewer-family sessions through the shared validator model resolver so task overrides are honored consistently.
- Resolve reviewer, workflow review-step, and spec-review models from one effective settings snapshot.
- Forward task reviewer model overrides from triage into spec review calls.
- Preserve review text capture for session implementations without subscribe support.
- Add coverage for override precedence, test-mode forcing, and optional review lanes.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-7212-reviewer-model-overrides.md | 7 ++
.../core/src/__tests__/model-resolution.test.ts | 117 +++++++++++++++++++
.../src/__tests__/executor-review-verdicts.test.ts | 53 ++++++++-
packages/engine/src/__tests__/reviewer.test.ts | 130 +++++++++++++++++++--
packages/engine/src/__tests__/triage.test.ts | 14 ++-
packages/engine/src/reviewer.ts | 91 +++++++++------
packages/engine/src/triage.ts | 3 +
7 files changed, 369 insertions(+), 46 deletions(-)
Fusion-Task-Id: FN-7212
Fusion-Task-Lineage: 34820552-e99c-4da0-97ef-fb1812cb917e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 18:07:02 -07:00
gsxdsm
2051516f8b
FN-7205: prefer live concurrency counts
...
Prefer live runtime stores for concurrency counters so dashboard totals match active agent enforcement.
- Prefer engine-manager task stores before default fallback stores when sourcing live running-agent counts.
- Count running agents from slim task lists across active lifecycle states instead of trusting stale in-progress queries.
- Add regressions for count normalization, default-project store precedence, and scoped semaphore limit changes.
- Add a patch changeset for the published Fusion CLI package.
Files changed:
.changeset/fn-7205-concurrency-counter-enforcement.md | 7 ++++
packages/core/src/__tests__/live-agent-count.test.ts | 18 ++++++++-
packages/dashboard/src/__tests__/server.test.ts | 44 ++++++++++++++++++++--
packages/dashboard/src/server.ts | 8 ++--
packages/engine/src/__tests__/concurrency.test.ts | 38 +++++++++++++++++++
5 files changed, 106 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-7205
Fusion-Task-Lineage: 957d6b2a-b7c4-4fd1-b83b-62f5cd51ebda
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 17:14:00 -07:00