Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .github/workflows/e2b-template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,15 +127,14 @@ jobs:
mkdir -p "$output_root"
bash scripts/prepare-release-runtimes.sh
inputs="$HOME/.oac/build/release-inputs/inputs.json"
AGENTS_RUNTIME_CODEX_PACKAGE="$(python3 -c 'import json,sys; print(json.load(open(sys.argv[1]))["codex"])' "$inputs")"
CODEX_CLI_DIR="$(python3 -c 'import json,sys; print(json.load(open(sys.argv[1]))["codex"])' "$inputs")"
MCODE_HARNESS_BUILD_DIR="$(python3 -c 'import json,sys; print(json.load(open(sys.argv[1]))["mcode"])' "$inputs")"
CLAUDE_SDK_BUILD_DIR="$output_root/claude-sdk"
export AGENTS_RUNTIME_CODEX_PACKAGE MCODE_HARNESS_BUILD_DIR CLAUDE_SDK_BUILD_DIR
export CODEX_CLI_DIR MCODE_HARNESS_BUILD_DIR CLAUDE_SDK_BUILD_DIR
bash scripts/build-claude-sdk-runtime.sh
revision="$(git rev-parse HEAD)"
for harness in codex claude mcode; do
builder="scripts/build-$harness-runtime.sh"
if [[ "$harness" == codex ]]; then builder=scripts/build-agents-runtime.sh; fi
AGENTS_RUNTIME_BUILD_DIR="$output_root/$harness" bash "$builder"
docker build --platform linux/amd64 --tag "oac-e2b-$harness:$revision" "$output_root/$harness"
image="$(docker image inspect --format '{{.Id}}' "oac-e2b-$harness:$revision")"
Expand Down
8 changes: 5 additions & 3 deletions apps/daemon/internal/dispatch/preparation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,8 @@ func TestPreparationSingleTransferAndReleaseDoesNotCancelRun(t *testing.T) {
gotSession <- s
return s, nil
}
r := preparationRouter(t, sender, 80*time.Millisecond, func(context.Context, proto.PromptRequestPayload) (preparedFixture, error) { return p, nil })
// Allow workspace preparation to finish even on a loaded CI worker.
r := preparationRouter(t, sender, 2*time.Second, func(context.Context, proto.PromptRequestPayload) (preparedFixture, error) { return p, nil })
prepare := mustEnv(t, proto.TypeExecutionPrepare, "request", preparationRequest())
if err := r.Handle(t.Context(), prepare); err != nil {
t.Fatal(err)
Expand All @@ -238,7 +239,7 @@ func TestPreparationSingleTransferAndReleaseDoesNotCancelRun(t *testing.T) {
t.Fatal(err)
}
// The old preparation deadline must not govern the transferred Session.
time.Sleep(100 * time.Millisecond)
time.Sleep(time.Until(time.UnixMilli(ready.ExpiresAt).Add(time.Millisecond)))
if session.ctx.Err() != nil || session.cancels() != 0 || p.starts.Load() != 1 || r.ActiveRuns() != 1 {
t.Fatal("transfer was duplicated or cancelled")
}
Expand Down Expand Up @@ -310,7 +311,8 @@ func TestPreparationCancelDuringStartClosesLateSession(t *testing.T) {
func TestPreparationExpiryAndOldHandleCannotStartReplacement(t *testing.T) {
sender := &recSender{}
created := make(chan *controlledPreparation, 2)
r := preparationRouter(t, sender, 60*time.Millisecond, func(context.Context, proto.PromptRequestPayload) (preparedFixture, error) {
// Expiry must follow readiness, not race workspace preparation on CI.
r := preparationRouter(t, sender, 2*time.Second, func(context.Context, proto.PromptRequestPayload) (preparedFixture, error) {
p := &controlledPreparation{closed: make(chan struct{})}
created <- p
return p, nil
Expand Down
Loading