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.
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: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 artifactsandhomeboy runs artifact get, including nested WP Codebox visual-comparison artifacts.Acceptance criteria
runs artifact get.AI assistance