feat(cloud): surface cancellation over the internal Host<->Cloud protocol

- LeaseRenewalResponse gains cancel_requested (populated from the
  repository's renew_lease result)
- TerminalResultRequest.status widened to accept "cancelled"
- Add internal API tests for a renewal surfacing cancel_requested=True
  and a cancelled terminal report being accepted/idempotent
This commit is contained in:
2026-07-15 18:13:43 +08:00
parent 19c6669800
commit 8a0d48eada
4 changed files with 64 additions and 9 deletions
@@ -316,7 +316,7 @@ def create_internal_router(
summary=payload.progress.summary[:500],
updated_at=now,
)
renewal_status = pool.store.renew_lease(
renewal = pool.store.renew_lease(
task_id=task_id,
attempt=payload.attempt,
lease_id=payload.lease_id,
@@ -325,16 +325,17 @@ def create_internal_router(
now=now,
progress=progress_snapshot,
)
if renewal_status == "not_found":
if renewal.status == "not_found":
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail="assignment not found",
)
if renewal_status != "renewed":
if renewal.status != "renewed":
return _stale_lease_conflict("assignment lease is stale or expired")
return LeaseRenewalResponse(
status="renewed",
lease_expires_at=lease_expires_at,
cancel_requested=renewal.cancel_requested,
)
@router.post(