You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
SDK follow-ups from 2026-10-05 dependency update #858
Follow-up SDK work found while reviewing the release notes for the 2026-10-05 weekly dependency update (#849). Every bump replays cleanly; none of these block that PR.
Integration changes (highest value first)
OpenAI: Agents session stream get_final_result() / with_result_collection() skip tracing #859OpenAI: Agents session stream helpers skip tracing (bug). openai 3.23 added AgentSessionEventStream.get_final_result() and with_result_collection(). Our _TracedStream / _AsyncTracedStream in py/src/braintrust/integrations/openai/tracing.py passes unknown attributes through to the real stream, so calling either method skips _AgentSessionTrace.observe() / finish(). The openai.agents.sessions.create span then gets no output or metrics and is never closed. Fix: drain the traced generator before calling the real stream's get_final_result(), and have with_result_collection() return the traced wrapper. Needs a new cassette-backed test.
OpenRouter: GA client.responses is not traced by wrap_openrouter(), and client.beta.responses is not auto-instrumented #860OpenRouter: GA client.responses is never traced.wrap_openrouter() in py/src/braintrust/integrations/openrouter/tracing.py only wraps client.beta.responses, which is now a separate, deprecated BetaResponses class. auto_instrument() covers the GA client.responses but not BetaResponses. Fix: patch BetaResponses.send/send_async only when that module exists, and make wrap_openrouter wrap client.responses. Add cassette-backed coverage, including a Responses check in test_auto_openrouter.py.
Anthropic: capture prompt cache diagnostics (cache_miss_reason, cache_missed_input_tokens) #861Anthropic: capture cache diagnostics (GA in 1.9.0). Add diagnostics to METADATA_PARAMS in py/src/braintrust/integrations/anthropic/tracing.py. Log message.diagnostics.cache_miss_reason.type as metadata and cache_missed_input_tokens as a metric (e.g. prompt_cache_missed_tokens). Read the fields with getattr so older versions need no gating; this also covers BetaMessage.diagnostics.
agno: workflow StepProgress event text leaks into workflow span output #862agno: keep StepProgress text out of workflow output (3.1.0)._aggregate_workflow_chunks in py/src/braintrust/integrations/agno/tracing.py appends .content from every non-WorkflowCompleted chunk, so text from the new StepProgress events will end up in the span output. Skip event == "StepProgress" there, optionally record progress in metadata, and add a focused test.
google-adk: instrument Workflow nodes and workflow tool calls #863google-adk: no spans for Workflow nodes and their tool calls (predates this bump). ADK 2.x Workflow is a BaseNode, not a BaseAgent, and _ToolNode calls tool.run_async directly, so workflow tool calls get no tool span (MCP tools excepted). ADK now steers users toward Workflow over SequentialAgent / ParallelAgent. Candidate patch targets: google.adk.workflow._base_node.BaseNode.run and _tool_node._ToolNode._run_impl.
mistral 3.0.0: the chat, agents and OCR latest cassettes are still the 2.10.1 recordings, because the API key kept returning 429 (rate limited). Re-record them once the quota clears.
Nothing worth doing
openai-agents 0.23, ai-sdk 0.8, huggingface-hub 2.1, transformers 5.18, harbor 0.24. litellm 1.104.0's Windows wheel still ships CRLF tiktoken files, so the ignore_hosts workaround in test_litellm.py stays.
Follow-up SDK work found while reviewing the release notes for the 2026-10-05 weekly dependency update (#849). Every bump replays cleanly; none of these block that PR.
Integration changes (highest value first)
get_final_result()/with_result_collection()skip tracing #859 OpenAI: Agents session stream helpers skip tracing (bug). openai 3.23 addedAgentSessionEventStream.get_final_result()andwith_result_collection(). Our_TracedStream/_AsyncTracedStreaminpy/src/braintrust/integrations/openai/tracing.pypasses unknown attributes through to the real stream, so calling either method skips_AgentSessionTrace.observe()/finish(). Theopenai.agents.sessions.createspan then gets no output or metrics and is never closed. Fix: drain the traced generator before calling the real stream'sget_final_result(), and havewith_result_collection()return the traced wrapper. Needs a new cassette-backed test.client.responsesis not traced bywrap_openrouter(), andclient.beta.responsesis not auto-instrumented #860 OpenRouter: GAclient.responsesis never traced.wrap_openrouter()inpy/src/braintrust/integrations/openrouter/tracing.pyonly wrapsclient.beta.responses, which is now a separate, deprecatedBetaResponsesclass.auto_instrument()covers the GAclient.responsesbut notBetaResponses. Fix: patchBetaResponses.send/send_asynconly when that module exists, and makewrap_openrouterwrapclient.responses. Add cassette-backed coverage, including a Responses check intest_auto_openrouter.py.cache_miss_reason,cache_missed_input_tokens) #861 Anthropic: capture cache diagnostics (GA in 1.9.0). AdddiagnosticstoMETADATA_PARAMSinpy/src/braintrust/integrations/anthropic/tracing.py. Logmessage.diagnostics.cache_miss_reason.typeas metadata andcache_missed_input_tokensas a metric (e.g.prompt_cache_missed_tokens). Read the fields withgetattrso older versions need no gating; this also coversBetaMessage.diagnostics.StepProgressevent text leaks into workflow span output #862 agno: keepStepProgresstext out of workflow output (3.1.0)._aggregate_workflow_chunksinpy/src/braintrust/integrations/agno/tracing.pyappends.contentfrom every non-WorkflowCompletedchunk, so text from the newStepProgressevents will end up in the span output. Skipevent == "StepProgress"there, optionally record progress in metadata, and add a focused test.Workflownodes and workflow tool calls #863 google-adk: no spans forWorkflownodes and their tool calls (predates this bump). ADK 2.xWorkflowis aBaseNode, not aBaseAgent, and_ToolNodecallstool.run_asyncdirectly, so workflow tool calls get no tool span (MCP tools excepted). ADK now steers users towardWorkflowoverSequentialAgent/ParallelAgent. Candidate patch targets:google.adk.workflow._base_node.BaseNode.runand_tool_node._ToolNode._run_impl.Lower priority
url_context_metadatathat non-streaming responses preserve #774 google-genai:_aggregate_generate_content_chunksdrops the newCandidate.continuation_token(2.26+). Addstatusandcontinuation_tokento_extract_interaction_metadata. Stop reading the deprecatedresponse_mime_type/response_modalitiesfields, which raise DeprecationWarnings. Folded into [bot] Google GenAI: streaming responses dropurl_context_metadatathat non-streaming responses preserve #774, which has the same root cause (url_context_metadatadropped by the same allowlist).RequestUsage.details#866 pydantic-ai: capture the new web-search and grounding counts inRequestUsage.details(2.52–2.54) as metrics.workflow.Info.original_execution_run_idto workflow span metadata #868 temporal: addworkflow.Info.original_execution_run_id(1.34.0) to workflow span metadata when available.usage.service_tieras metadata #867 mistral: optionally recordusage.service_tieras metadata.access_programs#869 openai: optionally add computer-use session items (computer_use_call, 3.22) to_AGENT_TOOL_ITEM_INPUT_KEYSand captureaccess_programs(3.20) in Responses metadata.Cassettes that couldn't be re-recorded
These kept their previous
latestrecordings in #849 because a fresh recording isn't possible right now:test_anthropic_beta_messages_create_captures_compaction_metadatacan't be re-recorded #864 anthropic,test_anthropic_beta_messages_create_captures_compaction_metadata: the live API now stops withmax_tokensinstead ofcompactionfor that prompt, so I kept the old cassette. The test prompt or assertion needs updating before it can be re-recorded.test_litellm_text_completion_metrics[*]can't be re-recorded (model retired) #865 litellm,test_litellm_text_completion_metrics[*]: the model it calls (gpt-3.5-turbo-instruct) has been retired. Point the test at a supported model or retire it.latestcassettes are still the 2.10.1 recordings, because the API key kept returning 429 (rate limited). Re-record them once the quota clears.Nothing worth doing
openai-agents 0.23, ai-sdk 0.8, huggingface-hub 2.1, transformers 5.18, harbor 0.24. litellm 1.104.0's Windows wheel still ships CRLF tiktoken files, so the
ignore_hostsworkaround intest_litellm.pystays.🤖 Generated with Claude Code