OTel execute_tool bash span does not expose nonzero process exit outcome
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Shell
- Sterne
- 11.2k
- Forks
- 1.9k
- Ø Merge
- 14 Std. 16 Min.
- Gemergte PRs (30 T.)
- 6
Beschreibung
Describe the observability gap
When the shell tool successfully launches the synthetic command false, the resulting execute_tool bash span has status code 0 and no exit-code, error, result, or outcome attribute. Consumers cannot distinguish exit 0 from a nonzero command outcome in metadata-only telemetry.
This is distinct from a tool invocation failure: reading a guaranteed nonexistent synthetic path correctly produced an execute_tool view span with error status, error.type=failure, and an exception event.
Affected version
GitHub Copilot CLI 1.0.83 on macOS.
Steps to reproduce
- Enable metadata-only OTel file export.
- Run a synthetic prompt that directs the shell tool to execute exactly
falseonce. - Inspect the
execute_tool bashspan.
The tool execution output reports completion, while the span contains no metadata representing the subprocess's nonzero exit.
Expected behavior
It is reasonable for the tool invocation itself to be considered operationally successful, but metadata-only telemetry should expose a bounded, content-free command outcome such as process.exit.code=1 and/or a Copilot tool outcome attribute. The span status policy can remain separate from the subprocess exit status.
Privacy
The command is synthetic and harmless. Content capture was disabled; no command output, paths, repository data, or credentials are included.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, den reinen Metadaten-OTel-Export mit dem shell tool und dem synthetischen Befehl false zu reproduzieren, und inspiziere anschließend den daraus resultierenden execute_tool bash-Span. Erledigt ist die Aufgabe, wenn der Span ein begrenztes, inhaltsfreies Ergebnis eines Subprozesses mit Exit-Code ungleich null wie process.exit.code=1 oder ein gleichwertiges Tool-Ergebnisattribut offenlegt, ohne Befehlsinhalte zu erfassen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- bash
- Bereich
- observability
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Aktiv
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 48/100