1.0.0 (2025-10-02)
Features
- action to add complete thread to dataset at once (#546) (24a27ad)
- add 'message' key extraction to heuristics (6b7bc9d)
- add ability to delete project (#590) (6741f81)
- add auth providers (#490) (93b4063)
- add check for required sso login (#657) (bff7cbc)
- add cold storage for older traces (307eef4)
- add crewai open telemetry (#549) (e47bc67)
- add filters to custom graphs (#483) (974ff9f)
- add frill integration (#462) (3b1f3d0)
- add hours markers on the graphs for smaller periods (#394) (a9b2bc4)
- add image viewing dataset (#620) (0aa5bcf)
- Add ingress to helm chart (#385) (34f2f45)
- add langwatch docker images to release-please (e9f98b7)
- add leaf node durations to sequence diagram (14f281b)
- add manual topic clustering and better input extraction (#668) (29730f0)
- add members signup (#642) (5e3706d)
- add pagination to scenario (#569) (75048f1)
- add prometheus to helm charts (#501) (45a4297)
- add release-please to mcp-server (#647) (1839f41)
- add scenario analytics (#469) (8fe1486)
- add scenario to usage stats (#471) (d036e56)
- add support for azure api gateway (#641) (d66495e)
- add trace usage to dashboard and usage page (#498) (9d26e79)
- add vpc security groups to the dynamic lambda for better access control (9878f7e)
- add xai cerebras (#670) (b069fa8)
- added auto setup functionality for langwatch mcp (#617) (8c95b07)
- allow admins to turn off trace sharing per project (#585) (1f575d0)
- allow pasting of comma separated models (#586) (eb0761d)
- allow to archive team (#602) (97ca118)
- allow to export sequence mermaid diagram (fc82092)
- allow to set the run_id manually (93417de)
- allow to track dspy evaluators as well (by @WSJUSA) (#488) (1b79275)
- analytics table (#441) (e100c61)
- bump it all from gpt-4o-mini to gpt-5 (e2fb8bb)
- ci/cd steps for all packages and deployables, including improvements to caching and bundle sizes (#351) (e67a169)
- click to prompt filter new page LWH-1091 (#514) (62455ce)
- create a lambda per project (#420) (c8b25be)
- download tiktokens from repository (#410) (ce68c38)
- expand prompts support in python sdk (#540) (f7cd8b2)
- get rid of websockets entirely, use SSE only for more reliability (668aca9)
- guaranteed availability (#630) (d4d3f55)
- guaranteed availability python (#633) (1818542)
- implement sequence diagram for agents and tool calls based on the trace (#666) (ce159ca)
- improve helm chart (#608) (699b8f0)
- improve ingestion of strands traces (#589) (7d05c9b)
- improve langwatch helm chart (#576) (41312a3)
- langwatch go sdk & otelopenai instrumentation (#340) (fd9c4ee)
- make set id more prominent on card (#446) (d62f9f8)
- move to cold storage earlier as it's still pretty fast on ES (3d57185)
- new open-telemetry based typescript sdk (#500) (7636d4c)
- open trace for each simulation message (#582) (9dfd3c4)
- process claude code otel logs (2beb6d9)
- prompt cli (#524) (aeaddc5)
- prompt handle UI (#516) (d812ed9)
- prompt ids first class filter (#510) (13c6877)
- prompt references (DB + API) (#515) (3a557a8)
- python sdk tracing improvements (#572) (8448ed1)
- redesign typescript sdk (#529) (dc9637d)
- refresh the design of the project welcome screen, and improve some scenarios ux points (#447) (0a64724)
- render image url when inside markdown format for evals v2 (9a3f4b7)
- render tool calls (062797a)
- reset output panel when changing prompts (#493) (19d84f3)
- reveal agent simulations in the main menu (#448) (950d7be)
- rework annotations (#449) (111ae81)
- rework annotations (#451) (121a4a4)
- scenarios - update in progress console (#507) (2e86677)
- setup and added basic open-telemetry to the nextjs app and workers and upgrade to vercel ai v5 (#559) (29041d6)
- ship new typescript sdk (#523) (ff17340)
- show copyable prompt id and metadata (#492) (0de5fdb)
- show error stack when present (#511) (c9295e9)
- show sdk for python snippet (79301d6)
- show sdk for python snippet with docs link (#494) (79301d6)
- signup tracking (#479) (128b7fa)
- simulations frontend (#431) (cb0bf0b)
- support creating prompt version with prompt (#525) (b475c81)
- support events via log records with otel collector (#428) (dc7c6ca)
- support getting prompt with version number in python sdk (#563) (119cc2b)
- support strands agents
gen_ai
span events (#532) (ddd69b6) - thread mapping (#675) (33bc70c)
- tracing of claude code via opentelemetry logs (#665) (2beb6d9)
- update footer menu (#499) (85be4c7)
- update prompt snippets (#504) (5c91236)
- updates to prompt sdk (#530) (492d269)
- use query param for prompt id selection (#491) (626aafc)
- workflow get dataset from api (#405) (705d3f1)
Bug Fixes
- [revert] make the merging of spans created by log records and normal spans more intelligent (#562) (97f499d)
- actually fix CoT (#473) (48bc852)
- add 501s for logs and metrics in case of accidental otel connection to langwatch (3dfb56e)
- add batching to scenario look ups (#568) (bb0abf9)
- add db schema back to the helm chart (#599) (2b78fc4)
- add missing dependency for langwatch (93b66cc)
- add missing dotenv dependency for running tests (fb706ce)
- add provider messages (#664) (d720ad4)
- add pyyaml as dep (#648) (083f7bd)
- add repo chart in ci (#597) (8aa23bf)
- add setting to batch evals (#551) (0b2cff6)
- add spans to total cost (#461) (674bfd5)
- add to dataset would stay loading if trace was not in a thread (#555) (d7c3dd3)
- add type fix (#486) (796408b)
- adjust redis cluster configuration (#395) (b1cb008)
- allow demo project (#601) (13daa5e)
- allow to continue es index migration and better logging (cd28447)
- allow to just partially send the timestamps on otel, to send the time to first token, as otel already sends the start and end automatically (f5147f6)
- allow writing to cold index for annotating old data (#643) (908b3c6)
- annotation (#640) (5de7f8c)
- annotation bugs (#457) (e7578f7)
- annotation type fixes (#456) (165643c)
- autoparsing for langwatch eval components (05f2c5f)
- avoid 'function already exists' lambda error (322486c)
- better error handling for lambdas issues (769a1f2)
- better strands agents tracing detection (#533) (d739d95)
- broken integration tests (#519) (67191ed)
- broken package.json on typescript sdk (#522) (85eed4c)
- building in webpack was failing due to missing fallback modules (#311) (a7e1398)
- calling migrateToColdStorage correctly if a projectId was passed (49cba3d)
- chain of thought (#437) (ee48fd2)
- change demonstrations format on prompt back to get demos working again on dspy (65fb550)
- check custom series (#459) (ecc501a)
- check for email (#505) (c2d218b)
- check if saas (#506) (8f65b1c)
- column name edit (#607) (f6d3c15)
- convert table columns to id-valid names when autofilling mustache variables (#485) (f2f0f40)
- copro logger patching in dspy (#465) (4cec023)
- copy-types needed shebang, and fix git checks on publish with pnpm (#521) (f371442)
- crash prevention and better error handling (44a804c)
- crisp (#678) (856284a)
- csv upload with reserved column name (#606) (51bd3a9)
- custom evaluator fixes on the studio (#416) (d91fda9)
- custom graph colour and name fix (#475) (9bc2b41)
- custom metadata was broken in new transformer code (#326) (b8e6a65)
- datagrid wasn't loading due to broken dynamic import (#406) (a66062d)
- dataset image column type + use liquid templates instead of low level python string template to avoid having issues with json interpolation (c6e2ede)
- dataset images (#629) (7e74c05)
- delete in batches and allow finer control of the move to cold storage (642a72d)
- dict type conversion (db2014d)
- disable server-side rendering (#396) (823020d)
- disable sorting on topics, metadata, events (#481) (a1cbaab)
- disable tracing on evaluations and optimizations for now (666333e)
- disable usage stats by env (#403) (4f9ce9c)
- disallow non-named params to avoid confusing users (#565) (92fbeb7)
- display custom components entry even if connected to an evaluator only (b686227)
- displaying the saved analytics keys (48af873)
- do a second level of nesting for fixing lost metadata during race-conditions of metadata updates (1d4454c)
- do not even schedule usage stats if disabled (7167f86)
- do not require validate single commit because we dont have the isssue described on the comment about (c0d6d2d)
- do not retry job if collection usage failed, user might be behind a proxy that can't reach outside (e174fee)
- downgrade litellm dependency due to BerriAI/litellm#14145 preventing to build it on lambda (066d97c)
- downgrade no organizations found from error to debug, it's not really an error (0957967)
- dspy optimization studio fixes for template adapter (#477) (1231a14)
- env message (#444) (ea24911)
- eval wizard bug fixes v1 (#445) (c217697)
- evaluator setting fields that were being ignored for being falsy (a2dee80)
- executing prompts and saving prompts from the studio (88a01fc)
- failing sdk tests (#619) (d96be17)
- fix creating and saving new prompts from scratch, make organization id mandatory (aa54bf8)
- fix model list not custom and surface eval error message (c965e04)
- fix trace cost (#487) (22aa7c0)
- flag UseSVE seems to no longer be necessary for M3+ mac families (89a4eff)
- get rid of context for tracking current span, rely exclusively on the opentelemetry one instead, fixing out-of-parent spans (#595) (ee41980)
- go sdk updates and readme fixes (#423) (eeb81d5)
- gtm iframe csp (#478) (945b952)
- handle broken image message rendering (#454) (f097678)
- helm improvements (#450) (d0a7da2)
- helm release name (#649) (51facd0)
- ignore 'an update is in progress' lambda errors (7babe9a)
- image processing on the studio (#458) (be8b6c0)
- import
get_current_span
from the correct location in litellm autotrack (#542) (082869d) - improve agno input capturing (#528) (acfc774)
- improve how handled errors are returned to the client for the get prompt api (#467) (4d50bd9)
- improve metadata mapping for scalar types (#392) (8024015)
- increase minimum memory needed for langwatch_nlp to prevent OOM errors (69a1787)
- inner box scenario overflow (#567) (b3f3507)
- judge agent for mcp-server test (cd8e378)
- langwatch/package.json & langwatch/package-lock.json to reduce vulnerabilities (#177) (c45c54c)
- langwatch/package.json & langwatch/package-lock.json to reduce vulnerabilities (#196) (d051ebe)
- limit to rendering 50 messages per thread for performance reasons (857111a)
- local running of workers (#334) (9092d27)
- local setup readme guide was wrong (#367) (35d5715)
- make peer dependencies more loose, remove vercel ai as a peer dep (#526) (67e4bc9)
- make scenario message validations possibly less strict, like the trace ones, for supporting vercel v5 messages without throwing 400s (f3b2789)
- make the merging of spans created by log records and normal spans more intelligent (#545) (b8a0c24)
- match run ids and some rework (#571) (ab39c0b)
- mcp-server ci (0ab6e51)
- merge custom metadata inside the metadata property instead of outside when updating to avoid creating new ES fields (384117e)
- migration from legacy (#543) (8098098)
- missing attributes on trace (#646) (ac7ea8b)
- more logging improvements, and fix usage in otel collector (#304) (8ab6fcf)
- move extrataneous metrics to params on the span (02b6ab1)
- multithread tracing on python-sdk (#411) (4be3c19)
- new member bug fixes (#537) (a0c7bc1)
- node import in frontend (49a3f5a)
- only trace if tracing is enabled (3bfd454)
- otel misconfiguration (#621) (55725cb)
- otel traces parsing guard (#566) (33576d0)
- parametrize sentry dns at langwatch nlp (#402) (4a68684)
- pasting big prompts on prompt editor causing glitch on the scroll and box size (828740c)
- pino cjs bs (#303) (76e5f13)
- potentially missing spans when updating an existing trace (#305) (1e94bd8)
- pre-fetch tiktoken models during build (#398) (1d733d1)
- prep for python-sdk@0.2.0rc5 (#292) (d380fcd)
- prepare typescript sdk (#622) (9b85394)
- prevent seeing api key, other projects and team member around the demo organization (1c3f4d2)
- processing json schema with enums on the studio and dspy lazy import (#435) (9fc6e1e)
- progress bar fix (#547) (9b68ab1)
- project route fix (#588) (6b0a6f7)
- prompt overflow (#594) (a15aaf8)
- prompt tracing (#653) (9d39650)
- prompting technique and end node change (#430) (ef1831e)
- proper error matching (96a022a)
- python-sdk instrumentation no need to set current span as parent as that the default (231c8a1)
- readme was from an early draft of the typescript sdk (#662) (5a2b115)
- reasoning summary is an unknown parameter, and function already exists lambda was not being ignored (dd7857e)
- remove auto added to teams now that we show admin message to do it (#604) (0974db7)
- remove dspy and litellm from being mandatory dependencies and update strands version (#578) (0af71f8)
- remove knn from index settings for opensearch, it's not needed and breaks lite version without knn plugin (#401) (247b7b7)
- remove need to publish workflow for export (#421) (0a4b88e)
- remove sorting back because that causes the accordion to close right now (6a3b4a1)
- replace nanoid with pksuid and remove it from openai tracer (b4116d7)
- retrieve saved non-custom model providers that are disabled/enabled and not by default (7b19278)
- revert change to LangWatchExporter constructor to prevent behaviour change (#527) (21dd188)
- rework pagination (#573) (93df820)
- rework routing bug (#587) (a6a43bb)
- run claude-code on the CI (d760307)
- run helm chart ci when workflow file changes too (#598) (024b460)
- scenario events ES migration and helm chart issues, bump to v0.1.5 (80c76ea)
- scrollbars on field filters (b4b6c5b)
- secrets on typescript sdk publish tests (#520) (1b88252)
- set do_not_trace for custom evals and add a mutable way to disable sending at runtime, fixing problem of reused runtimes and infinite loops in a real time eval evaluating itself and tracing (f7d3a9f)
- set redacted false for share url (#432) (a038ad2)
- set the api key properly on every event (#419) (b98b560)
- signup (#579) (2ef0850)
- simplify truncation logic (2e65ca2)
- skip auto setup without api key (#609) (1753982)
- skip flakey test (#508) (a5e99ee)
- small studio fixes (#482) (7c654bc)
- some sdk endpoint fallbacks were to incorrect endpoints (#548) (6d63122)
- span fix to allow all types (#554) (5892830)
- span merging (#615) (e92eed0)
- split connection timeout and next chunk timeout for sse (2601c76)
- sso org level new user creation (#553) (b81a54b)
- stop resending post_event when tab switches, weird default behaviour from microsoft fetch-event-source: Azure/fetch-event-source#36 (2ab38cf)
- strands agents choice events now support json and non-json content fields (#534) (d1d793b)
- stringify nested jsonl values correctly before sending it to react-paparse (8cf6f54)
- studio input improvements (#414) (3b9e48a)
- sync trace costs (#489) (83caeb2)
- thread grouping in the otel collector (#427) (cc24ddb)
- thumbs up/down filter selection, scrollbars visible on windows, overflowing badges (5bddf75)
- timeseries metrics not being calculated correctly for ranges less than a day, align with summary logic now (#397) (48cd918)
- traced prompt output & typescript default import issue (#558) (21cc4cf)
- traces by thread for publish share (#434) (317d695)
- truncate and an utf-8 safer maner to ensure byte size limits (3549421)
- type errors (#439) (2ef527d)
- type issues from redaction (#286) (59922da)
- typescript sdk loicense badge to be mit and use correct logo path (#660) (688429d)
- udpate OpenTelemetry in SDK (#417) (de3e847)
- ui fixes (#676) (b6d533e)
- update docker for nlp (#409) (4056dcf)
- update frill env usage (#470) (59f6946)
- update github link (#502) (cf153fc)
- update helm char lock file (#596) (ff22682)
- update log steps (#616) (fe5fd22)
- update nlp with latest python sdk (#408) (c0b64d1)
- update pagination, add specific batch id (#577) (e0d9f47)
- update scenario pagination (#574) (4b0d934)
- update scenario_analytics.integration.test.ts (#497) (95ddb99)
- update snippets with path and method (#480) (baad80d)
- update the metadata when multiple get_current_trace().update happens instead of replacing it (13b6921)
- updated sync trace costs (#495) (3381f28)
- updating prompt after a sync (9a2bfc4)
- usage stats (#672) (aa30225)
- use client timezone also for doing the aggregations so elasticsearch can aggregate in the right date bucket (#400) (159b553)
- use langevals answer match on the studio as well, fix ui spacing for nodes (ec40467)
- use the right lambda client for sync workflow invoke (c28cdce)
- use x-litellm instead of litellm to inject evaluator model config (#591) (fdfc9a6)
Miscellaneous
- add csp headers for gtm and reo dev (#476) (03119fe)
- add google adk example (#564) (8165344)
- add nlp, eval endpoint check (#443) (f6fb621)
- add prometheus metric to track event loop lag (#463) (f8926e6)
- add rate limiter to trpc (#453) (6e4c9a5)
- add release please (#624) (e46cd21)
- add release please for python sdk (#631) (5e7c5aa)
- add script to migrate metadata that is sitting on the wrong place (3df69a5)
- add team check (#600) (21d225a)
- add toast (#603) (915280d)
- added go examples, fixed two otel collector issues, refactored the go sdk for initial release (#425) (7a3ee9a)
- added more tests for client (#418) (e7b067b)
- bump litellm (#538) (9d89314)
- bump to v0.2.3 (f648f4d)
- fix OpenSearch startup issue on amd64 (#539) (8d319fe)
- hide custom key (#592) (b70d8b7)
- http logging for collector endpoints (#513) (9476202)
- improve otel collector - metadata gathering+mapping, fix params not being wiped correctly, redaction ui bug (#327) (af60335)
- improve typescript sdk dependencies to play nicer with other children (#659) (da3daa9)
- improve worker restarting (#332) (3cd168a)
- improved general logging health (#309) (df8164f)
- log status code and user agent, add user/project/org to hono (#455) (c066757)
- main: release typescript-sdk 0.5.1 (#627) (1f5c9bc)
- metadata tests to catch regressions in the python sdk (#452) (ab32758)
- nicer logs collector worker (#294) (0f8ee70)
- python sdk setup/trace improvements, and strands example update (#581) (95c1833)
- release chart (0ecdc9c)
- release main (#639) (662b654)
- release main (#644) (702e5d1)
- release main (#652) (dbacf6b)
- release main (#654) (51b8f2e)
- release main (#655) (6d7edc9)
- remove atla ts (#667) (b23fa61)
- remove frill (#474) (8779095)
- remove legacy python sdk (#466) (aa2540e)
- replace all backend loggers with new logger for structured logging in aws (#307) (b97fac1)
- rework models (#658) (250f4f3)
- rewrite go sdk readme (#426) (497b0b0)
- update auto versioning and fix manifest (#651) (ce4f70f)
- update console colors (#509) (88e5500)
- update python sdk to support Python 3.13 (#557) (d982a80)
- update python version (#552) (14a2ea6)
- update typescript sdk examples (#413) (dafe461)
Documentation
- add detailed markdown documentation for LangWatch eval notebook (#618) (525b62a)
- add pdf parsing evaluation example (0e5bd93)
- added mcp-server contributing guide (19d1431)
- improve notebook descriptions (fa1f267)
- license link on readme (7e9172a)
- update offline evaluation example with an image (509f00b)