Skip to content

Expose typed Homeboy promotion apply adapter for managed worktrees #945

Description

@chubes4

Problem

Homeboy issue Extra-Chill/homeboy#7898 needs an apply-capable managed-worktree provider. Data Machine Code already owns safe target resolution and workspace patch apply, but it does not expose an adapter that consumes homeboy/agent-task-promotion-apply-request/v1 on stdin and emits homeboy/agent-task-promotion-apply-response/v1 on stdout.

The active Homeboy DMC provider therefore has resolve, list, cleanup_preview, and cleanup_apply, but no commands.apply. The generic Homeboy contract half is in Extra-Chill/homeboy#9719 plus the stacked #7898 candidate.

Expected

  • Add a DMC-owned CLI/ability adapter that reads the typed Homeboy promotion request from stdin.
  • Resolve the requested <repo>@<slug> through DMC registry/safety policy.
  • Reject primary, dirty, mismatched, or untrusted-unpushed destinations before mutation.
  • Apply patch_path through the existing workspace patch primitive rather than duplicating git mutation logic.
  • Emit homeboy/agent-task-promotion-apply-response/v1 with the canonical managed worktree path and bounded command evidence.
  • Provide a discoverable invocation suitable for Homeboy worktree_providers.dmc.commands.apply, including {handle} argv substitution.
  • Add an end-to-end CLI test covering valid apply plus dirty/unpushed/path mismatch rejection.

Integration proof

After the Homeboy and DMC changes are available, run a normal homeboy agent-task cook --to-worktree <dmc-handle> without per-run --provider-command/--provider-argv; promotion must resolve DMC configuration, apply a non-empty patch, run deterministic gates, and preserve the canonical workspace path/evidence.

References

AI assistance

  • AI assistance: Yes
  • Tool: OpenCode
  • Models: OpenAI GPT-5.6 Terra and GPT-5.6 Sol
  • Used for: Terra implemented and tested the generic Homeboy provider-command slot; Sol verified the live DMC/Homeboy configuration, identified the missing owning-layer adapter, and drafted this tracker. Chris reviewed and owns the report.

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