feat: require backends to honour authored trial timeout and retry choices - #1398
Merged
Merged
Conversation
Collaborator
Author
|
Ground Control delivery — this pull request delivers issue #1361; Phase E runs on merge. |
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
An experiment's timeout and retry choices now reach backend admission.
on_timeout: cancelrequires the backend to support cancellation. More than one attempt requires evidence that the previous attempt stopped; when effects must not repeat, it also requires effect observation. The admitted trial plan records the required guarantees, backend manifests can declare them, and trial compilation refuses a backend that lacks them instead of treating them as best effort. The existing cleanup-capability check is now enforced there too. As agreed with the owner on the issue, there is no new SDL syntax. Workflows already carry in-world failure responses to admission, and nothing retries or resumes work because state was persisted. Replacement trials are tracked in #1396.Requirement UIDs
API-402Related Issues
Refs #1361
ADR Impact
Changes
required_operation_guarantees(): one RAE-owned projection fromon_timeoutand the cleanup retry policy to Publish backend operation and supervision contracts #1360 operation guarantees. Default choices require none.execution_controls.required_guaranteeson admitted trial entries. The field is omitted when empty, so existing plan bytes and digests are unchanged. The plan rejects any value that differs from the one derived from the entry's controls and cleanup plan.capabilities.operation_supervision(name,guarantees) to backend-manifest-v2. It requires the backend operation contract family and converts to and from the internal manifest.require_execution_authority_capability(). It enforces the cleanup-plan capability (previously never called) and the required guarantees.trial-compiler.execution-authority-unsupported.Test Plan
Targeted runs: the new #1361 module; the trial compiler, admitted plan, mixed trial, backend manifest, cleanup and facade tests; schema publication and coverage; and the evidence modules including integration-marked tests. The processor-only regression fails without the empty-backend refusal.
Ground Control Checks
Traceability
Checklist
Documentation
Updated: see diff.