Changelog
The canonical version-history file lives at
sdk/python/CHANGELOG.md
in the engine repo. This page mirrors the most recent entries; for the
full history (and per-PR commit links) check that file or the
GitHub releases.
[0.1.0] — 2026-05-05
First stable release. Default pip install dream-engine resolves here.
Added (vs. 0.1.0a1)
- Pillow moved to base dependencies — required by
ModelHandle.predict(start_frame=np.ndarray | PIL.Image)and surfaced asInputValidationErrorif missing.
Fixed (vs. 0.1.0a1)
- httpx upper bound — capped at
<1.0to avoid pip pulling pre-releasehttpx==1.0.dev*(which removedhttpx.Timeout) when users opt in to--preresolution. - Follow HTTP redirects — both sync
ClientandAsyncClientnow passfollow_redirects=Trueto httpx. Modal's async-execution layer issues a 303 to?__modal_function_call_id=...on every asgi_app endpoint; without redirect-following the SDK saw the 303 directly and mis-classified it as a 4xx ValidationError. Regression test added. dream.examples.dreamdojo_grasp()— fixture now returns 48 action frames (chunk-aligned) instead of 49. The canonical regression-suite rollouts run 48 frames; 49 triggers a known engine bug on the trailing 1-frame partial chunk.
Verified
- Live smoke against deployed Modal engine using a real teleop
fixture.
engine_wall_s = 2.44s,cost_usd = $0.0245, rollout visually matches the regression reference.
[0.1.0a1] — 2026-05-05
First public pre-release. Hidden from default pip install unless
callers opt in with --pre.
Added
dream.Client(sync) anddream.AsyncClient(async).client.models.list()/.get(slug)typed catalog access.ModelHandle.predict(start_frame=, actions=)with input coercion + validation; returnsRollout(frames,save,video,cost_usd,wall_s).ModelHandle.predict_batchfor K-candidate visual MPC; returnsBatchRollout(iterable, indexable).- Typed error taxonomy:
DreamError→AuthError,RateLimitError(retry_after),ModelNotFoundError,ValidationError,ServerError,EngineError,ModelNotActiveError,InputValidationError. - Automatic retries on 429/502/503/504/transport with exponential
backoff + jitter +
Retry-Afterhonor. dream.examples.dreamdojo_grasp()— bundled deterministic synthetic(start_frame, actions).- Server-side:
GET /v1/modelsandGET /v1/models/{slug}endpoints added to the Dream Engine HTTP gateway.