Repository navigation
Conversation
Strip MCP authentication from telemetry-only tool copies, redact known credentials from attributes and exception telemetry, and keep echoed request fields out of response output. Honor failed terminal results, finalize explicit and high-level stream closes, and propagate cancellation after ending spans. Mark interrupted Parallel Task workflows as errors. Co-Authored-By: Claude Code <noreply@anthropic.com>
Redact resolved request credentials, prevent core traceback reconstruction from restoring secrets, mask nested MCP errors, and trace parsed raw streams. Keep legacy core and published recipe contracts covered. Co-Authored-By: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
Capture actual HTTP request credentials in a per-call context before SDK parsing. Preserve lazy async envelope parsing, finalize envelope closes, and trace every explicit stream parse cache entry with a shared terminal result. Co-Authored-By: Claude Code <noreply@anthropic.com>
This was referenced Nov 2, 2026
Co-Authored-By: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
… modes Co-Authored-By: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Follow up on the independent recall of #486. Keep Parallel Responses on the maintained shared OpenAI instrumentor; add no second patch or duplicate spans.
FI_HIDE_ERROR_DETAILS. Re-raise the original SDK exception unchanged.responses.stream()context exactly once. That context closes the underlying HTTP response rather than the raw SDK stream, so it needs a per-call response-close proxy as well.Reproduction and verification
On current dev
5ae2b9b4a3678af52abc01d90e4fe2fe1d4c2099, the original independent recall suite reproduced all seven findings: 20 failed, 2 passed at each SDK bound, before implementation changes.The checked-in regressions cover sync/async, non-stream/stream, raw Responses objects, SDK high-level stream context exit, repeated/empty/terminal closes, request/stream cancellation, failure/incomplete/error terminal events, unchanged wire payloads and SDK exceptions, escaped credentials, input privacy flags, and hidden error details. Task interruption tests use the actual registered processor, not only a bare OTel provider.
All Python tests and builds ran inside the prescribed macOS sandbox denying external networking (loopback allowed). SDK requests use synthetic credentials and MockTransport; existing export/example tests use loopback OTLP receivers. No live vendor or Cloud calls.
git diff --checkpasses.python3 .github/release/release_plan.py --check: 129 packages, versions and coverage consistent.The key-echoing 401 is a synthetic regression, not a claim about an observed live Parallel response. No registry publication or version bump; release-please owns the patch release.
Related open work
Checked existing OpenAI/Parallel PRs before creating this follow-up. #437 handles Perplexity response extensions, not these findings. #411 adds explicit raw stream
close()methods for audio; it does not cover the high-level Responses HTTP-close path, early-vs-terminal status, request/stream cancellation, or the privacy findings. This PR retains compatible close delegation and adds the Responses-specific behavior. Reconcile the shared stream methods when landing those PRs; do not drop the Responses lifecycle tests.E2E coverage
Not applicable: no application e2e harness is changed. Package contracts, real SDKs, registered processor behavior, built distributions and loopback OTLP export are exercised.
Recall round 2 fixes
extra_body.tools, honoring shallow replacement/removal without mutating the request or exporting extra-body metadata.read(),text()andjson()consumption. Successful non-SSE bodies no longer report a missing SSE terminal event. Failed/cancelled/incomplete JSON statuses remain ERROR, read exceptions retain their identity and finalize exactly once, and unread/SSE responses still require completion. Reads stay lazy; no implicit SDKparse()or post-parser invocation.origin/devnormally. fix(openai): mark interrupted agents and truncated chat streams as errors #536 now contains this exact branch and the resolved shared-request-wrapper conflict, with both fix sets tested together. No force push or release.Generated with Claude Code