Repository navigation
perf(platform): let staged skills survive a sandbox restart unsent - #4556
Merged
Merged
Conversation
yannickmonney
force-pushed
the
perf/sandbox-staging-digests
branch
from
October 9, 2026 02:40
3a87ea8 to
f8386be
Compare
yannickmonney
enabled auto-merge
October 9, 2026 02:40
yannickmonney
force-pushed
the
perf/sandbox-staging-digests
branch
from
October 9, 2026 02:41
f8386be to
9a5df17
Compare
Skill bundles stage as inline files with a reuse probe that named each file by the digest of its bytes but did not send the digest. The runtime could confirm a hit only from its in-memory record of what it had staged, which every restart of a stopped session (5 minutes after a turn) loses, so each later turn sent every bundle again inline: up to 32 MiB per skill, read, base64-encoded and carried platform -> spawner -> runnerd at 1.33x. The probe now carries each file's sha256, which the runtime already checks against the file on disk when an item names one, so an unchanged bundle is confirmed without its bytes after a restart too.
The automation coverage map now keeps one file per suite, so parallel changes stop appending to the same lines; this change's rows move there, after their own anchor row.
yannickmonney
force-pushed
the
perf/sandbox-staging-digests
branch
from
October 9, 2026 02:57
9a5df17 to
6599ce6
Compare
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.
Every turn after a session's idle stop re-sent every equipped skill bundle inline (up to 32 MiB each), because the reuse probe identified files by digest but did not send the digest, and the runtime's record of what it staged dies with the container.
Changes
perf(platform): let staged skills survive a sandbox restart unsent
Skill bundles stage as inline files with a reuse probe that named each
file by the digest of its bytes but did not send the digest. The runtime
could confirm a hit only from its in-memory record of what it had staged,
which every restart of a stopped session (5 minutes after a turn) loses,
so each later turn sent every bundle again inline: up to 32 MiB per skill,
read, base64-encoded and carried platform -> spawner -> runnerd at 1.33x.
The probe now carries each file's sha256, which the runtime already checks
against the file on disk when an item names one, so an unchanged bundle is
confirmed without its bytes after a restart too.
Verification
session_client.staging.test.ts+session_client.test.ts101 pass (the probe test now asserts each file's digest).@tale/platformtypecheck; type-aware oxlint clean on the touched files.file-ops.tsalready verifiessha256against the file on disk (held byfile-ops.test.ts).Part of the sandbox footprint and robustness pass (#4533, #4538 and siblings).