Tesseract Core v1.5.0 released

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**):** multiprocessing now works as expected within tesseract_api.py; local modules and tesseract_api.py are correctly importable in subprocesses.
  • /tmp permissions (#506**):** If your Tesseract writes to /tmp at build time (e.g., caching libraries), it will no longer fail at runtime; after runtime checks execute, we relax the permissions to /tmp and 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 of Tesseract.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 /tmp inside Tesseracts after build-time check (#506)

Refactor

  • Simplify runtime dependency handling (#495)
  • Make stream_logs a 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