#[0.13.0] - 2026-03-27
This release replaces the bespoke internal tracing engine with a full OpenTelemetry backend, extracts the daita CLI into a standalone daita-cli package, and substantially expands the unit test suite.
#Added
-
OpenTelemetry Tracing Backend
The internal tracing engine has been rewritten on top of the OpenTelemetry SDK.
TraceManageris now a thin facade over aTracerProviderwith a multi-exporter pipeline:pythonTracerProvider ├── BatchSpanProcessor → BoundedInMemorySpanExporter (powers local query APIs) ├── BatchSpanProcessor → DaitaSpanExporter (dashboard, when configured) └── BatchSpanProcessor → [user exporters] (Datadog / Jaeger / Honeycomb …)Trace IDs are W3C hex format (32-char trace ID, 16-char span ID). The existing
agent.trace_id,agent.current_span_id, and all query methods (get_recent_operations,get_agent_metrics,get_workflow_communications, etc.) are fully preserved — no changes to user-facing code are required. -
configure_tracing()— Custom Exporter APIA new top-level function lets you attach any OTel-compatible exporter before creating agents, enabling first-class integration with observability platforms:
pythonfrom opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter from daita.core.tracing import configure_tracing configure_tracing(exporters=[OTLPSpanExporter(endpoint="http://localhost:4317")])Call
configure_tracing()once, before instantiating anyAgent. Adding exporters after agents have been created is not supported. -
otlpExtraA new optional extra installs the OTLP gRPC/HTTP exporter for use with Datadog, Jaeger, Honeycomb, and any other OTLP-compatible backend:
bashpip install 'daita-agents[otlp]'opentelemetry-apiandopentelemetry-sdkare now core dependencies (they are small and have no optional-install implications). -
BoundedInMemorySpanExporterandDaitaSpanExporter(daita/core/otel_exporter.py)BoundedInMemorySpanExporter— thread-safe, bounded in-memory span store (capped at 500 spans by default) that backs the local query APIs. Replaces the previousdeque-based buffer.DaitaSpanExporter— sends completed spans to the Daita dashboard API, replacing the old fire-and-forgetDashboardReporter. Uses standard OTelBatchSpanProcessorsemantics for reliable, non-blocking delivery.
#Changed
-
CLI extracted to
daita-clipackageAll CLI source (
daita/cli/) has been removed fromdaita-agentsand now lives in the standalonedaita-clipackage. Thedaitacommand continues to work exactly as before —daita-cliis a core dependency and is installed automatically withpip install daita-agents.This separation keeps the
daita-agentslibrary free of CLI-only dependencies (click, complex deploy machinery) and allows the CLI to be versioned and distributed independently. No changes to existingdaita <command>invocations are required. -
opentelemetry-apiandopentelemetry-sdkpromoted to core dependenciesPreviously absent from the package, both OTel packages are now listed under
[dependencies]inpyproject.toml. They are lightweight (no C extensions, no optional sub-dependencies) and are required by the tracing backend that runs for every agent. -
clickremoved from core dependenciesclickwas previously a core dependency due to CLI code living in this package. Now that the CLI is indaita-cli,clickis no longer a direct dependency ofdaita-agents.