David Kaya and Copilot
a68c9ee837
fix: mark handoff triage-to-specialist edges as loop edges
...
The forward edges from triage to specialists participate in cycles
(triage→specialist + specialist→triage), so they must be marked with
isLoop, condition, and maxIterations to pass validation.
Fixes the Handoff Support Flow template and scaffoldGraphForMode()
for handoff mode. Updates the corresponding test expectation.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-04-06 23:37:34 +02:00
David Kaya and Copilot
e265714225
feat: add backend orchestration mode support
...
Add first-class backend support for workflow orchestration modes,
including mode settings, graph scaffolding, mode-aware validation,
and real Agent Framework handoff/group-chat execution paths.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-04-06 23:18:51 +02:00
David Kaya and Copilot
805e369b67
refactor: remove legacy patterns system, unify on workflows
...
Remove the entire patterns domain model, IPC channels, sidecar services,
renderer components, and tests. Sessions now bind exclusively to workflows
via workflowId. Builtin workflows replace builtin patterns.
Backend:
- Make AgentNodeConfig standalone (no longer extends PatternAgentDefinition)
- Add WorkflowOrchestrationMode and WorkflowExecutionDefinition
- Create builtin workflows (single-agent, sequential, concurrent, handoff, group-chat)
- Rewrite session model config helpers for workflow-only
- Remove pattern IPC channels, handlers, and preload bindings
- Merge createSession/createWorkflowSession into single method
- Remove sidecar PatternGraphResolver, PatternValidator, pattern DTOs
- Add workspace migration for legacy sessions (patternId -> workflowId)
Frontend:
- Delete PatternEditor, pattern-graph components, patternGraph lib
- Delete NewSessionModal (session creation uses workflows directly)
- Remove PatternsSection from SettingsPanel
- Update App.tsx, ChatPane, ActivityPanel, Sidebar, RunTimeline,
AgentConfigFields, InlinePills, sessionActivity to use workflow types
- Delete pattern.ts domain module
78 files changed across backend and frontend.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-04-06 22:37:00 +02:00
David Kaya and Copilot
81eb8f7c82
refactor(workflows): remove code-executor and align function node with Agent Framework
...
Remove the invented code-executor node type entirely. Rename
function-executor to invoke-function to match Agent Framework's
InvokeFunctionTool declarative action. Update InvokeFunctionConfig to
use functionName, arguments, requireApproval, and resultVariable
properties matching the upstream schema.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-04-05 21:59:16 +02:00
David Kaya and Copilot
69ac454f29
feat(workflows): add phase 4 backend executor support
...
Add MVP code-executor and function-executor runtime support, request-port
bridging through Aryx user input, state-scope helpers, lockstep execution
mode handling, and validation/tests for new workflow node kinds.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-04-05 20:22:20 +02:00
David Kaya and Copilot
41e74c2fa9
feat(workflows): add sub-workflow backend support
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-04-05 19:31:56 +02:00
David Kaya and Copilot
8f6830dca1
feat(workflows): add conditional edges and loop validation
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-04-05 18:57:33 +02:00
David Kaya and Copilot
19a764d297
feat(workflows): Phase 1 backend — WorkflowDefinition model, persistence, IPC, sidecar execution
...
Introduce WorkflowDefinition as a first-class entity alongside PatternDefinition.
Shared domain:
- src/shared/domain/workflow.ts: new WorkflowDefinition, WorkflowGraph,
WorkflowNode/Edge/Config types, normalization, TS-side validation, and
buildWorkflowExecutionPattern (synthetic pattern bridge for session plumbing)
- workspace.ts: add workflows[] and selectedWorkflowId
- session.ts: add optional workflowId to SessionRecord
- runTimeline.ts: add optional workflowId/workflowName to run records
- sessionLibrary.ts: workflow-aware session search
IPC / main process:
- contracts/channels.ts, contracts/ipc.ts: workflow CRUD channels
- preload/index.ts: expose saveWorkflow, deleteWorkflow, createWorkflowSession
- ipc/registerIpcHandlers.ts: register workflow handlers
- persistence/workspaceRepository.ts: load/save/normalize workflows
- AryxAppService.ts: saveWorkflow, deleteWorkflow, createWorkflowSession,
resolveSessionExecutionDefinition, workflow-aware turn/run plumbing
Sidecar protocol:
- contracts/sidecar.ts: ValidateWorkflowCommand, WorkflowValidationEvent,
optional workflow on RunTurnCommand
- sidecarProcess.ts: validate-workflow command dispatch and event handling
- Contracts/ProtocolModels.cs: workflow DTOs and validate-workflow DTOs
- Services/SidecarProtocolHost.cs: validate-workflow command handler
- Services/CopilotWorkflowRunner.cs: workflow-aware build and checkpoint path
- Services/WorkflowValidator.cs: graph validation (connectivity, start/end,
fan-out/in arity, path reachability)
- Services/WorkflowRunner.cs: WorkflowDefinitionDto -> Agent Framework Workflow
builder (direct, fan-out, fan-in edges; agent executor binding)
Project: bump both csproj from net9.0 to net10.0
Tests:
- tests/shared/workflow.test.ts: TS workflow validation and pattern synthesis
- tests/main/appServiceWorkflow.test.ts: saveWorkflow / createWorkflowSession
- tests/Aryx.AgentHost.Tests/SidecarProtocolHostTests.cs: ValidateWorkflowCommand
- Fix two stale workspace fixtures missing workflows field
Validation: tsc clean, bun test 367/367 pass, dotnet test 244/244 pass, bun run build succeeds.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-04-05 17:29:03 +02:00