Release v1.5.0
Action required: migrate away from Tesseract(url)
The Tesseract(url) constructor is now deprecated and will be removed in a future release. Calling it now raises an explicit deprecation warning. Update your code:
# Before
t = Tesseract("http://localhost:8080")
# After
t = Tesseract.from_url("http://localhost:8080")
Highlights
Profiling and tracing
We’ve added two new tesseract run flags for debugging without modifying your code:
tesseract run --tracing ... # structured logs of function inputs/outputs
tesseract run --profiling ... # cProfile report after execution
Live log streaming
Logs from inside a running Tesseract are now streamed in real time instead of buffered until completion, useful for long-running jobs.
CLI: works automatically with tesseract run.
Python API (from_image and from_tesseract_api only — not available with from_url):
t = Tesseract.from_image("my-image", stream_logs=True) # streams to stderr
t = Tesseract.from_image("my-image", stream_logs=lambda msg: save(msg)) # custom handler
Things to look out for
- Tangent/cotangent validation (#493**):** JVP/VJP calls now validate that tangent shapes match inputs and cotangents match the output schema. If you were passing mismatched arrays and relying on silent coercion, you’ll now get an explicit error.
- Multiprocessing fixed (#488**):**
multiprocessingnow works as expected withintesseract_api.py; local modules andtesseract_api.pyare correctly importable in subprocesses. /tmppermissions (#506**):** If your Tesseract writes to/tmpat build time (e.g., caching libraries), it will no longer fail at runtime; after runtime checks execute, we relax the permissions to/tmpand subfolders so other users can read/write there as well.
See the changelog below for the full list of changes.
What’s Changed
Features
- Deprecate
Tesseract(url)constructor in favor ofTesseract.from_url(#486) - Add live streaming of logs (#482)
- Validation of (co)tangents (#493)
- Add profile and trace mode, plus debugging guide (#484)
Bug Fixes
- Better multiprocessing support from within
tesseract_api.py(#488) - Ensure deprecration warning is actually visible (#487)
- Ensure $HOME is set in Tesseracts and has appropriate permissions (#490)
- Relax permissions on
/tmpinside Tesseracts after build-time check (#506)
Refactor
- Simplify runtime dependency handling (#495)
- Make
stream_logsa constructor-level parameter in Python SDK (#509)
Documentation
- Add Fortran heat equation example (#477)
- Tesseract init doesn’t prompt if name not provided (#501)
- Documentation mega issue sprint (#492)
Full diff: Comparing v1.4.0...v1.5.0 · pasteurlabs/tesseract-core · GitHub