fix(sandbox): report the no-install path so the cache denominator is knowable - #5398
Merged
Merged
Conversation
…knowable `sandbox.deps.restore` emitted only on a restore hit or a completed install. The `installPromise === null` early return emitted nothing — and that is the path EVERY Deno project takes, since deno fetches at runtime and there is no node_modules for any golden tier to cache. Measured in prod (12 live sandbox pods, image 1.26.1): 4 Deno, 1 bun, 7 unclaimed. Only the bun pod emitted anything. So the log currently reads as "barely any dependency traffic" when the truth is "most of these boots are a runtime the cache cannot serve". That conflation is load-bearing for a buy decision. The Deno share is the ceiling on what L1 or the L2 EFS archive can ever win, and right now it is invisible — we would be sizing an EFS filesystem against a denominator we cannot see. Add `no-install` to the source union and emit it there. Guarded: deleting the emit fails the new test. For reference, the one real prod datapoint the metric did produce: source=miss, 312 deps, duration_ms=26652 (deco-sites/decocms-tanstack).
pedrofrxncx
enabled auto-merge (squash)
July 29, 2026 21:20
decocms Bot
pushed a commit
that referenced
this pull request
Jul 29, 2026
PR: #5398 fix(sandbox): report the no-install path so the cache denominator is knowable Bump type: patch - @decocms/sandbox (packages/sandbox/package.json): 1.27.0 -> 1.27.1 - deploy/helm/sandbox-env (chart 0.9.46) (deploy/helm/sandbox-env/values.yaml deploy/helm/sandbox-env/Chart.yaml): image.tag/appVersion -> 1.27.1 Deploy-Scope: both
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.
Follow-up to #5346/#5351. Found while checking whether the L2 cache is live in prod — it isn't, but the metric that will judge it has a blind spot big enough to change the buy decision.
The gap
sandbox.deps.restoreemits on a restore hit and on a completed install. It emits nothing on theinstallPromise === nullearly return — and that's the path every Deno project takes: deno fetches at runtime, there is nonode_modules, so no golden tier (L1 or the L2 EFS archive) can ever help it.Measured in prod just now, 12 live sandbox pods on image
1.26.1:[dev] $ deno task devsandbox.deps*lineSo today the log reads as "barely any dependency traffic" when the truth is "most of these boots are a runtime the cache cannot serve."
Why it blocks the decision, not just the dashboard
The Deno share is the ceiling on what any golden tier can win. Without a line on that path it is invisible, and we'd be sizing an EFS filesystem against a denominator we can't see — buying a shared filesystem to serve a fraction of boots we never measured.
no-installmakes the denominator knowable:The one real datapoint the metric did produce
{"msg":"sandbox.deps.restore","source":"miss","repo_hash":"f73290d25d81db55","duration_ms":26652}deco-sites/decocms-tanstack, 312 deps, 26.6s cold install. That's the per-boot cost L2 would shave — worth having on the record since it's the first prod figure for it.Testing
New orchestrator test drives a Deno project (task-bearing
deno.json, no package manifest) sospawnInstallhas nothing to run, and asserts the label. Guarded: deleting the emit fails it (verified 13 pass / 1 fail).bun test packages/sandbox/daemon/setup/→ 98 pass.knipclean,lint0 errors.Scope
Deliberately not instrumented: the fingerprint-skip resume path. A resume isn't a cold boot and
studio.sandbox.ensure.outcomealready splits fresh vs resume — adding an arm here would double-count.Summary by cubic
Emit
no-installevents insandbox.deps.restoreso cache metrics include boots with no install step. This makes Deno and manifest-less repos visible and lets us size L2 correctly.no-installtoRestoreSourceand emit wheninstallPromiseis null (e.g., Deno, no manifest).source: "no-install".Written for commit 50295de. Summary will update on new commits.