releases.shpreview

Dataset splits now editable in bulk; experiment comparison loads reliably

Rollup
12 features15 enhancements18 fixesThis release12 featuresNew capabilities15 enhancementsImprovements to existing features18 fixesBug fixesAI-tallied from the release notes
From the original release noteView original ↗

Observability and evaluations

Datasets and experiments

  • Model, prompt, and tool chips in the Experiments table config cells now lay out from real measurements for accurate truncation, and the +N overflow badge is a clickable dropdown whose entries expose the same actions (filter, group by, open in playground, and details) as a chip’s own menu.

  • Expanding the run tree for repetition runs in experiment comparison views now works reliably when a repetition root has a project ID but no session ID.

  • Evaluators linked to Hub prompts now load correctly for flat and playground-shaped prompt commits, fixing crashes when editing existing evaluators.

  • Code evaluator upload now accepts Python entrypoints annotated with PEP 604 union return types (for example -> dict | None).

  • POST /v2/datasets/{dataset_id}/experiment-runs is the supported public API for paginated experiment comparison. Legacy dataset comparison helpers are removed from the public OpenAPI spec and generated SDKs; existing HTTP routes continue to work for LangSmith UI clients.

  • Each example’s dataset splits now render as chips in the dataset Examples table, laid out from real measurements with a clickable +N overflow menu when an example belongs to more splits than fit the column.

  • The experiment comparison view now offers an optional, reorderable “Splits (latest)” column that shows each example’s current dataset split assignments as chips, reflecting live membership rather than the as-of-run snapshot.

  • Evaluator spend charts on project and dataset evaluator tabs keep their desktop layout on narrow screens and scroll horizontally instead of compressing the chart and stat cards.

  • The experiment comparison and group-by views now show each example’s current dataset split rather than the split it had when the experiment ran, so you can tell whether failures already belong to a split without re-running the experiment.

  • Comparison view now loads token and cost stats from SmithDB for root runs, so the stats columns populate again instead of staying blank

  • LangSmith now caps reusable evaluators per workspace to prevent unbounded resource growth. Contact support if your workspace needs a higher limit.

  • Creating dataset examples from source runs now correctly fetches run inputs and outputs backed by SmithDB, and no longer fails the whole request if one of several source runs can’t be found.

  • Select multiple rows in an experiment (or select all matching the current filters) and add, replace, or remove their dataset splits in one action, or copy the selected examples to another dataset — instead of editing rows one at a time.

  • The /runs/rules/validate endpoint now supports thread evaluators. Pass test_thread_id and session_id to test a multi-turn evaluator against a real conversation before saving.

  • Custom code evaluators that time out or fail on a run now record an error on that run instead of silently leaving it without feedback, so partial evaluation failures are visible on the experiment.

  • The Open source run action on an example page now reads session and start time from dedicated example fields populated at creation, enabling reliable navigation to the source trace on SmithDB.

  • The thread evaluator config preview now shows the thread message formats the evaluator actually maps, instead of listing every available format.

  • The evaluator config now shows a locked “Trace count ≥ 2” filter for managed thread evaluators, making it clear they only run on threads with multiple turns.

  • Experiment comparison and individual experiment views now load run rows on self-hosted deployments that authenticate the UI via SSO/OAuth session cookies. Previously these views could show ‘No results found’ even though metrics and feedback loaded.

  • Experiment statistics now refresh promptly for recently run experiments while keeping historical experiment scans bounded.

  • The Assertions evaluator added via “Add evaluator” now reads assertions from the reference output like the auto-attached version, so it grades against the real assertions instead of always failing.

  • Evaluator spend chart y-axes now abbreviate amounts of $1,000 or more, making high-spend values easier to scan.

  • A run rule whose sampling rate was 0 (or unset) sent an out-of-range sample_rate to the SmithDB query service (which rejected it) and zeroed out ClickHouse thread grouping. Both the flat and grouped fetch paths now fall back to 1.0 (no sampling) so these rules query successfully.

  • Exporting a dataset comparison view as CSV now returns a clear “file is too large to export” error instead of a generic server error when the export exceeds internal size limits.

  • Each split chip in a row’s Splits cell is now interactive in the experiment results and comparison views, with an Edit splits action that opens the single-example split picker so you can reassign splits without leaving the table.

