Skip to content

fix(impl-review): retry the staging download before the render check - #11697

Merged
MarkusNeusinger merged 2 commits into
mainfrom
fix/impl-review-staging-download-retry
Sep 10, 2026
Merged

fix(impl-review): retry the staging download before the render check#11697
MarkusNeusinger merged 2 commits into
mainfrom
fix/impl-review-staging-download-retry

Conversation

@MarkusNeusinger

Copy link
Copy Markdown
Owner

Summary

  • The "Download plot images from staging" step swallowed a lost gsutil cp (2>/dev/null || true); "Verify both theme renders exist" then failed on an empty directory, and since that failure sets no ai-review-failed label, no watchdog case matched — the PR waited for a manual re-dispatch. Seen twice with staging complete both times: feat(ggplot2): implement histogram-2d #11360 (2026-09-05 03:56 UTC) and feat(chartjs): implement sparkline-basic #11678 (2026-09-09 18:14 UTC).
  • The download now tries three times with linear backoff, stops as soon as both theme PNGs are on disk, and surfaces gsutil's stderr as a warning per failed attempt. A transfer blip heals in the same run; a genuinely empty staging folder still fails loudly at the unchanged render check.
  • The babysit-pipeline skill gets the gotcha: how to tell a lost download from a missing render, and the one-shot re-dispatch.

Plan

N/A

Test plan

  • Workflow YAML parses; the edited run block passes bash -n
  • uv run python -m tools.changelog check --base origin/main passes
  • After merge: the next review runs show "Found both theme renders" as before; a run that logs a staging download incomplete (attempt 1/3) warning still proceeds to the review
  • Unchanged: an empty staging folder still fails at "Verify both theme renders exist"

Known gap: .github/workflows/ changes have no local verification loop; only real review runs exercise the retry.

🤖 Generated with Claude Code

https://claude.ai/code/session_01LfPAdJKa4JWzvsEUQZUuhs

…empty directory

The step swallowed a lost `gsutil cp` (`2>/dev/null || true`), the render
check right after it then failed on nothing, and because that failure
set no ai-review-failed label, no watchdog case picked the PR up — it
waited for a manual re-dispatch (#11360 on 2026-09-05, #11678 on
2026-09-09; staging was complete both times).

The download now tries three times with a short backoff, stops as soon
as both theme renders are on disk, and keeps gsutil's stderr in a
warning per failed attempt: a transfer blip heals in the same run, a
genuinely empty staging folder still fails loudly at the render check.
The babysit skill gets the gotcha (how to tell the two apart, the
one-shot re-dispatch).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LfPAdJKa4JWzvsEUQZUuhs
Copilot AI balanced review requested due to automatic review settings September 9, 2026 18:27
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LfPAdJKa4JWzvsEUQZUuhs

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The retry is bounded, preserves loud failure for missing renders, and includes operational documentation and a changelog entry.

Pull request overview

This PR makes impl-review resilient to transient staging-download failures and documents the recovery procedure.

Changes:

  • Retries GCS image downloads three times with linear backoff and visible warnings.
  • Preserves the existing render-existence check for genuinely missing images.
  • Documents diagnosis and one-shot re-dispatch guidance.
  • Adds the required changelog fragment.
File summaries
File Description
.github/workflows/impl-review.yml Adds bounded retries and transfer-error reporting.
.claude/skills/babysit-pipeline/SKILL.md Documents diagnosis and recovery for lost downloads.
changelog.d/impl-review-staging-download-retry.md Records the workflow reliability fix.
Review details
  • Files reviewed: 3/3 changed files
  • Comments generated: 0
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@MarkusNeusinger
MarkusNeusinger merged commit 9b58e87 into main Sep 10, 2026
11 checks passed
@MarkusNeusinger
MarkusNeusinger deleted the fix/impl-review-staging-download-retry branch September 10, 2026 05:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants