Skip to content

Regression: emitted nested visual artifacts are not fetchable by artifact get #9468

Description

@chubes4

Problem

A fixture-matrix run published source, candidate, diff, and DOM snapshot artifacts in its structured summary with stable artifact IDs and public URLs. homeboy runs artifact get <run> <artifact-id> then returned:

artifact record not found

Only four top-level artifacts were listed as available. Two additional nested artifact retrieval attempts hung until the controller-side timeout. The same nested files remained downloadable through their public artifact URLs, so the data existed but the Homeboy retrieval contract could not resolve it.

Manual recovery required extracting URLs from large operator output and downloading each file separately with curl.

This regresses the nested-artifact indexing and retrieval contract previously addressed by #4036 and #4051.

Context: screenshot evidence for Automattic/blocks-engine#659.

Expected behavior

Every artifact ID emitted in a Homeboy-owned run summary is immediately listable and fetchable through homeboy runs artifacts and homeboy runs artifact get, including nested WP Codebox visual-comparison artifacts.

Acceptance criteria

  • Nested visual comparison artifacts are indexed as first-class run artifacts.
  • Every emitted artifact ID resolves through runs artifact get.
  • Retrieval follows the public/object-store locator when the runner-local path is unavailable.
  • Missing records fail quickly; retrieval never hangs waiting on an unreachable nested path.
  • Coverage exercises source/candidate/diff screenshots and DOM snapshots from a nested fixture run.

AI assistance

  • AI assistance: Yes
  • Tool: OpenCode with OpenAI GPT-5.6 Sol
  • Used for: Testing artifact retrieval, validating the public URL fallback, and comparing behavior with closed artifact-indexing issues.

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