Fusion Agent
0b4dbd219b
FN-125: prevent workflow agents from creating tasks
...
Stop workflow executor agents from creating ordinary tasks while preserving explicit self-spawned dependency handling.
- Gate task creation by session identity and execution context.
- Add self-spawned dependency support, validation, and persistence coverage.
- Update agent prompts, tools, documentation, and CLI integration.
- Add a published-package changeset.
Files changed:
.changeset/fn-125-removal.md | 7 +++
docs/agents.md | 2 +-
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 6 +-
.../cli/skill/fusion/references/engine-tools.md | 10 ++--
.../extension-task-execution-task-creation.test.ts | 70 ++++++++++++++++++++++
packages/cli/src/extension.ts | 49 +++++++++++++--
.../postgres/store-self-spawned-dep.pg.test.ts | 56 +++++++++++++++++
.../src/__tests__/self-spawned-dependency.test.ts | 18 ++++++
.../__tests__/session-identity-registry.test.ts | 14 ++++-
packages/core/src/agents/agent-prompts.ts | 27 ++++-----
.../src/agents/task-execution-task-creation.ts | 19 ++++++
packages/core/src/index.ts | 7 +++
packages/core/src/session-identity-registry.ts | 7 +++
packages/core/src/store.ts | 2 +
packages/core/src/task-store/errors.ts | 21 +++++++
packages/core/src/task-store/task-update.ts | 10 +++-
packages/core/src/task-store/update-task-deps.ts | 12 +++-
.../__tests__/ephemeral-task-create-gate.test.ts | 18 +++---
.../src/__tests__/executor-review-verdicts.test.ts | 3 +-
packages/engine/src/agent-tools.ts | 4 ++
packages/engine/src/agents/agent-runtime.ts | 2 +
.../engine/src/execution/step-session-executor.ts | 15 ++---
.../executor/attempt-executor-verification-fix.ts | 1 +
.../engine/src/executor/create-spawn-agent-tool.ts | 1 +
.../engine/src/executor/create-task-done-tool.ts | 18 +++++-
.../engine/src/executor/create-task-update-tool.ts | 12 +++-
.../engine/src/executor/execute-workflow-step.ts | 1 +
packages/engine/src/executor/run-implementation.ts | 18 +++---
packages/engine/src/executor/system-prompt.ts | 21 +++----
packages/engine/src/executor/task-add-dep-tool.ts | 14 ++++-
packages/engine/src/pi.ts | 15 ++++-
32 files changed, 401 insertions(+), 81 deletions(-)
Fusion-Task-Id: FN-125
Fusion-Task-Lineage: da3d69f6-c9cb-45fd-8691-3dfaf7007514
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-23 01:36:12 +00:00
gsxdsm
56a087dac9
fix(engine): restore shipped behaviors dropped by the wave-18 executor peel
...
Full-suite repair, engine harness cluster (~85 red suites). Two causes:
(1) graph dispatch now fails closed without options.agentStore
(FN-8764/FN-8821, intended) — the shared executor test harness now
provisions the workflow-routing agent-store fixture for bare
TaskExecutor constructions, with explicit opt-out for the two tests
asserting the fail-closed park; (2) the wave-18 'pure peel' (#3317 )
rebuilt executor.ts from a stale base and silently deleted shipped
behaviors, restored here: FN-8864 agent-activity writers (task
started/handed-off, workflow gate pass/fail, gate principal attribution
via executor/workflow-gate-activity.ts), FN-8768 Plan Review group
recognition, convergence primer, and modified-file review scoping,
FN-6782's fire-time guard on transient resume-after-restart retries,
FN-8868 session usage telemetry boundaries, recommendation-route
withheld-tool guidance, and the per-instance worktree retry cap.
Stale expectations updated for intended changes (FN-8823 shared-member
hold, FN-9060 zero-acquire fail-closed, heartbeat tool inventory,
peeled-module seams, PG harness provisioning). Verified: 23 files /
711 tests green, engine typecheck clean, merge gate green.
Known follow-ups (not addressed here): step-session error routing may
still bypass FN-5866 non-continuable classification
(post-done-continuation-no-wedge red), scheduler mission-loop trigger
gap (mission-validation-trigger-gap red), and executeWorkflowStep lost
routed workflow-principal session identity threading (untested drop
from the same peel).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-15 15:52:52 -07:00
gsxdsm
1cf86baa1c
refactor: package code organization wave 18 (executor pure peels) ( #3317 )
...
## Summary
Wave 18 continues the package code-organization program after wave 17
domain folders (U4 Slice A from
`docs/plans/2026-07-14-001-refactor-package-code-organization-plan.md`).
### What changed
Peel **pure, behavior-preserving** helpers out of
`packages/engine/src/executor.ts` into domain modules under
`packages/engine/src/executor/`, with **stable re-exports** from
`executor.ts` so deep imports and `vi.mock("../executor.js")` keep
working.
| New module | Symbols |
|------------|---------|
| `executor/task-done-refusal.ts` | `evaluateTaskDoneRefusal`,
`determineRevisionResetStart`, skip-bypass refusal helper |
| `executor/workflow-feedback-paths.ts` |
`extractReferencedPathsFromWorkflowFeedback`,
`isAlwaysAllowedScopeLeakPath`, `workflowPathMatchesDeclaredScope` |
| `executor/workflow-step-verdict.ts` |
`FUSION_WORKFLOW_STEP_CONVENTIONS_PREAMBLE`, `parseWorkflowStepVerdict`
/ `parseWorkflowStepOutput`, step outcome types |
| `executor/await-input-parse.ts` | `parseAwaitInputSentinel`,
`parseAwaitInputQuestionToolCall` |
| `executor/no-commit-eligibility.ts` | `getNoCommitEligibilityReason`
(+ prompt heuristics) |
`executor.ts` live LOC ~**22817 → ~22427** (first pure-peel batch; more
peels needed to approach the 2k cap).
### Shims
- `old path` `executor.ts` public exports → `new path` `executor/*.ts` →
delete-when consumer deep-imports are re-pointed (not this PR)
### Test plan
- [x] `@fusion/engine` typecheck
- [x] Oracle: task-done refusal, skip-bypass, workflow malformed
verdict, scope-leak allowlist, executor-step-session, executor-prompt
- [x] `vitest --project=engine-core` (merge-gate curated suite)
- [ ] CI merge gate
**Stack:** wave17 (merged) → **this PR**
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Improved recognition of workflow outcomes from structured and
conversational responses.
* Added support for extracting questions from await-input responses and
tool calls.
* Improved workflow feedback handling for referenced files and declared
scope patterns.
* Added clearer guidance for task execution, approvals, verification,
and available tools.
* **Bug Fixes**
* Prevented completion when required review approvals are missing or
revisions remain pending.
* Improved handling of workflows that legitimately require no code
changes.
* Added clearer refusal messages and more reliable revision restarts.
* Sanitized repository paths in Git remediation instructions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-08-09 15:46:09 -10:00