Skip to content

Allow workflows to continue with partial agent results #26

Description

@DavidWells

Problem

A multi-agent workflow can get stranded when one Netlify Agent Runner hangs, fails, or needs to be cancelled on the platform side.

Example: an ideas workflow submitted Claude, Gemini, and Codex runs for the first ideate step. One remote Netlify runner appeared stuck for 15+ minutes while the local CLI stayed at:

Waiting for Generate Ideas: 0/3 complete
◐ Claude · Netlify Agent runner is doodling...
◐ Gemini · Netlify Agent runner is zesting...
◐ Codex  · Netlify Agent runner trust the process...

If the bad remote run is cancelled, the current workflow behavior should not necessarily throw away the other completed agent results or stop the whole flow.

Feature idea

Add explicit partial-result continuation for workflow steps.

Proposed flow config:

steps:
  - id: ideate
    waitFor: agent-results
    allowPartialResults: true
    minResults: 2

Behavior:

  • Default remains strict: all agent runs must complete.
  • When allowPartialResults: true, the step may finish once at least minResults usable results exist.
  • Failed, cancelled, timed out, or platform-broken runs remain recorded in .nax/workflows/<run-id>/workflow.json.
  • Step/artifact output should make partial completion obvious, for example 2/3 complete, 1 failed/cancelled.
  • Downstream steps should only consume completed/result-producing runs from partial source steps.
  • If fewer than minResults complete, the workflow should still fail.

CLI override

Also consider run-level rescue flags so users can continue a stuck workflow without editing bundled YAML:

nax resume <run-id> --allow-partial-results --min-results 2

or the equivalent for the existing resume path.

Suggested bundled-flow defaults

The ideas flow is a good candidate for partial continuation:

  • ideate: allow partial with minResults: 2
  • cross-score: allow partial with minResults: 2
  • react: allow partial with minResults: 2
  • synthesize: keep strict, because it is a single Codex synthesis run

Other multi-agent audit/review flows may want this too, but it should be opt-in per flow/step.

Implementation notes

  • Extend flow parsing with allowPartialResults and minResults.
  • Add quorum helpers like hasUsableRunResult(run) and stepResultQuorum(step, runs).
  • Update GitHub transport waiting so a failed/cancelled marker does not immediately abort when partial quorum is satisfied.
  • Update source issue selection so follow-up comment steps only target issues/runs with usable prior results.
  • Persist partial state in workflow artifacts without hiding the failed/cancelled run.

Tests

Add coverage for:

  • GitHub step continues with 2/3 completed and 1 failed when partial is enabled.
  • The same scenario fails when partial is disabled.
  • Follow-up steps exclude the failed/cancelled source issue.
  • Workflow summaries clearly show partial completion.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions