gsxdsm
6ced5d73de
FN-6568: route merge-seam graph aborts to retry
...
Classify merge-seam abort provenance so non-paused merge graph failures retry instead of parking as pauses.
- Track paused-abort provenance separately from the legacy pause-abort bit.
- Route merge and requestMerge graph failures through bounded auto-merge retry when they are not genuine pauses.
- Preserve user/global pause parking behavior with regression coverage and document the lifecycle invariant.
Files changed:
.../fn-6568-merge-seam-abort-classification.md | 5 +
docs/architecture.md | 1 +
.../engine/src/__tests__/executor-recovery.test.ts | 131 ++++++++++++++++++++-
packages/engine/src/executor.ts | 122 +++++++++++++------
4 files changed, 221 insertions(+), 38 deletions(-)
Fusion-Task-Id: FN-6568
Fusion-Task-Lineage: 5d9ee4f8-0336-4fb9-aa95-beb65e6c1ed9
2026-06-17 04:16:10 -07:00
gsxdsm
cb91d3fc06
FN-6482: preserve awaiting graph failure states
...
Preserve resumable workflow graph waits instead of parking them as execute failures.
- Classify awaiting user input and CLI approval node values before terminal graph failure handling.\n- Read foreach container context values for step-execute instances.\n- Cover awaiting graph exits and genuine step-execute-unwired failures in executor recovery tests.\n\nFiles changed:\n .../engine/src/__tests__/executor-recovery.test.ts | 87 ++++++++++++++++++++++\n packages/engine/src/executor.ts | 34 +++++++++\n 2 files changed, 121 insertions(+)
Fusion-Task-Id: FN-6482
Fusion-Task-Lineage: 2443d4cd-1307-470a-b456-2f3b44b9cc83
2026-06-16 15:08:24 -07:00
gsxdsm
bc6dfd386e
FN-6478: surface paused workflow graph failures
...
Surface stranded paused workflow exits as actionable executor failures.
- Treat paused or aborted graph exits as benign only while the live task remains in-progress.
- Preserve terminal/review lifecycle state while recording operator-actionable failure evidence for advanced columns.
- Cover user-paused, pause-aborted, existing-failure, in-progress, in-review, todo, and done column recovery paths.
- Document the workflow lifecycle invariant and add a patch changeset.
Files changed:
.changeset/fn-6478-paused-workflow-executions.md | 5 +
docs/architecture.md | 1 +
.../engine/src/__tests__/executor-recovery.test.ts | 283 +++++++++++++++++++++
packages/engine/src/executor.ts | 30 ++-
4 files changed, 315 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6478
Fusion-Task-Lineage: 219d8612-6604-4dbc-9a3a-a1c7837419c1
2026-06-15 02:30:41 -07:00
gsxdsm
dd0ceec7dd
Merge main: keep ce-* agent install alongside stale-session recovery; address PR review
...
Resolves the onLoad conflict in the compound-engineering plugin by keeping both
the bundled ce-* persona-def install (this branch) and main's
recoverStaleSessionsForContext call.
Also addresses PR #1672 review feedback:
- executor: sentinel resume now guards on !live.paused (mirrors
runAwaitInputNode) so a still-paused task can't consume a reply and re-enter
the skill early.
- TaskCard: make the Answer-questions button text/title/aria-label fallbacks
consistent ("Answer questions") for label-in-name a11y; update test.
- ce-work: replace the unshipped `skill: ce-worktree` reference with the real
git worktree commands so Option B can't dead-end.
- ce-resolve-pr-feedback: invoke bundled scripts by absolute path via the new
FUSION_CE_SKILLS_DIR env (sessions run with cwd=projectRoot); add the Fusion
await-input sentinel path instead of AskUserQuestion for workflow steps;
normalize whitespace-only review bodies like PR comments.
- plugin: expose FUSION_CE_SKILLS_DIR (installed skills root) to step sessions.
- plan doc: add language to fenced block (markdownlint MD040).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-13 16:08:51 -07:00
gsxdsm
e0ec3d1fbd
FN-6368: route task chat steering to active sessions
...
Ensure task chat messages reach the live execution surface instead of waiting for a future session.
- Track seen steering comments for legacy, step-session, and workflow-step execution paths.
- Forward new task chat steering to active step sessions and workflow step sessions, including parallel step handles.
- Remove misleading inactive-session composer copy and cover the steering paths with regression tests.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6368-steering-running-session.md | 5 +
packages/dashboard/app/components/TaskChatTab.tsx | 12 +-
.../app/components/__tests__/TaskChatTab.test.tsx | 18 +-
.../src/__tests__/executor-step-session.test.ts | 108 ++++++++++++
.../engine/src/__tests__/executor-test-helpers.ts | 3 +
.../src/__tests__/step-session-executor.test.ts | 40 +++++
packages/engine/src/executor.ts | 186 ++++++++++++++-------
packages/engine/src/step-session-executor.ts | 16 ++
8 files changed, 312 insertions(+), 76 deletions(-)
Fusion-Task-Id: FN-6368
Fusion-Task-Lineage: 610a6185-b136-4fea-a4bd-ea78ab5aab47
2026-06-13 09:41:20 -07:00
gsxdsm
a43639b11a
feat(engine): pause workflow on skill-emitted await-input sentinel (U6)
...
When a skill in a graph workflow step emits ===FUSION_AWAIT_INPUT===,
runGraphCustomNode now parks the task awaiting-user-input with the
question (reusing the runAwaitInputNode pause/watermark model so the
dashboard input banner + task-card button surface it), and halts the
walk. On resume the node re-runs; the resume check consumes the user's
steering reply and lets the skill continue with the answer.
Pure sentinel parser unit-tested (6 cases). End-to-end pause/resume
through the graph interpreter needs verification on a running board.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-13 09:04:54 -07:00
gsxdsm
195f731b9d
feat(engine): optional systemPromptOverride for fn_spawn_agent (U2)
...
Add an optional systemPromptOverride to spawnAgentParams. When non-empty,
the spawned child runs under that persona system prompt instead of the
generic child base prompt (executor instructions still appended), so a
caller can spawn a specific persona — the primitive the compound-
engineering reviewer/research fan-out needs.
Two spikes confirmed the need: fn_spawn_agent had no persona param, and
Fusion has no plugin agent-contribution channel — so the lightweight path
is a generic override here + plugin-local persona defs the skill reads and
passes inline (revised KTD-4/U2/U3 in the plan). Behavioral coverage lands
with U10.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-13 07:03:10 -07:00
gsxdsm
c850a30cde
feat(workflow): headless step signal + bundle CE shipping skills (U1, U8)
...
U1: workflow-step sessions now carry FUSION_WORKFLOW_STEP=1 (scoped to
the step session, not the main executor) so skills detect autonomous
context and surface questions via await-input instead of a dead blocking
tool.
U8: bundle ce-commit, ce-commit-push-pr, and ce-resolve-pr-feedback
(vendored from compound-engineering 3.9.4) so the CE merge/PR flow has
its skills. Registered in COMPOUND_ENGINEERING_SKILLS; manifest test
updated.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-13 06:56:22 -07:00
gsxdsm
4e6df035c1
FN-6275: allow verified no-op completions
...
Allow executors to finish already-satisfied tasks without fabricating commits while preserving existing completion guards.
- Add leading sentinel parsing for premise-stale, no-op, duplicate, and redundant completion summaries.
- Permit zero-commit fn_task_done only for recognized sentinels or existing no-commit contracts, with audit log/activity details.
- Document the verified no-op completion contract and add regression coverage for accepted and refused paths.
Files changed:
.changeset/fn-6275-no-op-completion.md | 5 ++
docs/architecture.md | 1 +
.../src/__tests__/no-op-completion-marker.test.ts | 55 ++++++++++++
packages/core/src/agent-prompts.ts | 4 +
packages/core/src/index.ts | 5 ++
packages/core/src/no-op-completion-marker.ts | 48 ++++++++++
.../__tests__/executor-task-done-invariant.test.ts | 100 +++++++++++++++++++++
.../engine/src/__tests__/executor-test-helpers.ts | 1 +
packages/engine/src/executor.ts | 64 ++++++++++++-
9 files changed, 279 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6275
Fusion-Task-Lineage: 0a2ec21b-415f-411c-bfcd-4f1c19a6a136
2026-06-13 02:54:57 -07:00
gsxdsm
000a73b3f0
Merge origin/main into fix/fn-352-no-commit-coordination
...
Reconcile the FN-352 no-commit coordination guard skip with main's
independently-landed FN-424 work. Both branches added a no_commits
guard bypass at the same fn_task_done call site:
- FN-352 (this branch): getNoCommitEligibilityReason(task) covering
Review Level 1 coordination prompts with board-only scope and
explicit no-source intent (e.g. "Do not change product source").
- FN-424 (main): evaluatePromptDerivedNoCommitEligibility(...) plus
non-blocking audit logging of the skip.
Their prompt phrase-matching differs, so neither alone satisfies the
merged test file. Resolved by OR-ing both eligibility checks and
wrapping the skip in main's audit-logging block. Both helpers still
refuse the contradictory implementation+coordination prompt.
All 18 executor-task-done-invariant tests pass; engine typecheck clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-13 00:01:30 -07:00
gsxdsm
1450d39976
Merge origin/main into fix/fn-424-plan-only-no-commit
...
Resolve conflicts from main's FN-6232 single-source triage prompt refactor:
- Drop the inline FAST_TRIAGE_SYSTEM_PROMPT const removed by main; the fast
triage prompt now lives in agent-prompts.ts (planning-fast seam).
- Migrate the PR's no-commit/operational-routing heuristic edits into the
fast block of agent-prompts.ts (standard block already carried them).
- Point triage tests at FAST_PLANNING_PROMPT/TRIAGE_POLICY_PROMPT instead of
the removed const.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-12 21:47:57 -07:00
gsxdsm
ac8ad834ce
Merge branch 'main' into fix/fn-352-no-commit-coordination
2026-06-12 21:39:07 -07:00
Phil Larson
285f238e92
fix(FN-424): keep audit logging non-blocking
2026-06-12 16:08:00 -07:00
Phil Larson
f331419867
fix(FN-424): simplify prompt scope parsing
2026-06-12 15:59:58 -07:00
Phil Larson
c6bcbe26a2
fix(FN-352): address no-commit review feedback
2026-06-12 15:54:47 -07:00
Phil Larson
3a729f53a9
fix(FN-352): allow no-commit coordination completion
2026-06-12 15:51:50 -07:00
Phil Larson
e9b48bd50c
fix(FN-424): address no-commit review edge cases
2026-06-12 15:45:04 -07:00
Phil Larson
ab35c87114
test(FN-424): prove no-commit guard preserves worktree checks
...
Fusion-Task-Id: FN-424
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-06-12 15:00:19 -07:00
Phil Larson
35502afdb8
fix(FN-424): align no-commit regression fixtures
...
Fusion-Task-Id: FN-424
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-06-12 14:58:40 -07:00
Phil Larson
cb128f5824
test(FN-424): cover plan-only no-commit finalization
...
Fusion-Task-Id: FN-424
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-06-12 14:58:39 -07:00
gsxdsm
751d94244c
FN-6294: collapse workflow merge primitives
...
Collapse built-in workflow merge-policy primitives back to the legacy merge seam until graph execution owns merge policy end-to-end.
- Treat all merge-policy primitive node kinds as a synthetic legacy merge node during graph traversal.
- Preserve shadow-stage parity by mapping the synthetic merge node into legacy stage transitions.
- Add regression coverage for success, failure, pre-merge review failure, and alternate merge-region entry points.
- Record a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6294-merge-region-collapse.md | 5 +
.../workflow-graph-executor-handlers.test.ts | 13 ++-
.../workflow-graph-merge-region-collapse.test.ts | 116 +++++++++++++++++++++
packages/engine/src/executor.ts | 14 ++-
packages/engine/src/workflow-graph-executor.ts | 63 ++++++++++-
5 files changed, 203 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-6294
Fusion-Task-Lineage: fe86b5e2-861f-448d-8db0-b0332e6ad76f
2026-06-12 14:21:18 -07:00
gsxdsm
ba610a1c0e
FN-6296: fix stuck-kill force-requeue cleanup
...
Reap hung executor surfaces before requeueing stuck-kill timeout tasks.
- terminate spawned child agents and active session surfaces before clearing execution guards
- remove stale worktrees during force-requeue while preserving concurrent recovery ownership
- add regression coverage and architecture notes for the cleanup contract
Files changed:
docs/architecture.md | 2 +
.../engine/src/__tests__/executor-recovery.test.ts | 248 ++++++++++++++++++++-
packages/engine/src/executor.ts | 61 ++++-
3 files changed, 305 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-6296
Fusion-Task-Lineage: a393e2b1-a72c-4d7b-9de2-6bf7268986d4
2026-06-12 14:08:52 -07:00
gsxdsm
0897b2a0bf
FN-6281: add bounded graph resume retries
...
Add a narrow persisted retry path for transient workflow-graph failures during resume after restart or unpause.
- Persist graphResumeRetryCount with schema migration, store round-tripping, manual retry reset, and task serialization coverage.
- Retry only no-progress execute-seam graph failures immediately following resume markers, then clear transient status/error and re-run within a capped budget.
- Preserve terminal graph failure handling for explicit reasons, durable task failures, completed progress, non-resume cases, and exhausted retry budgets.
- Document the resume-limbo retry contract and add a patch changeset for @runfusion/fusion.
Files changed:
.changeset/fn-6281-graph-resume-retry.md | 5 +
docs/architecture.md | 1 +
packages/core/src/__tests__/db-migrate.test.ts | 30 +--
packages/core/src/__tests__/db.test.ts | 44 ++---
packages/core/src/__tests__/goals-schema.test.ts | 2 +-
packages/core/src/__tests__/insight-store.test.ts | 10 +-
.../core/src/__tests__/manual-retry-reset.test.ts | 1 +
.../src/__tests__/merge-request-record.test.ts | 2 +-
packages/core/src/__tests__/mission-store.test.ts | 2 +-
packages/core/src/__tests__/run-audit.test.ts | 4 +-
.../core/src/__tests__/store-merge-queue.test.ts | 2 +-
.../core/src/__tests__/store-persistence.test.ts | 22 +++
packages/core/src/__tests__/task-documents.test.ts | 2 +-
packages/core/src/db.ts | 10 +-
packages/core/src/manual-retry-reset.ts | 1 +
packages/core/src/store.ts | 14 +-
packages/core/src/types.ts | 5 +
.../engine/src/__tests__/executor-recovery.test.ts | 201 +++++++++++++++++++++
packages/engine/src/executor.ts | 54 ++++++
19 files changed, 359 insertions(+), 53 deletions(-)
Fusion-Task-Id: FN-6281
Fusion-Task-Lineage: f9061445-8624-465a-9255-c3d02eac1bdb
2026-06-12 11:10:12 -07:00
gsxdsm
36f5ecdaba
FN-6226: skip fast-mode workflow graph validation nodes
...
Fast execution mode now bypasses custom pre-merge workflow graph validation consistently.
- Skip custom graph prompt, script, and gate nodes for fast-mode tasks while preserving human waits and CLI-agent work.
- Add regression coverage for fast-mode custom workflow behavior and standard-mode/null-mode validation.
- Document fast-mode workflow graph bypass behavior and record the published package changeset.
- Quarantine the unrelated self-healing real-git flake from the engine core gate.
Files changed:
.changeset/FN-6226-fast-mode-workflows.md | 5 +
docs/task-management.md | 6 +-
docs/workflow-steps.md | 2 +-
.../__tests__/executor-fast-mode-workflows.test.ts | 280 +++++++++++++++++++++
packages/engine/src/executor.ts | 16 ++
packages/engine/vitest.config.ts | 1 +
scripts/lib/test-quarantine.json | 5 +
7 files changed, 313 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6226
Fusion-Task-Lineage: 68d88a7a-e157-4d18-a2c2-9065946066de
2026-06-11 09:21:23 -07:00
gsxdsm
b7a56cc399
FN-6141: stop treating benign workflow-graph exits as failures
...
Treat already-finalized or paused workflow-graph exits as benign instead of failure-worthy.
- log info-level benign messages when workflow graph runs end after a task is paused or has already advanced out of in-progress
- keep true in-progress graph failures on the existing failed-and-handoff path with failure logging
- add executor recovery coverage for todo, in-review, done, paused, and genuine failure cases
- add a patch changeset for the published CLI package
Files changed:
.changeset/fn-6141-benign-graph-exit.md | 5 +
.../engine/src/__tests__/executor-recovery.test.ts | 137 ++++++++++++++++++++-
packages/engine/src/executor.ts | 23 ++--
3 files changed, 150 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-6141
Fusion-Task-Lineage: 8d29159a-8d7a-4e84-b05a-fe83f6ccbb78
2026-06-09 15:27:57 -07:00
gsxdsm
13c6d96fe1
FN-6031: add workflow notification nodes
...
Add workflow notify nodes with templated notification dispatch support.
- add notify node support to workflow IR, engine handlers, and executor wiring
- expose notify node configuration and summaries in the dashboard editor and node metadata
- add regression tests and a published changeset, plus workflow/settings documentation updates
Files changed:
.changeset/fn-6031-notification-node.md | 5 +
docs/settings-reference.md | 6 +-
docs/workflow-steps.md | 10 +-
packages/core/src/__tests__/workflow-ir.test.ts | 59 ++++++++++
packages/core/src/types.ts | 4 +-
packages/core/src/workflow-ir-types.ts | 4 +-
packages/core/src/workflow-ir.ts | 19 +++
packages/dashboard/app/components/WorkflowNodeEditor.tsx | 76 +++++++++++-
packages/dashboard/app/components/__tests__/WorkflowNodeEditor.test.tsx | 61 ++++++++++
packages/dashboard/app/components/__tests__/node-summary.test.ts | 29 +++++
packages/dashboard/app/components/__tests__/workflow-flow-mapping.test.ts | 37 ++++++
packages/dashboard/app/components/nodes/WorkflowNodeTypes.tsx | 7 +-
packages/dashboard/app/components/nodes/node-summary.ts | 5 +
packages/engine/src/__tests__/workflow-node-handlers-notify.test.ts | 131 +++++++++++++++++++++
packages/engine/src/executor.ts | 2 +
packages/engine/src/notification/ntfy-provider.ts | 11 ++
packages/engine/src/notification/webhook-provider.ts | 6 +-
packages/engine/src/workflow-graph-executor.ts | 4 +
packages/engine/src/workflow-graph-task-runner.ts | 4 +
packages/engine/src/workflow-node-handlers.ts | 93 ++++++++++++++-
20 files changed, 560 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-6031
Fusion-Task-Lineage: ff5c91e2-3872-4264-9c18-5d9e11628f13
2026-06-09 01:57:16 -07:00
gsxdsm
40d05c8139
fix(FN-6035): address workflow projection review feedback
2026-06-09 00:01:00 -07:00
gsxdsm
ad68c9d612
fix(FN-6035): harden workflow projection publishing
2026-06-08 23:47:33 -07:00
gsxdsm
83565a535a
fix(FN-6035): project workflow dispatch metadata
2026-06-08 23:38:32 -07:00
gsxdsm
f7f8b86989
Merge pull request #1536 from Runfusion/feature/workflow-mapping
...
feat(FN-6035): route execution through workflow primitives
2026-06-08 22:26:42 -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
aa8bd3dc92
fix(FN-6043): recover stuck task processing
...
Fusion-Task-Id: FN-6043
2026-06-08 18:14:48 -07:00
gsxdsm
c0b6f212c9
fix(FN-5994): address verification review feedback
...
Harden command normalization edge cases and abort loop compaction on timeout before falling through to stuck-task requeue.
Fusion-Task-Id: FN-5994
2026-06-08 10:23:01 -07:00
gsxdsm
0c8674c37c
fix(FN-5994): prevent verification hangs
...
Normalize package file-filter verification to direct Vitest execution, kill timed-out process groups, and bound loop-recovery compaction so stuck tasks cannot spin indefinitely.
Fusion-Task-Id: FN-5994
2026-06-08 09:44:00 -07:00
gsxdsm
de254858f2
Merge pull request #1498 from Runfusion/feature/engine-plugin
...
[codex] Add workflow extension plugin seams
2026-06-07 22:57:04 -07:00
gsxdsm
71822f26db
feat(engine): add workflow extension plugin seams
2026-06-07 20:43:44 -07:00
gsxdsm
d3a2c8863d
FN-5945: narrow hot task updates to changed columns
...
Reduce SQLite and FTS churn on hot task-update paths.
- switch hot task writes to column-scoped UPDATE statements that touch only changed fields plus updatedAt
- keep create and replication-style persistence on full-row INSERT/UPSERT paths and rewrite task.json from the refreshed DB row after partial updates
- route executor lease renewals through renewCheckoutLease and add regression coverage plus storage docs for the narrower write paths
Files changed:
docs/storage.md | 5 +-
.../core/src/__tests__/task-partial-update.test.ts | 191 ++++++
packages/core/src/store.ts | 638 +++++++++++----------
.../src/__tests__/executor-lease-renewal.test.ts | 66 +++
packages/engine/src/executor.ts | 2 +-
5 files changed, 603 insertions(+), 299 deletions(-)
Fusion-Task-Id: FN-5945
Fusion-Task-Lineage: ad0c5b64-f411-4379-85ab-f81edfc18101
2026-06-07 20:15:26 -07:00
gsxdsm
fab8a62b55
FN-5977: expose goal retrieval tools across engine agents
...
Make goal lookup tools available and citable throughout engine-driven agent sessions.
- add shared engine goal list/show tools with concise list snippets, full detail lookup, and retrieval audit coverage
- expose fn_goal_list and fn_goal_show in executor, heartbeat, and triage tool surfaces and classify them as readonly coordination-exempt tools
- extend CLI and engine regression coverage, refresh tool reference docs, and add a published changeset for the CLI package
Files changed:
.changeset/FN-5977-goal-retrieval-engine-tools.md | 7 +
packages/cli/skill/fusion/references/engine-tools.md | 2 +
packages/cli/src/__tests__/extension-goal-tools-audit.test.ts | 8 +-
packages/cli/src/__tests__/extension-goal-tools.test.ts | 118 +++++++++++-
packages/cli/src/__tests__/goal-store-resolution.test.ts | 2 +-
packages/cli/src/extension.ts | 38 +++-
packages/engine/src/__tests__/agent-tools-goal.test.ts | 213 +++++++++++++++++++++
packages/engine/src/__tests__/gating-classifications.test.ts | 4 +
packages/engine/src/__tests__/heartbeat-executor.test.ts | 22 ++-
packages/engine/src/__tests__/heartbeat-session-prompt.test.ts | 8 +-
packages/engine/src/agent-heartbeat.ts | 4 +-
packages/engine/src/agent-tools.ts | 180 ++++++++++++++++-
packages/engine/src/executor.ts | 8 +
packages/engine/src/gating-classifications.ts | 2 +
packages/engine/src/triage.ts | 26 ++-
15 files changed, 600 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-5977
Fusion-Task-Lineage: 46f7e777-da4d-4e9c-b014-329a5cb1e3da
2026-06-07 18:51:46 -07:00
gsxdsm
61d687440b
FN-5770: promote workflow interpreter to guarded lifecycle driver
...
Route default coding tasks through the workflow interpreter only when parity readiness checks pass.
- add a core cutover-readiness evaluator and exports for the workflowInterpreterAuthoritative flag
- wire a WorkflowAuthoritativeDriver into runtime dispatch and reuse authoritative lifecycle seams with legacy fallback behavior
- cover the cutover with reliability tests, docs updates, and a published CLI changeset
Files changed:
.../FN-5770-workflow-interpreter-authoritative.md | 5 +
docs/architecture.md | 1 +
docs/settings-reference.md | 5 +-
docs/workflow-steps.md | 22 +-
.../core/src/__tests__/workflow-cutover.test.ts | 68 +++++
packages/core/src/index.ts | 8 +
packages/core/src/workflow-cutover.ts | 81 ++++++
.../src/__tests__/openclaw-runtime-e2e.test.ts | 1 +
.../engine/src/__tests__/pi-layers-wiring.test.ts | 2 +-
.../branch-recovery-live-zero-commits.test.ts | 2 +-
.../branch-recovery-stale-cached-base.test.ts | 2 +-
.../workflow-interpreter-cutover.test.ts | 306 +++++++++++++++++++++
.../self-healing-completion-fanout.test.ts | 2 +-
.../self-healing-ghost-branch-recovery.test.ts | 2 +-
.../self-healing-orphan-only-scope.test.ts | 2 +-
.../self-healing-reclaim-live-zero-commits.test.ts | 2 +-
.../self-healing-stale-merger-status.test.ts | 2 +-
.../src/__tests__/step-session-executor.test.ts | 2 +-
.../__tests__/worktree-admin-entry-prune.test.ts | 8 +-
packages/engine/src/executor.ts | 13 +-
packages/engine/src/index.ts | 6 +
packages/engine/src/runtimes/in-process-runtime.ts | 8 +
.../engine/src/workflow-authoritative-driver.ts | 154 +++++++++++
23 files changed, 686 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-5770
Fusion-Task-Lineage: dee668b5-10e0-4a3c-b025-9cc43a26286a
2026-06-07 18:51:46 -07:00
gsxdsm
1922b5efc2
merge: main (workflow editor 109 / cli_sessions 110-111 / workflow_settings 112) — renumber PR-entity migration to 113, union core exports, TaskCard prNode + cliSessionState badges, executor PrNodeDeps + CliAgentRuntime options
2026-06-05 23:06:46 -07:00
gsxdsm
4e16145aab
feat(pr): pr-create/pr-respond/pr-merge node kinds + handlers (U3)
...
Adds the three first-class PR workflow node kinds and their handlers via
createPrNodeHandlers(deps), registered in createDefaultNodeHandlers
(fail-closed pr-nodes-unwired when absent). GitHub ops are injected as
callbacks (PrNodeGithubOps) at all three CLI sites (daemon/serve/dashboard)
so the engine never imports the dashboard client (FN-3049). pr-create
routes open/failed as outcomes; pr-merge passes expectedHeadOid and never
writes 'merged' (reconcile corroborates); pr-respond delegates to an
injected respond callback (U5 fills the body). 10 tests.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 19:55:31 -07:00
gsxdsm
1f68348441
merge: main (CLI agent interface #1446 ) — renumber workflow_settings migration to 112 behind main's cli_sessions(110)/adapter(111), full-workspace literal sweep, i18n union
2026-06-05 16:18:39 -07:00
gsxdsm
693ed6290a
Merge remote-tracking branch 'origin/main' into gsxdsm/cli-agent-interface
...
# Conflicts:
# CONCEPTS.md
# packages/core/src/__tests__/db-migrate.test.ts
# packages/core/src/__tests__/db.test.ts
# packages/core/src/__tests__/goals-schema.test.ts
# packages/core/src/__tests__/insight-store.test.ts
# packages/core/src/__tests__/merge-request-record.test.ts
# packages/core/src/__tests__/mission-store.test.ts
# packages/core/src/__tests__/run-audit.test.ts
# packages/core/src/__tests__/store-merge-queue.test.ts
# packages/core/src/__tests__/task-documents.test.ts
# packages/core/src/db.ts
# packages/dashboard/src/__tests__/agent-onboarding.test.ts
# packages/dashboard/src/__tests__/ai-refine.test.ts
# packages/dashboard/src/__tests__/chat-attachment-routes.test.ts
# packages/dashboard/src/__tests__/experiment-routes.finalize.test.ts
# packages/dashboard/src/__tests__/milestone-slice-interview.test.ts
# packages/dashboard/src/__tests__/mission-interview.test.ts
# packages/dashboard/src/__tests__/pr-metadata-generator.test.ts
# packages/dashboard/src/__tests__/project-pause-resume-routes.test.ts
# packages/dashboard/src/__tests__/routes-approval-sandbox-provisioning.test.ts
# packages/dashboard/src/__tests__/routes-approval-secrets.test.ts
# packages/dashboard/src/__tests__/routes-approval.test.ts
# packages/dashboard/src/__tests__/routes-worktrunk.test.ts
# packages/dashboard/src/__tests__/session-error-recovery.test.ts
# packages/dashboard/src/__tests__/session-persistence-roundtrip.test.ts
# packages/dashboard/src/__tests__/session-reconnect.test.ts
# packages/dashboard/src/__tests__/session-resume-history.test.ts
# packages/dashboard/src/__tests__/setup-routes.test.ts
# packages/dashboard/src/__tests__/subtask-breakdown.test.ts
# packages/dashboard/src/routes/__tests__/agent-avatar-routes.test.ts
# packages/dashboard/src/routes/__tests__/custom-providers.test.ts
# packages/dashboard/src/routes/__tests__/docker-node-routes.test.ts
# packages/i18n/locales/en/app.json
# plugins/fusion-plugin-roadmap/src/store/__tests__/roadmap-store.test.ts
2026-06-05 15:30:59 -07:00
gsxdsm
6d16c07197
merge: main (editor consolidation #1433 , fast-tests, learnings) — renumber workflow_settings migration to 110, settings panel joins the sidebar disclosures, full-workspace literal sweep
2026-06-05 15:23:15 -07:00
gsxdsm
11fb9f1325
merge main: per-column agent assignment (binding validation, policy-escalation handshake, override notes) into workflow editor consolidation
...
Resolved 4 conflicts preserving both feature sets:
- WorkflowNodeEditor.tsx: kept card-node/edge/dialog/dirty-guard/auto-layout/
onboarding/template/AI-edit features; wired main's columnAgentsEnabled flag
gate, override-column agent registry load, and policy-escalation save retry
(finishSave helper wraps both update payloads).
- WorkflowNodeEditor.test.tsx: kept U2/U4/AI-design describes plus main's U6
column-agent describe; merged api mock + import lists.
- register-workflow-routes.ts: merged import sets (design DI seam + column-agent
validators).
- agent-tools.ts: strip-approval-flags and column-agent binding assertion now
both run in create/update tools.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 14:43:02 -07:00
gsxdsm
b7fa21c25e
merge: main (column-agent assignment #1432 ) into workflow-settings — union executor/agent-tools/routes imports, both tool-description texts, both route helpers
2026-06-05 14:41:43 -07:00
gsxdsm
60f1b7fa39
Merge remote-tracking branch 'origin/main' into gsxdsm/cli-agent-interface
...
# Conflicts:
# packages/dashboard/app/components/__tests__/ListView.test.tsx
2026-06-05 14:36:42 -07:00
gsxdsm
59364e7c58
Address PR review feedback round 2 ( #1432 )
...
- R10 kill-switch: workflowColumns flag now gates the execution path (resolver
installation + resume pass 2), making the documented rollback real
- resolver: skip parse candidates whose templateNodeId doesn't exist under the
foreach (disambiguation guard)
- editor: reset the project-scoped agents cache on projectId change
- tests: kill-switch inertness, defer→own-settings release, candidate skip
2026-06-05 13:59:50 -07:00