feat: expose the resources from the generated openapi client in the langsmith client - #3018
Merged
Merged
Conversation
Contributor
JS perf benchmarkLower is better. Noisy on shared runners — treat as a signal, not a gate. Base64-heavy payloadSingle large base64 string per message — the shape the worker-offload path is optimized for.
Structural payloadMany small strings across a wide/nested object graph. Should bypass worker offload and use sync flush.
|
| def _get_openapi_base_url(api_url: str) -> str: | ||
| """Convert a handwritten client API URL to a generated OpenAPI base URL.""" | ||
| api_url = api_url.rstrip("/") | ||
| return api_url[:-3] if api_url.endswith("/v1") else api_url |
Collaborator
There was a problem hiding this comment.
Just wondering, why is this needed? In which case the api_url would end with /v1?
KiewanVillatel
approved these changes
Jun 15, 2026
langtions-bot Bot
pushed a commit
that referenced
this pull request
Jun 16, 2026
…LSO-2749] (#27304)
## Description
Automations currently upgrade all matched traces to extended (longlived)
retention for every action except `extend_only`. Since
extended-retention traces are billed at a higher rate, this makes the
upgrade configurable per action instead of always-on:
- Add to dataset, trigger webhooks → opt-in (default: no upgrade)
- Add to annotation queue → opt-out (default: upgrade)
- Extend Data Retention (`extend_only`), online/code evaluators, alerts
→ unchanged
The blanket upgrade in `apply.py` is replaced by a per-rule decision
(`rule_should_extend_retention`) reading the nullable `run_rules`
columns from the merged migration PR (NULL = use the action default).
Changing this behavior is gated behind the admin-only RBAC permission
`rules:configure-retention`, enforced inline in create/update only when
a retention field is explicitly provided (not as a route gate, so
default rule edits still work for editors).
Frontend adds a gated "Extend data retention" toggle to each action
card.
### Notes
- The gate keys on explicitly-sent fields (including an explicit `null`
that clears an override), and the update SQL preserves unsent fields —
so a non-admin can't reset an admin-set override by omitting/nulling it
on a full-replacement update.
- Built on the merged migration PR (columns +
`rules:configure-retention` permission). Evaluator retention (opt-in,
owned separately) is left unchanged.
## Self-Hosted Release Note
Automations now let you control per action whether matched traces are
upgraded to extended retention (add-to-dataset/webhooks default off;
add-to-annotation-queue default on), gated by the new admin-only
rules:configure-retention permission.
## Test Plan
- [x] Unit tests (`test_retention_decision.py`): decision matrix per
action × {unset, true, false} + combos; permission gate
present/absent/allowed incl. explicit-null bypass (16 cases)
- [x] `uv run poe lint` clean (ruff, ty, format); `openapi.json`
regenerated; frontend `tsgo` + `oxfmt` clean
- [ ] Manual: dataset/webhook rule with toggle off → not upgraded; on →
upgraded; annotation-queue defaults to upgrade, opt out → not upgraded
- [ ] Manual: non-admin sees toggles disabled, gets 403 on
setting/clearing a retention field, and a normal (no-retention) rule
edit still succeeds; admin succeeds
## Screenshot
<img width="509" height="631" alt="Screenshot 2026-06-11 at 5 58 20 PM"
src="https://github.com/user-attachments/assets/342e0f43-0195-4354-abe4-cb288a1113b0"
/>
feat(sandboxes)!: add ArtifactFS git mounts (#27442)
feat: expose the resources from the generated openapi client in the langsmith client (#3018)
chore: js to 0.7.8 and py to 0.8.16 (#3029)
chore: sync langsmith_api (#3020)
fix(python): derive create_child run id from start_time [LSDK-220] (#3027)
chore: repoint support@langchain.dev mentions to the Support Portal (#3024)
fix(experiments): extract keys from wrapped evaluator function (#3014)
feat(py): add sync/async conversion for Sandbox and SandboxClient (#3019)
chore: bump JS to 0.7.7 and Python to 0.8.15 (#3025)
fix(python): deliver sandbox output callbacks across stream reconnects (#3023)
fix(js): deliver sandbox output callbacks across stream reconnects (#3022)
chore: protect JS openapi client in workflow (#3017)
chore: sync langsmith_api (#3006)
chore(js): exclude generated _openapi_client from linters and type-checker (#3015)
chore(py): bump Python SDK to 0.8.14 (#3013)
feat: add deepagent compatibility smoke tests to Python and JS CI [LSDK-214] (#2997)
chore(py): bump Python SDK to 0.8.13 (#3012)
fix(py): type sandbox startup errors (#3004)
chore: bump JS to 0.7.6 and Python to 0.8.12 (#3011)
fix: avoid duplicate /v1 in hub URLs when endpoint includes /api/v1 (#3008)
feat(js): cross-process OAuth refresh filesystem lock (#2989)
feat(python): cross-process OAuth refresh filesystem lock (#2988)
fix: gemini double counting of over 200k tokens (#3003)
ci: protect _openapi_client from unauthorized changes (#2999)
fix: match async feedback client to sync behavior [LSEN-206] (#3001)
release(py): 0.8.10 (#3000)
chore(deps-dev): bump @jest/globals from 29.7.0 to 30.3.0 in /js (#2807)
chore(deps): bump aiohttp from 3.13.5 to 3.14.0 in /python (#2983)
chore(deps): bump gaurav-nelson/github-action-markdown-link-check from 499c1e7f3637c131334fa8e937c45144f79d72d2 to 5c5dfc0ac2e225883c0e5f03a85311ec2830d368 (#2969)
chore(deps): bump the py-major group across 1 directory with 4 updates (#2996)
chore(deps): bump the py-minor-and-patch group across 1 directory with 12 updates (#2998)
chore(deps-dev): bump types-requests from 2.33.0.20260408 to 2.33.0.20260518 in /python (#2973)
chore(deps): bump starlette from 0.52.1 to 1.0.1 in /python (#2984)
chore(deps-dev): bump types-psutil from 7.2.2.20260408 to 7.2.2.20260518 in /python (#2974)
chore(deps): bump pnpm/action-setup from ac6db6d3c1f721f886538a378a2d73e85697340a to 0e279bb959325dab635dd2c09392533439d90093 (#2970)
chore(deps): bump astral-sh/setup-uv from 94527f2e458b27549849d47d273a16bec83a01e9 to 37802adc94f370d6bfd71619e3f0bf239e1f3b78 (#2968)
feat(evaluation): adding examples and repetitions to create tracer sessions calls (#2954)
Add AWS auth proxy helpers to JS SDK (#2992)
Add AWS auth proxy helpers to Python SDK (#2991)
chore: sync langsmith_api (#2994)
fix(lint): exclude _openapi_client from mypy (#2995)
chore: sync langsmith_api (#2911)
fix(lint): exclude _openapi_client from ruff (#2993)
feat: support JS prompt commit tags (#2987)
feat(python): expose LS_MESSAGE_VIEW_EXCLUDE constant [lso-2605] (#2982)
feat(js): exposed pairwise comparison URL on ComparativeExperimentResults [LSE-2374] (#2981)
feat(python): expose pairwise comparison URL on ComparativeExperimentResults [LSE-2270] (#2975)
feat(python): support trace_id and retry-on-NotFound in async create_… (#2963)
feat(sandbox): size the dockerfile-build sandbox via vCpus/memBytes (js) (#2980)
feat(sandbox): size the dockerfile-build sandbox via vcpus/mem_bytes (python) (#2979)
test(python): deflake test_tracing_queue_limit_drops_when_full (#2964)
chore: update dependabot.yml to comply with posture checks (#2966)
ci: add minimum workflow permissions (#2967)
chore(deps-dev): bump types-tqdm from 4.67.3.20260408 to 4.67.3.20260518 in /python (#2959)
chore(deps-dev): bump the py-minor-and-patch group in /python with 6 updates (#2958)
chore(deps-dev): bump wrapt from 1.17.3 to 2.2.1 in /python (#2961)
chore(deps-dev): bump google-adk from 1.10.0 to 2.1.0 in /python (#2960)
chore(deps-dev): bump typescript from 5.9.3 to 6.0.3 in /js (#2839)
chore(deps): bump the py-minor-and-patch group across 1 directory with 19 updates (#2934)
chore(deps): update myst-parser requirement from >=3 to >=4.0.1 in /python (#2841)
chore(deps): bump websockets from 15.0.1 to 16.0 in /python (#2811)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 11 updates (#2931)
feat(sandbox): add JS Dockerfile snapshots (#2951)
fix(sandbox): build Dockerfile snapshots off /tmp (#2956)
fix(python): retry sandbox pool timeouts (#2953)
release(py): 0.8.7 (#2947)
fix(js): add organization id to context URLs (#2946)
fix(python): add organization id to context URLs (#2945)
feat(sandbox): build snapshots from Dockerfiles (#2950)
fix: reconnect sandbox command streams on EOF (#2941)
release(py): 0.8.6 (#2944)
fix(python): [LSDK-202] return context hub URLs for pushed contexts (#2938)
release(js): 0.7.3 (#2943)
fix(python): RunTree.create_child appends to self.child_runs LSE-2221 (#2942)
fix(js): [LSDK-202] return context hub URLs for pushed contexts (#2939)
fix(python): retry sandbox connect timeouts (#2940)
chore: exclude langsmith_api from ruff linter (#2933)
chore(deps): update pydata-sphinx-theme requirement from >=0.15 to >=0.18.0 in /python (#2928)
chore(deps-dev): bump types-pyyaml from 6.0.12.20250915 to 6.0.12.20260518 in /python (#2927)
chore(deps-dev): bump @anthropic-ai/sdk from 0.95.1 to 0.95.2 in /js (#2917)
feat: add list_runs_from_annotation_queue method [closes LSDK-193] (#2892)
release(js): 0.7.2 (#2922)
feat: install websockets by default for sandbox (#2916)
AI SDK telemetry and AI SDK v7 support (#2901)
chore(deps-dev): bump @anthropic-ai/sdk from 0.95.0 to 0.95.1 in /js (#2912)
chore(deps): bump idna from 3.11 to 3.15 in /python (#2913)
chore(deps): bump protobufjs from 7.5.5 to 8.0.1 in /js (#2896)
chore(deps): bump hono from 4.12.18 to 4.12.19 in /js (#2909)
chore(deps): bump @protobufjs/utf8 from 1.1.0 to 1.1.1 in /js/internal/environment_tests/test-exports-vite in the npm_and_yarn group across 1 directory (#2908)
chore(deps): bump postcss from 8.5.8 to 8.5.14 in /js (#2898)
chore(deps-dev): bump @anthropic-ai/sdk from 0.94.0 to 0.95.0 in /js (#2881)
chore(deps): bump fast-uri from 3.1.0 to 3.1.2 in /js (#2895)
chore(deps): bump hono from 4.12.15 to 4.12.18 in /js (#2894)
chore(deps): bump authlib from 1.6.11 to 1.6.12 in /python (#2888)
chore(deps): bump mako from 1.3.11 to 1.3.12 in /python (#2880)
chore(deps-dev): bump @google/genai from 1.50.1 to 2.0.1 in /js (#2875)
release(py): 0.8.5 (#2903)
release(js): 0.7.1 (#2902)
feat(sandbox): forward client default headers on exec WebSocket (#2899)
feat(python): add Client.close() to release session [closes LSDK-183] (#2866)
feat(js): allow disabling multipart streaming via env variable (#2900)
fix(js): add alias for `experimental/sandbox` to appease broad peer dep range within `deepagents` (#2893)
release(js): 0.7.0 (#2890)
release(py): 0.8.4 (#2889)
feat(sandbox): make snapshot optional and add TS options overload (#2887)
sdk(py): drop sandbox alpha/experimental warnings (#2884)
sdk(js): rename experimental/sandbox -> sandbox (breaking) (#2885)
chore(deps-dev): bump @anthropic-ai/sdk from 0.93.0 to 0.94.0 in /js (#2878)
chore(deps): bump the npm_and_yarn group across 2 directories with 2 updates (#2868)
chore(deps): bump the py-minor-and-patch group across 1 directory with 11 updates (#2879)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 16 updates (#2877)
chore(deps): bump the py-minor-and-patch group across 1 directory with 12 updates (#2876)
chore(deps): bump urllib3 from 2.6.3 to 2.7.0 in /python (#2873)
chore(deps-dev): bump @anthropic-ai/sdk from 0.92.0 to 0.93.0 in /js (#2869)
chore(deps-dev): bump langchain-core from 1.3.2 to 1.3.3 in /python (#2867)
chore(deps): bump hono from 4.12.15 to 4.12.18 in /js (#2860)
chore(deps): bump postcss from 8.5.8 to 8.5.14 in /js (#2857)
chore(deps-dev): bump @anthropic-ai/sdk from 0.91.1 to 0.92.0 in /js (#2858)
chore(deps): bump python-multipart from 0.0.26 to 0.0.27 in /python (#2859)
release(js): 0.6.3 (#2864)
release(py): 0.8.3 (#2863)
docs(langsmith): clarify trust boundaries when working with hub (#2861)
Fix push_agent URL owner for name-only identifiers (#2862)
sdk(js): replace ttlSeconds with idleTtlSeconds + deleteAfterStopSeconds (#2854)
sdk(py): replace ttl_seconds with idle_ttl_seconds + delete_after_stop_seconds (#2853)
release(js): bump to 0.6.2 (#2856)
fix(js): prevent sending [object Object] as span attribute when dealing with nested objects, send full langsmith.usage_metadata if present (#2845)
Bump Python SDK version to 0.8.2 (#2855)
fix: parse urllib3 version with packaging.Version (#2851)
Bump JS SDK version to 0.6.1 (#2847)
Bump Python SDK version to 0.8.1 (#2848)
Extract JS profile auth service (#2846)
Add Python profile loading (#2835)
Add JS profile loading (#2834)
chore(deps): bump postcss from 8.5.8 to 8.5.12 in /js (#2827)
chore(deps-dev): bump google-adk from 1.10.0 to 1.28.1 in /python (#2823)
chore(js): remove experimental opencode integration (#2836)
release(py): 0.8.0 (#2833)
release(js): 0.6.0 (#2832)
feat(js,py): JS 0.6.0, Py 0.8.0 (#2831)
release(py): 0.7.38 (#2825)
release(js): 0.5.26 (#2824)
fix(js): Pull Claude Agent SDK subagent runs from transcript, add tool span for subagents, merge message blocks by id (#2816)
chore: add apac support (#2821)
fix(py): fix RunTree ValidationError when inputs or outputs is a Pydantic BaseModel (#2820)
chore(js): Switch to oxfmt and oxlint (#2819)
feat(py): Adds strands OTEL exporter (#2817)
chore(deps): bump the py-minor-and-patch group across 1 directory with 18 updates (#2808)
chore(deps-dev): bump @langchain/openai from 0.5.18 to 0.6.17 in /js (#2806)
chore(deps-dev): bump types-pyyaml from 6.0.12.20250915 to 6.0.12.20260408 in /python (#2812)
chore(deps): update myst-nb requirement from >=1.1.1 to >=1.4.0 in /python (#2810)
chore(deps): update sphinx-autobuild requirement from >=2024 to >=2024.10.3 in /python (#2809)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 4 updates (#2803)
ci(py): Bump pytest timeout to 2m (#2815)
docs(sandbox): document default idle TTL of 10 minutes (#2788)
chore(js): Remove types/uuid (#2814)
feat(js): add tracing of opencode (#2776)
release(py): 0.7.37 (#2802)
fix(py): Fix concurrency for multiple Claude Agent SDK sessions (#2795)
fix(python): flush pending traces during Client.cleanup() (#2799)
chore(deps-dev): bump google-adk from 1.10.0 to 1.28.1 in /python (#2794)
chore(deps): bump postcss from 8.5.8 to 8.5.10 in /js/internal/environment_tests/test-exports-vite in the npm_and_yarn group across 1 directory (#2791)
fix(python): flush both tracing_queue and compressed_traces in flush() (#2796)
release(js): 0.5.25 (#2801)
fix(js): Include auth headers on info requests (#2800)
fix(js): minor test improvements (#2429)
feat(js,python): Adds hub model config and provider to schemas (#2793)
chore(js): Fix perf test flagging (#2792)
release(js): 0.5.24 (#2790)
perf(js): Offload serialize to worker thread at flush time (#2781)
release(py): 0.7.36 (#2789)
feat(py, js): per-replica `client` arg to support runtime destination overrides (#2759)
fix(js): Vendor UUID to satisfy security warning and keep CJS support (#2784)
release(js): 0.5.23 (#2786)
perf(js): Use estimator instead of serialization in hot path (#2780)
docs: add CONTRIBUTING.md covering Python + JS release flow (#2787)
fix(js): honor numRepetitions when data is an Example[] (#2779)
release(py): 0.7.35 (#2785)
fix(py): suppress Pydantic serialization warnings for ParsedBetaMessage in wrap_anthropic (#2783)
feat(js): add agent/skill hub methods on Client with unit tests (#2747)
feat(python): add Hub agent/skill methods on Client and AsyncClient (#2746)
fix: patch 2 security alerts (high severity) (#2756)
release(py): 0.7.34 (#2778)
chore(js): Consolidate and cut down on integration tests (#2775)
feat: add Context schemas for agent/skill/file hub repos (#2745)
feat(py): Adds runtime overrides for updating internal methods (#2766)
fix(python): Update Python async and sandbox client reprs (#2773)
ci(python): Use cassettes for Google tests (#2771)
release(js): 0.5.22 (#2774)
fix(js): Update logged client string representations to hide API key (#2772)
feat(js-sandbox): support snapshotName and list filters (#2770)
chore(js): remove templates, pools, and volumes from sandbox SDK (#2758)
feat(python-sandbox): support snapshot_name and list filters (#2769)
chore(python): remove templates, pools, and volumes (#2757)
feat(js): Adds OpenAI Agents JS SDK wrapper (#2763)
fix(js/sandbox): clone Response before consuming body in error handlers (#2760)
chore(deps): bump websockets from 15.0.1 to 16.0 in /python (#2510)
chore(deps-dev): bump langchain-openai from 1.1.12 to 1.1.14 in /python (#2730)
chore(deps-dev): bump google-adk from 1.14.1 to 1.28.1 in /python (#2755)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 10 updates (#2753)
chore(deps): bump the py-minor-and-patch group across 1 directory with 13 updates (#2752)
chore(deps): bump authlib from 1.6.9 to 1.6.11 in /python (#2732)
chore(deps-dev): bump @anthropic-ai/sdk from 0.89.0 to 0.90.0 in /js (#2731)
chore(deps-dev): bump types-requests from 2.33.0.20260327 to 2.33.0.20260408 in /python (#2741)
feat(js): add hideMetadata support (#2720)
release(py,js): py 0.7.33, js 0.5.21 (#2743)
feat(sandbox): expose per-sandbox proxy_config in py + js clients (#2742)
fix(js): move jest retry config to runtime setup file (#2733)
chore(deps): bump mako from 1.3.10 to 1.3.11 in /python (#2729)
python: pass OTEL config directly to exporter instead of setting env vars (#2726)
chore(deps-dev): bump @anthropic-ai/sdk from 0.88.0 to 0.89.0 in /js (#2724)
release(py,js): py 0.7.32, js 0.5.20 (#2721)
chore(deps): bump python-multipart from 0.0.22 to 0.0.26 in /python (#2722)
feat(js/sandbox): add snapshot API and start/stop lifecycle (#2717)
docs: add initial threat model for langsmith-sdk (#2669)
feat(python/sandbox): add snapshot API and start/stop lifecycle (#2713)
release(js): 0.5.19 (#2715)
release(py): 0.7.31 (#2716)
feat: Filter kwargs from new token events (#2714)
chore(deps-dev): bump rich from 14.3.3 to 15.0.0 in /python (#2708)
chore(deps-dev): bump types-psutil from 7.2.2.20260130 to 7.2.2.20260408 in /python (#2709)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 7 updates (#2712)
chore(deps): bump actions/github-script from 8 to 9 (#2706)
chore(deps-dev): bump @anthropic-ai/sdk from 0.85.0 to 0.86.0 in /js (#2702)
chore(deps): bump the py-minor-and-patch group across 1 directory with 10 updates (#2711)
chore(deps): bump pnpm/action-setup from 5 to 6 (#2705)
chore(deps-dev): bump types-tqdm from 4.67.3.20260303 to 4.67.3.20260408 in /python (#2710)
feat(js): Adds ls_agent_type metadata to AI SDK runs (#2701)
feat(py): Tag OpenAI Agent Python SDK runs with ls_agent_type (#2699)
chore(deps-dev): bump @anthropic-ai/sdk from 0.84.0 to 0.85.0 in /js (#2700)
chore(deps): bump cryptography from 46.0.6 to 46.0.7 in /python (#2693)
chore(deps-dev): bump @anthropic-ai/sdk from 0.82.0 to 0.84.0 in /js (#2684)
chore(deps-dev): bump langchain-core from 1.2.23 to 1.2.28 in /python (#2692)
release(py): 0.7.30 (#2698)
fix(py): Fix run tree memory leak (#2696)
feat(js): Add metadata to Claude Agent SDK JS tracing (#2695)
chore(js/sandbox): suppress warning log (#2694)
release(js): 0.5.18 (#2691)
fix(js): Fix prototype pollution bug in anonymizers (#2690)
feat(python): add service feature to sandbox (#2665)
release(py): 0.7.29 (#2686)
feat(py): Fix race condition around Claude Agent SDK instrumentation (#2685)
release(js): 0.5.17 (#2681)
release(py): 0.7.28 (#2682)
fix(py): Fix type checking (#2683)
Fix(py): Add model_dump fallback to prevent .dict() deprecation warning (#2655)
chore(deps): bump google-cloud-aiplatform from 1.126.1 to 1.133.0 in /python (#2679)
feat(py,js): Allow dynamically setting custom client headers (#2678)
chore(py): Deflake test (#2680)
chore(deps): bump pnpm/action-setup from 4 to 5 (#2658)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 8 updates (#2667)
chore(deps-dev): bump the py-minor-and-patch group across 1 directory with 11 updates (#2677)
feat(py): Support subagent tracing in Claude Agents SDK, fix usage and duplicate messages (#2670)
release(python): 0.7.27 (#2676)
fix: add more retryable errors to the async client (#2675)
fix: retry on 502/3/4 in get_prompt (#2672)
feat(js): Add ls_integration metadata to AI SDK and Claude Agents SDK (#2668)
chore(deps-dev): bump vite from 6.4.1 to 6.4.2 in /js/internal/environment_tests/test-exports-vite in the npm_and_yarn group across 1 directory (#2666)
chore(js): Remove Chalk dep (#2664)
chore: bump version to 0.7.26 (#2663)
feat(sdk): add list_project_issues method (#2654)
chore(deps-dev): bump @anthropic-ai/sdk from 0.80.0 to 0.81.0 in /js (#2646)
Bump version: 0.7.24 → 0.7.25 (#2652)
feat(otel): add set_metadata to OtelSpanProcessor for thread_id propagation (#2650)
feat(py, js): add description to hub prompts sdk (#2639)
chore: remove index_dataset, similar_examples, and sync_indexed_dataset from clients (#2645)
chore: bump js (#2647)
fix: anthropic parse messages in js (#2644)
chore: bump py version (#2643)
fix: add wrapping for client.beta.messages.parse (#2642)
chore: Adds exclude-newer to uv settings (#2638)
chore: Switch to pnpm, use minimumReleaseAge (#2635)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 6 updates (#2634)
chore(deps): bump pygments from 2.19.2 to 2.20.0 in /python (#2633)
chore(deps): bump the py-minor-and-patch group across 1 directory with 20 updates (#2629)
chore(deps): bump handlebars from 4.7.8 to 4.7.9 in /js (#2620)
chore(python): Release 0.7.23 (#2632)
feat(python): Support headers arg in sandbox client (#2619)
chore: support aws saas cluster (#2628)
chore(deps): bump cryptography from 46.0.5 to 46.0.6 in /python (#2623)
chore(deps-dev): bump langchain-core from 1.2.15 to 1.2.22 in /python (#2622)
release(js): 0.5.15 (#2618)
fix: include model field in wrap_gemini js traced inputs (#2608)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 17 updates (#2614)
chore(deps): bump picomatch from 2.3.1 to 2.3.2 in /js/internal/environment_tests/test-exports-metro in the npm_and_yarn group across 1 directory (#2616)
feat(js): add ttl feature for sandboxes (#2617)
chore(deps): bump requests from 2.32.5 to 2.33.0 in /python (#2613)
release(js): 0.5.14 (#2612)
feat(js): fix tracing of subagents for newer versions of @anthropic/claude-agent-sdk, harden null checks (#2611)
feat(python): add ttl feature for sandboxes (#2609)
release(js): 0.5.13 (#2607)
feat(js): Add proper aggregation for AI SDK reasoning when streaming (#2606)
release(js): 0.5.12 (#2602)
feat(js): Parse AI SDK reasoning blocks into standard content blocks (#2601)
chore(deps): bump flatted from 3.3.3 to 3.4.2 in /js (#2600)
chore: add experiment id (#2599)
chore: bump python SDK version to 0.7.21 (#2598)
fix: add debug logging to background thread shutdown and final flush (#2597)
chore(deps): bump pyjwt from 2.10.1 to 2.12.0 in /python (#2594)
chore(deps): bump dorny/paths-filter from 3 to 4 (#2578)
chore(deps): bump pyasn1 from 0.6.2 to 0.6.3 in /python (#2587)
chore(deps): bump pyopenssl from 25.3.0 to 26.0.0 in /python (#2581)
chore(deps): bump authlib from 1.6.8 to 1.6.9 in /python (#2580)
chore(deps-dev): bump multipart from 1.3.0 to 1.3.1 in /python (#2566)
chore(deps-dev): bump dotenv from 16.4.7 to 17.3.1 in /js (#2507)
release(js): 0.5.11 (#2592)
fix(js): Fix AI SDK and Claude Agents SDK in non-Node envs (#2591)
chore: apply auth headers for multipart compressed (#2589)
Bump version: 0.7.18 → 0.7.19 (#2588)
fix(python): add _on_ending to OtelSpanProcessor for opentelemetry-sdk 1.40.0 (#2586)
feat: set source: "sdk" on SDK-created datasets (#2584)
fix(python): fix flaky test_workspace_error_recovery_flow (#2583)
Bump version: 0.7.17 → 0.7.18 (#2582)
fix(python): propagate exceptions from ExperimentResults._process_data (#2574)
fix(python): handle concurrent example creation in pytest-xdist (#2549)
test(python): add AsyncExperimentResults edge case tests (#2573)
fix(python): propagate exceptions from AsyncExperimentResults._proces… (#2572)
fix(python): replace busy-wait in AsyncExperimentResults.__anext__ (#2550)
chore: js version bump (#2570)
fix: fix js missing tz gs (#2569)
Bump version: 0.7.16 → 0.7.17 (#2568)
fix: catch missing tz info (#2567)
feat(sandbox): add reconnection of tunnels (#2563)
feat: add ws based exec to js sdk (#2540)
docs(sandbox): add TCP tunnel documentation (#2560)
feat(sandbox): add TCP tunnel support (#2559)
feat(sandbox): add yamux multiplexing protocol (#2558)
fix(sandbox): prevent CommandHandle.kill() from hanging (#2557)
chore: bump ver (#2547)
chore: bump js ver (#2548)
feat: auto populate trace id child runs (#2534)
fix: tool calls fix for anthropic wrapper (#2537)
fix: gemini wrapper inputs (#2532)
release(py): Bump version: 0.7.14 → 0.7.15 (#2544)
fix(python): Fix pytest behavior with fixtures (#2543)
fix: add async create support for sandboxes (#2539)
release(js): 0.5.8 (#2538)
fix(js): use UUID v7 for evaluator run IDs and feedback IDs (#2536)
chore(py): Bump version: 0.7.13 → 0.7.14 (#2535)
fix: sum Anthropic cache tokens into input_tokens for correct cost calculation (#2519)
Bump version: 0.7.12 → 0.7.13 (#2531)
feat(py): add experiment-level metadata to pytest integration (#2524)
fix: bump minimatch to resolve CVE-2026-27903 (#2502)
fix: missing await (#2528)
fix: convert non primitive types to JSON strings (#2527)
fix: initialize otel exporter before background thread (#2526)
chore: bump version (#2521)
fix: sample before transform in ingest (#2488)
bump version for insights sdk changes (#2520)
add get insights reports with runs (#2517)
Bump version: 0.7.9 → 0.7.10 (#2516)
fix: memory leak in _cached_attachment_args when tracing closures (#2515)
chore(deps): bump minimatch from 3.1.2 to 3.1.5 in /js/internal/environment_tests/test-exports-metro in the npm_and_yarn group across 1 directory (#2489)
fix: update deprecated model and re-record VCR cassettes (#2503)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 9 updates (#2490)
chore: bump py ver (#2501)
fix: catch blocksize typeError (#2499)
Bump version: 0.7.7 → 0.7.8 (#2498)
fix(anthropic): Add usage_metadata to metadata (#2497)
docs: rm pytest beta docstring (#2496)
feat(sandbox): async sandbox creation (#2493)
Description change for read_dataset_version (#2487)
chore(deps): bump rollup from 4.40.2 to 4.59.0 in /js (#2484)
feat(sandbox): add retry mechanism for python client (#2486)
chore(deps): bump rollup from 4.57.1 to 4.59.0 in /js/internal/environment_tests/test-exports-vite in the npm_and_yarn group across 1 directory (#2483)
chore(deps): bump the py-minor-and-patch group across 1 directory with 15 updates (#2475)
chore: bump GitHub workflow Node.js versions to 24.x (#2485)
fix(ci): replace mistakenly pinned Node 22.4.1 with 22.x (#2477)
fix: bump versions (#2482)
fix: add integration and version num (#2481)
feat: add raw response parsing for responses api to openai wrapper (#2480)
feat: add native thread querying support (#2455)
feat: persist failed trace payloads to disk for later replay (#2476)
fix(js): Fix list commits endpoint for private prompts (#2479)
chore(deps): bump google-cloud-aiplatform from 1.126.1 to 1.133.0 in /python (#2465)
docs(python): document sandbox streaming, kill, stdin, and reconnect (#2449)
test(python): add tests for CommandHandle and sandbox streaming integration (#2448)
feat(python): add CommandHandle for streaming, kill, stdin, and reconnect (#2450)
feat(python): use WebSocket transport by default with HTTP fallback (#2446)
test(python): add tests for WebSocket transport layer (#2445)
feat(python): add WebSocket transport for sandbox commands (#2443)
release(js): 0.5.6 (#2467)
fix(js): Respect traceRawHttp for tracing streaming AI SDK calls (#2466)
release(js): 0.5.5 (#2464)
fix(js): subagent tool calls tracking for latest claude agent sdk (#2463)
release(py): 0.7.6 (#2462)
chore(claude agent sdk): rm debug logs (#2461)
feat(py, claude agent sdk): Add wrapping for PostToolUseFailure hook (#2460)
perf(py): Improve retry logic for tracing ops (#2459)
fix(py, claude agent sdk): Correctly parent spans in asyncio context (#2457)
feat(python): add sandbox exception types and client plumbing (#2442)
release(py): 0.7.5 (#2456)
fix(py/adk): fix multi-agent tracing (#2451)
make zstandard optional (#2453)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 10 updates (#2433)
chore(deps-dev): bump pandas-stubs from 2.3.3.251219 to 2.3.3.260113 in /python (#2404)
chore(deps): bump the py-minor-and-patch group across 1 directory with 16 updates (#2440)
chore(deps-dev): bump @jest/reporters from 29.7.0 to 30.2.0 in /js (#2417)
chore(deps): bump chalk from 4.1.2 to 5.6.2 in /js (#2416)
release(py): 0.7.4 (#2441)
chore: lock dependencies (#2439)
fix(google-adk): add wrapt dependency (#2436)
release(py): 0.7.3 (#2428)
chore(python): openai agents: delay span start for spans without inputs on start event (#2424)
fix: propagate tracingEnabled to nested traceables (#2427)
release(py): 0.7.2 (#2426)
feat(python): add exceptions_to_handle to @traceable (#2423)
feat(python): add feedback config CRUD and annotation queue rubric items (closes LSPE-67) (#2419)
release(js): 0.5.4 (#2422)
fix(js): Add on_start handler for traceable, use in evaluate (#2421)
feat(js): add feedback config CRUD and annotation queue rubric items (closes LSPE-67) (#2420)
fix: ignoring p-queue dep (#2414)
release(js): 0.5.3 (#2410)
fix(js): Remove async (#2409)
fix(js): Log Vitest/Jest outputs even if test throws an error (#2408)
chore(deps): bump the py-minor-and-patch group across 1 directory with 20 updates (#2406)
chore(deps-dev): bump pytest from 8.4.2 to 9.0.2 in /python (#2405)
chore(deps): bump packaging from 25.0 to 26.0 in /python (#2403)
chore(deps-dev): bump eslint-config-prettier from 8.10.0 to 10.1.8 in /js (#2399)
chore(deps-dev): bump the js-minor-and-patch group in /js with 6 updates (#2398)
chore(deps): bump cryptography from 46.0.3 to 46.0.5 in /python in the uv group across 1 directory (#2397)
chore: update dependabot.yml to comply with posture checks (#2393)
Google ADK LangSmith tracing enhancements (#2394)
chore(deps-dev): bump node-fetch from 2.7.0 to 3.3.2 in /js (#2380)
chore(deps-dev): bump the js-minor-and-patch group in /js with 4 updates (#2376)
chore(deps-dev): bump cross-env from 7.0.3 to 10.1.0 in /js (#2379)
chore(deps-dev): bump openai from 5.8.2 to 6.18.0 in /js (#2378)
release(js): 0.5.2 (#2392)
fix(js): Remove @internal (#2391)
release(js): 0.5.1 (#2389)
release(py): 0.7.1 (#2388)
fix(js): Add system message visibility to Anthropic wrapper traces (#2375)
fix(js,py): Adds backcompat for old prompt cache API (#2386)
fix(js): Restore default concurrency behavior for JS eval runner (#2385)
feat(js): run evaluations as examples complete (#2349)
fix(ci): Convert JS release workflow to use OIDC (#2383)
release(js): 0.5.0 (#2381)
release(py): 0.7.0 (#2382)
chore: Support jwt auth in replicas (#2293)
feat(py,js): Use global singleton for prompt cache, enable by default (#2371)
chore: rm unused fn (#2346)
chore(deps): bump the js-minor-and-patch group in /js with 20 updates (#2364)
fix(deps): resolve js-yaml prototype pollution vulnerability (#2370)
fix(deps): resolve glob CLI command injection (CVE-2025-64756) (#2368)
fix: esbuild CVE dependabot 78 (#2369)
chore: adding workflow perms (#2367)
chore(deps-dev): bump babel-jest from 29.7.0 to 30.2.0 in /js (#2365)
chore(deps-dev): bump eslint-plugin-prettier from 4.2.1 to 4.2.5 in /js (#2366)
chore(deps): update httpx requirement from <0.28.0,>=0.23.0 to >=0.23.0,<0.29.0 in /python (#2363)
chore(deps-dev): bump ty from 0.0.10 to 0.0.15 in /python in the py-minor-and-patch group (#2362)
chore(deps): bump actions/cache from 4 to 5 (#2361)
chore(deps): bump astral-sh/setup-uv from 6 to 7 (#2360)
chore(deps): bump actions/checkout from 2 to 6 (#2359)
chore(deps): bump actions/github-script from 6 to 8 (#2358)
chore(deps): bump actions/setup-node from 3 to 6 (#2357)
chore(deps): bump jws from 4.0.0 to 4.0.1 in /js (#2355)
chore(deps-dev): bump esbuild from 0.20.2 to 0.25.0 in /js/internal/environment_tests/test-exports-esbuild in the npm_and_yarn group across 1 directory (#2354)
chore(deps): bump pyasn1 from 0.6.1 to 0.6.2 in /python (#2353)
chore(deps): bump protobuf from 6.33.2 to 6.33.5 in /python (#2352)
chore(deps): bump python-multipart from 0.0.21 to 0.0.22 in /python (#2351)
chore:deps (#2356)
chore(deps): bump vite from 6.3.5 to 6.4.1 in /js (#2284)
chore(deps-dev): bump langchain from 0.3.29 to 0.3.37 in /js (#2283)
chore(deps): bump form-data from 4.0.3 to 4.0.5 in /js (#2282)
Bump version: 0.6.8 → 0.6.9 (#2347)
don't set parent context on span start (#2343)
prevent claude agent sdk double wrapping (#2344)
feat(sandbox): add js lib (#2335)
fix(sandbox): endpoint for python async (#2340)
feat: add pre-commit (#2339)
Bump version: 0.6.7 → 0.6.8 (#2334)
chore: add chat_name and completions_name optional parameter (#2332)
feat(python): Non-otel google adk wrapper (#2330)
release(py): 0.6.7 (#2327)
release(js): 0.4.12 (#2326)
feat(py,js): Allow prepopulating invocation params in passed metadata for client wrappers (#2320)
fix(python): fix upsert param in create_project (#2322)
pass metadata on feedback creation (#2317)
feat(js,python): Use xxhash for deterministic UUID7 for replicas (#2315)
bump js sdk (0.4.11) (#2318)
export google gen ai wrapper (#2316)
release(py): 0.6.6 (#2314)
feat(py): Allow setting background tracing threads as daemons (#2310)
fix(sandbox): default endpoint (#2313)
release: js 0.4.10 (#2312)
release: py 0.6.5 (#2311)
chore: add as_of to create and update examples response (#2308)
feat: add sandbox sdk (#2303)
feat(js): refactor of Claude Agent SDK wrapper (#2306)
Handle streaming inputs in claude agent sdk (#2300)
bump js 0.4.8 (#2304)
feat(js): respect disable run compression (#2270)
feat(js): track latest generator input in claude agent sdk (#2298)
feat: add support for tracing Claude Agent SDK JS (#2271)
chore: rm rust lib (#2290)
beta wrap_gemini ts wrapper (#2121)
Bump version: 0.6.3 → 0.6.4 (#2292)
chore: Fix release check (#2289)
Fix: Add with_raw_response support to OpenAI & Anthropic wrapper (#2134)
fix(js): add defensive null checks in AsyncCaller error handler (#2285)
fix(js): remove explicit message type from `convertMessageToTracedFormat` (#2288)
bump sdk versions (#2287)
fix: simplify baggage header serialization (#2286)
chore(deps-dev): bump @langchain/core from 0.3.72 to 0.3.80 in /js (#2280)
release(python) 0.6.2 (#2277)
chore: dynamic versioning (#2278)
chore: consolidate workflow files (#2276)
chore: set config in traceable (#2275)
docs: fix some docstrings (#2269)
chore: bump sdk (#2268)
feat: Pass in Cache, rename (#2264)
feat(python sdk): Add support for setting commit tags when pushing a prompt (#2265)
ci: test more bundlers (#2263)
feat(python): Bump pydantic to v2 (#2248)
feat: add prompt cache back and setup environment tests (#2260)
release(js): bump to 0.4.4 (#2259)
Revert "feat: Replace UUID5 with deterministic UUID7 for replicas" (#2257)
Revert "feat: add js prompt caching" (#2258)
chore(js): bump JS to 0.4.3 (#2253)
bump(python): 0.5.2 (#2256)
fix(claude): correctly parse llm and tool inputs in claude agent sdk (#2255)
feat: add js prompt caching (#2251)
feat: add prompt caching to python sdk (#2246)
feat: Replace UUID5 with deterministic UUID7 for replicas (#2249)
feat(js): Add support for tracing tool loop agent (#2244)
fix(js): Remove default Jestlike timeout (#2243)
feat(js): Add support for tracing AI SDK 6 (#2237)
fix(python): pull prompt for newer langchain_core (#2239)
Fix timestamp ordering violation in `RunTree.create_child` (#2240)
fix(js): Remove unnecessary promise skip on error (#2234)
release(js): 0.4.2 (#2233)
fix(js): Avoid waiting for child runs to complete if parent throws an error (#2232)
release(js): 0.4.1 (#2231)
fix(js): Make traced async iterators call finally on success (#2230)
fix(js): Fix JS Memory Leak clean child_runs (#2228)
remove duplicate patch from claude agent sdk (#2189)
Ignore empty string (#2225)
feat(js): Add invocation param tracing for OpenAI responses wrapper in JS (#2220)
chore(py): Fix Python integration tests (#2219)
feat(openai): Add use responses API to OpenAI wrapper (#2218)
release(py): 0.5.0 (#2217)
release(js): 0.4.0 (#2216)
feat(py,js): Python 0.5, JS 0.4 (#2182)
bump(py): 0.4.60 (#2215)
fix(openai agents sdk): Merge invocation params into run extra (#2214)
feat: automatically infer attachments (#2200)
release(js): 0.3.87 (#2204)
fix(js): Use one generic param for async iterable in traceable types (#2203)
fix(py): add missing imports during TYPE_CHECKING (#2201)
release(js): 0.3.86 (#2202)
fix(js): Fix traceable typing for async iterables and runnable config (#2199)
feat(js): Wrap additional OpenAI methods in wrapOpenAI (#2198)
release(py): 0.4.59 (#2197)
release(js): 0.3.85 (#2196)
feat(py,js): Add prop to omit traced runtime info (#2195)
release(py): 0.4.58 (#2192)
release(js): 0.3.84 (#2191)
feat(py,js): Add batch example deletion method, hard delete for Python (#2190)
release(py): 0.4.57 (#2187)
release(js): 0.3.83 (#2186)
feat(js): wrapAnthropic (#2183)
Revert "fix(claude agent sdk): remove thread local storage" (#2185)
chore(python): load child runs with dotted_order mismatches (#2179)
release(py): 0.4.55 (#2177)
feat(py): Add background callback error hook (#2176)
bump(python): 0.4.54 (#2175)
fix(claude agent sdk): Correctly parent tool llm runs (#2173)
feat(py): track evaluator method (#2116)
chore(insights): add insights agent youtube notebook (#2145)
feat: Use uuid-utils (#2166)
release(py): 0.4.52 (#2171)
feat(python): add CRUD methods for feedback formulas (#2163)
release(py): 0.4.51 (#2170)
bump version (#2168)
suppport custom header in python client (#2167)
release(js): 0.3.82 (#2164)
feat(js): Adds reroot support for replicas (#2155)
release(python): 0.4.49 (#2162)
test(python): Add unit test for replica remapping (#2161)
fix(python): Add back uuid5 to replica remapping (#2160)
fix(js): Vendor p-retry to avoid import issues (#2159)
fix(js): add reporter support for Vitest 4.x (#2156)
release(py): 0.4.48 (#2158)
fix(py): Pass limit into list_runs (#2157)
chore(python): rewrite docstrings removing sphinx (#2149)
bump(python): 0.4.47 (#2153)
fix(claude agent sdk): remove thread local storage (#2152)
bump(py, js): bump versions (#2147)
chore: Remove uuid7 warnings from sdks (#2146)
Fix(python): Return wrapper for stream enter (#2143)
release(py): 0.4.45 (#2142)
fix js ci cd (#2139)
feat(python): Add bounded queue size to compressed tracing queue (#2141)
feat(python): Claude agent sdk subagent handling (#2125)
release(py): 0.4.44 (#2137)
fix(py): Add fallback for failed attachment downloads (#2136)
fix(js): Adds more retryable statuses (#2135)
release(js): 0.3.80 (#2133)
feat(js): Increase max retries (#2130)
feat(js): Adds maximum queue size (#2132)
feat(py): add metadata helper (#2115)
feat: wrap_gemini beta python (#2059)
v2 API Changes (#2103)
release(py): 0.4.42 (#2119)
fix(py): pairwise eval concurrency (#2114)
release(js): 0.3.79 (#2118)
feat(js): Trace AI SDK experimental_output similarly to generate/streamObject (#2117)
feat(py): add sdk methods for insights agent (#2087)
chore(python): bump patch version (#2110)
release(js): 0.3.78 (#2108)
fix(js): Avoid dropped runs if id: undefined is passed to traceable (#2109)
feat(js): Allow tracing steps in AI SDK wrappers, fix processOutputs type (#2106)
fix(python): reduce memory of pending traces (#2107)
release(py): 0.4.40 (#2104)
feat(py,js): Trace responses.parse properly in OpenAI wrapper (#2105)
feat(python): Fix claude tool tracing by using hooks (#2102)
release(js): 0.3.77 (#2101)
release(py): 0.4.39 (#2100)
feat(py,js): Adds ls_invocation_params to client wrappers (#2098)
release(js): 0.3.76 (#2095)
fix(js): Allow async process outputs for AI SDK generate methods (#2093)
release(js): 0.3.75 (#2089)
feat(js): traceable types for processInputs and processOutputs (#1593)
fix(python): remove ciruclar import from openai agents sdk (#2086)
fix(python): Fix CI by bumping deps (#2081)
chore: update description to reflect new marketing names (#2080)
fix(python): Correctly check distributed tracing headers (#2079)
feat: add batching to create_examples (#2047)
fix(python): Correctly flatten list-like outputs (#2075)
feat(python): Claude Agent SDK wrapper (#2073)
feat(python): OpenAI Agents Tracing Interoperability (#2070)
fix(js): Fix token tracking for OpenAI Responses API wrapper (#2072)
chore(python): Skip /info calls when using OTEL-only tracing (#2069)
chore: deprecate select child_run_ids in list_runs (#2066)
Format openai agents span outputs (#2065)
feat(js): Cache relevant env vars on client initialization for perf (#2061)
release(py): 0.4.33 (#2060)
feat(py): Dedupe examples purely by dataset_id and input/output content rather than by test name (#2050)
fix ugly rendering of 'omit' in UI due to incorrect strip (#2057)
fix(py): return session feedback with experiment results (#2049)
fix(python): Set llm OAI agent SDK spans to parent name for filtering (#2054)
release(js): 0.3.72 (#2053)
release(py): 0.4.32 (#2052)
fix(js): Copy object prototype when copying tools in AI SDK wrapper (#2051)
Non-beta parse awareness in the OpenAI wrapper (#2012)
chore(js): Remove log (#2042)
fix(js): Make JS client respect max ops size limit (#2041)
fix: docstring of get_expeirment_results (#2038)
fix(py): Inherit project name from parent for OpenAI agent wrapper (#2037)
Clear children after runtree posts (#2033)
version bump after new method 0.4.29 (#2031)
feat(py): new get_experiment_results() endpoint (#2021)
release(js): 0.3.69 (#2028)
fix(js): Fix output processing for AI SDK streamText (#2027)
fix: Store ended span to reserve parent span context (#2020)
fix(py): include missing attributes in traces (extra, error, serialized) (#2017)
feat(js): Backport new wrapper support to AI SDK 4 (#2015)
Don't compress patches when manually configuring api_key (#2013)
Set global configuration (#2002)
feat(python): Otel developer improvements (#2001)
feat: support pushing structured prompts back as they're pulled (#1953)
python[chore]: test py3.13 (#2004)
fix(js): Fix retries for empty bodies (#2003)
release(py): 0.4.25 (#2000)
fix: storage of already ended spans causes memory growth (#1998)
fix(python): Set project name on run update for oai agent sdk (#1999)
feat: add metadata into dataset pydantic schema (#1943)
release(js): 0.3.67 (#1997)
feat(js,py): Add OpenAI service tier to input and output token details (#1967)
chore(js): Deprecate very old AI SDK OTEL tracing (#1995)
update SDK readme for org-scoped API keys (#1994)
release(py): 0.4.23 (#1993)
fix(python): Correctly recognize attachment with stringified annotations (#1990)
release(py): 0.4.22 (#1992)
feat(py,js): Add include stats param to listProjects (#1991)
fix(js): Allow passing partial args to distributed tracing run tree (#1989)
release(py): 0.4.21 (#1986)
feat(py): Allow overriding max batch size parameter on client, fix for disabled run compression (#1985)
fix: memory leak risk from otel exporter persistance (#1979)
ci(py): Add format job to Python CI (#1983)
release(js): 0.3.66 (#1982)
fix(js): Only take metadata into account when updating in example if provided for Vitest runner (#1981)
fix(js): Remove validation of usage metadata params (#1980)
feat(py,js): Adds split parameter to test runners, metadata to Jestlike (#1977)
fix(js): Fix wrapOpenAI finish_reason tracing (#1976)
release(js): 0.3.65 (#1974)
release(py): 0.4.20 (#1975)
feat(js): Add current repetition property to jestlike test wrapper (#1856)
feat(js): Allow manually specifying ids for examples in Jestlike runners (#1972)
feat(py): Fix list_projects typing, add dataset_version param (#1973)
Pass multiple run ids to listFeedbacks correctly (#1465)
feat(js): add datasetVersion parameter to listProjects (#1391)
feat(py): Add support system qwen to OTEL attributes (#1717)
fix(js): specify "Content-Type" for getRunStats to avoid parsing errors (#1598)
fix(python): Avoid resetting operation.name to "chain" during update_run (#1861)
feat(pythong): allow nested openai agent tracing (#1971)
feat: update SDK for org-scoped keys (#1920)
fix(python): Alleviate memory pressue from zstd flush (#1966)
fix(py): Disable API key warnings if tracing is disabled (#1965)
release(js): 0.3.64 (#1964)
release(py): 0.4.18 (#1963)
fix(js): Fix multipart tracing for Bun (#1960)
fix(py,js): Trace AzureOpenAI clients with proper provider for playground (#1961)
fix: move otel check to client init time to avoid timing issue (#1958)
fix(js): Allow null to be passed as a first arg to traceable (#1959)
fix(python): Correctly set multipart operatios in replica mode (#1956)
release(js): 0.3.63 (#1955)
fix(js): Turn down default max batch size (#1954)
fix(js): Fix retry issues (#1947)
fix(py): adjust traceable reduce_fn type to allow returning str (#1950)
feat(py): Adds process_buffered_run_ops method to Python SDK (#1932)
feat(js): Compress multipart batches before sending, avoid sending inputs in patch if not necessary (#1945)
feat(js): Allow passing runtime LangSmith config to AI SDK wrapper (#1944)
fix(js): Fix typing for AI SDK stream methods (#1941)
fix(js): Avoid double wrapping AI SDK tool functions if already wrapped (#1942)
feat(python): Pass api config through background thread (#1940)
chore(py): correct references to `langchain-core` and hyperlink (#1936)
feat(js): Trace AI SDK request/response fields in LLM response (#1939)
feat(js): Improve tracing for multimodal AI SDK runs (#1938)
fix(js): Copy tool def instead of mutating (#1937)
fix(js): Only inherit specific properties for child runs in AI SDK wrapper (#1931)
feat(js): Adds time to first token for new AI SDK wrapper (#1930)
fix(py): Pass 'project_name' to _get_parent_run method (#1927)
feat(js): Allow async processOutputs methods for traceables (#1928)
fix(py): attachments url construction (#1929)
feat(js): Non-OTEL version of AI SDK tracing (#1926)
chore(python): fix tests (#1925)
perf(python, js): Pop all allowed oob keys (#1923)
chore(python): Cleanup replica setting (#1921)
fix(js): Allow direct wrapping of Jest/vitest methods, fix module resolution (#1919)
release(js): 0.3.55 (#1915)
feat(js): Allow use of new AI SDK processor with old exporter (#1914)
fix(js): Use start time from dotted order as canonical for legacy AI SDK exporter (#1912)
chore: Replace ts-expect-error directives with casts (#1913)
release(js): 0.3.53 (#1910)
fix(js): Revert "feat(js): Adds dotted order to traced OTEL spans (#1876)" (#1909)
fix(js): Revert legacy AI SDK dotted order changes (#1907)
fix(python): legacy replicas conversion (#1908)
Fix OpenAI Agents SDK wrapper token count extraction (#1906)
chore(python): Remove langsmith dotted order attribute from otel integration (#1904)
fix(js): Ensure dotted order and start time is always greater than parent start time for legacy AI SDK exporter (#1903)
feat(py): add Run.latency (#1745)
fix(ci): Allow 429s for markdown link checks in CI (#1895)
feat(python, js): Support tracing to multiple orgs/workspaces (#1899)
Adopt pagination to list_shared_examples to ensure all data returned (#1893)
chore: Run ruff (#1894)
release(py): 0.4.10 (#1896)
fix(py): Remove monkeypatching and ensure env var cache is cleared (#1891)
feat(py): Adds new cached_hosts parameter to vcrpy caching (#1878)
Remove black dependency and update lock file (#1892)
fix(py): Reset env causing unit test flake (#1890)
fix(py): Missed test causing flakes (#1889)
fix(py): Make replica tests properly restore env vars to reduce flakiness (#1888)
fix(python): Remove upper bound for OpenAI agents (#1883)
chore(py): Format lockfile (#1887)
chore: Convert dev workflow to uv (#1885)
feat(py): return feedback notes in get_test_results (#1873)
feat(python): Add distributed tracing with sliced traces for child projects (#1884)
feat(python): Add replica endpoints support to Python SDK (#1877)
patch(python, js): Fix sampling logic for patch runs (#1881)
fix(js): Respect Anthropic 1h caching usage for AI SDK 5 (#1879)
chore(python): deflake ci (#1872)
feat(js): Adds dotted order to traced OTEL spans (#1876)
feat(js): Respect LANGSMITH_OTEL_ENABLED env var, allow skipping global context manager setup, skip non-traceable spans by default (#1870)
release(js): 0.3.48 (#1868)
fix (js): include env var metadata in patch (#1867)
feat: Configure (#1859)
feat(js): Update AI SDK tracing for v5 (#1863)
fix(python): Fix update_examples improperly overriding inputs/outputs for multipart endpoint (#1860)
Safer module check (#1857)
fix(js): Fallback to parent run id if parent run is not present in run trees loaded from LangChain (#1854)
fix(js): Make readDataset throw if empty string is passed (#1853)
feat(python): Add repetitions support to pytest, rename in JS (#1852)
fix(js): Respect project names set at runtime for OTEL exported traces (#1850)
fix(js): Propagate microseconds added in dotted order conversion to run tree start time (#1849)
feat(js): Support feedback attribution for OTEL evaluations (#1847)
fix(js): Fix replica updates (#1848)
If stream fails, fallback to buffered body request (#1845)
feat(python): Populate example metadata in pytest, prefix experiment runs with ls_example (#1840)
release(js): 0.3.42 (#1842)
Add runs endpoints env to replicas (#1830)
fix(js): Add endpoint shim to example upload (#1839)
release(js): 0.3.41 (#1837)
[open-swe] fix: improve serialization of Maps and complex objects in traces (#1835)
feat(js): Add reference_example_id attribute to OTEL runs (#1836)
feat(js): Make traced AI SDK runs respect provider metadata (#1826)
fix(js): Fix AI SDK token counting issues for legacy exporter (#1825)
release(js): 0.3.38 (#1824)
fix(js): Fix types and add responses and completions.parse support for wrapOpenAI (#1823)
fix(js): Use context placeholder to preserve LangChain context variables even if tracing is disabled (#1822)
feat(js): Add transform span method to exporter, allow setting run name (#1821)
Reduce zstd compression level to 1 (#1820)
feat(js): Export passed AI SDK metadata as LangSmith metadata (#1819)
feat(js): Add OTEL support (#1814)
Add replicas to baggage header (#1817)
fix(py): loosen pydantic dep (#1816)
feat(js): Allow suppressing circular JSON warnings (#1815)
feat(py): add evaluate(..., error_handling="ignore") (#1774)
chore(deps): bump protobuf from 5.29.4 to 5.29.5 in /python (#1807)
feat[python]: Enable OpenTelemetry trace context propagation (#1805)
feat[python]: Trace to multiple projects with distributed tracing (#1804)
patch[python]: Only set replica updates on patch (#1798)
add util for getting project name from env var (#1801)
release(js): 0.3.32 (#1797)
feat(js): Add replica support for JS (#1796)
fix(js): Avoid overwriting runtime if already set (#1795)
fix(js): Pass events through on run create (#1794)
Store only the first new_token event (#1779)
chore: auto-label issues with 'sdk' label (#1791)
Cache request settings for Client (#1787)
fix(js): Fix JSDom check for Node 22 (#1784)
Handle missing attachment files gracefully (#1782)
Fix race for cached client initialization (#1778)
Fix some issues w running codex in this repo (#1777)
Add agent instructions for Python SDK (#1776)
fix: hybrid mode has subtle shut down race conditoin (#1775)
feat: OTEL_ENABLED mode sends to both otel and ls, while allowing otel only through OTEL_ONLY var (#1762)
feat[python]: enable tracing to multiple projects (#1770)
fix(py): Fix URL construction in attachment downloading (#1759)
release(js): 0.3.30 (#1766)
release(py): 0.3.44 (#1765)
feat(python,js): Add run tree method for setting usage (#1746)
feat(py): create_feedback with trace_id only (#1753)
fix(py): Trace evaluate args more nicely (#1701)
Remove default for fetching child_run_ids from the SDK (#1730)
feat(js): Allow direct getting and setting of metadata on run trees (#1747)
fix(js): fix JS int tests (#1734)
chore(py): update py + poetry setup in CI (#1743)
release(js): 0.3.29 (#1739)
feat(js): Log additional context around serialization errors (#1737)
fix(js): Narrow overly broad traceable type (#1738)
fix(js): Use streaming body in fetch in _sendMultipartRequest (#1728)
fix(js): avoid throwing in hot path when caller ignores exception (#1733)
fix(js): invalid type of wrapOpenAI when non-stream create is invoked (#1732)
fix(js): Upgrade vite devdep (#1729)
fix(js): Store dotted order for runs separately in case OTEL export happens in multiple batches (#1709)
feat(js) Add function to get Group Runs (#1675)
fix(frontend): Adds retry for tracing info call (#1724)
fix(py): lock h11>0.16 (#1721)
fix(js): Make feedback for evaluator traces using evaluatedBy for jestlike runs apply to root runs (#1718)
feat: allow syncing indexed dataset (#1714)
release(js): 0.3.25 (#1713)
fix(js): Trace AI SDK OTEL exported images as base64 (#1712)
Hide metadata in update_run (#1711)
Add RunTree.set() support (#1710)
fix(js): Fix AI SDK tracing when nested in AI SDK tool calls (#1708)
Add hide_metadata support (#1704)
feat: support rubric_instructions for annotation queues in the SDK (#1705)
feat(py): Adds python-dotenv as a dev dep for convenient testing (#1702)
feat(js): Adds support for @opentelemetry/sdk-trace-node@2 along with backcompat shim (#1703)
fix(js): Reduce JS integration test concurrency (#1698)
fix[python]: Correct client reference counting in compression thread (#1700)
feat[python]: OTel context propagation (#1693)
release v0.3.36 (#1696)
packaging: remove Python upper bound (#1691)
feat(py): support metadata in target func (#1694)
chore[python]: Add additional debug logging to background threads (#1689)
fix(py): try/except writing to multiple endpoints (#1684)
feat(js): Allow .concurrent, throw error when nesting describe blocks in Jestlike runners (#1688)
lint: upgrade to Python 3.9+ syntax (#1679)
chore[python]: Set dotted order for openai agents sdk integration (#1676)
chore(py): fix integration test (#1677)
feat(js): Allow async functions in client hideInputs and hideOutputs (#1674)
feat(js): Adds JS debug mode that logs output request URLs and responses (#1673)
Make __version__ a constant (#1669)
feat(py,js): Allow logging feedback from nested traceables within pytest and jestlike tests (#1668)
fix(js): include project/session name in distributed tracing (#1667)
Revert "docs[fix]: `-e` install `langsmith` so api refs are available (no longer using rtd) (#1665)
docs[fix]: `-e` install `langsmith` so api refs are available (#1663)
docs: fix docs links in `python/README.md` and `README.md` (#1662)
docs: enforce newlines when signature exceeds char threshold (#1661)
patch[python, js]: Update runs with project name (#1659)
fix(js): Raise proper error if multipart upload fails (#1651)
patch[python]: Use multipart EP for feedback creation (#1655)
chore: bump python sdk to 0.3.29 (#1654)
add fallbacks for create/update examples (#1653)
fix(js): Adds warning log when trying to run Jestlike runner in JSDom env (#1644)
fix(py,js): clarify deployment err (#1652)
patch[python]: Don't shut down compression thread if drain fails (#1650)
fix openai tool call chunk accumulation (#1648)
patch(python): Don't throw warning for missing API key in otel mode (#1647)
patch[python]: Add debug logging for batch requests to LangSmith (#1635)
Pull prompt in async client. (#1642)
patch[python]: Don't set metadata values if the value is None (#1641)
fix(py): drop traceable serialized data (#1634)
Add group id thread tracing for OpenAI Agents SDK (#1584)
patch[python]: Accept langsmith_extras for OpenAI Agents tracing (#1627)
fix(py): Always upload multipart inputs and outputs parts even if falsey (#1623)
Cache retry config (#1622)
release(py): 0.3.20 (#1621)
fix(py): serialize langchain objects in testing.log_outputs, fix rich display table [LS-3237] (#1609)
fix(python): Properly respect max_concurrency for aevaluate (#1613)
Simplify traceback (#1611)
chore(py): fix vcr test issue (#1610)
release(py): 0.3.19 (#1607)
fix(py): loosen openai-agents extra (#1606)
feat(vercel): add support for list of tools of ai sdk (#1604)
chore(js): update dev deps (#1602)
fix(py): delete examples [LS-3226] (#1597)
patch[python]: bump version 0.3.18 (#1595)
Fix setting otel tracing provider (#1594)
Create OTel Exporter for LangChain tracing (#1568)
Unset parent_run in run_tree (#1591)
docs: wrap_openai nit (#1590)
release(py): 0.3.16 (#1589)
ci: Use a git script instead of changed-files (#1587)
fix(py): openai agents docstring (#1581)
feat(py): OpenAI Responses API support (#1571)
fix(py): openai agents tracing nits (#1577)
fix(py): openai agents tracing nits (#1576)
Support Tracing OpenAI Agents SDK (#1572)
docs(python): Update get_test_results docstring (#1575)
fix(python): Avoid sampling non-root child runs that were previously filtered (#1574)
fix(js): Avoid sampling non-root child runs that were previously filtered (#1573)
Don't nest pydantic (#1564)
release(js): 0.3.13 (#1561)
chore(py): reduce list run test flake (#1559)
fix(py): robustify url construction (#1558)
version bump 0.3.13 (#1557)
fix, add slash to urls (#1556)
add wrap_anthropic (#1464)
patch[python]: Release 0.3.12 (#1554)
Fix 'unexpected keyword argument "config"' error in traceable decorator (#1553)
fix, don't append v1 if it is already in the api url (#1552)
fix(python,js): Round feedback scores with more than 4 decimal places (#1548)
chore(py): add integration test caching (#1547)
release(js): 0.3.12 (#1546)
fix: use go backend instead of python backend for example functions (#1488)
Fix evaluator errors (#1538)
chore(py): fix integration tests (#1543)
trace sync evaluators correctly with aevaluate (#1541)
chore: upgrade ubuntu 20.04->22.04 for deprecation (#1513)
feat(py): suppoer traceable(process_chunk=) (#1537)
feat(js): Allow evaluators to return arrays of results (#1536)
fix(py): integration tests patch (#1535)
refactor(py): add multipart to create/update_examples (#1477)
fix(py): specify 'packaging' dependency (#1533)
support **kwargs in evaluators (#1532)
bump version (#1528)
allow keyword args for evaluators (#1525)
fix(js): Fix evaluator config override (#1515)
feat(js): Allow jestlike evaluators to return arrays of feedback, minor refactoring (#1514)
fix(js): Add new tok event (#1512)
Debug log the serialization issues (#1495)
release(py): 0.3.7 (#1500)
fix(py): Fix output_keys (#1498)
fix(py): Fix unit test (#1497)
fix(js): Bump Vitest devdep (#1496)
docs: ✏️ Fix typo in `client` function `list_examples` (#1457)
fix(js): Fix git tagging for Vitest (#1494)
feat(js): Allow overriding test suite name for Jest test suites, automatically set environment on project metadata (#1492)
patch[python]: Release 0.3.6 (#1491)
feat(py): Increase concurrency for pytest evals, fix output rendering nits (#1489)
patch(js): utf-8 encode multipart parts (#1487)
python[patch]: Release 0.3.5 (#1486)
fix(py): fix dataset created_at (#1485)
release(py): 0.3.4 (#1483)
fix(py): Rename CLI arg for pytest plugin from --output to --langsmith-output to avoid conflict (#1482)
fix(py): Tag pytest experiments (#1481)
fix(js): Fix multiple datasets in same test file for Vitest, improve reporter output (#1475)
fix(js): Evals link should use user-defined endpoint (#1476)
python[patch]: Release 0.3.3 (#1474)
python[patch]: fix example link [LS-2764] (#1473)
feat(github): Allow release from non-main branches (#1471)
docs: update readme env vars (#1468)
python[patch]: Release 0.3.2 (#1466)
python[patch]: remove experiment end time (#1463)
fix(js): Handle undefined values in object equality checks (#1460)
Compress create feedback (#1452)
infra: fix py integration test (#1445)
infra: fix release workflow tagging (#1455)
python[patch]: Fix some typos in comments in `langsmith/client.py` (#1447)
python[patch]: fix pytest integration example syncing (#1450)
python[patch]: add ls_runner metadata (#1449)
docs: Update preferred env vars in READMEs and CI (#1444)
python[patch]: set pyproject.toml project.version (#1446)
python[minor]: Release 0.3.0 (#1439)
fix(js): Separate Jest suites into separate tables when reporting (#1443)
fix(js): Narrow evaluator types, fix example id generation (#1438)
chore: remove docker-compose from cli (#1437)
python[patch]: Add annotation queue async methods (#1396)
feat(js): Vitest/Jest evals (#1343)
Support parent=false to prune trees (#1429)
typo in benchmarking script (#1427)
fix(js): Fix reflection in JS API refs (#1426)
Remove async and non-streaming blocking clients. (#1419)
Switch PyO3 to streaming zstd-compressed multipart Rust client. (#1414)
feat(js): Add API refs build (#1423)
Re-vendor pyo3 at the v0.23.4 commit (#1421)
Implement streaming multipart zstd compression. (#1413)
Serialize pydantic and other tricky objects correctly from Rust. (#1392)
surface mime type when passing attachments to user (#1409)
add mime type to attachment info (#1341)
python[patch]: update OpenAI prompt test (#1407)
Make `pydantic` model serialization consistent regardless of surrogates. (#1405)
make LANGSMITH_PROJECT work (#1404)
Include user info in read feedback (#1386)
fix(python): Fix flaky openai parse tests (#1400)
Add safer accessors to delta objects (#1385)
docs: update api ref deps (#1393)
release(js): 0.2.15 (#1382)
fix(vercel): nested runs being unflattened, incorrect inheritance behavior of user runId / traceable (#1383)
infra: fix py release inputs (#1389)
Delete examples bulk (#1279)
infra: allow non-main py release (#1388)
feat(js): Add method to delete a run from an annotation queue (#1376)
feat(js): Add method to get size of annotation queue (#1377)
chore: Version bump (#1374)
feat: Instrument wrapper for OpenAI structured outputs (#1373)
python[patch]: Release 0.2.9 (#1372)
python[patch]: handle deployments without attachments support (#1371)
chore: Version bump (#1370)
feat: Report pre and post compressed content length to API (#1359)
python[patch]: write to same experiment pytest-xdist (#1367)
python[patch]: fix traceable arg inference (#1361)
feat: Make size_limit (max run count per batch) globally configurable via env var (#1358)
chore: Version bump (#1364)
fix: Reset buffer after sending to server (#1363)
fix: Flush zstd and correctly get buffer size (#1353)
fix: Separate rust and compressed ingestion paths (#1355)
chore: bump to 0.2.6 (#1352)
feat(js): Adds manual flush mode (#1351)
docs: update ref for list_examples (#1346)
chore: Version bump (#1349)
perf: [LS-2561] Stream compress multipart runs (#1316)
chore: version bump (#1344)
python[patch]: evaluate accept list target (#1342)
only pop graph if 'serialized' is not none (#1336)
fix time for runs in convert_runs_test (#1338)
chore: release langsmith-pyo3 version 0.1.0rc5 (#1335)
Drain the Rust client when its last copy in Python is dropped. (#1334)
Merge `Update` operations into `Create` operations in the same batch. (#1333)
Ensure pre-formatted JSON data doesn't contain trailing null bytes. (#1332)
Improve the error message for tag and version mismatch error case. (#1308)
chore: release python 0.2.3, js 0.2.13 (#1326)
fix: allow passing object instead of tuples in JS since tuples are not nice in JS (#1328)
evaluate small fix (#1327)
remove attachment prefix (#1324)
chore: release JS SDK 0.2.12 (#1323)
feat(js): upload and update examples multipart in JS (#1216)
fix: multiple evaluators don't consume the reader (#1322)
[python] support uploading examples with attachments and running evals on examples with attachments (#1209)
chore: release langsmith-pyo3 version 0.1.0rc4 (#1315)
Add Rust implementation for Python client's `update_run()` method. (#1314)
Release langsmith-pyo3 version 0.1.0rc3. (#1309)
Fix formatting in Rust tracing client. (#1296)
release py=0.2.1, js=0.2.11 (#1302)
Rm hub pull check (#1298)
fix(ci): Fix CI semver check (#1297)
chore: bump version to 0.2.10 to increase server info request timeout (#1295)
Upgrade `thiserror` from v1 to v2. (#1287)
chore: increase server info request timeout (#1294)
python[minor], js[patch]: release py0.2.0, js0.2.9 (#1247)
Clone dataset schema (#1278)
Add placeholder workflow for testing `langsmith_nodejs` Rust code. (#1291)
Run tests and lint for Rust code in CI. (#1289)
Drop outdated/vulnerable dependencies by using a newer multipart library (#1288)
langsmith no longer supports Python 3.8, so neither should our PyO3 code (#1285)
Remove `sonic_rs` and switch to `serde_json`. (#1286)
Support serializing Python UUID objects and set up test suite for PyO3 (#1284)
js[patch]: evaluate() support comparison (#1281)
js[patch]: fix evaluateComparative (#1283)
update python api ref (#1251)
js[patch]: simple evaluator args (#1264)
infra: fix int ci 2 (#1275)
infra: fix int ci (#1274)
infra: run integration tests when relevant files edited (#1271)
python[patch]: client.evaluate, client.aevaluate (#1268)
python[patch]: one evaluate fn (#1269)
infra: drop py3.8 CI (#1188)
feat(js): Expose light interface for tracing client (#1266)
chore: bump version to 0.1.147 (#1265)
Add a `langsmith_pyo3` extra to the LangSmith SDK. (#1263)
Python wheels don't distinguish between macOS versions. (#1262)
Make langsmith-pyo3 v0.1.0rc2 release. (#1260)
Ensure the wheel-building workflow runs if it's changed. (#1259)
Remove links in vendored code that point outside the sdist source code. (#1256)
Build 3.13 wheels for all platforms except Windows. (#1261)
Rename the macos artifacts to include the macOS version names. (#1258)
Add Python 3.13 to matrix for building langsmith-pyo3 wheels. (#1257)
Add `macos-15` runner to the PyO3 wheel build matrix. (#1255)
Release candidate `langsmith-pyo3` Python package (#1254)
Exclude the `vendor` directory from link-check.
Fix broken link.
Reformat benchmarking files.
Delint benchmark files.
Hold off on using `Option` method that will become stable in 2 days :)
Back out Python package changes for now.
Add safeguard for publishing versions that match the tag.
Enable publishing PyO3 package under `langsmith-pyo3==<version>` tags.
Mark `langsmith-pyo3` as a release candidate.
Arc the shared Rust client config, to avoid copying it across threads.
Intern all Python dict key strings in the Rust bindings. Clean up errors.
Standardize benchmark JSON shape and size.
Add auth capability to the blocking client, and an end-to-end benchmark.
Merge branch 'main' into pg/full-pyo3-package
Use string literals for logger template messages.
Only send batch traces to Rust code if batch-specific keys are set.
Add lang…
langtions-bot Bot
pushed a commit
that referenced
this pull request
Jun 16, 2026
## Description
Adds a user-facing `skip_trace_upgrade` option to feedback creation so
callers can create feedback without extending the associated trace’s
retention tier.
- By default, feedback creation keeps the existing behavior: it may
upgrade the trace to long-lived retention when trace tiers are enabled
and the feedback has enough trace metadata.
- When `skip_trace_upgrade=true`, the backend skips the long-lived
usage-limit check and does not call the trace-tier upgrade path for that
feedback.
- The flag is accepted on normal feedback creation and feedback-token
creation. It is treated as request-level control metadata, not persisted
as part of the feedback payload.
- For queued Python feedback ingestion, the flag is carried internally
until the queued feedback is processed, then stripped before
persistence.
**_Note:_**
There is an issue in:
for feedback, trace_id, session_id, start_time, _, delete in inserts
The safer version avoids splitting the tuple at all:
for insert in inserts:
insert.payload["id"]
Now it doesn’t matter if FeedbackInsert has 6 fields, 7 fields, or 8
fields.
These logs show that feedback creation only upgrades trace retention
when skip_trace_upgrade is omitted or False, while explicitly setting
skip_trace_upgrade=True leaves the trace in the short-lived retention
tier.
<img width="1110" height="258" alt="Screenshot 2026-06-16 at 11 07
38 AM"
src="https://github.com/user-attachments/assets/d942bd84-1e90-4a35-9429-d66a25123c45"
/>
References
[LSE-2441](https://linear.app/langchain/issue/LSE-2441/add-api-control-for-feedback-trace-retention-backend)
follow up:
Update the Python and JS SDK create_feedback helpers to expose this as
skip_trace_upgrade / skipTraceUpgrade once the backend API support
lands.
## Self-Hosted Release Note
none
## Test Plan
- [X] Ran Ruff formatting on touched backend files.
- [X] Ran targeted unit tests:
feat(run-rules): per-action trace-retention control for automations [LSO-2749] (#27304)
feat(sandboxes)!: add ArtifactFS git mounts (#27442)
feat: expose the resources from the generated openapi client in the langsmith client (#3018)
chore: js to 0.7.8 and py to 0.8.16 (#3029)
chore: sync langsmith_api (#3020)
fix(python): derive create_child run id from start_time [LSDK-220] (#3027)
chore: repoint support@langchain.dev mentions to the Support Portal (#3024)
fix(experiments): extract keys from wrapped evaluator function (#3014)
feat(py): add sync/async conversion for Sandbox and SandboxClient (#3019)
chore: bump JS to 0.7.7 and Python to 0.8.15 (#3025)
fix(python): deliver sandbox output callbacks across stream reconnects (#3023)
fix(js): deliver sandbox output callbacks across stream reconnects (#3022)
chore: protect JS openapi client in workflow (#3017)
chore: sync langsmith_api (#3006)
chore(js): exclude generated _openapi_client from linters and type-checker (#3015)
chore(py): bump Python SDK to 0.8.14 (#3013)
feat: add deepagent compatibility smoke tests to Python and JS CI [LSDK-214] (#2997)
chore(py): bump Python SDK to 0.8.13 (#3012)
fix(py): type sandbox startup errors (#3004)
chore: bump JS to 0.7.6 and Python to 0.8.12 (#3011)
fix: avoid duplicate /v1 in hub URLs when endpoint includes /api/v1 (#3008)
feat(js): cross-process OAuth refresh filesystem lock (#2989)
feat(python): cross-process OAuth refresh filesystem lock (#2988)
fix: gemini double counting of over 200k tokens (#3003)
ci: protect _openapi_client from unauthorized changes (#2999)
fix: match async feedback client to sync behavior [LSEN-206] (#3001)
release(py): 0.8.10 (#3000)
chore(deps-dev): bump @jest/globals from 29.7.0 to 30.3.0 in /js (#2807)
chore(deps): bump aiohttp from 3.13.5 to 3.14.0 in /python (#2983)
chore(deps): bump gaurav-nelson/github-action-markdown-link-check from 499c1e7f3637c131334fa8e937c45144f79d72d2 to 5c5dfc0ac2e225883c0e5f03a85311ec2830d368 (#2969)
chore(deps): bump the py-major group across 1 directory with 4 updates (#2996)
chore(deps): bump the py-minor-and-patch group across 1 directory with 12 updates (#2998)
chore(deps-dev): bump types-requests from 2.33.0.20260408 to 2.33.0.20260518 in /python (#2973)
chore(deps): bump starlette from 0.52.1 to 1.0.1 in /python (#2984)
chore(deps-dev): bump types-psutil from 7.2.2.20260408 to 7.2.2.20260518 in /python (#2974)
chore(deps): bump pnpm/action-setup from ac6db6d3c1f721f886538a378a2d73e85697340a to 0e279bb959325dab635dd2c09392533439d90093 (#2970)
chore(deps): bump astral-sh/setup-uv from 94527f2e458b27549849d47d273a16bec83a01e9 to 37802adc94f370d6bfd71619e3f0bf239e1f3b78 (#2968)
feat(evaluation): adding examples and repetitions to create tracer sessions calls (#2954)
Add AWS auth proxy helpers to JS SDK (#2992)
Add AWS auth proxy helpers to Python SDK (#2991)
chore: sync langsmith_api (#2994)
fix(lint): exclude _openapi_client from mypy (#2995)
chore: sync langsmith_api (#2911)
fix(lint): exclude _openapi_client from ruff (#2993)
feat: support JS prompt commit tags (#2987)
feat(python): expose LS_MESSAGE_VIEW_EXCLUDE constant [lso-2605] (#2982)
feat(js): exposed pairwise comparison URL on ComparativeExperimentResults [LSE-2374] (#2981)
feat(python): expose pairwise comparison URL on ComparativeExperimentResults [LSE-2270] (#2975)
feat(python): support trace_id and retry-on-NotFound in async create_… (#2963)
feat(sandbox): size the dockerfile-build sandbox via vCpus/memBytes (js) (#2980)
feat(sandbox): size the dockerfile-build sandbox via vcpus/mem_bytes (python) (#2979)
test(python): deflake test_tracing_queue_limit_drops_when_full (#2964)
chore: update dependabot.yml to comply with posture checks (#2966)
ci: add minimum workflow permissions (#2967)
chore(deps-dev): bump types-tqdm from 4.67.3.20260408 to 4.67.3.20260518 in /python (#2959)
chore(deps-dev): bump the py-minor-and-patch group in /python with 6 updates (#2958)
chore(deps-dev): bump wrapt from 1.17.3 to 2.2.1 in /python (#2961)
chore(deps-dev): bump google-adk from 1.10.0 to 2.1.0 in /python (#2960)
chore(deps-dev): bump typescript from 5.9.3 to 6.0.3 in /js (#2839)
chore(deps): bump the py-minor-and-patch group across 1 directory with 19 updates (#2934)
chore(deps): update myst-parser requirement from >=3 to >=4.0.1 in /python (#2841)
chore(deps): bump websockets from 15.0.1 to 16.0 in /python (#2811)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 11 updates (#2931)
feat(sandbox): add JS Dockerfile snapshots (#2951)
fix(sandbox): build Dockerfile snapshots off /tmp (#2956)
fix(python): retry sandbox pool timeouts (#2953)
release(py): 0.8.7 (#2947)
fix(js): add organization id to context URLs (#2946)
fix(python): add organization id to context URLs (#2945)
feat(sandbox): build snapshots from Dockerfiles (#2950)
fix: reconnect sandbox command streams on EOF (#2941)
release(py): 0.8.6 (#2944)
fix(python): [LSDK-202] return context hub URLs for pushed contexts (#2938)
release(js): 0.7.3 (#2943)
fix(python): RunTree.create_child appends to self.child_runs LSE-2221 (#2942)
fix(js): [LSDK-202] return context hub URLs for pushed contexts (#2939)
fix(python): retry sandbox connect timeouts (#2940)
chore: exclude langsmith_api from ruff linter (#2933)
chore(deps): update pydata-sphinx-theme requirement from >=0.15 to >=0.18.0 in /python (#2928)
chore(deps-dev): bump types-pyyaml from 6.0.12.20250915 to 6.0.12.20260518 in /python (#2927)
chore(deps-dev): bump @anthropic-ai/sdk from 0.95.1 to 0.95.2 in /js (#2917)
feat: add list_runs_from_annotation_queue method [closes LSDK-193] (#2892)
release(js): 0.7.2 (#2922)
feat: install websockets by default for sandbox (#2916)
AI SDK telemetry and AI SDK v7 support (#2901)
chore(deps-dev): bump @anthropic-ai/sdk from 0.95.0 to 0.95.1 in /js (#2912)
chore(deps): bump idna from 3.11 to 3.15 in /python (#2913)
chore(deps): bump protobufjs from 7.5.5 to 8.0.1 in /js (#2896)
chore(deps): bump hono from 4.12.18 to 4.12.19 in /js (#2909)
chore(deps): bump @protobufjs/utf8 from 1.1.0 to 1.1.1 in /js/internal/environment_tests/test-exports-vite in the npm_and_yarn group across 1 directory (#2908)
chore(deps): bump postcss from 8.5.8 to 8.5.14 in /js (#2898)
chore(deps-dev): bump @anthropic-ai/sdk from 0.94.0 to 0.95.0 in /js (#2881)
chore(deps): bump fast-uri from 3.1.0 to 3.1.2 in /js (#2895)
chore(deps): bump hono from 4.12.15 to 4.12.18 in /js (#2894)
chore(deps): bump authlib from 1.6.11 to 1.6.12 in /python (#2888)
chore(deps): bump mako from 1.3.11 to 1.3.12 in /python (#2880)
chore(deps-dev): bump @google/genai from 1.50.1 to 2.0.1 in /js (#2875)
release(py): 0.8.5 (#2903)
release(js): 0.7.1 (#2902)
feat(sandbox): forward client default headers on exec WebSocket (#2899)
feat(python): add Client.close() to release session [closes LSDK-183] (#2866)
feat(js): allow disabling multipart streaming via env variable (#2900)
fix(js): add alias for `experimental/sandbox` to appease broad peer dep range within `deepagents` (#2893)
release(js): 0.7.0 (#2890)
release(py): 0.8.4 (#2889)
feat(sandbox): make snapshot optional and add TS options overload (#2887)
sdk(py): drop sandbox alpha/experimental warnings (#2884)
sdk(js): rename experimental/sandbox -> sandbox (breaking) (#2885)
chore(deps-dev): bump @anthropic-ai/sdk from 0.93.0 to 0.94.0 in /js (#2878)
chore(deps): bump the npm_and_yarn group across 2 directories with 2 updates (#2868)
chore(deps): bump the py-minor-and-patch group across 1 directory with 11 updates (#2879)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 16 updates (#2877)
chore(deps): bump the py-minor-and-patch group across 1 directory with 12 updates (#2876)
chore(deps): bump urllib3 from 2.6.3 to 2.7.0 in /python (#2873)
chore(deps-dev): bump @anthropic-ai/sdk from 0.92.0 to 0.93.0 in /js (#2869)
chore(deps-dev): bump langchain-core from 1.3.2 to 1.3.3 in /python (#2867)
chore(deps): bump hono from 4.12.15 to 4.12.18 in /js (#2860)
chore(deps): bump postcss from 8.5.8 to 8.5.14 in /js (#2857)
chore(deps-dev): bump @anthropic-ai/sdk from 0.91.1 to 0.92.0 in /js (#2858)
chore(deps): bump python-multipart from 0.0.26 to 0.0.27 in /python (#2859)
release(js): 0.6.3 (#2864)
release(py): 0.8.3 (#2863)
docs(langsmith): clarify trust boundaries when working with hub (#2861)
Fix push_agent URL owner for name-only identifiers (#2862)
sdk(js): replace ttlSeconds with idleTtlSeconds + deleteAfterStopSeconds (#2854)
sdk(py): replace ttl_seconds with idle_ttl_seconds + delete_after_stop_seconds (#2853)
release(js): bump to 0.6.2 (#2856)
fix(js): prevent sending [object Object] as span attribute when dealing with nested objects, send full langsmith.usage_metadata if present (#2845)
Bump Python SDK version to 0.8.2 (#2855)
fix: parse urllib3 version with packaging.Version (#2851)
Bump JS SDK version to 0.6.1 (#2847)
Bump Python SDK version to 0.8.1 (#2848)
Extract JS profile auth service (#2846)
Add Python profile loading (#2835)
Add JS profile loading (#2834)
chore(deps): bump postcss from 8.5.8 to 8.5.12 in /js (#2827)
chore(deps-dev): bump google-adk from 1.10.0 to 1.28.1 in /python (#2823)
chore(js): remove experimental opencode integration (#2836)
release(py): 0.8.0 (#2833)
release(js): 0.6.0 (#2832)
feat(js,py): JS 0.6.0, Py 0.8.0 (#2831)
release(py): 0.7.38 (#2825)
release(js): 0.5.26 (#2824)
fix(js): Pull Claude Agent SDK subagent runs from transcript, add tool span for subagents, merge message blocks by id (#2816)
chore: add apac support (#2821)
fix(py): fix RunTree ValidationError when inputs or outputs is a Pydantic BaseModel (#2820)
chore(js): Switch to oxfmt and oxlint (#2819)
feat(py): Adds strands OTEL exporter (#2817)
chore(deps): bump the py-minor-and-patch group across 1 directory with 18 updates (#2808)
chore(deps-dev): bump @langchain/openai from 0.5.18 to 0.6.17 in /js (#2806)
chore(deps-dev): bump types-pyyaml from 6.0.12.20250915 to 6.0.12.20260408 in /python (#2812)
chore(deps): update myst-nb requirement from >=1.1.1 to >=1.4.0 in /python (#2810)
chore(deps): update sphinx-autobuild requirement from >=2024 to >=2024.10.3 in /python (#2809)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 4 updates (#2803)
ci(py): Bump pytest timeout to 2m (#2815)
docs(sandbox): document default idle TTL of 10 minutes (#2788)
chore(js): Remove types/uuid (#2814)
feat(js): add tracing of opencode (#2776)
release(py): 0.7.37 (#2802)
fix(py): Fix concurrency for multiple Claude Agent SDK sessions (#2795)
fix(python): flush pending traces during Client.cleanup() (#2799)
chore(deps-dev): bump google-adk from 1.10.0 to 1.28.1 in /python (#2794)
chore(deps): bump postcss from 8.5.8 to 8.5.10 in /js/internal/environment_tests/test-exports-vite in the npm_and_yarn group across 1 directory (#2791)
fix(python): flush both tracing_queue and compressed_traces in flush() (#2796)
release(js): 0.5.25 (#2801)
fix(js): Include auth headers on info requests (#2800)
fix(js): minor test improvements (#2429)
feat(js,python): Adds hub model config and provider to schemas (#2793)
chore(js): Fix perf test flagging (#2792)
release(js): 0.5.24 (#2790)
perf(js): Offload serialize to worker thread at flush time (#2781)
release(py): 0.7.36 (#2789)
feat(py, js): per-replica `client` arg to support runtime destination overrides (#2759)
fix(js): Vendor UUID to satisfy security warning and keep CJS support (#2784)
release(js): 0.5.23 (#2786)
perf(js): Use estimator instead of serialization in hot path (#2780)
docs: add CONTRIBUTING.md covering Python + JS release flow (#2787)
fix(js): honor numRepetitions when data is an Example[] (#2779)
release(py): 0.7.35 (#2785)
fix(py): suppress Pydantic serialization warnings for ParsedBetaMessage in wrap_anthropic (#2783)
feat(js): add agent/skill hub methods on Client with unit tests (#2747)
feat(python): add Hub agent/skill methods on Client and AsyncClient (#2746)
fix: patch 2 security alerts (high severity) (#2756)
release(py): 0.7.34 (#2778)
chore(js): Consolidate and cut down on integration tests (#2775)
feat: add Context schemas for agent/skill/file hub repos (#2745)
feat(py): Adds runtime overrides for updating internal methods (#2766)
fix(python): Update Python async and sandbox client reprs (#2773)
ci(python): Use cassettes for Google tests (#2771)
release(js): 0.5.22 (#2774)
fix(js): Update logged client string representations to hide API key (#2772)
feat(js-sandbox): support snapshotName and list filters (#2770)
chore(js): remove templates, pools, and volumes from sandbox SDK (#2758)
feat(python-sandbox): support snapshot_name and list filters (#2769)
chore(python): remove templates, pools, and volumes (#2757)
feat(js): Adds OpenAI Agents JS SDK wrapper (#2763)
fix(js/sandbox): clone Response before consuming body in error handlers (#2760)
chore(deps): bump websockets from 15.0.1 to 16.0 in /python (#2510)
chore(deps-dev): bump langchain-openai from 1.1.12 to 1.1.14 in /python (#2730)
chore(deps-dev): bump google-adk from 1.14.1 to 1.28.1 in /python (#2755)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 10 updates (#2753)
chore(deps): bump the py-minor-and-patch group across 1 directory with 13 updates (#2752)
chore(deps): bump authlib from 1.6.9 to 1.6.11 in /python (#2732)
chore(deps-dev): bump @anthropic-ai/sdk from 0.89.0 to 0.90.0 in /js (#2731)
chore(deps-dev): bump types-requests from 2.33.0.20260327 to 2.33.0.20260408 in /python (#2741)
feat(js): add hideMetadata support (#2720)
release(py,js): py 0.7.33, js 0.5.21 (#2743)
feat(sandbox): expose per-sandbox proxy_config in py + js clients (#2742)
fix(js): move jest retry config to runtime setup file (#2733)
chore(deps): bump mako from 1.3.10 to 1.3.11 in /python (#2729)
python: pass OTEL config directly to exporter instead of setting env vars (#2726)
chore(deps-dev): bump @anthropic-ai/sdk from 0.88.0 to 0.89.0 in /js (#2724)
release(py,js): py 0.7.32, js 0.5.20 (#2721)
chore(deps): bump python-multipart from 0.0.22 to 0.0.26 in /python (#2722)
feat(js/sandbox): add snapshot API and start/stop lifecycle (#2717)
docs: add initial threat model for langsmith-sdk (#2669)
feat(python/sandbox): add snapshot API and start/stop lifecycle (#2713)
release(js): 0.5.19 (#2715)
release(py): 0.7.31 (#2716)
feat: Filter kwargs from new token events (#2714)
chore(deps-dev): bump rich from 14.3.3 to 15.0.0 in /python (#2708)
chore(deps-dev): bump types-psutil from 7.2.2.20260130 to 7.2.2.20260408 in /python (#2709)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 7 updates (#2712)
chore(deps): bump actions/github-script from 8 to 9 (#2706)
chore(deps-dev): bump @anthropic-ai/sdk from 0.85.0 to 0.86.0 in /js (#2702)
chore(deps): bump the py-minor-and-patch group across 1 directory with 10 updates (#2711)
chore(deps): bump pnpm/action-setup from 5 to 6 (#2705)
chore(deps-dev): bump types-tqdm from 4.67.3.20260303 to 4.67.3.20260408 in /python (#2710)
feat(js): Adds ls_agent_type metadata to AI SDK runs (#2701)
feat(py): Tag OpenAI Agent Python SDK runs with ls_agent_type (#2699)
chore(deps-dev): bump @anthropic-ai/sdk from 0.84.0 to 0.85.0 in /js (#2700)
chore(deps): bump cryptography from 46.0.6 to 46.0.7 in /python (#2693)
chore(deps-dev): bump @anthropic-ai/sdk from 0.82.0 to 0.84.0 in /js (#2684)
chore(deps-dev): bump langchain-core from 1.2.23 to 1.2.28 in /python (#2692)
release(py): 0.7.30 (#2698)
fix(py): Fix run tree memory leak (#2696)
feat(js): Add metadata to Claude Agent SDK JS tracing (#2695)
chore(js/sandbox): suppress warning log (#2694)
release(js): 0.5.18 (#2691)
fix(js): Fix prototype pollution bug in anonymizers (#2690)
feat(python): add service feature to sandbox (#2665)
release(py): 0.7.29 (#2686)
feat(py): Fix race condition around Claude Agent SDK instrumentation (#2685)
release(js): 0.5.17 (#2681)
release(py): 0.7.28 (#2682)
fix(py): Fix type checking (#2683)
Fix(py): Add model_dump fallback to prevent .dict() deprecation warning (#2655)
chore(deps): bump google-cloud-aiplatform from 1.126.1 to 1.133.0 in /python (#2679)
feat(py,js): Allow dynamically setting custom client headers (#2678)
chore(py): Deflake test (#2680)
chore(deps): bump pnpm/action-setup from 4 to 5 (#2658)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 8 updates (#2667)
chore(deps-dev): bump the py-minor-and-patch group across 1 directory with 11 updates (#2677)
feat(py): Support subagent tracing in Claude Agents SDK, fix usage and duplicate messages (#2670)
release(python): 0.7.27 (#2676)
fix: add more retryable errors to the async client (#2675)
fix: retry on 502/3/4 in get_prompt (#2672)
feat(js): Add ls_integration metadata to AI SDK and Claude Agents SDK (#2668)
chore(deps-dev): bump vite from 6.4.1 to 6.4.2 in /js/internal/environment_tests/test-exports-vite in the npm_and_yarn group across 1 directory (#2666)
chore(js): Remove Chalk dep (#2664)
chore: bump version to 0.7.26 (#2663)
feat(sdk): add list_project_issues method (#2654)
chore(deps-dev): bump @anthropic-ai/sdk from 0.80.0 to 0.81.0 in /js (#2646)
Bump version: 0.7.24 → 0.7.25 (#2652)
feat(otel): add set_metadata to OtelSpanProcessor for thread_id propagation (#2650)
feat(py, js): add description to hub prompts sdk (#2639)
chore: remove index_dataset, similar_examples, and sync_indexed_dataset from clients (#2645)
chore: bump js (#2647)
fix: anthropic parse messages in js (#2644)
chore: bump py version (#2643)
fix: add wrapping for client.beta.messages.parse (#2642)
chore: Adds exclude-newer to uv settings (#2638)
chore: Switch to pnpm, use minimumReleaseAge (#2635)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 6 updates (#2634)
chore(deps): bump pygments from 2.19.2 to 2.20.0 in /python (#2633)
chore(deps): bump the py-minor-and-patch group across 1 directory with 20 updates (#2629)
chore(deps): bump handlebars from 4.7.8 to 4.7.9 in /js (#2620)
chore(python): Release 0.7.23 (#2632)
feat(python): Support headers arg in sandbox client (#2619)
chore: support aws saas cluster (#2628)
chore(deps): bump cryptography from 46.0.5 to 46.0.6 in /python (#2623)
chore(deps-dev): bump langchain-core from 1.2.15 to 1.2.22 in /python (#2622)
release(js): 0.5.15 (#2618)
fix: include model field in wrap_gemini js traced inputs (#2608)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 17 updates (#2614)
chore(deps): bump picomatch from 2.3.1 to 2.3.2 in /js/internal/environment_tests/test-exports-metro in the npm_and_yarn group across 1 directory (#2616)
feat(js): add ttl feature for sandboxes (#2617)
chore(deps): bump requests from 2.32.5 to 2.33.0 in /python (#2613)
release(js): 0.5.14 (#2612)
feat(js): fix tracing of subagents for newer versions of @anthropic/claude-agent-sdk, harden null checks (#2611)
feat(python): add ttl feature for sandboxes (#2609)
release(js): 0.5.13 (#2607)
feat(js): Add proper aggregation for AI SDK reasoning when streaming (#2606)
release(js): 0.5.12 (#2602)
feat(js): Parse AI SDK reasoning blocks into standard content blocks (#2601)
chore(deps): bump flatted from 3.3.3 to 3.4.2 in /js (#2600)
chore: add experiment id (#2599)
chore: bump python SDK version to 0.7.21 (#2598)
fix: add debug logging to background thread shutdown and final flush (#2597)
chore(deps): bump pyjwt from 2.10.1 to 2.12.0 in /python (#2594)
chore(deps): bump dorny/paths-filter from 3 to 4 (#2578)
chore(deps): bump pyasn1 from 0.6.2 to 0.6.3 in /python (#2587)
chore(deps): bump pyopenssl from 25.3.0 to 26.0.0 in /python (#2581)
chore(deps): bump authlib from 1.6.8 to 1.6.9 in /python (#2580)
chore(deps-dev): bump multipart from 1.3.0 to 1.3.1 in /python (#2566)
chore(deps-dev): bump dotenv from 16.4.7 to 17.3.1 in /js (#2507)
release(js): 0.5.11 (#2592)
fix(js): Fix AI SDK and Claude Agents SDK in non-Node envs (#2591)
chore: apply auth headers for multipart compressed (#2589)
Bump version: 0.7.18 → 0.7.19 (#2588)
fix(python): add _on_ending to OtelSpanProcessor for opentelemetry-sdk 1.40.0 (#2586)
feat: set source: "sdk" on SDK-created datasets (#2584)
fix(python): fix flaky test_workspace_error_recovery_flow (#2583)
Bump version: 0.7.17 → 0.7.18 (#2582)
fix(python): propagate exceptions from ExperimentResults._process_data (#2574)
fix(python): handle concurrent example creation in pytest-xdist (#2549)
test(python): add AsyncExperimentResults edge case tests (#2573)
fix(python): propagate exceptions from AsyncExperimentResults._proces… (#2572)
fix(python): replace busy-wait in AsyncExperimentResults.__anext__ (#2550)
chore: js version bump (#2570)
fix: fix js missing tz gs (#2569)
Bump version: 0.7.16 → 0.7.17 (#2568)
fix: catch missing tz info (#2567)
feat(sandbox): add reconnection of tunnels (#2563)
feat: add ws based exec to js sdk (#2540)
docs(sandbox): add TCP tunnel documentation (#2560)
feat(sandbox): add TCP tunnel support (#2559)
feat(sandbox): add yamux multiplexing protocol (#2558)
fix(sandbox): prevent CommandHandle.kill() from hanging (#2557)
chore: bump ver (#2547)
chore: bump js ver (#2548)
feat: auto populate trace id child runs (#2534)
fix: tool calls fix for anthropic wrapper (#2537)
fix: gemini wrapper inputs (#2532)
release(py): Bump version: 0.7.14 → 0.7.15 (#2544)
fix(python): Fix pytest behavior with fixtures (#2543)
fix: add async create support for sandboxes (#2539)
release(js): 0.5.8 (#2538)
fix(js): use UUID v7 for evaluator run IDs and feedback IDs (#2536)
chore(py): Bump version: 0.7.13 → 0.7.14 (#2535)
fix: sum Anthropic cache tokens into input_tokens for correct cost calculation (#2519)
Bump version: 0.7.12 → 0.7.13 (#2531)
feat(py): add experiment-level metadata to pytest integration (#2524)
fix: bump minimatch to resolve CVE-2026-27903 (#2502)
fix: missing await (#2528)
fix: convert non primitive types to JSON strings (#2527)
fix: initialize otel exporter before background thread (#2526)
chore: bump version (#2521)
fix: sample before transform in ingest (#2488)
bump version for insights sdk changes (#2520)
add get insights reports with runs (#2517)
Bump version: 0.7.9 → 0.7.10 (#2516)
fix: memory leak in _cached_attachment_args when tracing closures (#2515)
chore(deps): bump minimatch from 3.1.2 to 3.1.5 in /js/internal/environment_tests/test-exports-metro in the npm_and_yarn group across 1 directory (#2489)
fix: update deprecated model and re-record VCR cassettes (#2503)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 9 updates (#2490)
chore: bump py ver (#2501)
fix: catch blocksize typeError (#2499)
Bump version: 0.7.7 → 0.7.8 (#2498)
fix(anthropic): Add usage_metadata to metadata (#2497)
docs: rm pytest beta docstring (#2496)
feat(sandbox): async sandbox creation (#2493)
Description change for read_dataset_version (#2487)
chore(deps): bump rollup from 4.40.2 to 4.59.0 in /js (#2484)
feat(sandbox): add retry mechanism for python client (#2486)
chore(deps): bump rollup from 4.57.1 to 4.59.0 in /js/internal/environment_tests/test-exports-vite in the npm_and_yarn group across 1 directory (#2483)
chore(deps): bump the py-minor-and-patch group across 1 directory with 15 updates (#2475)
chore: bump GitHub workflow Node.js versions to 24.x (#2485)
fix(ci): replace mistakenly pinned Node 22.4.1 with 22.x (#2477)
fix: bump versions (#2482)
fix: add integration and version num (#2481)
feat: add raw response parsing for responses api to openai wrapper (#2480)
feat: add native thread querying support (#2455)
feat: persist failed trace payloads to disk for later replay (#2476)
fix(js): Fix list commits endpoint for private prompts (#2479)
chore(deps): bump google-cloud-aiplatform from 1.126.1 to 1.133.0 in /python (#2465)
docs(python): document sandbox streaming, kill, stdin, and reconnect (#2449)
test(python): add tests for CommandHandle and sandbox streaming integration (#2448)
feat(python): add CommandHandle for streaming, kill, stdin, and reconnect (#2450)
feat(python): use WebSocket transport by default with HTTP fallback (#2446)
test(python): add tests for WebSocket transport layer (#2445)
feat(python): add WebSocket transport for sandbox commands (#2443)
release(js): 0.5.6 (#2467)
fix(js): Respect traceRawHttp for tracing streaming AI SDK calls (#2466)
release(js): 0.5.5 (#2464)
fix(js): subagent tool calls tracking for latest claude agent sdk (#2463)
release(py): 0.7.6 (#2462)
chore(claude agent sdk): rm debug logs (#2461)
feat(py, claude agent sdk): Add wrapping for PostToolUseFailure hook (#2460)
perf(py): Improve retry logic for tracing ops (#2459)
fix(py, claude agent sdk): Correctly parent spans in asyncio context (#2457)
feat(python): add sandbox exception types and client plumbing (#2442)
release(py): 0.7.5 (#2456)
fix(py/adk): fix multi-agent tracing (#2451)
make zstandard optional (#2453)
chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 10 updates (#2433)
chore(deps-dev): bump pandas-stubs from 2.3.3.251219 to 2.3.3.260113 in /python (#2404)
chore(deps): bump the py-minor-and-patch group across 1 directory with 16 updates (#2440)
chore(deps-dev): bump @jest/reporters from 29.7.0 to 30.2.0 in /js (#2417)
chore(deps): bump chalk from 4.1.2 to 5.6.2 in /js (#2416)
release(py): 0.7.4 (#2441)
chore: lock dependencies (#2439)
fix(google-adk): add wrapt dependency (#2436)
release(py): 0.7.3 (#2428)
chore(python): openai agents: delay span start for spans without inputs on start event (#2424)
fix: propagate tracingEnabled to nested traceables (#2427)
release(py): 0.7.2 (#2426)
feat(python): add exceptions_to_handle to @traceable (#2423)
feat(python): add feedback config CRUD and annotation queue rubric items (closes LSPE-67) (#2419)
release(js): 0.5.4 (#2422)
fix(js): Add on_start handler for traceable, use in evaluate (#2421)
feat(js): add feedback config CRUD and annotation queue rubric items (closes LSPE-67) (#2420)
fix: ignoring p-queue dep (#2414)
release(js): 0.5.3 (#2410)
fix(js): Remove async (#2409)
fix(js): Log Vitest/Jest outputs even if test throws an error (#2408)
chore(deps): bump the py-minor-and-patch group across 1 directory with 20 updates (#2406)
chore(deps-dev): bump pytest from 8.4.2 to 9.0.2 in /python (#2405)
chore(deps): bump packaging from 25.0 to 26.0 in /python (#2403)
chore(deps-dev): bump eslint-config-prettier from 8.10.0 to 10.1.8 in /js (#2399)
chore(deps-dev): bump the js-minor-and-patch group in /js with 6 updates (#2398)
chore(deps): bump cryptography from 46.0.3 to 46.0.5 in /python in the uv group across 1 directory (#2397)
chore: update dependabot.yml to comply with posture checks (#2393)
Google ADK LangSmith tracing enhancements (#2394)
chore(deps-dev): bump node-fetch from 2.7.0 to 3.3.2 in /js (#2380)
chore(deps-dev): bump the js-minor-and-patch group in /js with 4 updates (#2376)
chore(deps-dev): bump cross-env from 7.0.3 to 10.1.0 in /js (#2379)
chore(deps-dev): bump openai from 5.8.2 to 6.18.0 in /js (#2378)
release(js): 0.5.2 (#2392)
fix(js): Remove @internal (#2391)
release(js): 0.5.1 (#2389)
release(py): 0.7.1 (#2388)
fix(js): Add system message visibility to Anthropic wrapper traces (#2375)
fix(js,py): Adds backcompat for old prompt cache API (#2386)
fix(js): Restore default concurrency behavior for JS eval runner (#2385)
feat(js): run evaluations as examples complete (#2349)
fix(ci): Convert JS release workflow to use OIDC (#2383)
release(js): 0.5.0 (#2381)
release(py): 0.7.0 (#2382)
chore: Support jwt auth in replicas (#2293)
feat(py,js): Use global singleton for prompt cache, enable by default (#2371)
chore: rm unused fn (#2346)
chore(deps): bump the js-minor-and-patch group in /js with 20 updates (#2364)
fix(deps): resolve js-yaml prototype pollution vulnerability (#2370)
fix(deps): resolve glob CLI command injection (CVE-2025-64756) (#2368)
fix: esbuild CVE dependabot 78 (#2369)
chore: adding workflow perms (#2367)
chore(deps-dev): bump babel-jest from 29.7.0 to 30.2.0 in /js (#2365)
chore(deps-dev): bump eslint-plugin-prettier from 4.2.1 to 4.2.5 in /js (#2366)
chore(deps): update httpx requirement from <0.28.0,>=0.23.0 to >=0.23.0,<0.29.0 in /python (#2363)
chore(deps-dev): bump ty from 0.0.10 to 0.0.15 in /python in the py-minor-and-patch group (#2362)
chore(deps): bump actions/cache from 4 to 5 (#2361)
chore(deps): bump astral-sh/setup-uv from 6 to 7 (#2360)
chore(deps): bump actions/checkout from 2 to 6 (#2359)
chore(deps): bump actions/github-script from 6 to 8 (#2358)
chore(deps): bump actions/setup-node from 3 to 6 (#2357)
chore(deps): bump jws from 4.0.0 to 4.0.1 in /js (#2355)
chore(deps-dev): bump esbuild from 0.20.2 to 0.25.0 in /js/internal/environment_tests/test-exports-esbuild in the npm_and_yarn group across 1 directory (#2354)
chore(deps): bump pyasn1 from 0.6.1 to 0.6.2 in /python (#2353)
chore(deps): bump protobuf from 6.33.2 to 6.33.5 in /python (#2352)
chore(deps): bump python-multipart from 0.0.21 to 0.0.22 in /python (#2351)
chore:deps (#2356)
chore(deps): bump vite from 6.3.5 to 6.4.1 in /js (#2284)
chore(deps-dev): bump langchain from 0.3.29 to 0.3.37 in /js (#2283)
chore(deps): bump form-data from 4.0.3 to 4.0.5 in /js (#2282)
Bump version: 0.6.8 → 0.6.9 (#2347)
don't set parent context on span start (#2343)
prevent claude agent sdk double wrapping (#2344)
feat(sandbox): add js lib (#2335)
fix(sandbox): endpoint for python async (#2340)
feat: add pre-commit (#2339)
Bump version: 0.6.7 → 0.6.8 (#2334)
chore: add chat_name and completions_name optional parameter (#2332)
feat(python): Non-otel google adk wrapper (#2330)
release(py): 0.6.7 (#2327)
release(js): 0.4.12 (#2326)
feat(py,js): Allow prepopulating invocation params in passed metadata for client wrappers (#2320)
fix(python): fix upsert param in create_project (#2322)
pass metadata on feedback creation (#2317)
feat(js,python): Use xxhash for deterministic UUID7 for replicas (#2315)
bump js sdk (0.4.11) (#2318)
export google gen ai wrapper (#2316)
release(py): 0.6.6 (#2314)
feat(py): Allow setting background tracing threads as daemons (#2310)
fix(sandbox): default endpoint (#2313)
release: js 0.4.10 (#2312)
release: py 0.6.5 (#2311)
chore: add as_of to create and update examples response (#2308)
feat: add sandbox sdk (#2303)
feat(js): refactor of Claude Agent SDK wrapper (#2306)
Handle streaming inputs in claude agent sdk (#2300)
bump js 0.4.8 (#2304)
feat(js): respect disable run compression (#2270)
feat(js): track latest generator input in claude agent sdk (#2298)
feat: add support for tracing Claude Agent SDK JS (#2271)
chore: rm rust lib (#2290)
beta wrap_gemini ts wrapper (#2121)
Bump version: 0.6.3 → 0.6.4 (#2292)
chore: Fix release check (#2289)
Fix: Add with_raw_response support to OpenAI & Anthropic wrapper (#2134)
fix(js): add defensive null checks in AsyncCaller error handler (#2285)
fix(js): remove explicit message type from `convertMessageToTracedFormat` (#2288)
bump sdk versions (#2287)
fix: simplify baggage header serialization (#2286)
chore(deps-dev): bump @langchain/core from 0.3.72 to 0.3.80 in /js (#2280)
release(python) 0.6.2 (#2277)
chore: dynamic versioning (#2278)
chore: consolidate workflow files (#2276)
chore: set config in traceable (#2275)
docs: fix some docstrings (#2269)
chore: bump sdk (#2268)
feat: Pass in Cache, rename (#2264)
feat(python sdk): Add support for setting commit tags when pushing a prompt (#2265)
ci: test more bundlers (#2263)
feat(python): Bump pydantic to v2 (#2248)
feat: add prompt cache back and setup environment tests (#2260)
release(js): bump to 0.4.4 (#2259)
Revert "feat: Replace UUID5 with deterministic UUID7 for replicas" (#2257)
Revert "feat: add js prompt caching" (#2258)
chore(js): bump JS to 0.4.3 (#2253)
bump(python): 0.5.2 (#2256)
fix(claude): correctly parse llm and tool inputs in claude agent sdk (#2255)
feat: add js prompt caching (#2251)
feat: add prompt caching to python sdk (#2246)
feat: Replace UUID5 with deterministic UUID7 for replicas (#2249)
feat(js): Add support for tracing tool loop agent (#2244)
fix(js): Remove default Jestlike timeout (#2243)
feat(js): Add support for tracing AI SDK 6 (#2237)
fix(python): pull prompt for newer langchain_core (#2239)
Fix timestamp ordering violation in `RunTree.create_child` (#2240)
fix(js): Remove unnecessary promise skip on error (#2234)
release(js): 0.4.2 (#2233)
fix(js): Avoid waiting for child runs to complete if parent throws an error (#2232)
release(js): 0.4.1 (#2231)
fix(js): Make traced async iterators call finally on success (#2230)
fix(js): Fix JS Memory Leak clean child_runs (#2228)
remove duplicate patch from claude agent sdk (#2189)
Ignore empty string (#2225)
feat(js): Add invocation param tracing for OpenAI responses wrapper in JS (#2220)
chore(py): Fix Python integration tests (#2219)
feat(openai): Add use responses API to OpenAI wrapper (#2218)
release(py): 0.5.0 (#2217)
release(js): 0.4.0 (#2216)
feat(py,js): Python 0.5, JS 0.4 (#2182)
bump(py): 0.4.60 (#2215)
fix(openai agents sdk): Merge invocation params into run extra (#2214)
feat: automatically infer attachments (#2200)
release(js): 0.3.87 (#2204)
fix(js): Use one generic param for async iterable in traceable types (#2203)
fix(py): add missing imports during TYPE_CHECKING (#2201)
release(js): 0.3.86 (#2202)
fix(js): Fix traceable typing for async iterables and runnable config (#2199)
feat(js): Wrap additional OpenAI methods in wrapOpenAI (#2198)
release(py): 0.4.59 (#2197)
release(js): 0.3.85 (#2196)
feat(py,js): Add prop to omit traced runtime info (#2195)
release(py): 0.4.58 (#2192)
release(js): 0.3.84 (#2191)
feat(py,js): Add batch example deletion method, hard delete for Python (#2190)
release(py): 0.4.57 (#2187)
release(js): 0.3.83 (#2186)
feat(js): wrapAnthropic (#2183)
Revert "fix(claude agent sdk): remove thread local storage" (#2185)
chore(python): load child runs with dotted_order mismatches (#2179)
release(py): 0.4.55 (#2177)
feat(py): Add background callback error hook (#2176)
bump(python): 0.4.54 (#2175)
fix(claude agent sdk): Correctly parent tool llm runs (#2173)
feat(py): track evaluator method (#2116)
chore(insights): add insights agent youtube notebook (#2145)
feat: Use uuid-utils (#2166)
release(py): 0.4.52 (#2171)
feat(python): add CRUD methods for feedback formulas (#2163)
release(py): 0.4.51 (#2170)
bump version (#2168)
suppport custom header in python client (#2167)
release(js): 0.3.82 (#2164)
feat(js): Adds reroot support for replicas (#2155)
release(python): 0.4.49 (#2162)
test(python): Add unit test for replica remapping (#2161)
fix(python): Add back uuid5 to replica remapping (#2160)
fix(js): Vendor p-retry to avoid import issues (#2159)
fix(js): add reporter support for Vitest 4.x (#2156)
release(py): 0.4.48 (#2158)
fix(py): Pass limit into list_runs (#2157)
chore(python): rewrite docstrings removing sphinx (#2149)
bump(python): 0.4.47 (#2153)
fix(claude agent sdk): remove thread local storage (#2152)
bump(py, js): bump versions (#2147)
chore: Remove uuid7 warnings from sdks (#2146)
Fix(python): Return wrapper for stream enter (#2143)
release(py): 0.4.45 (#2142)
fix js ci cd (#2139)
feat(python): Add bounded queue size to compressed tracing queue (#2141)
feat(python): Claude agent sdk subagent handling (#2125)
release(py): 0.4.44 (#2137)
fix(py): Add fallback for failed attachment downloads (#2136)
fix(js): Adds more retryable statuses (#2135)
release(js): 0.3.80 (#2133)
feat(js): Increase max retries (#2130)
feat(js): Adds maximum queue size (#2132)
feat(py): add metadata helper (#2115)
feat: wrap_gemini beta python (#2059)
v2 API Changes (#2103)
release(py): 0.4.42 (#2119)
fix(py): pairwise eval concurrency (#2114)
release(js): 0.3.79 (#2118)
feat(js): Trace AI SDK experimental_output similarly to generate/streamObject (#2117)
feat(py): add sdk methods for insights agent (#2087)
chore(python): bump patch version (#2110)
release(js): 0.3.78 (#2108)
fix(js): Avoid dropped runs if id: undefined is passed to traceable (#2109)
feat(js): Allow tracing steps in AI SDK wrappers, fix processOutputs type (#2106)
fix(python): reduce memory of pending traces (#2107)
release(py): 0.4.40 (#2104)
feat(py,js): Trace responses.parse properly in OpenAI wrapper (#2105)
feat(python): Fix claude tool tracing by using hooks (#2102)
release(js): 0.3.77 (#2101)
release(py): 0.4.39 (#2100)
feat(py,js): Adds ls_invocation_params to client wrappers (#2098)
release(js): 0.3.76 (#2095)
fix(js): Allow async process outputs for AI SDK generate methods (#2093)
release(js): 0.3.75 (#2089)
feat(js): traceable types for processInputs and processOutputs (#1593)
fix(python): remove ciruclar import from openai agents sdk (#2086)
fix(python): Fix CI by bumping deps (#2081)
chore: update description to reflect new marketing names (#2080)
fix(python): Correctly check distributed tracing headers (#2079)
feat: add batching to create_examples (#2047)
fix(python): Correctly flatten list-like outputs (#2075)
feat(python): Claude Agent SDK wrapper (#2073)
feat(python): OpenAI Agents Tracing Interoperability (#2070)
fix(js): Fix token tracking for OpenAI Responses API wrapper (#2072)
chore(python): Skip /info calls when using OTEL-only tracing (#2069)
chore: deprecate select child_run_ids in list_runs (#2066)
Format openai agents span outputs (#2065)
feat(js): Cache relevant env vars on client initialization for perf (#2061)
release(py): 0.4.33 (#2060)
feat(py): Dedupe examples purely by dataset_id and input/output content rather than by test name (#2050)
fix ugly rendering of 'omit' in UI due to incorrect strip (#2057)
fix(py): return session feedback with experiment results (#2049)
fix(python): Set llm OAI agent SDK spans to parent name for filtering (#2054)
release(js): 0.3.72 (#2053)
release(py): 0.4.32 (#2052)
fix(js): Copy object prototype when copying tools in AI SDK wrapper (#2051)
Non-beta parse awareness in the OpenAI wrapper (#2012)
chore(js): Remove log (#2042)
fix(js): Make JS client respect max ops size limit (#2041)
fix: docstring of get_expeirment_results (#2038)
fix(py): Inherit project name from parent for OpenAI agent wrapper (#2037)
Clear children after runtree posts (#2033)
version bump after new method 0.4.29 (#2031)
feat(py): new get_experiment_results() endpoint (#2021)
release(js): 0.3.69 (#2028)
fix(js): Fix output processing for AI SDK streamText (#2027)
fix: Store ended span to reserve parent span context (#2020)
fix(py): include missing attributes in traces (extra, error, serialized) (#2017)
feat(js): Backport new wrapper support to AI SDK 4 (#2015)
Don't compress patches when manually configuring api_key (#2013)
Set global configuration (#2002)
feat(python): Otel developer improvements (#2001)
feat: support pushing structured prompts back as they're pulled (#1953)
python[chore]: test py3.13 (#2004)
fix(js): Fix retries for empty bodies (#2003)
release(py): 0.4.25 (#2000)
fix: storage of already ended spans causes memory growth (#1998)
fix(python): Set project name on run update for oai agent sdk (#1999)
feat: add metadata into dataset pydantic schema (#1943)
release(js): 0.3.67 (#1997)
feat(js,py): Add OpenAI service tier to input and output token details (#1967)
chore(js): Deprecate very old AI SDK OTEL tracing (#1995)
update SDK readme for org-scoped API keys (#1994)
release(py): 0.4.23 (#1993)
fix(python): Correctly recognize attachment with stringified annotations (#1990)
release(py): 0.4.22 (#1992)
feat(py,js): Add include stats param to listProjects (#1991)
fix(js): Allow passing partial args to distributed tracing run tree (#1989)
release(py): 0.4.21 (#1986)
feat(py): Allow overriding max batch size parameter on client, fix for disabled run compression (#1985)
fix: memory leak risk from otel exporter persistance (#1979)
ci(py): Add format job to Python CI (#1983)
release(js): 0.3.66 (#1982)
fix(js): Only take metadata into account when updating in example if provided for Vitest runner (#1981)
fix(js): Remove validation of usage metadata params (#1980)
feat(py,js): Adds split parameter to test runners, metadata to Jestlike (#1977)
fix(js): Fix wrapOpenAI finish_reason tracing (#1976)
release(js): 0.3.65 (#1974)
release(py): 0.4.20 (#1975)
feat(js): Add current repetition property to jestlike test wrapper (#1856)
feat(js): Allow manually specifying ids for examples in Jestlike runners (#1972)
feat(py): Fix list_projects typing, add dataset_version param (#1973)
Pass multiple run ids to listFeedbacks correctly (#1465)
feat(js): add datasetVersion parameter to listProjects (#1391)
feat(py): Add support system qwen to OTEL attributes (#1717)
fix(js): specify "Content-Type" for getRunStats to avoid parsing errors (#1598)
fix(python): Avoid resetting operation.name to "chain" during update_run (#1861)
feat(pythong): allow nested openai agent tracing (#1971)
feat: update SDK for org-scoped keys (#1920)
fix(python): Alleviate memory pressue from zstd flush (#1966)
fix(py): Disable API key warnings if tracing is disabled (#1965)
release(js): 0.3.64 (#1964)
release(py): 0.4.18 (#1963)
fix(js): Fix multipart tracing for Bun (#1960)
fix(py,js): Trace AzureOpenAI clients with proper provider for playground (#1961)
fix: move otel check to client init time to avoid timing issue (#1958)
fix(js): Allow null to be passed as a first arg to traceable (#1959)
fix(python): Correctly set multipart operatios in replica mode (#1956)
release(js): 0.3.63 (#1955)
fix(js): Turn down default max batch size (#1954)
fix(js): Fix retry issues (#1947)
fix(py): adjust traceable reduce_fn type to allow returning str (#1950)
feat(py): Adds process_buffered_run_ops method to Python SDK (#1932)
feat(js): Compress multipart batches before sending, avoid sending inputs in patch if not necessary (#1945)
feat(js): Allow passing runtime LangSmith config to AI SDK wrapper (#1944)
fix(js): Fix typing for AI SDK stream methods (#1941)
fix(js): Avoid double wrapping AI SDK tool functions if already wrapped (#1942)
feat(python): Pass api config through background thread (#1940)
chore(py): correct references to `langchain-core` and hyperlink (#1936)
feat(js): Trace AI SDK request/response fields in LLM response (#1939)
feat(js): Improve tracing for multimodal AI SDK runs (#1938)
fix(js): Copy tool def instead of mutating (#1937)
fix(js): Only inherit specific properties for child runs in AI SDK wrapper (#1931)
feat(js): Adds time to first token for new AI SDK wrapper (#1930)
fix(py): Pass 'project_name' to _get_parent_run method (#1927)
feat(js): Allow async processOutputs methods for traceables (#1928)
fix(py): attachments url construction (#1929)
feat(js): Non-OTEL version of AI SDK tracing (#1926)
chore(python): fix tests (#1925)
perf(python, js): Pop all allowed oob keys (#1923)
chore(python): Cleanup replica setting (#1921)
fix(js): Allow direct wrapping of Jest/vitest methods, fix module resolution (#1919)
release(js): 0.3.55 (#1915)
feat(js): Allow use of new AI SDK processor with old exporter (#1914)
fix(js): Use start time from dotted order as canonical for legacy AI SDK exporter (#1912)
chore: Replace ts-expect-error directives with casts (#1913)
release(js): 0.3.53 (#1910)
fix(js): Revert "feat(js): Adds dotted order to traced OTEL spans (#1876)" (#1909)
fix(js): Revert legacy AI SDK dotted order changes (#1907)
fix(python): legacy replicas conversion (#1908)
Fix OpenAI Agents SDK wrapper token count extraction (#1906)
chore(python): Remove langsmith dotted order attribute from otel integration (#1904)
fix(js): Ensure dotted order and start time is always greater than parent start time for legacy AI SDK exporter (#1903)
feat(py): add Run.latency (#1745)
fix(ci): Allow 429s for markdown link checks in CI (#1895)
feat(python, js): Support tracing to multiple orgs/workspaces (#1899)
Adopt pagination to list_shared_examples to ensure all data returned (#1893)
chore: Run ruff (#1894)
release(py): 0.4.10 (#1896)
fix(py): Remove monkeypatching and ensure env var cache is cleared (#1891)
feat(py): Adds new cached_hosts parameter to vcrpy caching (#1878)
Remove black dependency and update lock file (#1892)
fix(py): Reset env causing unit test flake (#1890)
fix(py): Missed test causing flakes (#1889)
fix(py): Make replica tests properly restore env vars to reduce flakiness (#1888)
fix(python): Remove upper bound for OpenAI agents (#1883)
chore(py): Format lockfile (#1887)
chore: Convert dev workflow to uv (#1885)
feat(py): return feedback notes in get_test_results (#1873)
feat(python): Add distributed tracing with sliced traces for child projects (#1884)
feat(python): Add replica endpoints support to Python SDK (#1877)
patch(python, js): Fix sampling logic for patch runs (#1881)
fix(js): Respect Anthropic 1h caching usage for AI SDK 5 (#1879)
chore(python): deflake ci (#1872)
feat(js): Adds dotted order to traced OTEL spans (#1876)
feat(js): Respect LANGSMITH_OTEL_ENABLED env var, allow skipping global context manager setup, skip non-traceable spans by default (#1870)
release(js): 0.3.48 (#1868)
fix (js): include env var metadata in patch (#1867)
feat: Configure (#1859)
feat(js): Update AI SDK tracing for v5 (#1863)
fix(python): Fix update_examples improperly overriding inputs/outputs for multipart endpoint (#1860)
Safer module check (#1857)
fix(js): Fallback to parent run id if parent run is not present in run trees loaded from LangChain (#1854)
fix(js): Make readDataset throw if empty string is passed (#1853)
feat(python): Add repetitions support to pytest, rename in JS (#1852)
fix(js): Respect project names set at runtime for OTEL exported traces (#1850)
fix(js): Propagate microseconds added in dotted order conversion to run tree start time (#1849)
feat(js): Support feedback attribution for OTEL evaluations (#1847)
fix(js): Fix replica updates (#1848)
If stream fails, fallback to buffered body request (#1845)
feat(python): Populate example metadata in pytest, prefix experiment runs with ls_example (#1840)
release(js): 0.3.42 (#1842)
Add runs endpoints env to replicas (#1830)
fix(js): Add endpoint shim to example upload (#1839)
release(js): 0.3.41 (#1837)
[open-swe] fix: improve serialization of Maps and complex objects in traces (#1835)
feat(js): Add reference_example_id attribute to OTEL runs (#1836)
feat(js): Make traced AI SDK runs respect provider metadata (#1826)
fix(js): Fix AI SDK token counting issues for legacy exporter (#1825)
release(js): 0.3.38 (#1824)
fix(js): Fix types and add responses and completions.parse support for wrapOpenAI (#1823)
fix(js): Use context placeholder to preserve LangChain context variables even if tracing is disabled (#1822)
feat(js): Add transform span method to exporter, allow setting run name (#1821)
Reduce zstd compression level to 1 (#1820)
feat(js): Export passed AI SDK metadata as LangSmith metadata (#1819)
feat(js): Add OTEL support (#1814)
Add replicas to baggage header (#1817)
fix(py): loosen pydantic dep (#1816)
feat(js): Allow suppressing circular JSON warnings (#1815)
feat(py): add evaluate(..., error_handling="ignore") (#1774)
chore(deps): bump protobuf from 5.29.4 to 5.29.5 in /python (#1807)
feat[python]: Enable OpenTelemetry trace context propagation (#1805)
feat[python]: Trace to multiple projects with distributed tracing (#1804)
patch[python]: Only set replica updates on patch (#1798)
add util for getting project name from env var (#1801)
release(js): 0.3.32 (#1797)
feat(js): Add replica support for JS (#1796)
fix(js): Avoid overwriting runtime if already set (#1795)
fix(js): Pass events through on run create (#1794)
Store only the first new_token event (#1779)
chore: auto-label issues with 'sdk' label (#1791)
Cache request settings for Client (#1787)
fix(js): Fix JSDom check for Node 22 (#1784)
Handle missing attachment files gracefully (#1782)
Fix race for cached client initialization (#1778)
Fix some issues w running codex in this repo (#1777)
Add agent instructions for Python SDK (#1776)
fix: hybrid mode has subtle shut down race conditoin (#1775)
feat: OTEL_ENABLED mode sends to both otel and ls, while allowing otel only through OTEL_ONLY var (#1762)
feat[python]: enable tracing to multiple projects (#1770)
fix(py): Fix URL construction in attachment downloading (#1759)
release(js): 0.3.30 (#1766)
release(py): 0.3.44 (#1765)
feat(python,js): Add run tree method for setting usage (#1746)
feat(py): create_feedback with trace_id only (#1753)
fix(py): Trace evaluate args more nicely (#1701)
Remove default for fetching child_run_ids from the SDK (#1730)
feat(js): Allow direct getting and setting of metadata on run trees (#1747)
fix(js): fix JS int tests (#1734)
chore(py): update py + poetry setup in CI (#1743)
release(js): 0.3.29 (#1739)
feat(js): Log additional context around serialization errors (#1737)
fix(js): Narrow overly broad traceable type (#1738)
fix(js): Use streaming body in fetch in _sendMultipartRequest (#1728)
fix(js): avoid throwing in hot path when caller ignores exception (#1733)
fix(js): invalid type of wrapOpenAI when non-stream create is invoked (#1732)
fix(js): Upgrade vite devdep (#1729)
fix(js): Store dotted order for runs separately in case OTEL export happens in multiple batches (#1709)
feat(js) Add function to get Group Runs (#1675)
fix(frontend): Adds retry for tracing info call (#1724)
fix(py): lock h11>0.16 (#1721)
fix(js): Make feedback for evaluator traces using evaluatedBy for jestlike runs apply to root runs (#1718)
feat: allow syncing indexed dataset (#1714)
release(js): 0.3.25 (#1713)
fix(js): Trace AI SDK OTEL exported images as base64 (#1712)
Hide metadata in update_run (#1711)
Add RunTree.set() support (#1710)
fix(js): Fix AI SDK tracing when nested in AI SDK tool calls (#1708)
Add hide_metadata support (#1704)
feat: support rubric_instructions for annotation queues in the SDK (#1705)
feat(py): Adds python-dotenv as a dev dep for convenient testing (#1702)
feat(js): Adds support for @opentelemetry/sdk-trace-node@2 along with backcompat shim (#1703)
fix(js): Reduce JS integration test concurrency (#1698)
fix[python]: Correct client reference counting in compression thread (#1700)
feat[python]: OTel context propagation (#1693)
release v0.3.36 (#1696)
packaging: remove Python upper bound (#1691)
feat(py): support metadata in target func (#1694)
chore[python]: Add additional debug logging to background threads (#1689)
fix(py): try/except writing to multiple endpoints (#1684)
feat(js): Allow .concurrent, throw error when nesting describe blocks in Jestlike runners (#1688)
lint: upgrade to Python 3.9+ syntax (#1679)
chore[python]: Set dotted order for openai agents sdk integration (#1676)
chore(py): fix integration test (#1677)
feat(js): Allow async functions in client hideInputs and hideOutputs (#1674)
feat(js): Adds JS debug mode that logs output request URLs and responses (#1673)
Make __version__ a constant (#1669)
feat(py,js): Allow logging feedback from nested traceables within pytest and jestlike tests (#1668)
fix(js): include project/session name in distributed tracing (#1667)
Revert "docs[fix]: `-e` install `langsmith` so api refs are available (no longer using rtd) (#1665)
docs[fix]: `-e` install `langsmith` so api refs are available (#1663)
docs: fix docs links in `python/README.md` and `README.md` (#1662)
docs: enforce newlines when signature exceeds char threshold (#1661)
patch[python, js]: Update runs with project name (#1659)
fix(js): Raise proper error if multipart upload fails (#1651)
patch[python]: Use multipart EP for feedback creation (#1655)
chore: bump python sdk to 0.3.29 (#1654)
add fallbacks for create/update examples (#1653)
fix(js): Adds warning log when trying to run Jestlike runner in JSDom env (#1644)
fix(py,js): clarify deployment err (#1652)
patch[python]: Don't shut down compression thread if drain fails (#1650)
fix openai tool call chunk accumulation (#1648)
patch(python): Don't throw warning for missing API key in otel mode (#1647)
patch[python]: Add debug logging for batch requests to LangSmith (#1635)
Pull prompt in async client. (#1642)
patch[python]: Don't set metadata values if the value is None (#1641)
fix(py): drop traceable serialized data (#1634)
Add group id thread tracing for OpenAI Agents SDK (#1584)
patch[python]: Accept langsmith_extras for OpenAI Agents tracing (#1627)
fix(py): Always upload multipart inputs and outputs parts even if falsey (#1623)
Cache retry config (#1622)
release(py): 0.3.20 (#1621)
fix(py): serialize langchain objects in testing.log_outputs, fix rich display table [LS-3237] (#1609)
fix(python): Properly respect max_concurrency for aevaluate (#1613)
Simplify traceback (#1611)
chore(py): fix vcr test issue (#1610)
release(py): 0.3.19 (#1607)
fix(py): loosen openai-agents extra (#1606)
feat(vercel): add support for list of tools of ai sdk (#1604)
chore(js): update dev deps (#1602)
fix(py): delete examples [LS-3226] (#1597)
patch[python]: bump version 0.3.18 (#1595)
Fix setting otel tracing provider (#1594)
Create OTel Exporter for LangChain tracing (#1568)
Unset parent_run in run_tree (#1591)
docs: wrap_openai nit (#1590)
release(py): 0.3.16 (#1589)
ci: Use a git script instead of changed-files (#1587)
fix(py): openai agents docstring (#1581)
feat(py): OpenAI Responses API support (#1571)
fix(py): openai agents tracing nits (#1577)
fix(py): openai agents tracing nits (#1576)
Support Tracing OpenAI Agents SDK (#1572)
docs(python): Update get_test_results docstring (#1575)
fix(python): Avoid sampling non-root child runs that were previously filtered (#1574)
fix(js): Avoid sampling non-root child runs that were previously filtered (#1573)
Don't nest pydantic (#1564)
release(js): 0.3.13 (#1561)
chore(py): reduce list run test flake (#1559)
fix(py): robustify url construction (#1558)
version bump 0.3.13 (#1557)
fix, add slash to urls (#1556)
add wrap_anthropic (#1464)
patch[python]: Release 0.3.12 (#1554)
Fix 'unexpected keyword argument "config"' error in traceable decorator (#1553)
fix, don't append v1 if it is already in the api url (#1552)
fix(python,js): Round feedback scores with more than 4 decimal places (#1548)
chore(py): add integration test caching (#1547)
release(js): 0.3.12 (#1546)
fix: use go backend instead of python backend for example functions (#1488)
Fix evaluator errors (#1538)
chore(py): fix integration tests (#1543)
trace sync evaluators correctly with aevaluate (#1541)
chore: upgrade ubuntu 20.04->22.04 for deprecation (#1513)
feat(py): suppoer traceable(process_chunk=) (#1537)
feat(js): Allow evaluators to return arrays of results (#1536)
fix(py): integration tests patch (#1535)
refactor(py): add multipart to create/update_examples (#1477)
fix(py): specify 'packaging' dependency (#1533)
support **kwargs in evaluators (#1532)
bump version (#1528)
allow keyword args for evaluators (#1525)
fix(js): Fix evaluator config override (#1515)
feat(js): Allow jestlike evaluators to return arrays of feedback, minor refactoring (#1514)
fix(js): Add new tok event (#1512)
Debug log the serialization issues (#1495)
release(py): 0.3.7 (#1500)
fix(py): Fix output_keys (#1498)
fix(py): Fix unit test (#1497)
fix(js): Bump Vitest devdep (#1496)
docs: ✏️ Fix typo in `client` function `list_examples` (#1457)
fix(js): Fix git tagging for Vitest (#1494)
feat(js): Allow overriding test suite name for Jest test suites, automatically set environment on project metadata (#1492)
patch[python]: Release 0.3.6 (#1491)
feat(py): Increase concurrency for pytest evals, fix output rendering nits (#1489)
patch(js): utf-8 encode multipart parts (#1487)
python[patch]: Release 0.3.5 (#1486)
fix(py): fix dataset created_at (#1485)
release(py): 0.3.4 (#1483)
fix(py): Rename CLI arg for pytest plugin from --output to --langsmith-output to avoid conflict (#1482)
fix(py): Tag pytest experiments (#1481)
fix(js): Fix multiple datasets in same test file for Vitest, improve reporter output (#1475)
fix(js): Evals link should use user-defined endpoint (#1476)
python[patch]: Release 0.3.3 (#1474)
python[patch]: fix example link [LS-2764] (#1473)
feat(github): Allow release from non-main branches (#1471)
docs: update readme env vars (#1468)
python[patch]: Release 0.3.2 (#1466)
python[patch]: remove experiment end time (#1463)
fix(js): Handle undefined values in object equality checks (#1460)
Compress create feedback (#1452)
infra: fix py integration test (#1445)
infra: fix release workflow tagging (#1455)
python[patch]: Fix some typos in comments in `langsmith/client.py` (#1447)
python[patch]: fix pytest integration example syncing (#1450)
python[patch]: add ls_runner metadata (#1449)
docs: Update preferred env vars in READMEs and CI (#1444)
python[patch]: set pyproject.toml project.version (#1446)
python[minor]: Release 0.3.0 (#1439)
fix(js): Separate Jest suites into separate tables when reporting (#1443)
fix(js): Narrow evaluator types, fix example id generation (#1438)
chore: remove docker-compose from cli (#1437)
python[patch]: Add annotation queue async methods (#1396)
feat(js): Vitest/Jest evals (#1343)
Support parent=false to prune trees (#1429)
typo in benchmarking script (#1427)
fix(js): Fix reflection in JS API refs (#1426)
Remove async and non-streaming blocking clients. (#1419)
Switch PyO3 to streaming zstd-compressed multipart Rust client. (#1414)
feat(js): Add API refs build (#1423)
Re-vendor pyo3 at the v0.23.4 commit (#1421)
Implement streaming multipart zstd compression. (#1413)
Serialize pydantic and other tricky objects correctly from Rust. (#1392)
surface mime type when passing attachments to user (#1409)
add mime type to attachment info (#1341)
python[patch]: update OpenAI prompt test (#1407)
Make `pydantic` model serialization consistent regardless of surrogates. (#1405)
make LANGSMITH_PROJECT work (#1404)
Include user info in read feedback (#1386)
fix(python): Fix flaky openai parse tests (#1400)
Add safer accessors to delta objects (#1385)
docs: update api ref deps (#1393)
release(js): 0.2.15 (#1382)
fix(vercel): nested runs being unflattened, incorrect inheritance behavior of user runId / traceable (#1383)
infra: fix py release inputs (#1389)
Delete examples bulk (#1279)
infra: allow non-main py release (#1388)
feat(js): Add method to delete a run from an annotation queue (#1376)
feat(js): Add method to get size of annotation queue (#1377)
chore: Version bump (#1374)
feat: Instrument wrapper for OpenAI structured outputs (#1373)
python[patch]: Release 0.2.9 (#1372)
python[patch]: handle deployments without attachments support (#1371)
chore: Version bump (#1370)
feat: Report pre and post compressed content length to API (#1359)
python[patch]: write to same experiment pytest-xdist (#1367)
python[patch]: fix traceable arg inference (#1361)
feat: Make size_limit (max run count per batch) globally configurable via env var (#1358)
chore: Version bump (#1364)
fix: Reset buffer after sending to server (#1363)
fix: Flush zstd and correctly get buffer size (#1353)
fix: Separate rust and compressed ingestion paths (#1355)
chore: bump to 0.2.6 (#1352)
feat(js): Adds manual flush mode (#1351)
docs: update ref for list_examples (#1346)
chore: Version bump (#1349)
perf: [LS-2561] Stream compress multipart runs (#1316)
chore: version bump (#1344)
python[patch]: evaluate accept list target (#1342)
only pop graph if 'serialized' is not none (#1336)
fix time for runs in convert_runs_test (#1338)
chore: release langsmith-pyo3 version 0.1.0rc5 (#1335)
Drain the Rust client when its last copy in Python is dropped. (#1334)
Merge `Update` operations into `Create` operations in the same batch. (#1333)
Ensure pre-formatted JSON data doesn't contain trailing null bytes. (#1332)
Improve the error message for tag and version mismatch error case. (#1308)
chore: release python 0.2.3, js 0.2.13 (#1326)
fix: allow passing object instead of tuples in JS since tuples are not nice in JS (#1328)
evaluate small fix (#1327)
remove attachment prefix (#1324)
chore: release JS SDK 0.2.12 (#1323)
feat(js): upload and update examples multipart in JS (#1216)
fix: multiple evaluators don't consume the reader (#1322)
[python] support uploading examples with attachments and running evals on examples with attachments (#1209)
chore: release langsmith-pyo3 version 0.1.0rc4 (#1315)
Add Rust implementation for Python client's `update_run()` method. (#1314)
Release langsmith-pyo3 version 0.1.0rc3. (#1309)
Fix formatting in Rust tracing client. (#1296)
release py=0.2.1, js=0.2.11 (#1302)
Rm hub pull check (#1298)
fix(ci): Fix CI semver check (#1297)
chore: bump version to 0.2.10 to increase server info request timeout (#1295)
Upgrade `thiserror` from v1 to v2. (#1287)
chore: increase server info request timeout (#1294)
python[minor], js[patch]: release py0.2.0, js0.2.9 (#1247)
Clone dataset schema (#1278)
Add placeholder workflow for testing `langsmith_nodejs` Rust code. (#1291)
Run tests and lint for Rust code in CI. (#1289)
Drop outdated/vulnerable dependencies by using a newer multipart library (#1288)
langsmith no longer supports Python 3.8, so neither should our PyO3 code (#1285)
Remove `sonic_rs` and switch to `serde_json`. (#1286)
Support serializing Python UUID objects and set up test suite for PyO3 (#1284)
js[patch]: evaluate() support comparison (#1281)
js[patch]: fix evaluateComparative (#1283)
update python api ref (#1251)
js[patch]: simple evaluator args (#1264)
infra: fix int ci 2 (#1275)
infra: fix int ci (#1274)
infra: run integration tests when relevant files edited (#1271)
python[patch]: client.evaluate, client.aevaluate (#1268)
python[patch]: one evaluate fn (#1269)
infra: drop py3.8 CI (#1188)
feat(js): Expose light interface for tracing client (#1266)
chore: bump version to 0.1.147 (#1265)
Add a `langsmith_pyo3` extra to the LangSmith SDK. (#1263)
Python wheels don't distinguish between macOS versions. (#1262)
Make langsmith-pyo3 v0.1.0rc2 release. (#1260)
Ensure the wheel-building workflow runs if it's changed. (#1259)
Remove links in vendored code that point outside the sdist source code. (#1256)
Build 3.13 wheels for all platforms except Windows. (#1261)
Rename the macos artifacts to include the macOS version names. (#1258)
Add Python 3.13 to matrix for building langsmith-pyo3 wheels. (#1257)
Add `macos-15` runner to the PyO3 wheel build matrix. (#1255)
Release candidate `langsmith-pyo3` Python package (#1254)
Exclude the `vendor` directory from link-check.
Fix broken link.
Reformat benchmarking files.
Delint benchmark files.
Hold off on using `Option` method that will become stable in 2 days :)
Back out Python package changes for now.
Add safeguard for publishing versions that match the tag.
Enable publishing PyO3 package under `langsmith-pyo3==<version>` tags.
Mark `langsmith-pyo3` as a release candidate.
Arc the shared Rust client config, to avoid copying it across threads.
Intern all Python dict key strings in the Rust bindings. Clean up errors.
Standardize benchmark JSON shape and size.
Add auth capability to the blocking client, and an end-to-end benchmark.
Merge branch 'main' into pg/full-pyo3-package
Use string literals for logger template messages.
Only send batch traces to Rust code if batch-specific keys are set.
Add langsmith client option to use the PyO3 bindings.
Improve support for pulling structured prompts w/ model info (#1210)
Refrain from overwriting experiment metadata (#1250)
python[patch]: `evaluate` local mode (#1224)
recompile pattern if needed before its used to mask sensitive info (#1248)
Run only on `main`, PRs, and tags of the pyo3 package.
Switch Rust code to dashes instead of underscores.
Switch from `maturin upload` to trusted publishing action.
Specify explicit Rust 1.82 use, since `stable` is an old tag.
Us…
langtions-bot Bot
pushed a commit
that referenced
this pull request
Jun 16, 2026
## Summary Backs the project **Threads** summary row (`POST /runs/group/stats`) with SmithDB instead of ClickHouse, mirroring how `/runs/stats` already delegates to `/v2/runs/stats`. - **smith-go**: adds `group_count` (distinct non-empty `thread_id` count) as an explicit opt-in select on `/v2/runs/stats`, mapped to the SmithDB `STATS_GROUP_COUNT` proto enum. Excluded from the `all_*` meta-expansions, dropped from V1 select translation, and excluded from the V1/V2 shadow diff (V1 has no equivalent). - **smith-backend**: `group_stats()` dispatches to SmithDB when enabled for the tenant — two concurrent `/v2/runs/stats` requests (feedback split out from run/token/facet/`group_count`) with a run-level filter `and(exists(thread_id, true), <user filter>)`, mapped back into `RunGroupStats`. Adds `group_count` to `RunStatsSelect`. ## Reviewer notes - **⚠️ Build is red until the proto sync lands.** `gen.RunStatsAttribute_STATS_GROUP_COUNT` is referenced but the generated enum hasn't synced from the `smithdb` repo into this checkout yet. Referencing the gen symbol directly (rather than a guessed placeholder) guarantees the correct wire value. This PR should merge after the smithdb-sync PR brings the enum in. - **Run-level filter intentionally omits `is_root`** — thread stats aggregate over *all* runs with a non-empty `thread_id` (matching `/v2/threads` run-in-range semantics), so Run Count / latency / token aggregates will differ from the v1 ClickHouse path (which aggregates root runs of qualifying threads). This is a deliberate, accepted difference. - **Fallback to ClickHouse** when SmithDB stats are disabled for the tenant or the filter references group-level attributes (`run_count`, `thread_idle_seconds`) that have no run-level equivalent. - **Feedback-keyed facets** are stripped from the response (not consumed by the summary row); `run_facets` is otherwise preserved (consumed by the conversation filter shortcuts). ## To verify post-sync - Confirm SmithDB returns the column under the wire key `group_count` (decode passthrough); add a wire-key entry if it differs. - Confirm whether v2 `RUN_FACETS` emits feedback-keyed facets — the strip is a safe no-op if it doesn't. ## Self-Hosted Release Note none ## Test Plan - [x] Python unit tests: gate (enable/disable, group-filter fallback, allowlist), filter composition, and request-body + response mapping/stripping with mocked `internal_platform_request`. - [x] Go: `group_count` parse tests (maps to the attr; not pulled in by `all_*` meta-expansions). - [x] Go build + `runs/v2/query` tests — blocked on the `STATS_GROUP_COUNT` proto sync; run once green. - [x] Manual: enable SmithDB stats for a tenant, open a project's Threads tab, confirm the summary row renders; toggle a `run_count` thread filter and confirm CH fallback. --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> feat: allow feedback creation to skip trace retention upgrade (#27546) feat(run-rules): per-action trace-retention control for automations [LSO-2749] (#27304) feat(sandboxes)!: add ArtifactFS git mounts (#27442) feat: expose the resources from the generated openapi client in the langsmith client (#3018) chore: js to 0.7.8 and py to 0.8.16 (#3029) chore: sync langsmith_api (#3020) fix(python): derive create_child run id from start_time [LSDK-220] (#3027) chore: repoint support@langchain.dev mentions to the Support Portal (#3024) fix(experiments): extract keys from wrapped evaluator function (#3014) feat(py): add sync/async conversion for Sandbox and SandboxClient (#3019) chore: bump JS to 0.7.7 and Python to 0.8.15 (#3025) fix(python): deliver sandbox output callbacks across stream reconnects (#3023) fix(js): deliver sandbox output callbacks across stream reconnects (#3022) chore: protect JS openapi client in workflow (#3017) chore: sync langsmith_api (#3006) chore(js): exclude generated _openapi_client from linters and type-checker (#3015) chore(py): bump Python SDK to 0.8.14 (#3013) feat: add deepagent compatibility smoke tests to Python and JS CI [LSDK-214] (#2997) chore(py): bump Python SDK to 0.8.13 (#3012) fix(py): type sandbox startup errors (#3004) chore: bump JS to 0.7.6 and Python to 0.8.12 (#3011) fix: avoid duplicate /v1 in hub URLs when endpoint includes /api/v1 (#3008) feat(js): cross-process OAuth refresh filesystem lock (#2989) feat(python): cross-process OAuth refresh filesystem lock (#2988) fix: gemini double counting of over 200k tokens (#3003) ci: protect _openapi_client from unauthorized changes (#2999) fix: match async feedback client to sync behavior [LSEN-206] (#3001) release(py): 0.8.10 (#3000) chore(deps-dev): bump @jest/globals from 29.7.0 to 30.3.0 in /js (#2807) chore(deps): bump aiohttp from 3.13.5 to 3.14.0 in /python (#2983) chore(deps): bump gaurav-nelson/github-action-markdown-link-check from 499c1e7f3637c131334fa8e937c45144f79d72d2 to 5c5dfc0ac2e225883c0e5f03a85311ec2830d368 (#2969) chore(deps): bump the py-major group across 1 directory with 4 updates (#2996) chore(deps): bump the py-minor-and-patch group across 1 directory with 12 updates (#2998) chore(deps-dev): bump types-requests from 2.33.0.20260408 to 2.33.0.20260518 in /python (#2973) chore(deps): bump starlette from 0.52.1 to 1.0.1 in /python (#2984) chore(deps-dev): bump types-psutil from 7.2.2.20260408 to 7.2.2.20260518 in /python (#2974) chore(deps): bump pnpm/action-setup from ac6db6d3c1f721f886538a378a2d73e85697340a to 0e279bb959325dab635dd2c09392533439d90093 (#2970) chore(deps): bump astral-sh/setup-uv from 94527f2e458b27549849d47d273a16bec83a01e9 to 37802adc94f370d6bfd71619e3f0bf239e1f3b78 (#2968) feat(evaluation): adding examples and repetitions to create tracer sessions calls (#2954) Add AWS auth proxy helpers to JS SDK (#2992) Add AWS auth proxy helpers to Python SDK (#2991) chore: sync langsmith_api (#2994) fix(lint): exclude _openapi_client from mypy (#2995) chore: sync langsmith_api (#2911) fix(lint): exclude _openapi_client from ruff (#2993) feat: support JS prompt commit tags (#2987) feat(python): expose LS_MESSAGE_VIEW_EXCLUDE constant [lso-2605] (#2982) feat(js): exposed pairwise comparison URL on ComparativeExperimentResults [LSE-2374] (#2981) feat(python): expose pairwise comparison URL on ComparativeExperimentResults [LSE-2270] (#2975) feat(python): support trace_id and retry-on-NotFound in async create_… (#2963) feat(sandbox): size the dockerfile-build sandbox via vCpus/memBytes (js) (#2980) feat(sandbox): size the dockerfile-build sandbox via vcpus/mem_bytes (python) (#2979) test(python): deflake test_tracing_queue_limit_drops_when_full (#2964) chore: update dependabot.yml to comply with posture checks (#2966) ci: add minimum workflow permissions (#2967) chore(deps-dev): bump types-tqdm from 4.67.3.20260408 to 4.67.3.20260518 in /python (#2959) chore(deps-dev): bump the py-minor-and-patch group in /python with 6 updates (#2958) chore(deps-dev): bump wrapt from 1.17.3 to 2.2.1 in /python (#2961) chore(deps-dev): bump google-adk from 1.10.0 to 2.1.0 in /python (#2960) chore(deps-dev): bump typescript from 5.9.3 to 6.0.3 in /js (#2839) chore(deps): bump the py-minor-and-patch group across 1 directory with 19 updates (#2934) chore(deps): update myst-parser requirement from >=3 to >=4.0.1 in /python (#2841) chore(deps): bump websockets from 15.0.1 to 16.0 in /python (#2811) chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 11 updates (#2931) feat(sandbox): add JS Dockerfile snapshots (#2951) fix(sandbox): build Dockerfile snapshots off /tmp (#2956) fix(python): retry sandbox pool timeouts (#2953) release(py): 0.8.7 (#2947) fix(js): add organization id to context URLs (#2946) fix(python): add organization id to context URLs (#2945) feat(sandbox): build snapshots from Dockerfiles (#2950) fix: reconnect sandbox command streams on EOF (#2941) release(py): 0.8.6 (#2944) fix(python): [LSDK-202] return context hub URLs for pushed contexts (#2938) release(js): 0.7.3 (#2943) fix(python): RunTree.create_child appends to self.child_runs LSE-2221 (#2942) fix(js): [LSDK-202] return context hub URLs for pushed contexts (#2939) fix(python): retry sandbox connect timeouts (#2940) chore: exclude langsmith_api from ruff linter (#2933) chore(deps): update pydata-sphinx-theme requirement from >=0.15 to >=0.18.0 in /python (#2928) chore(deps-dev): bump types-pyyaml from 6.0.12.20250915 to 6.0.12.20260518 in /python (#2927) chore(deps-dev): bump @anthropic-ai/sdk from 0.95.1 to 0.95.2 in /js (#2917) feat: add list_runs_from_annotation_queue method [closes LSDK-193] (#2892) release(js): 0.7.2 (#2922) feat: install websockets by default for sandbox (#2916) AI SDK telemetry and AI SDK v7 support (#2901) chore(deps-dev): bump @anthropic-ai/sdk from 0.95.0 to 0.95.1 in /js (#2912) chore(deps): bump idna from 3.11 to 3.15 in /python (#2913) chore(deps): bump protobufjs from 7.5.5 to 8.0.1 in /js (#2896) chore(deps): bump hono from 4.12.18 to 4.12.19 in /js (#2909) chore(deps): bump @protobufjs/utf8 from 1.1.0 to 1.1.1 in /js/internal/environment_tests/test-exports-vite in the npm_and_yarn group across 1 directory (#2908) chore(deps): bump postcss from 8.5.8 to 8.5.14 in /js (#2898) chore(deps-dev): bump @anthropic-ai/sdk from 0.94.0 to 0.95.0 in /js (#2881) chore(deps): bump fast-uri from 3.1.0 to 3.1.2 in /js (#2895) chore(deps): bump hono from 4.12.15 to 4.12.18 in /js (#2894) chore(deps): bump authlib from 1.6.11 to 1.6.12 in /python (#2888) chore(deps): bump mako from 1.3.11 to 1.3.12 in /python (#2880) chore(deps-dev): bump @google/genai from 1.50.1 to 2.0.1 in /js (#2875) release(py): 0.8.5 (#2903) release(js): 0.7.1 (#2902) feat(sandbox): forward client default headers on exec WebSocket (#2899) feat(python): add Client.close() to release session [closes LSDK-183] (#2866) feat(js): allow disabling multipart streaming via env variable (#2900) fix(js): add alias for `experimental/sandbox` to appease broad peer dep range within `deepagents` (#2893) release(js): 0.7.0 (#2890) release(py): 0.8.4 (#2889) feat(sandbox): make snapshot optional and add TS options overload (#2887) sdk(py): drop sandbox alpha/experimental warnings (#2884) sdk(js): rename experimental/sandbox -> sandbox (breaking) (#2885) chore(deps-dev): bump @anthropic-ai/sdk from 0.93.0 to 0.94.0 in /js (#2878) chore(deps): bump the npm_and_yarn group across 2 directories with 2 updates (#2868) chore(deps): bump the py-minor-and-patch group across 1 directory with 11 updates (#2879) chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 16 updates (#2877) chore(deps): bump the py-minor-and-patch group across 1 directory with 12 updates (#2876) chore(deps): bump urllib3 from 2.6.3 to 2.7.0 in /python (#2873) chore(deps-dev): bump @anthropic-ai/sdk from 0.92.0 to 0.93.0 in /js (#2869) chore(deps-dev): bump langchain-core from 1.3.2 to 1.3.3 in /python (#2867) chore(deps): bump hono from 4.12.15 to 4.12.18 in /js (#2860) chore(deps): bump postcss from 8.5.8 to 8.5.14 in /js (#2857) chore(deps-dev): bump @anthropic-ai/sdk from 0.91.1 to 0.92.0 in /js (#2858) chore(deps): bump python-multipart from 0.0.26 to 0.0.27 in /python (#2859) release(js): 0.6.3 (#2864) release(py): 0.8.3 (#2863) docs(langsmith): clarify trust boundaries when working with hub (#2861) Fix push_agent URL owner for name-only identifiers (#2862) sdk(js): replace ttlSeconds with idleTtlSeconds + deleteAfterStopSeconds (#2854) sdk(py): replace ttl_seconds with idle_ttl_seconds + delete_after_stop_seconds (#2853) release(js): bump to 0.6.2 (#2856) fix(js): prevent sending [object Object] as span attribute when dealing with nested objects, send full langsmith.usage_metadata if present (#2845) Bump Python SDK version to 0.8.2 (#2855) fix: parse urllib3 version with packaging.Version (#2851) Bump JS SDK version to 0.6.1 (#2847) Bump Python SDK version to 0.8.1 (#2848) Extract JS profile auth service (#2846) Add Python profile loading (#2835) Add JS profile loading (#2834) chore(deps): bump postcss from 8.5.8 to 8.5.12 in /js (#2827) chore(deps-dev): bump google-adk from 1.10.0 to 1.28.1 in /python (#2823) chore(js): remove experimental opencode integration (#2836) release(py): 0.8.0 (#2833) release(js): 0.6.0 (#2832) feat(js,py): JS 0.6.0, Py 0.8.0 (#2831) release(py): 0.7.38 (#2825) release(js): 0.5.26 (#2824) fix(js): Pull Claude Agent SDK subagent runs from transcript, add tool span for subagents, merge message blocks by id (#2816) chore: add apac support (#2821) fix(py): fix RunTree ValidationError when inputs or outputs is a Pydantic BaseModel (#2820) chore(js): Switch to oxfmt and oxlint (#2819) feat(py): Adds strands OTEL exporter (#2817) chore(deps): bump the py-minor-and-patch group across 1 directory with 18 updates (#2808) chore(deps-dev): bump @langchain/openai from 0.5.18 to 0.6.17 in /js (#2806) chore(deps-dev): bump types-pyyaml from 6.0.12.20250915 to 6.0.12.20260408 in /python (#2812) chore(deps): update myst-nb requirement from >=1.1.1 to >=1.4.0 in /python (#2810) chore(deps): update sphinx-autobuild requirement from >=2024 to >=2024.10.3 in /python (#2809) chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 4 updates (#2803) ci(py): Bump pytest timeout to 2m (#2815) docs(sandbox): document default idle TTL of 10 minutes (#2788) chore(js): Remove types/uuid (#2814) feat(js): add tracing of opencode (#2776) release(py): 0.7.37 (#2802) fix(py): Fix concurrency for multiple Claude Agent SDK sessions (#2795) fix(python): flush pending traces during Client.cleanup() (#2799) chore(deps-dev): bump google-adk from 1.10.0 to 1.28.1 in /python (#2794) chore(deps): bump postcss from 8.5.8 to 8.5.10 in /js/internal/environment_tests/test-exports-vite in the npm_and_yarn group across 1 directory (#2791) fix(python): flush both tracing_queue and compressed_traces in flush() (#2796) release(js): 0.5.25 (#2801) fix(js): Include auth headers on info requests (#2800) fix(js): minor test improvements (#2429) feat(js,python): Adds hub model config and provider to schemas (#2793) chore(js): Fix perf test flagging (#2792) release(js): 0.5.24 (#2790) perf(js): Offload serialize to worker thread at flush time (#2781) release(py): 0.7.36 (#2789) feat(py, js): per-replica `client` arg to support runtime destination overrides (#2759) fix(js): Vendor UUID to satisfy security warning and keep CJS support (#2784) release(js): 0.5.23 (#2786) perf(js): Use estimator instead of serialization in hot path (#2780) docs: add CONTRIBUTING.md covering Python + JS release flow (#2787) fix(js): honor numRepetitions when data is an Example[] (#2779) release(py): 0.7.35 (#2785) fix(py): suppress Pydantic serialization warnings for ParsedBetaMessage in wrap_anthropic (#2783) feat(js): add agent/skill hub methods on Client with unit tests (#2747) feat(python): add Hub agent/skill methods on Client and AsyncClient (#2746) fix: patch 2 security alerts (high severity) (#2756) release(py): 0.7.34 (#2778) chore(js): Consolidate and cut down on integration tests (#2775) feat: add Context schemas for agent/skill/file hub repos (#2745) feat(py): Adds runtime overrides for updating internal methods (#2766) fix(python): Update Python async and sandbox client reprs (#2773) ci(python): Use cassettes for Google tests (#2771) release(js): 0.5.22 (#2774) fix(js): Update logged client string representations to hide API key (#2772) feat(js-sandbox): support snapshotName and list filters (#2770) chore(js): remove templates, pools, and volumes from sandbox SDK (#2758) feat(python-sandbox): support snapshot_name and list filters (#2769) chore(python): remove templates, pools, and volumes (#2757) feat(js): Adds OpenAI Agents JS SDK wrapper (#2763) fix(js/sandbox): clone Response before consuming body in error handlers (#2760) chore(deps): bump websockets from 15.0.1 to 16.0 in /python (#2510) chore(deps-dev): bump langchain-openai from 1.1.12 to 1.1.14 in /python (#2730) chore(deps-dev): bump google-adk from 1.14.1 to 1.28.1 in /python (#2755) chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 10 updates (#2753) chore(deps): bump the py-minor-and-patch group across 1 directory with 13 updates (#2752) chore(deps): bump authlib from 1.6.9 to 1.6.11 in /python (#2732) chore(deps-dev): bump @anthropic-ai/sdk from 0.89.0 to 0.90.0 in /js (#2731) chore(deps-dev): bump types-requests from 2.33.0.20260327 to 2.33.0.20260408 in /python (#2741) feat(js): add hideMetadata support (#2720) release(py,js): py 0.7.33, js 0.5.21 (#2743) feat(sandbox): expose per-sandbox proxy_config in py + js clients (#2742) fix(js): move jest retry config to runtime setup file (#2733) chore(deps): bump mako from 1.3.10 to 1.3.11 in /python (#2729) python: pass OTEL config directly to exporter instead of setting env vars (#2726) chore(deps-dev): bump @anthropic-ai/sdk from 0.88.0 to 0.89.0 in /js (#2724) release(py,js): py 0.7.32, js 0.5.20 (#2721) chore(deps): bump python-multipart from 0.0.22 to 0.0.26 in /python (#2722) feat(js/sandbox): add snapshot API and start/stop lifecycle (#2717) docs: add initial threat model for langsmith-sdk (#2669) feat(python/sandbox): add snapshot API and start/stop lifecycle (#2713) release(js): 0.5.19 (#2715) release(py): 0.7.31 (#2716) feat: Filter kwargs from new token events (#2714) chore(deps-dev): bump rich from 14.3.3 to 15.0.0 in /python (#2708) chore(deps-dev): bump types-psutil from 7.2.2.20260130 to 7.2.2.20260408 in /python (#2709) chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 7 updates (#2712) chore(deps): bump actions/github-script from 8 to 9 (#2706) chore(deps-dev): bump @anthropic-ai/sdk from 0.85.0 to 0.86.0 in /js (#2702) chore(deps): bump the py-minor-and-patch group across 1 directory with 10 updates (#2711) chore(deps): bump pnpm/action-setup from 5 to 6 (#2705) chore(deps-dev): bump types-tqdm from 4.67.3.20260303 to 4.67.3.20260408 in /python (#2710) feat(js): Adds ls_agent_type metadata to AI SDK runs (#2701) feat(py): Tag OpenAI Agent Python SDK runs with ls_agent_type (#2699) chore(deps-dev): bump @anthropic-ai/sdk from 0.84.0 to 0.85.0 in /js (#2700) chore(deps): bump cryptography from 46.0.6 to 46.0.7 in /python (#2693) chore(deps-dev): bump @anthropic-ai/sdk from 0.82.0 to 0.84.0 in /js (#2684) chore(deps-dev): bump langchain-core from 1.2.23 to 1.2.28 in /python (#2692) release(py): 0.7.30 (#2698) fix(py): Fix run tree memory leak (#2696) feat(js): Add metadata to Claude Agent SDK JS tracing (#2695) chore(js/sandbox): suppress warning log (#2694) release(js): 0.5.18 (#2691) fix(js): Fix prototype pollution bug in anonymizers (#2690) feat(python): add service feature to sandbox (#2665) release(py): 0.7.29 (#2686) feat(py): Fix race condition around Claude Agent SDK instrumentation (#2685) release(js): 0.5.17 (#2681) release(py): 0.7.28 (#2682) fix(py): Fix type checking (#2683) Fix(py): Add model_dump fallback to prevent .dict() deprecation warning (#2655) chore(deps): bump google-cloud-aiplatform from 1.126.1 to 1.133.0 in /python (#2679) feat(py,js): Allow dynamically setting custom client headers (#2678) chore(py): Deflake test (#2680) chore(deps): bump pnpm/action-setup from 4 to 5 (#2658) chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 8 updates (#2667) chore(deps-dev): bump the py-minor-and-patch group across 1 directory with 11 updates (#2677) feat(py): Support subagent tracing in Claude Agents SDK, fix usage and duplicate messages (#2670) release(python): 0.7.27 (#2676) fix: add more retryable errors to the async client (#2675) fix: retry on 502/3/4 in get_prompt (#2672) feat(js): Add ls_integration metadata to AI SDK and Claude Agents SDK (#2668) chore(deps-dev): bump vite from 6.4.1 to 6.4.2 in /js/internal/environment_tests/test-exports-vite in the npm_and_yarn group across 1 directory (#2666) chore(js): Remove Chalk dep (#2664) chore: bump version to 0.7.26 (#2663) feat(sdk): add list_project_issues method (#2654) chore(deps-dev): bump @anthropic-ai/sdk from 0.80.0 to 0.81.0 in /js (#2646) Bump version: 0.7.24 → 0.7.25 (#2652) feat(otel): add set_metadata to OtelSpanProcessor for thread_id propagation (#2650) feat(py, js): add description to hub prompts sdk (#2639) chore: remove index_dataset, similar_examples, and sync_indexed_dataset from clients (#2645) chore: bump js (#2647) fix: anthropic parse messages in js (#2644) chore: bump py version (#2643) fix: add wrapping for client.beta.messages.parse (#2642) chore: Adds exclude-newer to uv settings (#2638) chore: Switch to pnpm, use minimumReleaseAge (#2635) chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 6 updates (#2634) chore(deps): bump pygments from 2.19.2 to 2.20.0 in /python (#2633) chore(deps): bump the py-minor-and-patch group across 1 directory with 20 updates (#2629) chore(deps): bump handlebars from 4.7.8 to 4.7.9 in /js (#2620) chore(python): Release 0.7.23 (#2632) feat(python): Support headers arg in sandbox client (#2619) chore: support aws saas cluster (#2628) chore(deps): bump cryptography from 46.0.5 to 46.0.6 in /python (#2623) chore(deps-dev): bump langchain-core from 1.2.15 to 1.2.22 in /python (#2622) release(js): 0.5.15 (#2618) fix: include model field in wrap_gemini js traced inputs (#2608) chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 17 updates (#2614) chore(deps): bump picomatch from 2.3.1 to 2.3.2 in /js/internal/environment_tests/test-exports-metro in the npm_and_yarn group across 1 directory (#2616) feat(js): add ttl feature for sandboxes (#2617) chore(deps): bump requests from 2.32.5 to 2.33.0 in /python (#2613) release(js): 0.5.14 (#2612) feat(js): fix tracing of subagents for newer versions of @anthropic/claude-agent-sdk, harden null checks (#2611) feat(python): add ttl feature for sandboxes (#2609) release(js): 0.5.13 (#2607) feat(js): Add proper aggregation for AI SDK reasoning when streaming (#2606) release(js): 0.5.12 (#2602) feat(js): Parse AI SDK reasoning blocks into standard content blocks (#2601) chore(deps): bump flatted from 3.3.3 to 3.4.2 in /js (#2600) chore: add experiment id (#2599) chore: bump python SDK version to 0.7.21 (#2598) fix: add debug logging to background thread shutdown and final flush (#2597) chore(deps): bump pyjwt from 2.10.1 to 2.12.0 in /python (#2594) chore(deps): bump dorny/paths-filter from 3 to 4 (#2578) chore(deps): bump pyasn1 from 0.6.2 to 0.6.3 in /python (#2587) chore(deps): bump pyopenssl from 25.3.0 to 26.0.0 in /python (#2581) chore(deps): bump authlib from 1.6.8 to 1.6.9 in /python (#2580) chore(deps-dev): bump multipart from 1.3.0 to 1.3.1 in /python (#2566) chore(deps-dev): bump dotenv from 16.4.7 to 17.3.1 in /js (#2507) release(js): 0.5.11 (#2592) fix(js): Fix AI SDK and Claude Agents SDK in non-Node envs (#2591) chore: apply auth headers for multipart compressed (#2589) Bump version: 0.7.18 → 0.7.19 (#2588) fix(python): add _on_ending to OtelSpanProcessor for opentelemetry-sdk 1.40.0 (#2586) feat: set source: "sdk" on SDK-created datasets (#2584) fix(python): fix flaky test_workspace_error_recovery_flow (#2583) Bump version: 0.7.17 → 0.7.18 (#2582) fix(python): propagate exceptions from ExperimentResults._process_data (#2574) fix(python): handle concurrent example creation in pytest-xdist (#2549) test(python): add AsyncExperimentResults edge case tests (#2573) fix(python): propagate exceptions from AsyncExperimentResults._proces… (#2572) fix(python): replace busy-wait in AsyncExperimentResults.__anext__ (#2550) chore: js version bump (#2570) fix: fix js missing tz gs (#2569) Bump version: 0.7.16 → 0.7.17 (#2568) fix: catch missing tz info (#2567) feat(sandbox): add reconnection of tunnels (#2563) feat: add ws based exec to js sdk (#2540) docs(sandbox): add TCP tunnel documentation (#2560) feat(sandbox): add TCP tunnel support (#2559) feat(sandbox): add yamux multiplexing protocol (#2558) fix(sandbox): prevent CommandHandle.kill() from hanging (#2557) chore: bump ver (#2547) chore: bump js ver (#2548) feat: auto populate trace id child runs (#2534) fix: tool calls fix for anthropic wrapper (#2537) fix: gemini wrapper inputs (#2532) release(py): Bump version: 0.7.14 → 0.7.15 (#2544) fix(python): Fix pytest behavior with fixtures (#2543) fix: add async create support for sandboxes (#2539) release(js): 0.5.8 (#2538) fix(js): use UUID v7 for evaluator run IDs and feedback IDs (#2536) chore(py): Bump version: 0.7.13 → 0.7.14 (#2535) fix: sum Anthropic cache tokens into input_tokens for correct cost calculation (#2519) Bump version: 0.7.12 → 0.7.13 (#2531) feat(py): add experiment-level metadata to pytest integration (#2524) fix: bump minimatch to resolve CVE-2026-27903 (#2502) fix: missing await (#2528) fix: convert non primitive types to JSON strings (#2527) fix: initialize otel exporter before background thread (#2526) chore: bump version (#2521) fix: sample before transform in ingest (#2488) bump version for insights sdk changes (#2520) add get insights reports with runs (#2517) Bump version: 0.7.9 → 0.7.10 (#2516) fix: memory leak in _cached_attachment_args when tracing closures (#2515) chore(deps): bump minimatch from 3.1.2 to 3.1.5 in /js/internal/environment_tests/test-exports-metro in the npm_and_yarn group across 1 directory (#2489) fix: update deprecated model and re-record VCR cassettes (#2503) chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 9 updates (#2490) chore: bump py ver (#2501) fix: catch blocksize typeError (#2499) Bump version: 0.7.7 → 0.7.8 (#2498) fix(anthropic): Add usage_metadata to metadata (#2497) docs: rm pytest beta docstring (#2496) feat(sandbox): async sandbox creation (#2493) Description change for read_dataset_version (#2487) chore(deps): bump rollup from 4.40.2 to 4.59.0 in /js (#2484) feat(sandbox): add retry mechanism for python client (#2486) chore(deps): bump rollup from 4.57.1 to 4.59.0 in /js/internal/environment_tests/test-exports-vite in the npm_and_yarn group across 1 directory (#2483) chore(deps): bump the py-minor-and-patch group across 1 directory with 15 updates (#2475) chore: bump GitHub workflow Node.js versions to 24.x (#2485) fix(ci): replace mistakenly pinned Node 22.4.1 with 22.x (#2477) fix: bump versions (#2482) fix: add integration and version num (#2481) feat: add raw response parsing for responses api to openai wrapper (#2480) feat: add native thread querying support (#2455) feat: persist failed trace payloads to disk for later replay (#2476) fix(js): Fix list commits endpoint for private prompts (#2479) chore(deps): bump google-cloud-aiplatform from 1.126.1 to 1.133.0 in /python (#2465) docs(python): document sandbox streaming, kill, stdin, and reconnect (#2449) test(python): add tests for CommandHandle and sandbox streaming integration (#2448) feat(python): add CommandHandle for streaming, kill, stdin, and reconnect (#2450) feat(python): use WebSocket transport by default with HTTP fallback (#2446) test(python): add tests for WebSocket transport layer (#2445) feat(python): add WebSocket transport for sandbox commands (#2443) release(js): 0.5.6 (#2467) fix(js): Respect traceRawHttp for tracing streaming AI SDK calls (#2466) release(js): 0.5.5 (#2464) fix(js): subagent tool calls tracking for latest claude agent sdk (#2463) release(py): 0.7.6 (#2462) chore(claude agent sdk): rm debug logs (#2461) feat(py, claude agent sdk): Add wrapping for PostToolUseFailure hook (#2460) perf(py): Improve retry logic for tracing ops (#2459) fix(py, claude agent sdk): Correctly parent spans in asyncio context (#2457) feat(python): add sandbox exception types and client plumbing (#2442) release(py): 0.7.5 (#2456) fix(py/adk): fix multi-agent tracing (#2451) make zstandard optional (#2453) chore(deps-dev): bump the js-minor-and-patch group across 1 directory with 10 updates (#2433) chore(deps-dev): bump pandas-stubs from 2.3.3.251219 to 2.3.3.260113 in /python (#2404) chore(deps): bump the py-minor-and-patch group across 1 directory with 16 updates (#2440) chore(deps-dev): bump @jest/reporters from 29.7.0 to 30.2.0 in /js (#2417) chore(deps): bump chalk from 4.1.2 to 5.6.2 in /js (#2416) release(py): 0.7.4 (#2441) chore: lock dependencies (#2439) fix(google-adk): add wrapt dependency (#2436) release(py): 0.7.3 (#2428) chore(python): openai agents: delay span start for spans without inputs on start event (#2424) fix: propagate tracingEnabled to nested traceables (#2427) release(py): 0.7.2 (#2426) feat(python): add exceptions_to_handle to @traceable (#2423) feat(python): add feedback config CRUD and annotation queue rubric items (closes LSPE-67) (#2419) release(js): 0.5.4 (#2422) fix(js): Add on_start handler for traceable, use in evaluate (#2421) feat(js): add feedback config CRUD and annotation queue rubric items (closes LSPE-67) (#2420) fix: ignoring p-queue dep (#2414) release(js): 0.5.3 (#2410) fix(js): Remove async (#2409) fix(js): Log Vitest/Jest outputs even if test throws an error (#2408) chore(deps): bump the py-minor-and-patch group across 1 directory with 20 updates (#2406) chore(deps-dev): bump pytest from 8.4.2 to 9.0.2 in /python (#2405) chore(deps): bump packaging from 25.0 to 26.0 in /python (#2403) chore(deps-dev): bump eslint-config-prettier from 8.10.0 to 10.1.8 in /js (#2399) chore(deps-dev): bump the js-minor-and-patch group in /js with 6 updates (#2398) chore(deps): bump cryptography from 46.0.3 to 46.0.5 in /python in the uv group across 1 directory (#2397) chore: update dependabot.yml to comply with posture checks (#2393) Google ADK LangSmith tracing enhancements (#2394) chore(deps-dev): bump node-fetch from 2.7.0 to 3.3.2 in /js (#2380) chore(deps-dev): bump the js-minor-and-patch group in /js with 4 updates (#2376) chore(deps-dev): bump cross-env from 7.0.3 to 10.1.0 in /js (#2379) chore(deps-dev): bump openai from 5.8.2 to 6.18.0 in /js (#2378) release(js): 0.5.2 (#2392) fix(js): Remove @internal (#2391) release(js): 0.5.1 (#2389) release(py): 0.7.1 (#2388) fix(js): Add system message visibility to Anthropic wrapper traces (#2375) fix(js,py): Adds backcompat for old prompt cache API (#2386) fix(js): Restore default concurrency behavior for JS eval runner (#2385) feat(js): run evaluations as examples complete (#2349) fix(ci): Convert JS release workflow to use OIDC (#2383) release(js): 0.5.0 (#2381) release(py): 0.7.0 (#2382) chore: Support jwt auth in replicas (#2293) feat(py,js): Use global singleton for prompt cache, enable by default (#2371) chore: rm unused fn (#2346) chore(deps): bump the js-minor-and-patch group in /js with 20 updates (#2364) fix(deps): resolve js-yaml prototype pollution vulnerability (#2370) fix(deps): resolve glob CLI command injection (CVE-2025-64756) (#2368) fix: esbuild CVE dependabot 78 (#2369) chore: adding workflow perms (#2367) chore(deps-dev): bump babel-jest from 29.7.0 to 30.2.0 in /js (#2365) chore(deps-dev): bump eslint-plugin-prettier from 4.2.1 to 4.2.5 in /js (#2366) chore(deps): update httpx requirement from <0.28.0,>=0.23.0 to >=0.23.0,<0.29.0 in /python (#2363) chore(deps-dev): bump ty from 0.0.10 to 0.0.15 in /python in the py-minor-and-patch group (#2362) chore(deps): bump actions/cache from 4 to 5 (#2361) chore(deps): bump astral-sh/setup-uv from 6 to 7 (#2360) chore(deps): bump actions/checkout from 2 to 6 (#2359) chore(deps): bump actions/github-script from 6 to 8 (#2358) chore(deps): bump actions/setup-node from 3 to 6 (#2357) chore(deps): bump jws from 4.0.0 to 4.0.1 in /js (#2355) chore(deps-dev): bump esbuild from 0.20.2 to 0.25.0 in /js/internal/environment_tests/test-exports-esbuild in the npm_and_yarn group across 1 directory (#2354) chore(deps): bump pyasn1 from 0.6.1 to 0.6.2 in /python (#2353) chore(deps): bump protobuf from 6.33.2 to 6.33.5 in /python (#2352) chore(deps): bump python-multipart from 0.0.21 to 0.0.22 in /python (#2351) chore:deps (#2356) chore(deps): bump vite from 6.3.5 to 6.4.1 in /js (#2284) chore(deps-dev): bump langchain from 0.3.29 to 0.3.37 in /js (#2283) chore(deps): bump form-data from 4.0.3 to 4.0.5 in /js (#2282) Bump version: 0.6.8 → 0.6.9 (#2347) don't set parent context on span start (#2343) prevent claude agent sdk double wrapping (#2344) feat(sandbox): add js lib (#2335) fix(sandbox): endpoint for python async (#2340) feat: add pre-commit (#2339) Bump version: 0.6.7 → 0.6.8 (#2334) chore: add chat_name and completions_name optional parameter (#2332) feat(python): Non-otel google adk wrapper (#2330) release(py): 0.6.7 (#2327) release(js): 0.4.12 (#2326) feat(py,js): Allow prepopulating invocation params in passed metadata for client wrappers (#2320) fix(python): fix upsert param in create_project (#2322) pass metadata on feedback creation (#2317) feat(js,python): Use xxhash for deterministic UUID7 for replicas (#2315) bump js sdk (0.4.11) (#2318) export google gen ai wrapper (#2316) release(py): 0.6.6 (#2314) feat(py): Allow setting background tracing threads as daemons (#2310) fix(sandbox): default endpoint (#2313) release: js 0.4.10 (#2312) release: py 0.6.5 (#2311) chore: add as_of to create and update examples response (#2308) feat: add sandbox sdk (#2303) feat(js): refactor of Claude Agent SDK wrapper (#2306) Handle streaming inputs in claude agent sdk (#2300) bump js 0.4.8 (#2304) feat(js): respect disable run compression (#2270) feat(js): track latest generator input in claude agent sdk (#2298) feat: add support for tracing Claude Agent SDK JS (#2271) chore: rm rust lib (#2290) beta wrap_gemini ts wrapper (#2121) Bump version: 0.6.3 → 0.6.4 (#2292) chore: Fix release check (#2289) Fix: Add with_raw_response support to OpenAI & Anthropic wrapper (#2134) fix(js): add defensive null checks in AsyncCaller error handler (#2285) fix(js): remove explicit message type from `convertMessageToTracedFormat` (#2288) bump sdk versions (#2287) fix: simplify baggage header serialization (#2286) chore(deps-dev): bump @langchain/core from 0.3.72 to 0.3.80 in /js (#2280) release(python) 0.6.2 (#2277) chore: dynamic versioning (#2278) chore: consolidate workflow files (#2276) chore: set config in traceable (#2275) docs: fix some docstrings (#2269) chore: bump sdk (#2268) feat: Pass in Cache, rename (#2264) feat(python sdk): Add support for setting commit tags when pushing a prompt (#2265) ci: test more bundlers (#2263) feat(python): Bump pydantic to v2 (#2248) feat: add prompt cache back and setup environment tests (#2260) release(js): bump to 0.4.4 (#2259) Revert "feat: Replace UUID5 with deterministic UUID7 for replicas" (#2257) Revert "feat: add js prompt caching" (#2258) chore(js): bump JS to 0.4.3 (#2253) bump(python): 0.5.2 (#2256) fix(claude): correctly parse llm and tool inputs in claude agent sdk (#2255) feat: add js prompt caching (#2251) feat: add prompt caching to python sdk (#2246) feat: Replace UUID5 with deterministic UUID7 for replicas (#2249) feat(js): Add support for tracing tool loop agent (#2244) fix(js): Remove default Jestlike timeout (#2243) feat(js): Add support for tracing AI SDK 6 (#2237) fix(python): pull prompt for newer langchain_core (#2239) Fix timestamp ordering violation in `RunTree.create_child` (#2240) fix(js): Remove unnecessary promise skip on error (#2234) release(js): 0.4.2 (#2233) fix(js): Avoid waiting for child runs to complete if parent throws an error (#2232) release(js): 0.4.1 (#2231) fix(js): Make traced async iterators call finally on success (#2230) fix(js): Fix JS Memory Leak clean child_runs (#2228) remove duplicate patch from claude agent sdk (#2189) Ignore empty string (#2225) feat(js): Add invocation param tracing for OpenAI responses wrapper in JS (#2220) chore(py): Fix Python integration tests (#2219) feat(openai): Add use responses API to OpenAI wrapper (#2218) release(py): 0.5.0 (#2217) release(js): 0.4.0 (#2216) feat(py,js): Python 0.5, JS 0.4 (#2182) bump(py): 0.4.60 (#2215) fix(openai agents sdk): Merge invocation params into run extra (#2214) feat: automatically infer attachments (#2200) release(js): 0.3.87 (#2204) fix(js): Use one generic param for async iterable in traceable types (#2203) fix(py): add missing imports during TYPE_CHECKING (#2201) release(js): 0.3.86 (#2202) fix(js): Fix traceable typing for async iterables and runnable config (#2199) feat(js): Wrap additional OpenAI methods in wrapOpenAI (#2198) release(py): 0.4.59 (#2197) release(js): 0.3.85 (#2196) feat(py,js): Add prop to omit traced runtime info (#2195) release(py): 0.4.58 (#2192) release(js): 0.3.84 (#2191) feat(py,js): Add batch example deletion method, hard delete for Python (#2190) release(py): 0.4.57 (#2187) release(js): 0.3.83 (#2186) feat(js): wrapAnthropic (#2183) Revert "fix(claude agent sdk): remove thread local storage" (#2185) chore(python): load child runs with dotted_order mismatches (#2179) release(py): 0.4.55 (#2177) feat(py): Add background callback error hook (#2176) bump(python): 0.4.54 (#2175) fix(claude agent sdk): Correctly parent tool llm runs (#2173) feat(py): track evaluator method (#2116) chore(insights): add insights agent youtube notebook (#2145) feat: Use uuid-utils (#2166) release(py): 0.4.52 (#2171) feat(python): add CRUD methods for feedback formulas (#2163) release(py): 0.4.51 (#2170) bump version (#2168) suppport custom header in python client (#2167) release(js): 0.3.82 (#2164) feat(js): Adds reroot support for replicas (#2155) release(python): 0.4.49 (#2162) test(python): Add unit test for replica remapping (#2161) fix(python): Add back uuid5 to replica remapping (#2160) fix(js): Vendor p-retry to avoid import issues (#2159) fix(js): add reporter support for Vitest 4.x (#2156) release(py): 0.4.48 (#2158) fix(py): Pass limit into list_runs (#2157) chore(python): rewrite docstrings removing sphinx (#2149) bump(python): 0.4.47 (#2153) fix(claude agent sdk): remove thread local storage (#2152) bump(py, js): bump versions (#2147) chore: Remove uuid7 warnings from sdks (#2146) Fix(python): Return wrapper for stream enter (#2143) release(py): 0.4.45 (#2142) fix js ci cd (#2139) feat(python): Add bounded queue size to compressed tracing queue (#2141) feat(python): Claude agent sdk subagent handling (#2125) release(py): 0.4.44 (#2137) fix(py): Add fallback for failed attachment downloads (#2136) fix(js): Adds more retryable statuses (#2135) release(js): 0.3.80 (#2133) feat(js): Increase max retries (#2130) feat(js): Adds maximum queue size (#2132) feat(py): add metadata helper (#2115) feat: wrap_gemini beta python (#2059) v2 API Changes (#2103) release(py): 0.4.42 (#2119) fix(py): pairwise eval concurrency (#2114) release(js): 0.3.79 (#2118) feat(js): Trace AI SDK experimental_output similarly to generate/streamObject (#2117) feat(py): add sdk methods for insights agent (#2087) chore(python): bump patch version (#2110) release(js): 0.3.78 (#2108) fix(js): Avoid dropped runs if id: undefined is passed to traceable (#2109) feat(js): Allow tracing steps in AI SDK wrappers, fix processOutputs type (#2106) fix(python): reduce memory of pending traces (#2107) release(py): 0.4.40 (#2104) feat(py,js): Trace responses.parse properly in OpenAI wrapper (#2105) feat(python): Fix claude tool tracing by using hooks (#2102) release(js): 0.3.77 (#2101) release(py): 0.4.39 (#2100) feat(py,js): Adds ls_invocation_params to client wrappers (#2098) release(js): 0.3.76 (#2095) fix(js): Allow async process outputs for AI SDK generate methods (#2093) release(js): 0.3.75 (#2089) feat(js): traceable types for processInputs and processOutputs (#1593) fix(python): remove ciruclar import from openai agents sdk (#2086) fix(python): Fix CI by bumping deps (#2081) chore: update description to reflect new marketing names (#2080) fix(python): Correctly check distributed tracing headers (#2079) feat: add batching to create_examples (#2047) fix(python): Correctly flatten list-like outputs (#2075) feat(python): Claude Agent SDK wrapper (#2073) feat(python): OpenAI Agents Tracing Interoperability (#2070) fix(js): Fix token tracking for OpenAI Responses API wrapper (#2072) chore(python): Skip /info calls when using OTEL-only tracing (#2069) chore: deprecate select child_run_ids in list_runs (#2066) Format openai agents span outputs (#2065) feat(js): Cache relevant env vars on client initialization for perf (#2061) release(py): 0.4.33 (#2060) feat(py): Dedupe examples purely by dataset_id and input/output content rather than by test name (#2050) fix ugly rendering of 'omit' in UI due to incorrect strip (#2057) fix(py): return session feedback with experiment results (#2049) fix(python): Set llm OAI agent SDK spans to parent name for filtering (#2054) release(js): 0.3.72 (#2053) release(py): 0.4.32 (#2052) fix(js): Copy object prototype when copying tools in AI SDK wrapper (#2051) Non-beta parse awareness in the OpenAI wrapper (#2012) chore(js): Remove log (#2042) fix(js): Make JS client respect max ops size limit (#2041) fix: docstring of get_expeirment_results (#2038) fix(py): Inherit project name from parent for OpenAI agent wrapper (#2037) Clear children after runtree posts (#2033) version bump after new method 0.4.29 (#2031) feat(py): new get_experiment_results() endpoint (#2021) release(js): 0.3.69 (#2028) fix(js): Fix output processing for AI SDK streamText (#2027) fix: Store ended span to reserve parent span context (#2020) fix(py): include missing attributes in traces (extra, error, serialized) (#2017) feat(js): Backport new wrapper support to AI SDK 4 (#2015) Don't compress patches when manually configuring api_key (#2013) Set global configuration (#2002) feat(python): Otel developer improvements (#2001) feat: support pushing structured prompts back as they're pulled (#1953) python[chore]: test py3.13 (#2004) fix(js): Fix retries for empty bodies (#2003) release(py): 0.4.25 (#2000) fix: storage of already ended spans causes memory growth (#1998) fix(python): Set project name on run update for oai agent sdk (#1999) feat: add metadata into dataset pydantic schema (#1943) release(js): 0.3.67 (#1997) feat(js,py): Add OpenAI service tier to input and output token details (#1967) chore(js): Deprecate very old AI SDK OTEL tracing (#1995) update SDK readme for org-scoped API keys (#1994) release(py): 0.4.23 (#1993) fix(python): Correctly recognize attachment with stringified annotations (#1990) release(py): 0.4.22 (#1992) feat(py,js): Add include stats param to listProjects (#1991) fix(js): Allow passing partial args to distributed tracing run tree (#1989) release(py): 0.4.21 (#1986) feat(py): Allow overriding max batch size parameter on client, fix for disabled run compression (#1985) fix: memory leak risk from otel exporter persistance (#1979) ci(py): Add format job to Python CI (#1983) release(js): 0.3.66 (#1982) fix(js): Only take metadata into account when updating in example if provided for Vitest runner (#1981) fix(js): Remove validation of usage metadata params (#1980) feat(py,js): Adds split parameter to test runners, metadata to Jestlike (#1977) fix(js): Fix wrapOpenAI finish_reason tracing (#1976) release(js): 0.3.65 (#1974) release(py): 0.4.20 (#1975) feat(js): Add current repetition property to jestlike test wrapper (#1856) feat(js): Allow manually specifying ids for examples in Jestlike runners (#1972) feat(py): Fix list_projects typing, add dataset_version param (#1973) Pass multiple run ids to listFeedbacks correctly (#1465) feat(js): add datasetVersion parameter to listProjects (#1391) feat(py): Add support system qwen to OTEL attributes (#1717) fix(js): specify "Content-Type" for getRunStats to avoid parsing errors (#1598) fix(python): Avoid resetting operation.name to "chain" during update_run (#1861) feat(pythong): allow nested openai agent tracing (#1971) feat: update SDK for org-scoped keys (#1920) fix(python): Alleviate memory pressue from zstd flush (#1966) fix(py): Disable API key warnings if tracing is disabled (#1965) release(js): 0.3.64 (#1964) release(py): 0.4.18 (#1963) fix(js): Fix multipart tracing for Bun (#1960) fix(py,js): Trace AzureOpenAI clients with proper provider for playground (#1961) fix: move otel check to client init time to avoid timing issue (#1958) fix(js): Allow null to be passed as a first arg to traceable (#1959) fix(python): Correctly set multipart operatios in replica mode (#1956) release(js): 0.3.63 (#1955) fix(js): Turn down default max batch size (#1954) fix(js): Fix retry issues (#1947) fix(py): adjust traceable reduce_fn type to allow returning str (#1950) feat(py): Adds process_buffered_run_ops method to Python SDK (#1932) feat(js): Compress multipart batches before sending, avoid sending inputs in patch if not necessary (#1945) feat(js): Allow passing runtime LangSmith config to AI SDK wrapper (#1944) fix(js): Fix typing for AI SDK stream methods (#1941) fix(js): Avoid double wrapping AI SDK tool functions if already wrapped (#1942) feat(python): Pass api config through background thread (#1940) chore(py): correct references to `langchain-core` and hyperlink (#1936) feat(js): Trace AI SDK request/response fields in LLM response (#1939) feat(js): Improve tracing for multimodal AI SDK runs (#1938) fix(js): Copy tool def instead of mutating (#1937) fix(js): Only inherit specific properties for child runs in AI SDK wrapper (#1931) feat(js): Adds time to first token for new AI SDK wrapper (#1930) fix(py): Pass 'project_name' to _get_parent_run method (#1927) feat(js): Allow async processOutputs methods for traceables (#1928) fix(py): attachments url construction (#1929) feat(js): Non-OTEL version of AI SDK tracing (#1926) chore(python): fix tests (#1925) perf(python, js): Pop all allowed oob keys (#1923) chore(python): Cleanup replica setting (#1921) fix(js): Allow direct wrapping of Jest/vitest methods, fix module resolution (#1919) release(js): 0.3.55 (#1915) feat(js): Allow use of new AI SDK processor with old exporter (#1914) fix(js): Use start time from dotted order as canonical for legacy AI SDK exporter (#1912) chore: Replace ts-expect-error directives with casts (#1913) release(js): 0.3.53 (#1910) fix(js): Revert "feat(js): Adds dotted order to traced OTEL spans (#1876)" (#1909) fix(js): Revert legacy AI SDK dotted order changes (#1907) fix(python): legacy replicas conversion (#1908) Fix OpenAI Agents SDK wrapper token count extraction (#1906) chore(python): Remove langsmith dotted order attribute from otel integration (#1904) fix(js): Ensure dotted order and start time is always greater than parent start time for legacy AI SDK exporter (#1903) feat(py): add Run.latency (#1745) fix(ci): Allow 429s for markdown link checks in CI (#1895) feat(python, js): Support tracing to multiple orgs/workspaces (#1899) Adopt pagination to list_shared_examples to ensure all data returned (#1893) chore: Run ruff (#1894) release(py): 0.4.10 (#1896) fix(py): Remove monkeypatching and ensure env var cache is cleared (#1891) feat(py): Adds new cached_hosts parameter to vcrpy caching (#1878) Remove black dependency and update lock file (#1892) fix(py): Reset env causing unit test flake (#1890) fix(py): Missed test causing flakes (#1889) fix(py): Make replica tests properly restore env vars to reduce flakiness (#1888) fix(python): Remove upper bound for OpenAI agents (#1883) chore(py): Format lockfile (#1887) chore: Convert dev workflow to uv (#1885) feat(py): return feedback notes in get_test_results (#1873) feat(python): Add distributed tracing with sliced traces for child projects (#1884) feat(python): Add replica endpoints support to Python SDK (#1877) patch(python, js): Fix sampling logic for patch runs (#1881) fix(js): Respect Anthropic 1h caching usage for AI SDK 5 (#1879) chore(python): deflake ci (#1872) feat(js): Adds dotted order to traced OTEL spans (#1876) feat(js): Respect LANGSMITH_OTEL_ENABLED env var, allow skipping global context manager setup, skip non-traceable spans by default (#1870) release(js): 0.3.48 (#1868) fix (js): include env var metadata in patch (#1867) feat: Configure (#1859) feat(js): Update AI SDK tracing for v5 (#1863) fix(python): Fix update_examples improperly overriding inputs/outputs for multipart endpoint (#1860) Safer module check (#1857) fix(js): Fallback to parent run id if parent run is not present in run trees loaded from LangChain (#1854) fix(js): Make readDataset throw if empty string is passed (#1853) feat(python): Add repetitions support to pytest, rename in JS (#1852) fix(js): Respect project names set at runtime for OTEL exported traces (#1850) fix(js): Propagate microseconds added in dotted order conversion to run tree start time (#1849) feat(js): Support feedback attribution for OTEL evaluations (#1847) fix(js): Fix replica updates (#1848) If stream fails, fallback to buffered body request (#1845) feat(python): Populate example metadata in pytest, prefix experiment runs with ls_example (#1840) release(js): 0.3.42 (#1842) Add runs endpoints env to replicas (#1830) fix(js): Add endpoint shim to example upload (#1839) release(js): 0.3.41 (#1837) [open-swe] fix: improve serialization of Maps and complex objects in traces (#1835) feat(js): Add reference_example_id attribute to OTEL runs (#1836) feat(js): Make traced AI SDK runs respect provider metadata (#1826) fix(js): Fix AI SDK token counting issues for legacy exporter (#1825) release(js): 0.3.38 (#1824) fix(js): Fix types and add responses and completions.parse support for wrapOpenAI (#1823) fix(js): Use context placeholder to preserve LangChain context variables even if tracing is disabled (#1822) feat(js): Add transform span method to exporter, allow setting run name (#1821) Reduce zstd compression level to 1 (#1820) feat(js): Export passed AI SDK metadata as LangSmith metadata (#1819) feat(js): Add OTEL support (#1814) Add replicas to baggage header (#1817) fix(py): loosen pydantic dep (#1816) feat(js): Allow suppressing circular JSON warnings (#1815) feat(py): add evaluate(..., error_handling="ignore") (#1774) chore(deps): bump protobuf from 5.29.4 to 5.29.5 in /python (#1807) feat[python]: Enable OpenTelemetry trace context propagation (#1805) feat[python]: Trace to multiple projects with distributed tracing (#1804) patch[python]: Only set replica updates on patch (#1798) add util for getting project name from env var (#1801) release(js): 0.3.32 (#1797) feat(js): Add replica support for JS (#1796) fix(js): Avoid overwriting runtime if already set (#1795) fix(js): Pass events through on run create (#1794) Store only the first new_token event (#1779) chore: auto-label issues with 'sdk' label (#1791) Cache request settings for Client (#1787) fix(js): Fix JSDom check for Node 22 (#1784) Handle missing attachment files gracefully (#1782) Fix race for cached client initialization (#1778) Fix some issues w running codex in this repo (#1777) Add agent instructions for Python SDK (#1776) fix: hybrid mode has subtle shut down race conditoin (#1775) feat: OTEL_ENABLED mode sends to both otel and ls, while allowing otel only through OTEL_ONLY var (#1762) feat[python]: enable tracing to multiple projects (#1770) fix(py): Fix URL construction in attachment downloading (#1759) release(js): 0.3.30 (#1766) release(py): 0.3.44 (#1765) feat(python,js): Add run tree method for setting usage (#1746) feat(py): create_feedback with trace_id only (#1753) fix(py): Trace evaluate args more nicely (#1701) Remove default for fetching child_run_ids from the SDK (#1730) feat(js): Allow direct getting and setting of metadata on run trees (#1747) fix(js): fix JS int tests (#1734) chore(py): update py + poetry setup in CI (#1743) release(js): 0.3.29 (#1739) feat(js): Log additional context around serialization errors (#1737) fix(js): Narrow overly broad traceable type (#1738) fix(js): Use streaming body in fetch in _sendMultipartRequest (#1728) fix(js): avoid throwing in hot path when caller ignores exception (#1733) fix(js): invalid type of wrapOpenAI when non-stream create is invoked (#1732) fix(js): Upgrade vite devdep (#1729) fix(js): Store dotted order for runs separately in case OTEL export happens in multiple batches (#1709) feat(js) Add function to get Group Runs (#1675) fix(frontend): Adds retry for tracing info call (#1724) fix(py): lock h11>0.16 (#1721) fix(js): Make feedback for evaluator traces using evaluatedBy for jestlike runs apply to root runs (#1718) feat: allow syncing indexed dataset (#1714) release(js): 0.3.25 (#1713) fix(js): Trace AI SDK OTEL exported images as base64 (#1712) Hide metadata in update_run (#1711) Add RunTree.set() support (#1710) fix(js): Fix AI SDK tracing when nested in AI SDK tool calls (#1708) Add hide_metadata support (#1704) feat: support rubric_instructions for annotation queues in the SDK (#1705) feat(py): Adds python-dotenv as a dev dep for convenient testing (#1702) feat(js): Adds support for @opentelemetry/sdk-trace-node@2 along with backcompat shim (#1703) fix(js): Reduce JS integration test concurrency (#1698) fix[python]: Correct client reference counting in compression thread (#1700) feat[python]: OTel context propagation (#1693) release v0.3.36 (#1696) packaging: remove Python upper bound (#1691) feat(py): support metadata in target func (#1694) chore[python]: Add additional debug logging to background threads (#1689) fix(py): try/except writing to multiple endpoints (#1684) feat(js): Allow .concurrent, throw error when nesting describe blocks in Jestlike runners (#1688) lint: upgrade to Python 3.9+ syntax (#1679) chore[python]: Set dotted order for openai agents sdk integration (#1676) chore(py): fix integration test (#1677) feat(js): Allow async functions in client hideInputs and hideOutputs (#1674) feat(js): Adds JS debug mode that logs output request URLs and responses (#1673) Make __version__ a constant (#1669) feat(py,js): Allow logging feedback from nested traceables within pytest and jestlike tests (#1668) fix(js): include project/session name in distributed tracing (#1667) Revert "docs[fix]: `-e` install `langsmith` so api refs are available (no longer using rtd) (#1665) docs[fix]: `-e` install `langsmith` so api refs are available (#1663) docs: fix docs links in `python/README.md` and `README.md` (#1662) docs: enforce newlines when signature exceeds char threshold (#1661) patch[python, js]: Update runs with project name (#1659) fix(js): Raise proper error if multipart upload fails (#1651) patch[python]: Use multipart EP for feedback creation (#1655) chore: bump python sdk to 0.3.29 (#1654) add fallbacks for create/update examples (#1653) fix(js): Adds warning log when trying to run Jestlike runner in JSDom env (#1644) fix(py,js): clarify deployment err (#1652) patch[python]: Don't shut down compression thread if drain fails (#1650) fix openai tool call chunk accumulation (#1648) patch(python): Don't throw warning for missing API key in otel mode (#1647) patch[python]: Add debug logging for batch requests to LangSmith (#1635) Pull prompt in async client. (#1642) patch[python]: Don't set metadata values if the value is None (#1641) fix(py): drop traceable serialized data (#1634) Add group id thread tracing for OpenAI Agents SDK (#1584) patch[python]: Accept langsmith_extras for OpenAI Agents tracing (#1627) fix(py): Always upload multipart inputs and outputs parts even if falsey (#1623) Cache retry config (#1622) release(py): 0.3.20 (#1621) fix(py): serialize langchain objects in testing.log_outputs, fix rich display table [LS-3237] (#1609) fix(python): Properly respect max_concurrency for aevaluate (#1613) Simplify traceback (#1611) chore(py): fix vcr test issue (#1610) release(py): 0.3.19 (#1607) fix(py): loosen openai-agents extra (#1606) feat(vercel): add support for list of tools of ai sdk (#1604) chore(js): update dev deps (#1602) fix(py): delete examples [LS-3226] (#1597) patch[python]: bump version 0.3.18 (#1595) Fix setting otel tracing provider (#1594) Create OTel Exporter for LangChain tracing (#1568) Unset parent_run in run_tree (#1591) docs: wrap_openai nit (#1590) release(py): 0.3.16 (#1589) ci: Use a git script instead of changed-files (#1587) fix(py): openai agents docstring (#1581) feat(py): OpenAI Responses API support (#1571) fix(py): openai agents tracing nits (#1577) fix(py): openai agents tracing nits (#1576) Support Tracing OpenAI Agents SDK (#1572) docs(python): Update get_test_results docstring (#1575) fix(python): Avoid sampling non-root child runs that were previously filtered (#1574) fix(js): Avoid sampling non-root child runs that were previously filtered (#1573) Don't nest pydantic (#1564) release(js): 0.3.13 (#1561) chore(py): reduce list run test flake (#1559) fix(py): robustify url construction (#1558) version bump 0.3.13 (#1557) fix, add slash to urls (#1556) add wrap_anthropic (#1464) patch[python]: Release 0.3.12 (#1554) Fix 'unexpected keyword argument "config"' error in traceable decorator (#1553) fix, don't append v1 if it is already in the api url (#1552) fix(python,js): Round feedback scores with more than 4 decimal places (#1548) chore(py): add integration test caching (#1547) release(js): 0.3.12 (#1546) fix: use go backend instead of python backend for example functions (#1488) Fix evaluator errors (#1538) chore(py): fix integration tests (#1543) trace sync evaluators correctly with aevaluate (#1541) chore: upgrade ubuntu 20.04->22.04 for deprecation (#1513) feat(py): suppoer traceable(process_chunk=) (#1537) feat(js): Allow evaluators to return arrays of results (#1536) fix(py): integration tests patch (#1535) refactor(py): add multipart to create/update_examples (#1477) fix(py): specify 'packaging' dependency (#1533) support **kwargs in evaluators (#1532) bump version (#1528) allow keyword args for evaluators (#1525) fix(js): Fix evaluator config override (#1515) feat(js): Allow jestlike evaluators to return arrays of feedback, minor refactoring (#1514) fix(js): Add new tok event (#1512) Debug log the serialization issues (#1495) release(py): 0.3.7 (#1500) fix(py): Fix output_keys (#1498) fix(py): Fix unit test (#1497) fix(js): Bump Vitest devdep (#1496) docs: ✏️ Fix typo in `client` function `list_examples` (#1457) fix(js): Fix git tagging for Vitest (#1494) feat(js): Allow overriding test suite name for Jest test suites, automatically set environment on project metadata (#1492) patch[python]: Release 0.3.6 (#1491) feat(py): Increase concurrency for pytest evals, fix output rendering nits (#1489) patch(js): utf-8 encode multipart parts (#1487) python[patch]: Release 0.3.5 (#1486) fix(py): fix dataset created_at (#1485) release(py): 0.3.4 (#1483) fix(py): Rename CLI arg for pytest plugin from --output to --langsmith-output to avoid conflict (#1482) fix(py): Tag pytest experiments (#1481) fix(js): Fix multiple datasets in same test file for Vitest, improve reporter output (#1475) fix(js): Evals link should use user-defined endpoint (#1476) python[patch]: Release 0.3.3 (#1474) python[patch]: fix example link [LS-2764] (#1473) feat(github): Allow release from non-main branches (#1471) docs: update readme env vars (#1468) python[patch]: Release 0.3.2 (#1466) python[patch]: remove experiment end time (#1463) fix(js): Handle undefined values in object equality checks (#1460) Compress create feedback (#1452) infra: fix py integration test (#1445) infra: fix release workflow tagging (#1455) python[patch]: Fix some typos in comments in `langsmith/client.py` (#1447) python[patch]: fix pytest integration example syncing (#1450) python[patch]: add ls_runner metadata (#1449) docs: Update preferred env vars in READMEs and CI (#1444) python[patch]: set pyproject.toml project.version (#1446) python[minor]: Release 0.3.0 (#1439) fix(js): Separate Jest suites into separate tables when reporting (#1443) fix(js): Narrow evaluator types, fix example id generation (#1438) chore: remove docker-compose from cli (#1437) python[patch]: Add annotation queue async methods (#1396) feat(js): Vitest/Jest evals (#1343) Support parent=false to prune trees (#1429) typo in benchmarking script (#1427) fix(js): Fix reflection in JS API refs (#1426) Remove async and non-streaming blocking clients. (#1419) Switch PyO3 to streaming zstd-compressed multipart Rust client. (#1414) feat(js): Add API refs build (#1423) Re-vendor pyo3 at the v0.23.4 commit (#1421) Implement streaming multipart zstd compression. (#1413) Serialize pydantic and other tricky objects correctly from Rust. (#1392) surface mime type when passing attachments to user (#1409) add mime type to attachment info (#1341) python[patch]: update OpenAI prompt test (#1407) Make `pydantic` model serialization consistent regardless of surrogates. (#1405) make LANGSMITH_PROJECT work (#1404) Include user info in read feedback (#1386) fix(python): Fix flaky openai parse tests (#1400) Add safer accessors to delta objects (#1385) docs: update api ref deps (#1393) release(js): 0.2.15 (#1382) fix(vercel): nested runs being unflattened, incorrect inheritance behavior of user runId / traceable (#1383) infra: fix py release inputs (#1389) Delete examples bulk (#1279) infra: allow non-main py release (#1388) feat(js): Add method to delete a run from an annotation queue (#1376) feat(js): Add method to get size of annotation queue (#1377) chore: Version bump (#1374) feat: Instrument wrapper for OpenAI structured outputs (#1373) python[patch]: Release 0.2.9 (#1372) python[patch]: handle deployments without attachments support (#1371) chore: Version bump (#1370) feat: Report pre and post compressed content length to API (#1359) python[patch]: write to same experiment pytest-xdist (#1367) python[patch]: fix traceable arg inference (#1361) feat: Make size_limit (max run count per batch) globally configurable via env var (#1358) chore: Version bump (#1364) fix: Reset buffer after sending to server (#1363) fix: Flush zstd and correctly get buffer size (#1353) fix: Separate rust and compressed ingestion paths (#1355) chore: bump to 0.2.6 (#1352) feat(js): Adds manual flush mode (#1351) docs: update ref for list_examples (#1346) chore: Version bump (#1349) perf: [LS-2561] Stream compress multipart runs (#1316) chore: version bump (#1344) python[patch]: evaluate accept list target (#1342) only pop graph if 'serialized' is not none (#1336) fix time for runs in convert_runs_test (#1338) chore: release langsmith-pyo3 version 0.1.0rc5 (#1335) Drain the Rust client when its last copy in Python is dropped. (#1334) Merge `Update` operations into `Create` operations in the same batch. (#1333) Ensure pre-formatted JSON data doesn't contain trailing null bytes. (#1332) Improve the error message for tag and version mismatch error case. (#1308) chore: release python 0.2.3, js 0.2.13 (#1326) fix: allow passing object instead of tuples in JS since tuples are not nice in JS (#1328) evaluate small fix (#1327) remove attachment prefix (#1324) chore: release JS SDK 0.2.12 (#1323) feat(js): upload and update examples multipart in JS (#1216) fix: multiple evaluators don't consume the reader (#1322) [python] support uploading examples with attachments and running evals on examples with attachments (#1209) chore: release langsmith-pyo3 version 0.1.0rc4 (#1315) Add Rust implementation for Python client's `update_run()` method. (#1314) Release langsmith-pyo3 version 0.1.0rc3. (#1309) Fix formatting in Rust tracing client. (#1296) release py=0.2.1, js=0.2.11 (#1302) Rm hub pull check (#1298) fix(ci): Fix CI semver check (#1297) chore: bump version to 0.2.10 to increase server info request timeout (#1295) Upgrade `thiserror` from v1 to v2. (#1287) chore: increase server info request timeout (#1294) python[minor], js[patch]: release py0.2.0, js0.2.9 (#1247) Clone dataset schema (#1278) Add placeholder workflow for testing `langsmith_nodejs` Rust code. (#1291) Run tests and lint for Rust code in CI. (#1289) Drop outdated/vulnerable dependencies by using a newer multipart library (#1288) langsmith no longer supports Python 3.8, so neither should our PyO3 code (#1285) Remove `sonic_rs` and switch to `serde_json`. (#1286) Support serializing Python UUID objects and set up test suite for PyO3 (#1284) js[patch]: evaluate() support comparison (#1281) js[patch]: fix evaluateComparative (#1283) update python api ref (#1251) js[patch]: simple evaluator args (#1264) infra: fix int ci 2 (#1275) infra: fix int ci (#1274) infra: run integration tests when relevant files edited (#1271) python[patch]: client.evaluate, client.aevaluate (#1268) python[patch]: one evaluate fn (#1269) infra: drop py3.8 CI (#1188) feat(js): Expose light interface for tracing client (#1266) chore: bump version to 0.1.147 (#1265) Add a `langsmith_pyo3` extra to the LangSmith SDK. (#1263) Python wheels don't distinguish between macOS versions. (#1262) Make langsmith-pyo3 v0.1.0rc2 release. (#1260) Ensure the wheel-building workflow runs if it's changed. (#1259) Remove links in vendored code that point outside the sdist source code. (#1256) Build 3.13 wheels for all platforms except Windows. (#1261) Rename the macos artifacts to include the macOS version names. (#1258) Add Python 3.13 to matrix for building langsmith-pyo3 wheels. (#1257) Add `macos-15` runner to the PyO3 wheel build matrix. (#1255) Release candidate `langsmith-pyo3` Python package (#1254) Exclude the `vendor` directory from link-check. Fix broken link. Reformat benchmarking files. Delint benchmark files. Hold off on using `Option` method that will become stable in 2 days :) Back out Python package changes for now. Add safeguard for publishing versions that match the tag. En…
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.
Description
Python


JS


References LSE-2426
Test Plan
[X] Check if SDK can be used for online eval crud ops for users.
[X] Tested Python and JS by running local smoke scripts against the smith-go backend on http://localhost:8080, creating an online code evaluator, retrieving it, listing evaluators, inspecting it manually, and deleting it after confirmation.
[X] Added unit tests.