Phil Larson
b85a5d4531
fix(core): bound compound engineering review remediation ( #2532 )
...
## Summary
- cap Compound Engineering Code Review remediation at two Execute→Review
repair passes
- enable no-progress detection for the built-in CE workflow
- preserve explicit project/workflow overrides while making the authored
CE default visible in settings and docs
- update stale IR/changeset language that still described Code Review as
unbounded when unset
## Why
The previous CE default was effectively unbounded. A reviewer that
repeatedly returned `REVISE` could consume thousands of remediation
cycles without terminally parking the task. The built-in workflow should
fail closed after a small, explicit budget while still allowing
operators to author a different numeric cap.
## Verification
- `FUSION_PG_TEST_SKIP=1 corepack pnpm@10.33 .0 --filter @fusion/core
exec vitest run src/__tests__/builtin-workflows.test.ts` — 46 passed, 17
skipped
- `corepack pnpm@10.33 .0 --filter @fusion/core typecheck`
- `corepack pnpm@10.33 .0 --filter @fusion/dashboard exec vitest run
app/components/__tests__/WorkflowSettingsPanel.test.tsx
app/components/__tests__/workflow-setting-display.test.ts` — 33 passed
- `corepack pnpm@10.33 .0 --filter @fusion/dashboard typecheck`
- `corepack pnpm@10.33 .0 changeset status --since=origin/main`
- `git diff --check origin/main...HEAD`
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Improvements**
- Compound Engineering Code Review now caps remediation attempts at 2;
after two unsuccessful attempts, the process parks instead of retrying
indefinitely.
- Post-restart review recovery now completes in a single maintenance
cycle to reduce delays.
- Default post-review fix budget increased from 3 to 10.
- Review revision limits now consistently honor workflow-authored
defaults when settings are left empty, and `0` disables automatic
remediation.
- **Documentation**
- Updated the workflow editor, settings reference, workflow steps, and
operator panel text to clarify cap/default/disable semantics (including
CE: 2).
- **Tests**
- Added/updated unit tests to validate the new bounded remediation
behavior and messaging.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-29 00:05:29 -07:00
gsxdsm
47d030215c
feat(workflow): run pre-merge review gates in the In review column
...
Code Review and Browser Verification now run with the card in `in-review`
instead of `in-progress`, so the board shows the card under review with the
running step as a badge (matching the Coding (Ideas) preset). Their paired
remediation nodes stay in `in-progress`, so a changes-requested verdict
visibly sends the card back to implementation.
The column move IS the badge switch: the dashboard badge was already
lane-gated on `column === "in-review"`. Applied to the shared stepwise
coding IR, so it is inherited by builtin:coding (the default),
builtin:stepwise-coding, builtin:brainstorming and builtin:coding-ideas;
builtin:legacy-coding keeps its historical placement.
Two consequences handled:
- Capacity: `in-review` has no `wip` trait, so the slot is released during
review and the remediation crossing back into `in-progress` can hit the
non-bypassable in-transaction capacity check. The column boundary now
PARKS the run on a `capacity-exhausted` rejection instead of failing it,
preserving the failed gate result and worktree so the next graph run
retries once a slot frees. Non-capacity rejections still propagate.
- Reopen clears: `applyReopenFieldClears` wiped `workflowStepResults` on
every in-review -> in-progress move, which the remediation crossing now
performs routinely. That destroyed the remediation input, made
`routeRetryableRemediationGraphFailureToPreMergeFix` and
`recoverFailedPreMergeWorkflowStep` silently no-op, and — worse — made
both `getTaskMergeBlocker` branches vacuously false, so a card could
return to `in-review` and be mergeable with its gate never re-run. Now
exempted for graph-owned in-review -> in-progress crossings only;
operator reopens, merge bounces and every -> todo/triage rebound still
clear, so the executor's documented bounce invariant is unchanged.
Adds regression coverage for both (there was previously none for the
reopen clear in either direction), and annotates the unreachable legacy
scheduler dispatch block rather than mirroring the fix into dead code.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-26 02:04:40 -07:00
gsxdsm
227281dc32
FN-8503: preserve unbounded Code Review retries
...
Keep Code Review remediation retry policies accurate across graph execution and recovery.
- Preserve unlimited retry presentation when Code Review has no configured cap
- Enforce finite Code Review caps during failed-step recovery
- Validate non-negative revision settings and document the active retry policy
Files changed:
.../fn-8503-unbounded-code-review-retries.md | 7 ++
docs/workflow-steps.md | 2 +-
.../core/src/__tests__/builtin-workflows.test.ts | 8 +-
packages/core/src/builtin-workflow-settings.ts | 4 +
.../workflow-graph-optional-step-fix.test.ts | 135 +++++++++++++++++++++
packages/engine/src/executor.ts | 51 ++++++--
6 files changed, 193 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-8503
Fusion-Task-Lineage: 7bd555d1-23e5-42ea-b6f5-0b9fe4da7f94
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-22 18:32:36 -07:00
gsxdsm
53e3063e9f
FN-8490: load skills for foreach step-execute sessions
...
Honor skill-executor configuration for implementation sessions created by foreach templates.
- Propagate validated step-execute skill names through workflow seam context.
- Load namespaced and bare skills with configured discovery paths for pinned step sessions.
- Add regression coverage, workflow documentation, and a minor changeset.
Files changed:
.changeset/fn-8490-step-execute-skill.md | 7 ++
docs/workflow-steps.md | 4 +-
.../__tests__/step-execute-skill-loading.test.ts | 128 +++++++++++++++++++++
packages/engine/src/executor.ts | 62 +++++++++-
packages/engine/src/workflow-node-handlers.ts | 21 ++++
5 files changed, 219 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-8490
Fusion-Task-Lineage: aa1ff02d-3139-45f2-8853-f53c0aef0f2f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-22 15:07:59 -07:00
gsxdsm
648971634a
FN-8461: suppress spurious workflow skill-load warnings
...
Prevent optional CE configuration from producing warnings when a requested plugin skill is discoverable.
- Merge plugin skill body directories with the optional CE discovery root
- Warn only when the named workflow skill lacks every viable discovery source
- Cover plugin, CE-namespaced, and unrelated-skill discovery cases
Files changed:
.changeset/fn-8461-skill-load-warning.md | 7 +
docs/workflow-steps.md | 8 +-
.../__tests__/ce-workflow-step-executor.test.ts | 149 ++++++++++++++++++++-
.../engine/src/__tests__/executor-test-helpers.ts | 1 +
packages/engine/src/executor.ts | 53 ++++++--
5 files changed, 200 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-8461
Fusion-Task-Lineage: ef743df4-8bd2-44e6-9498-f6448738d6dc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-21 19:05:48 -07:00
gsxdsm
c8b4e23ca4
FN-8357: show verification videos in the Quality hub
...
Surface executor-produced task verification videos in the top-level Quality hub.
- Fetch review-artifact settings and video artifacts per selected project.
- Render tokenized inline videos with source-task navigation and responsive states.
- Add host interop aliases, coverage, documentation, and a minor changeset.
Files changed:
.changeset/FN-8357-quality-verification-videos.md | 7 +
docs/settings-reference.md | 2 +-
docs/workflow-steps.md | 2 +-
packages/dashboard/tsconfig.app.json | 1 +
packages/dashboard/vite.config.ts | 2 +
packages/dashboard/vitest.config.ts | 2 +
plugins/fusion-plugin-quality/package.json | 1 +
.../dashboard-view-verification-videos.test.tsx | 131 ++++++++++++++++++
.../src/dashboard-interop.d.ts | 20 +++
.../fusion-plugin-quality/src/dashboard-view.css | 87 ++++++++++++
.../fusion-plugin-quality/src/dashboard-view.tsx | 151 +++++++++++++++++++--
plugins/fusion-plugin-quality/tsconfig.json | 1 +
plugins/fusion-plugin-quality/vitest.config.ts | 8 ++
pnpm-lock.yaml | 135 +++++++++++++++++-
14 files changed, 532 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-8357
Fusion-Task-Lineage: 728a5417-87ed-4203-850d-8ee108206766
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 19:51:58 -07:00
gsxdsm
bcdad279d7
FN-8289: add feature-video review artifacts
...
Add gated local feature-video capture to completed user-facing deliverables.
- Capture loopback scenario WebM recordings through the existing artifact registry.
- Keep recording failures non-blocking and cover gated, unsafe, and failed capture paths.
- Document the scenario contract and package the Playwright runtime dependency.
Files changed:
.changeset/fn-8289-feature-video.md | 7 +
docs/workflow-steps.md | 8 +
packages/cli/package.json | 3 +-
packages/cli/tsup.config.ts | 7 +
packages/engine/package.json | 3 +-
.../__tests__/executor-review-artifacts.test.ts | 44 ++++
packages/engine/src/executor.ts | 33 +++
.../src/review-artifacts/feature-video.test.ts | 75 +++++++
.../engine/src/review-artifacts/feature-video.ts | 226 +++++++++++++++++++++
packages/engine/src/review-artifacts/index.ts | 10 +
pnpm-lock.yaml | 6 +
11 files changed, 420 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-8289
Fusion-Task-Lineage: 8a34675a-2417-4669-a14a-b74c4aa99331
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 13:53:58 -07:00
gsxdsm
e46ffebde1
FN-7985: surface review budget exhaustion and configure replan cap
...
Expose exhausted Plan Review replan budgets for operator approval and allow workflows to configure the cap.
- Add validated numeric workflow setting support and a Plan Review replan-cap setting.
- Route configured cap exhaustion with a distinct approval reason and preserve fallback behavior.
- Display the budget-exhaustion state across task cards, lists, and details.
- Add tests, localized copy, documentation, and a minor changeset.
Files changed:
.changeset/fn-7985-review-budget-approval.md | 7 ++++
docs/settings-reference.md | 9 +++--
docs/workflow-steps.md | 2 +-
.../builtin-workflow-settings-triage.test.ts | 27 +++++++++++++--
packages/core/src/builtin-workflow-settings.ts | 17 ++++++++++
packages/core/src/index.gate.ts | 1 +
packages/core/src/index.ts | 1 +
packages/core/src/workflow-ir-types.ts | 4 +++
packages/core/src/workflow-ir.ts | 27 +++++++++++++++
packages/core/src/workflow-settings-resolver.ts | 1 +
packages/core/src/workflow-settings.ts | 6 ++++
packages/dashboard/app/components/ListView.css | 19 +++++++++++
packages/dashboard/app/components/ListView.tsx | 22 +++++++++---
packages/dashboard/app/components/TaskCard.css | 18 ++++++++++
packages/dashboard/app/components/TaskCard.tsx | 6 ++--
.../dashboard/app/components/TaskDetailModal.tsx | 4 +--
.../app/components/__tests__/ListView.test.tsx | 30 +++++++++++++++++
.../app/components/__tests__/TaskCard.test.tsx | 17 ++++++++--
.../app/components/workflow-setting-display.ts | 11 ++++++
.../dashboard/app/utils/reviewBudgetApproval.ts | 11 ++++++
.../triage-plan-review-replan-cap.test.ts | 39 +++++++++++++++++++---
packages/engine/src/triage.ts | 21 ++++++++----
packages/i18n/locales/en/app.json | 2 +-
packages/i18n/src/resources.d.ts | 19 ++++++++---
24 files changed, 288 insertions(+), 33 deletions(-)
Fusion-Task-Id: FN-7985
Fusion-Task-Lineage: 125f101c-caca-45c2-8b40-996b2a31c019
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 01:32:23 -07:00
gsxdsm
3dcb62f40f
FN-8008: normalize plan approval fingerprints
...
Keep approval recovery idempotent when deterministic prompt hygiene is injected.
- Normalize plan approval fingerprints around Original Description and Frontend UX sections.
- Preserve re-approval for operator-authored plan changes and cover recovery behavior.
- Document the normalization contract and add a patch changeset.
Files changed:
.changeset/fn-8008-plan-approval-fingerprint.md | 7 +++
docs/workflow-steps.md | 2 +-
packages/core/src/__tests__/plan-approval.test.ts | 53 +++++++++++++++-
packages/core/src/plan-approval.ts | 73 ++++++++++++++++++++++-
packages/engine/src/__tests__/triage.test.ts | 45 ++++++--------
packages/engine/src/triage.ts | 40 ++-----------
6 files changed, 153 insertions(+), 67 deletions(-)
Fusion-Task-Id: FN-8008
Fusion-Task-Lineage: 9c0f415d-662a-455a-a4bd-b873307e53bc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-15 21:33:11 -07:00
gsxdsm
c0bef0bfbe
FN-7969: deprecate unused builtin Coding (Ideas) workflow
...
Hide builtin:coding-ideas from new selection after occupancy preflight, while keeping it resolvable for any existing task selections.
- Add builtin:coding-ideas to DEPRECATED_BUILTIN_WORKFLOW_IDS so it is excluded from defaultEnabledBuiltinWorkflowIds and listWorkflowDefinitions selection listings
- Keep getBuiltinWorkflow / direct resolution working for pre-existing Coding (Ideas) task selections
- Document deprecation and custom-workflow copy path in dashboard-guide and workflow-steps
- Extend builtin-workflows and settings-sections tests for hide-from-selection + management/resolution retention
- Add minor changeset for @runfusion/fusion
Files changed:
.changeset/fn-7969-deprecate-coding-ideas.md | 7 +++++++
docs/dashboard-guide.md | 2 +-
docs/workflow-steps.md | 2 +-
.../core/src/__tests__/builtin-workflows.test.ts | 28 ++++++++++++++--------
packages/core/src/builtin-workflows.ts | 9 +++----
packages/core/src/types.ts | 9 ++++---
.../app/__tests__/settings-sections.test.tsx | 2 ++
7 files changed, 43 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-7969
Fusion-Task-Lineage: 578ae727-e1b6-4ff9-a3a2-d1228c50fba6
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-15 16:47:01 -07:00
gsxdsm
214af98591
FN-7977: hold Plan Review provider failures without replan regression
...
Prevent provider, model, transport, and abort failures from bouncing tasks back to planning after they enter execution.
- Classify non-plan-defect Plan Review failures and skip needs-replan handoff
- Terminate graph traversal with plan-review-provider-failure-hold and retry in place
- Guard triage recovery so advanced column/worktree/step state is never overwritten
- Document planning-recovery no-regression invariant and add regression tests
- Add patch changeset for the operator-facing fix
Files changed:
.changeset/fn-7977-planning-failure-no-regression.md | 7 ++
docs/architecture.md | 1 +
docs/workflow-steps.md | 2 +-
packages/engine/src/__tests__/replan-target.test.ts | 17 +++-
packages/engine/src/__tests__/transient-error-detector.test.ts | 32 +++++-
packages/engine/src/__tests__/triage.test.ts | 110 +++++++++++++++++++++
packages/engine/src/__tests__/workflow-graph-optional-group.test.ts | 46 ++++++++-
packages/engine/src/__tests__/workflow-graph-optional-step-fix.test.ts | 36 +++++++
packages/engine/src/executor.ts | 62 +++++++++++-
packages/engine/src/replan-target.ts | 22 +++++
packages/engine/src/transient-error-detector.ts | 37 +++++++
packages/engine/src/triage.ts | 73 +++++++++++---
packages/engine/src/workflow-graph-executor.ts | 45 ++++++++-
13 files changed, 466 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-7977
Fusion-Task-Lineage: 6d62d3ca-c6f3-4d02-a377-d7fd59f0c0f9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-15 16:29:10 -07:00
gsxdsm
1c02e683b7
FN-7970: deprecate unused builtin:brainstorming from new selection
...
Hide the built-in Brainstorming workflow from new selection after occupancy preflight, while keeping it resolvable for existing tasks.
- Add DEPRECATED_BUILTIN_WORKFLOW_IDS and isBuiltinWorkflowDeprecated helper
- Exclude deprecated built-ins from defaults and selection listings
- Hide deprecated built-ins from Settings workflow enablement toggles
- Update docs/tests and add a minor changeset for the operator-facing change
Files changed:
.changeset/fn-7970-deprecate-brainstorming.md | 7 ++++
docs/workflow-steps.md | 2 +-
.../core/src/__tests__/builtin-workflows.test.ts | 40 ++++++++++++----------
packages/core/src/builtin-workflows.ts | 17 ++++++++-
packages/core/src/index.gate.ts | 2 ++
packages/core/src/index.ts | 2 ++
packages/core/src/task-store/remaining-ops-8.ts | 10 ++++--
packages/core/src/types.ts | 9 +++++
.../app/__tests__/settings-sections.test.tsx | 28 ++++++++++++++-
.../settings/sections/GeneralSection.tsx | 9 +++--
10 files changed, 101 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-7970
Fusion-Task-Lineage: 47f9cd6e-d843-4c14-b197-447ff2072e3b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-15 16:24:23 -07:00
gsxdsm
1ea185daa5
FN-7911: add workflow validate dry-run command, tool, and API route
...
Adds a non-mutating `fn workflow validate` dry-run path across CLI, agent tools, and dashboard API so custom workflow IR can be checked before create/update.
- Add `packages/cli/src/commands/workflow.ts` implementing `fn workflow validate <id> | --file <path>` with JSON/text output, wired into `bin.ts`.
- Add `fn_workflow_validate` agent tool (`agent-tools.ts`, `index.ts`) reusing the existing parseWorkflowIr/trait/code-node/column-agent validation used by create/update, performing no persistence.
- Add `POST /api/workflows/validate` route in `register-workflow-routes.ts` plus dashboard route test coverage.
- Extend heartbeat tool-gating/exposure tests and gating classifications to include `fn_workflow_validate` alongside the other workflow tools.
- Update CLI/agent extension docs (`docs/cli-reference.md`, `docs/agents.md`, `docs/workflow-steps.md`, fusion skill references) to document the new command/tool.
- Add changeset `.changeset/fn-7911-workflow-validate.md` (minor) describing the new capability.
Files changed:
.changeset/fn-7911-workflow-validate.md | 7 ++
docs/agents.md | 5 +-
docs/cli-reference.md | 13 ++
docs/workflow-steps.md | 3 +-
packages/cli/skill/fusion/SKILL.md | 2 +-
.../cli/skill/fusion/references/extension-tools.md | 10 ++
.../skill/fusion/references/fusion-capabilities.md | 1 +
.../src/__tests__/extension-workflow-tools.test.ts | 1 +
packages/cli/src/__tests__/extension.test.ts | 1 +
.../src/__tests__/workflow-docs-current.test.ts | 1 +
packages/cli/src/bin.ts | 22 ++++
packages/cli/src/commands/workflow.ts | 80 ++++++++++++
packages/cli/src/extension.ts | 10 ++
.../dashboard/src/__tests__/chat-manager.test.ts | 1 +
.../dashboard/src/__tests__/chat.rooms.test.ts | 1 +
.../planning-document-tools-exposure.test.ts | 1 +
.../__tests__/workflow-validate-route.test.ts | 101 +++++++++++++++
.../src/routes/register-workflow-routes.ts | 27 +++-
.../engine/src/__tests__/agent-action-gate.test.ts | 2 +-
.../agent-workflow-tools-exposure.test.ts | 70 ++++++++++-
.../src/__tests__/gating-classifications.test.ts | 3 +-
.../src/__tests__/heartbeat-executor.test.ts | 37 +++---
.../src/__tests__/heartbeat-session-prompt.test.ts | 5 +-
.../src/__tests__/permanent-agent-gating.test.ts | 2 +-
packages/engine/src/agent-heartbeat.ts | 5 +-
packages/engine/src/agent-tools.ts | 140 ++++++++++++++++++++-
packages/engine/src/executor.ts | 6 +
packages/engine/src/gating-classifications.ts | 2 +
packages/engine/src/index.ts | 4 +
29 files changed, 532 insertions(+), 31 deletions(-)
Fusion-Task-Id: FN-7911
Fusion-Task-Lineage: 903d15fe-a7ec-458f-aa34-8f2e895a9603
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-12 21:39:23 -07:00
gsxdsm
df8ad460af
FN-7772: add per-lane thinking level for workflow model lanes
...
Adds a per-workflow-lane thinking-level setting so execution, planning, and
review model lanes can each specify their own reasoning-effort/thinking
level, threaded through engine phase precedence so lane-specific settings
override the workflow default.
- Add workflow lane thinking-level settings to builtin workflow settings and
settings schema, with new types in core.
- Thread lane thinking-level precedence through model-resolution and engine
phase execution (executor, step-session-executor, triage,
agent-session-helpers).
- Surface per-lane thinking-level controls in the dashboard
WorkflowSettingsPanel and ProjectModelsSection.
- Add/adjust tests for workflow settings, agent-session-helpers, and the
dashboard settings panels.
- Update settings-reference.md and workflow-steps.md docs.
- Add changeset for the new feature (minor).
Files changed:
.changeset/fn-7772-workflow-lane-thinking.md | 7 ++++
docs/settings-reference.md | 10 ++---
docs/workflow-steps.md | 4 +-
.../core/src/__tests__/workflow-settings.test.ts | 41 ++++++++++++++++++++
packages/core/src/builtin-workflow-settings.ts | 27 ++++++++++++-
packages/core/src/index.ts | 4 +-
packages/core/src/model-resolution.ts | 45 +++++++++++++++++++++-
packages/core/src/settings-schema.ts | 3 ++
packages/core/src/types.ts | 6 +++
.../app/components/WorkflowSettingsPanel.tsx | 35 ++++++++++++++---
.../__tests__/SettingsModal.models-auth.test.tsx | 7 +++-
.../__tests__/WorkflowSettingsPanel.test.tsx | 31 +++++++++++++++
.../settings/sections/ProjectModelsSection.tsx | 39 ++++++++++++++++---
.../src/__tests__/agent-session-helpers.test.ts | 13 ++++---
.../engine/src/__tests__/executor-test-helpers.ts | 1 +
packages/engine/src/agent-session-helpers.ts | 19 +++++----
packages/engine/src/executor.ts | 4 +-
packages/engine/src/step-session-executor.ts | 2 +-
packages/engine/src/triage.ts | 8 +++-
19 files changed, 264 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-7772
Fusion-Task-Lineage: 70aba3a9-66c2-4bb0-aff9-acabc7b98818
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-10 02:21:01 -07:00
gsxdsm
235ff4c65e
FN-7771: add per-node thinking level for workflow model bindings
...
Adds a per-node thinking-level override (config.thinkingLevel) for workflow IR model bindings so individual workflow nodes can set reasoning effort independently of the global default.
- Extend workflow-ir types/schema and workflow-steps-to-ir conversion to carry config.thinkingLevel per node
- Wire thinkingLevel through executor and step-session-executor so the engine applies the per-node override during model calls
- Add a thinking-level control to WorkflowNodeEditor for authoring per-node overrides in the dashboard
- Add/extend tests covering IR round-trip, steps-to-ir conversion, executor model binding, and the WorkflowNodeEditor UI
- Document the new setting in docs/workflow-steps.md
- Add changeset for @runfusion/fusion (minor)
Files changed:
.changeset/fn-7771-workflow-node-thinking.md | 7 +++
docs/workflow-steps.md | 10 ++-
packages/core/src/__tests__/workflow-ir.test.ts | 42 +++++++++++++
.../src/__tests__/workflow-steps-to-ir.test.ts | 15 +++++
packages/core/src/store.ts | 1 +
packages/core/src/types.ts | 9 +++
packages/core/src/workflow-ir.ts | 21 +++++++
packages/core/src/workflow-steps-to-ir.ts | 5 ++
.../app/components/WorkflowNodeEditor.tsx | 42 ++++++++++++-
.../__tests__/WorkflowNodeEditor.test.tsx | 73 ++++++++++++++++++++++
.../engine/src/__tests__/executor-test-helpers.ts | 5 ++
.../__tests__/executor-workflow-step-model.test.ts | 31 +++++++++
.../src/__tests__/workflow-step-review.test.ts | 53 ++++++++++++++++
packages/engine/src/executor.ts | 61 ++++++++++++++++--
packages/engine/src/step-session-executor.ts | 12 +++-
packages/engine/src/workflow-node-handlers.ts | 29 ++++++++-
16 files changed, 404 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-7771
Fusion-Task-Lineage: 5dbe3efb-773d-47db-9412-b740eb1d7745
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-10 01:49:15 -07:00
gsxdsm
6a13ad175e
FN-7732: remove dangling release-authorization UI/i18n/docs scaffolding
...
Narrative: The triage release-authorization gate itself was already removed in b5b0458; this cleans up the leftover scaffolding it left behind — an unemitted activity type, a dead TaskCard badge/label/CSS, orphaned i18n keys across all 6 locales, and a stale solutions doc — so the codebase no longer references a gate that no longer exists.
- Drop the unused `task:release-authorization-required` ActivityEventType and its label/rendering in ActivityFeed.tsx and ActivityLogModal.tsx
- Remove the dead `isReleaseAuthorizationHold` badge logic and `.awaiting-release-authorization` CSS class from TaskCard.tsx/TaskCard.css
- Simplify TaskDetailModal.tsx comments/logic now that legacy release-authorization holds render as ordinary manual plan-approval holds
- Delete orphaned i18n keys `tasks.awaitingReleaseAuthorization` and `taskDetail.plan.releaseAuthorizationHold` across en/es/fr/ko/zh-CN/zh-TW locales and resources.d.ts
- Delete the stale docs/solutions/architecture-patterns/release-triage-requires-user-authorization.md doc
- Update docs/workflow-steps.md and docs/settings-reference.md to describe the gate as removed (superseded by FN-7732) instead of documenting still-active behavior
- Add changeset for @runfusion/fusion (patch/internal)
Files changed:
.changeset/fn-7732-remove-release-authorization-block.md | 7 +++++
docs/settings-reference.md | 2 +-
docs/solutions/architecture-patterns/release-triage-requires-user-authorization.md | 33 ----------------------
docs/workflow-steps.md | 6 ++--
packages/core/src/types.ts | 8 ++++--
packages/dashboard/app/components/ActivityFeed.tsx | 5 ----
packages/dashboard/app/components/ActivityLogModal.tsx | 6 ----
packages/dashboard/app/components/TaskCard.css | 11 --------
packages/dashboard/app/components/TaskCard.tsx | 13 +++------
packages/dashboard/app/components/TaskDetailModal.tsx | 14 +++------
packages/i18n/locales/en/app.json | 3 --
packages/i18n/locales/es/app.json | 5 +---
packages/i18n/locales/fr/app.json | 5 +---
packages/i18n/locales/ko/app.json | 5 +---
packages/i18n/locales/zh-CN/app.json | 5 +---
packages/i18n/locales/zh-TW/app.json | 5 +---
packages/i18n/src/resources.d.ts | 3 --
17 files changed, 30 insertions(+), 106 deletions(-)
Fusion-Task-Id: FN-7732
Fusion-Task-Lineage: d4137bd8-9056-4062-9f2a-c6f5d47295f4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-09 19:58:07 -07:00
gsxdsm
927741a8cf
FN-7727: persist failed workflow step history across self-healing retries
...
Preserves prior failed pre-merge review attempts instead of overwriting them when self-healing re-runs a failed workflow step.
- Add optional bounded `priorAttempts?: WorkflowStepResult[]` field to `WorkflowStepResult` (capped at `MAX_WORKFLOW_STEP_PRIOR_ATTEMPTS`)
- Add shared pure `upsertWorkflowStepResult(existing, incoming, opts?)` helper in `@fusion/core` (packages/core/src/workflow-step-results.ts)
- Route the executor graph adapter's `recordWorkflowStepResult` and triage's `recordPlanReviewWorkflowResult` through the new helper so a self-healing recovery re-run snapshots the prior failed/advisory_failure attempt into `priorAttempts` instead of dropping it
- Selection logic (self-healing, merge-blocker, progress/timing) is unchanged and still reads only the current entry
- Surface prior failed attempts in the TaskDetailModal Summary tab's Workflow results list as a collapsed "previous failed attempts" disclosure
- Add core/engine/dashboard tests covering the upsert helper, self-healing recovery snapshotting, and the UI disclosure
- Document the behavior in docs/workflow-steps.md
- Add changeset for @runfusion/fusion (patch)
Files changed:
.changeset/fn-7727-persist-failed-step-history.md | 7 ++
docs/workflow-steps.md | 15 +++
.../src/__tests__/workflow-step-results.test.ts | 138 +++++++++++++++++++++
packages/core/src/index.gate.ts | 4 +
packages/core/src/index.ts | 4 +
packages/core/src/types.ts | 19 +++
packages/core/src/workflow-step-results.ts | 99 +++++++++++++++
.../dashboard/app/components/TaskDetailModal.css | 55 ++++++++
.../dashboard/app/components/TaskSummaryTab.tsx | 42 ++++++-
.../TaskSummaryTab.prior-attempts.test.tsx | 89 +++++++++++++
.../clear-terminal-workflow-step-failures.test.ts | 27 ++++
packages/engine/src/__tests__/self-healing.test.ts | 50 ++++++++
...flow-step-results-self-healing-recovery.test.ts | 115 +++++++++++++++++
packages/engine/src/executor.ts | 29 +++--
packages/engine/src/triage.ts | 14 ++-
15 files changed, 688 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-7727
Fusion-Task-Lineage: 7316fb18-bc92-426d-91f4-b1a4ad41c9b1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-09 19:58:05 -07:00
gsxdsm
626e00288c
FN-7720: add operator review-lane bypass for stranded pre-merge review failures
...
Add a policy-gated review-lane bypass primitive so operators can unstick cards stranded by a failed pre-merge review step (e.g. the no-feedback review-engine defect), without exposing it to agent-driven lanes.
- Add `store.bypassFailedPreMergeReviewStep(id, { reason, actor })` in @fusion/core plus `getLatestFailedPreMergeReviewStep` in task-merge.ts, and new `bypassedBy`/`bypassedAt`/`bypassReason`/`bypassedFromStatus`/`bypassedFromVerdict` fields on `WorkflowStepResult`
- Add operator-only `fn_task_bypass_review` CLI/pi-extension tool; explicitly withheld from executor/reviewer/triage agent tool lists
- Add `POST /tasks/:id/bypass-review` dashboard API route and wire it through `register-task-workflow-routes.ts` and legacy API compatibility layer
- Add dashboard UI affordance (context menu action + task detail modal + right-dock controller wiring) to trigger the bypass with a reason
- Add i18n strings for the bypass action/labels across en/es/fr/ko/zh-CN/zh-TW locales
- Update `gating-classifications.ts` to recognize the bypassed state
- Add unit tests: `store-bypass-review.test.ts`, `task-merge-bypass.test.ts`, extension test coverage, and `useTasks` hook test coverage
- Update docs (`docs/workflow-steps.md`, `docs/dashboard-guide.md`, AGENTS.md, fusion skill references) to describe the new bypass tool/route
- Add changeset `.changeset/fn-7720-review-lane-bypass-primitive.md` (minor)
Files changed:
$(git diff --cached --stat)
Fusion-Task-Id: FN-7720
Fusion-Task-Lineage: 590b020a-ae02-4b51-8189-df8f54bf3044
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-09 19:58:04 -07:00
gsxdsm
bec8987ce9
FN-7648: gate hold-release on trait-based unplanned-card check, not literal todo column
...
Blocks planning/intake column cards from entering processing columns regardless of literal column id, so renamed custom intake/planning columns are covered by the same guard as the legacy todo column.
- Add isUnplannedForExecution() in hold-release.ts: true when task.status==="planning", or when the card sits in the legacy todo column or a column carrying the intake trait AND its PROMPT.md still equals the bootstrap stub.
- Route issueRelease() (used by the sweep, promoteHeldTask, and releaseHeldTaskByEvent) through this guard before releasing into any countsTowardWip processing column.
- Update scheduler.ts's reserveSlot guard to use the same trait-based predicate instead of a hardcoded "todo" column id check.
- Add regression tests in hold-release.test.ts and scheduler-workflow-cutover.test.ts covering renamed intake/planning columns.
- Document the invariant in docs/architecture.md and docs/workflow-steps.md.
- Add changeset (patch) describing the fix.
Files changed:
.changeset/fn-7648-unplanned-intake-cards-never-execute.md | 7 +
docs/architecture.md | 2 +
docs/workflow-steps.md | 2 +
packages/engine/src/__tests__/hold-release.test.ts | 238 +++++++++++++++++++++
packages/engine/src/__tests__/scheduler-workflow-cutover.test.ts | 60 +++++-
packages/engine/src/hold-release.ts | 60 ++++++
packages/engine/src/scheduler.ts | 26 +--
7 files changed, 378 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-7648
Fusion-Task-Lineage: a4b54d30-f86d-4eb9-9cf2-6ac55b6dbe58
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-07 22:06:21 -07:00
gsxdsm
09a1c9d843
FN-7596: regression-test the Coding (Ideas) manual-intake lifecycle end-to-end
...
Adds cross-layer regression coverage for the manual-intake parking lifecycle (create -> parked -> operator Start promotion -> poll-time todo-discovery), and clarifies the workflow-steps doc to describe the tested lifecycle.
- packages/core: covers store create -> moveTask promotion out of the parked intake column
- packages/engine: covers triage poll ordering/discovery of the still-unplanned bootstrap-stub card
- packages/dashboard: covers TaskCard's Start affordance for parked cards
- docs: documents the full regression-tested lifecycle for manual-intake column parking (FN-7596)
Files changed:
docs/workflow-steps.md | 2 +-
.../__tests__/store-create-intake-column.test.ts | 26 ++++
.../app/components/__tests__/TaskCard.test.tsx | 153 +++++++++++++++++++++
packages/engine/src/__tests__/triage.test.ts | 119 +++++++++++++++-
4 files changed, 298 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-7596
Fusion-Task-Lineage: 267c3d9a-6181-4ca5-b871-7009c0204372
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-05 16:33:21 -07:00
gsxdsm
cf3fe8b485
FN-7591: make dashboard create surfaces resolve intake column from workflow instead of hard-coding triage
...
Fixes dashboard task creation so new cards land in the selected/default workflow's intake column instead of always forcing legacy triage, letting workflows like Coding (Ideas) park new cards in 'ideas' until an operator promotes them.
- InlineCreateCard, QuickEntryBox, and NewTaskModal no longer hard-code column:"triage"; InlineCreateCard now forwards workflowId at create time instead of applying it post-create.
- Fixed a glue-layer regression in useTaskHandlers.ts (handleBoardQuickCreate/handleModalCreate) that re-forced column:"triage" even after UI surfaces stopped sending it.
- Added/updated tests covering the store's intake-column resolution and the dashboard create surfaces/hooks.
- Documented the new manual-intake-column parking behavior in dashboard-guide.md and workflow-steps.md.
- Added a patch changeset for @runfusion/fusion.
Files changed:
.changeset/fn-7591-coding-ideas-intake.md | 7 +++
docs/dashboard-guide.md | 4 ++
docs/workflow-steps.md | 1 +
packages/core/src/__tests__/store-create-intake-column.test.ts | 20 ++++++++
packages/dashboard/app/App.tsx | 5 +-
packages/dashboard/app/components/InlineCreateCard.tsx | 28 ++++------
packages/dashboard/app/components/NewTaskModal.tsx | 5 +-
packages/dashboard/app/components/QuickEntryBox.tsx | 5 +-
packages/dashboard/app/components/TodoView.tsx | 7 ++-
packages/dashboard/app/components/__tests__/InlineCreateCard.test.tsx | 59 +++++++++++++++++++++-
packages/dashboard/app/components/__tests__/QuickEntryBox.test.tsx | 14 +++--
packages/dashboard/app/components/__tests__/TodoView.test.tsx | 10 ++--
packages/dashboard/app/components/__tests__/board-quickcreate-workflow-lane-visibility.test.tsx | 45 ++++++++++++++++-
packages/dashboard/app/hooks/__tests__/useTaskHandlers.test.ts | 27 ++++++++--
packages/dashboard/app/hooks/useTaskHandlers.ts | 8 ++-
15 files changed, 207 insertions(+), 38 deletions(-)
Fusion-Task-Id: FN-7591
Fusion-Task-Lineage: 510f0e6a-89e7-468f-a6df-ad6aebd5c33a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-05 13:15:56 -07:00
gsxdsm
53fe0d71b9
FN-7584: register builtin:brainstorming workflow with ask-user/exit-gate loop
...
Adds a discoverable built-in Brainstorming workflow composing the ask-user + exit-gate reach-out loop ahead of the standard coding plan/execute/review/merge spine, plus a WorkflowNodeEditor fix so clearing the ask-user question textarea deletes the config key instead of persisting an empty string.
- Add packages/core/src/builtin-brainstorming-workflow-ir.ts registering builtin:brainstorming (non-default, default-enabled): ask-user -> refine prompt -> exit-gate-on-approval ahead of the unmodified Coding plan/execute/review/merge spine
- Wire the new builtin into packages/core/src/builtin-workflows.ts and extend the builtin-workflows parity test suite
- Add builtin-brainstorming-workflow-ir.test.ts covering the new workflow's IR shape and validation
- Fix WorkflowNodeEditor.tsx ask-user question textarea onChange to delete the config.question key when cleared to empty (validateAskUserAndExitGateNodes rejects present-but-empty question; only an absent key falls back to the engine default)
- Update docs/workflow-steps.md to document builtin:brainstorming as a selectable built-in composition
- Add .changeset/fn-7584-brainstorming-builtin.md (minor, feature)
Files changed:
.changeset/fn-7584-brainstorming-builtin.md | 7 ++
docs/workflow-steps.md | 2 +-
.../builtin-brainstorming-workflow-ir.test.ts | 79 ++++++++++++++++
.../core/src/__tests__/builtin-workflows.test.ts | 66 +++++++++++++
.../core/src/builtin-brainstorming-workflow-ir.ts | 103 +++++++++++++++++++++
packages/core/src/builtin-workflows.ts | 46 +++++++++
.../app/components/WorkflowNodeEditor.tsx | 18 +++-
7 files changed, 319 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-7584
Fusion-Task-Lineage: 2c0258c2-9a35-403a-8688-ee49393a7231
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-05 11:31:48 -07:00
gsxdsm
42bbe58c03
FN-7579: add ask-user and exit-gate workflow nodes
...
Add workflow nodes for mid-flow user reach-out and early exit from a workflow run.
- Add `ask-user` IR node kind that reuses the await-input park/resume mechanism and surfaces the question in the task chat for brainstorming/clarification.
- Add `exit-gate` IR node kind that terminates the workflow early, with an optional condition.
- Wire both node kinds through the engine executor and workflow-node-handlers, including a new exit-gate-runner.
- Update the WorkflowNodeEditor palette, node summaries, and node help text for the two new node types.
- Extend workflow-flow-mapping to support the new node kinds.
- Keep `prompt`+`awaitInput` as a back-compat alias.
- Add core/engine/dashboard tests covering the new node kinds.
- Document the new nodes in docs/workflow-steps.md.
- Add changeset for the new minor feature.
Files changed:
.changeset/fn-7579-ask-user-exit-gate-nodes.md | 7 +
docs/workflow-steps.md | 28 ++++
packages/core/src/__tests__/workflow-ir.test.ts | 120 ++++++++++++++
packages/core/src/workflow-ir-types.ts | 12 +-
packages/core/src/workflow-ir.ts | 47 ++++++
.../app/components/WorkflowNodeEditor.tsx | 181 ++++++++++++++++++++-
.../app/components/__tests__/node-summary.test.ts | 43 +++++
.../__tests__/workflow-flow-mapping.test.ts | 49 ++++++
.../app/components/nodes/WorkflowNodeTypes.tsx | 14 +-
.../dashboard/app/components/nodes/node-help.ts | 24 +++
.../dashboard/app/components/nodes/node-summary.ts | 28 ++++
.../app/components/workflow-flow-mapping.ts | 4 +
.../workflow-graph-executor-handlers.test.ts | 115 +++++++++++++
.../src/__tests__/workflow-node-handlers.test.ts | 66 ++++++++
packages/engine/src/executor.ts | 23 ++-
packages/engine/src/workflow-node-handlers.ts | 18 +-
.../src/workflow-node-runners/exit-gate-runner.ts | 81 +++++++++
17 files changed, 849 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-7579
Fusion-Task-Lineage: 9a89ff49-200d-4a6c-b97c-15d219349ee5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-05 11:31:48 -07:00
gsxdsm
9592e3ac5c
FN-7569: skip re-asking manual plan approval for unchanged re-specified plans
...
Manual plan approval now skips re-asking for approval when a re-specification produces an identical plan to one already approved.
- Add nullable Task.approvedPlanFingerprint field with DB migration 139 to track the approved PROMPT.md fingerprint
- Skip re-parking at awaiting-approval when replan/plan-review-retry/self-healing rebound yields the same plan fingerprint as before
- Require fresh approval when the plan content changes or when a plan is rejected
- Leave Release Authorization, Workflow Plan Review, and auto-approve-all behavior unchanged
- Add/extend tests across core (db, plan-approval, store-persistence), engine (triage), and dashboard (routes-github) to cover fingerprint comparison and idempotent re-approval
- Update docs (settings-reference.md, workflow-steps.md) to describe the idempotent approval behavior
- Add changeset for @runfusion/fusion (patch)
Files changed:
.changeset/fn-7569-plan-approval-idempotent.md | 7 +
docs/settings-reference.md | 2 +-
docs/workflow-steps.md | 2 +
packages/core/src/__tests__/db.test.ts | 54 +++++++
packages/core/src/__tests__/plan-approval.test.ts | 31 +++-
.../core/src/__tests__/store-persistence.test.ts | 39 +++++
packages/core/src/db.ts | 22 ++-
packages/core/src/index.ts | 2 +-
packages/core/src/plan-approval.ts | 23 +++
packages/core/src/store.ts | 20 ++-
packages/core/src/types.ts | 13 ++
.../dashboard/src/__tests__/routes-github.test.ts | 69 +++++++-
.../src/routes/register-task-workflow-routes.ts | 37 ++++-
packages/engine/src/__tests__/triage.test.ts | 178 ++++++++++++++++++++-
packages/engine/src/triage.ts | 58 +++++--
15 files changed, 527 insertions(+), 30 deletions(-)
Fusion-Task-Id: FN-7569
Fusion-Task-Lineage: 7d3855ae-6f45-4571-90db-cf1ae3b541dd
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-05 11:31:46 -07:00
gsxdsm
6e4c207a7f
FN-7559: disambiguate release-authorization holds from manual plan-approval holds
...
Disambiguate release-authorization approval holds from manual plan-approval holds so auto-approve no longer appears broken.
- Add `Task.awaitingApprovalReason` (`"release-authorization" | null`) to distinguish the release-authorization gate from the independent manual plan-approval gate, both of which set `status: "awaiting-approval"`.
- Stamp `awaitingApprovalReason: "release-authorization"` when the release gate blocks a task, and explicitly clear it (`null`) when the manual plan-approval gate parks the task, so a stale reason never survives a replan.
- Add DB migration/persistence support for the new column in `db.ts`/`store.ts`/`types.ts`.
- TaskCard/TaskDetailModal now render a distinct status for release-authorization holds and suppress the generic manual Approve/Reject affordance for them.
- Add i18n string and docs updates (`settings-reference.md`, `workflow-steps.md`) plus a changeset.
- Extend regression tests in db, triage, TaskCard, and TaskDetailModal to cover the new reason field and disambiguated UI.
Files changed:
$(git diff --cached --stat)
Fusion-Task-Id: FN-7559
Fusion-Task-Lineage: 0b37cbf0-40a4-4165-8088-482ed365ba19
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-05 11:31:44 -07:00
gsxdsm
12a6d1bc6a
FN-7511: add planner overseer stage monitoring
...
Add records-only planner overseer monitoring across in-flight task lifecycle stages.
- Add a PlannerOverseerMonitor with normalized observations and deterministic watched-stage resolution.
- Wire ProjectEngine to poll in-progress and in-review tasks, gated by effective planner oversight level.
- Document the monitoring seam and add focused coverage plus a release changeset.
Files changed:
.changeset/fn-7511-planner-overseer-monitoring.md | 7 +
docs/architecture.md | 26 ++
docs/workflow-steps.md | 2 +
.../engine/src/__tests__/planner-overseer.test.ts | 294 ++++++++++++++++++
packages/engine/src/index.ts | 12 +
packages/engine/src/planner-overseer.ts | 338 +++++++++++++++++++++
packages/engine/src/project-engine.ts | 93 +++++-
7 files changed, 771 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7511
Fusion-Task-Lineage: 81b616cf-47e9-4769-b02d-fc7ebd3fcb2f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-04 12:55:25 -07:00
gsxdsm
0689250097
FN-7510: default planner oversight to autonomous
...
Enable full planner steering/control by default while preserving explicit workflow and task opt-outs.
- Document that planner oversight resolves as task override, workflow setting, then autonomous default.
- Add regression coverage for built-in workflow defaults, stored workflow overrides, and per-task overrides.
- Add a minor changeset for the published Fusion package.
Files changed:
.changeset/fn-7510-oversight-default.md | 7 ++
docs/workflow-steps.md | 9 ++-
.../plannerOversightLevel-default.test.ts | 79 ++++++++++++++++++++++
3 files changed, 93 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-7510
Fusion-Task-Lineage: 2dbf8273-4239-4754-9713-e089f75be930
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-04 12:38:14 -07:00
gsxdsm
68f5153e17
FN-7508: add planner oversight workflow setting
...
Declare a workflow-native planner oversight level with release notes and docs.
- Add the plannerOversightLevel enum setting with Off, Observe, Steer, and Autonomous recovery values.
- Export the oversight settings catalog and include it in built-in workflow defaults.
- Cover consistency, resolver defaults, and catalog membership with core tests.
- Document the workflow setting and add the published package changeset.
Files changed:
.../fn-7508-planner-oversight-level-setting.md | 7 +++++
docs/settings-reference.md | 8 ++++--
docs/workflow-steps.md | 17 +++++++-----
.../builtin-workflow-settings-triage.test.ts | 32 ++++++++++++++++++++++
.../src/__tests__/settings-consistency.test.ts | 4 ++-
.../__tests__/workflow-settings-resolver.test.ts | 1 +
packages/core/src/builtin-workflow-settings.ts | 26 ++++++++++++++++++
packages/core/src/index.ts | 1 +
8 files changed, 86 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-7508
Fusion-Task-Lineage: 1adc7ce6-9e0e-475e-956a-ee36edae0cdc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-04 11:26:31 -07:00
gsxdsm
8668a053dc
FN-7491: add workflow toggle for proactive triage splitting
...
Add a workflow-scoped policy switch so operators can keep large triage tasks intact unless subtask splitting is explicitly requested.
- Define triageProactiveSubtaskSplittingEnabled with default-on workflow settings, display formatting, and prompt rendering.
- Preserve mandatory breakIntoSubtasks behavior while disabling automatic oversized-task decomposition when the setting is false.
- Cover the new policy in core, engine, and dashboard tests plus settings/workflow docs and a changeset.
Files changed:
.changeset/FN-7491-triage-splitting-setting.md | 7 +++
docs/settings-reference.md | 6 +++
docs/workflow-steps.md | 10 ++--
packages/core/src/__tests__/agent-prompts.test.ts | 17 ++++--
.../builtin-workflow-settings-triage.test.ts | 23 ++++++++
packages/core/src/agent-prompts.ts | 27 ++--------
packages/core/src/builtin-workflow-settings.ts | 44 ++++++++++++++++
.../__tests__/WorkflowSettingsPanel.test.tsx | 53 +++++++++++++++++++
.../app/components/workflow-setting-display.ts | 10 ++++
.../__tests__/triage-threshold-settings.test.ts | 28 ++++++++++
packages/engine/src/__tests__/triage.test.ts | 61 +++++++++++++++++++---
11 files changed, 250 insertions(+), 36 deletions(-)
Fusion-Task-Id: FN-7491
Fusion-Task-Lineage: c982455a-685c-4ce2-8e33-6d1a7bb9d154
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-04 10:42:20 -07:00
gsxdsm
0f05156cb7
FN-7482: recover retryable review remediation failures
...
Recover retryable Code Review remediation failures so review tasks do not remain stranded after graph restarts.
- Route retryable pre-merge remediation graph failures back through the existing fix-pass handoff when durable failed gate evidence remains.
- Let self-healing revive parked Code Review and browser-verification remediation failures while excluding Plan Review replan failures and exhausted numeric caps.
- Document the remediation recovery behavior and add targeted executor/self-healing regression coverage.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-7482-code-review-remediation.md | 7 ++
docs/workflow-steps.md | 7 +-
.../__tests__/executor-graph-requeue-gate.test.ts | 129 ++++++++++++++++++++-
packages/engine/src/__tests__/self-healing.test.ts | 129 +++++++++++++++++++++
packages/engine/src/executor.ts | 101 ++++++++++++++++
packages/engine/src/self-healing.ts | 24 +++-
6 files changed, 387 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-7482
Fusion-Task-Lineage: 0f178ab6-308e-4587-b5f3-be4e621799a0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-03 21:47:00 -07:00
gsxdsm
d94c3591d3
FN-7381: honor project auto plan approval
...
Honor project-level auto plan approval across fresh and recovered triage finalization.
- Merge effective workflow settings during approved-task recovery before resolving the manual plan approval gate.
- Keep release authorization and Workflow Plan Review independent from manual plan approval bypasses.
- Add regression coverage for stored workflow approval settings overridden by project auto approval.
- Document the planApprovalMode precedence and release the fix as a patch.
Files changed:
.changeset/fn-7381-auto-plan-approval.md | 7 ++++
docs/settings-reference.md | 2 +-
docs/workflow-steps.md | 2 ++
.../src/__tests__/effective-settings-merge.test.ts | 12 +++++++
.../triage-plan-review-unavailable-retry.test.ts | 27 +++++++++++++-
packages/engine/src/__tests__/triage.test.ts | 42 ++++++++++++++++++++++
packages/engine/src/triage.ts | 13 ++++---
7 files changed, 99 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-7381
Fusion-Task-Lineage: c00fd0d9-ec0a-4dc5-8d6f-b49640157365
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 10:49:58 -07:00
gsxdsm
3a2f3b5ade
refactor(workflow): extract node runner boundaries
2026-07-01 00:51:01 -07:00
gsxdsm
7e74fe3a9b
FN-7293: honor workflow review revision overrides
...
Allow workflow review steps to opt into unbounded or capped revision retries while keeping recovery caps accurate.
- Add workflow settings for Plan Review and Code Review max revisions with display, docs, and changeset coverage.
- Resolve optional-step revision budgets through workflow settings, node overrides, and existing fallback limits.
- Track revision attempts per workflow step and hydrate slim self-healing rows before enforcing retry caps.
- Cover unbounded, capped, per-step, and slim-row recovery behavior with focused tests.
Files changed:
.changeset/fn-7293-unbounded-review-revisions.md | 7 +
docs/settings-reference.md | 12 +-
docs/workflow-editor.md | 4 +-
docs/workflow-steps.md | 3 +-
.../builtin-workflow-settings-triage.test.ts | 28 +++-
.../core/src/__tests__/builtin-workflows.test.ts | 29 ++++-
.../__tests__/workflow-settings-resolver.test.ts | 73 +++++++++++
packages/core/src/builtin-plan-review-group.ts | 6 +-
packages/core/src/builtin-workflow-settings.ts | 30 +++++
packages/core/src/index.ts | 5 +
packages/core/src/workflow-ir-types.ts | 15 ++-
packages/core/src/workflow-ir.ts | 5 +-
packages/core/src/workflow-settings-resolver.ts | 49 ++++++-
.../__tests__/WorkflowSettingsPanel.test.tsx | 52 ++++++++
.../app/components/workflow-setting-display.ts | 18 +++
packages/engine/src/__tests__/self-healing.test.ts | 143 ++++++++++++++++++++-
.../workflow-graph-optional-step-fix.test.ts | 130 ++++++++++++++++++-
packages/engine/src/executor.ts | 77 +++++++++--
packages/engine/src/self-healing.ts | 82 ++++++++++--
packages/engine/src/workflow-graph-executor.ts | 5 +-
20 files changed, 725 insertions(+), 48 deletions(-)
Fusion-Task-Id: FN-7293
Fusion-Task-Lineage: 19ee533f-ab8d-4e20-9a27-9cf0cf6dfec9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 13:12:27 -07:00
gsxdsm
01e04333ce
FN-7294: pass user context into workflow reviewers
...
Pass operator-authored task context into reviewer and workflow gate prompts.
- Include de-duped user comments and legacy steering in Plan Review, code review, and workflow-step prompt agents.
- Preserve reviewer comment context on reduced context-limit retry prompts and refresh comments before in-session review calls.
- Document workflow prompt-agent comment behavior, add regression coverage, and add a patch changeset.
Files changed:
.changeset/FN-7294-reviewer-comment-context.md | 7 +
docs/workflow-steps.md | 7 +
.../src/__tests__/agent-user-comments.test.ts | 81 ++++++++--
.../executor-review-step-indexing.test.ts | 165 ++++++++++++++++++++-
.../src/__tests__/reviewer-workspace.test.ts | 39 +++++
packages/engine/src/__tests__/reviewer.test.ts | 26 +++-
packages/engine/src/__tests__/triage.test.ts | 49 ++++++
packages/engine/src/agent-user-comments.ts | 42 ++++--
packages/engine/src/executor.ts | 31 +++-
packages/engine/src/reviewer.ts | 10 +-
packages/engine/src/triage.ts | 20 ++-
11 files changed, 443 insertions(+), 34 deletions(-)
Fusion-Task-Id: FN-7294
Fusion-Task-Lineage: ea5ff33e-99ba-4fdd-9257-9778849b91bb
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 12:56:03 -07:00
gsxdsm
3cd5695f52
FN-7288: remove quick-add Plan buttons
...
Remove quick-add planning buttons from board create surfaces while preserving other planning entry points.
- Remove the Plan button, icon imports, handlers, test id, disabled state, tooltip, and click targets from QuickEntryBox and InlineCreateCard.
- Update quick-add and mobile board tests to assert the Plan affordance is absent while task creation and Subtask behavior remain available.
- Refresh dashboard docs and add a patch changeset describing the quick-add Plan removal.
Files changed:
.changeset/fn-7288-remove-quick-add-plan-button.md | 7 +
docs/dashboard-guide.md | 4 +-
docs/getting-started.md | 2 +-
docs/workflow-steps.md | 2 +-
.../dashboard/app/components/InlineCreateCard.tsx | 38 +---
.../dashboard/app/components/QuickEntryBox.tsx | 38 +---
.../components/__tests__/InlineCreateCard.test.tsx | 56 +++---
.../components/__tests__/QuickEntryBox.test.tsx | 196 +++++----------------
.../app/components/__tests__/board-mobile.test.tsx | 6 +-
9 files changed, 97 insertions(+), 252 deletions(-)
Fusion-Task-Id: FN-7288
Fusion-Task-Lineage: b4a5d6b6-83e7-4b0c-a38d-6ff36d8cd97e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 10:40:49 -07:00
gsxdsm
7eca99c8b1
FN-7283: clear optional workflow steps in fast mode
...
Fast mode now treats optional workflow steps as opt-out by default while preserving manual reselection.
- Clear default-on optional workflow steps when switching task creation forms into Fast mode.
- Submit explicit empty optional-step selections in Fast mode to prevent store defaults from reappearing.
- Allow explicitly enabled optional workflow groups to run under Fast mode and during recovery.
- Document the Fast-mode optional-step contract and add regression coverage for dashboard and engine flows.
Files changed:
.changeset/FN-7283-fast-mode-optional-steps.md | 7 ++
docs/workflow-steps.md | 15 ++-
packages/dashboard/app/components/NewTaskModal.tsx | 27 +++--
.../dashboard/app/components/QuickEntryBox.tsx | 29 ++++-
packages/dashboard/app/components/TaskForm.tsx | 42 +++++--
.../app/components/__tests__/NewTaskModal.test.tsx | 58 +++++++++
.../components/__tests__/QuickEntryBox.test.tsx | 84 +++++++++++++
.../app/components/__tests__/TaskForm.test.tsx | 85 ++++++++++++-
.../__tests__/executor-fast-mode-workflows.test.ts | 134 +++++++++++++++++++++
packages/engine/src/executor.ts | 107 ++++++++++------
packages/engine/src/workflow-graph-executor.ts | 14 ++-
11 files changed, 539 insertions(+), 63 deletions(-)
Fusion-Task-Id: FN-7283
Fusion-Task-Lineage: e7028af8-3d05-4db7-8db9-a16c7f7575de
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 09:46:26 -07:00
gsxdsm
f01e5c9651
FN-7247: document current workflow behavior
...
Refresh workflow documentation to match the latest runtime, dashboard, and agent tool behavior.
- Add a current workflow behavior inventory covering built-ins, fail-closed runtime semantics, optional gates, settings, tools, routing, and create forwarding.
- Clarify dashboard All workflows aggregation, workflow badges, and workflow-aware task creation behavior.
- Expand editor, agent, CLI, and settings docs for governed workflow authoring, values, trait inspection, and selection boundaries.
- Add docs drift tests requiring workflow docs index coverage and current behavior markers.
Files changed:
docs/agents.md | 5 +-
docs/cli-reference.md | 11 ++-
docs/dashboard-guide.md | 10 ++-
docs/settings-reference.md | 5 ++
docs/workflow-editor.md | 15 +++-
docs/workflow-steps.md | 48 ++++++++---
.../cli/src/__tests__/docs-readme-index.test.ts | 4 +
.../src/__tests__/workflow-docs-current.test.ts | 95 ++++++++++++++++++++++
8 files changed, 172 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-7247
Fusion-Task-Lineage: 72bf0c89-80a3-440c-b6aa-1aea315279f5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 19:46:23 -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
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
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
d4b8032f28
feat(workflows): add optional plan review gate
2026-06-28 23:38:33 -07:00
gsxdsm
6ce0b44058
feat(workflows): make coding stepwise with final review
2026-06-28 23:24:29 -07:00
gsxdsm
ac4c3b7a01
FN-7192: Document custom workflow capacity dispatch
...
Clarify the custom workflow migration boundary and lock dispatch behavior with tests.
- Document that pure-v1 custom workflows keep trait-less default columns for rollback compatibility.
- Show the v2 hold(capacity) and wip traits required for custom workflow capacity dispatch.
- Add core and engine regression coverage for pure-v1 stranding and authored-v2 release behavior.
Files changed:
docs/workflow-editor.md | 34 +++++
docs/workflow-steps.md | 40 ++++++
.../__tests__/custom-v1-workflow-dispatch.test.ts | 154 +++++++++++++++++++++
packages/engine/src/__tests__/hold-release.test.ts | 81 ++++++++++-
4 files changed, 306 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-7192
Fusion-Task-Lineage: ff7af258-c0cb-4b81-8919-9e076c3ac1df
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 09:59:57 -07:00
gsxdsm
631e8fc675
FN-7159: add canonical CE HTML checklist repair
...
Enable CE HTML document review to safely canonicalize malformed checklists.
- Add a DOM-safe checklist-repair operation that rewrites provable markdown-marker and checkbox list shapes into canonical CE checklist HTML.
- Refuse ambiguous, nested, state-bearing, or protected checklist-like markup while preserving report-only fallback semantics.
- Expand HTML mutation and CE doc-review tests plus operator docs and rendering guidance for the canonical checklist contract.
Files changed:
.changeset/fn-7159-canonical-html-checklist.md | 7 +
docs/workflow-editor.md | 2 +-
docs/workflow-steps.md | 5 +-
.../src/__tests__/ce-doc-review-html-mode.test.ts | 6 +-
.../src/artifacts/__tests__/html-mutation.test.ts | 135 ++++++++++++++-
.../src/artifacts/html-mutation.ts | 186 ++++++++++++++++++++-
.../ce-brainstorm/references/html-rendering.md | 31 ++++
.../src/skills/ce-doc-review/SKILL.md | 13 +-
.../skills/ce-ideate/references/html-rendering.md | 31 ++++
.../skills/ce-plan/references/html-rendering.md | 31 ++++
10 files changed, 436 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-7159
Fusion-Task-Lineage: bbde7003-2942-4363-98d5-53bc3a5976b8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 09:20:17 -07:00
gsxdsm
fb509b1ed3
FN-7190: fix linear built-in workflow dispatch
...
Ensure selectable linear built-in workflows carry the default queue traits needed for Todo release.
- Convert linear built-in workflow IR to v2 with cloned canonical coding workflow columns.
- Guard synthesized linear built-ins so todo retains hold-capacity dispatch traits.
- Cover quick-fix, review-heavy, design, and compound-engineering Todo release behavior with regression tests.
- Document that selectable built-ins dispatch through capacity-released queue columns.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7190-linear-builtin-todo-hold.md | 7 ++
docs/workflow-editor.md | 2 +-
docs/workflow-steps.md | 5 +
.../core/src/__tests__/builtin-workflows.test.ts | 110 +++++++++++++++++++++
packages/core/src/builtin-workflows.ts | 46 ++++++---
packages/engine/src/__tests__/hold-release.test.ts | 28 ++++++
6 files changed, 181 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-7190
Fusion-Task-Lineage: a0a40365-4bd5-49a8-8ae4-5e313cf1d4e0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 08:19:01 -07:00
gsxdsm
fecb27e768
FN-7149: add DOM-safe CE HTML mutation
...
Add a parse5-backed mutation path for CE HTML artifacts with docs and validation coverage.
- Add safe CE HTML mutation helpers for open-question append, heading repair, whitespace normalization, visible-text replacement, atomic writes, and rollback on validation failure.
- Cover DOM mutation behavior and ce-doc-review HTML-mode expectations with focused tests.
- Update CE skill/reference guidance and workflow docs to require DOM-safe artifact edits with report-only fallback.
- Add parse5 to the compound engineering plugin and record the published CLI changeset.
Files changed:
.changeset/fn-7149-dom-safe-html-mutation.md | 7 +
docs/workflow-editor.md | 2 +-
docs/workflow-steps.md | 10 +-
.../package.json | 1 +
.../src/__tests__/ce-doc-review-html-mode.test.ts | 38 +-
.../src/artifacts/__tests__/html-mutation.test.ts | 228 +++++++++
.../src/artifacts/html-mutation.ts | 519 +++++++++++++++++++++
.../src/skills/ce-brainstorm/references/handoff.md | 12 +-
.../ce-brainstorm/references/html-rendering.md | 12 +-
.../src/skills/ce-doc-review/SKILL.md | 20 +-
.../skills/ce-ideate/references/html-rendering.md | 12 +-
.../src/skills/ce-plan/SKILL.md | 18 +-
.../skills/ce-plan/references/html-rendering.md | 16 +-
.../src/skills/ce-plan/references/plan-handoff.md | 24 +-
pnpm-lock.yaml | 3 +
15 files changed, 853 insertions(+), 69 deletions(-)
Fusion-Task-Id: FN-7149
Fusion-Task-Lineage: eaf84a8b-a52b-487d-9517-22e4499e8af7
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 08:03:32 -07:00
gsxdsm
987abc763b
FN-7162: reopen actionable steps after review bounces
...
Post-verdict remediation now resumes executable work before rechecking optional gates.
- Reopen the terminal verification/delivery suffix together with the nearest actionable implementation step for revision bounces.
- Cover Code Review, Browser Verification, gate-promoted revisions, and non-revision optional outcomes with regression tests.
- Document post-verdict bounce semantics and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7162-post-verdict-bounce-step-completion.md | 7 ++
docs/workflow-steps.md | 9 +-
packages/engine/src/__tests__/executor-step-session.test.ts | 117 +++++++++++++++++++--
packages/engine/src/__tests__/workflow-graph-optional-step-fix.test.ts | 60 +++++++++++
packages/engine/src/executor.ts | 51 +++++++--
5 files changed, 222 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-7162
Fusion-Task-Lineage: 8d422fc9-54e8-431d-97bb-e7a4a6763eaa
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 23:01:10 -07:00
gsxdsm
7ebf58ee3b
FN-7147: add report-only HTML CE doc review
...
Enable CE document review to inspect HTML artifacts without mutating generated plans.
- Expand ce-doc-review guidance to accept markdown and HTML plan artifacts, keeping autofix/write-back only for markdown.
- Update ce-plan and brainstorm handoffs so HTML plans route through report-only findings instead of skipped-review envelopes.
- Add regression coverage that rejects legacy HTML-skip wording across the edited CE review surfaces.
- Document the compound-engineering workflow behavior and add the release changeset.
Files changed:
.changeset/fn-7147-html-aware-ce-doc-review.md | 7 ++
docs/workflow-editor.md | 2 +-
docs/workflow-steps.md | 4 +-
.../src/__tests__/ce-doc-review-html-mode.test.ts | 81 ++++++++++++++++++++++
.../src/skills/ce-brainstorm/references/handoff.md | 26 ++++---
.../ce-brainstorm/references/html-rendering.md | 20 +++---
.../src/skills/ce-doc-review/SKILL.md | 37 ++++++----
.../skills/ce-ideate/references/html-rendering.md | 20 +++---
.../src/skills/ce-plan/SKILL.md | 25 ++++---
.../skills/ce-plan/references/html-rendering.md | 18 ++---
.../src/skills/ce-plan/references/plan-handoff.md | 37 +++++-----
11 files changed, 196 insertions(+), 81 deletions(-)
Fusion-Task-Id: FN-7147
Fusion-Task-Lineage: 1f710dd9-ced7-4026-bc74-55a4160cb1bd
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 18:33:02 -07:00