fix(e2e): preserve catalog selector stdout - #10794
Conversation
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall line coverage in commit 9b8e851 in the TypeScript / code-coverage/cliThe overall line coverage in commit 9b8e851 in the Show a line coverage summary of the most impacted files.
Updated |
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 12 included reviews per hour; 8 remain after this review. 📝 WalkthroughWalkthroughThe default artifact download logger now writes retry and download evidence to stderr instead of stdout. End-to-end coverage verifies successful downloading and output separation. A readiness waiter test now uses a fixed clock. ChangesArtifact download and test determinism
Merge Risk: ⚪ Minimal · up to The change keeps the selector output machine-readable while preserving retry diagnostics and makes a readiness test deterministic; no actionable merge-blocking risk remains after normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
PR Review Advisor finished for commit |
rsliter
left a comment
There was a problem hiding this comment.
Reviewed 9b8e851 against c67be39. The default artifact logger now preserves the selector’s single-token stdout contract while retaining bounded attempt evidence on stderr, and the focused regression verifies both channels without exposing the credential. The unrelated readiness test change only injects the supported clock. Merged #10745 establishes the workflow contract, no competing open fix exists, automated findings are clear, every required check passes, and the nine-category security review found no blocking weakness.
Outcome
Manual pull-request E2E can consume an exact candidate managed-image catalog again. Artifact retry evidence remains visible in GitHub Actions, while the selector stdout stays a single machine-readable
base-cohortorcandidate-catalogtoken.Reason
The exact-candidate resolver introduced by #10745 downloads three managed-image contracts through the bounded artifact reader. That reader emitted one audit record per download to stdout, so the workflow command substitution received four lines instead of the single selector token and failed with
PR managed-image selection is invalidbefore candidate code ran.The failure reproduced in the focused Hermes Discord dispatch for #10682: run 33535511885.
Related issues
Refs #10682
Relates to #10745
Changes
Verification
1e6b8c07d78f74106cd5968797df6175b7815b6eand Images run33532697986— stdout was exactlycandidate-catalog; all three attempt records were on stderr; the 1,754-byte catalog validated.npx vitest run --project e2e-support test/e2e/support/exact-artifact-download.test.ts test/e2e/support/pr-managed-image-publication.test.ts test/e2e/support/pr-managed-image-workflow-boundary.test.ts— 54 tests passed on final head.npx vitest run --project cli src/lib/onboard/sandbox-readiness-tracing.test.ts— 41 tests passed with 1 intentional skip on final head.npm run test:changed— affected growth, readiness, and E2E-support coverage passed.npm run validate:pr— pre-commit, commit-message, pre-push, repository, source-shape, growth, secret-scan, and CLI type-check gates passed after merging upstream main.maincommitc67be3984f2d629ed767393ddefd32c403efb2f9is an ancestor of exact head9b8e851b508591bd9f7cff5e7237f006f17e69e7.git diff --check origin/main...HEADpassed.Review notes
The first CI run exposed a pre-existing one-millisecond race in
sandbox-readiness-tracing.test.ts: CLI shard 6 observed5999instead of6000because the test used wall time even though the production waiter already supports an injected clock. The test-only clock injection removes that nondeterminism without changing production behavior.An Advisor code-reduction note about
parseArtifactReadEvidencewas checked against the exact base and is not in this PR's diff; the helper already existed onmain, so no unrelated churn was added.GitHub Actions captures stderr, so the bounded attempt evidence remains available without contaminating selector stdout. After this fix reaches
main, the exact-head focused Hermes Discord run for #10682 should be dispatched fresh rather than rerunning the pre-execution failure.Signed-off-by: Prekshi Vyas prekshiv@nvidia.com
Summary by CodeRabbit