Repository navigation
fix(ci): retain fixture screenshots and document local captures - #2626
Merged
Merged
Conversation
schlessera
marked this pull request as ready for review
October 22, 2026 11:15
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #1903
What changed
Artifact-recovery layout cases keep their existing fixture-owned
artifact-*.pngcaptures and retain the exact returned bytes in uniquepackages/ui-react/.vitest-attachments/artifact-recovery/capture-*directories. The existing unit-worker handoff and unit artifact upload already collect that directory. The testing policy now explicitly accounts for all three remaining destination classes: retain those fixture captures, keep caller-directed opt-in exports local, and keep standalone navigation/software diagnostics local with source-based reasons.Why this shape
The fixture screenshots precede later zoom and keyboard assertions, so losing them during fixture teardown also loses useful hosted failure evidence. Unique directories preserve repeated filenames without moving existing review captures. Opt-in exports are manual destinations outside the collector's ownership. The navigation probe is not invoked by hosted proof; software screenshots follow every assertion and provide successful-state review convenience.
No workflow paths, gates, pins, hidden-file settings, failure collection, seven-day retention, assertions, deadlines or test populations change. No changeset: only unshipped test fixtures, regression proof and contributor documentation change. No contract or provider-history impact.
Proof
Final head
22e739970ae924a3687e402e6ce4e2d8206a3ccc; branch started at19ecff0808de356584049ff91bd331921ab7d5a9, then merged main3125574b81b6c1b62f490ac88b946fa0e2f05576to include the new runtime invocation wrapper.bun run check:pr --base origin/main: PASS on the final committed head against base3125574b81b6c1b62f490ac88b946fa0e2f05576: 522 fast tests and 43 import-graph affected tests (including all 32 artifact runtime cases), with lint, environment and changeset gates passing.bunx tsc --noEmit: PASS on the final head. Lint passes; final preflight repeats it.artifact recovery retains exact captures after later failure and fixture teardownfails atARTIFACT_CAPTURES_SURVIVE_FIXTURE_TEARDOWN: expected two files, received zero. Implemented retention passes, including exact bytes, unchanged scratch path and independent repeated filenames after a deliberate later child failure and teardown.cfef279fb6f1e8d7816111930f9fd89f28a159c9plus the citation-only working change committed as the final head; browser/test sources are identical. Both runs retain their files after fixture teardown: four valid PNGs, two per variant, with PNG chunk CRCs, decompressed raster payloads, dimensions and SHA-256 checked. Dark: 320×800, 20,557 bytes; light: 1280×800, 56,766 bytes. The repeat has identical hashes and preserves the earlier files..github/workflows/ci.ymlandscripts/unit-workers.tsare unchanged from the merged base. The existing hidden attachment collection/handoff carries the new files.The accepted dated issue audit records downloaded ZIP/digest/CRC/PNG verification of the earlier deliveries, including main run 39757864766 containing #2545. That evidence covers criteria 2, 3, 5 and module-settings retention in criterion 4; it is not relabeled as execution of this PR.
Checklist
docs/reflect the change, or nothing documented moved.docs/decisions/provider-history.md): the provider-history guard passes, or nothing on a turn's path changed.Anything left open
Keep this PR draft. Coordinator-owned hosted proof/download verification must confirm the new fixture
artifact-*.pngcopies in the selected unit artifact, with the actual job/worker checkout and nonempty PNG dimensions/bytes. This PR usesRefsuntil that evidence is available; all three remaining destination classes are implemented or explicitly justified.Generated automatic Vitest failure screenshots remain absent, as explicitly reported in the accepted issue audit. Criterion 4 allows that report; no deliberately failing browser run or new screenshot behavior is introduced. The separate hygiene retry investigation remains #2544.
No ready transition, integration confirmation/reservation or merge is requested by this worker.