Repository navigation
fix(cloud_validation): match rehearsals by completion time, not a skewed created_at - #322
Merged
Merged
Conversation
…wed created_at
On 2026-11-01 GitHub reported PyAutoHands rehearsal run 41290559836 as
created 09:50:55Z yet updated 09:09:27Z (every start stamp an hour late).
collect() prefiltered candidates on `created > integrate start`, so the
valid rehearsal for v2026.11.1.1.dev85301 was discarded and the board went
STALE ("no rehearsal for current source") although integrate 41291876649
passed.
Use the earlier of created_at and updated_at as the producer's start (a run
cannot finish before it was created), both for the prefilter and for the
report timestamp. Identity checks and matching_rehearsal's
`produced <= integrate start` guard are unchanged, so a rehearsal that
genuinely finished after the integrate started is still rejected.
Closes #321
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016nhQ8QAki1rcqoS951ubcu
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.
Summary
Closes #321. On 2026-11-01, GitHub reported PyAutoHands rehearsal run 41290559836 as created 09:50:55Z but updated 09:09:27Z: every start stamp was an hour late (US DST-end day).
cloud_validation.collect()skipped candidates whosecreated_atwas later than the integrate start, so the valid rehearsal forv2026.11.1.1.dev85301was discarded. The board went STALE ("release validation incomplete: no rehearsal for current source") even though integrate 41291876649 passed.The producer's start is now the earlier of
created_atandupdated_at, because a run cannot finish before it was created. This applies to both the candidate prefilter and the report timestamp.API Changes
None public. Adds the private helper
cloud_validation._effective_created(run). Thecollect()signature and output schema are unchanged. Every identity check, andmatching_rehearsal()'sproduced <= integrate startguard, is unchanged: a rehearsal that really finished after the integrate started is still rejected.Test Plan
test_skewed_start_stamp_does_not_hide_a_finished_rehearsaluses run 41290559836's timestamp shape. It fails onmain(ea6c1b4) and passes with the fix: matched,pass, and the report is not dated after the integrate start.test_skewed_start_stamp_cannot_admit_a_later_rehearsal: a rehearsal with a skewed stamp that finished after the integrate staysincomplete.Heart: STALE (release), with only the reason this PR addresses. The human acknowledged it live at ship time.
Generated by the PyAutoLabs agent workflow.
Generated by Claude Code