Tracing

  • The batched-run ingestion log now emits run_verbs as a list of run_id and verbs objects instead of a map keyed by run UUID, preventing structured-log aggregators from exhausting dynamic field limits.

  • LangSmith now enforces user-defined monthly trace limits scoped to individual projects and users. New traces that exceed a configured limit are rejected, while patches and feedback for already-accepted traces continue to flow through.

  • The tracing and evaluation onboarding quickstarts now show the correct LANGSMITH_ENDPOINT for bring-your-own-cloud data plane workspaces instead of the shared multi-tenant endpoint.

  • Sharing, viewing, or unsharing any run in a trace now operates on the trace root, so every run in a shared trace is publicly viewable, and public run links open the selected run within the shared trace.

  • Projects with existing traces no longer incorrectly display the onboarding screen when filtered or scoped to a time window with no recent runs. The project run-count check now looks back 30 days instead of the previous one-hour window.

  • Bulk export compression now defaults to zstandard (zstd) for improved performance. Self-hosted environments retain the gzip default via the FF_BULK_EXPORT_DEFAULT_COMPRESSION environment variable.

  • Authenticated users viewing public runs now see sidebar navigation for their last selected workspace. Logged-out viewers continue to see the public run without authenticated workspace navigation.

  • LangSmith now returns clearer 409 Conflict messages when duplicate run create or update payloads are submitted. The message indicates whether the duplicate was a run create or run update request when possible.

  • LangSmith MCP tools that fetch runs or thread history now accept project UUIDs in addition to project names, making trace URL investigations faster and less error-prone.

  • OpenTelemetry resource attributes (set via OTEL_RESOURCE_ATTRIBUTES) now appear on traces as metadata namespaced under otel.resource.*, so you can attach details like user IDs without changing how your tracer emits spans.

  • Vercel AI SDK traces sent over raw OpenTelemetry now render in the Messages view. Previously these traces showed an empty Messages tab because no format adapter claimed them.

  • Thread stats requests that opt into streaming now return the main stats first and add feedback stats when they are ready.

  • Native OpenTelemetry child spans are no longer dropped when they arrive before an SDK-attributed parent span; they are buffered and correctly nested regardless of arrival order.

  • When a runs query times out, the runs table now shows a timeout banner for better responsiveness.

  • LangSmith now preserves traces in multipart ingestion batches when one run has oversized inputs or outputs. Oversized input and output fields are replaced with a placeholder instead of rejecting the entire batch.

  • Thread pages now show an explicit access-control message when trace loading is denied by ABAC, instead of a generic retrieval error.

  • All time filters in tracing views now query the full retention window instead of falling back to a shorter backend default. This keeps trace, thread, and run results consistent when expanding the time range.

  • OpenTelemetry traces from VS Code Copilot Chat now render as one clean nested trace per user turn. Auxiliary title/summary calls and orphaned tool spans are suppressed, message roles are corrected, token counts are de-duplicated, and standardized metadata (integration, agent runtime, thread ID, repo/git details) is attached automatically.

  • Insights cluster run stats (run count, latency, tokens, and feedback) now reflect only the runs in each cluster instead of showing the same project-wide totals for every cluster.

  • LangSmith Chat now authenticates to Chat LangChain with guest tokens when searching documentation, so docs answers keep working as Chat LangChain tightens authentication.

  • The Trace Messages viewer now identifies the “main” conversation for traces that include middleware guardrails or subagent side-conversations, so the message list shows only the primary interaction instead of interleaving middleware/subagent partitions. Correctness is verified by an expanded snapshot suite covering 11 integrations across LangChain, OpenAI Agents SDK, Vercel AI SDK, Claude Agent SDK, deepagents, and raw provider wrappers.

  • Custom dashboard charts can now query P50 and P99 for input and output costs without failing runs analytics requests.

  • The thread stats API now accepts a filter query parameter, letting you scope aggregated stats to traces matching a LangSmith filter expression (e.g. start time or trace ID).

  • LangSmith Chat now mints Managed Deep Agent guest tokens from the Chat LangChain LangGraph host (POST /identity/guest) when searching documentation, instead of the legacy Chat LangChain frontend guest route.

