🐛 Keep run wait results API-truthful#321
Merged
Merged
Conversation
Polling failures after the child tests passed were being relabeled as completed builds. Preserve the API lifecycle state, report unavailable status honestly, and stop filling missing API fields with client defaults.
Robdel12
force-pushed
the
rd/truthful-run-wait
branch
from
July 22, 2026 12:07
2008655 to
925f841
Compare
Robdel12
enabled auto-merge (squash)
July 22, 2026 12:09
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.
Why
The legacy dogfood run hit a build-status polling timeout after the child tests passed. The CLI then reported the build as completed even though the API had not returned that terminal state, giving agents a result that Vizzly never supplied.
Approach
The existing bounded polling behavior stays intact so stalled processing still surfaces. Build lifecycle status now comes directly from the API, review outcomes stay separate, and missing comparison or approval fields remain absent instead of becoming zero or pending.
If polling fails after the child tests pass, JSON reports a null build status alongside the real error and a context command. An API-reported failed build remains failed and preserves the existing nonzero visual-test outcome.
Evidence
CLI boundary coverage exercises completed, failed, and unavailable status responses through a real local HTTP server. The focused contract tests and lint remain green after narrowing the change; the full suite, public type checks, and production build passed on this branch.