Repository navigation
automations: explain waiting and skipped runs - #608
Draft
Connor Peet (connor4312) wants to merge 1 commit into
Draft
Connor Peet (connor4312) wants to merge 1 commit into
Connor Peet (connor4312) wants to merge 1 commit into
Conversation
Add an optional AutomationPendingRunLifecycle.waiting with a host-reported reason, message, and retry time, and a terminal skipped run status that records trigger occurrences the host dropped (misfire, overlap, quota), coalesced via occurrenceCount. Reasons are open strings with documented common values. Refs #570 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This branch has not been deployed
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.
Implements the "run lifecycle" half of #570. Instead of adding
healthandskippedtoAutomationEntry, the explanation lives onAutomationRunLifecycle. It's already mirrored intoAutomationRunSummary, so run history explains itself without new catalogue state.What changed
AutomationPendingRunLifecyclegains an optionalwaiting: { reason, message?, retryAt? }field. The host updates it with apending→pendingautomationRun/lifecycleChanged. A run that won't retry still transitions tofailed.AutomationRunStatus.Skippedand anAutomationSkippedRunLifecyclevariant, with{ createdAt, completedAt, reason, message?, occurrenceCount? }.skippedor moves there frompending(for example when an overlap policy merges it into another run).occurrenceCountlets hosts merge consecutive skips into one record, so a long outage doesn't push real runs out of the boundedrunswindow.reasonfields are open strings with documented common values, following theMessageAttachmentBase.displayKindpattern, so hosts can report causes specific to them.capacity,concurrency,quota,authentication,targetBusy,retry,unavailable.misfire,overlap,quota.skipmisfire policy, hosts SHOULD record dropped occurrences as one skipped run. UnderrunOnce, they MAY.skippeddon't count towardrunCount.docs/guide/automations.mdanddocs/specification/automation-run-channel.mdare updated; two new example payloads (099,100) are added undertypes/test-cases/round-trips/; and there's a changelog fragment.Notes for reviewers
skippedto the@exhaustiveAutomationRunStatusmeans older clients will reject the new value. The automation run channel is still at 1.0 "early development". Folding skips intocancelledwould avoid the break but blur what "cancelled" means.healthfield (mostly redundant withnextRunAt,runs, and wait reasons) and thefilteredskip reason (potentially very high volume, so it doesn't fit as run records).Validation
npm run generateandnpm run testpass, and so do the TypeScript, Go, Rust, Swift, .NET, and Kotlin client test suites (Kotlin run in podman).