Skip to content

Resume prepared Lab benches after retryable admission failures #9469

Description

@chubes4

Problem

A runner-pinned fixture-matrix bench completed all expensive controller preparation before failing at Lab admission:

  1. Rig install.
  2. Rig sync.
  3. Static Site Importer workspace snapshot/upload.
  4. Blocks Engine fixture workspace snapshot/upload.
  5. Unique PHP transformer package snapshot/upload.
  6. Runner command construction and path translation.

Admission then failed with a stale lease or retryable /admissions transport error. Retrying the same command repeated the entire preparation sequence with new workspace identities instead of resuming the already prepared handoff.

The failed attempt also reported reaping the run-scoped SSI workspace even though the user-facing bench had not started successfully.

Context: browser verification for Automattic/blocks-engine#659.

Expected behavior

Homeboy persists a durable prepared-handoff checkpoint before admission. A retryable pre-acceptance failure reuses verified snapshots and resumes from admission, while cleanup runs only after terminal completion or explicit cancellation.

Acceptance criteria

  • Prepared component/package snapshots have content-addressed reusable identities.
  • Retryable admission failures retain those snapshots for a bounded recovery window.
  • The command automatically retries admission against the current healthy daemon.
  • A manual retry can resume by run/checkpoint ID without repeating rig install, sync, and uploads.
  • Cleanup policy distinguishes successful workload completion from pre-acceptance failure.
  • Output states exactly which preparation stages were reused.

AI assistance

  • AI assistance: Yes
  • Tool: OpenCode with OpenAI GPT-5.6 Sol
  • Used for: Comparing repeated handoff logs and identifying duplicated preparation and premature cleanup.

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