Skip to content

fix: wait for prepared template readiness within its deadline - #122

Merged
anycodes merged 2 commits into
mainfrom
fix/prepared-template-readiness
Oct 25, 2026
Merged

anycodes merged 2 commits into
mainfrom
fix/prepared-template-readiness

Conversation

@anycodes

@anycodes anycodes commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Description

Process-start acknowledgement can precede application readiness. Public a2 rejected the first nonzero ready_cmd result even though the same owned process and port became healthy within readiness_timeout. Poll only nonzero ProcessResult values inside one monotonic ready-command budget, constrain each probe by the remaining time and preserve cancellation/error cleanup. Creation and startup are never replayed. Prepare the lockstep 0.4.0a3 pair without changing published a2 artifacts.

Refs #121
Refs Alibaba-Agent-Sandbox/awesome-providers#40

Type of Change

  • Bug fix
  • Tests
  • Documentation

Testing

  • Public a2 real causal reproduction: initial connection refusal, exact server PID alive, same port healthy inside the budget; original failed result still rejected. Independent typed NotFound cleanup. An earlier diagnostic's false process-list assertion remains recorded.
  • Candidate real prepared sandbox: delayed success after five failed probes, a one-second failure deadline, and cancellation. All three owned sandboxes independently typed NotFound.
  • Full existing OpenSandbox T4 run 40208641347: all 18 steps SUCCESS, including default/portable/proxy startup, CLI/Python/Node application calls and no-owned-container check. This installed the exact candidate source pair, not public a3; guest runtime remained public a2.
  • 25 focused tests and full client suite (2,275 passed, 26 skips) passed. Lint, format, both mypy runs, four distribution builds, clean combined-wheel installation, pip check, hygiene and repository health passed.
  • Local server suite: 877 passed, three failures. Raw HTTP fixtures returned 501/502 instead of expected 400; the new uv environment initially lacked pip, and that package-list test passed after normal pip installation. Original failures remain recorded; no assertion was weakened. Latest-head hosted matrix remains the final gate.
  • Independent peer and root reviews of runtime/tests found no blocker. Latest follow-up changes only evidence.

Definition of Done

  • Regression tests added and passing
  • Targeted real-cloud E2E with independent cleanup
  • Exact candidate OpenSandbox T4
  • Proposed owner record, bilingual docs, changelog
  • Versions and dependency kept in lockstep
  • Final latest-head CI
  • Final independent review, normal merge and publication/readback

The budget covers ready_cmd probes; existing startup-acknowledgement and per-service health budgets are unchanged. No new user option, provider capability, compatibility alias or launch mode. This draft does not claim public a3 or whole-catalog acceptance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant