openenv/tbench2: drop the daytona bake CLI, which nothing can consume - #2136
Merged
Conversation
Contributor
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
The per-task sandbox refactor made the daytona leg declarative: every episode creates from an ``Image`` definition, and the definition hash IS the cache key. The bake CLI shipped alongside it registers *named snapshots* instead, and nothing on the create path can reference one — that needs ``CreateSandboxFromSnapshotParams(snapshot=...)``, while ``create_task_sandbox`` passes ``CreateSandboxFromImageParams(image=...)`` and always will, because avoiding the org-level snapshot quota is the reason the declarative path exists. So the "optional warm cache" the CLI advertises never warms anything the trainer touches; it only spends quota (the shared org has run within two of its 500-snapshot ceiling), and it needs a live API key to do it. No caller, no test, no doc, and no runbook references it: the README documents the daytona leg's env vars and never this entry point. Warming the daytona leg, if ever wanted, is one declarative create per task — the same code path a rollout uses — not a snapshot registration. Verified with the openenv example suite (21 passed, 1 skipped; ``pytest examples/experimental/openenv/tests/``), which is not in the repo-level testpaths.
nblintao
force-pushed
the
tao/openenv-drop-daytona-bake-cli
branch
from
August 3, 2026 23:59
b088ef7 to
1776d14
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.
What
Deletes the named-snapshot bake CLI from
examples/experimental/openenv/tb2_sandbox_daytona.py(snapshot_name,bake,main, the__main__guard, and the three imports that existed only for them). Nothing else changes; the daytona rollout leg is untouched.Why it can't be used
The per-task sandbox refactor made this leg declarative: an episode creates from an
Imagedefinition and the definition hash is the cache key. The bake CLI instead registers a named snapshot — and no create on this leg can reference one:create_task_sandbox()passesCreateSandboxFromImageParams(image=...); consuming a snapshot needs the other param type,CreateSandboxFromSnapshotParams(snapshot=...)(daytona SDK 0.198.0).So the "optional warm cache" in its docstring warms nothing the trainer touches. It burns quota and needs a live API key to do it.
Confirming nobody uses it
openenv_daytona_agent_function.py(make_daytona+create_task_sandbox) and the module's own tests, which cover labels / API-key resolution / TTL-keepalive and neverbake.bake-style tooling is harbor's own, unrelatedharbor/environments/daytona/snapshots.py.If we ever want to pre-warm this leg, it's one declarative create per task (the same path a rollout takes), not a snapshot registration. That's a separate change and not obviously worth it.
Test
pytest examples/experimental/openenv/tests/→ 21 passed, 1 skipped (this suite is outside the repo-leveltestpaths, so CI doesn't run it). ruff / black / isort clean.Interaction with #1913
Independent change, so it's based on
main. #1913 (open) rewrites the deletedmain()'s argument parsing to use a sharedrecipe.add_task_selection_args; whichever lands first, the other's rebase drops that hunk, and #1913's helper docstring then wants the singular ("the e2b bake CLI's task selection") since e2b becomes its only caller.🤖 Generated with Claude Code