mirror of
https://github.com/agent-substrate/substrate.git
synced 2026-10-02 03:24:42 +08:00
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