Skip to content

Expose runner workspace publication API over backend internals #873

@chubes4

Description

@chubes4

Problem

Homeboy Extensions should not call Data Machine or Data Machine Code publication/workspace abilities directly. WP Codebox owns the sandbox/runner boundary and should expose the runner workspace publication API that abstracts backend internals.

The immediate regression risk came from Extra-Chill/homeboy-extensions#1255, which correctly deleted fallback_pull_request plumbing but replaced it with a direct call to datamachine-code/publish-runner-workspace from Homeboy. That is a cleaner implementation than fallback PR plumbing, but still the wrong seam.

Desired boundary

Homeboy Extensions
  -> WP Codebox runner/publication API
    -> Data Machine / Data Machine Code / GitHub workspace backend internals

Not:

Homeboy Extensions
  -> Data Machine Code ability directly

Required API shape

Expose a WP Codebox-level API for publishing runner-owned workspace changes.

Inputs should include:

  • runner workspace handle/path/backend identity
  • target repo
  • base/head branch context
  • commit message
  • PR title/body
  • optional labels/draft/maintainer flags
  • changed paths
  • evidence/artifact context

Output should include typed metadata:

  • success/failure
  • failure type/error
  • backend used
  • branch/commit metadata
  • PR URL/number and reused/opened state

Acceptance criteria

  • Homeboy can publish a runner workspace without naming or calling Data Machine / Data Machine Code abilities directly.
  • WP Codebox hides whether publication uses DMC, GitHub API workspaces, local git, or another backend.
  • Missing publication support returns a typed failure that Homeboy can surface as write_without_pr.
  • Smoke coverage proves the API forwards to the current DMC implementation where available.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions