Adds a first-class "Start Agent" action to event handlers, alongside the
existing start_workflow/complete_task/fail_task/terminate_workflow/
update_workflow_variables. This starts a registered agent execution (via the
core WorkflowExecutor.startAgentExecution(AgentStartRequest), already
available on origin/main) directly from an event, without going through
start_workflow against an agent's underlying workflow definition — which
would bypass the agent input contract (prompt/media/context/session_id),
per-run model/timeout overrides, and idempotency handling that
startAgentExecution provides.
Java (common, core):
- EventHandler.Action.Type += start_agent; new flat Action.StartAgent payload
(name, version, prompt, sessionId, media, context, idempotencyKey) as
@ProtoField(id = 8) — kept flat rather than reusing AgentStartRequest to
keep proto generation simple.
- SimpleActionProcessor: new case templating the payload's fields against
the event via ParametersUtils (mirroring the existing startWorkflow
handler), then calling workflowExecutor.startAgentExecution(...). No SPI
needed — WorkflowExecutor and AgentStartRequest are both already visible
from core.
- grpc/AbstractProtoMapper.java and grpc/eventhandler.proto are regenerated
by the :conductor-common:protogen task (wired into :conductor-grpc's
build) — no hand-written gRPC code.
ui-next:
- Action enum + actionLabel ("Start Agent"), persistNewAction, the
START_AGENT_ACTION schema template, the EventHandlerForm render switch, and
the StartAgentAction TS type all follow the existing start_workflow
pattern.
- New StartAgentActionForm (ActionForms/StartAgentTask.tsx), modeled on
StartWorkflowActionForm: agent name/version pickers sourced from the
existing /agent/list endpoint and AgentSummary type (already used by
AgentTaskForm for the same purpose), prompt/session/idempotency-key text
fields, a newline-delimited media list, and a context key-value editor.
Tests: TestSimpleActionProcessor#testStartAgent (core) and
StartAgentTask.test.tsx (ui-next) cover payload templating/mapping and the
form's field wiring, respectively.
Note: this action is OSS + ui-next only in this change. It requires a mirror
in orkes-conductor (its own EventHandler model + OrkesActionProcessor case)
to work on Orkes, tracked separately.
Backports the Orkes workflow classifier concept to OSS. The classifier is a
tag derived from WorkflowDef.metadata (explicit metadata.classifier wins,
else 'agent' when the AgentSpan stamp agent_sdk/agentDef is present, else
'workflow' for plain untagged defs).
- common: new WorkflowClassifier utility; WorkflowSummary gains a classifier
field (proto field 23) populated at index time
- rest: GET /metadata/workflow supports ?classifier= filtering; workflow
/search and /search-v2 support &classifier=, folded into the structured
query as 'classifier IN (...)'
- postgres/sqlite: classifier column on workflow_index (Flyway V17 / V5),
written on index and filterable via the query builders; the 'workflow'
token also matches pre-migration NULL rows
- es7/es8/os2/os3: classifier keyword mapping for workflow documents
Converts tribal knowledge about version constraints into grep-able,
enforceable documentation.
- Add // PINNED (#964): tag to all 8 hard-cap locations
- Standardize // Security: and // Compat: prefixes on version floors
- Introduce revGraalVM variable; all five GraalVM artifacts now use it
- Add dependabot.yml ignore rules for protobuf* >= 4.0
- Add dependabot.yml graalvm group for coordinated family upgrades
- Add ## Dependency Pinning section to AGENTS.md documenting all conventions
- Add ForkJoinSyncModeIntegrationTest with 9 test scenarios covering:
all-succeed, backward compat (no joinMode), explicit ASYNC, optional
branch fails, required branch fails, sequential tasks in branch,
joinOn subset, nested fork/join, and 10-branch fan-out
- Fix WorkflowTask.JoinMode proto field ID from 33→34 (conflict with
`items` field added for DO_WHILE list iteration in a prior PR)
- Add @ProtoEnum annotation to JoinMode enum so protogen can map it
- Regenerate workflowtask.proto and AbstractProtoMapper with JoinMode
- Add JSON workflow definition resources for manual/documentation use
- Use raw JSON + RestTemplate for workflow registration to avoid
classpath conflict with bundled conductor-client WorkflowTask
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Update protobuf-java from 3.25.5 to 4.33.0 (addresses CVE announced Jan 2025)
- Update protobuf-gradle-plugin from 0.8.19 to 0.9.5
- Use protoc 3.25.5 for code generation (maintains gRPC compatibility)
- Fix hardcoded protobuf version in annotations-processor
Closes#644Closes#232Closes#231
* Upgraded ES7 to 7.17.16, alpine to 3.19
* Update ElasticSearch to 7.17.16, some sdk tests are failing.
* Server would not run, StackOverflow - 54742540 had this handy fix.
* Use the new image in test container.
* Update Spring Boot to 3.2.1. One failing test in end to end.
* Handle the change in exceptions from Spring Framework.
* Update AWS SDK for CVE fix.
* Replace generic import with specific class.
* Removed dependencies.lock file from projects. No longer used.
* Upgrading OSS libraries with known open CVEs
* Updating the protobuf library.
* Resolve the remaining build issues.
---------
Co-authored-by: Scott Carter <cartersc@vmware.com>