weave package). For the W&B Models Python SDK (wandb package), see W&B SDK releases. Release packages and per-commit history are on GitHub Releases for wandb/weave.
These entries summarize user-facing SDK and trace server changes, and omit details about internal-only test, CI, and refactor work. For every merged change, see the GitHub release entry for that tag.
July 31, 2026
Security
- The trace server strictly validates table-qualified field names in query ORM requests: qualifiers must be simple SQL identifiers, and the field portion must exactly match an allowed column. Malformed qualified field names that were previously accepted are now rejected. Operators of self-hosted trace servers should upgrade.
Added
- Custom runtimes: register an OpenAI-compatible custom runtime endpoint with
PUT /v2/{entity}/{project}/runtimes/{runtime_name}, or with theregister_custom_runtime()client wrapper in the Python and TypeScript SDKs. Registration is idempotent and supports team-secret, header-only, and unauthenticated endpoints. Turn.record()acceptsoutput_messagesin the Python SDK, so a turn captures both its input messages and the agent’s final response.- The Claude Agent SDK integrations trace text and image prompts (base64 or URL), including streamed prompts, in both the Python and TypeScript SDKs.
- Trace file storage on Azure supports workload identity: when neither a connection string nor an account key is configured, the server falls back to
DefaultAzureCredential.
Changed
- Claude Agent SDK tracing in the Python and TypeScript SDKs uses the shared Weave GenAI span shape:
invoke_agent,chat, andexecute_toolspans with agent, model, and tool identity ingen_ai.*attributes. - The trace server logs and ignores unexpected extra fields in API requests instead of rejecting them.
- Updated cost tracking for Claude Opus 5.
Fixed
- The trace server now redacts credential-shaped fields, such as API keys, tokens, and secrets, from call inputs, attributes, and OTel span payloads at ingest, so credentials accidentally included in trace payloads are not stored, regardless of SDK version.
- Fixed the TypeScript SDK serializing whole class instances, such as provider client objects, into call inputs; class instances are recorded as a type marker instead.
- Fixed missing traces for structured outputs on openai-node v5 and later in the TypeScript SDK.
- Fixed the TypeScript SDK tracing Claude Agent SDK multi-turn queries as a single turn; each query session is one conversation and each user-to-result cycle is one turn.
- Fixed cost queries not being scoped to the requested project.
- Fixed model selectors misreading custom providers named
custom. - Fixed raw media payloads appearing in agent chat text; blob, URI, and file parts are surfaced through content references instead.
July 31, 2026
Added
- The completions API supports
reasoning_effort. Turn.record()acceptsoutputMessagesin the TypeScript SDK, keeping a turn’s input messages separate from the agent’s final response.- Agent spans stamped with evaluation metadata link to their evaluation results.
- Feedback queries can return totals.
AgentDashboardis a persisted object type for saving, loading, and forking agent dashboard configurations.
Fixed
- Fixed a bug where a boolean and integer query-parameter collision caused calls queries to return a 400 error.
- Fixed
add_costnot accepting cache-read and cache-creation token rates;query_costsreturns the configured rates. - Fixed OpenAI
cached_tokensnot being mapped to cache-read usage on OTel ingest. - Fixed cached input token accounting for the Claude Agent SDK integration.
- Fixed missing support for the
$sizeoperator in the query API. - Fixed W&B Inference traces not being labeled with the model that served them, in both the Python and TypeScript SDKs.
- Fixed the user prompt being dropped from conversation previews.
- Fixed annotation queues failing on calls without start times; such calls are skipped.
- Fixed the explicit
wandb.is_turnattribute being overridden by the OTel conversation ID when identifying turns. - Fixed ClickHouse
TOO_SLOWerrors being reported as generic failures instead of query-timeout errors. - Fixed object read errors dropping their original error context.
July 16, 2026
Added
- LLM, tool, and subagent spans can nest under turns and subagents in both the Python and TypeScript SDKs, and
SubAgent.start_subagent()is available in Python. - Add feedback to agent spans and turns directly from the SDK.
- Filter agent conversations and conversation stats by signals (tags and ratings).
- Agent spans include evaluation metadata fields.
- Base64 and data-URL content in OTel agent span exports is converted to content references server side, matching SDK traces.
- Server-side ingest sampling covers the spans (agents and OTel) data model:
WEAVE_INGEST_SAMPLE_RATEnow governs both storage models, whole traces are kept or dropped together, and traces carryingweave.eval.*attributes are always kept. Deployments already running a sample rate below 1.0 begin sampling the spans model after upgrading. - Object delete responses report which versions were deleted.
Changed
- The
TurnandSubAgentfactory methodsllm,tool, andsubagentare renamed tostart_llm,start_tool, andstart_subagent; the old names remain as deprecated aliases. - The TypeScript SDK writes each call as a single row through the
calls/completeingest path by default, matching the Python SDK; control this withWEAVE_USE_CALLS_COMPLETE. The SDK also no longer exits the host process when uploads fail repeatedly; it disables tracing and lets the process continue. - Deleting calls on the
calls_completetable uses a lightweight update with asynchronous space reclamation. - Improved performance of heavy call reads on the
calls_completetable with a two-pass filter and tuned skip indexes, and of custom-attribute schema and numeric-histogram queries. - Improved performance of agents list views, including cost reads.
- Improved ingest performance for content-heavy payloads: content-object writes are batched, repeated base64 blobs are deduplicated, and file chunks and content objects are flushed concurrently.
- Improved evaluation-results performance by pricing only predict calls instead of every trial child.
- Updated built-in model costs, including
gpt-5.6.
Fixed
- Fixed direct OpenAI calls not being traced (no child span, token usage, or cost) under the default OTel tracing path; calling
patch_openai()explicitly is no longer required. - Fixed W&B Inference models showing no cost because usage records and seeded prices used different model ID keys.
- Fixed Bedrock cache token capture in streaming converse calls.
- Fixed Anthropic prompt cache tokens being excluded from the
input_tokenssummary. - Fixed the Google ADK integration for google-adk 2.3.0 and later.
- Fixed request-input validation failures returning a 500 error instead of a 400.
- Fixed ClickHouse migration reliability for self-hosted deployments: migrations are idempotent, migration 029 is additive, partially applied migrations recover automatically, and duplicate migration numbers were resolved.
- Fixed agent spans logging to the previous project after re-initializing the TypeScript SDK with
weave.init(). - Fixed unstable client-side digests for objects containing dictionaries with non-string keys.
- Fixed a recursion error when converting deeply nested payloads.
- Fixed external refs embedded in JSON strings not being passed through on read.
- Fixed conversation labels in the agents view to use the opening user turn.
- Fixed chat rendering for Claude Code traces: mirrored assistant text is no longer duplicated, responses are ordered by transcript timestamps, and task notifications render as tool activity instead of chat messages.
- Fixed conversation attributes not propagating across
runIsolatedframes in the TypeScript SDK. - Fixed
span_namebeing rejected in agent-span group-by and filter clauses.
July 2, 2026
Added
- Evaluation result summaries include a predict-only cost total.
- TypeScript SDK:
Conversation,Turn,SubAgent, andLLMcreation acceptssystemInstructions; conversations and turns acceptagent_id,agent_description, andagent_version; and turns acceptuserMessage. - TypeScript SDK:
Turn.record()andSubAgent.record()are available, andLLM.record()acceptsmediaAttachments,responseId,responseModel,finishReasons, andoutputType. - Turns inherit agent identity defaults from their parent
Conversation.
Changed
add_event(Python) andaddEvent(TypeScript) are deprecated because OpenTelemetry is phasing out the span event API; useset_attributesandsetAttributesinstead. Both methods still work, and existing span-event data stays valid.- The trace server no longer depends on
ddtrace. - Improved trace-server query performance by scoping storage rollups to matched traces and objects and by bounding evaluation-result scans to the evaluation root’s start time.
- Attachment uploads are parallelized on all write paths.
- Added cost tracking for
claude-sonnet-5.
Fixed
- Fixed negative JSON path array indices in queries returning a 502 error; they now return a 422 validation error.
- Fixed system instructions from chat spans not appearing in the agent chat view.
- Fixed the conversation chat view including spans from other conversations.
- Fixed agent traces logging to the previous project after re-initializing the client.
- Fixed completion error payloads dropping the provider’s HTTP status code.
- Fixed ClickHouse migration 029 to skip TTL materialization.
- Fixed ClickHouse migrations failing when replicated-DDL propagation outlasted the migrator client’s timeout.
July 2, 2026
Breaking changes
- TypeScript SDK:
WeaveClientis no longer exported as a value; it is exported only as a type. Get a client fromweave.init()instead of constructingWeaveClientdirectly. - TypeScript SDK: client settings are consolidated into a single plain
Settingsobject, and theSettingsInittype is exported from the public API. Theclient.settings.shouldPrintCallLinkandclient.settings.globalAttributesaccessors are removed; useprintCallLinkandattributes.
Added
- The TypeScript SDK traces the Claude Agent SDK (
@anthropic-ai/claude-agent-sdk).query()calls are auto-instrumented and emit agent, chat, and tool spans with usage, cost, and error status;wrapClaudeAgentSdkis exported for manual instrumentation. - The TypeScript SDK adds a Google ADK integration with autoinstrumentation, tracing model, tool, and nested agent spans.
- Agent observability read APIs on the client. The Python
WeaveClientaddsget_agents,get_agent_versions,get_agent_spans,get_agent_turn,get_agent_turns,get_agent_span_stats,get_agent_custom_attributes, andsearch_agents; the TypeScriptWeaveClientadds the equivalentgetAgents,getAgentVersions,getAgentSpans(withqueryfilter support),getAgentTurn,getAgentTurns,getAgentSpanStats,getAgentCustomAttributes, andsearchAgents. - Agent spans, span stats, chat views, and agents APIs can include token costs, computed at query time from the same pricing table used for calls. Unpriced models return null rather than zero.
- Turn and subagent spans carry
system_instructions(the agent system prompt), andTurn.record()andSubAgent.record()bulk setters set the full field set, including agent identity fields, on batch-logged turns. - Conversations accept an
attributesmapping that is applied to every span the conversation emits, in both the Python and TypeScript SDKs. - TypeScript SDK: the conversation, turn, and LLM end functions accept an explicit
endTime. - TypeScript SDK:
init()accepts auseOTelV2setting, for parity with the Pythonuse_otel_v2setting. - Spans from the
@openai/agentsintegration in the TypeScript SDK carrygen_ai.conversation.idandgen_ai.agent.nameattributes. - OTel auto-instrumentation supports an
agent_name_overridesetting to configure thegen_ai.agent.nameset on generatedinvoke_agentspans. - New
wandb.agent_user_feedbackfeedback type for human-applied feedback on agents, distinct from scorer-appliedwandb.agent_monitorfeedback. - The OpenAI Realtime integration adds an OTel-native exporter, selected by default when
WEAVE_USE_OTEL_V2is enabled. - Evaluation results queries support filtering on inputs and a match-any or match-all option when filtering across multiple evaluations, and evaluation summaries include a
predict_total_tokensfield that counts only the model’s own predict tokens, excluding LLM judge tokens. - Agent span stats allow an unbounded time range for ungrouped, unfiltered queries, so an all-time rollup no longer hits the 31-day cap.
- The trace server adds
spans_statsanddataset_sourcestables and query APIs. Self-hosted deployments receive new ClickHouse migrations.
Changed
- The Session SDK is renamed to the Conversation SDK. In Python, the canonical surface is
weave.conversation(Conversation,start_conversation,conversation_id, and so on); the oldweave.sessionnames still work and emit aDeprecationWarning. In TypeScript,weave.startSession,weave.endSession,weave.getCurrentSession, and theSessionclass becomeweave.startConversation,weave.endConversation,weave.getCurrentConversation, andConversation; the old names are kept as deprecated aliases. - Monitor query fields are validated on save.
- Calls produced by declarative evaluations (
Evaluation.evaluate) are tagged with evaluation metadata, matching the behavior ofEvaluationLogger, in both the Python and TypeScript SDKs. - Improved trace-server query performance: batched completion-call span writes, partition pruning on call deletes with a
started_atfilter, approximate unique counts for stats queries, an ngram index for evaluation-results filters, heavy JSON filters extracted before aggregation to avoid out-of-memory errors oncalls_merged, deduplicated repeat file-bucket writes, and aGLOBAL JOINfor cost merging on distributed ClickHouse clusters. The threshold for killing too-slow queries is raised from 5 to 10 seconds.
Fixed
- Fixed a bug where
dictifycould get stuck in a cycle. - Fixed the DSPy, GEPA, and LangChain integrations creating a new object version on every run because
repr()memory addresses appeared in published content. - Fixed Bedrock inference profile ARNs not being parsed to model IDs for the invoke API.
- Fixed
weavenot being installable alongsidegoogle-adk. - Fixed
LLMAsAJudgeScorerincluding op methods in its published payload. - Fixed reasoning handling in the agent chat view: reasoning parts no longer leak into message body text, and reasoning interleaved between tool calls is displayed.
- Fixed sorting of evaluation inputs and outputs when values mix numeric and string types.
- Improved API error handling: bad query parameters and feedback with a malformed annotation spec return 400 instead of 500, feedback on a deleted annotation spec returns not-found, permission-denied projects return a clearer error,
InvalidFieldErrormessages list the allowed fields, and agent signal filters are validated against the agent-spans schema. - Fixed silently dropped inserts on replicated ClickHouse deployments by opting out of insert deduplication for byte-identical re-inserts.
- Fixed a race in migration status writes that could leave a finished ClickHouse migration recorded as partial.
- Fixed agent read endpoints returning 500 forever when a stored external ref appears in span data.
- Fixed slow file uploads to GCS caused by stalled sockets; dead sockets now fail fast and retry on a fresh connection.
- Fixed the TypeScript SDK ignoring the
startTimepassed tostartTurn. - Fixed the TypeScript SDK not printing a link to your Weave data on
init()in Node, matching the Python SDK.
June 15, 2026
Breaking changes
- OpenTelemetry-capable integrations route through their OpenTelemetry variants by default (the
use_otel_v2setting now defaults to true). Because the plainopenaipackage has no OpenTelemetry variant, implicit patching no longer traces direct, non-agentopenaicalls — callweave.integrations.patch_openai()explicitly, or setWEAVE_USE_OTEL_V2=false, to trace them. (In 0.53.2, direct OpenAI calls are traced again without explicit patching.) - Removed the SQLite trace server. ClickHouse is the only supported trace server backend.
Added
- The OpenAI Agents SDK integration in the TypeScript SDK emits OpenTelemetry spans when
WEAVE_USE_OTEL_V2is set, coveringinvoke_agent,execute_tool,chat(including message data),handoff,guardrail,transcription,speech,speech_group,mcp_list_tools, and custom spans. - The
Tool,LLM,SubAgent, andTurnspan classes supportset_attributesfor stamping custom OpenTelemetry attributes andadd_eventfor recording span events. The TypeScript SDK adds the equivalentsetAttributesandaddEventmethods. - TypeScript SDK: GenAI spans accept explicit
startTimeandendTimevalues, so spans reconstructed after the fact carry accurate start times and durations. - Monitors can be created using op names.
- Calls produced by integrations carry standardized integration-tracking metadata in their attributes, covering patch-based, callback-based, and OpenTelemetry-based integrations in Python as well as the TypeScript SDK integrations.
- The
claude-fable-5model is available in the playground, with cost tracking. - The trace server has a new endpoint for aggregate feedback, and a ClickHouse migration adds agent columns to the feedback table.
- Playground conversations are recorded in the agent spans table, so playground activity appears alongside other agent traces.
Changed
import weaveis faster because thejsonschemaimport is deferred until needed.- Removed the unused
actions_execute_batchendpoint and theActionSpecobject class. ExistingActionSpecobjects remain readable as plain objects. - The trace server rejects object creation when the name collides with an existing object of a different type, returning a 400 error.
- Improved performance of the grouped spans query by bounding conversation message previews.
- Improved performance of
calls_query_statsby extending the fast path to queries with a time window. - Improved performance of unfiltered storage stats queries.
- Raised the trace server’s default Kafka producer buffer to 100,000 messages.
Fixed
- Fixed
WEAVE_INSECURE_DISABLE_SSLhaving no effect when set after importingweave. - Fixed a bug where all
PaginatedIteratorinstances shared a single page cache. - Fixed streaming call ends discarding caller-set
started_atandended_attimestamps. - Fixed a potential deadlock when integration patching ran concurrently.
- Fixed a bug where calling
flush()during an evaluation could make the next flush stall for the full flush timeout. - Fixed
auto_summarizefailing on scorer results that mix Pydantic models and dicts. - Fixed
RemoteScorerserialization so ops are excluded andauth_configpasses validation when read back. - Fixed WAV audio detection for in-memory buffers when
libmagicreports a generic octet-stream type. - Fixed saved view filters on
started_atfailing with a query type error. - Fixed the Bedrock integration raising
KeyErroron tool-use and reasoning deltas in streaming responses, which dropped them from the trace. - Fixed duplicated traces when the TypeScript SDK runs inside an OpenAI Agents SDK context.
- Fixed OpenTelemetry spans being rejected when the same attribute arrives both as a JSON string and as dotted subkeys.
- Fixed OpenTelemetry spans with an all-zero parent span ID not being treated as root spans.
- Fixed per-call storage size stats excluding OpenTelemetry payload bytes, which made them disagree with project-level storage totals.
- Fixed intermittent 502 errors on the agent OpenTelemetry ingest endpoint by retrying transient empty-query errors.
- Fixed media on an agent’s LLM calls rendering on the wrong chat message; media is routed to the user or assistant message based on direction.
- Fixed call query filters on
wb_run_idsrejecting bare run IDs; bare IDs are qualified with the request’s entity and project. - Fixed feedback queries failing with a type error when filtering
created_atwith ISO 8601 timestamps. - Fixed
table_query_statsreturning a 500 error for a missing or deleted table digest; it now returns a count of 0. - Fixed the trace server returning 5xx errors for unsupported or unselectable query fields; it now returns 4xx errors.
- Fixed transient not-found errors when dereferencing nested refs by adding retries.
- Fixed the trace server accepting code-bearing custom objects during server-side decoding; such objects are now refused.
- Fixed unhelpful scoring errors when a judge model returns empty or non-JSON output; errors now describe the likely cause instead of surfacing a raw traceback.
- Fixed a bug in the
calls_completeingestion path where a call end with a mismatchedstarted_atsilently left the call unfinished; ending an unknown call now returns a 404 error. - Fixed 5xx errors on call reads and queries for
calls_completeprojects on ClickHouse 25.11 and 25.12 by disabling lazy materialization. - Fixed the ClickHouse migration lock to prevent conflicts during rolling deploys.
- Fixed reads and inserts failing in bursts when the ClickHouse client cached an empty settings map; query settings are now validated by the server instead of client-side.
- Fixed several operations on distributed ClickHouse clusters: file reads during cross-shard replication lag, annotation queue mutations, annotation reads, object-ref subqueries, feedback and cost purges, and migration inserts. Call starts and ends, and file chunks, now co-locate on the same shard.
June 2, 2026
Added
- Token usage tracking includes cache-creation and cache-read input tokens, as well as reasoning output tokens.
- New Claude Agent SDK integration built on OpenTelemetry.
- New OpenAI Agents integration (v2) built on OpenTelemetry.
- Preliminary Google ADK integration.
- Annotation queue helpers on
WeaveClient: create, read, list, update, and delete annotation queues, add calls to a queue, and query queue items and stats. - The trace server supports rescoring: re-run scorers against an existing evaluation run to produce a new evaluation run, linked to the original through
source_evaluation_run_id. - Feedback supports typed scorer columns and query filters, including
scorer_*fields forwandb.runnablescorers (ClickHouse migration 031 adds the columns). - Agent span queries support grouped distributions over custom attributes.
- OpenTelemetry ingestion supports multiple aliases for a single semantic convention key, such as
gen_ai.usage.reasoning_tokensandgen_ai.usage.experimental.reasoning_tokens. - TypeScript SDK: new GenAI tracing classes
Session,Turn,LLM,Tool, andSubAgentwith manual start and end, plusTurn.setAttributeandTurn.addEvent. - The TypeScript SDK automatically links spans to evaluation calls.
- OAuth configuration options for remote scorers on the trace server.
Changed
- Calls are written through the calls-complete path by default: the
use_calls_completesetting now defaults toTrue. - The Session SDK respects the global settings
WEAVE_DISABLED,WEAVE_REDACT_PII,WEAVE_CAPTURE_CLIENT_INFO, andWEAVE_CAPTURE_SYSTEM_INFO. - Updated built-in model costs, including Claude Opus 4.8, and added support for manual cost overrides.
- Improved streaming calls-query performance: an empty
sort_byis treated as an explicit no-sort so ClickHouse can stream aggregation in order. - Improved calls stats query performance, and stats responses include a
has_morefield. - Added a
trace_idbloom filter index to thecalls_mergedtable (ClickHouse migration 032) to speed up trace-scoped queries. - Improved client and trace server throughput with parallel bucket uploads and deferred display-name updates.
Fixed
- Fixed LLM reasoning content leaking into output messages when content capture is disabled in the Session SDK.
- Fixed
str()on a ref to return the full URI so scorer leaderboard matching works correctly. - Fixed feedback
created_attimestamps not being tagged as UTC when read. - Fixed a bug where failed object-create payloads were never released from memory.
- Fixed agent span queries dropping fields and failing to convert external refs to internal refs during OpenTelemetry ingestion; a new
include_detailsoption returns full span payloads. - Fixed image completion handling to validate URLs before fetching.
- Fixed Redis connections failing when the Redis URL contains query parameters.
- Fixed project trace storage size not counting OpenTelemetry span bytes.
- Fixed the Azure file storage backend overwriting existing blobs.
- Fixed ClickHouse migrations in distributed mode to create only the
_localmaterialized view variant.
May 28, 2026
Added
- Agent span queries support discovering the schema of typed custom attributes, with pagination, and support filtering, grouping, and sorting on discovered keys.
- OpenTelemetry Gen AI spans emitted during
Evaluation.predict_and_scoreare automatically linked to the evaluation call. - New environment variables configure the host allowlist and URL policy for remote scoring on the trace server.
Changed
- Publishing an object always writes an explicit
latestalias: re-publishing existing content promotes it tolatest, and deleting the version that holdslatestfalls back to the most recent surviving version. - The OTLP exporter respects
WEAVE_INSECURE_DISABLE_SSL. - Improved trace server call-ingestion performance.
Fixed
- Fixed
import weavefailing whenwandbwas installed beforeweaveby relaxing theopentelemetrydependency constraints. - Fixed long-running calls being dropped at process exit: unpaired call starts and ends are now sent eagerly on flush, and the flush timeout increased from 60 seconds to 5 minutes.
- Fixed server errors when filtering feedback and other JSON payload fields by boolean values.
- Fixed saved views not persisting
expand_columns. - Fixed a bug where a failed file upload was cached and never retried.
- Fixed distributed ClickHouse DDL statements failing migrations on transient errors by adding retries.
May 14, 2026
Added
- The trace server’s agent observability APIs support turn, conversation, and span reference kinds, feedback lookup by agent target refs, and folding feedback into agent chat-view responses with
include_feedback.
Changed
- Call queries infer ClickHouse type casts for dynamic JSON fields (
inputs,output,attributes, andsummary) from typed comparison literals, so numeric and boolean comparisons no longer require$convert. This changes the results of existing queries that compare typed literals against raw dynamic fields. ClickHouseTraceServer.from_envdefaultsuse_async_inserttoTrue. Passuse_async_insert=Falseto force synchronous inserts.- Reduced per-op tracing overhead for async operations.
- Improved trace ingestion performance by reducing allocation churn in batch upserts.
- Removed the version pin on the
openaidependency.
Fixed
- Fixed
NOTover$contains,$eq, and$infilters on heavy fields dropping valid rows in call queries. - Fixed a potential memory leak in the streaming accumulator.
- Fixed a bug where a malformed
WEAVE_REDIS_URLcaused OpenTelemetry ingest requests to fail with HTTP 400; the trace server now fails open.
May 11, 2026
Added
- Added the Session SDK for instrumenting agent applications:
Session,Turn,LLM,Tool, andSubAgentclasses, plus top-levelstart_session,start_turn, andstart_llmhelpers that emit OpenTelemetry GenAI spans.Toolarguments and results accept structured payloads, and conversion helpers reduce boilerplate for manually instrumented agents. - Added built-in cost tracking for Grok 4.3.
- The trace server adds a GenAI observability schema, extraction, and query layer for agent traces; self-hosted deployments run new ClickHouse migrations on upgrade.
Changed
- The TypeScript SDK ships a dual CommonJS and ESM build; ESM consumers that load
weaveor use--import=weave/instrumentget native ESM output. - Improved
weave.init()startup time by removing a duplicate server info request.
Fixed
- Fixed a race where flushing pending calls could return before callback work chained with
then()had completed. - Fixed the imperative
EvaluationLoggercreating its root call lazily; the evaluation call is now created eagerly. - Fixed missing spans when tracing newer OpenAI Agents SDK span types.
- Fixed errors caused by invalid UTF-8 surrogates in logged data; they are now sanitized.
- Fixed the
WANDB_ERROR_REPORTINGenvironment variable not being honored for Weave error telemetry. - Fixed ClickHouse migrations assuming the target database engine; the migrator now discovers it, improving compatibility for self-hosted deployments.
May 5, 2026
Added
- Added a GEPA integration that automatically logs optimization traces to Weave.
- Added
client.link_prompt_to_registry, which links a published prompt or object version into a W&B Registry collection, with optional aliases. - Added built-in cost tracking for GPT-5.5 models.
- Added a TypeScript SDK integration for the pi.dev coding agent that traces agent sessions, chat, and tool calls, and can send OpenTelemetry spans to Weave automatically.
- The trace server’s
/eval_resultsendpoint supports server-side sorting, filtering, and pagination, and resolves dataset-backed evaluation inputs.
Changed
- The
wandbpackage is an optional dependency ofweaveagain. - Improved ClickHouse migration handling for replicated self-hosted deployments: migrations use Atomic databases with
ReplicatedMergeTreetablesON CLUSTER, take a migration lock, and the migration splitter handles SQL comments. New migrations add agent observability tables.
Fixed
- Fixed transient not-found errors when reading recently written data on replicated ClickHouse deployments; the trace server now retries reads affected by replica lag.
- Fixed Redis writes bypassing Sentinel routing in the trace server.
- Fixed OpenAI Agents SDK
responses.createcalls not being linked to agent traces. - TypeScript SDK: fixed the wrapped OpenAI client returning a plain promise instead of the SDK’s
APIPromise, which broke.withResponse()and similar helpers and could leave streaming traces pending. - Fixed an error when unwrapping OpenAI raw API responses in streaming contexts, so tracing records the parsed completion instead of the raw response object.
- Fixed spurious temp-directory cleanup warnings on Windows.
April 17, 2026
Added
- OpenTelemetry integrations follow the latest semantic conventions.
- Cost calculations and provider integrations include cache token usage.
Changed
- Improved performance for some call queries by optionally skipping a nested subquery.
ClassifierMonitoris exported from the top-levelweavepackage.- The calls API accepts an optional
queryparameter for richer filtering.
Fixed
- Fixed the evaluation results API SQL for some filter combinations.
- Fixed a bug where the TypeScript SDK could drop the URL scheme from
WANDB_BASE_URL. - Fixed a bug where calls with multiple feedback rows could appear multiple times in list results.
- Fixed ISO-8601 timestamp handling for ClickHouse-backed queries.
- Fixed distributed ClickHouse mutations that incorrectly appended a
_localsuffix to table names. - Fixed missing spans when tracing OpenAI Agents SDK flows.
- Fixed Google GenAI tracing when responses include non-text parts.
- Fixed path sanitization for in-memory trace file artifacts and provider hostname handling in HTTP clients.
April 1, 2026
Added
- Call queries can resolve human-readable usernames.
ref.get()works without explicitly initializing the client in some flows.- APIs and storage paths for text-based evaluation results, including improved handling of large evaluation sets.
Changed
- LiteLLM is pinned for compatibility with bundled integrations.
- Moonshot is available as a model provider.
- Underlying write-ahead logging infrastructure improves durability of trace writes.
Fixed
- Fixed a bug where abandoning a streaming generator could surface
GeneratorExitincorrectly. - Fixed deserialization when stored objects include extra metadata fields.
- Fixed feedback filters when a call has multiple feedback rows.
- Fixed SQLite-backed call cost tracking and invalid
trace_idhandling in batch upserts. - Improved ClickHouse migration behavior, including retries on transient errors and clearer migrator exit status.
- Fixed a bug where evaluation runs with more than 1000 calls could fail to load for prediction and scoring.
March 19, 2026
Added
- Write-ahead log support for trace ingestion.
- Feedback statistics queries for analytics over feedback data.
Changed
Ref.urican be read as a property (ref.uri) without callingref.uri().- You can configure the maximum size of debounced scoring history via environment variables.
Fixed
- Fixed ClickHouse casting for negative numeric filter values.
- Fixed replicated database engine errors during on-cluster migrations.
- Fixed
DelegatingTraceServerMixinnot forwarding someServiceInterfacemethods. - Fixed retries when calling the W&B API during
weave.init(). - Fixed a bug where
EvaluationLoggercould crash whenWEAVE_DISABLEDis set. - Fixed
RefJSONEncoderedge cases and classmethod instantiation for subclasses.
March 12, 2026
Added
- Python SDK methods and HTTP models for object tags and aliases.
- Instrumentation for the OpenAI Realtime API, including tool calls plus optional audio, text, and voice capture (see the TypeScript examples in the upstream release notes).
Fixed
- Fixed accumulation of Anthropic streaming completions in traces.
- Fixed authenticated
PUTrequests inRemoteHTTPTraceServer. - Fixed cost query handling for
calls_completeprojections.
March 10, 2026
Added
- Trace server support for tags and aliases on stored objects.
- Claude Agents tracing integration.
- Timestamps and time-to-first-token metrics for Realtime sessions.
- Monitors can use merged scorers.
Changed
- Improved OpenTelemetry performance with a cross-request operation reference cache.
Fixed
- Fixed multiple issues in cost query construction, including escaping of internal fields and distributed ClickHouse setups.
- Fixed LangChain integration handling for Pydantic v2
Runobjects. - Fixed edge cases in prediction and scorer resolvers when inputs or metadata are missing.
- Fixed Vertex AI text accumulation and thread visibility in
calls_completequeries.
March 10, 2026
Added
- Score backfill API for recomputing stored scores.
- Gemini request tracking in the TypeScript SDK.
Changed
- Sharded distributed calls tables by
trace_idorproject_idfor better query performance. - Simplified
calls_completequery plans for lower latency.
Fixed
- Fixed a bug where Gemini media could fail to render in the Weave UI.
- OpenTelemetry batch inserts now use async ClickHouse inserts.
- Fixed
NO_PROXYhandling in HTTP clients. - Fixed entity versus team naming in some error messages.
February 27, 2026
Added
- Usage APIs expose metadata for unfinished calls.
- Optional
python-magicintegration for richer MIME detection. - Realtime threads participate in usage summaries.
- Schema support for tags and aliases on Weave objects.
- Structured
eval_resultsquery API for evaluation tables.
Changed
- Improved indexing by storing timestamps as strings in ClickHouse.
- Reduced duplicate work during batched file creation on call upsert.
Fixed
- Fixed a bug where generators did not respect configured sampling rates.
- Fixed buffering so streams flush immediately when a call ends.
- Fixed sort-query index errors and deterministic JSON serialization for digest computation.
- Fixed OpenTelemetry display names,
make_safe_namehandling, and LangChain serialization for Pydantic models.
February 14, 2026
Added
- OpenTelemetry resource attributes can carry W&B run and project variables.
- The ORM supports
$ltand$ltecomparisons. - OpenTelemetry projects can write directly into the
calls_completetable. - General availability improvements for OpenAI Realtime tracing.
Changed
- Improved performance for table scans and call statistics queries.
Fixed
- Fixed filtering calls by thread ID, including cases where filters were incorrectly optimized away.
- Fixed idempotent annotation queue state updates.
- Fixed a bug where
weave.finish()did not always flush pending client data. - Fixed iterator typing for
PaginatedIterator,Dataset.selectmetadata preservation, and large trace size queries that could run out of memory.
February 3, 2026
Added
- Usage statistics APIs plus
/trace/usageand/calls/usageendpoints for aggregated usage. - Optional performance mode flag for high-throughput deployments.
- Anthropic structured-parse patching.
- Saved views support a
column_orderfield.
Changed
- Improved
PREWHEREoptimization for distributed cluster queries.
Fixed
- Fixed a bug where failed ClickHouse inserts could leak buffered rows.
- Fixed a bug where importing IPython at import time could slow cold starts.
- Fixed synchronous mutation migrations, summary filtering on
calls_complete, and Google GenAI token overcounting. - Fixed OpenTelemetry spans with monitors and duplicate upload handling for Google Cloud Storage.
January 20, 2026
Fixed
- Removed redundant HTTP response capture in some integrations.
- Google GenAI tracing now records system instructions.
- Google GenAI tracing now records thinking tokens separately from completion tokens.
January 15, 2026
Added
- TypeScript helper APIs for working with prompts in the Node SDK.
- Trace server safely autoconverts Base64 payloads where appropriate.
- Leaderboard schema updates for upcoming comparison features.
redact_pii_exclude_fieldssetting to fine-tune PII redaction.- Audio inputs in
LLMAsAJudgeScorerand richer op metadata (kinds and colors) for integrations.
Fixed
- Fixed invalid characters blocking op creation in edge cases.
- Fixed HTTP and HTTPS proxy handling for the HTTPX client.
- Fixed nested tracing when wrapping generators.
January 8, 2026
Added
- Parsing helpers for Logfire Pydantic AI instrumentation inputs and outputs.
Fixed
- Fixed non-deterministic ordering for large-table evaluations.
- Fixed cost queries that omitted input and output tokens.
- Fixed distributed replicated ClickHouse tables and guarded Kafka flush behavior behind configuration.
January 8, 2026
November 26, 2025
Added
- Completions streaming APIs accept prompts and template variables.
ObjectRef.from_urireconstructs objects from Weave URIs.- OpenAI Responses API tracing records
x-request-idheaders. - Bedrock Agents integration coverage.
- TypeScript SDK
withAttributeshelper for span metadata.
Fixed
- Fixed a memory leak in the OpenAI Agents tracing processor.
- Fixed a bug where refs could still publish when Weave was disabled.
- Fixed iterator behavior when migrating HTTP client code from
requeststohttpx.