[bot] OpenAI Responses API hosted Shell tool (shell_call) missing from server-side tool child-span list
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 80/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- java
- Área
- observability
Línea de trabajo
Abre braintrust-sdk/src/main/java/dev/braintrust/instrumentation/InstrumentationSemConv.java y lee OPENAI_SERVER_SIDE_ITEM_INPUT_KEYS junto con addOpenAIServerSideChildSpans, usando la entrada existente code_interpreter_call como plantilla; la clave de entrada para shell_call es action. Luego añade una prueba en braintrust-sdk/src/test/java/dev/braintrust/instrumentation/InstrumentationSemConvTest.java que replique emitsWebSearchCallToolSpanParentedToLlm, y deja local_shell_call excluido como computer_call. Hecho significa que un elemento shell_call produce un span hijo con metadatos de entrada/salida y la nueva prueba pasa.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
OpenAI's Responses API added a built-in, server-executed "Hosted Shell" tool (launched Feb 10, 2026 per the official changelog). When used in hosted mode (environment.type = container_auto or container_reference), the model's shell commands are executed server-side by OpenAI inside a managed container — the same execution category as code_interpreter_call, which this repo already instruments with a dedicated child span.
This repo already has first-class support for structured per-tool child spans on Responses API output items: addOpenAIServerSideChildSpans / OPENAI_SERVER_SIDE_ITEM_INPUT_KEYS in InstrumentationSemConv.java currently cover web_search_call, file_search_call, code_interpreter_call, and mcp_call, each getting a dedicated type:"tool" child span with input/output/metadata capture (mirroring the equivalent Anthropic server-tool-use span logic). computer_call and image_generation_call are deliberately excluded, each with an explicit code comment and a dedicated test explaining why (client-executed / unredacted base64 blob respectively).
The new hosted Shell tool's output item type, "shell_call" (paired with "shell_call_output"), is not in OPENAI_SERVER_SIDE_ITEM_INPUT_KEYS and has no exclusion comment or test — it simply wasn't considered, since the tool launched after this feature was built. As a result, shell_call items fall through with no child span: no per-call input capture, no separate output/status/latency breakdown — unlike the functionally identical code_interpreter_call. (The raw item still appears in the parent span's full JSON passthrough, so data isn't entirely lost, but the structured tool-call span Braintrust's UI surfaces is missing for this tool.)
Item shapes, per official docs:
shell_call:{"type": "shell_call", "call_id": ..., "status": "in_progress", "action": {"commands": [...], "timeout_ms": ..., "max_output_length": ...}}shell_call_output:output[]entries of{stdout, stderr, outcome: {type: "exit", exit_code} | {type: "timeout"}}
Note: this is distinct from the older, always-client-executed local_shell_call (Codex-only, deprecated — per OpenAI's own docs "the API only returns instructions; it does not execute them on OpenAI infrastructure" and "for new use cases, use the current shell tool"), which correctly should remain excluded the same way computer_call is.
Braintrust docs status: supported (for the covered tool set; shell_call absent)
https://www.braintrust.dev/docs/integrations/ai-providers/openai explicitly documents, for the Java SDK: "One child span per server-side tool call (web_search_call, file_search_call, code_interpreter_call, mcp_call)." shell_call is not listed, consistent with the code gap.
Upstream sources
- https://developers.openai.com/api/docs/changelog — "Launched a new Hosted Shell tool, as well as support for networking in containers" (Feb 10, 2026).
- https://developers.openai.com/api/docs/guides/tools-shell — current hosted Shell tool documentation and item shapes.
- https://developers.openai.com/api/docs/guides/tools-local-shell — confirms the deprecated
local_shell_callis Codex-only, always client-executed, and superseded by the currentshelltool for new use cases.
Local repo files inspected
braintrust-sdk/src/main/java/dev/braintrust/instrumentation/InstrumentationSemConv.java—OPENAI_SERVER_SIDE_ITEM_INPUT_KEYS(covered types),addOpenAIServerSideChildSpans(dispatch/continue-on-unknown-type behavior), the documented exclusions forcomputer_call/image_generation_call.braintrust-sdk/src/test/java/dev/braintrust/instrumentation/InstrumentationSemConvTest.java— existing per-tool-type tests (e.g.emitsWebSearchCallToolSpanParentedToLlm),clientSideCallsAreNotSpanned,imageGenerationCallIsNotSpanned; no equivalent test or exclusion forshell_call.- Repo-wide case-insensitive search for
shell_call/local_shell_call/hosted shell/ShellToolacross source, tests, and VCR cassettes — zero matches.
Suggested fix
Add "shell_call" to OPENAI_SERVER_SIDE_ITEM_INPUT_KEYS with its input key (action), following the same pattern as web_search_call, plus a test mirroring the existing code_interpreter_call/web_search_call child-span tests. The deprecated local_shell_call should remain excluded, consistent with the computer_call exclusion.
- Lenguaje dominante
- Java
- Estrellas
- 21
- Forks
- 5
- Merge medio
- 1 d 1 h
- PR fusionados (30 d)
- 5
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de braintrustdata/braintrust-sdk-java
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
java
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Todos los issues de braintrustdata/braintrust-sdk-java
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
open-metadata/OpenMetadata#36463 ·
Los mantenedores suelen responder en 1 día
-
bug web-server
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
jooby-project/jooby#4035 ·
Los mantenedores suelen responder en 1 día
-
afk-ok area:data-quality importer size:S
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
enorm-labs/event-junkie#4140 ·
Los mantenedores suelen responder en 1 día
-
L: javascript
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
dependabot/dependabot-core#16744 ·
Los mantenedores suelen responder en 1 día
-
[Security] NOTICE.md links to hijacked domain kineticjs.com, which now redirects to a betting siteAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 83/100
eclipse-ee4j/jersey#6144 ·
Los mantenedores suelen responder en 1 día