Repository navigation
Pin the contract suite at v1.0.3 and speak harness protocol 1.1 (#388) - #391
Merged
Merged
Conversation
…1.1 (#388) v1.0.3 fixes offline-reads upstream (agent-operator-contract#38): the scenario no longer finishes an attempt that stop-container interrupted. It also rebuilds recovery-retry and recovery-release on a Retained Attempt, which needs the new harness verb fail-finalization. - Pin agent-operator-contract at v1.0.3. - Harness protocol 1.1: fail-finalization arms a one-shot that fails the publisher's next comment, as an unavailable GitHub would, so the engine keeps the finishing attempt as a Retained Attempt through its real "result comment unconfirmed" path. - finish-attempt returns once the attempt is retained, and answers failed on an attempt that is retained or still held by startup reconciliation instead of reporting a finish that never ran. recovery-release stays red: the engine's recovery release recomputes the outcome instead of keeping the recorded verdict. Tracked in #390; the local test asserting the verdict is a strict xfail until then. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Fixes #388
Pins
agent-operator-contractat v1.0.3, the first tag with the fix from lbacik/agent-operator-contract#38.offline-readsnow passes.Changes
pyproject.tomlnamesv1.0.3.uv.lockis gitignored in this repo, so only the local lockfile was regenerated. It namesrev=v1.0.3#1ba65e9.recovery-retryandrecovery-releaseon a Retained Attempt, through the new verbfail-finalization. The harness now speaks1.1and implements that verb. It arms a one-shot that fails the publisher's next comment, as an unavailable GitHub would. The engine keeps the finishing attempt as a Retained Attempt through its real "result comment unconfirmed" path: it stays thecurrent_attemptof arecoveringinstance, unsealed, with no Claim untilrecovery retryorrecovery release.finish-attemptreturns once the attempt is retained. It answersfailed("no active attempt") on an attempt that is already retained or still held by startup reconciliation. Without that check it would report a finish that never ran.resumeduring startup reconciliation is still rejected with no control change, and the existing tests for that pass.Still red
recovery-releaseFAIL recovery-release: no command may change the recorded verdict: {'label': 'Incomplete', 'native': 'incomplete', 'reason': None}The engine's
recovery release(the #84 design) recomputes the outcome instead of keeping the recorded verdict, which contract §14 now requires.test_recovery_release_finalizes_a_retained_attemptasserts the verdict and is a strictxfailpointing at #390. At the old pin,recovery-releasepassed only because it ran on an already finalized attempt.Verification
--require-allwith all capabilities: 40 PASS, 1 FAIL (recovery-release).offline-readsandrecovery-retrypass.--capabilities "": 40 PASS, 1 FAIL (recovery-release).producerjob stays red onrecovery-releaseuntil recovery release must keep a Retained Attempt's recorded verdict (contract §14) #390.tests/test_conformance_harness.py: 47 passed, 1 xfailed.uv run pytestlocally on macOS: 1990 passed, 10 failed. The 10 (test_attempt_processes.py,test_control_offline.py) fail identically on a cleanmainon that machine.🤖 Generated with Claude Code