Commit Graph

72 Commits

Author SHA1 Message Date
gsxdsm
4d7c51d526 FN-6164: route agent task title summarization through the store
Ensure agent-created tasks use store-managed title summarization before creation hooks fire.

- resolve a store-managed summarizer when task creation explicitly requests summarization
- defer the task-created hook until store summarization finishes and persists the generated title
- stop agent tools from wiring ad hoc summarizer callbacks and pass resolved settings through to createTask
- update core and engine tests to cover store-managed summarization, hook deferral, and inherited settings expectations

Files changed:
 packages/core/src/__tests__/store-create.test.ts  | 83 +++++++++++++++++++++++
 packages/core/src/store.ts                        |  7 +-
 packages/engine/src/__tests__/agent-tools.test.ts | 70 +++++++++----------
 packages/engine/src/__tests__/triage.test.ts      | 12 +++-
 packages/engine/src/agent-tools.ts                | 10 +--
 5 files changed, 136 insertions(+), 46 deletions(-)

Fusion-Task-Id: FN-6164

Fusion-Task-Lineage: f8da7bd7-b5d4-4505-98ed-60c19d82904c
2026-06-09 22:18:48 -07:00
gsxdsm
934071cc3c FN-6107: always summarize untitled agent-created tasks
Ensure agent-created untitled tasks still request AI-generated titles even when project auto-summarization is disabled.

- force summarize=true for agent-created tasks that do not provide an explicit title
- add engine tests covering untitled, titled, and title-generation behavior with autoSummarizeTitles disabled
- document the agent-task summarization behavior in settings docs
- add a patch changeset for the published CLI package

Files changed:
 .changeset/agent-task-title-summaries.md          |  5 ++
 docs/settings-reference.md                        |  2 +-
 packages/engine/src/__tests__/agent-tools.test.ts | 63 +++++++++++++++++++++++
 packages/engine/src/agent-tools.ts                |  1 +
 4 files changed, 70 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6107

Fusion-Task-Lineage: d0c25981-a5cb-48ca-b835-9267817b4edd
2026-06-09 12:51:20 -07:00
gsxdsm
6271778dde FN-6091: add workflow_id support to task tools
Add workflow selection support across task creation, delegation, and updates.

- add workflow_id parameters and response text for engine and CLI task-creation/delegation tools
- allow fn_task_update to select or clear task workflows with reconciliation and validation
- cover workflow selection behavior with engine and extension tests and document the new tool parameters
- add a changeset for the published CLI package

Files changed:
 .changeset/fn-6091-workflow-id-agent-tools.md      |   5 +
 .../cli/skill/fusion/references/engine-tools.md    |   4 +-
 .../cli/skill/fusion/references/extension-tools.md |   9 +-
 .../skill/fusion/references/fusion-capabilities.md |   6 +-
 packages/cli/src/__tests__/extension.test.ts       | 189 +++++++++++++++++++++
 packages/cli/src/extension.ts                      |  71 +++++++-
 packages/engine/src/__tests__/agent-tools.test.ts  |  78 +++++++++
 packages/engine/src/agent-tools.ts                 |  32 +++-
 8 files changed, 374 insertions(+), 20 deletions(-)

Fusion-Task-Id: FN-6091

