Skip to content

Commit 61efef3

Browse files
authored
Release v4.13.0 (#1481)
1 parent 5bb4bbc commit 61efef3

File tree

7 files changed

+16
-8
lines changed

7 files changed

+16
-8
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Release Notes
22

3+
## [v4.13.0] (2025-10-09)
4+
5+
* Store OpenAI Responses streaming response in events format understood by UI by @alexmojaki in [#1479](https://github.com/pydantic/logfire/pull/1479)
6+
* Add `output` option to `logfire.ConsoleOptions`, e.g. to log to stderr instead of stdout by @stevenh in [#1477](https://github.com/pydantic/logfire/pull/1477)
7+
* Update `logfire.instrument_pydantic_ai()` parameters by @alexmojaki in [#1480](https://github.com/pydantic/logfire/pull/1480)
8+
39
## [v4.12.0] (2025-10-08)
410

511
* Record response when streaming OpenAI Responses API by @stevenh in [#1457](https://github.com/pydantic/logfire/pull/1457)
@@ -934,3 +940,4 @@ First release from new repo!
934940
[v4.10.0]: https://github.com/pydantic/logfire/compare/v4.9.0...v4.10.0
935941
[v4.11.0]: https://github.com/pydantic/logfire/compare/v4.10.0...v4.11.0
936942
[v4.12.0]: https://github.com/pydantic/logfire/compare/v4.11.0...v4.12.0
943+
[v4.13.0]: https://github.com/pydantic/logfire/compare/v4.12.0...v4.13.0

logfire-api/logfire_api/_internal/config.pyi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ from opentelemetry.sdk.metrics.export import MetricReader as MetricReader
3636
from opentelemetry.sdk.trace import SpanProcessor
3737
from opentelemetry.sdk.trace.id_generator import IdGenerator
3838
from pathlib import Path
39-
from typing import Any, Callable, Literal, TypedDict
39+
from typing import Any, Callable, Literal, TextIO, TypedDict
4040
from typing_extensions import Self, Unpack
4141

4242
CREDENTIALS_FILENAME: str
@@ -54,6 +54,7 @@ class ConsoleOptions:
5454
verbose: bool = ...
5555
min_log_level: LevelName = ...
5656
show_project_link: bool = ...
57+
output: TextIO | None = ...
5758

5859
@dataclass
5960
class AdvancedOptions:

logfire-api/logfire_api/_internal/integrations/pydantic_ai.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ from pydantic_ai.models import Model
44
from pydantic_ai.models.instrumented import InstrumentedModel
55
from typing import Any, Literal
66

7-
def instrument_pydantic_ai(logfire_instance: Logfire, obj: Agent | Model | None, event_mode: Literal['attributes', 'logs'] | None, **kwargs: Any) -> None | InstrumentedModel: ...
7+
def instrument_pydantic_ai(logfire_instance: Logfire, obj: Agent | Model | None, include_binary_content: bool | None, include_content: bool | None, version: Literal[1, 2, 3] | None, event_mode: Literal['attributes', 'logs'] | None, **kwargs: Any) -> None | InstrumentedModel: ...

logfire-api/logfire_api/_internal/main.pyi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -431,9 +431,9 @@ class Logfire:
431431
Exclude specific modules from instrumentation.
432432
"""
433433
@overload
434-
def instrument_pydantic_ai(self, obj: pydantic_ai.Agent | None = None, /, *, event_mode: Literal['attributes', 'logs'] = 'attributes', include_binary_content: bool | None = None, **kwargs: Any) -> None: ...
434+
def instrument_pydantic_ai(self, obj: pydantic_ai.Agent | None = None, /, *, include_binary_content: bool | None = None, include_content: bool | None = None, version: Literal[1, 2, 3] | None = None, event_mode: Literal['attributes', 'logs'] | None = None, **kwargs: Any) -> None: ...
435435
@overload
436-
def instrument_pydantic_ai(self, obj: pydantic_ai.models.Model, /, *, event_mode: Literal['attributes', 'logs'] = 'attributes', include_binary_content: bool | None = None, **kwargs: Any) -> pydantic_ai.models.Model: ...
436+
def instrument_pydantic_ai(self, obj: pydantic_ai.models.Model, /, *, include_binary_content: bool | None = None, include_content: bool | None = None, version: Literal[1, 2, 3] | None = None, event_mode: Literal['attributes', 'logs'] | None = None, **kwargs: Any) -> pydantic_ai.models.Model: ...
437437
def instrument_fastapi(self, app: FastAPI, *, capture_headers: bool = False, request_attributes_mapper: Callable[[Request | WebSocket, dict[str, Any]], dict[str, Any] | None] | None = None, excluded_urls: str | Iterable[str] | None = None, record_send_receive: bool = False, extra_spans: bool = False, **opentelemetry_kwargs: Any) -> AbstractContextManager[None]:
438438
"""Instrument a FastAPI app so that spans and logs are automatically created for each request.
439439

logfire-api/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "logfire-api"
7-
version = "4.12.0"
7+
version = "4.13.0"
88
description = "Shim for the Logfire SDK which does nothing unless Logfire is installed"
99
authors = [
1010
{ name = "Pydantic Team", email = "[email protected]" },

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "logfire"
7-
version = "4.12.0"
7+
version = "4.13.0"
88
description = "The best Python observability tool! 🪵🔥"
99
requires-python = ">=3.9"
1010
authors = [

uv.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)