Repository navigation
fix(sandbox,db): keep a short workbench run's output on timeout; require dev push for the Project bootstrap switch - #9617
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
[Medium impact] The PR appears safe to merge; no actionable issues were found. SummaryPreserves streamed output when a workbench run's deadline fires before E2B replies.
Reviews (2) · Last reviewed commit: "fix(sandbox,db): keep a short workbench ..." · Reviewed by Greptile |
…ire dev push for the Project bootstrap switch - A workbench run with a budget of 20 s or less hands the command its whole budget, so the run's own deadline can fire before the provider's timeout reply. The E2B session adapter now treats that timeout-reason abort like the provider's own timeout and returns the output it already streamed, and throwIfRunTimedOut lets only the run's deadline through, so a Stop stays a cancellation. No budget is taken from short runs. - The nullable workspace.project_id switch now also requires SIM_DEV_DB_PUSH=1, like hnswIndexOptions, so a stray bootstrap flag cannot make an ordinary push or generation drop NOT NULL.
waleedlatif1
force-pushed
the
fix/release-0942-short-run-output
branch
from
November 3, 2026 06:37
225812c to
94d61e4
Compare
Collaborator
Author
Collaborator
Author
|
@cubic-dev-ai review this PR |
Contributor
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
Closed
6 tasks done
This branch was previously deployed
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.
Summary
timedOut: true.throwIfRunTimedOutlets only the run's own deadline through (throwIfCancelled) and runs before the post-run abort check, so the caller gets theSandboxExecutionTimeoutErrorprogress report. A Stop is still a cancellation, and one-shot sandboxes still get the plain timeout. This fix works alongside the report reserve from fix(release): report short workbench timeouts, gate Sim links in Chat settings, scope the Chat plan modal #9616: that reserve usually lets E2B's timeout answer first, and this change covers the case where the call's deadline still fires first. It takes no additional budget.workspace.project_iddev-push bootstrap switch now also requiresSIM_DEV_DB_PUSH=1, the same wayhnswIndexOptionsdoes. A straySIM_DB_PUSH_PROJECT_BOOTSTRAPcan no longer make a non-dev push ordb:generatedrop NOT NULL.Type of Change
Testing
session-sandbox.test.ts: the deadline fires before the provider replies, for both code and shell, and the run reports the streamed output; it still throws a bareAbortError: timeouton staging with fix(release): report short workbench timeouts, gate Sim links in Chat settings, scope the Chat plan modal #9616. A Stop stays a cancellation on a workbench, and also on a provider without workbenches.e2b-session.test.ts: a deadline abort returns the streamed stdout for both code and command. A Stop of code still rejects. A Stop of a command is never reported as a timeout. A one-shot sandbox's deadline still rejects.dev-push.test.ts: with only the bootstrap flag set,project_idstays NOT NULL; with both flags it is nullable.packages/dbsuite;remote-sandboxsession, E2B, conformance and session-files tests;execute-request.test.tsdrizzle-kit generateproduces no migrationcheck:comment-hygiene,check:test-patterns,check:utils,check:explicit-any. CI runs the full gate.Checklist
test-auditauthoring gate)