{"id":"src_GlMJGJdN5V1oHclETvfn7","slug":"langfuse-python-sdk","name":"Python SDK","type":"github","url":"https://github.com/langfuse/langfuse-python","orgId":"org_r6pDl7yj_IIcLhhqfS0nx","org":{"slug":"langfuse","name":"Langfuse"},"isPrimary":false,"metadata":"{\"evaluatedMethod\":\"github\",\"evaluatedAt\":\"2026-04-07T17:18:18.347Z\",\"changelogDetectedAt\":\"2026-04-07T17:28:57.050Z\"}","releaseCount":105,"releasesLast30Days":11,"avgReleasesPerWeek":1.7,"latestVersion":"v4.4.0b1","latestDate":"2026-04-17T12:22:48.000Z","changelogUrl":null,"hasChangelogFile":false,"lastFetchedAt":"2026-04-19T07:01:45.123Z","trackingSince":"2025-01-27T18:00:10.000Z","releases":[{"id":"rel_caIVvPxnrJ5zt9-ryyR8u","version":"v4.4.0b1","title":"v4.4.0b1","summary":"## What's Changed\n* fix(ci): disable zizmor advanced security to unblock releases by @wochinge in https://github.com/langfuse/langfuse-python/pull/163...","content":"## What's Changed\n* fix(ci): disable zizmor advanced security to unblock releases by @wochinge in https://github.com/langfuse/langfuse-python/pull/1630\n\n\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v4.3.1...v4.4.0b1","publishedAt":"2026-04-17T12:22:48.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v4.4.0b1","media":[]},{"id":"rel_kCTZNmxfN0U_t4zQJNUhg","version":"v4.3.1","title":"v4.3.1","summary":"## What's Changed\n* feat(api): update API spec from langfuse/langfuse 07cae52 by @langfuse-bot in https://github.com/langfuse/langfuse-python/pull/161...","content":"## What's Changed\n* feat(api): update API spec from langfuse/langfuse 07cae52 by @langfuse-bot in https://github.com/langfuse/langfuse-python/pull/1617\n* chore(deps): bump actions/github-script from 8.0.0 to 9.0.0 in the github-actions group by @dependabot[bot] in https://github.com/langfuse/langfuse-python/pull/1616\n* refactor(tests): split suites by execution level and speed up CI by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1609\n* ci: add 7-day dependabot cooldown by @wochinge in https://github.com/langfuse/langfuse-python/pull/1619\n* ci: harden GitHub Actions workflows with zizmor by @wochinge in https://github.com/langfuse/langfuse-python/pull/1623\n* ci: make uv action tag explicit by @wochinge in https://github.com/langfuse/langfuse-python/pull/1625\n* fix(langchain): propagate trace name metadata by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1626\n\n\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v4.2.0...v4.3.1","publishedAt":"2026-04-16T12:20:21.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v4.3.1","media":[]},{"id":"rel_JvdPlvQfoL0sxGlt6c_Uk","version":"v4.3.0rc1","title":"v4.3.0rc1","summary":"## What's Changed\n* feat(api): update API spec from langfuse/langfuse 07cae52 by @langfuse-bot in https://github.com/langfuse/langfuse-python/pull/161...","content":"## What's Changed\n* feat(api): update API spec from langfuse/langfuse 07cae52 by @langfuse-bot in https://github.com/langfuse/langfuse-python/pull/1617\n* chore(deps): bump actions/github-script from 8.0.0 to 9.0.0 in the github-actions group by @dependabot[bot] in https://github.com/langfuse/langfuse-python/pull/1616\n* refactor(tests): split suites by execution level and speed up CI by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1609\n* ci: add 7-day dependabot cooldown by @wochinge in https://github.com/langfuse/langfuse-python/pull/1619\n* ci: harden GitHub Actions workflows with zizmor by @wochinge in https://github.com/langfuse/langfuse-python/pull/1623\n\n\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v4.2.0...v4.3.0rc1","publishedAt":"2026-04-15T08:08:52.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v4.3.0rc1","media":[]},{"id":"rel_7YZjEl_bpkgSTvIh_Zy5C","version":"v4.2.0","title":"v4.2.0","summary":"## What's Changed\n* feat(client): add custom span exporter support by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1618\n\n\n**Full Chan...","content":"## What's Changed\n* feat(client): add custom span exporter support by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1618\n\n\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v4.1.0...v4.2.0","publishedAt":"2026-04-10T11:55:34.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v4.2.0","media":[]},{"id":"rel_8qAyIvYSFWjSOI09Jr4Lp","version":"v4.1.0","title":"v4.1.0","summary":"## What's Changed\n* chore(ci): move to blacksmith runners by @nimarb in https://github.com/langfuse/langfuse-python/pull/1613\n* feat(api): update API ...","content":"## What's Changed\n* chore(ci): move to blacksmith runners by @nimarb in https://github.com/langfuse/langfuse-python/pull/1613\n* feat(api): update API spec from langfuse/langfuse 1999706 by @langfuse-bot in https://github.com/langfuse/langfuse-python/pull/1615\n\n\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v4.0.6...v4.1.0","publishedAt":"2026-04-09T14:44:50.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v4.1.0","media":[]},{"id":"rel_u49ZTQWknK9zf0QkF-F0P","version":"v4.0.6","title":"v4.0.6","summary":"## What's Changed\n* chore(deps): bump langchain-core from 1.2.21 to 1.2.22 by @dependabot[bot] in https://github.com/langfuse/langfuse-python/pull/160...","content":"## What's Changed\n* chore(deps): bump langchain-core from 1.2.21 to 1.2.22 by @dependabot[bot] in https://github.com/langfuse/langfuse-python/pull/1601\n* feat(langchain): mark LangChain root observations in metadata by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1604\n\n\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v4.0.5...v4.0.6","publishedAt":"2026-04-01T20:04:22.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v4.0.6","media":[]},{"id":"rel_xfuMmONKw1zteA5Fy9Dld","version":"v3.14.6","title":"v3.14.6","summary":"## What's Changed\n* chore(deps-dev): bump werkzeug from 3.1.5 to 3.1.6 by @dependabot[bot] in https://github.com/langfuse/langfuse-python/pull/1531\n* ...","content":"## What's Changed\n* chore(deps-dev): bump werkzeug from 3.1.5 to 3.1.6 by @dependabot[bot] in https://github.com/langfuse/langfuse-python/pull/1531\n* chore: upgrade ruff + merge configurations by @akx in https://github.com/langfuse/langfuse-python/pull/1535\n* fix(media): reuse httpx client for requests by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1537\n* feat(langchain): backport Langchain root metadata flag to v3-stable by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1605\n\n\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v3.14.5...v3.14.6","publishedAt":"2026-04-01T17:28:01.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v3.14.6","media":[]},{"id":"rel_enRhkikIKrpruzF8Tpk-1","version":"v4.0.5","title":"v4.0.5","summary":"## What's Changed\r\n* build: set exclude-newer to 7 days by @wochinge in https://github.com/langfuse/langfuse-python/pull/1595\r\n* ci(dependabot): add g...","content":"## What's Changed\r\n* build: set exclude-newer to 7 days by @wochinge in https://github.com/langfuse/langfuse-python/pull/1595\r\n* ci(dependabot): add github-actions ecosystem with grouped updates by @wochinge in https://github.com/langfuse/langfuse-python/pull/1597\r\n* ci: pin and bump GH actions by @wochinge in https://github.com/langfuse/langfuse-python/pull/1596\r\n* chore(deps): bump the github-actions group across 1 directory with 3 updates by @dependabot[bot] in https://github.com/langfuse/langfuse-python/pull/1599\r\n* fix(experiments): fix unstable local experiment IDs for local data by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1600\r\n\r\n## New Contributors\r\n* @wochinge made their first contribution in https://github.com/langfuse/langfuse-python/pull/1595\r\n\r\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v4.0.4...v4.0.5","publishedAt":"2026-04-01T11:05:53.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v4.0.5","media":[]},{"id":"rel_fysAwe08o04yItLkblnEQ","version":"v4.0.4","title":"v4.0.4","summary":"## What's Changed\n* chore: migrate repo from poetry to uv by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1589\n\n\n**Full Changelog**: ...","content":"## What's Changed\n* chore: migrate repo from poetry to uv by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1589\n\n\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v4.0.3...v4.0.4","publishedAt":"2026-03-30T16:59:11.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v4.0.4","media":[]},{"id":"rel_LhGWS7f2pGmQ6Pa6IrzVN","version":"v4.0.3","title":"v4.0.3","summary":"## What's Changed\n* chore(deps-dev): bump langchain-core from 1.2.11 to 1.2.22 by @dependabot[bot] in https://github.com/langfuse/langfuse-python/pull...","content":"## What's Changed\n* chore(deps-dev): bump langchain-core from 1.2.11 to 1.2.22 by @dependabot[bot] in https://github.com/langfuse/langfuse-python/pull/1586\n* fix(langchain): exit propagation context gracefully by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1588\n\n\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v4.0.2...v4.0.3","publishedAt":"2026-03-30T14:18:39.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v4.0.3","media":[]},{"id":"rel__ZUvJefT-UsbEZlJlJUui","version":"v4.0.2","title":"v4.0.2","summary":"## What's Changed\n* fix(openai): correct token details field names for Response API usage by @zachrobo1 in https://github.com/langfuse/langfuse-python...","content":"## What's Changed\n* fix(openai): correct token details field names for Response API usage by @zachrobo1 in https://github.com/langfuse/langfuse-python/pull/1564\n* fix(openai): include responses instructions in captured prompt by @D-Joey-G in https://github.com/langfuse/langfuse-python/pull/1565\n* fix(observe): Handle asyncio.CancelledError in exception blocks by @jinohkang-theori in https://github.com/langfuse/langfuse-python/pull/1566\n* chore: relax packaging constraint to <27 by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1570\n* feat(api): update API spec from langfuse/langfuse a6c38c6 by @langfuse-bot in https://github.com/langfuse/langfuse-python/pull/1574\n* chore(deps): bump requests from 2.32.5 to 2.33.0 by @dependabot[bot] in https://github.com/langfuse/langfuse-python/pull/1579\n* fix(scores): parse session ID correctly by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1582\n* chore: fix flaky langchain tests by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1584\n* fix(experiments): maintain propagated context in async experiments by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1587\n\n## New Contributors\n* @zachrobo1 made their first contribution in https://github.com/langfuse/langfuse-python/pull/1564\n* @D-Joey-G made their first contribution in https://github.com/langfuse/langfuse-python/pull/1565\n* @jinohkang-theori made their first contribution in https://github.com/langfuse/langfuse-python/pull/1566\n\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v4.0.1...v4.0.2","publishedAt":"2026-03-30T12:06:10.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v4.0.2","media":[]},{"id":"rel_gWYrG7m6mHhyQtTII0Wzd","version":"v4.0.1","title":"v4.0.1","summary":"## What's Changed\n* feat(api): update API spec from langfuse/langfuse e84ca45 by @langfuse-bot in https://github.com/langfuse/langfuse-python/pull/156...","content":"## What's Changed\n* feat(api): update API spec from langfuse/langfuse e84ca45 by @langfuse-bot in https://github.com/langfuse/langfuse-python/pull/1562\n* chore(deps-dev): bump orjson from 3.11.3 to 3.11.6 by @dependabot[bot] in https://github.com/langfuse/langfuse-python/pull/1563\n* feat(api): update API spec from langfuse/langfuse b3adfc3 by @langfuse-bot in https://github.com/langfuse/langfuse-python/pull/1567\n\n\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v4.0.0...v4.0.1","publishedAt":"2026-03-19T14:03:42.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v4.0.1","media":[]},{"id":"rel_aH7JX1kmvUoeVbj4jIlkm","version":"v4.0.0","title":"v4.0.0","summary":"# v4.0.0\r\n\r\n## Breaking changes and migration guide\r\n\r\n[Please see our documentation.](https://langfuse-docs-git-add-perf-changelog-langfuse.vercel.ap...","content":"# v4.0.0\r\n\r\n## Breaking changes and migration guide\r\n\r\n[Please see our documentation.](https://langfuse-docs-git-add-perf-changelog-langfuse.vercel.app/docs/observability/sdk/upgrade-path/python-v3-to-v4)\r\n\r\n\r\n## Other changes\r\n* chore(deps-dev): bump werkzeug from 3.1.5 to 3.1.6 by @dependabot[bot] in https://github.com/langfuse/langfuse-python/pull/1531\r\n* chore: upgrade ruff + merge configurations by @akx in https://github.com/langfuse/langfuse-python/pull/1535\r\n* fix(media): reuse httpx client for requests by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1537\r\n* feat!: prepare v4 release by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1486\r\n* feat(api): update API spec from langfuse/langfuse 784ab09 by @langfuse-bot in https://github.com/langfuse/langfuse-python/pull/1538\r\n* fix(media): retry failed uploads by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1540\r\n* feat(api): update API spec from langfuse/langfuse 25b5139 by @langfuse-bot in https://github.com/langfuse/langfuse-python/pull/1543\r\n* chore(deps-dev): bump langgraph-checkpoint from 3.0.0 to 4.0.0 by @dependabot[bot] in https://github.com/langfuse/langfuse-python/pull/1541\r\n* feat(api): update API spec from langfuse/langfuse a93f65a by @langfuse-bot in https://github.com/langfuse/langfuse-python/pull/1545\r\n* fix(langchain): skip priority-tier keys when subtracting token detail counts by @Br1an67 in https://github.com/langfuse/langfuse-python/pull/1549\r\n* fix(experiment): replace escaped newlines with actual newlines in format output by @Br1an67 in https://github.com/langfuse/langfuse-python/pull/1547\r\n* fix(openai): remove unreachable None type assignments for OpenAI classes by @Br1an67 in https://github.com/langfuse/langfuse-python/pull/1546\r\n* Add handling for invalid tool calls in CallbackHandler by @deershark in https://github.com/langfuse/langfuse-python/pull/1550\r\n* fix: apply stricter early routing for base64 media to prevent SSE dat… by @MoonSangJin in https://github.com/langfuse/langfuse-python/pull/1544\r\n* chore: unify logging usage by @akx in https://github.com/langfuse/langfuse-python/pull/1539\r\n* fix(client): pass release variable to span clients by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1518\r\n* feat(api): update API spec from langfuse/langfuse 2eaf041 by @langfuse-bot in https://github.com/langfuse/langfuse-python/pull/1556\r\n* chore(deps-dev): bump langgraph from 1.0.9 to 1.0.10rc1 by @dependabot[bot] in https://github.com/langfuse/langfuse-python/pull/1560\r\n\r\n## New Contributors\r\n* @akx made their first contribution in https://github.com/langfuse/langfuse-python/pull/1535\r\n* @Br1an67 made their first contribution in https://github.com/langfuse/langfuse-python/pull/1549\r\n* @deershark made their first contribution in https://github.com/langfuse/langfuse-python/pull/1550\r\n* @MoonSangJin made their first contribution in https://github.com/langfuse/langfuse-python/pull/1544\r\n\r\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v3.14.5...v4.0.0","publishedAt":"2026-03-10T16:21:56.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v4.0.0","media":[]},{"id":"rel_WbSF4wXAaIQGj29kxbKCp","version":"v4.0.0b1","title":"v4.0.0b1","summary":"## Breaking changes\r\nPlease see the [preview migration guide](https://langfuse-docs-59h00s7jr-langfuse.vercel.app/docs/observability/sdk/upgrade-path/...","content":"## Breaking changes\r\nPlease see the [preview migration guide](https://langfuse-docs-59h00s7jr-langfuse.vercel.app/docs/observability/sdk/upgrade-path/python-v3-to-v4) for full details.\r\n\r\n## New Contributors\r\n* @akx made their first contribution in https://github.com/langfuse/langfuse-python/pull/1535\r\n\r\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v3.14.5...v4.0.0b1","publishedAt":"2026-02-24T17:53:44.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v4.0.0b1","media":[]},{"id":"rel_dMpNTf1dqKv9rusNF1e91","version":"v3.14.5","title":"v3.14.5","summary":"## What's Changed\n* feat(batch-evaluation): add trace tags and roll up scores to trace by @hassiebp in https://github.com/langfuse/langfuse-python/pul...","content":"## What's Changed\n* feat(batch-evaluation): add trace tags and roll up scores to trace by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1530\n\n\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v3.14.4...v3.14.5","publishedAt":"2026-02-23T10:42:52.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v3.14.5","media":[]},{"id":"rel_pHY-hDkZuu5uQxusmTCLG","version":"v3.14.4","title":"v3.14.4","summary":"## What's Changed\n* fix(experiments): remove dataset version from run item request if None by @hassiebp in https://github.com/langfuse/langfuse-python...","content":"## What's Changed\n* fix(experiments): remove dataset version from run item request if None by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1529\n\n\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v3.14.3...v3.14.4","publishedAt":"2026-02-19T11:03:14.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v3.14.4","media":[]},{"id":"rel_xfEdUdaPgYsxVSZY_XCH5","version":"v3.14.3","title":"v3.14.3","summary":"## What's Changed\n* fix(openai): parse finish_reason from chat completion stream by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1526...","content":"## What's Changed\n* fix(openai): parse finish_reason from chat completion stream by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1526\n\n\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v3.14.2...v3.14.3","publishedAt":"2026-02-17T17:43:30.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v3.14.3","media":[]},{"id":"rel_65ntxOX5sIuhV7vQMdW3W","version":"v3.14.2","title":"v3.14.2","summary":"## What's Changed\n* chore(deps-dev): bump langsmith from 0.4.37 to 0.6.3 by @dependabot[bot] in https://github.com/langfuse/langfuse-python/pull/1519\n...","content":"## What's Changed\n* chore(deps-dev): bump langsmith from 0.4.37 to 0.6.3 by @dependabot[bot] in https://github.com/langfuse/langfuse-python/pull/1519\n* fix Evaluation docstring examples to use value=0 instead of value=None by @Tkgmuuuu in https://github.com/langfuse/langfuse-python/pull/1520\n* feat(api): update API spec from langfuse/langfuse 270f036 by @langfuse-bot in https://github.com/langfuse/langfuse-python/pull/1521\n* chore(deps-dev): bump langchain-core from 1.2.5 to 1.2.11 by @dependabot[bot] in https://github.com/langfuse/langfuse-python/pull/1523\n* fix(openai): parse usage details from response API response chunk by @hassiebp in https://github.com/langfuse/langfuse-python/pull/1525\n\n## New Contributors\n* @Tkgmuuuu made their first contribution in https://github.com/langfuse/langfuse-python/pull/1520\n\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v3.14.1...v3.14.2","publishedAt":"2026-02-16T16:27:48.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v3.14.2","media":[]},{"id":"rel_e-d-qIXXOkZmcjPggGHup","version":"v3.14.1","title":"v3.14.1","summary":"## What's Changed\r\n* feat(dataset-versioning): support running versioned experiments by @marliessophie in https://github.com/langfuse/langfuse-python/...","content":"## What's Changed\r\n* feat(dataset-versioning): support running versioned experiments by @marliessophie in https://github.com/langfuse/langfuse-python/pull/1517\r\n\r\n## Requirements \r\n* Running experiments requires [v3.151.0](https://github.com/langfuse/langfuse/releases/tag/v3.151.0) as of this version.  \r\n\r\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v3.14.0...v3.14.1","publishedAt":"2026-02-09T15:37:50.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v3.14.1","media":[]},{"id":"rel_EP0e0XMgU4hC9e_deNYJA","version":"v3.14.0","title":"v3.14.0","summary":"## What's Changed\n* feat(api): update API spec from langfuse/langfuse 966662e by @langfuse-bot in https://github.com/langfuse/langfuse-python/pull/150...","content":"## What's Changed\n* feat(api): update API spec from langfuse/langfuse 966662e by @langfuse-bot in https://github.com/langfuse/langfuse-python/pull/1508\n\n\n**Full Changelog**: https://github.com/langfuse/langfuse-python/compare/v3.13.0...v3.14.0","publishedAt":"2026-02-09T12:20:55.000Z","url":"https://github.com/langfuse/langfuse-python/releases/tag/v3.14.0","media":[]}],"pagination":{"page":1,"pageSize":20,"totalPages":6,"totalItems":105},"summaries":{"rolling":{"windowDays":90,"summary":"The SDK shipped a major version bump (v4.0.0) in mid-March while maintaining a v3 stable branch in parallel, with both tracks now converging on improved LangChain integration and observability features. The v4 branch focused on foundational changes like migrating build tooling from Poetry to uv and fixing media upload efficiency by reusing HTTP clients, while recent patches addressed OpenAI integration details like Response API token parsing and instruction capture. The v3 stable line received backports of the LangChain root observation metadata flag and continued refinements to experiment runs and batch evaluation, including better trace field selection for performance and proper session ID parsing in scores.","releaseCount":18,"generatedAt":"2026-04-07T17:29:00.745Z"},"monthly":[{"year":2026,"month":3,"summary":"Landed v4.0.0 with breaking changes requiring migration, then stabilized the release with targeted fixes across OpenAI integration, LangChain context handling, and score parsing. The month closed with a build system migration from poetry to uv in v4.0.4.","releaseCount":5,"generatedAt":"2026-04-07T17:29:02.299Z"}]}}