Engine

  • When an Engine project reaches its monthly spend limit, the Next Run status chip and project spend card now show a clear “Monthly spend limit reached” state with a button that takes you straight to raising the limit.

  • Upgrades the Redis client to improve recovery from Redis cluster topology changes, fixing cases where cluster reconnects could stall.

  • Engine now lets the parent agent recover from model-actionable subtask failures and retries transient provider or network errors before failing a run. This helps issue scans continue through recoverable model errors while preserving hard failures for auth, configuration, and code exceptions.

  • LangSmith exposes Engine issue listing and retrieval through hosted MCP tools and generated SDK methods. Agents and API clients can fetch issue details directly by issue ID or filter issues by project, status, severity, tag, and update time.

  • A new Engine board callout points you to the trace-scope setting, where you can restrict Engine’s reviews to runs matching a run name or metadata value.

  • Engine-generated examples with assertions now add the Assertions evaluator when saved to a dataset from an annotation queue, matching the direct Add offline examples flow.

  • The Engine issue list now uses a single filter and sort menu with a compact, collapsible layout for Priority, Status, Tags, and Sort by, replacing the previous two separate popovers.

  • The Engine issue list now shows the active sort order as a removable chip next to your filter chips whenever it differs from the default.

  • The Engine issue list no longer shows scan-timing details (next scan countdown, last run time, or a Run now action); a Pause/Resume control remains available in its own section in board settings.

Prompts and playground

  • Self-hosted Playground and evaluator outbound model calls now honor proxy environment variables while preserving SSRF validation on every request.

  • When you save a prompt to an application from the playground, LangSmith keeps the workspace application filter on All Applications instead of switching the rest of the UI to that application.

  • Typing a workspace member’s name or email in the Context Hub search box now also returns the prompts and resources they created.

  • The playground now includes Claude Sonnet 5, Claude Fable 5, and Claude Opus 4.8 in the Anthropic, Bedrock, and Vertex AI model selectors. New Anthropic playground sessions default to Claude Sonnet 5.

  • Playground and evaluator calls to Amazon Bedrock using IAM Trusted Entity now resolve the correct LangSmith AWS credentials before assuming customer roles in AWS-hosted LangSmith. This fixes failures that reported “Failed to assume role” before the customer role was assumed.

  • Outbound model calls that route through a forward proxy now send the original hostname in the proxy CONNECT tunnel instead of a resolved IP, so proxies that allowlist tunnel targets by domain no longer reject them. This fixes self-hosted Playground and evaluator calls to internal OpenAI-compatible endpoints reachable only through such a proxy.

  • Reviewing a prompt commit now displays every extra parameter (such as verbosity) set on the model, not just a fixed subset.

Feedback

  • Editing the score on evaluator-generated feedback (for example from the experiment comparison view) now saves correctly instead of failing with “Failed to add feedback correction”.

  • POST requests to add runs to an annotation queue accept an optional extend_trace_retention query parameter. When set to false, short-lived traces are not upgraded to extended retention. The default remains true for backward compatibility.

  • Adding feedback or reviewer notes from the LangSmith UI no longer upgrades short-lived traces to extended retention. Long-lived traces are unchanged.

  • Feedback statistics queries now route through the official ClickHouse client, resolving query failures and improving compatibility with ClickHouse 25.x.

  • Feedback creation resolves run metadata from SmithDB when the client provides session and start time, so SmithDB-only deployments no longer depend on ClickHouse for eager feedback writes.

  • The POST /feedback/eager endpoint is deprecated in favor of POST /feedback and is scheduled for removal on 2026-08-10. Update any direct integrations calling /feedback/eager to use POST /feedback instead.

Monitoring and alerting

  • Alert chart previews now handle relative date ranges consistently, preventing failures when loading 14-day or 30-day previews.

  • Dashboard chart tooltips and axes now show up to eight fractional digits (previously two), so very small costs and rates no longer round down to zero.

  • Time-series charts on custom dashboards now leave gaps for missing data points instead of plotting them as zero, and lines connect across those gaps so trends remain readable.

Automations

  • Applying a prebuilt evaluator without a filter now defaults to running on root runs only, matching manually created evaluators. Previously it ran on every nested run in a trace.

  • Turning an online evaluator or automation on or off now saves for any role that can edit rules, instead of silently reverting for members without the retention-configuration permission.

