nisse-dev: a VM lost as a helper's work is taken back ends the run
The property walk (seed 468, a CI run's moving seed) found it: when the build VM went out of reach while _delegate moved the helper's work back onto the milestone's branch, git's HostUnavailable came back as a GitError, was noted as a fact, and the driver's run went on, calling the model with its VM gone (no_model_on_a_lost_vm). Now a GitError caused by a lost VM raises VMUnreachable once the delegation's intents are settled, so the run ends and the VM is blocked, as for any other lost-VM call (#137). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J5Utyfzw7gF7UhjRDEtjTk
This commit is contained in:
1 parent
de1356cd17
commit
76d8e36f43
2 files changed
+44
No files matched your search
@@ -2111,6 +2111,7 @@ class LoopAgent:
|
||||
result = delegation.run(
|
||||
self._store.transcript(item.id, "helper"), brief=brief, branch=branch
|
||||
)
|
||||
lost: GitError | None = None
|
||||
try:
|
||||
# The milestone takes the helper's work (or, on failure, only
|
||||
# its own back) as uncommitted changes: harness branches never
|
||||
@@ -2122,6 +2123,8 @@ class LoopAgent:
|
||||
git._git("branch", "-q", "-D", branch)
|
||||
except GitError as exc:
|
||||
self._fact(item, f"after helper {number}: {exc}")
|
||||
if isinstance(exc.__cause__, HostUnavailable):
|
||||
lost = exc # the VM went: the driver's run ends too (#137)
|
||||
for intent in self._store.pending_intents():
|
||||
# Cut off rather than finished: discarded all the same, never
|
||||
# resumed blindly (L8, L9).
|
||||
@@ -2130,6 +2133,8 @@ class LoopAgent:
|
||||
and intent.payload.get("branch") == branch
|
||||
):
|
||||
self._store.abort_intent(intent.id, cause=f"delegation {result.status}")
|
||||
if lost is not None:
|
||||
raise VMUnreachable(str(lost)) from lost
|
||||
if result.usable and result.handback is not None:
|
||||
self._fact(item, f"helper {number} finished: {result.handback.render()}")
|
||||
return f"the helper finished:\n{result.handback.render()}", True
|
||||
|
||||
Reference in new issue
Block a user