Conversation
67ec174 to
f305018
Compare
f305018 to
234ed63
Compare
This comment has been minimized.
This comment has been minimized.
|
Our design principle is that provider-specific complexity stays inside the adapter. A “thin” integration means replacing a Provider does not require changing the common execution flow; it does not mean the adapter must contain little code. Core can own shared scheduling, persistence and recovery through capability contracts such as |
This comment has been minimized.
This comment has been minimized.
|
I do not recommend merging this PR yet. I updated main and reviewed commit aaeddaa against the latest AGENTS.md. The requirement is to keep E2B pause/resume behavior and its complexity inside the adapter. The current changes cross that boundary:
Please move E2B-specific behavior and recovery logic into the adapter and reuse the shared lifecycle. If the existing protocol cannot express the required behavior, propose and review a unified protocol change separately before integrating E2B, rather than adding parallel Core/Store paths. The current CI checks are green, but the architecture issue still blocks merging. The PR description also lists live E2B pause/resume acceptance as outstanding; please provide that evidence and update the description. |
Superseded: continue in #297
All active work is consolidated in #297 (
codex/e2b-unified-pause), targeting main directly. This PR is closed without merging. Historical review and evidence are retained below.Superseded by #296 and #297
The replacement implementation is pushed as two separately reviewable PRs: #296 defines the unified suspension protocol; #297 implements E2B through that shared lifecycle. This PR remains a draft and must not be merged. The replacement head is
022875c0fb5358576058ed31668fa8d4b8bc48a5; its full Linux checks and GitHub CI pass. Live pause/resume qualification of the replacement is still pending. Historical evidence below applies only to the old implementation.Status: architecture blocked; do not merge or roll out
Head:
aaeddaa0b8db6a6e41dcb7bf5db8e9697c52fc66. Reviewed against updatedorigin/mainat17bbffa4aand its current AGENTS.md. The implementation does not meet the required ownership boundary. Green CI and the earlier live run do not resolve that issue.The blocking changes are
ResidentPauseProvider,runtime_compute_resident.go,managed_generations_resident.go, and Store'sSetRuntimeResidentCompute/ReadyToPauseResident. They introduce a second lifecycle and provider-selected eligibility for initialized Sessions without a Turn. Generic names and capability declarations do not make that architecture acceptable. Earlier independent reviews missed this boundary violation.Required redesign
The current shared CheckpointProvider contract requires a verified full snapshot, deletion of the source compute and restoration into a new incarnation. E2B native pause/resume retains the original sandbox. Implementing it with a fabricated SnapshotIdentity or a no-op KillCompute would violate the contract.
A unified protocol change must therefore be proposed and reviewed separately before reworking this E2B integration. The recommended scope is to replace the checkpoint-specific orchestration with one declared suspension lifecycle: Core owns idle admission, durable operation intent, capacity and authenticated daemon wake; adapters own retained resources, native pause/capture/restore, settlement evidence and native cleanup. All existing adapters and node/helper transports must change together. E2B suspension stays unsupported in that foundational change and is added in its subsequent adapter change.
Remove the resident interface, Core path and Store entry points when rebuilding this PR on the reviewed foundation. Preserve main's single idle eligibility rule initially; supporting initialized Sessions without a Turn requires a shared lifecycle change for every supported provider. Preserve the original 3600-second E2B native timeout. Do not deploy a protocol/persisted-state change without its reviewed upgrade or drain contract.
CI evidence for aaeddaa
GitHub currently reports SUCCESS for
check,backend,tooling,web, bothweb-acceptanceshards,official-client, and Linux/macOS/Windows platform jobs. These validate the existing implementation, not the proposed redesign. Local macOSmake checkwas not a complete pass; Linux-specific gates require Linux.Live evidence: prior commit 31f5a5b only
The following is the recorded real-provider acceptance of the earlier implementation. It is not acceptance of aaeddaa or of a future unified protocol.
https://sandbox.sandbase.ai; Codex withgpt-5.5through the configured SandBase model endpoint.openagentcore-codex-31f5a5b9,tpl_661ea8869eca4687b7957836c7eae7c5:db2ecf2b-dea1-4c18-b7bf-f7297c2c0d05.eff37a81-a9bc-4d98-aa63-75ee3a31b356.2885e928-078a-43f5-8aff-2b4531177955, completed, 15,081 tokens. A tool wrote and read a workspace marker.2026-09-30 10:03:21.521797 UTC; Core suspended at10:08:27.136032 UTC(approximately 306 seconds). The SDK observed paused state.sbx4570cf44a3841567f23d90a3cc781204ef11and the existing workspace file.d6ebbba7-9ab2-4129-b11a-2662faffdf4f, completed, 15,401 tokens. A tool read the existing marker without recreating it.Narrower template evidence for aaeddaa
openagentcore-all-aaeddaa0(tpl_0043dba4f2e742c1a2d3405a76f22556:efa1c425-c2cf-49c5-9cc5-07efab13e920) contains Codex 0.153.4, Claude SDK 0.3.269 / native 2.1.269, and MiniMax Code 0.4.12. Recorded native probes exited zero for all three and found their activation paths. This proves template contents/native readiness only. The template was not selected in Core; three managed real-model conversations and pause/resume on this template are not qualified.Protocol proposal review status
Independent design review accepts the direction of a separate unified lifecycle proposal, not an implementation-ready contract. The exact protocol review must resolve Create/Kill settlement, revision/fence precedence, admission during retained-artifact finalization, durable adapter fencing across restart/retirement, capacity persistence after unknown resume, and the state upgrade/drain contract. No implementation changes were made during this review; head remains aaeddaa. The rejected resident paths are still present and remain blocking.
Remaining merge gates
make checkand adapter/native contract checks on the final revision.This PR remains blocked until the architecture and final-revision evidence meet those gates.