Skip to content

Let chat orchestration run existing durable workflows #1551

Open

Description

@paullizer

Summary

Part of #1543 (Phase 5). Add a workflow_run capability so a chat orchestration plan can start one of the user's existing durable workflows and link to the run.

User Value

"Run my weekly digest now" should work from chat. The user doesn't have to find the workflow, open it and press Run.

Proposed Behavior

  • workflow_run (Gather) works only for durable workflows from the Phase 4 catalog. Non-durable manual runs execute synchronously with the session's roles (route_backend_workflows.py:2753-2800), so they get an unavailable reason instead.
  • request_id = uuid5(orchestration_run_id, step_id), so a retried step never starts a second run.
  • The run records trigger_source: 'chat_orchestration' and invocation_metadata.
  • effects_uncertain applies.
  • A new capability descriptor, approval_floor: 'manual', enforced in functions_orchestration_schema.py:972-1042, so a plan that runs a saved workflow always needs manual plan approval, whatever the admin's approval mode. Nothing like it exists today.
  • The step starts the run and links to it. Posting the results back into the chat is Phase 6b.

Acceptance Criteria

  • "Run my weekly digest now" asks for manual plan approval even when approval is Auto, queues exactly one run, and links to it.
  • Retrying the step or the plan doesn't start a second run.
  • Non-durable workflows show a clear unavailable reason.
  • Functional tests for the approval floor, idempotent request IDs, and registry and admin option equality.
  • Feature doc, release notes and config.py version.

Notes

Activity

  1. paullizer commented on Oct 1, 2026

    @paullizer
    CollaboratorAuthor

    Phase 5 merged

    #1594 merged into paullizer-react-v2-ui as 5fc50a5 (0.261.212). It's behind the new admin setting Run Workflows From Chat (enable_chat_orchestration_workflow_runs), which is off by default.

    Acceptance criteria

    • A plan that runs a saved workflow always waits for manual plan approval, even when approval is Auto. It starts exactly one run and links to it.
    • Retrying the step or the plan reuses the request ID and links the existing run instead of starting a second one.
    • A workflow that can't run from chat, such as a non-durable one, gets a clear reason.
    • Functional tests for the approval floor, idempotent request IDs, and registry and admin option equality.
    • CHAT_ORCHESTRATION_WORKFLOW_RUNS.md, release notes and the version.

    Validation on #1594's final head (678f56c)

    Not in this phase

    Posting the result back into the chat is Phase 6b (#1546). For now, the chat answer says where the results will appear and links to the run.

    Follow-ups

    • Use readable trigger names in workflow alert text.
    • Make log_event's existing sanitizing visible to CodeQL, so those log-injection annotations stop appearing on PRs. A separate PR will handle this.

    This issue is ready to close.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

P1Priority 1: urgent, address before P2 workenhancementNew feature or request

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions