|
| 1 | +# Verification: E2B behavior review, second run |
| 2 | + |
| 3 | +- Date: 2026-10-16 |
| 4 | +- Change: proposed architecture ADR `2026-10-16-e2b-behavior-contract`; https://github.com/Alibaba-Agent-Sandbox/python-sdk/issues/36 |
| 5 | +- Result: PARTIAL |
| 6 | +- Package under test: editable client/server from this branch, Python 3.13.13, Linux x64. Separate reference environment contains e2b 2.31.0 and e2b-code-interpreter 2.8.1. |
| 7 | +- Credentials: supplied through ignored environment configuration; values omitted. |
| 8 | + |
| 9 | +## What was verified |
| 10 | + |
| 11 | +The root synchronous and asynchronous clients, interpreter namespace, lazy pagination, command exceptions/handles, canonical configuration, network updates and snapshot request shapes were reviewed against the pinned reference. The implementation owns an attributed source port and has no E2B runtime dependency. Node SDK changes are excluded. |
| 12 | + |
| 13 | +## Commands run |
| 14 | + |
| 15 | +- `python -m pytest client-sdk/tests -q`: 1991 passed, 21 skipped (157.93 seconds), before the last two snapshot-state assertions. |
| 16 | +- `python -m pytest client-sdk/tests/test_api/test_standard_contract.py client-sdk/tests/test_providers/test_epp.py -q`: 47 passed (26.43 seconds), including final snapshot/state and placeholder-redaction fixtures. |
| 17 | +- `python scripts/check_standard_contract.py --reference-python <reference-python>`: 354 public callable signatures and sync/async shapes match. Only the documented optional Alibaba snapshot-name keyword is allowed beyond the reference. |
| 18 | +- `python -m pytest e2e/test_standard_contract.py -ra`: 3 passed, 1 skipped (24.75 seconds). |
| 19 | +- `make lint typecheck format-check`, `make build dist-check`, `make hygiene`: PASS. Narrow ported/generated source exclusions are recorded in configuration; maintained adapters are checked. |
| 20 | +- Built wheels installed into a clean environment; standard clients, shared server namespace, py.typed, both MIT licenses, SOURCES.json and PATCHES.md checked: PASS. |
| 21 | +- `make test`: server gate FAIL, 7 failed / 853 passed / 1 error (320.10 seconds). It stops before the client target. This is not a full-suite pass. |
| 22 | +- `bash scripts/check-repo-health.sh`: 106 PASS / 1 WARN / 0 FAIL before restoring historical archives. Parent branch now contains the full missing Chinese archive translation; integration and final health rerun remain. |
| 23 | + |
| 24 | +## Results |
| 25 | + |
| 26 | +| Scenario | Result | Details | |
| 27 | +|---|---|---| |
| 28 | +| Standard synchronous cloud lifecycle | PASS | Create/get_info/list/timeout, text and bytes, WriteInfo, command exit 7 with captured output, background stdin/wait, kill and repeated kill | |
| 29 | +| Standard async cloud lifecycle | PASS | Create/connect/files/commands and lazy metadata pagination | |
| 30 | +| Interpreter cloud contexts | PASS | Persistent state, callbacks, results/errors, restart/list/remove contexts | |
| 31 | +| Runtime network policy | PASS | Public request succeeds, deny-all blocks it, restored allow rule succeeds | |
| 32 | +| Snapshot request contracts | PASS | Name filter in sync/async paginators, qualified deletion paths, snapshotting states | |
| 33 | +| Snapshot cloud restore | SKIP | No configured MicroVM template with the snapshot allowlist (`E2E_SNAPSHOT_TEMPLATE`) | |
| 34 | +| Conditional pause/resume and full cloud capability matrix | NOT VERIFIED | Requires appropriate runtime/account fixtures; no claim inferred from a preserved method | |
| 35 | + |
| 36 | +## Cleanup |
| 37 | + |
| 38 | +The cloud tracker reported `sandboxes_tracked=3 leaked_after_cleanup=0`. Every test uses try/finally kill. Listing/index assertions retry only declared eventual consistency. This evidence does not claim deletion of unrelated account resources. |
| 39 | + |
| 40 | +## Problems found |
| 41 | + |
| 42 | +Fixed the interpreter error-name assumption and metadata-index timing in the initial test harness. The server gate receives managed-network HTTP audit responses on raw loopback tests and has an ambient server-policy assumption plus a bind error; server runtime source was not changed by this feature. The initial missing-pip environment problem was corrected before the reported server run. These failures remain failed, not excluded. |
| 43 | + |
| 44 | +## Not verified |
| 45 | + |
| 46 | +Final integration onto the updated parent https://github.com/Alibaba-Agent-Sandbox/python-sdk/pull/33, complete required CI matrix/review, all conditional cloud fixtures, release publication. This record does not close the Issue, accept the ADR or authorize a failing merge. The companion CLI work is tracked at https://github.com/Alibaba-Agent-Sandbox/agent-sandbox/issues/33. |
0 commit comments