Repository navigation
feat(rollout): report each tick's ramps and fail the run when one is overdue - #90
Open
scott-lowe-vapi wants to merge 1 commit into
Open
scott-lowe-vapi wants to merge 1 commit into
scott-lowe-vapi wants to merge 1 commit into
Conversation
…overdue Part of DEPLOY-205. Health-gate aborts are written as rollout-health-abort, so they are countable apart from an abort someone ran. Each advance and status run writes every ramp's state and the gate's reading to the step summary, and advance fails when a ramp is overdue: a step still waiting three intervals on, a stale pin left for a human, or a split changed under a step. Holds and aborts never fail. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 31, 2026
Open
Contributor
Author
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
scott-lowe-vapi
marked this pull request as ready for review
October 31, 2026 06:00
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.

Support partial GitOps promotions using traffic splitting
Part of DEPLOY-205. 5 of 5: make a stuck ramp visible, and count health-gate aborts apart from aborts someone ran.
What changes
rollout-health-abortinstead ofrollout-abort. That is one more value inRolloutCommand, and no server change, since thex-vapi-clientschema accepts[a-z0-9_-]. PostHog can now count how often the gate fires.advanceandstatusrun appends a table to$GITHUB_STEP_SUMMARY: every ramp's state and what the health gate read (calls and error rate per version). Before, a stuck ramp was aconsole.logline in a green run.advancefails when a ramp is overdue, so GitHub's failure notification reaches someone. Overdue means:minCalls);statuslists overdue ramps but doesn't fail.promotion.mdcovers the summary, what fails a run, and who GitHub notifies;how-it-works.mdlists the new command.This doesn't catch a ticker that never runs: a disabled schedule, an Actions budget block, or
VAPI_ROLLOUT_ENABLEDunset. That needs the server-side stuck-ramp insight in PostHog, which waits on GitOps attribution reaching production.Evidence
rollout-tick.test.ts: the gate abort's command; overdue for a starved gate after three intervals, a stale pin, and a malformed step; never overdue for a hold or an abort; the gate reading on a passing step.rollout-cmd.test.ts: a split changed under a step fails that run, and the next one passes; a stale pin failsadvancewhile a hold beside it doesn't;statuslists it without failing; the exact step summary.rollout-summary.test.ts: the table, its overdue count, pipe escaping, and the failure message.Tests run with
GITHUB_STEP_SUMMARYunset unless a test sets it, so CI's own summary stays clean. 695 tests pass (682 on #89).🤖 Generated with Claude Code