Repository navigation
Conversation
Python 3.10 reaches end of life in October 2026. Raise requires-python to >=3.11, target py311 in ruff, drop 3.10 from the CI unit matrix, and remove the pre-3.11 fallbacks for asyncio.create_task(context=...) and typing.NotRequired. Co-authored-by: Hassieb Pakzad <hassiebp@users.noreply.github.com>
The OpenAI integration now always uses the v1 client shapes. Remove the pre-1.0 method definitions and every _is_openai_v1() branch, and raise the dev dependency floor to openai>=1.0.0. Co-authored-by: Hassieb Pakzad <hassiebp@users.noreply.github.com>
The default OTLP exporter now sends x-langfuse-ingestion-version: 4 so servers in dual-write or preview mode process exported spans directly. It is a no-op on events_only deployments, and additional_headers can still override it. Co-authored-by: Hassieb Pakzad <hassiebp@users.noreply.github.com>
|
@claude review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
Claude Code Review
No review was started: this request came from a bot account. Manual reviews can only be requested by someone with write access to this repository. Ask a maintainer to comment @claude review, or have your automation post the comment from a user account with write access.
Tip: disable this comment in your organization's Code Review settings.
There was a problem hiding this comment.
Looks good, straightforward config change.
Reviewed the new default header addition in LangfuseSpanProcessor and confirmed the merge order ({**default_headers, **(additional_headers or {})}) still lets callers override it. Checked the accompanying test additions — they correctly assert the "4" default and the override-to-"3" case.
Extended reasoning...
The change adds one new default header key to a headers dict in span_processor.py and updates/extends a unit test file to cover it; no auth, crypto, or data-exposure logic is touched, and the existing merge pattern (default headers spread first, then additional_headers spread over them) is unchanged, so the override guarantee holds. The diff is one line of production code plus a straightforward test addition, with no CODEOWNERS concerns raised and no outstanding third-party objections in the timeline, which is why this is simple enough to approve without further human review.
inspect.iscoroutinefunction ignores asyncio's _is_coroutine marker, which asgiref's markcoroutinefunction sets on Python < 3.12. Accept both so such functions keep the async wrapper and their observation ends after the coroutine runs. Co-authored-by: Hassieb Pakzad <hassiebp@users.noreply.github.com>
…o lfe-17074-python-sdk-v5-send-x-langfuse-ingestion-version-4-by-default Co-authored-by: Hassieb Pakzad <hassiebp@users.noreply.github.com>
…0' into lfe-17080-python-sdk-v5-drop-openai-sdk-10-support Co-authored-by: Hassieb Pakzad <hassiebp@users.noreply.github.com>
Co-authored-by: Hassieb Pakzad <hassiebp@users.noreply.github.com>
…penai-sdk-10-support Co-authored-by: Hassieb Pakzad <hassiebp@users.noreply.github.com>
…o lfe-17074-python-sdk-v5-send-x-langfuse-ingestion-version-4-by-default Co-authored-by: Hassieb Pakzad <hassiebp@users.noreply.github.com>
…-langfuse-ingestion-version-4-by-default Co-authored-by: Hassieb Pakzad <hassiebp@users.noreply.github.com>
Co-authored-by: Hassieb Pakzad <hassiebp@users.noreply.github.com>
What does this PR do?
The default OTLP exporter now sends
x-langfuse-ingestion-version: 4. This opts dual-write and preview servers into direct writes, and is a no-op onevents_only(the server rejects only values above 4).additional_headerscan still override it. A customspan_exporteris untouched, as before; its docstring already tells users to set the header themselves.Stack: 3 of 10. Base: #1928. Merge after #1928. It touches only
span_processor.py(one line) andtests/unit/test_additional_headers_simple.py, and is stacked so the stack stays one linear order.Type of change
Verification
Checklist
code_review.md..env.templateif needed.The header behavior has a non-blocking override concern, but the explicit repository import requirement must be satisfied before merging.
Summary
The PR makes the default OTLP exporter request ingestion version 4 and adds tests for the default and an exact-case override.
Reviews (1) · Last reviewed commit: "feat(otel)!: send x-langfuse-ingestion-v..."