Skip to content

Execute bounded plans through one workspace recipe lifecycle #1923

Description

@chubes4

Problem

#1922 added the generic executeBoundedRuntimePlan() scheduler, but the public PHPUnit recipe path still cannot execute a bounded plan through one prepared workspace/runtime/service lifecycle. The merged integration uses PHPUnit-shaped entries without invoking PHPUnit, and no CLI/API accepts a base recipe plus plan entries. This leaves the downstream 680-suite parity consumer unable to use the primitive without importing CLI internals or recreating generic recipe lifecycle behavior.

Follow-up to #1920 and #1922. Downstream tracker: https://linear.app/a8c/issue/BET-12/local-wordpresscom-development-with-wpcom-codebox.

Expected contract

  1. Add a public recipe-plan executor that materializes one workspace/runtime and starts declared services once.
  2. Execute actual recipe command entries with bounded concurrency and per-entry argv/environment/timeout/process/artifact identity.
  3. Expose the executor through a documented Node API and CLI JSON contract.
  4. Return stable per-entry output references, duration, exit/timeout state, and aggregate counts.
  5. Preserve selective retry and existing single-recipe behavior.
  6. Prove at least two real PHPUnit entries share one disposable MariaDB allocation with distinct database indexes.

Acceptance criteria

  • Deterministic lifecycle and scheduler tests exercise the public recipe-plan adapter.
  • CLI contract validation covers input/output schemas and fail-closed safety.
  • Docker integration invokes real PHPUnit commands, not placeholders.
  • Existing build, Agent Task Contracts, and single PHPUnit recipe tests remain green.
  • Generic WP Codebox contains no WPCOM or TeamCity semantics.

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