Fusion-Task-Lineage: 7ab2f36a-feeb-4888-9845-65294bacf1d0
2026-06-09 12:51:20 -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
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
6c9a81a05f fix(review): apply autofix feedback 2026-06-05 01:53:42 -07:00
gsxdsm
a47ea3f7a1 fix(review): strip approval-bypass flags in agent workflow authoring for chat/planning lanes 2026-06-05 01:05:51 -07:00
gsxdsm
d05d5f575f fix(review): apply autofix feedback 2026-06-05 00:57:49 -07:00
gsxdsm
9a4343be26 feat(engine): fn_workflow_settings agent tool + settings declaration parity, plugin-sdk types, engine-tools docs 2026-06-04 22:57:01 -07:00
gsxdsm
8a5fa66def feat(engine,dashboard): expose workflow authoring tools to chat and planning agents 2026-06-04 22:54:49 -07:00
gsxdsm
6f7f6860be fix: address PR review feedback (#1424)
- restore customFields on unarchive; reconcile all occupants on field-schema edits (store.ts)
- serialize per-field saves + controlled inputs in TaskFieldsSection (race fixes)
- fn_workflow_get includes layout; Array.isArray guards in validateCodeNodeSources
- per-instance graphStepActiveContext keying; rebase in instance worktree; clear run-once memo on RETHINK
- GET /api/step-parsers + registry-backed parser select (plugin parsers reachable from editor)
- translate new workflowNodes/workflowFields strings across all 5 non-en locales

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 16:16:50 -07:00
gsxdsm
3ebaa321f8 fix(review): apply code-review fixes — runId/foreachNodeId wiring, worktree-leak cleanup, rework re-execution, instance pruning, SIGKILL fallback, type dedup, board memo split, agent-native field-schema context + fn_workflow_get
17 findings from 12-reviewer code review applied:
- P1 runId trio (pin-probe/resume/markIntegrated used placeholder runId; 4-reviewer corroboration) + production-wiring tests
- P1 worktree/branch release on instance failure/exhaustion/abort
- P2 runGraphTaskStep no longer masks step-session failures; rejected memo cleared so rework re-executes
- P2 clearStaleInstanceStates wired at run start/end (mirrors branch pruning)
- P2 code-node timeout killSignal SIGKILL; dead template-recursion removed
- P1/P2 field-type re-declarations replaced with @fusion/core imports (stale comments removed)
- P2 Board memo split + TaskCard comparator stringify guard + modal prop-driven field defs
- HIGH agent-native: executor prompt injects custom-field schema/values; self-correcting rejection text; fn_workflow_get; fn_task_update bare-call guard; integration-conflict task log

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 14:01:55 -07:00
gsxdsm
60e9938f5a feat(core,engine): U7 — builtin stepwise coding workflow + trajectory parity & invariant suite; agent-tool surfaces for custom fields and IR authoring
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 13:15:49 -07:00
gsxdsm
c21485a65a feat(engine): agent-native workflow tools — promote, reconcile-aware select, CRUD, trait catalog (#1408) 2026-06-04 07:03:53 -07:00
gsxdsm
5c02271551 feat(engine): add fn_workflow_list and fn_workflow_select agent tools
Agent-native parity: users can list workflows and select one for a task in
the dashboard, so agents should be able to as well. Adds two task-session
tools — fn_workflow_list (read: built-ins + user definitions) and
fn_workflow_select (assign a workflow to a task, defaulting to the current
one) — wired into the executor's customTools and exported from the engine
index. Covered by unit tests against mock stores.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 15:31:11 -07:00
gsxdsm
cec191eac3 FN-5638: migrate pi-ai and pi-coding-agent packages to @earendil-works scope
Fusion-Task-Id: FN-5638

Fusion-Task-Lineage: 6e99c156-5f6c-42e6-bd26-618e08ffd05f
2026-05-28 21:23:48 -07:00
gsxdsm
51fc826199 fix(engine,core): dedup heartbeat-spawned follow-ups by parent task
Same-agent intake guard now also matches siblings sharing a
sourceParentTaskId, so repeated heartbeats from one parent task
can't bypass dedup just because triage rewrites the title.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 03:05:46 -07:00
Fusion (runfusion.ai)
000fa3d6bb feat(FN-5102): complete Step 2 — prefill agent github tracking
Fusion-Task-Id: FN-5102
Fusion-Task-Lineage: 13be2941-176e-4a6e-b6fc-2bb644f7444a
2026-05-18 23:50:00 -07:00
Fusion (runfusion.ai)
2b96475fdd fix(FN-5060): stabilize dedup typing and engine expectations 2026-05-18 19:44:33 -07:00
Fusion (runfusion.ai)
0ae068dbe0 fix(FN-5060): surface duplicate-link result in delegate task response 2026-05-18 19:44:33 -07:00
Fusion (runfusion.ai)
a54496f45d feat(FN-5060): complete Step 5 — wire engine and mission dedup guard 2026-05-18 19:44:33 -07:00
gsxdsm
0d0d818b77 feat(FN-4891): merge fusion/fn-4891 2026-05-17 08:24:49 -07:00
Fusion (runfusion.ai)
ad73d76586 feat(FN-4640): complete Step 6 — dashboard sandbox audit surface
Fusion-Task-Id: FN-4640
Fusion-Task-Lineage: 4a91265f-1714-4854-b08d-7ddb06074253
2026-05-15 16:19:42 -07:00
Fusion
19e120960a fix(FN-4545): satisfy lint for room message retry context
Fusion-Task-Id: FN-4545
Fusion-Task-Lineage: 95108429-618e-4a6d-9fa9-7ac2596665a2
2026-05-14 22:16:44 -07:00
Fusion
2d782569d2 fix(FN-4545): wire retry-burn logging and complete handler coverage
Fusion-Task-Id: FN-4545
Fusion-Task-Lineage: 95108429-618e-4a6d-9fa9-7ac2596665a2
2026-05-14 22:16:44 -07:00
Fusion
50fe141f5b feat(FN-4545): complete Step 4-5 — add message-delivery recovery handler wiring
Fusion-Task-Id: FN-4545
Fusion-Task-Lineage: 95108429-618e-4a6d-9fa9-7ac2596665a2
2026-05-14 22:16:44 -07:00
Fusion
e7fc3a9d17 feat(FN-4177): add heartbeat messaging support for chat rooms
The merge delivers room heartbeat messaging for agents, allowing heartbeat-triggered agents to send messages into chat rooms and subscribe to room activity. Core changes include new chat-store room APIs, engine heartbeat room message tools, and corresponding tests, with a small dashboard ChatView up

Fusion-Task-Id: FN-4177
2026-05-12 18:20:17 -07:00
Fusion
e9b8ba5c54 feat(FN-4074): add priority option to task creation in engine and extension
Adds task priority support to the task creation flow, spanning the engine runtime (`agent-tools.ts`, `triage.ts`), the CLI extension interface (`extension.ts`), and corresponding documentation and tests. The changeset bumps `@runfusion/fusion` as a minor version.

Fusion-Task-Id: FN-4074

Fusion-Task-Lineage: 726c0ae6-90fb-4c13-ace1-215a2becb2a9
2026-05-12 07:47:10 -07:00
Fusion
1b7643b383 feat(FN-4045): surface and handle delegate task collision errors
Added delegate collision detection and error surfacing across the task creation and delegation pipeline. The core store now throws a typed `DelegateCollisionError` when `createTask` encounters a duplicate task ID, the engine's `delegate_task` tool propagates these errors with context, and the CLI ex

Fusion-Task-Id: FN-4045
2026-05-12 07:47:10 -07:00
Fusion
1f7958fc0f feat(FN-3935): align engineer role routing with explicit assignment and del
Centralized routing policy helpers in core and aligned both direct assignment and delegation to route engineer-role agents consistently, ensuring assigned tasks respect explicit engineer routing the same way delegated tasks do. Added comprehensive test coverage across core, CLI, dashboard, and engin

Fusion-Task-Id: FN-3935

Fusion-Task-Lineage: 069f4d54-f7a8-4bd3-a2c3-4de830de042f
2026-05-11 21:48:26 -07:00
Fusion
95c7588e30 feat(FN-4004): add bounded room thread and mailbox reply context to agents
Adds bounded room thread context and mailbox reply context to the chat system, implemented in `agent-tools.ts` with corresponding dashboard room handling in `chat.ts`; includes expanded test coverage for both modules and updated documentation in `agents.md`.

Fusion-Task-Id: FN-4004
2026-05-11 08:02:53 -07:00
Fusion
3ec12f10e7 feat(FN-3791): add agent provisioning approval guards and policy enforcemen
Implements approval guards for agent provisioning (FN-3791), adding policy-gated create/delete flows with dedupe logic, CLI tool alignment, engine run-audit coverage, and corresponding test suites, plus documentation updates and a regression fix for verification/tool docs sync.

Fusion-Task-Id: FN-3791
2026-05-10 23:36:10 -07:00
Fusion
f6c32f1049 feat(FN-3957): add delegate_task override flag to bypass executor role poli
Adds a `delegate_override` flag to the `delegate_task` tool that allows executor-role tasks to be assigned to non-executor agents. The override is persisted as metadata in the extension and honored by the heartbeat inbox guard, with test coverage across engine, core, and CLI packages plus updated do

Fusion-Task-Id: FN-3957
2026-05-10 23:36:09 -07:00
Fusion
8e958e6879 feat(FN-3953): wire agent provisioning approval policy into engine tools
Merged agent provisioning approval policies into the engine with guard controls that restrict which agents can be created and by whom, integrated through the CLI extension and core policy definitions.

Fusion-Task-Id: FN-3953
2026-05-10 15:34:58 -07:00
Fusion
840653e529 feat(FN-3777): add create_agent and delete_agent tools
Adds agent creation and deletion tools to the pi extension, with engine-side implementation in `agent-tools.ts`, core store integration for agent lifecycle management, and corresponding tests and documentation updates across the workspace.

Fusion-Task-Id: FN-3777
2026-05-08 19:15:10 -07:00
Fusion
a79e91d3aa feat(FN-3758): align web fetch test coverage and documentation
Aligns web fetch tool test coverage across multiple test suites and updates the agents documentation, with a patch changeset for `@runfusion/fusion`.

Fusion-Task-Id: FN-3758
2026-05-08 18:59:08 -07:00
Fusion
324ab5d44e feat(FN-3718): add agent workspace memory reader and include workspace memo
Merged branch lands two features: FN-3718 wires workspace memory into the agent instruction pipeline — adding a reader helper, injecting workspace memory into agent instructions and identity snapshots, and documenting the resolution order — and FN-3716 adds planning mode priority controls for task r

Fusion-Task-Id: FN-3718
2026-05-07 16:09:35 -07:00
Fusion
c44beada79 feat(FN-3606): correct chat-bound message routing and stabilize merger auto
Merger receives substantial hardening: autostash race-rescue with de-duplication, advisory observer for destructive operations, and subject-line preference for step headlines. The TUI gains a narrow log-split mode on System panel with proper back-navigation to the main pane. Chat header and mobile n

Fusion-Task-Id: FN-3606
2026-05-06 18:55:10 -07:00
Fusion
7d02ac81ef feat(FN-3593): add test isolation CI enforcement, fix stuck-requeue race, a
This merge lands five FN-3593 commits establishing a test isolation contract with a new `scripts/check-test-isolation.mjs` guard that scans for accidental `beforeEach`/`afterEach`/`beforeAll`/`afterAll` in setup helpers, plus per-package `setup-test-isolation.ts` bootstraps that canonicalize the pat

Fusion-Task-Id: FN-3593
2026-05-06 09:43:51 -07:00
gsxdsm
890f8853ed feat(messages): add sender-side wake recipient override
Senders can now force the recipient agent to wake on receipt regardless
of the recipient's `messageResponseMode`. Surfaced as a "Wake recipient
immediately" checkbox in MessageComposer and as a `wake_recipient`
boolean param on the `fn_send_message` agent tool. Carried as
`metadata.wakeRecipient: true` on the message; the heartbeat hook
treats forced wakes as `message_received_urgent` in the wake delta so
agents can distinguish them from normal `messageResponseMode: immediate`
wakes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 09:26:15 -07:00
Fusion
0e7b3a19cf feat(FN-3485): align memory scope guidance and dashboard tooling
- Clarify task memory scope behavior across core types, project memory logic, engine tool prompts, and related docs
- Add regression coverage for memory scope and runtime plugin alias handling in core/dashboard/engine tests
- Add agent avatar API routes and dashboard UI support for avatar display and storage documentation
- Add line-number gutter toggle support in FileEditor and Files modal with accompanying component tests
- Include changeset for @runfusion/fusion documenting memory scope guidance update

Fusion-Task-Id: FN-3485
2026-05-05 20:47:37 -07:00
Fusion
47ae7783b7 feat(FN-3484): normalize dashboard mailbox and user identity for messaging
This merge normalizes dashboard user identity and mailbox messaging (FN-3484, 4 steps), adds workflow step execution for plugins (FN-3490), and updates the restart integration store mock for plugin templates (FN-3096). Core changes touch the message store and store modules with identity normalizatio

Fusion-Task-Id: FN-3484
2026-05-05 06:32:34 -07:00
Fusion
499417bc8e feat(FN-3321): add agent self-improvement service and heartbeat evaluation
This merge delivers agent self-improvement (FN-3321) — adding evaluation identity tools, wiring evaluation into the heartbeat loop, implementing a self-improvement service, and providing test coverage. It also expands the dashboard guide view with regression tests, adds org chart full-view mode with

Fusion-Task-Id: FN-3321
2026-05-05 06:32:33 -07:00
Fusion
17b7502c67 feat(FN-3197): refresh qmd after agent dream writes and normalize agent-mem
This merge normalizes agent-memory paths in the core memory backend and ensures the qmd gets refreshed after agent dream writes, fixing a bug where stale paths could persist after memory updates. The engine's agent-tools module was updated to integrate with this fix, and a changeset was included for

Fusion-Task-Id: FN-3197
2026-05-05 06:32:33 -07:00
Fusion
452c31a085 feat(FN-3320): add agent configuration tools for settings management
The merge completes FN-3320 by implementing configuration tools for the agent system (`agent-tools.ts`), wiring them through the executor, and adding test coverage (`agent-tools-config.test.ts`). Documentation was updated in `AGENTS.md` and the engine tools reference, with minor updates to the agent

Fusion-Task-Id: FN-3320
2026-05-04 15:21:40 -07:00
Fusion
6b75b3ac8e feat(FN-3179): document layered agent memory access
Documents the layered agent memory access system in the agents documentation, with a minor update to the engine tools reference guide to reflect the documented behavior.

Fusion-Task-Id: FN-3179
2026-05-02 02:41:44 -07:00
Fusion
4d13ba01ea feat(FN-3059): align provider metadata and documentation
Merged feat(FN-3059) which aligns provider metadata and documentation across the codebase, updating README and getting-started docs plus refinements to the CustomProviderForm and ProviderIcon dashboard components.

Fusion-Task-Id: FN-3059
2026-05-01 17:39:47 -07:00
Fusion
95cd107523 feat(FN-3060): add agent task auto-summarization and droid CLI path reconci
This merge adds droid CLI path reconciliation as a new pi extension, wires agent task auto-summarization for the agent tools layer, makes the UsageIndicator component resizable with improved styling, and updates related tests and documentation. The core changes include a new `reconcile-droid-cli-pat

Fusion-Task-Id: FN-3060
2026-05-01 12:43:36 -07:00