Deployment

  • Self-hosted deployments can now request CPU and memory above the previous Cloud limits of 8/16 cores and 32/16 GB, bounded only by your cluster capacity. Lower bounds, multiple-of-128 granularity, and Redis memory ordering are still enforced.

  • Custom Slack app triggers can now opt in to let third-party bots trigger an agent. Enable the allow bot triggers toggle on a registration to accept events from external bots; echoes from your own and other LangSmith-registered bots are still dropped to prevent loops.

  • Agents now skip unreachable or misconfigured non-default MCP servers immediately instead of retrying them, removing a slow round-trip from the tool-loading step and cutting time-to-first-token.

  • Standby (uptime) minutes for LangGraph Platform deployments could be billed more than once when replicas reported overlapping intervals across separate usage-reporting runs. Reporting now deduplicates each minute across runs so it is billed at most once.

  • The multi-select dropdown (e.g. Selected Tools) on the Studio assistants page now renders above the configuration dialog instead of behind it, so its options are visible and selectable.

  • Redis connections using Microsoft Entra ID (Azure IAM) authentication now re-authenticate automatically before the access token expires, so long-lived connections no longer drop. Clustered Azure Redis is now supported for IAM auth as well.

  • The deployment Crons tab now shows each schedule in your local timezone instead of raw UTC, matching the Next Run Date column.

  • LangSmith Deployment now supports updating a deployment to a fixed resource tier through the control plane API. The update applies the selected tier’s resource configuration, resizes Cloud SQL or RDS, and rolls a new revision.

  • You can now rename a deployment from its Settings — give it a friendly display name without recreating it. The deployment’s URLs and infrastructure are unchanged.

Sandboxes

  • Sandbox command output is now re-chunked into bounded single WebSocket frames, so clients that do not reassemble continuation frames (including the Go SDK) can read large streamed or replayed output without truncated JSON.

  • S3 sandbox mounts now default endpoint_url to https://s3.amazonaws.com when it is not provided, so the field is no longer required when mounting standard AWS S3 buckets.

  • Sandboxes can now burst CPU up to 2x their requested allocation when the host has spare capacity, and you can request fractional (sub-core) vCPU down to 0.05.

  • When creating a sandbox, you can now configure Git, S3, and GCS filesystem mounts, including mount paths, Git remotes, bucket settings, and cache options. Configured mounts appear in the sandbox table and detail view.

  • The LangSmith SDKs now support creating, listing, updating, and deleting sandbox registries for pulling private container images, alongside the existing sandbox and snapshot operations.

  • Sandbox creation no longer fails intermittently with “sandbox not ready” errors when an underlying host is disrupted. Affected capacity now retries the contended resource lock and recovers automatically instead of leaving the pool degraded.

  • Sandbox host startup now validates the full version directory before reuse, so a missing initrd no longer causes create-time failures after a partial or stale install.

  • Creating a sandbox snapshot from a Docker image now records the image’s tag (e.g. ubuntu:24.04 becomes the 24.04 tag), and creating a sandbox from a snapshot name without a tag resolves the latest tag, mirroring Docker.

  • Self-hosted LangSmith installations now show the Sandboxes navigation item and use the instance-level sandbox flag to open the Sandboxes page.

  • Shells and tools inside a sandbox now report the sandbox’s name as the hostname instead of a generic default, and the name resolves from within the sandbox.

  • Self-hosted LangSmith installations can open the Sandboxes page without enabling the Deployments frontend.

  • Sandboxes now set common CA-bundle environment variables by default, so Python, Node, Deno, curl, and git tooling automatically trusts the sandbox’s egress proxy certificate and no longer fails with TLS certificate-verification errors when its traffic is proxied.

