Tesseract Core v1.9.0 released

Release v1.9.0

Highlights

Environment variables in tesseract_config.yaml

You can now set environment variables directly in tesseract_config.yaml via a new env: section, without resorting to custom_build_steps:

env:
XLA_PYTHON_CLIENT_PREALLOCATE: "false"
OMP_NUM_THREADS: "4"

These values are baked into the Docker image at build time. You can still override them at runtime with tesseract serve --env or tesseract run --env. (#591)

Timeout parameter for the Python API

Tesseract.from_image() and Tesseract.from_url() now accept an optional timeout parameter to guard against hanging HTTP requests (e.g. when a container runs out of memory):

with Tesseract.from_image("my_tesseract", timeout=30) as t:
...

# or use a (connect, read) tuple for finer control
t = Tesseract.from_url("http://host:8000", timeout=(5, 300))

The default remains no timeout, so existing code is unaffected. (#597)

Tesseract.container_info()

A new container_info() method on the Tesseract class exposes the underlying Docker container object during a serve session. This is useful for resource monitoring, executing commands inside the container, or retrieving container logs outside of the SDK:

with Tesseract.from_image("my_tesseract") as t:
container = t.container_info()
print(container.id, container.name, container.host_port)

(#601)

Other changes

  • tesseract serve now supports a --skip-health-check flag (also available as skip_health_check in Tesseract.from_image()). Use this for Tesseracts with slow startup, e.g. due to JIT compilation or large model loading. The caller is responsible for polling /health manually. (#596)
  • Foreign array-like objects such as PyTorch tensors can now be passed directly to the Python API without manual conversion. (#587)
  • Docker builds no longer fail when the base image sets a non-root default user. (#598)
  • IO schemas now include explicit field declaration order in their metadata (field_order), allowing downstream clients to restore the correct order even after round-tripping through systems that scramble JSON keys. (#595)
  • click is now an explicit dependency, fixing potential import errors with newer versions of typer. (#610)

What’s Changed

Features

  • Add env: section to tesseract_config.yaml to allow setting environment variables in built Tesseracts (#591)
  • Add timeout parameter to Python API functions (#597)
  • Add tesseract serve --skip-health-check argument (#596)
  • Add Tesseract.container_info to expose information about running containers in Python API (#601)
  • Explicitly export IO schema field order (#595)

Bug Fixes

  • Better support for foreign arrays (like torch tensors) in Python API (#587)
  • Always become root at the start of docker builds (#598)
  • Add click to base install dependencies (#610)

Documentation

  • Add new landing page for Tesseract ecosystem (#562)
  • Add Tesseract Blog (#549)

Testing

  • Rewrite stale-keepalive retry test without real socket dependence (#611)

Full diff: Comparing v1.8.2...v1.9.0 · pasteurlabs/tesseract-core · GitHub