Skip to content

feat(ateapi): send resolved sandbox assets during restore - #1866

Merged
Zoe Zhao (zoez7) merged 7 commits into
agent-substrate:mainfrom
shrutiyam-glitch:issue-1835
Sep 25, 2026
Merged

Zoe Zhao (zoez7) merged 7 commits into
agent-substrate:mainfrom
shrutiyam-glitch:issue-1835

Conversation

@shrutiyam-glitch

@shrutiyam-glitch Shrutiya Mohan (shrutiyam-glitch) commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes #1835

atelet chose the sandbox binaries and pause image for a restore from the snapshot's manifest.json rather than from the control plane. This PR makes ateapi send them on every restore, the way it already does for Run.

Changes

  • proto: add sandbox_assets to atelet.RestoreRequest.
  • ateapi: ensureAteletRestored resolves the ActorTemplate's SandboxConfig once and sends it on the local restore, the external restore and Run. A missing SandboxConfig now fails before any atelet call.
  • atelet: sandbox_assets is required on Restore. Restore selects the binaries and pause image with recordFromRequest, the same path Run uses. The manifest still supplies the snapshot files, sandbox class and metrics labels.

Note - The field is required, so after atelet is upgraded, resumes on that node fail until ate-api-server is upgraded too.

Testing

  • ateapi: every Run and Restore sends the resolved assets; a missing SandboxConfig fails on both restore paths.

  • atelet: TestRecordFromRequest, a validation case for a missing field, and TestRestoreUsesRequestSandboxAssets (checkpoint with pause image v1, restore with v2, and the actor runs with v2).

  • Tests pass

  • Appropriate changes to documentation are included in the PR

Restores get their sandbox binaries and pause image from the snapshot
manifest, which is stored with the snapshot data. Add a field so the
control plane can send them instead, as it already does for Run.
Resolve the ActorTemplate's SandboxConfig once in ensureAteletRestored
and set it on the local and external RestoreRequest, not only on the
cold-boot RunRequest. A missing SandboxConfig now stops a restore before
it reaches atelet.
@shrutiyam-glitch Shrutiya Mohan (shrutiyam-glitch) changed the title Issue 1835 feat(ateapi): send resolved sandbox assets during restore Sep 24, 2026
@zoez7
Zoe Zhao (zoez7) added this pull request to the merge queue Sep 25, 2026
Merged via the queue into agent-substrate:main with commit 54cba01 Sep 25, 2026
11 checks passed
@bowei Bowei Du (bowei) added area/api-machinery area/node area/security Security related issue/pr kind/bug Something isn't working / bugfixes labels Sep 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/api-machinery area/node area/security Security related issue/pr kind/bug Something isn't working / bugfixes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ateapi should pass resolved sandbox assets to atelet.RestoreRequest

3 participants