Administration

  • The roles table on the Organization Roles settings page now scrolls correctly when there are more roles than fit on screen.

  • A new Project and user limits tab on the enterprise Usage configuration page lets you set monthly trace-count limits scoped to a specific project or user. Add, edit, and delete limits from the page.

  • Anonymous organizations now show an “Anonymity mode is on” banner on the members page, and the usage breakdown hides the group-by-user option for non-internal viewers.

  • New API keys now default to a finite expiration date instead of requiring a custom value. When an organization enforces a shorter maximum, the form defaults to that maximum instead.

  • You can now fetch a single workspace directly via GET /api/v1/workspaces/{workspace_id} instead of listing all workspaces and filtering client-side.

  • Org and workspace admins can now edit the role of a pending member invite directly from the Members settings page, without needing to cancel and re-send the invite.

  • The Usage limits page now shows each workspace’s configured total and extended (long-lived) trace limits, including caps that were previously hidden while the spend limit displayed “Unlimited”.

  • The batch workspace invite endpoint no longer returns a 409 error when inviting users who are already pending org invitees or active org members. Those users are added directly to the workspace without requiring a new org invite.

  • The role selector in the edit pending member invite dialog now uses a scrollable select, matching the invite flow. This ensures all custom roles are accessible when many workspace roles are defined.

  • Self-hosted deployments can now encode spaces in the OIDC authorization request as %20 instead of +, so single sign-on works with identity providers that reject the default + encoding of the scope list. Enable it by setting OAUTH_URL_ENCODE_SCOPE_SPACES=true.

  • Billing upgrade dialogs now stay within the viewport and scroll when payment or business details make the form taller than the screen.

  • Non-admin callers with manage-members permission can no longer assign restricted roles to workspace members or invite users with restricted roles to the workspace.

  • Filter the organization’s service keys and personal access tokens by workspace on the API keys settings page.

  • Users without workspaces:manage permission cannot use restricted roles for invites, role changes, or user deletions in the UI.

  • Organization admins can disable model providers across every workspace from organization settings. Disabled providers are hidden in the playground, evaluators, Fleet, and other model pickers, and workspace admins cannot re-enable them.

  • Adding existing active or pending organization members to a workspace no longer fails when organization-level invites are disabled. Disabled org invites continue to block new organization invitees.

  • The Roles settings page now scrolls correctly when an organization has more roles than fit on screen.

  • Organization admins can once again edit the role of and remove other organization admins from the Organization Members settings page. Organization Operators, who share the same admin-level permissions but should not manage other admins, are now correctly prevented from editing, removing, or promoting members to Organization Admin.

  • The email confirmation page now shows only the Confirm account step in the sidebar instead of future onboarding steps you have not reached yet.

  • Self-hosted deployments now apply explicit DEFAULT_ORG_FEATURE_* and DEFAULT_FEATURE_* environment variables over stored organization and tenant config values, so operators can enable or disable features and limits globally without editing Postgres.

  • The navigation product switcher now shows the configured organization logo alongside the LangSmith or Fleet wordmark instead of repeating the organization logo.

  • Organization admins can now toggle role restriction from the Roles settings page. Restricted roles can only be assigned by users with the workspaces:manage permission.

  • The organization-wide public sharing toggle now lives on the General settings page alongside the other organization settings, replacing its standalone Configuration section.

  • When a user is removed from all mapped SSO groups, the organization and workspace access granted through SSO group sync is revoked on their next sign-in. Access assigned by other means (SCIM, JIT, or manual invitation) is unaffected.

  • Workspace invite batch requests are now rate limited per workspace to reduce bulk invitation abuse. Learn more.

  • LangSmith Home now shows a banner promoting Interrupt, our agent conference in London and NYC this fall, with a link to get tickets.

LLM Gateway

  • LLM gateway data protection policies can now configure whether a guard pipeline timeout allows the request through or blocks it. Existing policies default to allowing requests on timeout.

  • The LLM gateway now supports POST /openai/v1/responses/compact (and the legacy /responses/compact), routing it through the chat-shape responses handler.

  • Guard policies now let you choose which PII rule categories to detect, with separate faster rule-based and slower model-based detection options, instead of a single on/off PII toggle.

  • Gateway guard secret redaction now detects additional token formats, including SendGrid API tokens, Google OAuth access tokens, JWTs, Slack webhook URLs, and legacy LangSmith keys.

  • When a gateway spend-cap policy targets more than one user, workspace, or API key, the create/edit policy form now explains that the limit applies to the combined spend across the selected entities rather than per entity.

  • The LLM gateway now forwards every documented OpenAI API route it does not handle directly (models, files, batches, images, and more) to the upstream provider, so clients can reach the full OpenAI surface through the gateway. Custom OpenAI-compatible providers inherit the same passthrough routes.

  • The LLM Gateway policies page now lets you sort each section by spend limit or usage percentage, and filter down to a specific workspace, user, or API key.

  • LLM gateway data protection redaction now prepends a short disclaimer to redacted message text so models know SAFE_TO_USE placeholders are safe to reuse verbatim.

  • The LLM Gateway now proxies Anthropic’s Files and Managed Agents endpoints, so you can use them with your gateway-managed workspace key alongside Messages and Models.

  • Creating an LLM Gateway spend or data protection policy now applies to the organization you are signed in to, replacing the organization dropdown with a read-only display of the current organization.

  • Long selected values, like a user’s email in the Gateway Policies filter, now truncate with an ellipsis instead of overlapping the dropdown chevron.

  • The LLM Gateway now accepts workspace-scoped LangSmith OAuth bearer tokens across its provider routes, so OAuth clients can invoke configured models without a LangSmith API key.

Other

  • When you add runs to an annotation queue without specifying extend_trace_retention, short-lived traces stay on short-lived retention. Pass extend_trace_retention=true to upgrade traces to extended retention.

Fetched July 30, 2026