[bot] OpenAI Responses API `compact()` (server-side conversation compaction) not instrumented

Ouverte Adaptée aux débutants
#236 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
78/100
Type d'issue
Fonctionnalité
Clarté
Clairement spécifiée
Activité
Active
Stack technique
ruby
Domaine
observability

Piste de recherche

Commencez par lire lib/braintrust/contrib/openai/instrumentation/responses.rb et lib/braintrust/contrib/openai/patcher.rb, puis comparez l’instrumentation existante de create et stream. Ajoutez des tests pour l’appel à compact via le chemin de patching Responses existant, et vérifiez les tests pertinents concernant les spans, la sortie compactée et l’utilisation. Le travail est terminé lorsque client.responses.compact(params) produit une trace contenant l’entrée, la sortie et l’utilisation de jetons de l’appel.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

<!-- provider-gap-audit: openai-responses-compact-not-instrumented -->

Summary

The official openai Ruby gem's Responses resource exposes a stable compact method (client.responses.compact(params)) that invokes the model to compact/summarize a long-running conversation and returns an OpenAI::Models::Responses::CompactedResponse. This is a model-execution call — billed, and producing a model-generated summary — not a CRUD/admin operation. It is not instrumented anywhere in this repo: only create and stream are wrapped for the Responses API.

What is missing

  • OpenAI::Resources::Responses#compact is not wrapped by Instrumentation::Responses and is not patched by ResponsesPatcher.
  • No span is created, so a compaction call produces zero trace: no input, no output (the compacted summary), no token usage/cost for the compaction call itself.

Braintrust docs status

supported (in another Braintrust SDK, not Ruby) — https://docs.braintrust.dev/integrations/ai-providers/openai explicitly lists, in the TypeScript SDK's Responses API span table: openai.responses.compact ↔ responses.compact (OpenAI SDK v6.10.0 or later). The same page's Ruby-relevant sections only reference create, parse, and stream variants — compact is absent for Ruby (and for Python/Go/Java/.NET). This is a concrete Ruby-specific parity gap against Braintrust's own TypeScript instrumentation of the identical upstream capability.

Upstream sources

Local repo files inspected

  • lib/braintrust/contrib/openai/instrumentation/responses.rb — Instrumentation::Responses::InstanceMethods defines only create (line 35) and stream (line 59); no compact
  • lib/braintrust/contrib/openai/patcher.rb — ResponsesPatcher#perform_patch (lines 94–111) includes Instrumentation::Responses into ::OpenAI::Resources::Responses/the target's singleton class, but the module itself has no compact wrapper, so calls pass straight to super untraced
  • lib/braintrust/contrib/openai/integration.rb — confirms ResponsesPatcher is the sole patcher registered for the Responses API surface
Langage dominant
Ruby
Étoiles
9
Forks
11
Merge moyen
1 j 11 h
PR mergées (30 j)
3

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de braintrustdata/braintrust-sdk-ruby

Toutes les issues de braintrustdata/braintrust-sdk-ruby

Issues similaires

Plus d'issues Ruby

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.