CHANGELOG.md
Rama main · réplica de lectura del repositorio original.
# Changelog
## [3.23.0](https://github.com/langwatch/langwatch/compare/langwatch@v3.22.0...langwatch@v3.23.0) (2026-11-03)
### Features
* agent and evaluator versioning with deploy labels, plus experiment and dependency fixes ([#9124](https://github.com/langwatch/langwatch/issues/9124)) ([ec774cb](https://github.com/langwatch/langwatch/commit/ec774cb12756a472d7260f6ed5e2292e324906cd))
* **coding-agent:** capture Grok CLI sessions through its native OpenTelemetry ([#9224](https://github.com/langwatch/langwatch/issues/9224)) ([34c0f70](https://github.com/langwatch/langwatch/commit/34c0f700c4ff679717de20ad9bd15647631b8cec))
* **coding-agent:** track pi as a natively instrumented coding agent ([#9203](https://github.com/langwatch/langwatch/issues/9203)) ([52eaa9e](https://github.com/langwatch/langwatch/commit/52eaa9e8f38533d84dfdde9896ac0edcd5cffb7a))
* **dataset:** dataset version history with autosave, compare, restore, retention and run pinning ([#9121](https://github.com/langwatch/langwatch/issues/9121)) ([f50c6f0](https://github.com/langwatch/langwatch/commit/f50c6f0c999e9e1cadf7173db0e87b9d3f1108de))
* **insight:** a board no longer pops the daily insights offer on open ([#9242](https://github.com/langwatch/langwatch/issues/9242)) ([e762c3d](https://github.com/langwatch/langwatch/commit/e762c3d313b2218c040755b5a897ed2bf8d40046))
* **model-provider:** run Instant Evals on Jev, Azure, OpenRouter and Fireworks decision models ([#9249](https://github.com/langwatch/langwatch/issues/9249)) ([98482a1](https://github.com/langwatch/langwatch/commit/98482a1c52b4fb4bc41ac9ef9d34c24301ef9b95))
### Bug Fixes
* **analytics:** reconvergence replaces an LWQL view that lacks a catalog column ([#9246](https://github.com/langwatch/langwatch/issues/9246)) ([16bb190](https://github.com/langwatch/langwatch/commit/16bb190a878e8b69436bd6f67117aa519ca5e00f))
* **auth:** leave the page when a reader signs out ([#9210](https://github.com/langwatch/langwatch/issues/9210)) ([7998642](https://github.com/langwatch/langwatch/commit/79986423102c5b32da2f74cf668e19f17eb864c0))
* **codeblock:** include runner stderr tail in runner error message ([#9238](https://github.com/langwatch/langwatch/issues/9238)) ([02108a8](https://github.com/langwatch/langwatch/commit/02108a86e06f61fe16eb152dc346231746c83fc7))
* **codeblock:** run code blocks on Lambda, where seccomp refuses PR_SET_DUMPABLE ([#9240](https://github.com/langwatch/langwatch/issues/9240)) ([7ddff2e](https://github.com/langwatch/langwatch/commit/7ddff2ed23d84655c8399bb24db83a6a2c31008d))
* **design-system:** dialogs stay centred while Langy is docked ([#9254](https://github.com/langwatch/langwatch/issues/9254)) ([f36b967](https://github.com/langwatch/langwatch/commit/f36b967f1fc619b21f7d1fafe0eaf0e852aeb929))
* **docs-site:** keep the changelog Markdown export within the page token budget ([#9259](https://github.com/langwatch/langwatch/issues/9259)) ([49f512b](https://github.com/langwatch/langwatch/commit/49f512b980a5a98c2a2ca56f529f4a3ad996779c))
* email-domain auto-join respects the seat cap, and the SSO refusal says who to ask ([#9226](https://github.com/langwatch/langwatch/issues/9226)) ([95d4da8](https://github.com/langwatch/langwatch/commit/95d4da82e2b8ae51b6d0a9d6aab25bcab7b0814b))
* **governance:** validate pull source config on save and let admins edit the Copilot Studio connection ([#9279](https://github.com/langwatch/langwatch/issues/9279)) ([862bc0e](https://github.com/langwatch/langwatch/commit/862bc0e00c2536e2d85cb8c57c7e1dfa11487c7a))
* **langevals:** detect person names written in capitals ([#9213](https://github.com/langwatch/langwatch/issues/9213)) ([4c46055](https://github.com/langwatch/langwatch/commit/4c4605564ca5a354745a6d90619020e73ec3fff8))
* **langevals:** skip the capitalised-name second pass for lone capital words ([#9256](https://github.com/langwatch/langwatch/issues/9256)) ([749e9f3](https://github.com/langwatch/langwatch/commit/749e9f3bfb1506e43a7998abcb029db83912e51b))
* **lwql:** probe the approved view in the app's PostgreSQL schema ([#9264](https://github.com/langwatch/langwatch/issues/9264)) ([b3547c3](https://github.com/langwatch/langwatch/commit/b3547c3155964856876c7f14bd9a2e3049f6898f))
* **model-provider:** judge Instant Evals on the saved decision model and the project's own key ([#9272](https://github.com/langwatch/langwatch/issues/9272)) ([1d4055e](https://github.com/langwatch/langwatch/commit/1d4055e049e6786ce2ecfde010f30843f81c06d9))
* **model-provider:** offer and accept decision models per edited scope ([#9294](https://github.com/langwatch/langwatch/issues/9294)) ([a5114a1](https://github.com/langwatch/langwatch/commit/a5114a1b645c1694d86b1934e099dd0ae79cf399)), closes [#9293](https://github.com/langwatch/langwatch/issues/9293)
## [3.22.0](https://github.com/langwatch/langwatch/compare/langwatch@v3.21.0...langwatch@v3.22.0) (2026-11-02)
### Features
* **aigateway:** serve OpenAI Decisions API on /v1/decisions ([#9200](https://github.com/langwatch/langwatch/issues/9200)) ([aa27b1f](https://github.com/langwatch/langwatch/commit/aa27b1ffaa92860abe40548cbbb5009369472bdd))
* **analytics:** a group project's charts, LangWatchQL and Sessions read its member projects ([#8878](https://github.com/langwatch/langwatch/issues/8878)) ([ec4d539](https://github.com/langwatch/langwatch/commit/ec4d53996bd6527da0d690098047bc19de6452f8))
* **analytics:** open dashboards from the analytics entry and point back to the old analytics ([#9055](https://github.com/langwatch/langwatch/issues/9055)) ([0e9ae7a](https://github.com/langwatch/langwatch/commit/0e9ae7a2d0953860fea8a1b22e7f75926cdbecdc))
* **api-key:** confirming the legacy key revoke opens the create drawer ([#9066](https://github.com/langwatch/langwatch/issues/9066)) ([4a56ffd](https://github.com/langwatch/langwatch/commit/4a56ffd717fe103dbeaa2359bbaf249aff70b60b))
* **api-key:** revoking the legacy project key swaps it for an API key ([#9061](https://github.com/langwatch/langwatch/issues/9061)) ([f866c94](https://github.com/langwatch/langwatch/commit/f866c949c9727797c17d24aad74f9563904f1fae))
* **auth:** force a password reset for a set of users ([#8959](https://github.com/langwatch/langwatch/issues/8959)) ([e408de0](https://github.com/langwatch/langwatch/commit/e408de0fa03840c6683b932c5009454cf55dd52b))
* **auth:** legacy key scope flag for annotation reads ([#9024](https://github.com/langwatch/langwatch/issues/9024)) ([2cd1992](https://github.com/langwatch/langwatch/commit/2cd1992b34bae1925760c7d3994471730397f1a1))
* **auth:** log which credential and client each API request used ([#9003](https://github.com/langwatch/langwatch/issues/9003)) ([c55dc6e](https://github.com/langwatch/langwatch/commit/c55dc6e6e22aa2a6563b4be7d3e93d7f40c7f23b))
* **auth:** record each request's credential type and log legacy project key requests beyond ingestion; they are refused only on projects in `legacy_project_key_scope_enforced` ([#8962](https://github.com/langwatch/langwatch/issues/8962)) ([ec41367](https://github.com/langwatch/langwatch/commit/ec41367384ebda1e5cbe3d0ed16b1797b9769575))
* **chart:** let the operator turn the heap ceiling off ([#9127](https://github.com/langwatch/langwatch/issues/9127)) ([6899309](https://github.com/langwatch/langwatch/commit/6899309e2a1ca62362603b7b17d2a4221408a5e7))
* **charts:** let the langyagent chart take over existing agent objects ([#8965](https://github.com/langwatch/langwatch/issues/8965)) ([fa657fa](https://github.com/langwatch/langwatch/commit/fa657fa456f2bce14acfe9e12ad51e751894b62e))
* **ci:** assume AWS roles by OIDC for embeds publish and the gateway matrix ([#8961](https://github.com/langwatch/langwatch/issues/8961)) ([d8f12d2](https://github.com/langwatch/langwatch/commit/d8f12d2ea2c7da57ebf372320760474a1690127f))
* **ci:** one nightly suite with a single dashboard ([#8877](https://github.com/langwatch/langwatch/issues/8877)) ([ee88567](https://github.com/langwatch/langwatch/commit/ee88567129459ed24e777fde65eede901195626c))
* **ci:** publish the langy agent and Lambda images to the artifacts registry ([#8967](https://github.com/langwatch/langwatch/issues/8967)) ([1fa0a2b](https://github.com/langwatch/langwatch/commit/1fa0a2b1a8f66bc58c577503d3107f000caf3225))
* **coding-agent:** copilot CLI and VS Code sessions become rows ([#8884](https://github.com/langwatch/langwatch/issues/8884)) ([e5c5e8c](https://github.com/langwatch/langwatch/commit/e5c5e8c3eb372ac02eed8ad7e5bd1810fc3c3be1))
* **dashboard:** add REST create and delete for Dashboards boards ([#8896](https://github.com/langwatch/langwatch/issues/8896)) ([fbc1469](https://github.com/langwatch/langwatch/commit/fbc1469027d6ef59c920243f63e2ebaf2264bcf8))
* **dashboards:** a dashboards section in the project sidebar with add and pin ([#9090](https://github.com/langwatch/langwatch/issues/9090)) ([41480c0](https://github.com/langwatch/langwatch/commit/41480c094cfcd85f7e65228f72e0344c5568016a))
* **dashboards:** a per-dashboard Langy traces setting ([#9099](https://github.com/langwatch/langwatch/issues/9099)) ([821b467](https://github.com/langwatch/langwatch/commit/821b467e8a628e599951b42d3c871f0db454efd8))
* **dashboards:** per-widget "Langy traces" setting in the query editor ([#9137](https://github.com/langwatch/langwatch/issues/9137)) ([5e82c1e](https://github.com/langwatch/langwatch/commit/5e82c1ebc1d2dbfda817cf175f3aba62e485a0d8))
* **dashboards:** say Pin instead of Star in the UI ([#9128](https://github.com/langwatch/langwatch/issues/9128)) ([2eb09a8](https://github.com/langwatch/langwatch/commit/2eb09a84d26216be0f7e2fd8395ee55c7a4e1d37))
* **dashboards:** widget queries take sources and projects as params ([#9171](https://github.com/langwatch/langwatch/issues/9171)) ([af5a9c3](https://github.com/langwatch/langwatch/commit/af5a9c342951371a1cf547188cff78f9cd50bcc1))
* **dashboards:** widgets show loading and how to get their data ([#9108](https://github.com/langwatch/langwatch/issues/9108)) ([5c39251](https://github.com/langwatch/langwatch/commit/5c3925185de670174b044de0fe80a7a574018e3d))
* **design-system:** brand icons for decision model providers and langwatch ([#8957](https://github.com/langwatch/langwatch/issues/8957)) ([f142230](https://github.com/langwatch/langwatch/commit/f142230fe4832cd179eb4c12abc5c9ad26c26514))
* **design-system:** search other projects from the scope filter ([#9116](https://github.com/langwatch/langwatch/issues/9116)) ([a2d681b](https://github.com/langwatch/langwatch/commit/a2d681b5fb2c32838ee9625ac9d6862022974a9f))
* **docs-site:** 404 mark intro, API reference polish and live-site fixes ([#9170](https://github.com/langwatch/langwatch/issues/9170)) ([ac821b6](https://github.com/langwatch/langwatch/commit/ac821b6201e5537c7f5011d9b1b6eeec979464c8))
* **docs-site:** deploy the /docs build to its bucket from main ([#9165](https://github.com/langwatch/langwatch/issues/9165)) ([e5a3e99](https://github.com/langwatch/langwatch/commit/e5a3e997ae2173f90d6fe44d857ab563402f07ae))
* **docs:** add a lightweight static docs app ([#8563](https://github.com/langwatch/langwatch/issues/8563)) ([395ed9c](https://github.com/langwatch/langwatch/commit/395ed9c2ce9de4f25497a3b90092a1e647018ac6))
* **experiment:** accept a per-run concurrency on the experiment run API ([#9023](https://github.com/langwatch/langwatch/issues/9023)) ([640d0f6](https://github.com/langwatch/langwatch/commit/640d0f6e21afd19e46eaed9312d4c04c121b9a4b))
* **instant-eval-judge:** judge router behind release_instant_evals_judge_router ([#9118](https://github.com/langwatch/langwatch/issues/9118)) ([252263a](https://github.com/langwatch/langwatch/commit/252263af272827d94c2e31b85348f581bc52232f))
* **instant-eval:** let an LLM judge pick its own decision model ([#9142](https://github.com/langwatch/langwatch/issues/9142)) ([c1e94f7](https://github.com/langwatch/langwatch/commit/c1e94f74379ab2bbb555412385330a65d385fe3e))
* **model-provider:** instant evals decision model column with own-key decision models ([#8935](https://github.com/langwatch/langwatch/issues/8935)) ([9b022a5](https://github.com/langwatch/langwatch/commit/9b022a535f304bee38bca86530cc901b03731baa))
* **model-providers:** add Doubleword provider (strict layout) ([#8557](https://github.com/langwatch/langwatch/issues/8557)) ([4304116](https://github.com/langwatch/langwatch/commit/4304116811863d149b2eae9a114516df00778834))
* **monitor:** pause a monitor whose evaluations mostly fail ([#9040](https://github.com/langwatch/langwatch/issues/9040)) ([fcbd9ed](https://github.com/langwatch/langwatch/commit/fcbd9edabbfa2fd9b3a4c142c678298a846e184d))
* **nurturing:** send coding-agent session and app-open signals to Customer.io ([#8917](https://github.com/langwatch/langwatch/issues/8917)) ([d55d670](https://github.com/langwatch/langwatch/commit/d55d670efc5e1ad81b48e7fcf36a1ec30c883323))
* **ops:** send notices from Cloud to self-hosted installs ([#8949](https://github.com/langwatch/langwatch/issues/8949)) ([d831e82](https://github.com/langwatch/langwatch/commit/d831e82227fe198e41981e01df06760b0ee0b977))
* **sdk:** one product per dashboards path; dashboards means the new product everywhere ([#9089](https://github.com/langwatch/langwatch/issues/9089)) ([552534d](https://github.com/langwatch/langwatch/commit/552534d24487441ac5395d91c1af69ed072a0c00))
* **tooling:** pnpm test:changed runs only the tests an edit reaches ([#8945](https://github.com/langwatch/langwatch/issues/8945)) ([c4f357b](https://github.com/langwatch/langwatch/commit/c4f357bb7e06195ed34018e053dfeaea67e93076))
* **workflow,stores:** accept web-identity credentials as an alternative to static AWS keys ([#8994](https://github.com/langwatch/langwatch/issues/8994)) ([fe9df27](https://github.com/langwatch/langwatch/commit/fe9df27e83f783551052845d7aed6ad8a59c28d5))
### Bug Fixes
* **aigateway:** keep mid-conversation system messages in place on Bedrock ([#9219](https://github.com/langwatch/langwatch/issues/9219)) ([846b5bc](https://github.com/langwatch/langwatch/commit/846b5bc8a179175e75bc16caa0475a2d6b137d61))
* **analytics:** accept Langy session keys in LangWatchQL ([#9054](https://github.com/langwatch/langwatch/issues/9054)) ([4dcb63d](https://github.com/langwatch/langwatch/commit/4dcb63d58160234ccc0595c2465049c8b35185bd))
* **analytics:** read Postgres-backed LangWatchQL dates at the scale Postgres stores them ([#8912](https://github.com/langwatch/langwatch/issues/8912)) ([f5f8086](https://github.com/langwatch/langwatch/commit/f5f80868c96ef1ed3d28695c60b65d2e99531211))
* **analytics:** rebuild lwql postgres engine tables when reader credentials rotate ([#8875](https://github.com/langwatch/langwatch/issues/8875)) ([d1e13a9](https://github.com/langwatch/langwatch/commit/d1e13a942c60f2c52b95e870e6e7676429780cd8))
* **analytics:** refuse FINAL and SAMPLE on PostgreSQL-resident LWQL views and on subqueries ([#9015](https://github.com/langwatch/langwatch/issues/9015)) ([f2660c4](https://github.com/langwatch/langwatch/commit/f2660c4f8576b7192e579c0074dfa56bc4d17ded))
* **api-key:** warn in the replacement drawer that the legacy key no longer works ([#9067](https://github.com/langwatch/langwatch/issues/9067)) ([da82f75](https://github.com/langwatch/langwatch/commit/da82f751a18a7e838e4c0842df9006aad3a6591a))
* **api:** log an output-schema mismatch and still answer; declare atom evaluations ([#9092](https://github.com/langwatch/langwatch/issues/9092)) ([9f8201d](https://github.com/langwatch/langwatch/commit/9f8201de8132e481272409c42d0576dfa69f3553))
* **api:** name the credential census file in the api package layout ([#9005](https://github.com/langwatch/langwatch/issues/9005)) ([03ea93a](https://github.com/langwatch/langwatch/commit/03ea93a1d02a44f52ba5a42cf08fbf78c8ef98b5))
* **auth:** show Google and Microsoft marks on Safari sign-in buttons ([#9044](https://github.com/langwatch/langwatch/issues/9044)) ([f93b953](https://github.com/langwatch/langwatch/commit/f93b95317208e1c3dada52eb8586fb4eb6da4956))
* **auth:** tell a person their identity provider refused them, and stop paging on it ([#9180](https://github.com/langwatch/langwatch/issues/9180)) ([3b0992a](https://github.com/langwatch/langwatch/commit/3b0992a620fd062492febab1b16e59081c4ff00e))
* **automation:** log a customer-fixable settlement refusal once an hour, not per firing ([#8977](https://github.com/langwatch/langwatch/issues/8977)) ([9134f67](https://github.com/langwatch/langwatch/commit/9134f672a5d304acb0d72a31da58afcf21ad51ef))
* **browser:** a full browser storage no longer breaks the page; read mirror recovers and skips impersonation ([#9072](https://github.com/langwatch/langwatch/issues/9072)) ([9325213](https://github.com/langwatch/langwatch/commit/932521396afdac651949613ce0df0fabcd4e0c0f))
* **chart:** sleep 15s before the app's SIGTERM so the load balancer stops routing first ([#9031](https://github.com/langwatch/langwatch/issues/9031)) ([9637bb1](https://github.com/langwatch/langwatch/commit/9637bb163210e7e2ef7e20624bcb7d9589d2c50b))
* **ci:** an image's change set starts at the last published commit, not the previous push ([#9167](https://github.com/langwatch/langwatch/issues/9167)) ([d08eff0](https://github.com/langwatch/langwatch/commit/d08eff08aa09f718e950a50c40f66d8ba3b09b48))
* **ci:** keep Content-Type when a re-tagged app image copies its CDN assets ([#9028](https://github.com/langwatch/langwatch/issues/9028)) ([697a4ec](https://github.com/langwatch/langwatch/commit/697a4ec99b1138987441b20d5507ad80812ed0f6))
* **clickhouse-client:** async inserts waiting for a slot share one statement ([#9182](https://github.com/langwatch/langwatch/issues/9182)) ([622e043](https://github.com/langwatch/langwatch/commit/622e043f59595eb96f2ae020801aee1d37c22ffe))
* **clickhouse:** split an id index retention raise under the server's 128 KiB field cap ([#9178](https://github.com/langwatch/langwatch/issues/9178)) ([c9160f8](https://github.com/langwatch/langwatch/commit/c9160f862f028ff073fac7a52ef389ac0ed4a6d7))
* **cli:** pin cloudflared 2026.10.5, verify it everywhere, drop the npm wrapper ([#9086](https://github.com/langwatch/langwatch/issues/9086)) ([0b1bad9](https://github.com/langwatch/langwatch/commit/0b1bad9b1887ec5a7e26955d917a4ddcaede0145))
* **codeblock:** harden code block process isolation ([#9050](https://github.com/langwatch/langwatch/issues/9050)) ([01db6c2](https://github.com/langwatch/langwatch/commit/01db6c20eaa9392190c5b8bde12ef78f1e311118))
* **coding-agent:** drop hook_execution_start before it becomes a contribution ([#9011](https://github.com/langwatch/langwatch/issues/9011)) ([56a9723](https://github.com/langwatch/langwatch/commit/56a97230da044058109a3c741f697a6b6a6a8218))
* **dashboards:** refresh moves fixed ranges, hidden stars keep their place, agents read boards by id ([#9048](https://github.com/langwatch/langwatch/issues/9048)) ([a5ea0ed](https://github.com/langwatch/langwatch/commit/a5ea0eda1d886635096da02bb76b2b99f9bed6f6))
* **dashboard:** tighten delete confirmation for Reports dashboards ([#8918](https://github.com/langwatch/langwatch/issues/8918)) ([5dfa85e](https://github.com/langwatch/langwatch/commit/5dfa85e2b62bbb9e6932517c4f633eb3d2ad419e))
* **data-privacy:** raise the per-span PII redaction budget to 400,000 characters ([#9209](https://github.com/langwatch/langwatch/issues/9209)) ([9b88cb8](https://github.com/langwatch/langwatch/commit/9b88cb83ee98280bc15c738832b696249d3d09e5))
* **deps:** raise authlib, litellm and dnspython for today's advisories ([#9120](https://github.com/langwatch/langwatch/issues/9120)) ([828259f](https://github.com/langwatch/langwatch/commit/828259f92eafec9a0d4e1c5ffecab87e4abd2257))
* **deps:** raise qs to 6.17.0 for CVE-2026-110910 ([#9100](https://github.com/langwatch/langwatch/issues/9100)) ([56fa502](https://github.com/langwatch/langwatch/commit/56fa502f86cf83867c4c2e3386fe5484284b4fdc))
* **docker:** bump cloudflared to 2026.10.5 in the server image ([#9119](https://github.com/langwatch/langwatch/issues/9119)) ([e3cd4dc](https://github.com/langwatch/langwatch/commit/e3cd4dc9529964c1faeb37b66368e3876d8f18e2))
* **docs:** inset the compact contents bar so its label clears the edge ([#9174](https://github.com/langwatch/langwatch/issues/9174)) ([60d900e](https://github.com/langwatch/langwatch/commit/60d900e4304cc52627fac4b14c08ecc9d7b5330e))
* **evaluation:** do not retry a langevals call that timed out ([#9037](https://github.com/langwatch/langwatch/issues/9037)) ([7d7b8e0](https://github.com/langwatch/langwatch/commit/7d7b8e0a45b8eab7becbbda8a59d288ba1779468))
* **eventing:** a state projection's rebuild accepts the log's copy of a re-sent key ([#9181](https://github.com/langwatch/langwatch/issues/9181)) ([df9775c](https://github.com/langwatch/langwatch/commit/df9775c86aa762a4d9eabd56ef2970e20b5964f2))
* **governance:** centre the overview again and empty its lists with the design system's line ([#8932](https://github.com/langwatch/langwatch/issues/8932)) ([685c8e7](https://github.com/langwatch/langwatch/commit/685c8e729cb0f443bf44a49f9821f4285eb8c626))
* **group-queue:** reclaim a dead worker's groups when its beacon goes, not its active key ([#9139](https://github.com/langwatch/langwatch/issues/9139)) ([dceba19](https://github.com/langwatch/langwatch/commit/dceba193b9173d28ae6da1f9ca74309b72e4c549))
* **group-queue:** the worker that handed a job back passes its group over ([#9154](https://github.com/langwatch/langwatch/issues/9154)) ([412630f](https://github.com/langwatch/langwatch/commit/412630fb99cfc8c4e4834170d504aedc8364724d))
* **helm:** bump chart images for CVE fixes (postgres, redis, curl, prometheus, alpine/k8s) ([#9208](https://github.com/langwatch/langwatch/issues/9208)) ([ad7c623](https://github.com/langwatch/langwatch/commit/ad7c623567ba6fa783fa317e353da28941dc6f5d))
* **langevals:** judges reach a verdict on gpt-6 reasoning models ([#9102](https://github.com/langwatch/langwatch/issues/9102)) ([d7b6238](https://github.com/langwatch/langwatch/commit/d7b623874e55e0b6af4d81ce9671114d54dfb2cc))
* **langy:** expanded panel pushes open drawers left instead of covering them ([#9159](https://github.com/langwatch/langwatch/issues/9159)) ([beadf5d](https://github.com/langwatch/langwatch/commit/beadf5d7326eebbb948fae339901b25568a1f14e))
* **langy:** give card-only turns a reply line on the REST surface ([#8838](https://github.com/langwatch/langwatch/issues/8838)) ([b7c195d](https://github.com/langwatch/langwatch/commit/b7c195d5e1d7fa814d97c67e274b7338b22ebf7d))
* **langy:** never tell the user to sign in when the sandbox CLI fails ([#8775](https://github.com/langwatch/langwatch/issues/8775)) ([4f2dc72](https://github.com/langwatch/langwatch/commit/4f2dc7299f2cb5620dcd41f4509849863ed68708))
* **langy:** pick an existing test suite before creating a scenario ([#9158](https://github.com/langwatch/langwatch/issues/9158)) ([42a13b7](https://github.com/langwatch/langwatch/commit/42a13b7f97128db7cf1570ba86b7f238fdc9d33a))
* **langy:** refresh app lists when a Langy write lands ([#9160](https://github.com/langwatch/langwatch/issues/9160)) ([0af13f6](https://github.com/langwatch/langwatch/commit/0af13f687c86473709fc64f13d8d0d1cf32d9f58))
* **langy:** show an AI gateway spending limit as a budget card, not a failed reply ([#9197](https://github.com/langwatch/langwatch/issues/9197)) ([810702b](https://github.com/langwatch/langwatch/commit/810702be0e8c98069407adbc18673d163dc5fada))
* **model-provider:** doubleword ids by alias, and routers out of the price audit ([#9034](https://github.com/langwatch/langwatch/issues/9034)) ([d69d3f7](https://github.com/langwatch/langwatch/commit/d69d3f7ed9d72c39a1c4c83c43864eff77310e19))
* **model-provider:** drop the Doubleword models shut down on 30 Oct ([#9214](https://github.com/langwatch/langwatch/issues/9214)) ([abfdbbf](https://github.com/langwatch/langwatch/commit/abfdbbfac18f4294d31c06c3460df60741c1c79a))
* **navigation:** keep the reader where they are when they switch organization ([#9114](https://github.com/langwatch/langwatch/issues/9114)) ([709f485](https://github.com/langwatch/langwatch/commit/709f4855a0e50b48ff637a5f1f5c7660b5ab7427))
* **nlp-lambda:** start the Lambda image from / so the function can boot ([#9018](https://github.com/langwatch/langwatch/issues/9018)) ([3e84e6b](https://github.com/langwatch/langwatch/commit/3e84e6bcbebda1c2370485e650e9e77460356774))
* **nurturing:** send Customer.io date attributes as Unix seconds ([#8953](https://github.com/langwatch/langwatch/issues/8953)) ([dc318da](https://github.com/langwatch/langwatch/commit/dc318dae60fabe6e8ead62939b3266c3260bbc0b))
* **ops:** pause the pending-counter keyspace sweep after it adopts ([#9073](https://github.com/langwatch/langwatch/issues/9073)) ([08aef76](https://github.com/langwatch/langwatch/commit/08aef76b9de5b46533b6d01075f79968ab5a7752))
* **organization:** an open tab ignores another tab's remembered scope ([#9107](https://github.com/langwatch/langwatch/issues/9107)) ([150e9e7](https://github.com/langwatch/langwatch/commit/150e9e7ea02b265305636048c6e8c5d851e69246))
* **presence:** keep a project's presence keys on one Redis cluster slot and make leave atomic ([#9068](https://github.com/langwatch/langwatch/issues/9068)) ([b8e23ef](https://github.com/langwatch/langwatch/commit/b8e23efcdbaed3f6768d244da0cc56516e4185d4))
* **presence:** list a project's sessions from a per-project index instead of scanning the keyspace ([#9063](https://github.com/langwatch/langwatch/issues/9063)) ([53f2d2a](https://github.com/langwatch/langwatch/commit/53f2d2a4f82bfb03cd285795c136949c437b6cf2))
* **project:** the legacy key nudge answers per project, not per remembered scope ([#9113](https://github.com/langwatch/langwatch/issues/9113)) ([8bcffa2](https://github.com/langwatch/langwatch/commit/8bcffa29ee40bfa572e8fd29dfe981b416134033))
* **redaction:** find email addresses in one pass instead of a quadratic regex ([#9205](https://github.com/langwatch/langwatch/issues/9205)) ([73079a2](https://github.com/langwatch/langwatch/commit/73079a267b23bf25c9a750a462a441facbbf6a2a))
* run ClickHouse image 0.4.0 in the dev and self-host compose so custom_ settings work ([#9057](https://github.com/langwatch/langwatch/issues/9057)) ([86a85ee](https://github.com/langwatch/langwatch/commit/86a85eebcb59d045bb540516ad6b690b720e2300))
* **security:** close 148 of 150 alerts across the python locks ([#7634](https://github.com/langwatch/langwatch/issues/7634)) ([c0837d1](https://github.com/langwatch/langwatch/commit/c0837d164d28f15ba179fc6f1c1f0516be32cfa3))
* **security:** close all 52 Go alerts (grpc 1.83.2 in 16 modules, OTel-Go 1.45.0 in the SDK) ([#7931](https://github.com/langwatch/langwatch/issues/7931)) ([691f480](https://github.com/langwatch/langwatch/commit/691f4807bb06db2213898e640b0e4075168062bc))
* **security:** close the nine alerts raised on 2026-10-22 ([#8982](https://github.com/langwatch/langwatch/issues/8982)) ([7eca2c2](https://github.com/langwatch/langwatch/commit/7eca2c24ccba4b38a1636048ea18801a2fd1d2b1))
* **security:** let ALLOWED_PROXY_HOSTS reach on-premise .local hosts ([#9088](https://github.com/langwatch/langwatch/issues/9088)) ([3880e8d](https://github.com/langwatch/langwatch/commit/3880e8d848473e45c1af96b08d2ca48c0aef8b45))
* **security:** raise JS security floors for the root workspace and SDK examples ([#6569](https://github.com/langwatch/langwatch/issues/6569)) ([2adf11f](https://github.com/langwatch/langwatch/commit/2adf11f42e98b42f8508a87e29be33c3264e07f3))
* **security:** read client address headers only from configured proxies ([#8970](https://github.com/langwatch/langwatch/issues/8970)) ([9ae6ca4](https://github.com/langwatch/langwatch/commit/9ae6ca4f8cf59a0d00a5046b7b273dc18fc5d0d9))
* **test:** isolate the platform-health suites and wait for the measured query_log entry ([#9027](https://github.com/langwatch/langwatch/issues/9027)) ([c96cc6a](https://github.com/langwatch/langwatch/commit/c96cc6a9116e5d9c4f81c52a75b4bfa9223f45ff))
* **trace:** a span's own attributes never break its read on a request-param name ([#9179](https://github.com/langwatch/langwatch/issues/9179)) ([d8adba2](https://github.com/langwatch/langwatch/commit/d8adba263b07692e61b5621527d5ade34d019894))
* **trace:** bound offloaded-field recall so large traces can't kill the worker ([#9115](https://github.com/langwatch/langwatch/issues/9115)) ([fdac9b4](https://github.com/langwatch/langwatch/commit/fdac9b4ae47549c21b132bb3dd9e78c116a2b575))
* **workflow:** never move a studio Lambda to an older image during a rollout ([#9030](https://github.com/langwatch/langwatch/issues/9030)) ([6839a6b](https://github.com/langwatch/langwatch/commit/6839a6b75378cb891895cdde85d054dd5bb1240b))
### Miscellaneous
* **deps:** bump aiohttp ([b51e7cb](https://github.com/langwatch/langwatch/commit/b51e7cb7ecf4c4722135d7e0456fd48f1963859c))
* **deps:** bump aiohttp from 3.14.3 to 3.14.4 in the uv group across 1 directory ([#8941](https://github.com/langwatch/langwatch/issues/8941)) ([b51e7cb](https://github.com/langwatch/langwatch/commit/b51e7cb7ecf4c4722135d7e0456fd48f1963859c))
* drop tslsp-cli, point agents at rush ts ([#8985](https://github.com/langwatch/langwatch/issues/8985)) ([afb36c1](https://github.com/langwatch/langwatch/commit/afb36c17b9e369120301b9f46ed4954ec2d3231b))
* **main:** release langwatch 4.0.0 ([#8951](https://github.com/langwatch/langwatch/issues/8951)) ([a6090a6](https://github.com/langwatch/langwatch/commit/a6090a69663ae21225e739f83b88648779e8ed6b))
* **release:** undo langwatch 4.0.0 so the platform releases as 3.22.0 ([#9225](https://github.com/langwatch/langwatch/issues/9225)) ([637d1c2](https://github.com/langwatch/langwatch/commit/637d1c2d2ce4448b1ccc77a61949132adbf2a533))
* sync model registry (531 models) ([#9032](https://github.com/langwatch/langwatch/issues/9032)) ([0464ff3](https://github.com/langwatch/langwatch/commit/0464ff39ad867d3cbd0b3eec3ee24e1fcdffee17))
* sync model registry (532 models) ([#9109](https://github.com/langwatch/langwatch/issues/9109)) ([e2125b4](https://github.com/langwatch/langwatch/commit/e2125b4add3f78d0667287c5f4ec486201b26166))
### Documentation
* **agent-testing:** add the setup and teardown hooks guide ([#8920](https://github.com/langwatch/langwatch/issues/8920)) ([d3e993c](https://github.com/langwatch/langwatch/commit/d3e993c4b1949cfc1634ff8c3f544d5f7c13c5d5))
* **dashboards:** launch-day docs and api reference pages for boards and widgets ([#9076](https://github.com/langwatch/langwatch/issues/9076)) ([22e3a67](https://github.com/langwatch/langwatch/commit/22e3a67582a0a9ae4258607a5a47a715d2c8a70f))
### Code Refactoring
* **api-key:** move the legacy key revoked notice into a ui block ([#9075](https://github.com/langwatch/langwatch/issues/9075)) ([7aeb146](https://github.com/langwatch/langwatch/commit/7aeb146c2b2ebe4e6d866177e365ceca44a5124b))
## [3.21.0](https://github.com/langwatch/langwatch/compare/langwatch@v3.20.1...langwatch@v3.21.0) (2026-10-21)
### Features
* **analytics:** campaign conversion events for sign in, sign up and paid ([#8445](https://github.com/langwatch/langwatch/issues/8445)) ([c502c44](https://github.com/langwatch/langwatch/commit/c502c441f5ce09073b41ee99f422570ace96a3b4))
* **auth:** setting to restrict self sign-up on self-hosted installs ([#8425](https://github.com/langwatch/langwatch/issues/8425)) ([dd31854](https://github.com/langwatch/langwatch/commit/dd3185478284c7897ad112efa28366238decc0e5))
* **chart:** offer Valkey as a Redis option via the redis-valkey overlay ([#8881](https://github.com/langwatch/langwatch/issues/8881)) ([7472160](https://github.com/langwatch/langwatch/commit/7472160c38b2abccfcfb3e92fa34e99bd90aaa0a))
* **ci:** every code PR states it follows the architecture guide and flags what needs a human look ([#8668](https://github.com/langwatch/langwatch/issues/8668)) ([d83a813](https://github.com/langwatch/langwatch/commit/d83a8135988413d32a1e897d5711bea0b700fb56))
* **ci:** nightly health survives a red typecheck, tracks bundle size, keeps a dashboard issue ([#8656](https://github.com/langwatch/langwatch/issues/8656)) ([4741037](https://github.com/langwatch/langwatch/commit/47410379ad1293387c9ad297634e6b509ec5db7a))
* **ci:** publish langwatch-app frontend assets to the CDN bucket with the ECR image ([#8678](https://github.com/langwatch/langwatch/issues/8678)) ([fdb0b7c](https://github.com/langwatch/langwatch/commit/fdb0b7caa8be3348fbed2957a356221b72f8d009))
* **clickhouse:** id indexes, so a lookup by id reads only the partitions its rows live in ([#8561](https://github.com/langwatch/langwatch/issues/8561)) ([dcb902b](https://github.com/langwatch/langwatch/commit/dcb902bdff81d535bf1526c384ea5adf00f78de4))
* **clickhouse:** separate insert and read statement concurrency budgets ([#8488](https://github.com/langwatch/langwatch/issues/8488)) ([d96113b](https://github.com/langwatch/langwatch/commit/d96113ba11e7fedca27d91f8fa7c81874a4e473b))
* **dashboard:** move dashboards v2 onto its own tables ([#8707](https://github.com/langwatch/langwatch/issues/8707)) ([7f1f527](https://github.com/langwatch/langwatch/commit/7f1f527f85363fe97cdc93d300b7c469de4463eb))
* **dashboards,insight:** dashboards and insights v1 ([#8545](https://github.com/langwatch/langwatch/issues/8545)) ([7b5e13d](https://github.com/langwatch/langwatch/commit/7b5e13dd84492d526f1442e3360005ff1ed08613))
* **governance:** aggregate members read over their full history, except by department ([#8552](https://github.com/langwatch/langwatch/issues/8552)) ([7125be3](https://github.com/langwatch/langwatch/commit/7125be315860f5793aa610b48745e61e97468d78))
* **governance:** aggregate project offers Sessions, read through the proof ([#8710](https://github.com/langwatch/langwatch/issues/8710)) ([1b57fac](https://github.com/langwatch/langwatch/commit/1b57fac560f6079388eb764e5113d668087a288c))
* **governance:** an aggregate project reads its member projects through shared grants ([#8487](https://github.com/langwatch/langwatch/issues/8487)) ([e683dd9](https://github.com/langwatch/langwatch/commit/e683dd9ea52c148e7678b1c22202dbfea9f1eb9f))
* **governance:** event-only aggregate reconcile; coding-agent-cost skill narrows by TenantId ([#8652](https://github.com/langwatch/langwatch/issues/8652)) ([ad90571](https://github.com/langwatch/langwatch/commit/ad9057171de3543a0cba75b07328ba348a8f2373))
* **group-queue:** pipeline and job labels on blocked and oldest-age gauges, a non-retryable reason, tenant park logs ([#8813](https://github.com/langwatch/langwatch/issues/8813)) ([8735d0a](https://github.com/langwatch/langwatch/commit/8735d0adf95bc61445b36dcb34a50ad1ddfe09c7))
* **haven:** run Valkey as the local Redis ([#8882](https://github.com/langwatch/langwatch/issues/8882)) ([e79eb75](https://github.com/langwatch/langwatch/commit/e79eb75ca68a9e7b5329d2885e655b534f3fcb7c))
* **instant-eval:** release self-hosted installs by their licence alone ([#8684](https://github.com/langwatch/langwatch/issues/8684)) ([2f68f76](https://github.com/langwatch/langwatch/commit/2f68f769f5a5d5388a099b9e6d2a1c4489a4554a))
* **instant-evals:** opt-in switch for self-serve organizations, clearer refusal popovers ([#8348](https://github.com/langwatch/langwatch/issues/8348)) ([0a2baa6](https://github.com/langwatch/langwatch/commit/0a2baa67ecbf6e8973cdec617ccb66ce414295b2))
* **instant-evals:** release self-hosted installs by license, and say why when not ([#8416](https://github.com/langwatch/langwatch/issues/8416)) ([fa9139d](https://github.com/langwatch/langwatch/commit/fa9139d92ae0360054454dcd8ca16a2df3479a7e))
* **langy:** delete needs a confirmation click ([#7563](https://github.com/langwatch/langwatch/issues/7563)) ([a6ca678](https://github.com/langwatch/langwatch/commit/a6ca678d5dbde52f970df044cd27ae6f9627c450))
* **members:** developer seat, a member who owns a personal project and nothing shared ([#8373](https://github.com/langwatch/langwatch/issues/8373)) ([30ff7ea](https://github.com/langwatch/langwatch/commit/30ff7ea74a4caba95afb76d59ca9a6906b6f613e))
* **members:** join requests made from the terminal land as a Developer and the welcome screen honours pending invitations ([#8462](https://github.com/langwatch/langwatch/issues/8462)) ([2687513](https://github.com/langwatch/langwatch/commit/2687513eaaef639123bec601f78d4c11d9679826))
* **navigation:** rename the Admin console to Operations and point Settings to it ([#8701](https://github.com/langwatch/langwatch/issues/8701)) ([1bb4f7c](https://github.com/langwatch/langwatch/commit/1bb4f7c1797e6bf02101506cbc7e7e28b7279cff))
* **ops:** licence list filters say what they hide ([#8788](https://github.com/langwatch/langwatch/issues/8788)) ([044ff58](https://github.com/langwatch/langwatch/commit/044ff580b1fd0ba43b48d2235798ef44d951d523))
* **ops:** self-hosted installs summary, sort and filters; licence list filters ([#8776](https://github.com/langwatch/langwatch/issues/8776)) ([f2d13c7](https://github.com/langwatch/langwatch/commit/f2d13c71bf4544640d807728165d743cdf2b99b8))
* **ops:** upgrade alert emails on the shared mail template, with a link per failed step ([#8730](https://github.com/langwatch/langwatch/issues/8730)) ([31e5fa8](https://github.com/langwatch/langwatch/commit/31e5fa8433d1500f4881fa2380602930d4c18a69))
* **otel:** decode OTLP bodies by magic bytes (zstd, gzip under wrong Content-Encoding) ([#8501](https://github.com/langwatch/langwatch/issues/8501)) ([9ad8f1e](https://github.com/langwatch/langwatch/commit/9ad8f1e46454dd11dae47410de4e30b48bd07ad2))
* **scenarios:** setup and teardown hooks for connected agents ([#8765](https://github.com/langwatch/langwatch/issues/8765)) ([b0949cd](https://github.com/langwatch/langwatch/commit/b0949cdd929d35f030ddeb2fc1c16b1f33328c0f))
* **sdks:** send traces as gzipped OTLP/protobuf by default in every SDK ([#8592](https://github.com/langwatch/langwatch/issues/8592)) ([206c830](https://github.com/langwatch/langwatch/commit/206c830dc5653660348004fb10a267cc9d13e7b2))
* **server:** npx downloads a prebuilt app; evaluations retry while the evaluator is down ([#8845](https://github.com/langwatch/langwatch/issues/8845)) ([6e44487](https://github.com/langwatch/langwatch/commit/6e444878b00756e6d31e3d6cb36611b80920234c))
* sign-up Slack notices as compact cards with links into ops, plus a SCIM push summary ([#8700](https://github.com/langwatch/langwatch/issues/8700)) ([498b979](https://github.com/langwatch/langwatch/commit/498b979f28297e8c98367589df189de1532f3a88))
* **sims:** mcpsim, a simulator of MCP clients driving the hosted MCP endpoint ([#8720](https://github.com/langwatch/langwatch/issues/8720)) ([858993d](https://github.com/langwatch/langwatch/commit/858993d6d037843dfcd400d435ba97a5b4bfcdf0))
* **toolchain:** run tsrs behind tsc ([#8922](https://github.com/langwatch/langwatch/issues/8922)) ([551bdd8](https://github.com/langwatch/langwatch/commit/551bdd8895595db81e8c87c8707f08d270402049))
* **tooling:** code-search skill (rg, sgrep, gopls) and a .ignore for generated files ([#8687](https://github.com/langwatch/langwatch/issues/8687)) ([0ed5e71](https://github.com/langwatch/langwatch/commit/0ed5e719cd239b6b2bda92b1d97feef58b2baaed))
* **trace,eventing:** origin checks can queue only ids (reader release) ([#8871](https://github.com/langwatch/langwatch/issues/8871)) ([dc862c8](https://github.com/langwatch/langwatch/commit/dc862c839c4cf691fb338b0d4d61aa402f744502))
* **upgrade:** diagnostics for a failed upgrade step, sent over Connect ([#8853](https://github.com/langwatch/langwatch/issues/8853)) ([ba39198](https://github.com/langwatch/langwatch/commit/ba391986f0ffd6e92198b14e4a7f7c21b1f1d577))
### Bug Fixes
* agent testing drawer close and width, dataset upload opens, traces search stays in its project ([#8755](https://github.com/langwatch/langwatch/issues/8755)) ([945bf9c](https://github.com/langwatch/langwatch/commit/945bf9cba5509b922149f148dd8ff7472cc5f16c))
* **agent:** Edit config shows a stored agent's inputs, outputs and mappings again ([#8697](https://github.com/langwatch/langwatch/issues/8697)) ([36b234d](https://github.com/langwatch/langwatch/commit/36b234d9eb739642c1df02de2c46047d018b46a1))
* **agent:** Edit config shows a stored agent's inputs, outputs and mappings again, and a save keeps what the editor does not show ([36b234d](https://github.com/langwatch/langwatch/commit/36b234d9eb739642c1df02de2c46047d018b46a1))
* **agent:** the code and HTTP agent editors match the previous release again ([#8703](https://github.com/langwatch/langwatch/issues/8703)) ([d528e8a](https://github.com/langwatch/langwatch/commit/d528e8af105e3a8179c61953565b35df5b17489b))
* **aigateway:** encrypted reasoning returns to OpenAI under the item id it was issued with ([#8743](https://github.com/langwatch/langwatch/issues/8743)) ([c74da99](https://github.com/langwatch/langwatch/commit/c74da9907b40dcbd8985e2846565a8ed07f266bd))
* **aigateway:** let private provider endpoints dispatch and trust a private CA ([#8787](https://github.com/langwatch/langwatch/issues/8787)) ([566634d](https://github.com/langwatch/langwatch/commit/566634d37d4f3973c1cd21d133d0ff9e46229b8c))
* **aigateway:** merge parallel tool results on the Bedrock Converse lane and keep Bedrock refusal statuses ([#8422](https://github.com/langwatch/langwatch/issues/8422)) ([0182e6b](https://github.com/langwatch/langwatch/commit/0182e6ba578a772a362b27ec6a5c94b5d2ed9240))
* **alerts:** read a grouped graph's series ungrouped instead of adding groups together ([#8436](https://github.com/langwatch/langwatch/issues/8436)) ([9f4024c](https://github.com/langwatch/langwatch/commit/9f4024c205fb87da5a9d71744ccaadda74b55b07))
* **analytics:** keep dashboard panels under the ClickHouse memory limit and show a compact panel error ([#8525](https://github.com/langwatch/langwatch/issues/8525)) ([d20264a](https://github.com/langwatch/langwatch/commit/d20264acad2efd4068e80080ec407f3c335255cc))
* **analytics:** keep lwql engine tables on a failed converge and reconverge them on a 5-minute check ([#8727](https://github.com/langwatch/langwatch/issues/8727)) ([4a1a123](https://github.com/langwatch/langwatch/commit/4a1a123b3223d94d8cdec2d03ab1225723ef3878))
* **analytics:** read metadata key and value filters from every storage format ([#8432](https://github.com/langwatch/langwatch/issues/8432)) ([10878ad](https://github.com/langwatch/langwatch/commit/10878add81dc900d3560da7bc0ee89a8e09ecfb5))
* **annotations:** serialize annotation commands per trace and 404 on unknown delete ([#8400](https://github.com/langwatch/langwatch/issues/8400)) ([7606bf6](https://github.com/langwatch/langwatch/commit/7606bf6a6641e03912b2e16bbafbe0021f681bb8))
* **api:** admit the shared storage bucket in the page's connect-src ([#8746](https://github.com/langwatch/langwatch/issues/8746)) ([67ef03f](https://github.com/langwatch/langwatch/commit/67ef03fe3f1f46770360b442c29cfec940b4b8ed))
* **api:** put the storage bucket in the page policy's connect-src ([#8748](https://github.com/langwatch/langwatch/issues/8748)) ([1f4cd9a](https://github.com/langwatch/langwatch/commit/1f4cd9a5697a6db12821cefd9ee312189f5bad88))
* **auth:** answer a repeated refresh within 60s with the pair it minted ([#8719](https://github.com/langwatch/langwatch/issues/8719)) ([cc70d34](https://github.com/langwatch/langwatch/commit/cc70d34ab9b2f3cecd4f81a91bf3313d2c98fa24))
* **auth:** leave brokered connections to the legacy guard instead of bouncing ([#8471](https://github.com/langwatch/langwatch/issues/8471)) ([418a183](https://github.com/langwatch/langwatch/commit/418a18367710998af79e9b19c62fbf7593b74af1))
* **auth:** sign-in from pages whose address better-auth refuses ([#8503](https://github.com/langwatch/langwatch/issues/8503)) ([#8504](https://github.com/langwatch/langwatch/issues/8504)) ([3d8d9ce](https://github.com/langwatch/langwatch/commit/3d8d9ce4058446ac3a0a62c597141cde630bed24))
* **auth:** sign-in without Auth0 on cloud, and restrict platform-operator grants ([#8715](https://github.com/langwatch/langwatch/issues/8715)) ([fbd3c4a](https://github.com/langwatch/langwatch/commit/fbd3c4a3a3bb21b72fa53f28f22fae9a724986f8))
* **automation:** add-to-dataset automations map stored spans whose chat parts the strict span shape rejects ([#8693](https://github.com/langwatch/langwatch/issues/8693)) ([7fe05da](https://github.com/langwatch/langwatch/commit/7fe05da73db8d6314a71ca7a4ea054bb52c35078))
* **automation:** add-to-dataset drops columns the dataset no longer has; a dataset refusal is not retried ([#8814](https://github.com/langwatch/langwatch/issues/8814)) ([a18aa42](https://github.com/langwatch/langwatch/commit/a18aa42fc0ad81dc0c63044581b210775c57aa0d))
* **automation:** drain every overdue settlement match on one wake, and refuse redelivered process events before reading state ([#8835](https://github.com/langwatch/langwatch/issues/8835)) ([a8cc843](https://github.com/langwatch/langwatch/commit/a8cc84335819bde93a0b83d516ce2419ecc7302d))
* **automation:** read Trigger rows with JSON-string filters/actionParams ([#8689](https://github.com/langwatch/langwatch/issues/8689)) ([5a454c9](https://github.com/langwatch/langwatch/commit/5a454c9136425ddaddfe81a0ed81692c53e7fbf5))
* **automation:** settlement refusals the customer must fix warn once instead of paging ([#8889](https://github.com/langwatch/langwatch/issues/8889)) ([5321ee1](https://github.com/langwatch/langwatch/commit/5321ee12d53bd1e8b16cc5563b25dd194b63cb76))
* **automations:** evaluation-based automations never fired because the evaluation read returned no rows ([#8465](https://github.com/langwatch/langwatch/issues/8465)) ([ab34223](https://github.com/langwatch/langwatch/commit/ab342230644c2102078baa1972179a9a063b5a49))
* **automation:** wrap a long key inside its condition chip ([#8909](https://github.com/langwatch/langwatch/issues/8909)) ([42ca2f1](https://github.com/langwatch/langwatch/commit/42ca2f1ac434dafd891c43df8dec7884b19dad1e))
* **billing:** currency-aware custom retention price on the Growth plan ([#8502](https://github.com/langwatch/langwatch/issues/8502)) ([303a35e](https://github.com/langwatch/langwatch/commit/303a35e02b471b759b250c222cbdb8989c8fc125))
* **billing:** over-seat upgrade prompt, cloud Free creation caps, Free card copy ([#8505](https://github.com/langwatch/langwatch/issues/8505)) ([4ea3334](https://github.com/langwatch/langwatch/commit/4ea333482aba1e8eef5870c15ce35ce96e751a71))
* **chart:** cap Redis memory at half its limit, production Redis at 3Gi ([#8863](https://github.com/langwatch/langwatch/issues/8863)) ([dd2a86e](https://github.com/langwatch/langwatch/commit/dd2a86e0b31dbae8ec34f4e12e10392188e09a4a))
* **ci:** a pull request's changed paths are its own commits ([#8899](https://github.com/langwatch/langwatch/issues/8899)) ([952568d](https://github.com/langwatch/langwatch/commit/952568d73d48554ab3ca932d16aed13e9e8571e4))
* **ci:** bring main's lint and format checks back to green ([#8708](https://github.com/langwatch/langwatch/issues/8708)) ([6162fad](https://github.com/langwatch/langwatch/commit/6162fadea75601fb55e2b5035cdcada0096361eb))
* **ci:** fewer wasted runner minutes on release PRs, branch smoke tests and chart kind tests ([#8680](https://github.com/langwatch/langwatch/issues/8680)) ([0db4f53](https://github.com/langwatch/langwatch/commit/0db4f5338286affb2475ebe8f91cf84853f0c572))
* **ci:** hash the Dockerfile into scenario-process's test cache key ([#8698](https://github.com/langwatch/langwatch/issues/8698)) ([3c711ab](https://github.com/langwatch/langwatch/commit/3c711aba531b8337cca78b06d2a62b5ebfd89888))
* **ci:** leave the release-please Chart.yaml files to release-please ([#8936](https://github.com/langwatch/langwatch/issues/8936)) ([15f97f2](https://github.com/langwatch/langwatch/commit/15f97f29603528cdea9bec10b5ab921609760ab4))
* **ci:** make CI green again ([#8604](https://github.com/langwatch/langwatch/issues/8604)) ([66eb01a](https://github.com/langwatch/langwatch/commit/66eb01adb64a1938a5a38fd7592e55deb6783785))
* **ci:** split package suites over the shards by measured time ([#8661](https://github.com/langwatch/langwatch/issues/8661)) ([fb9e0dc](https://github.com/langwatch/langwatch/commit/fb9e0dcf97dba910dc45f1a0f7143941ce6aa491))
* **clickhouse-serverless:** bound memory on pods of 4 GiB or less ([#8856](https://github.com/langwatch/langwatch/issues/8856)) ([495155c](https://github.com/langwatch/langwatch/commit/495155cf746d207717411cf67cd46c4a6407eaec))
* dashboards and insights v1 follow-ups ([#8648](https://github.com/langwatch/langwatch/issues/8648)) ([127182a](https://github.com/langwatch/langwatch/commit/127182af50d2716f03ecf9f4092c90cebf89cf56))
* **dataset:** copied entries keep their source order on every collation ([#8869](https://github.com/langwatch/langwatch/issues/8869)) ([101f596](https://github.com/langwatch/langwatch/commit/101f596469d9baba107ef87eaf02381ffb7022db))
* **dataset:** no error notice over a loaded datasets list; browser reads get a 45 s time limit ([#8711](https://github.com/langwatch/langwatch/issues/8711)) ([6ff2741](https://github.com/langwatch/langwatch/commit/6ff2741562c846738881156adf555746065149fb))
* **dataset:** serve the previous release's single-file datasets in place ([#8663](https://github.com/langwatch/langwatch/issues/8663)) ([560cad1](https://github.com/langwatch/langwatch/commit/560cad1957330a4924677615977ad0d97b2cddbc))
* **deps:** bump OpenTelemetry Go modules to clear govulncheck ([#8417](https://github.com/langwatch/langwatch/issues/8417)) ([e477614](https://github.com/langwatch/langwatch/commit/e4776147883d496995fbf4f34dbdd8ba218d8db2))
* **design-system:** one emoji picker that dialogs never clip; agent card menu above its neighbours ([#8732](https://github.com/langwatch/langwatch/issues/8732)) ([c8d2a9c](https://github.com/langwatch/langwatch/commit/c8d2a9c0413c0b50010b78396e0a00cf6364dc07))
* **dev:** make service loads an env file named without a slash under dash ([#8522](https://github.com/langwatch/langwatch/issues/8522)) ([42a381a](https://github.com/langwatch/langwatch/commit/42a381aa9aeb10db5b121dfdfda39d0531cdf1b7))
* **entitlement:** stop orphan projects killing the usage-warning sweep ([#8886](https://github.com/langwatch/langwatch/issues/8886)) ([778551e](https://github.com/langwatch/langwatch/commit/778551eb14472a818ad6d6685e0306b65c547b21))
* **evaluator:** run code evaluators on the project's engine ([#8716](https://github.com/langwatch/langwatch/issues/8716)) ([c835601](https://github.com/langwatch/langwatch/commit/c83560167044e5551dfe859433f7cf0d6e09a34c))
* **eventing,authz:** a fold for a deleted project completes instead of retrying ([#8733](https://github.com/langwatch/langwatch/issues/8733)) ([fb07bb5](https://github.com/langwatch/langwatch/commit/fb07bb5c5f907bd9b056bd56ab9b231e8d072ad2))
* **eventing:** drain queue consumers before closing the producer ([#8888](https://github.com/langwatch/langwatch/issues/8888)) ([f05e197](https://github.com/langwatch/langwatch/commit/f05e197ede940d9b488813bbd6ba576a97fa24eb))
* **eventing:** re-send redelivered events to keyed folds that opt in ([#8887](https://github.com/langwatch/langwatch/issues/8887)) ([c61b059](https://github.com/langwatch/langwatch/commit/c61b05912d0d8207e933b4f5c73a6ceeaae4551b))
* **eventing:** record stored events and store duration for every pipeline ([#8819](https://github.com/langwatch/langwatch/issues/8819)) ([45aaca9](https://github.com/langwatch/langwatch/commit/45aaca92ea6508053fbf761f03c4724e3185097a))
* **eventing:** ship the process-manager sweep age indexes as a migration ([#8712](https://github.com/langwatch/langwatch/issues/8712)) ([018593b](https://github.com/langwatch/langwatch/commit/018593b91d3deac0512cb4759f08e20525ffd7e5))
* **eventing:** stop the post-[#7536](https://github.com/langwatch/langwatch/issues/7536) retry storms, keep parked work, and fix the incident's ops readouts ([#8801](https://github.com/langwatch/langwatch/issues/8801)) ([827cc17](https://github.com/langwatch/langwatch/commit/827cc17a2cd7a59d4b2eaf30b53e09c1489316a9))
* **eventing:** workers claim disjoint batches of due process wakes ([#8839](https://github.com/langwatch/langwatch/issues/8839)) ([5bc0448](https://github.com/langwatch/langwatch/commit/5bc0448a79c24857f056ebc700880b1e2ce4af76))
* **experiment:** price cached prompt tokens at the cache rates ([#8831](https://github.com/langwatch/langwatch/issues/8831)) ([052474d](https://github.com/langwatch/langwatch/commit/052474d1b38d2ea5fcb8729e46b642ba5905efca))
* **experiments:** replicated experiment saves to itself, not the original ([#8514](https://github.com/langwatch/langwatch/issues/8514)) ([26e6093](https://github.com/langwatch/langwatch/commit/26e60935e2284a2e6e00cdb89269b497c977a281))
* **featureparity:** move provider-list.feature to the Go legacyPartial list, matching the Node tool ([#8931](https://github.com/langwatch/langwatch/issues/8931)) ([0e5f50d](https://github.com/langwatch/langwatch/commit/0e5f50dfdf7191b9b45a494ccb6bf99c373f8f5c))
* follow-ups that missed the [#7536](https://github.com/langwatch/langwatch/issues/7536) merge (eventing leases, group-queue dead workers, upgrade pacing, upgradelab) ([#8580](https://github.com/langwatch/langwatch/issues/8580)) ([7aca052](https://github.com/langwatch/langwatch/commit/7aca0524747e37193b219add62a00b45b1e55ae7))
* **go:** bump the toolchain to go1.27.3 for GO-2026-6809 ([#8905](https://github.com/langwatch/langwatch/issues/8905)) ([5d58b64](https://github.com/langwatch/langwatch/commit/5d58b64194dde3a1ee1cfe2f746616c08d5eb903))
* **group-queue:** queue scripts declare Redis 7 flags so none half-applies at the memory cap ([#8873](https://github.com/langwatch/langwatch/issues/8873)) ([754d515](https://github.com/langwatch/langwatch/commit/754d5158d4b110bf6b96680a23f132be1428a679))
* **group-queue:** stop the listed consumer re-reading parked and blocked groups every 50ms ([#8750](https://github.com/langwatch/langwatch/issues/8750)) ([919b8eb](https://github.com/langwatch/langwatch/commit/919b8eb312086ddc4df1b16c76ae0d63f05c2c6b))
* **hosted-mcp:** project viewers can connect an MCP client ([#8731](https://github.com/langwatch/langwatch/issues/8731)) ([8521239](https://github.com/langwatch/langwatch/commit/85212393f5f1a890c6a85b7990618589f96d6a57))
* **hosted-mcp:** retire the SSE transport and keep sessions across deploys ([#8718](https://github.com/langwatch/langwatch/issues/8718)) ([b4cf76b](https://github.com/langwatch/langwatch/commit/b4cf76b9f64ec5f4d8df88ec6703ef3fc7ff4b42))
* **identity:** hold unproven and pinned users on the person, not the proof ([#8907](https://github.com/langwatch/langwatch/issues/8907)) ([936a90e](https://github.com/langwatch/langwatch/commit/936a90eddb384ecb5352013568362a9fdf33d73c))
* **image-proxy:** cap the size of relayed images ([#8655](https://github.com/langwatch/langwatch/issues/8655)) ([94dbf2a](https://github.com/langwatch/langwatch/commit/94dbf2a82445e28dcb29972ba66890d3d8fe3912))
* **image:** build the scenario child into the image, and fail loudly without it ([#8688](https://github.com/langwatch/langwatch/issues/8688)) ([c8454c5](https://github.com/langwatch/langwatch/commit/c8454c55ac0b41251b0d3e1f128edac43659b74a))
* **image:** install the scenario child's build dependencies before building it ([#8702](https://github.com/langwatch/langwatch/issues/8702)) ([5520bdf](https://github.com/langwatch/langwatch/commit/5520bdffb039d3adce901a019e4ca91bd2476de7))
* **image:** the new image keeps the previous release's contract, and ships at a third of the size ([#8662](https://github.com/langwatch/langwatch/issues/8662)) ([63d2723](https://github.com/langwatch/langwatch/commit/63d272334b1016ea7cff868f09e56cb136db9dc4))
* **ingest:** accept OTLP/JSON spans whose links/events omit default-valued fields ([#8478](https://github.com/langwatch/langwatch/issues/8478)) ([2b7c11b](https://github.com/langwatch/langwatch/commit/2b7c11baa782ba9184140f1a6a9e091b3c6db511))
* **instant-eval:** release regular customers by their own opt-in only on cloud ([#8657](https://github.com/langwatch/langwatch/issues/8657)) ([bcd9d7c](https://github.com/langwatch/langwatch/commit/bcd9d7cb8dfea1f142961f98a4934360059448ca))
* **langy,onboarding:** production findings on Langy, guided onboarding, gateway drawers and api restarts ([#8793](https://github.com/langwatch/langwatch/issues/8793)) ([15ecff3](https://github.com/langwatch/langwatch/commit/15ecff3528893bb8191fafee9d550e92f7e2f4ba))
* **langy:** centre the mark in the closed launcher before the panel has loaded ([#8717](https://github.com/langwatch/langwatch/issues/8717)) ([f59a74a](https://github.com/langwatch/langwatch/commit/f59a74ac8168be64a770eedd430766264b655c85))
* **langy:** fail a spent provider balance on the first call ([#8892](https://github.com/langwatch/langwatch/issues/8892)) ([2c516ce](https://github.com/langwatch/langwatch/commit/2c516ce3bee30a472ffe32b1ff987f6994188b0e))
* **langy:** route Bedrock OpenAI models through Converse, name provider refusals, apply provider changes to cached keys ([#8388](https://github.com/langwatch/langwatch/issues/8388)) ([d75ae80](https://github.com/langwatch/langwatch/commit/d75ae801b38966a25b0d512109cdeab73826e7ce))
* **langy:** save a picked default model, name the rejected key, and show the queued question in provider setup ([#8486](https://github.com/langwatch/langwatch/issues/8486)) ([681628e](https://github.com/langwatch/langwatch/commit/681628e7736937cbeca60a9617a6eb2650175d94))
* **langy:** say how old the newest data is when a time-bounded query returns nothing ([#8741](https://github.com/langwatch/langwatch/issues/8741)) ([bc05fd1](https://github.com/langwatch/langwatch/commit/bc05fd1683ef5cf702689118511de232af31e1e1))
* **langy:** stop guided onboarding from promising work after it stalls ([#8714](https://github.com/langwatch/langwatch/issues/8714)) ([addfd4f](https://github.com/langwatch/langwatch/commit/addfd4fa1f60a9187d443b0e73641248ed7415db))
* main's CI back to green, with the last strict-layout follow-ups ([#8598](https://github.com/langwatch/langwatch/issues/8598)) ([6791316](https://github.com/langwatch/langwatch/commit/6791316ad775a628d620d6315422b73ebeb4e15b))
* **model-provider:** hold an evaluator's max tokens to the model's limit on Vertex AI ([#8824](https://github.com/langwatch/langwatch/issues/8824)) ([e34afda](https://github.com/langwatch/langwatch/commit/e34afda1f608f9a113079517136da47a322efc11))
* **model-provider:** keep topic clustering off the Codex coding default ([#8885](https://github.com/langwatch/langwatch/issues/8885)) ([0398c63](https://github.com/langwatch/langwatch/commit/0398c63ea7d218b4d9dd9714b0b4ba8ad237b697))
* **model-provider:** send the stored service account on Vertex AI calls again ([#8784](https://github.com/langwatch/langwatch/issues/8784)) ([1e05199](https://github.com/langwatch/langwatch/commit/1e0519925833d0082954b6a2e164966f4cc807b2))
* **model-providers:** save a first provider with its key and serve openai base urls on the responses lane ([#8473](https://github.com/langwatch/langwatch/issues/8473)) ([ddb939c](https://github.com/langwatch/langwatch/commit/ddb939ce73aeaf1c661f85dba71f191d60cffe48))
* **model-provider:** stretch the providers table to the page width ([#8916](https://github.com/langwatch/langwatch/issues/8916)) ([0fcf003](https://github.com/langwatch/langwatch/commit/0fcf003cb421399b840522b3ed9f8a9aa8f11579))
* **monitors:** refuse parameters that the linked evaluator's settings override ([#8435](https://github.com/langwatch/langwatch/issues/8435)) ([b9bc5d1](https://github.com/langwatch/langwatch/commit/b9bc5d14f53a1139ee2dbfb1ff1e619bafc341c8))
* **nlpgo:** harden code-block isolation and internal endpoint auth ([#8424](https://github.com/langwatch/langwatch/issues/8424)) ([ff9f1ed](https://github.com/langwatch/langwatch/commit/ff9f1ed1e6a96cc33daa1dfc49f11aed34c45f7c))
* **nurturing:** key owner facts uniquely and batch nurturing's busy lanes ([#8890](https://github.com/langwatch/langwatch/issues/8890)) ([9c4908a](https://github.com/langwatch/langwatch/commit/9c4908aa193f889d1fc68cbeeea7ee8f1c6a26b0))
* **nx:** a module change no longer marks most of the workspace affected ([#8660](https://github.com/langwatch/langwatch/issues/8660)) ([95e0ad7](https://github.com/langwatch/langwatch/commit/95e0ad7cc20ba9e7ed5d10360a216fcc63d77f76))
* **observability:** log a bounded cause summary on request errors so Loki stops dropping them ([#8485](https://github.com/langwatch/langwatch/issues/8485)) ([72e699b](https://github.com/langwatch/langwatch/commit/72e699b392b63a31008b0246cc4af4c2c965f78b))
* **observability:** record every platform metric through the OTel facade so the OTLP push carries it ([#8759](https://github.com/langwatch/langwatch/issues/8759)) ([9b089a7](https://github.com/langwatch/langwatch/commit/9b089a78b5cef8eeb73fa0493f56b41ce45eb0bf))
* **ops:** redrive and discard more than 2,000 dead-letter groups at once ([#8751](https://github.com/langwatch/langwatch/issues/8751)) ([41910b8](https://github.com/langwatch/langwatch/commit/41910b8ca6f437c5495f880e4410c15732de771d))
* **ops:** skip projects whose team is gone instead of crashing the migration pass ([#8696](https://github.com/langwatch/langwatch/issues/8696)) ([a8a25f8](https://github.com/langwatch/langwatch/commit/a8a25f8ad338804b42abdd5a84c30bc197d41239))
* **organization:** align governance picker with the create project form ([#8913](https://github.com/langwatch/langwatch/issues/8913)) ([4dae0b8](https://github.com/langwatch/langwatch/commit/4dae0b846aaf37e2b2c2e0fe9e11b7b8e2ec105d))
* **otel:** log unparseable OTLP bodies as client warnings, not PostHog exceptions ([#8489](https://github.com/langwatch/langwatch/issues/8489)) ([f73b082](https://github.com/langwatch/langwatch/commit/f73b082ad2f0f6b06758afeabd419439a75b5699))
* production error findings since the strict-layout deploy ([#8817](https://github.com/langwatch/langwatch/issues/8817)) ([42f3364](https://github.com/langwatch/langwatch/commit/42f3364c8eec7e6aa9a6dcc29fcb7b899bcd7c82))
* **project:** switching project on a consent page keeps its query ([#8728](https://github.com/langwatch/langwatch/issues/8728)) ([5533f75](https://github.com/langwatch/langwatch/commit/5533f75f5b0eb189b1ecce75b0e042240cce5baa))
* **prompt:** normalise legacy prompting_technique values when reading stored versions ([#8694](https://github.com/langwatch/langwatch/issues/8694)) ([ee389ac](https://github.com/langwatch/langwatch/commit/ee389ac55d73004e0ae3d6bd425ec6fe7b0eb5ed))
* quiet API-key refusal floods and accept stored text time scales ([#8816](https://github.com/langwatch/langwatch/issues/8816)) ([25c45be](https://github.com/langwatch/langwatch/commit/25c45be2ebd48cb60771512b4f5f5b52f3428a6f))
* **scenario:** bound the scenario-run state read by start time ([#8713](https://github.com/langwatch/langwatch/issues/8713)) ([6c43f2a](https://github.com/langwatch/langwatch/commit/6c43f2ac23a96931fc789b37de059af394f23feb))
* **scenarios:** refuse fields PUT /api/scenarios/{id} does not have instead of dropping them ([#8438](https://github.com/langwatch/langwatch/issues/8438)) ([891c048](https://github.com/langwatch/langwatch/commit/891c048827e57d32c1ff9038daa4a6db913b3f79))
* **scenarios:** run a project's turns on its own engine, and read that engine's status ([#8429](https://github.com/langwatch/langwatch/issues/8429)) ([66c9815](https://github.com/langwatch/langwatch/commit/66c98151dfbd5b49c353c246a1462b090599a7ad))
* **scenarios:** send a relayed turn to the address the app hands out, not the public one ([#8431](https://github.com/langwatch/langwatch/issues/8431)) ([4c193ed](https://github.com/langwatch/langwatch/commit/4c193ed46a4f8f823e0f47c9461b460413595bd9))
* **security:** pin Node to 24.22.1 for the October 2026 security releases ([#8933](https://github.com/langwatch/langwatch/issues/8933)) ([84b8925](https://github.com/langwatch/langwatch/commit/84b892544207ee63f7ed04e890820fb08f04a6d8))
* **stored-object:** map every purpose the previous release wrote to a delivery audience ([#8695](https://github.com/langwatch/langwatch/issues/8695)) ([aca30a2](https://github.com/langwatch/langwatch/commit/aca30a2e30bb58e9c7bcfa827e961a35be099c4d))
* **suites:** refuse fields POST /api/suites does not have instead of dropping them ([#8437](https://github.com/langwatch/langwatch/issues/8437)) ([3afaf50](https://github.com/langwatch/langwatch/commit/3afaf50b85011910f7fedf19ec55b7821027b51b))
* the copy button clears its timer on unmount, and a docs tag stops breaking the docs build ([#8669](https://github.com/langwatch/langwatch/issues/8669)) ([7d2912b](https://github.com/langwatch/langwatch/commit/7d2912b0a918acda0c5c15159fffb3822dd95dde))
* the run dialog no longer crashes when an evaluator is added under On this run ([#8673](https://github.com/langwatch/langwatch/issues/8673)) ([c54cf06](https://github.com/langwatch/langwatch/commit/c54cf06126c94f6d396e29e2b7adefe8afda1658))
* trace input without a root span, and event detail dataset mappings ([#8704](https://github.com/langwatch/langwatch/issues/8704)) ([e9d0f65](https://github.com/langwatch/langwatch/commit/e9d0f65d1a438a5c37f0869bf0dd277a9f48b5e8))
* **trace:** give both halves of the ADR-022 spool their object storage ([#8690](https://github.com/langwatch/langwatch/issues/8690)) ([ad54b3c](https://github.com/langwatch/langwatch/commit/ad54b3cc7c5dbcd0e8b3aa9a1cb5ff5905d45c78))
* **trace:** read Claude SDK and API OpenTelemetry traces correctly (usage once, large attributes, tool output, cache pricing) ([#8756](https://github.com/langwatch/langwatch/issues/8756)) ([d86cea4](https://github.com/langwatch/langwatch/commit/d86cea4284111d33f4a859ec642241cdf0488fd6))
* **trace:** render serialised LangChain messages as chat messages ([#8747](https://github.com/langwatch/langwatch/issues/8747)) ([b5f64d7](https://github.com/langwatch/langwatch/commit/b5f64d7a33af4a0f90ceb51ffa2f248d04f329ff))
* **traces:** cap trace list page size at 1000 ([#8484](https://github.com/langwatch/langwatch/issues/8484)) ([5167dad](https://github.com/langwatch/langwatch/commit/5167dadf2578b727301e03dc5fe49e4520cc78d1))
* **traces:** hidden input stops blanking other attributes ([#8865](https://github.com/langwatch/langwatch/issues/8865)) ([1bb7e87](https://github.com/langwatch/langwatch/commit/1bb7e87cc900bc9da7b951a21bec4f0aa5649859))
* **traces:** show costs below a tenth of a cent instead of $0.0000 ([#8434](https://github.com/langwatch/langwatch/issues/8434)) ([2d2bf4d](https://github.com/langwatch/langwatch/commit/2d2bf4d47e64a4a6e20b659762ac3550efa20c67))
* **traces:** tie an evaluator's verdict, score and label to that evaluator in trace filters ([#8430](https://github.com/langwatch/langwatch/issues/8430)) ([bfc3931](https://github.com/langwatch/langwatch/commit/bfc3931eabcc7eaef500ac6e1767ebba5bceff69))
* **trace:** traces.getById answers stored traces the strict trace shape refuses ([#8692](https://github.com/langwatch/langwatch/issues/8692)) ([50a119d](https://github.com/langwatch/langwatch/commit/50a119dbce3b85b19c978a9827eed50a2a78b732))
* **triggers:** refuse a different customGraphId on PATCH instead of ignoring it ([#8433](https://github.com/langwatch/langwatch/issues/8433)) ([0ad8ad2](https://github.com/langwatch/langwatch/commit/0ad8ad2e1ae6981c130c4c2877bbd5e2722e8dd6))
* **ui:** restore the pre-refactor look across the shell, trace explorer, agent testing and settings ([#8588](https://github.com/langwatch/langwatch/issues/8588)) ([ed79ac9](https://github.com/langwatch/langwatch/commit/ed79ac93ecf2949eea6693e6539494cbc5682b17))
* upgrade rehearsal findings (sign-in load, email lookups, queue cost, config compatibility) ([#8637](https://github.com/langwatch/langwatch/issues/8637)) ([0519a1c](https://github.com/langwatch/langwatch/commit/0519a1c31409ec8ab629b93b0d13d4062c191266))
* **upgrade:** finish the five failing background steps; plain-language alert for self-hosted ([#8836](https://github.com/langwatch/langwatch/issues/8836)) ([828768c](https://github.com/langwatch/langwatch/commit/828768c0620cb43196bcff097bdba4aa95fbad2b))
* **upgrade:** the upgrade reaches done, and rehearsal fixes ([#8676](https://github.com/langwatch/langwatch/issues/8676)) ([742886a](https://github.com/langwatch/langwatch/commit/742886a1628b10f771ec1a436db5d1ea68900ab1))
* workflow run answers keep the engine's trace, cost, timing and error; profiles use the reported service name ([#8677](https://github.com/langwatch/langwatch/issues/8677)) ([6c601fb](https://github.com/langwatch/langwatch/commit/6c601fb2d8c59abf20657b940276f7989e1040da))
### Miscellaneous
* drop unused SENTRY_DSN env key ([#8381](https://github.com/langwatch/langwatch/issues/8381)) ([47135b2](https://github.com/langwatch/langwatch/commit/47135b2627af2c5f00188cf0b854adf01b27c47f))
* remove boxd ([#8868](https://github.com/langwatch/langwatch/issues/8868)) ([bf97322](https://github.com/langwatch/langwatch/commit/bf9732281ea766a66254d7c89e2417c4efa3ffbb))
* remove the apidiff, visualdiff and related diff tools ([#8591](https://github.com/langwatch/langwatch/issues/8591)) ([bf7d2ba](https://github.com/langwatch/langwatch/commit/bf7d2ba50730af2317e3ff6441f5d7479ba294fa))
* **review:** make CodeRabbit review once, quietly, and leave lint to CI ([#8897](https://github.com/langwatch/langwatch/issues/8897)) ([eb8c6bf](https://github.com/langwatch/langwatch/commit/eb8c6bfdf96862d40206f45c76b551f4f314893d))
* sync model registry ([704ff1e](https://github.com/langwatch/langwatch/commit/704ff1efdf5f8869918008f5459480954c50a28a))
* sync model registry (531 models) ([#8532](https://github.com/langwatch/langwatch/issues/8532)) ([704ff1e](https://github.com/langwatch/langwatch/commit/704ff1efdf5f8869918008f5459480954c50a28a))
### Documentation
* add Claude Platform OpenTelemetry integration page ([#8753](https://github.com/langwatch/langwatch/issues/8753)) ([58d66ca](https://github.com/langwatch/langwatch/commit/58d66ca4d2b40d33a5bd851a00fc9d878c98583e))
* add OpenRouter Broadcast integration page ([#8764](https://github.com/langwatch/langwatch/issues/8764)) ([5bcbb5e](https://github.com/langwatch/langwatch/commit/5bcbb5ed46d04c30614a9a9dfb76685ae694996b))
* fix crewai and smolagents integration samples ([#8794](https://github.com/langwatch/langwatch/issues/8794)) ([a100772](https://github.com/langwatch/langwatch/commit/a100772b4e86d22f0f559115d54de36182cfd3d6))
* **members:** document terminal sign-ups landing on the Developer seat ([#8482](https://github.com/langwatch/langwatch/issues/8482)) ([c81ac27](https://github.com/langwatch/langwatch/commit/c81ac2772f35b3f4eb2489fd535db2fa803f12bf))
* **readme:** cover headline says who LangWatch is for ([#8452](https://github.com/langwatch/langwatch/issues/8452)) ([a848689](https://github.com/langwatch/langwatch/commit/a848689d3a51e230aee3c5bb078185a27e55d901))
* **self-hosting:** correct security, env var and Helm values docs against the code ([#8426](https://github.com/langwatch/langwatch/issues/8426)) ([92d3399](https://github.com/langwatch/langwatch/commit/92d3399871bbd920a022ec46b983fc7db9f48f72))
* **self-hosting:** throughput by size profile, Redis or Valkey ([#8828](https://github.com/langwatch/langwatch/issues/8828)) ([bebeddb](https://github.com/langwatch/langwatch/commit/bebeddbae6004db236c69bcc2d53b5226c72072c))
### Code Refactoring
* **architecture:** introduce domain driven separation across the entire monorepo ([#7536](https://github.com/langwatch/langwatch/issues/7536)) ([47d3882](https://github.com/langwatch/langwatch/commit/47d388239a9827aa4f01dd366260ff1263f793c5))
* **eventing:** layer framework packages like a process half, with lint and safety nets (ADR-181, wave 1) ([#8822](https://github.com/langwatch/langwatch/issues/8822)) ([31a90f3](https://github.com/langwatch/langwatch/commit/31a90f3a91c4725caa55a3db6b7dc064b1ec9a6d))
* **sims:** keep mcpsim's readSSE under the complexity limit ([#8723](https://github.com/langwatch/langwatch/issues/8723)) ([5f46713](https://github.com/langwatch/langwatch/commit/5f46713e8550d64ededa122f9b8e71ad0569960c))
* **stored-object:** mint ids with the storedobject KSUID resource ([#8745](https://github.com/langwatch/langwatch/issues/8745)) ([fc98456](https://github.com/langwatch/langwatch/commit/fc98456981a1c08366095269dd3d56515a976a2e))
## [3.20.1](https://github.com/langwatch/langwatch/compare/langwatch@v3.20.0...langwatch@v3.20.1) (2026-10-02)
### Bug Fixes
* **sso:** self-hosted sign-in sends colleagues straight to the sole live connection ([#8411](https://github.com/langwatch/langwatch/issues/8411)) ([82be095](https://github.com/langwatch/langwatch/commit/82be095b69a5d5bdcdb3b03f673ab232779ab3f5))
### Miscellaneous
* review nits on the test doubles and the discovery example ([99e4f0e](https://github.com/langwatch/langwatch/commit/99e4f0e06383ba04228197549262e8f2e6a0b9c9))
* **sso:** review nits on the discovery example and the test doubles ([#8410](https://github.com/langwatch/langwatch/issues/8410)) ([99e4f0e](https://github.com/langwatch/langwatch/commit/99e4f0e06383ba04228197549262e8f2e6a0b9c9))
## [3.20.0](https://github.com/langwatch/langwatch/compare/langwatch@v3.19.4...langwatch@v3.20.0) (2026-10-01)
### Features
* **self-hosting:** third-party calls off by default, managed models only for langwatch/ models ([#8396](https://github.com/langwatch/langwatch/issues/8396)) ([9deb5ab](https://github.com/langwatch/langwatch/commit/9deb5ab54decc5169b0942b1e0ccd2e36b32f558))
### Bug Fixes
* **docs:** restore the cache-busted redirect and find it by source in docs-release ([710cdd8](https://github.com/langwatch/langwatch/commit/710cdd88194a45b8f006cfd43deb34e12b24c448))
* **docs:** unblock docs-release, find the cache-busted redirect by source ([#8407](https://github.com/langwatch/langwatch/issues/8407)) ([710cdd8](https://github.com/langwatch/langwatch/commit/710cdd88194a45b8f006cfd43deb34e12b24c448))
* **self-hosting:** autogen-off and Argo CD installs, gateway ingress, PDBs, activation codes in the license variable, SSO without restart ([#8399](https://github.com/langwatch/langwatch/issues/8399)) ([0a300c1](https://github.com/langwatch/langwatch/commit/0a300c1dab1cbd2f3c1ba909542a136751ec1e3c))
* **sso:** edit a connection's identity provider, trust discovery endpoint origins, name the remaining refusals ([#8409](https://github.com/langwatch/langwatch/issues/8409)) ([1ce6d47](https://github.com/langwatch/langwatch/commit/1ce6d473566a73b7a2253195eff6c2a3b1d917bc))
## [3.19.4](https://github.com/langwatch/langwatch/compare/langwatch@v3.19.3...langwatch@v3.19.4) (2026-10-01)
### Bug Fixes
* **pii:** keep known span kinds out of strict name detection ([#8384](https://github.com/langwatch/langwatch/issues/8384)) ([08c9bfa](https://github.com/langwatch/langwatch/commit/08c9bfacc23f145fac2bddc3dc4749389b59de88)), closes [#8383](https://github.com/langwatch/langwatch/issues/8383)
* **sso:** link Entra ID and SAML sign-ins on self-hosted, match the Entra issuer ([#8405](https://github.com/langwatch/langwatch/issues/8405)) ([18b8555](https://github.com/langwatch/langwatch/commit/18b85556bb0ab4fe56df0324ab767aaf28bbb945))
* **traces:** has:feedback, has:annotation and flat keyed filters; docs ([#8336](https://github.com/langwatch/langwatch/issues/8336)) ([2cd705c](https://github.com/langwatch/langwatch/commit/2cd705cfa984901f566146aa21236125acc5a311))
### Documentation
* **self-hosting:** clearer secrets and external database guidance for Helm and ArgoCD ([#8398](https://github.com/langwatch/langwatch/issues/8398)) ([e907f80](https://github.com/langwatch/langwatch/commit/e907f80860adce753d84dbb2d62aa4864dd8cb81))
## [3.19.3](https://github.com/langwatch/langwatch/compare/langwatch@v3.19.2...langwatch@v3.19.3) (2026-09-30)
### Bug Fixes
* **sso:** let the link evidence hook see the resolver's confirmation ([#8389](https://github.com/langwatch/langwatch/issues/8389)) ([2008a34](https://github.com/langwatch/langwatch/commit/2008a34f2414ebea03206b182d73e90ac53f5799))
## [3.19.2](https://github.com/langwatch/langwatch/compare/langwatch@v3.19.1...langwatch@v3.19.2) (2026-09-30)
### Bug Fixes
* **chart:** stop committing charts/langwatch/Chart.lock so releases cannot publish with a stale lock ([#8386](https://github.com/langwatch/langwatch/issues/8386)) ([36cb176](https://github.com/langwatch/langwatch/commit/36cb176db151a5d20d87345d2c5e3391969d4c0f))
* **chart:** sync Chart.lock to the 3.19.1 gateway and langyagent subcharts ([5c1687f](https://github.com/langwatch/langwatch/commit/5c1687f46e7e6b9071574b01f3560dd08052954a))
* **chart:** sync Chart.lock to the 3.19.1 subcharts ([#8382](https://github.com/langwatch/langwatch/issues/8382)) ([5c1687f](https://github.com/langwatch/langwatch/commit/5c1687f46e7e6b9071574b01f3560dd08052954a))
* **gateway:** prefix a model with slashes of its own on customer spans ([#8376](https://github.com/langwatch/langwatch/issues/8376)) ([d74ebca](https://github.com/langwatch/langwatch/commit/d74ebcaa342f58ed16e7ac7d0d0d2ff8cad24739))
* **gateway:** prefix a model with slashes of its own on customer spans, as nlpgo does ([d74ebca](https://github.com/langwatch/langwatch/commit/d74ebcaa342f58ed16e7ac7d0d0d2ff8cad24739))
* **sso:** link an unconfirmed password account when the connection verified its domain ([#8387](https://github.com/langwatch/langwatch/issues/8387)) ([cd7630e](https://github.com/langwatch/langwatch/commit/cd7630e0a734274cfd53ef933e4f35a15a85e2f2))
## [3.19.1](https://github.com/langwatch/langwatch/compare/langwatch@v3.19.0...langwatch@v3.19.1) (2026-09-30)
### Bug Fixes
* 3.19.0 self-host dogfood findings (model id on Studio spans, mirror markers, Langy turns in CLI analytics) ([#8370](https://github.com/langwatch/langwatch/issues/8370)) ([5d70883](https://github.com/langwatch/langwatch/commit/5d708830634f2b63b0743970ddefa2a71b45e577))
## [3.19.0](https://github.com/langwatch/langwatch/compare/langwatch@v3.18.1...langwatch@v3.19.0) (2026-09-30)
### Features
* **automations:** one automation flow: wizard composer, Slack connections, always-on webhooks and API parity ([c8da609](https://github.com/langwatch/langwatch/commit/c8da609f5b2c73963fe8089de3534d948ec20004))
* **automations:** run the Slack connection migration automatically ([#8365](https://github.com/langwatch/langwatch/issues/8365)) ([fcb0e17](https://github.com/langwatch/langwatch/commit/fcb0e171af7f7bfa0d6d745bc00204b577b23837))
* **sdk:** list the Slack connections a project can use, through GET /api/slack-connections, langwatch slack-connection list, Python list_slack_connections and Go SlackConnections ([c8da609](https://github.com/langwatch/langwatch/commit/c8da609f5b2c73963fe8089de3534d948ec20004))
### Bug Fixes
* 3.18.1 self-host dogfood findings (sign-up origin gate, default model, Langy card and worker reuse, checkup SMTP copy) ([#8360](https://github.com/langwatch/langwatch/issues/8360)) ([3ca36ef](https://github.com/langwatch/langwatch/commit/3ca36ef7372f929c98e88818ec252897918727c2))
* **gateway:** keep serving keys through slow config fetches, name health probe causes ([#8356](https://github.com/langwatch/langwatch/issues/8356)) ([02103b7](https://github.com/langwatch/langwatch/commit/02103b750c38b069160401f2336899279a82c9fd))
* **langy:** write the project credentials without asking, and retry a transient model failure ([#8325](https://github.com/langwatch/langwatch/issues/8325)) ([9eb281d](https://github.com/langwatch/langwatch/commit/9eb281d953227f8cfaebff4c44df441890ff15aa))
## [3.18.1](https://github.com/langwatch/langwatch/compare/langwatch@v3.18.0...langwatch@v3.18.1) (2026-09-29)
### Bug Fixes
* **home:** join requests card washed out by the hero glow in light mode ([#8318](https://github.com/langwatch/langwatch/issues/8318)) ([e910323](https://github.com/langwatch/langwatch/commit/e91032307fef7f8d84b438619f46368796c7fcc3))
* **pii:** keep model and tool names out of strict name detection ([#8332](https://github.com/langwatch/langwatch/issues/8332)) ([669c666](https://github.com/langwatch/langwatch/commit/669c666f5973a75c4ae77cd48f1d6d485aafd176))
* **selfhost:** issues found on a fresh 3.18.0 Helm install on EKS ([#8326](https://github.com/langwatch/langwatch/issues/8326)) ([e494045](https://github.com/langwatch/langwatch/commit/e494045ab02a63459a49592a203314b0f7736cee))
* **traces:** treat codex-app-server as a codex scope in the span filter and extractor ([#8337](https://github.com/langwatch/langwatch/issues/8337)) ([6f30bbc](https://github.com/langwatch/langwatch/commit/6f30bbcbbf5e8204c7938f6aca7b500e7443bae5))
### Documentation
* **agent-testing:** one Voice Agents page, platform first, code as a hand-off ([#8122](https://github.com/langwatch/langwatch/issues/8122)) ([50f8f08](https://github.com/langwatch/langwatch/commit/50f8f08fb3bb206d10f35d7cb9a7887f8315d78b))
## [3.18.0](https://github.com/langwatch/langwatch/compare/langwatch-3.17.0...langwatch@v3.18.0) (2026-09-27)
### Features
* **agent-plugin,cli:** run the installed CLI from a committed launcher instead of a bundled hook ([#8095](https://github.com/langwatch/langwatch/issues/8095)) ([2877be0](https://github.com/langwatch/langwatch/commit/2877be087bf9da0726b5c10d79c01a825080ed38))
* **agent-plugin,cli:** run the installed CLI from a committed launcher instead of a bundled hook ([#8095](https://github.com/langwatch/langwatch/issues/8095)) ([e9d9ea0](https://github.com/langwatch/langwatch/commit/e9d9ea025d4daa61418e49ff2b051558d76d817b))
* **agent-testing:** compare agents in one run ([#7654](https://github.com/langwatch/langwatch/issues/7654)) ([3e73916](https://github.com/langwatch/langwatch/commit/3e7391698f5e9b1cac2f8c5f0d0cacc9dec4d02a))
* **agent-testing:** suite fields and evaluators on scenario runs ([#7867](https://github.com/langwatch/langwatch/issues/7867)) ([0bcf01e](https://github.com/langwatch/langwatch/commit/0bcf01edb3d8cc36aa62cd48e6ee147a7b01b45b))
* **agent-testing:** v2 polish round 6 ([#7590](https://github.com/langwatch/langwatch/issues/7590)) ([1f9efad](https://github.com/langwatch/langwatch/commit/1f9efad30ab94e86d00f57ea478bf0685b437f23))
* **agents:** connected agents, a decorated function is a simulation target ([#7655](https://github.com/langwatch/langwatch/issues/7655)) ([56922c0](https://github.com/langwatch/langwatch/commit/56922c0ee429bd5a38717960c09ede0d1905c0c3))
* **agents:** the connected agent drawer test turn takes parameter overrides ([#7959](https://github.com/langwatch/langwatch/issues/7959)) ([fcf2748](https://github.com/langwatch/langwatch/commit/fcf274851a61582dbb3f533605dea53e7e66023f))
* **aigateway:** image generation and edit endpoints ([#7769](https://github.com/langwatch/langwatch/issues/7769)) ([723df42](https://github.com/langwatch/langwatch/commit/723df42a9ee2bec1adcca0f41eecaa763e3f0493))
* **analytics:** sandboxed custom chart widgets over LWQL ([#7870](https://github.com/langwatch/langwatch/issues/7870)) ([279b657](https://github.com/langwatch/langwatch/commit/279b6572ce15d9c0d6f791ed7e95afb469be2765))
* **analytics:** serve chart sandbox frame on its own route so widgets can import any module ([#8151](https://github.com/langwatch/langwatch/issues/8151)) ([7b5e10e](https://github.com/langwatch/langwatch/commit/7b5e10e7ae27b6fa93692ce9dc7b863cfd32c2a5))
* **annotations:** make the review inbox readable and its actions reachable ([#7774](https://github.com/langwatch/langwatch/issues/7774)) ([f3aad4e](https://github.com/langwatch/langwatch/commit/f3aad4edfbdb0e18752f10af5503499d62b477be))
* **api-keys:** personal ingest keys live and die with the CLI session that minted them ([#7960](https://github.com/langwatch/langwatch/issues/7960)) ([2e69cff](https://github.com/langwatch/langwatch/commit/2e69cff13143b6f0aa51c021af944db1ba39bd93))
* **ci:** refresh the usage comment once more when a pull request merges ([#7721](https://github.com/langwatch/langwatch/issues/7721)) ([1ab908d](https://github.com/langwatch/langwatch/commit/1ab908d34452972ca0e1da31febd14582e8e3705))
* **ci:** sticky PR comment reporting coding agent token usage ([#7676](https://github.com/langwatch/langwatch/issues/7676)) ([58b06dd](https://github.com/langwatch/langwatch/commit/58b06dd2642c420976e8d1f0d1bf9bb8191af948))
* **coding-agent:** org-key pull-request usage on /api/v1 without a project id ([#7680](https://github.com/langwatch/langwatch/issues/7680)) ([bea4a07](https://github.com/langwatch/langwatch/commit/bea4a0770670b99ff0754f0e0276fbf847c081b8))
* **coding-agent:** serve org service keys on v1 pull-request usage scoped by their bindings ([#7690](https://github.com/langwatch/langwatch/issues/7690)) ([d936eb0](https://github.com/langwatch/langwatch/commit/d936eb06737fae57dc3a6ada9455de60d5e960c5))
* **coding-agent:** split pull request cost by stamped working context ([#7757](https://github.com/langwatch/langwatch/issues/7757)) ([b7f4157](https://github.com/langwatch/langwatch/commit/b7f41579cf517f12781cf0ba842252b1b1cb013f))
* **coding-agent:** the sessions table lists four pull requests, then an overflow pill ([#7445](https://github.com/langwatch/langwatch/issues/7445)) ([66cd37e](https://github.com/langwatch/langwatch/commit/66cd37ecdc945e8d66fac7adb001a337f946ecf0))
* **datasets:** search a dataset's rows from the editor ([#7731](https://github.com/langwatch/langwatch/issues/7731)) ([#7734](https://github.com/langwatch/langwatch/issues/7734)) ([bddc7b4](https://github.com/langwatch/langwatch/commit/bddc7b44d871bff5a4a4ddfa0782b31e57ecfcc7))
* **datasets:** upload images and files into cells and deliver them to prompts and agents ([#7964](https://github.com/langwatch/langwatch/issues/7964)) ([78e8b62](https://github.com/langwatch/langwatch/commit/78e8b624bfe59801bb76a278435dafa7f435e8b5))
* **evals:** ask to enable Instant Evals when the flag is off instead of the model popover ([#8295](https://github.com/langwatch/langwatch/issues/8295)) ([9492d0b](https://github.com/langwatch/langwatch/commit/9492d0b1571e7a2489c65d00096fa1735eed3d53))
* **experiments-v3:** a connected agent is a column in the workbench ([#7763](https://github.com/langwatch/langwatch/issues/7763)) ([1cce528](https://github.com/langwatch/langwatch/commit/1cce528510746ca35437a82aedbed73fb48e27d5))
* **experiments-v3:** the active dataset offers Switch Dataset ([#7537](https://github.com/langwatch/langwatch/issues/7537)) ([8ca6114](https://github.com/langwatch/langwatch/commit/8ca6114719ec388ad97aecc3e64e2b3f660c28af))
* **governance:** discover and sync agents from connected providers ([#8043](https://github.com/langwatch/langwatch/issues/8043)) ([ccdb119](https://github.com/langwatch/langwatch/commit/ccdb1199259246c17149fdf23f30ddd20f7189e2))
* **governance:** rebuild the Inventory catalog on the tool registry, add summary strips, settle button weight ([#8033](https://github.com/langwatch/langwatch/issues/8033)) ([be0eade](https://github.com/langwatch/langwatch/commit/be0eade2abfb391321439fd1aaef7e297a1667c1))
* **governance:** replace the cost-rollup comparator cron with an event-driven per-tenant costRollupWatch process manager ([#8111](https://github.com/langwatch/langwatch/issues/8111)) ([274c186](https://github.com/langwatch/langwatch/commit/274c1860fbde328cfeb3c64b81486aac7fddbbdb))
* **governance:** simpler source composer for Anthropic and OpenAI admin pulls ([#8082](https://github.com/langwatch/langwatch/issues/8082)) ([d4ea7c0](https://github.com/langwatch/langwatch/commit/d4ea7c08bd2c95e76da59a4ca925cfd6aea98f1d))
* **identity:** add the authentication core and front door ([#7631](https://github.com/langwatch/langwatch/issues/7631)) ([c599947](https://github.com/langwatch/langwatch/commit/c5999477f1fc5b41b07d3680177fdcdd16864da1))
* **identity:** let a deployment issue its own passwords beside its provider ([#8148](https://github.com/langwatch/langwatch/issues/8148)) ([118929d](https://github.com/langwatch/langwatch/commit/118929d09cf6dd2eb69197e0197ed50bfd3d0ae1))
* **identity:** one-click social sign-in — the Auth0 connection bridge, native-provider groundwork, and AUTH_PROVIDER ([#8143](https://github.com/langwatch/langwatch/issues/8143)) ([c87c46d](https://github.com/langwatch/langwatch/commit/c87c46d17f256f9205abafeba3815df0e2e0ba3a))
* **instant-evals:** meter judgements on the gateway spend spine, a Stripe meter and a 1 USD free budget ([#8220](https://github.com/langwatch/langwatch/issues/8220)) ([e5a2252](https://github.com/langwatch/langwatch/commit/e5a22526eca51e242d9018e3ac24928fe9250131))
* **instant-evals:** the CLI that waits for the answer, the target shorthand and estimate before spend ([#8216](https://github.com/langwatch/langwatch/issues/8216)) ([c01b277](https://github.com/langwatch/langwatch/commit/c01b277a7631308a2d45dfa5ac97dd3a46ef58ff))
* **instant-evals:** the Instant Eval run, a judgment job over an LWQL statement with progress and persisted judgments ([#8208](https://github.com/langwatch/langwatch/issues/8208)) ([e337419](https://github.com/langwatch/langwatch/commit/e33741926479c94f6d0b6d2b80d76e886dc1e109))
* **langy:** a health endpoint that sends Langy a real greeting and says what broke ([#7944](https://github.com/langwatch/langwatch/issues/7944)) ([#7956](https://github.com/langwatch/langwatch/issues/7956)) ([84bbfcb](https://github.com/langwatch/langwatch/commit/84bbfcbb8d78398d69993a5e7965c787606110c6))
* **langy:** langy works on the developer's code through a shared local folder or GitHub ([#7879](https://github.com/langwatch/langwatch/issues/7879)) ([ad87487](https://github.com/langwatch/langwatch/commit/ad874879284ee71416fa8a538a58f76e39a03bcd))
* **lwql:** app-side extraction functions as identity UDFs with a hydration stage ([#8196](https://github.com/langwatch/langwatch/issues/8196)) ([ad1bc9e](https://github.com/langwatch/langwatch/commit/ad1bc9eddf8f1c30e79b213cbd7fdbcb4563f990))
* **lwql:** derive every tenant-scoped Postgres model into the catalog by default ([#8209](https://github.com/langwatch/langwatch/issues/8209)) ([ea93080](https://github.com/langwatch/langwatch/commit/ea93080f4db38c70406b7737344b7132f3b931e9))
* **lwql:** eval functions judged by the classifier interface (Instant Evals) ([#8201](https://github.com/langwatch/langwatch/issues/8201)) ([1eb6dfe](https://github.com/langwatch/langwatch/commit/1eb6dfe76206df168df94c443319760dc4bc4591))
* **lwql:** ship the backend working by default on helm install/upgrade (self-provisioning) ([#7331](https://github.com/langwatch/langwatch/issues/7331)) ([b9aa200](https://github.com/langwatch/langwatch/commit/b9aa200aaa8bc4c458c510390522b830f54ddc31))
* **lwql:** the app always owns the LangWatchQL access model — remove LWQL_SELF_PROVISION, delete the chart's rendered LWQL path, supersede ADR-101 ([#8258](https://github.com/langwatch/langwatch/issues/8258)) ([#8261](https://github.com/langwatch/langwatch/issues/8261)) ([a0e8401](https://github.com/langwatch/langwatch/commit/a0e8401f6aa2983178febc024f59af84cee4958d))
* **onboarding:** a Langy-guided onboarding after sign-up, behind a flag for the A/B test ([#7920](https://github.com/langwatch/langwatch/issues/7920)) ([5f5b591](https://github.com/langwatch/langwatch/commit/5f5b591c2dd55beb5991064b7ce55dc6509b0255))
* **ops:** roll flags out to new organizations, and stop cutting emoji in half in avatars ([#7699](https://github.com/langwatch/langwatch/issues/7699)) ([eb25726](https://github.com/langwatch/langwatch/commit/eb25726f449dfa04207e6e0fd1a4abe860c8626b))
* **query:** one door for raw LangWatchQL — REST at /api/v1/query, old routes removed ([#7611](https://github.com/langwatch/langwatch/issues/7611)) ([f37e9cc](https://github.com/langwatch/langwatch/commit/f37e9ccc7240d8fa0229be33b47e7a042981112e))
* **query:** one reference door for LWQL and trace filters, filter and facets on the traces API, langwatch query CLI, MCP run_query ([#8198](https://github.com/langwatch/langwatch/issues/8198)) ([0b5f4d0](https://github.com/langwatch/langwatch/commit/0b5f4d0add6cdc6c6483264f1ff4847f44410eb5))
* **query:** self-describing LangWatchQL door + whoami --json ([#8085](https://github.com/langwatch/langwatch/issues/8085)) ([#8113](https://github.com/langwatch/langwatch/issues/8113)) ([5b17bde](https://github.com/langwatch/langwatch/commit/5b17bde8e2497714d489504d13d8306393be429c))
* **queues:** report the deepest single group's staging depth ([#4682](https://github.com/langwatch/langwatch/issues/4682)) ([#7310](https://github.com/langwatch/langwatch/issues/7310)) ([c82cae8](https://github.com/langwatch/langwatch/commit/c82cae8fff150940514b1bf058de5b2259d9fa90))
* **scenarios:** the status page can prove a scenario still runs and gets judged ([#7835](https://github.com/langwatch/langwatch/issues/7835)) ([#7840](https://github.com/langwatch/langwatch/issues/7840)) ([60d6d28](https://github.com/langwatch/langwatch/commit/60d6d2898d9b32d9dfbd3212b576c81f0f29d8ec))
* **self-hosting:** connected self-hosted, hosted services metered against the license ([#8232](https://github.com/langwatch/langwatch/issues/8232)) ([8cfb4c3](https://github.com/langwatch/langwatch/commit/8cfb4c379c2f7b95486d9b0e02017f81f1ad14d9))
* **sso:** an organization brings its own identity provider (2/2) ([#7633](https://github.com/langwatch/langwatch/issues/7633)) ([d41f19a](https://github.com/langwatch/langwatch/commit/d41f19a46efa61e7f792dfff6e7fc6e94d873ffc))
* **traces-v2:** clicking a facet row opens its drilldown ([#7910](https://github.com/langwatch/langwatch/issues/7910)) ([83c33c9](https://github.com/langwatch/langwatch/commit/83c33c919726ffc935d5fb89dbcb7957d6d44553))
* **traces-v2:** enter to search, a routed search bar, instant evals in the filter bar, Langy in sync with the explorer ([#8234](https://github.com/langwatch/langwatch/issues/8234)) ([a4db9f8](https://github.com/langwatch/langwatch/commit/a4db9f83d4483804a113640cda81072d0fbc11e1))
* **traces-v2:** make thumbs_up_down events filterable without configuration ([#7864](https://github.com/langwatch/langwatch/issues/7864)) ([610cfca](https://github.com/langwatch/langwatch/commit/610cfca55f26f529d9d790eca561ba0f7f2f56c3))
* voice agents v1 — test an ElevenLabs agent from the app ([#7962](https://github.com/langwatch/langwatch/issues/7962)) ([70a1ac5](https://github.com/langwatch/langwatch/commit/70a1ac50e594403dae5e800259570e9e353153b3))
* **voice:** agent-speaks-first option and callee transcripts on phone calls ([#8121](https://github.com/langwatch/langwatch/issues/8121)) ([906067e](https://github.com/langwatch/langwatch/commit/906067e1e87e49355df89f83558311cb4e729f02))
* **voice:** dial phone targets through Twilio with per-project credentials ([#8014](https://github.com/langwatch/langwatch/issues/8014) slice 2) ([#8054](https://github.com/langwatch/langwatch/issues/8054)) ([9cda91f](https://github.com/langwatch/langwatch/commit/9cda91f1b773c1326299ff56e405239f0b5d3d4f))
* **voice:** drawer calls write traces only, scenario calls keep writing runs ([#8040](https://github.com/langwatch/langwatch/issues/8040)) ([c0996a9](https://github.com/langwatch/langwatch/commit/c0996a92a7e578984fe33bae5f27953cfa3d6844))
* **voice:** let every worker serve voice calls over its own tunnel ([#8071](https://github.com/langwatch/langwatch/issues/8071)) ([5db424b](https://github.com/langwatch/langwatch/commit/5db424be79f2827654ebd7eda869cd0b473105ed))
* **voice:** record one trace per exchange for browser voice calls ([#8037](https://github.com/langwatch/langwatch/issues/8037)) ([71122ab](https://github.com/langwatch/langwatch/commit/71122ab39d9bdf08d38aa8219d8e8f4d6d479d88))
* **voice:** show the phone option as disabled instead of hiding it ([#8069](https://github.com/langwatch/langwatch/issues/8069)) ([1c24018](https://github.com/langwatch/langwatch/commit/1c2401812af08831ca434c7907f5d1eed475c53e))
* **voice:** worker-only mode and Twilio media listener ([#8014](https://github.com/langwatch/langwatch/issues/8014) slice 3) ([#8053](https://github.com/langwatch/langwatch/issues/8053)) ([3f1a9ea](https://github.com/langwatch/langwatch/commit/3f1a9eabd717b0f7b7258897156d039a466d96e9))
* webinar learnings, connected agent scope, scenario names, search hints, deep links, judge and Langy fixes ([#8236](https://github.com/langwatch/langwatch/issues/8236)) ([2054720](https://github.com/langwatch/langwatch/commit/2054720f391a2fcec60b86870a98d87345ccf6ee))
### Bug Fixes
* **agent-cache:** a personal workspace run gets a key, and a project's runs share one ([#7639](https://github.com/langwatch/langwatch/issues/7639)) ([7b39491](https://github.com/langwatch/langwatch/commit/7b3949160f74bb7ba4ddd5933b1fc20a971ba70a))
* **agent-testing:** the Results tab reads what the window holds ([#7770](https://github.com/langwatch/langwatch/issues/7770)) ([8232d02](https://github.com/langwatch/langwatch/commit/8232d02378d87d5b953cf6f2a30aa74523b261b8))
* **agents:** a finished connected-agent run reaches its verdict, and the transcript stays whole ([#7696](https://github.com/langwatch/langwatch/issues/7696)) ([4f7b665](https://github.com/langwatch/langwatch/commit/4f7b665623e1e453e8f505c259f2351bd074ad72))
* **agents:** a key waits for its grants, and a listing shows who holds each agent ([#7907](https://github.com/langwatch/langwatch/issues/7907)) ([654e82a](https://github.com/langwatch/langwatch/commit/654e82ae9f53c98c0cc710dc9c0c520a87e2c6cb))
* **aigateway:** warn once per credential on the dropped Azure api-version, and say so in settings ([#7900](https://github.com/langwatch/langwatch/issues/7900)) ([48ca9cc](https://github.com/langwatch/langwatch/commit/48ca9cce4b89ae2779da5d80846b6aeef0ed3eae))
* **analytics:** name the no-verdict evaluation bucket, and stop rendering "undefined" ([#5080](https://github.com/langwatch/langwatch/issues/5080)) ([#7572](https://github.com/langwatch/langwatch/issues/7572)) ([a1129eb](https://github.com/langwatch/langwatch/commit/a1129eb420cb9d26025c3e271ff07eed32d95620))
* **analytics:** nonce the chart frame's inline scripts so an upstream CSP nonce cannot blank widgets ([#8175](https://github.com/langwatch/langwatch/issues/8175)) ([13d40d0](https://github.com/langwatch/langwatch/commit/13d40d0d56161d87dee1442931ad658472875a01))
* **analytics:** preserve array children in the chart frame's JSX runtime shim ([#8158](https://github.com/langwatch/langwatch/issues/8158)) ([2dea0d2](https://github.com/langwatch/langwatch/commit/2dea0d284f7cf83d89497b21c08976222d2d5666))
* **analytics:** reject aggregation not allowed for metric in getTimeseries ([#8013](https://github.com/langwatch/langwatch/issues/8013)) ([2569886](https://github.com/langwatch/langwatch/commit/2569886d303641081ec48c60cdebb8de4fbe73a9))
* **annotations:** keep projectId visible to the tenancy guard on queue-walk reads ([#8065](https://github.com/langwatch/langwatch/issues/8065)) ([d6bf0cb](https://github.com/langwatch/langwatch/commit/d6bf0cb278442e94f65bc29a608880764fe422de))
* **annotations:** walk the annotation queue one item at a time ([#8059](https://github.com/langwatch/langwatch/issues/8059)) ([ee1107e](https://github.com/langwatch/langwatch/commit/ee1107e0b7870ad6c5870de512ca4484d6c14902))
* **api-keys:** every door to a personal key stops revoking the other machines', and a signed-out device says so ([#7918](https://github.com/langwatch/langwatch/issues/7918)) ([a6da084](https://github.com/langwatch/langwatch/commit/a6da084777832c759cfb1b7aa4f3b01d2f998ec6))
* **api-keys:** per-device personal ingest keys and hook self-heal on a revoked key ([#7859](https://github.com/langwatch/langwatch/issues/7859)) ([d6d1dda](https://github.com/langwatch/langwatch/commit/d6d1dda3ca126d39da8a64180e2e66bb6d068e30))
* **authz:** index the column an API-key permission check filters on ([#7703](https://github.com/langwatch/langwatch/issues/7703)) ([45f4b8a](https://github.com/langwatch/langwatch/commit/45f4b8aa1a61b03b8c17d7d16a30738ea943f25e))
* **automations:** keep long filter values clamped inside their chip ([#7760](https://github.com/langwatch/langwatch/issues/7760)) ([3cbf2ae](https://github.com/langwatch/langwatch/commit/3cbf2ae4d100d9eab759bf50043ace2b1870ba07))
* **automations:** resolve bare OTEL attributes in metadata.value trigger filters ([#8167](https://github.com/langwatch/langwatch/issues/8167)) ([0235690](https://github.com/langwatch/langwatch/commit/0235690a4c036be45a6979ae77556eb7ba386434))
* **billing:** stop warning every five minutes about ordinary pricing ([#6495](https://github.com/langwatch/langwatch/issues/6495)) ([#7105](https://github.com/langwatch/langwatch/issues/7105)) ([5ff5f8b](https://github.com/langwatch/langwatch/commit/5ff5f8b5ae35dee15cc2dc94fc32a8313bc1e6ac))
* **ci:** a manual usage refresh names the pull request's own commit ([#7711](https://github.com/langwatch/langwatch/issues/7711)) ([239438f](https://github.com/langwatch/langwatch/commit/239438f5c05714d9bd9942a8fd84b20fa3c18438))
* **ci:** exempt process-substrate-alerting.feature as partially tagged ([#8026](https://github.com/langwatch/langwatch/issues/8026)) ([33cbf38](https://github.com/langwatch/langwatch/commit/33cbf388cd267ec3db8f566632128dd748c23a08)), closes [#8024](https://github.com/langwatch/langwatch/issues/8024)
* **ci:** stop check-feature-parity binding prose, and say when a run failed ([#6672](https://github.com/langwatch/langwatch/issues/6672)) ([#6862](https://github.com/langwatch/langwatch/issues/6862)) ([7ca2b6f](https://github.com/langwatch/langwatch/commit/7ca2b6f94dcb3c3ca813755d59ff1aac53143108))
* **ci:** the parity lists 7960 and 8041 both wrote, and the mint audit row the test read too early ([#8093](https://github.com/langwatch/langwatch/issues/8093)) ([7f7c22e](https://github.com/langwatch/langwatch/commit/7f7c22e9c6421e2490a567aa7ab94ef38f936dc9))
* **ci:** the two files 7960 and 8041 both listed, and the mint audit row the test read too early ([7f7c22e](https://github.com/langwatch/langwatch/commit/7f7c22e9c6421e2490a567aa7ab94ef38f936dc9))
* **cli:** --project everywhere, and six refusals that did not say what they meant ([#8259](https://github.com/langwatch/langwatch/issues/8259)) ([c8e06ed](https://github.com/langwatch/langwatch/commit/c8e06ede8c7fbdf886f615e81ba66b181745d2aa))
* **cli-auth:** the permission ceiling mirrors what an org MEMBER binding really grants ([#7819](https://github.com/langwatch/langwatch/issues/7819)) ([14a4164](https://github.com/langwatch/langwatch/commit/14a41645f2dc962a737a525d79d86264b07163fb))
* **clickhouse:** a user is a tenant in its own right, so identity events can land ([#7630](https://github.com/langwatch/langwatch/issues/7630)) ([5179fbf](https://github.com/langwatch/langwatch/commit/5179fbf48146ae8d5bf5e2f94871bed3040daf22))
* **clickhouse:** renumber the coding-agent usage migration to 00099, 00097 was taken ([#8235](https://github.com/langwatch/langwatch/issues/8235)) ([3a68fdb](https://github.com/langwatch/langwatch/commit/3a68fdba0bc7c20fd3c13a0ff8d94953944de431))
* **clickhouse:** rollup columns outside the sorting key state how they merge ([#7720](https://github.com/langwatch/langwatch/issues/7720)) ([3bb6930](https://github.com/langwatch/langwatch/commit/3bb69306dd83a4b71079c765988df06158dfb104))
* **clickhouse:** the rollup dimension migration takes the next free number ([#7816](https://github.com/langwatch/langwatch/issues/7816)) ([09aed72](https://github.com/langwatch/langwatch/commit/09aed726593fa2a1ed9c32cc87232a706d7a2615))
* **cli:** say when a local instance takes over the machine's global wiring ([#8165](https://github.com/langwatch/langwatch/issues/8165)) ([afb3c61](https://github.com/langwatch/langwatch/commit/afb3c61b33d2c6e6f6cf04a1c1cdb77e6c6158a1))
* **cli:** session context hooks report for a tool pinned with instrument --key ([#8102](https://github.com/langwatch/langwatch/issues/8102)) ([2e7ab41](https://github.com/langwatch/langwatch/commit/2e7ab4118395a3a3eeb82c4123f7982f10ccedbd))
* **cli:** suggest restarting active code launchers after telemetry changes ([#7946](https://github.com/langwatch/langwatch/issues/7946)) ([0b6e7af](https://github.com/langwatch/langwatch/commit/0b6e7afefaa916e0eba460e14c2f02f38595cdcc))
* **coding-agent:** batch the api-key ceiling so the v1 usage rollup survives large organizations ([#7697](https://github.com/langwatch/langwatch/issues/7697)) ([c9ebe53](https://github.com/langwatch/langwatch/commit/c9ebe531ffaae296476ab33ddb22fe1011448689))
* **coding-agent:** charge a session's usage to the branch declared under it, not to its whole lifetime ([#8169](https://github.com/langwatch/langwatch/issues/8169)) ([c26c5d7](https://github.com/langwatch/langwatch/commit/c26c5d77c32b0e2d38bb4c9fc3ab4860a7522ca1))
* **dashboard:** plan-limit banners stack above page content that bleeds over them ([#7957](https://github.com/langwatch/langwatch/issues/7957)) ([d924bb2](https://github.com/langwatch/langwatch/commit/d924bb2b5580b97f20d18fd797b5826e748070a4))
* **data-privacy:** stop redaction destroying opaque machine identifiers ([#8092](https://github.com/langwatch/langwatch/issues/8092)) ([555c64f](https://github.com/langwatch/langwatch/commit/555c64ff715facca0f3d4824ab9ce043967b5fb3))
* **docs:** align self-hosting version references with shipped chart 3.17.0 ([#7636](https://github.com/langwatch/langwatch/issues/7636)) ([e3912f5](https://github.com/langwatch/langwatch/commit/e3912f534e365949d6e2c057054b59250208591b))
* **evaluations:** stop evaluator spans becoming orphan traces when the target trace has no parent link ([#8192](https://github.com/langwatch/langwatch/issues/8192)) ([a5d64b6](https://github.com/langwatch/langwatch/commit/a5d64b6ae8a2a836d27e7210787c506a14029f5f))
* **evaluators:** forward generation params on every path, Claude temperature/top_p rule in langevals, lift the ragas 16384 cap, skipped rows show as skipped ([#8154](https://github.com/langwatch/langwatch/issues/8154)) ([3d3dc10](https://github.com/langwatch/langwatch/commit/3d3dc1042097e8433e217ad88c833db7f46226be))
* **event-sourcing:** a re-fold never replaces state it cannot account for ([#7725](https://github.com/langwatch/langwatch/issues/7725)) ([32ea889](https://github.com/langwatch/langwatch/commit/32ea88940d7e5abdc5ba8f6e5155cf5a480e8c8a))
* **event-sourcing:** run the causality loop guard on the deferred-origin path ([#8174](https://github.com/langwatch/langwatch/issues/8174)) ([b1bba0f](https://github.com/langwatch/langwatch/commit/b1bba0ff9529c6e407da395aa213e2d5de86e817)), closes [#8162](https://github.com/langwatch/langwatch/issues/8162)
* **experiments:** persist browser-run results to the server ([#7629](https://github.com/langwatch/langwatch/issues/7629)) ([565a43a](https://github.com/langwatch/langwatch/commit/565a43a5634a40fd935e8d78eb69db0180b500b4))
* **export:** route every CSV writer through the formula guard ([#7793](https://github.com/langwatch/langwatch/issues/7793)) ([9f95b66](https://github.com/langwatch/langwatch/commit/9f95b667d18ae12a737ea43857f844cb2951d525))
* **feature-flags:** resolve org memberships in one read instead of one per org ([#7704](https://github.com/langwatch/langwatch/issues/7704)) ([a2e9a51](https://github.com/langwatch/langwatch/commit/a2e9a515a8f4fd6eee3aba35d8015dbea70c9d2f))
* **gateway:** a failure that never reached a provider stops calling itself a timeout ([#7602](https://github.com/langwatch/langwatch/issues/7602)) ([0d376c9](https://github.com/langwatch/langwatch/commit/0d376c930db8dc488e989faff413a916edf08dca))
* **gateway:** publish image token quantities on the spend read surfaces ([#8104](https://github.com/langwatch/langwatch/issues/8104)) ([926364b](https://github.com/langwatch/langwatch/commit/926364bcd60001440881b888236f51c80ff8abb8))
* **gateway:** re-read budget spend when its period ends ([#7917](https://github.com/langwatch/langwatch/issues/7917)) ([460f82c](https://github.com/langwatch/langwatch/commit/460f82cb995dab41251012d4feb284c68b56a694))
* **gateway:** self-map Azure deployments on the dispatch path ([#7778](https://github.com/langwatch/langwatch/issues/7778)) ([6a6a5c3](https://github.com/langwatch/langwatch/commit/6a6a5c3bbcbf75a5f704e34c21b2934cf94bc014))
* **governance:** a pull failure without a wait no longer parks the source ([#8078](https://github.com/langwatch/langwatch/issues/8078)) ([c0b6a01](https://github.com/langwatch/langwatch/commit/c0b6a01916723b99324732881458c2cfef2cc580))
* **governance:** address the 16 unactioned review findings from ADR-128 wave 1 ([#8018](https://github.com/langwatch/langwatch/issues/8018)) ([7cdb5fe](https://github.com/langwatch/langwatch/commit/7cdb5fe09effd70df656ce54f439b6c915f9658e))
* **governance:** bound and pin the five Costs spend reads ([#8073](https://github.com/langwatch/langwatch/issues/8073)) ([e2addc1](https://github.com/langwatch/langwatch/commit/e2addc1cb7f6a9134a8deb58ed576c7690354138))
* **governance:** coalesce absent process-state keys to null instead of writing undefined ([c0b6a01](https://github.com/langwatch/langwatch/commit/c0b6a01916723b99324732881458c2cfef2cc580))
* **governance:** drop the admin feed email, two real tests, six wording fixes ([#8067](https://github.com/langwatch/langwatch/issues/8067)) ([b36da47](https://github.com/langwatch/langwatch/commit/b36da4759961c93ca68e54e4eacea99644969736))
* **governance:** emit per-turn traces for Copilot Studio Dataverse Conversation view ([#7625](https://github.com/langwatch/langwatch/issues/7625)) ([c884ac3](https://github.com/langwatch/langwatch/commit/c884ac3a35e625d805d0257bdc9591e38276d0a7))
* **governance:** keep the pages a refused OpenAI cost pull already read ([#8088](https://github.com/langwatch/langwatch/issues/8088)) ([2a0b849](https://github.com/langwatch/langwatch/commit/2a0b8494be18819b95815a209c0bb04d148fed55))
* **governance:** metered lane reads the gateway ledger, gateway half of the rollup dropped ([#8080](https://github.com/langwatch/langwatch/issues/8080)) ([3cdd39a](https://github.com/langwatch/langwatch/commit/3cdd39a3b793142a8d0e2dbc0676d7366785192a))
* **governance:** prevent duplicate Azure bills and address review regressions ([#8010](https://github.com/langwatch/langwatch/issues/8010)) ([12a5d19](https://github.com/langwatch/langwatch/commit/12a5d19ddba99f8f21e4d315fde2d22c28089142))
* **governance:** show provider costs and clarify import health ([#8023](https://github.com/langwatch/langwatch/issues/8023)) ([7709ae0](https://github.com/langwatch/langwatch/commit/7709ae05165f3743522917f6671761db5d629ab5))
* **governance:** suppress ingest secret for non-push sources ([#7626](https://github.com/langwatch/langwatch/issues/7626)) ([0835e02](https://github.com/langwatch/langwatch/commit/0835e02d39e7a1e3345c1ce8a375b4ab2902d6b1))
* **governance:** tolerate pre-filedCell ledger state on re-observation ([#8074](https://github.com/langwatch/langwatch/issues/8074)) ([3337ae2](https://github.com/langwatch/langwatch/commit/3337ae22e38fb6ed22859758a9b60b9cacbaac5c))
* **identity:** a dismissed secure-account offer stays dismissed on the next page ([#8199](https://github.com/langwatch/langwatch/issues/8199)) ([197395a](https://github.com/langwatch/langwatch/commit/197395a75f7b6412fbaba9d0f2fcd1a3c574ecaf))
* **identity:** a fleet that can boot, single sign-on that routes through the broker, and two stuck sign-in cohorts ([#8244](https://github.com/langwatch/langwatch/issues/8244)) ([73d814c](https://github.com/langwatch/langwatch/commit/73d814c1b2655ce2e262926869c7fadb287efbbb))
* **identity:** a native social button never admits somebody to an SSO-enforced organization ([#8149](https://github.com/langwatch/langwatch/issues/8149)) ([51577b8](https://github.com/langwatch/langwatch/commit/51577b8e196666369a3004124f08f9fa43027f26))
* **identity:** accept better-auth 1.7's restated providerId on OAuth sign-in ([#7642](https://github.com/langwatch/langwatch/issues/7642)) ([8265c08](https://github.com/langwatch/langwatch/commit/8265c086e318bd3a579704cb3d4b11e8ad0a66b0))
* **identity:** first-day follow-ups on the new sign-in, and a way for an organization to connect its own identity provider ([#8251](https://github.com/langwatch/langwatch/issues/8251)) ([598baa9](https://github.com/langwatch/langwatch/commit/598baa98560212a6c8e49254d4af9375acc297dc))
* **identity:** separate serialization retries with a random wait ([#8213](https://github.com/langwatch/langwatch/issues/8213)) ([0d58eeb](https://github.com/langwatch/langwatch/commit/0d58eebee694bc01b912e85de5d966799184c5c1)), closes [#8200](https://github.com/langwatch/langwatch/issues/8200)
* **ingestion:** codex helper threads no longer surface as sessions ([#8103](https://github.com/langwatch/langwatch/issues/8103)) ([f9c0bee](https://github.com/langwatch/langwatch/commit/f9c0bee963e58fcc1a75ffd572cbd747cc6d6306))
* **instant-evals:** a deployment with no query identity is not a missing run ([#8257](https://github.com/langwatch/langwatch/issues/8257)) ([fb28d31](https://github.com/langwatch/langwatch/commit/fb28d31c97ba94b3ac408708dc337dbb054cf1c3))
* **instant-evals:** end-to-end dogfood on main, five fixes in how numbers and words reach the caller ([#8233](https://github.com/langwatch/langwatch/issues/8233)) ([c5c0030](https://github.com/langwatch/langwatch/commit/c5c00301250d6c8354b126732c56e80e3dda9514))
* **instant-evals:** review sweep over the ten Instant Evals PRs ([#8230](https://github.com/langwatch/langwatch/issues/8230)) ([1126498](https://github.com/langwatch/langwatch/commit/11264989ee5efa081e282bc0fd12f0917d3f2c92))
* **langy:** health probe counts a question card as a healthy reply ([#8316](https://github.com/langwatch/langwatch/issues/8316)) ([88566e6](https://github.com/langwatch/langwatch/commit/88566e6991a9326cd2b61b3ac4ac722a2f2eb2fc))
* **langy:** refetch the dashboard grid when a Langy turn settles ([#8206](https://github.com/langwatch/langwatch/issues/8206)) ([5bc0f9f](https://github.com/langwatch/langwatch/commit/5bc0f9fbd7f1daf979cffd79e5c687138a386657))
* **langy:** the panel stops mounting on the CLI device approval screen ([#7541](https://github.com/langwatch/langwatch/issues/7541)) ([24b8bb7](https://github.com/langwatch/langwatch/commit/24b8bb7c54a3e04a309112963b7e71faec4dbc3c))
* **lwql:** name the column that does not exist ([#7447](https://github.com/langwatch/langwatch/issues/7447)) ([#7635](https://github.com/langwatch/langwatch/issues/7635)) ([1e0d7d1](https://github.com/langwatch/langwatch/commit/1e0d7d1fe982065b8a17bd0c2c876094f82e52ba))
* **lwql:** refuse column-set expressions in every position ([#8176](https://github.com/langwatch/langwatch/issues/8176)) ([6f80baa](https://github.com/langwatch/langwatch/commit/6f80baa0cac1a254f25b81f164e9eb73710897b7))
* **mcp:** stop prompt tools dropping fields in both directions ([#7712](https://github.com/langwatch/langwatch/issues/7712)) ([a97c378](https://github.com/langwatch/langwatch/commit/a97c378d8ee9c3613c2235738e0ea4085b45684e))
* **metrics:** stop the rollup bucket read scanning retention with every column ([#7691](https://github.com/langwatch/langwatch/issues/7691)) ([34f6826](https://github.com/langwatch/langwatch/commit/34f68267a419e80002f57c7a2dea412407bc15a0))
* **migrations:** a pass visits only the tenants with a migration left to finish ([#8247](https://github.com/langwatch/langwatch/issues/8247)) ([9f320b5](https://github.com/langwatch/langwatch/commit/9f320b52e701d9b4d582d9ca6f0ceef8bc30dcde))
* **migrations:** a preflight that cannot drain its own work starts rather than refusing ([#8249](https://github.com/langwatch/langwatch/issues/8249)) ([d7f3980](https://github.com/langwatch/langwatch/commit/d7f39800b5ecddd77d4bf3871fac9218b41d6591))
* **model-providers:** a latest alias resolves at the LiteLLM boundary ([#7651](https://github.com/langwatch/langwatch/issues/7651)) ([acb7a96](https://github.com/langwatch/langwatch/commit/acb7a96e7c19724873def92baa58ada54771401c))
* **model-providers:** strip the whitespace around a stored credential ([#8180](https://github.com/langwatch/langwatch/issues/8180)) ([f300e66](https://github.com/langwatch/langwatch/commit/f300e6662b3f23f200421a7dea6e4b3dfd8f4fa2))
* **navigation:** a workspace that has not answered is not one that answered with nothing ([#8155](https://github.com/langwatch/langwatch/issues/8155)) ([5d6fa73](https://github.com/langwatch/langwatch/commit/5d6fa73357c151e67814d4448aa2db502237abbe))
* **navigation:** scope the personal workspace lookup to the selected organization ([#7985](https://github.com/langwatch/langwatch/issues/7985)) ([07c3574](https://github.com/langwatch/langwatch/commit/07c357443108395fc189c09a8c5b9f862188444f))
* **nlpgo:** bound undici dispatcher timeouts so 630s deadline works ([#7705](https://github.com/langwatch/langwatch/issues/7705)) ([7664614](https://github.com/langwatch/langwatch/commit/7664614dfaca2b918f0c60367a7913d20a74726c))
* **nlpgo:** raise Code block default timeout from 60s to 600s ([#7640](https://github.com/langwatch/langwatch/issues/7640)) ([6f9d4a4](https://github.com/langwatch/langwatch/commit/6f9d4a49c6d44cc0eb35d48a0aee9a29243139af))
* **nlpgo:** stop code blocks aborting at 120s ([#7647](https://github.com/langwatch/langwatch/issues/7647)) ([881ef21](https://github.com/langwatch/langwatch/commit/881ef21c46bc9e74a19c8f51a43ddcf32fc921f8))
* **nlpgo:** wire the dead engine timeout knobs — code-block timeout, SSE heartbeat, per-node timeout_ms ([#7614](https://github.com/langwatch/langwatch/issues/7614)) ([33a4aff](https://github.com/langwatch/langwatch/commit/33a4aff3501adbe8a8e60c1e26701c9df9e44aff))
* **observability:** expose collection health and ingestion outcomes ([#7932](https://github.com/langwatch/langwatch/issues/7932)) ([501a69b](https://github.com/langwatch/langwatch/commit/501a69b177bec5b2a2fbbe2bbc222b83d88eec33))
* **onboarding:** pick order badges, tour logo, offer gating, and CLI share-control login ([#8223](https://github.com/langwatch/langwatch/issues/8223)) ([0c5adf4](https://github.com/langwatch/langwatch/commit/0c5adf4017720ee124f5cb086dde122d4feef75f))
* **ops:** record the queue operator actions that were recorded nowhere ([#7134](https://github.com/langwatch/langwatch/issues/7134)) ([#7157](https://github.com/langwatch/langwatch/issues/7157)) ([bebaf68](https://github.com/langwatch/langwatch/commit/bebaf6846c688774c33fd2edb6017e7aaa8cf9f0))
* optional legacy answer fields, one vocabulary for test suites and run plans, and named targets for runs from code ([#7638](https://github.com/langwatch/langwatch/issues/7638)) ([6fd37f3](https://github.com/langwatch/langwatch/commit/6fd37f30428c9fc468230fa9e4a79e3dee8cc58f))
* **python-sdk:** give ConnectedAgent the scenario agent role ([#7871](https://github.com/langwatch/langwatch/issues/7871)) ([ddcf2e8](https://github.com/langwatch/langwatch/commit/ddcf2e8e673aaf2def5780d70bf9d08791c91f2e))
* **python-sdk:** read the rejected field out of the REST refusal envelope ([#7684](https://github.com/langwatch/langwatch/issues/7684)) ([730f161](https://github.com/langwatch/langwatch/commit/730f161e73e0da2c5fb2aa31cc788d39edaadc6f))
* **python-sdk:** the agent cache takes a dict or list, and a refusal names the field ([#7641](https://github.com/langwatch/langwatch/issues/7641)) ([78e1cd7](https://github.com/langwatch/langwatch/commit/78e1cd7efd068ddd3c94d7eb8e713d574558fc33))
* **scenarios:** fix the seven defects found while dogfooding a customer onboarding demo ([#7271](https://github.com/langwatch/langwatch/issues/7271)) ([7eeac5b](https://github.com/langwatch/langwatch/commit/7eeac5ba6809ed217ce3179d0a1fbb7656f2db52))
* **scenarios:** pair the nlpgo dispatcher with undici's own fetch ([#7714](https://github.com/langwatch/langwatch/issues/7714)) ([679c298](https://github.com/langwatch/langwatch/commit/679c298bc585934a3e13b8ff537b51fc69f76b20))
* **scenarios:** structured error surfacing for SerializedCodeAgentAdapter ([#3439](https://github.com/langwatch/langwatch/issues/3439)) ([#3698](https://github.com/langwatch/langwatch/issues/3698)) ([1e8bd32](https://github.com/langwatch/langwatch/commit/1e8bd328f99575a67ed6bf3d799654fda9575c6f))
* **scim:** the operator's directory-sync list loads, and identity lookup sits inside its card ([#8250](https://github.com/langwatch/langwatch/issues/8250)) ([44521d3](https://github.com/langwatch/langwatch/commit/44521d36f0e205418d63e1e1e4d993854ec25558))
* **sdk-ts:** annotations methods return what their signatures promise ([#7865](https://github.com/langwatch/langwatch/issues/7865)) ([0730c99](https://github.com/langwatch/langwatch/commit/0730c99bde6763e1e22a0aa4c8f0471c3e9627b0))
* **sdks:** one HTTP client per SDK, redirects followed only for an http to https upgrade ([#7906](https://github.com/langwatch/langwatch/issues/7906)) ([5301cb0](https://github.com/langwatch/langwatch/commit/5301cb0a60f2ea4f1726673ef92c521a2e4d67e1))
* **seed:** seed a license the running app can verify, and never clobber an activated one ([#7988](https://github.com/langwatch/langwatch/issues/7988)) ([27ed4fd](https://github.com/langwatch/langwatch/commit/27ed4fd96c1e9591934d83a5cda6d5e2cf1764d5))
* **self-hosting:** remove the startup notice banner ([#8305](https://github.com/langwatch/langwatch/issues/8305)) ([8b5c2c9](https://github.com/langwatch/langwatch/commit/8b5c2c9069bb795047c72f35b233a51f7de94bba))
* **selfhost:** issues found dogfooding the 3.18 Helm install on EKS ([#8313](https://github.com/langwatch/langwatch/issues/8313)) ([0b5f84c](https://github.com/langwatch/langwatch/commit/0b5f84cf0c60e915360e7b12455d2e74117f807f))
* **selfhost:** issues found upgrading a 3.16 Helm install to 3.18 on EKS ([#8323](https://github.com/langwatch/langwatch/issues/8323)) ([1227f36](https://github.com/langwatch/langwatch/commit/1227f36368c756cf5965f68ca6fac931eac30fe2))
* **sessions:** file a codex turn under its session off its log records so the replay opens on the last turn ([#8110](https://github.com/langwatch/langwatch/issues/8110)) ([2ea2951](https://github.com/langwatch/langwatch/commit/2ea2951b961c9c8cef706c273678510581b6554b))
* **skills:** skill tests drive Claude Code through the Scenario SDK adapter, which leaves no orphan process ([#7911](https://github.com/langwatch/langwatch/issues/7911)) ([a3aba37](https://github.com/langwatch/langwatch/commit/a3aba3766466ad2b487f04ca89e15b79cf82c1b1))
* **suites:** the return banner sits in the header row ([#7742](https://github.com/langwatch/langwatch/issues/7742)) ([cebb729](https://github.com/langwatch/langwatch/commit/cebb7296692b91fccb6a98301b73f45cebead23e))
* **system-migrations:** answer the user cohort from the user's own memberships ([#7710](https://github.com/langwatch/langwatch/issues/7710)) ([2a45ef2](https://github.com/langwatch/langwatch/commit/2a45ef2c9066bb13cfb85b49f69c360d646fd9ad))
* **trace-processing:** only span arrivals open deferred origin resolution ([#8191](https://github.com/langwatch/langwatch/issues/8191)) ([f8205f6](https://github.com/langwatch/langwatch/commit/f8205f6a989ca565d37080cf391f245c921b31b2))
* **traces-v2:** a sentence meant to be judged is judged, and Test Connection sends a real call ([#8268](https://github.com/langwatch/langwatch/issues/8268)) ([f34309f](https://github.com/langwatch/langwatch/commit/f34309f29d796f785fa87dcb150056b7ecfccd7e))
* **traces:** filter chips stop resizing on hover so the X stays put ([#7980](https://github.com/langwatch/langwatch/issues/7980)) ([9d31e73](https://github.com/langwatch/langwatch/commit/9d31e739c0e6c2acf2906d9980303b094b9a15f2))
* **traces:** keep a reading of zero on ingest ([#7921](https://github.com/langwatch/langwatch/issues/7921)) ([8b51631](https://github.com/langwatch/langwatch/commit/8b516317772e0ebe23cfff321dc5d615522bc31a))
* **traces:** keep the chosen time range when opening a conversation ([#7908](https://github.com/langwatch/langwatch/issues/7908)) ([c5b4da5](https://github.com/langwatch/langwatch/commit/c5b4da52126eeaf39912ddf9c4a8f6861dcb3d9a))
* **traces:** stop the trace list deriving the version dedup twice per page ([#7694](https://github.com/langwatch/langwatch/issues/7694)) ([2127401](https://github.com/langwatch/langwatch/commit/2127401f0398a23a1349f6cdf171345cc5e70e80))
* **voice:** address the review findings left open on slice 3 ([#8068](https://github.com/langwatch/langwatch/issues/8068)) ([b3d5e53](https://github.com/langwatch/langwatch/commit/b3d5e5329c57b2783547138250d46ea67942665b))
* **voice:** admit blob: script modules so the ElevenLabs worklets load under CSP ([#7947](https://github.com/langwatch/langwatch/issues/7947)) ([#8007](https://github.com/langwatch/langwatch/issues/8007)) ([7d0b1c5](https://github.com/langwatch/langwatch/commit/7d0b1c53ab74d4c776b7ddcb684f3f1488a81686))
* **voice:** give the simulated caller its turns on a phone call ([#8117](https://github.com/langwatch/langwatch/issues/8117)) ([69880f8](https://github.com/langwatch/langwatch/commit/69880f8c987bb46ba7884de1d530fa57c76a8ea5))
* **voice:** harden v1 — transcript fallback, finish re-drive, authz, cutoff marker ([#8025](https://github.com/langwatch/langwatch/issues/8025)) ([642820c](https://github.com/langwatch/langwatch/commit/642820cc24b6ec03f4d33a86f79b3946d08a0b40))
* **voice:** schedule the caller's reply before judging on agent-first runs ([#8124](https://github.com/langwatch/langwatch/issues/8124)) ([c2f6eeb](https://github.com/langwatch/langwatch/commit/c2f6eebe1d1b185740b043b49299c0d98fd7b4e4))
### Miscellaneous
* **ci:** repin pr-review-bot to 7ff0638 and grant contents: write ([#8260](https://github.com/langwatch/langwatch/issues/8260)) ([84a6dcc](https://github.com/langwatch/langwatch/commit/84a6dcc7e1b66142fc03414f41b90ef36a169809))
* **deps:** bump google.golang.org/grpc to v1.83.1 for GO-2026-6348 ([#8197](https://github.com/langwatch/langwatch/issues/8197)) ([090df20](https://github.com/langwatch/langwatch/commit/090df20c84f56633ef5d496659cdaad8ad4d672b))
* **docs:** prose linter for the writing rules, judged by Jev ([#8221](https://github.com/langwatch/langwatch/issues/8221)) ([55215e3](https://github.com/langwatch/langwatch/commit/55215e3e0f20b3e7e97b928c9b7c26863e58bc53))
* **gitattributes:** mark *.generated.{json,ts} and MCP query fixtures as linguist-generated ([690e67a](https://github.com/langwatch/langwatch/commit/690e67ae9c16bf9909566df5b2f9e405cc7e1cf0))
* **gitattributes:** mark generated JSON/TS and MCP query fixtures as linguist-generated ([#8253](https://github.com/langwatch/langwatch/issues/8253)) ([690e67a](https://github.com/langwatch/langwatch/commit/690e67ae9c16bf9909566df5b2f9e405cc7e1cf0))
* **github:** scrum story, acceptance criteria and definition of done in templates ([#8255](https://github.com/langwatch/langwatch/issues/8255)) ([66a6d0f](https://github.com/langwatch/langwatch/commit/66a6d0f9efdb51202ed5d5f33af223169ef8f7db))
* **go:** bump bifrost/core to v1.5.17 (GO-2026-6320) ([#7877](https://github.com/langwatch/langwatch/issues/7877)) ([9abad4a](https://github.com/langwatch/langwatch/commit/9abad4a95e9af2d60685890ef99f08fc9ad065cc))
* **governance:** close the debt PR [#8023](https://github.com/langwatch/langwatch/issues/8023) left ([#8041](https://github.com/langwatch/langwatch/issues/8041)) ([#8042](https://github.com/langwatch/langwatch/issues/8042)) ([5146e47](https://github.com/langwatch/langwatch/commit/5146e475c605e81669adbab1cb7a871be084fa3a))
* **instant-evals:** remove the unused INSTANT_EVAL cost enum values and their migration ([#8229](https://github.com/langwatch/langwatch/issues/8229)) ([5491563](https://github.com/langwatch/langwatch/commit/5491563956cd7acc1b303a8bd9237150d18e5946))
* **main:** release clickhouse-serverless 0.4.0 ([#7301](https://github.com/langwatch/langwatch/issues/7301)) ([ff695ca](https://github.com/langwatch/langwatch/commit/ff695cade47c946fae17d96a05680f38d5adc668))
* **navigation:** drop legacy chrome and the mode flag ([#7597](https://github.com/langwatch/langwatch/issues/7597)) ([7a17a3c](https://github.com/langwatch/langwatch/commit/7a17a3c5a81139d284b4b99255c19d291242b66f))
* **prose-lint:** landing-page ruleset, context mode and founder marks ([#8231](https://github.com/langwatch/langwatch/issues/8231)) ([9e8b02d](https://github.com/langwatch/langwatch/commit/9e8b02d36c2e768376897dcd3fe8de50e51f0404))
* **scenario:** vendor the 1.7.0 prerelease build with the [#982](https://github.com/langwatch/langwatch/issues/982) voice work ([#8034](https://github.com/langwatch/langwatch/issues/8034)) ([81fa76a](https://github.com/langwatch/langwatch/commit/81fa76afebbfac5f879771f72a6ed196f1e9d9cc))
* sync model registry ([12edc52](https://github.com/langwatch/langwatch/commit/12edc528564a42338aa0ebe37cae41f8694ecdd0))
* sync model registry ([410aeb9](https://github.com/langwatch/langwatch/commit/410aeb939b8c83ae2f3b8cf51fc8997ce517e2b8))
* sync model registry ([dbf1e6f](https://github.com/langwatch/langwatch/commit/dbf1e6f0712eee1b70d035cf8f4bfca9c82fc436))
* sync model registry (423 models) ([#7682](https://github.com/langwatch/langwatch/issues/7682)) ([dbf1e6f](https://github.com/langwatch/langwatch/commit/dbf1e6f0712eee1b70d035cf8f4bfca9c82fc436))
* sync model registry (460 models) ([#7925](https://github.com/langwatch/langwatch/issues/7925)) ([410aeb9](https://github.com/langwatch/langwatch/commit/410aeb939b8c83ae2f3b8cf51fc8997ce517e2b8))
* sync model registry (489 models) ([#8310](https://github.com/langwatch/langwatch/issues/8310)) ([12edc52](https://github.com/langwatch/langwatch/commit/12edc528564a42338aa0ebe37cae41f8694ecdd0))
* **traces-v2:** drop the search route path that no caller takes ([#8264](https://github.com/langwatch/langwatch/issues/8264)) ([7e0566b](https://github.com/langwatch/langwatch/commit/7e0566be2543eb7abcd78837271dc9645d3fcc5d))
* **traces-v2:** the route the caller already knew has no caller left ([7e0566b](https://github.com/langwatch/langwatch/commit/7e0566be2543eb7abcd78837271dc9645d3fcc5d))
### Documentation
* add LiteLLM Proxy integration guide (OpenTelemetry v2) ([#8309](https://github.com/langwatch/langwatch/issues/8309)) ([e62171c](https://github.com/langwatch/langwatch/commit/e62171cfeb6f0448beb6b0f1b4a82858b6e9bad4))
* **adr:** add ADR-128 — governance cost and identity, two waves (Proposed) ([#7648](https://github.com/langwatch/langwatch/issues/7648)) ([577995d](https://github.com/langwatch/langwatch/commit/577995d97fcc19f11aed19d64a93de78f16428d0))
* **agent-testing:** a development agent in a container registers a new row per hostname ([#7981](https://github.com/langwatch/langwatch/issues/7981)) ([edcbebd](https://github.com/langwatch/langwatch/commit/edcbebd572fba9e24ac7571e17583e80d95e6aa2))
* **agent-testing:** connect from a function beside your service startup ([#7698](https://github.com/langwatch/langwatch/issues/7698)) ([60e7d4c](https://github.com/langwatch/langwatch/commit/60e7d4cedd0b0d70ed271891b24b507a0258a05e))
* **agent-testing:** grade runs with evaluators, screenshots on every step ([#7930](https://github.com/langwatch/langwatch/issues/7930)) ([89f8faa](https://github.com/langwatch/langwatch/commit/89f8faa7f1b5243bcf98e41f48135a7510c855ca))
* **agent-testing:** rename the section to Agent Testing and rewrite it for the shipped interface ([#7659](https://github.com/langwatch/langwatch/issues/7659)) ([eb2f4b6](https://github.com/langwatch/langwatch/commit/eb2f4b626ddf85ec8ba1f9b49186dc3c333828e5))
* **ai-gateway:** rewrite the gateway core pages, providers, billing, SDKs and migrations ([#7804](https://github.com/langwatch/langwatch/issues/7804)) ([7d9f9b1](https://github.com/langwatch/langwatch/commit/7d9f9b1d558c13ed2768b84bbce4d38ed68cffaa))
* **go:** integration guide, onboarding, and cross-language snippets for the upgraded Go SDK ([#4997](https://github.com/langwatch/langwatch/issues/4997)) ([547081e](https://github.com/langwatch/langwatch/commit/547081e2ea4f29fced96ad690acf3751b1d45918))
* **governance:** spell out the cost of a legacy ledger row, nest the test ([#8076](https://github.com/langwatch/langwatch/issues/8076)) ([dd6aa6e](https://github.com/langwatch/langwatch/commit/dd6aa6efd343e4d0a50e8f31132aefc6518c8bc7))
* **improve-your-agent:** follow-ups: plain connected target, native GEPA tracking, writing-rules sweep ([#7897](https://github.com/langwatch/langwatch/issues/7897)) ([a710273](https://github.com/langwatch/langwatch/commit/a7102738c0f13b9c8dd8152c3b947d72f4b604c4))
* **improve-your-agent:** the agent improvement loop and the optimization guides ([#7868](https://github.com/langwatch/langwatch/issues/7868)) ([c96d20f](https://github.com/langwatch/langwatch/commit/c96d20f35b9644a84e2345a4e98e8e810b87e936))
* **intro:** four platform areas and a recorded hero clip on the introduction page ([#7834](https://github.com/langwatch/langwatch/issues/7834)) ([e276ed7](https://github.com/langwatch/langwatch/commit/e276ed795522164c53237e5a89e64d52acb1dbde))
* **intro:** lead with agent testing and retire the Better Agents page ([#7954](https://github.com/langwatch/langwatch/issues/7954)) ([7c20364](https://github.com/langwatch/langwatch/commit/7c20364fefe8853a5e9dee1d9e2c8826facc041e))
* **langy:** local development page review and the run video ([#7927](https://github.com/langwatch/langwatch/issues/7927)) ([a183032](https://github.com/langwatch/langwatch/commit/a183032f4e0da7bd188726b8e4ef91ebe5c7fdfa))
* **models:** correct overlay precedence ([#7724](https://github.com/langwatch/langwatch/issues/7724)) ([5dfca47](https://github.com/langwatch/langwatch/commit/5dfca47e14c8ac876924a111eb6f44409e63ea7d))
* move LiteLLM SDK and Proxy pages under Model Providers ([aa88844](https://github.com/langwatch/langwatch/commit/aa88844945aecfac647948a396183de6135f4fbb))
* move LiteLLM under Model Providers ([#8312](https://github.com/langwatch/langwatch/issues/8312)) ([aa88844](https://github.com/langwatch/langwatch/commit/aa88844945aecfac647948a396183de6135f4fbb))
* post-revamp sweep, restore the secrets link and fix dead links and anchors ([#7955](https://github.com/langwatch/langwatch/issues/7955)) ([06f8847](https://github.com/langwatch/langwatch/commit/06f8847e00d91e66f9f51917b53ebb02e9f8b4f6))
* **readme:** rewrite around the four areas with the new hero video and cover ([#8107](https://github.com/langwatch/langwatch/issues/8107)) ([c605fce](https://github.com/langwatch/langwatch/commit/c605fce7bdc00beafe35981540f1c4dca91e8f5b))
* **sso:** customer guide for moving to your own identity provider, and the fixes that let the update finish ([#8271](https://github.com/langwatch/langwatch/issues/8271)) ([8a174ca](https://github.com/langwatch/langwatch/commit/8a174ca0c52a3398729e992fe41e326cbde02571))
* **workflows:** replace Optimization Studio with Workflows ([#7812](https://github.com/langwatch/langwatch/issues/7812)) ([2037de6](https://github.com/langwatch/langwatch/commit/2037de65e00413c06c5702377d57af193f3c1cc2))
### Code Refactoring
* **agent-testing:** remove the retired new-simulations callout ([#8266](https://github.com/langwatch/langwatch/issues/8266)) ([1e3c4d0](https://github.com/langwatch/langwatch/commit/1e3c4d09a99bc4ac6a69348d9fa50fadbdddcf0b))
* **governance:** type the ingestion-pull outcome dispatches instead of casting them ([#8118](https://github.com/langwatch/langwatch/issues/8118)) ([4eb5e58](https://github.com/langwatch/langwatch/commit/4eb5e58b64aca240d84a8db99b077d773b6c0cc2))
* **suites:** make the scenario output-field tri-state a type, not a comment ([#3119](https://github.com/langwatch/langwatch/issues/3119)) ([#7573](https://github.com/langwatch/langwatch/issues/7573)) ([253985f](https://github.com/langwatch/langwatch/commit/253985f3df3e0ee8f19cb1cfd119e4ac48003257))
* **traces:** framework-free conversation, chat split, LLM span and bounded digest modules ([#8194](https://github.com/langwatch/langwatch/issues/8194)) ([85b7c02](https://github.com/langwatch/langwatch/commit/85b7c02e3f178bac817702646af877afd88ae032))
* **voice:** route through services and HandledError ([#7947](https://github.com/langwatch/langwatch/issues/7947)) ([#7983](https://github.com/langwatch/langwatch/issues/7983)) ([76d25d5](https://github.com/langwatch/langwatch/commit/76d25d59c5b2cb1714fac2a2718cd8e6b5c95f45))
## [3.17.0](https://github.com/langwatch/langwatch/compare/langwatch@v3.16.0...langwatch@v3.17.0) (2026-08-27)
### Features
- agent testing v2, suites, run notes, versioning and a new testing surface (flagged) ([#7529](https://github.com/langwatch/langwatch/issues/7529)) ([86ab7f7](https://github.com/langwatch/langwatch/commit/86ab7f794d02c477b53a2cc46804972649ee37b3))
- **agent-cache:** a code agent logs in once for a whole run ([#7545](https://github.com/langwatch/langwatch/issues/7545)) ([52bedc0](https://github.com/langwatch/langwatch/commit/52bedc0bb7d23fd8cd72efc2207edf6172096083))
- **agent-cache:** take a name with a claim, so one row does the work ([#7596](https://github.com/langwatch/langwatch/issues/7596)) ([6dfa6d7](https://github.com/langwatch/langwatch/commit/6dfa6d74c824ae5e04bb97196e33911940861cb0))
- **agent-plugin:** agent-declared working context with langwatch ingest context ([#7464](https://github.com/langwatch/langwatch/issues/7464)) ([9ffa03d](https://github.com/langwatch/langwatch/commit/9ffa03dfc1b1b2b777ee37bb42703de5c8fef0e0))
- **ai-gateway:** catalog model routing and per-instance provider handles ([#7396](https://github.com/langwatch/langwatch/issues/7396)) ([f1c9f8e](https://github.com/langwatch/langwatch/commit/f1c9f8e25e6721b77249b57fbc30cc7a60c9fde1))
- **aigateway:** serve ElevenLabs' own speech and text routes ([#7405](https://github.com/langwatch/langwatch/issues/7405)) ([680e2fd](https://github.com/langwatch/langwatch/commit/680e2fdc79b89ab31d5a860641f25b9cc3280250))
- **authz:** a grant states which surface authored it ([#7519](https://github.com/langwatch/langwatch/issues/7519)) ([d34ee73](https://github.com/langwatch/langwatch/commit/d34ee737264f12c9d525f8b156f4f3c9890a840a))
- **authz:** release the migration for self-hosted installations ([#7442](https://github.com/langwatch/langwatch/issues/7442)) ([1496c7f](https://github.com/langwatch/langwatch/commit/1496c7f893b36f4d5ee2f5a3bd1c9d7113e7d2c3))
- **authz:** the ADR-110 authz-engine migration — every legacy table stated, proven, and finishing is the switch ([#7404](https://github.com/langwatch/langwatch/issues/7404)) ([159e24c](https://github.com/langwatch/langwatch/commit/159e24c5b7a0774388af12dcdb6666cfcb8772a3))
- **cli-auth:** langwatch login mints a user-scoped key that inherits the user's permissions ([#7410](https://github.com/langwatch/langwatch/issues/7410)) ([c935339](https://github.com/langwatch/langwatch/commit/c935339ca69bbbc9e0272f8a0f71eadf170c0ce6))
- **event-sourcing:** count the work-conserving override dispatches ([#7185](https://github.com/langwatch/langwatch/issues/7185)) ([e49da57](https://github.com/langwatch/langwatch/commit/e49da577abea8f62d6b769f20b176c8fc04c8dd6))
- **experiments:** the workbench copilot measures before it edits ([#7550](https://github.com/langwatch/langwatch/issues/7550)) ([2343dd5](https://github.com/langwatch/langwatch/commit/2343dd587777edf8b567754fe3523ff9cd6b7b1c))
- **governance:** an admin can say where a source's conversations land ([#7513](https://github.com/langwatch/langwatch/issues/7513)) ([e13de3b](https://github.com/langwatch/langwatch/commit/e13de3b2b997eed27d987d65a771dd8952cadc26))
- **governance:** pull OpenAI spend and attribute it to the person and key ([#7586](https://github.com/langwatch/langwatch/issues/7586)) ([2f0d2a7](https://github.com/langwatch/langwatch/commit/2f0d2a70e557a36e3750a29d0ed08a0b5cdabb4b))
- **governance:** route pulled Genie conversations into the trace explorer (ADR-088 v7) ([#7444](https://github.com/langwatch/langwatch/issues/7444)) ([d6ffb56](https://github.com/langwatch/langwatch/commit/d6ffb5673df7dec32ee7a6ec9025883a976a35cb))
- **governance:** the edit drawer can edit what pull mode actually runs on ([#7430](https://github.com/langwatch/langwatch/issues/7430)) ([0926ce0](https://github.com/langwatch/langwatch/commit/0926ce0db2dff306c5cd8c6b6b5bb03fec8ab45e))
- **governance:** the nav unifies Tool Tiles and Sources into Inventory; Departments becomes People; Costs/Billed ship flag-gated ([#7357](https://github.com/langwatch/langwatch/issues/7357)) ([15d54d1](https://github.com/langwatch/langwatch/commit/15d54d10059336967dc73027c7f0cd44ae930b46))
- **home:** give the first-trace pill the one setup menu ([#7412](https://github.com/langwatch/langwatch/issues/7412)) ([b2bc6da](https://github.com/langwatch/langwatch/commit/b2bc6da83f327ed448e34fc1e1ae5e51dff851a7))
- **identity:** an identifier is an aggregate — the domain half (ADR-127) ([#7595](https://github.com/langwatch/langwatch/issues/7595)) ([b26fc57](https://github.com/langwatch/langwatch/commit/b26fc57bacbd40b617c5f92bde9505edb5028d62))
- **identity:** identifiers become event truth, and better-auth storage goes through the identity adapter ([#7333](https://github.com/langwatch/langwatch/issues/7333)) ([6075952](https://github.com/langwatch/langwatch/commit/6075952bf6188ac722c232038404dc32a0ae0fe9))
- **identity:** wave 2 implementation — D05-D08, D11-D12, and the front door they sign in through ([#7528](https://github.com/langwatch/langwatch/issues/7528)) ([95512d4](https://github.com/langwatch/langwatch/commit/95512d492b6395930059850124bba01cb20ca80c))
- **idpsim:** a local identity provider for testing OIDC, SAML, SCIM and domain verification ([#7564](https://github.com/langwatch/langwatch/issues/7564)) ([dda1d7e](https://github.com/langwatch/langwatch/commit/dda1d7ec9831050daf3c809933479be82e1c21b6))
- **langy:** drive the experiments workbench as a prompt improvement copilot ([#7424](https://github.com/langwatch/langwatch/issues/7424)) ([1e0d104](https://github.com/langwatch/langwatch/commit/1e0d1040b39c13089ecca01e437a15d2590224ae))
- **langy:** pi harness on by default, and panel-open pre-warm ([#7407](https://github.com/langwatch/langwatch/issues/7407)) ([6ce6cbb](https://github.com/langwatch/langwatch/commit/6ce6cbb33f46ff576cbadab622326c6b3477f7e7))
- **langy:** widen the session key to everything except auth-scope writes ([#7389](https://github.com/langwatch/langwatch/issues/7389)) ([af6ea29](https://github.com/langwatch/langwatch/commit/af6ea292f38f9a18d7d40f072aa7e889a27878f0))
- **lwql:** workbench epic - granularity contract, run-by-chart-id, dashboard widgets, chart CLI, Langy skill, QA fixes ([#7474](https://github.com/langwatch/langwatch/issues/7474)) ([df4f775](https://github.com/langwatch/langwatch/commit/df4f775bd2a3d3547bad95822278a8ec69682a1c))
- **migrations:** a cohort can draw the organizations it normally holds back ([#7441](https://github.com/langwatch/langwatch/issues/7441)) ([811c32f](https://github.com/langwatch/langwatch/commit/811c32f50be96437f39fd64e7d14e1d4a91a04de))
- **navigation:** project and scope selector search, and a phone-width chrome ([#7401](https://github.com/langwatch/langwatch/issues/7401)) ([a0119d5](https://github.com/langwatch/langwatch/commit/a0119d531d4465e704e5ff60fa14d08da819be8c))
- **ops:** the event-sourcing tools live in their workspace, not the ops menu ([#7455](https://github.com/langwatch/langwatch/issues/7455)) ([55d8b71](https://github.com/langwatch/langwatch/commit/55d8b71cf3ee37dfad395af93399a675af78fb04))
- **scenarios:** secret run parameters and a truthful batch completion signal ([#7397](https://github.com/langwatch/langwatch/issues/7397)) ([ab564c0](https://github.com/langwatch/langwatch/commit/ab564c0e01afefeebe1864e2990d0c9afebfe806))
- **traces:** one path at a time on the no-traces page ([#7411](https://github.com/langwatch/langwatch/issues/7411)) ([1464af8](https://github.com/langwatch/langwatch/commit/1464af8658711a9873dbfe7d7d11785bef45ec06))
### Bug Fixes
- **admin:** read impersonation's second-factor check off the target row ([#7567](https://github.com/langwatch/langwatch/issues/7567)) ([09f9797](https://github.com/langwatch/langwatch/commit/09f97975b50d9d6f41e7ba875a0deeb34483ec39))
- **authz:** a disabled membership is not a membership ([#7476](https://github.com/langwatch/langwatch/issues/7476)) ([653cefd](https://github.com/langwatch/langwatch/commit/653cefda66d2abc1de198a721270fdc719a71819))
- **authz:** a pass finishes, and stops holding organizations it cannot clear ([#7460](https://github.com/langwatch/langwatch/issues/7460)) ([107765d](https://github.com/langwatch/langwatch/commit/107765d20f7be9a9733707193292d7a05fc0ed55))
- **authz:** a pass states only the facts the heads do not carry ([#7429](https://github.com/langwatch/langwatch/issues/7429)) ([1d0bf84](https://github.com/langwatch/langwatch/commit/1d0bf84e8e2e8e299762ff4bc2e2285dc34b8d11))
- **authz:** a role event carries the aggregate type of the pipeline it rides ([#7406](https://github.com/langwatch/langwatch/issues/7406)) ([0e87c15](https://github.com/langwatch/langwatch/commit/0e87c155c7cc2d54d908582a762da7395320d9e4))
- **authz:** answer a blank scope id as invalid input, not a wiring bug ([#7487](https://github.com/langwatch/langwatch/issues/7487)) ([6a3d058](https://github.com/langwatch/langwatch/commit/6a3d0587d3c72eea8951d907106095bd8db8c3c9))
- **authz:** every command about one grant rides one ordered lane ([#7440](https://github.com/langwatch/langwatch/issues/7440)) ([187c9cf](https://github.com/langwatch/langwatch/commit/187c9cf45e3bad4b160390c789dce501bf3fbc04))
- **ci:** reformat expect() call to satisfy biome ([24d70da](https://github.com/langwatch/langwatch/commit/24d70dae92938864b6e8207ae3bf2a33dda8801b)), closes [#7605](https://github.com/langwatch/langwatch/issues/7605)
- **ci:** reformat expect() call to unbreak lint gate on main ([#7607](https://github.com/langwatch/langwatch/issues/7607)) ([24d70da](https://github.com/langwatch/langwatch/commit/24d70dae92938864b6e8207ae3bf2a33dda8801b))
- **cli-auth:** ask for the code check before showing anything else ([#7539](https://github.com/langwatch/langwatch/issues/7539)) ([0ea5931](https://github.com/langwatch/langwatch/commit/0ea593173167f2cca4ad2e7ed8c8751a54f565e3))
- **cli:** name a codex session that emits no user_message event ([#7417](https://github.com/langwatch/langwatch/issues/7417)) ([00770f6](https://github.com/langwatch/langwatch/commit/00770f682c02006691e98c5d5b9e18162c749a72))
- **cli:** the codex harvest reads the checkout, so a session reports the branch it is on ([#7415](https://github.com/langwatch/langwatch/issues/7415)) ([b1bc36f](https://github.com/langwatch/langwatch/commit/b1bc36fef3e787d4152a7e3bb2ecdd7e51519704))
- **cli:** the session-context hook follows a native worktree switch ([#7400](https://github.com/langwatch/langwatch/issues/7400)) ([f7efa27](https://github.com/langwatch/langwatch/commit/f7efa275f61ef878ec5f3c23da9fdb048b2e36e1))
- **coding-agent:** a codex session states what it cost and finds its own traces ([#7420](https://github.com/langwatch/langwatch/issues/7420)) ([8f412e9](https://github.com/langwatch/langwatch/commit/8f412e9251f79569d13990324bec6f09e2368ee2))
- **coding-agent:** one cost formula on every surface, agent-reported figure kept as a drift alarm ([#7427](https://github.com/langwatch/langwatch/issues/7427)) ([7fe2299](https://github.com/langwatch/langwatch/commit/7fe2299e1a8f2ff3249e9f0dda6d2122be660335))
- **data-privacy:** stop redaction replacing the product's own record ids ([#7543](https://github.com/langwatch/langwatch/issues/7543)) ([6caf87c](https://github.com/langwatch/langwatch/commit/6caf87c074e2b378c1000f581236d1cd74f50628))
- **dev:** a dev stack, a haven up, and a browser all die with their session ([#7547](https://github.com/langwatch/langwatch/issues/7547)) ([9242e7b](https://github.com/langwatch/langwatch/commit/9242e7bcb5a05d66465bc6e8dbe446fa33ff03ee))
- **dev:** the check-queue gate-off is the operator's lever, not the agents' ([#7542](https://github.com/langwatch/langwatch/issues/7542)) ([a16d1ee](https://github.com/langwatch/langwatch/commit/a16d1ee1ab28793201e53713b7a566436e881045))
- **docs:** keep internal notes out of the published site, and gate what Mintlify cannot ([#6824](https://github.com/langwatch/langwatch/issues/6824)) ([41f5002](https://github.com/langwatch/langwatch/commit/41f5002b313de2785362afb786e84db7f86ff867))
- **dx:** alias start:prepare:files at the root so the habitual name works from any directory ([603748c](https://github.com/langwatch/langwatch/commit/603748c1eae03276c8a3047d21dc66b8327e42ed)), closes [#7432](https://github.com/langwatch/langwatch/issues/7432)
- **dx:** root alias for start:prepare:files ([#7470](https://github.com/langwatch/langwatch/issues/7470)) ([603748c](https://github.com/langwatch/langwatch/commit/603748c1eae03276c8a3047d21dc66b8327e42ed))
- **event-sourcing:** let a queue drain accept the work it produces ([#7520](https://github.com/langwatch/langwatch/issues/7520)) ([1f51c56](https://github.com/langwatch/langwatch/commit/1f51c56eb8467d95c259b14c31233043eb810617))
- **experiments:** the numbers agree across the workbench, the results page and the CLI ([#7606](https://github.com/langwatch/langwatch/issues/7606)) ([07ade28](https://github.com/langwatch/langwatch/commit/07ade28e92ba93610c0e274c06f87beb1a3b81d9))
- **feature-flags:** a frontend-exposed SYSTEM flag is declared, not a violation ([#7512](https://github.com/langwatch/langwatch/issues/7512)) ([6997214](https://github.com/langwatch/langwatch/commit/6997214f85b49767836a6ddf4810c79c7ebf0bae))
- **feature-flags:** make every flag read state its project and organization ([#7588](https://github.com/langwatch/langwatch/issues/7588)) ([a7c3741](https://github.com/langwatch/langwatch/commit/a7c374134d36fcfed7368370ac5db2fc50940277))
- **feature-flags:** the ops page states what actually decides a flag's value ([#7514](https://github.com/langwatch/langwatch/issues/7514)) ([0a3cebf](https://github.com/langwatch/langwatch/commit/0a3cebff8b2f0ded189493b3e39050724901c31b))
- **gateway:** a codex request carries only what its backend accepts ([#7507](https://github.com/langwatch/langwatch/issues/7507)) ([5e8e8a1](https://github.com/langwatch/langwatch/commit/5e8e8a159a22e52547738d883690ead34855d759))
- **gateway:** a forwarded provider rejection is logged with the provider's own reason ([#7494](https://github.com/langwatch/langwatch/issues/7494)) ([9b61f95](https://github.com/langwatch/langwatch/commit/9b61f95d2ad51b2223ad02fab01565b834a8958c))
- **governance:** clean up Copilot Studio integration and unblock archived name reuse ([#7612](https://github.com/langwatch/langwatch/issues/7612)) ([d6a5489](https://github.com/langwatch/langwatch/commit/d6a5489098ac43ade4de4f27493f6a95f785c7e5))
- **governance:** keep a resumed Copilot Studio conversation as one trace ([#7601](https://github.com/langwatch/langwatch/issues/7601)) ([a277387](https://github.com/langwatch/langwatch/commit/a2773875634374bfcf70e6c42d48f59317b548bb)), closes [#7598](https://github.com/langwatch/langwatch/issues/7598)
- **governance:** make an unreadable ndjson line count, and bind the spec ([#7591](https://github.com/langwatch/langwatch/issues/7591)) ([#7604](https://github.com/langwatch/langwatch/issues/7604)) ([b8cf290](https://github.com/langwatch/langwatch/commit/b8cf290561ddeb176e3b6f9abf73dcbf1dcc42e0))
- **governance:** one projection hold per ingestion-key rotation, and a spinner while the wrapper sets up ([#7395](https://github.com/langwatch/langwatch/issues/7395)) ([a22237f](https://github.com/langwatch/langwatch/commit/a22237fd016181469d1cdc450a3f7b26829739be))
- **governance:** the edit drawer reads the cadence the scheduler runs on ([#7522](https://github.com/langwatch/langwatch/issues/7522)) ([5f44654](https://github.com/langwatch/langwatch/commit/5f44654843a76c8cf65f688b74a582aaf7ab2920))
- **haven:** `up` builds the api bundle it runs, and names the CA-serial trap ([#7508](https://github.com/langwatch/langwatch/issues/7508)) ([d89fe9e](https://github.com/langwatch/langwatch/commit/d89fe9e3e7c9689e7b94e6cac7939e9c440a8f47))
- **haven:** make PORTLESS=0 actually bypass the proxy ([#7182](https://github.com/langwatch/langwatch/issues/7182)) ([5f82719](https://github.com/langwatch/langwatch/commit/5f827199c8bd0a54fff78e796ed1958cf477861b))
- **haven:** the TypeScript compiler is governed under both of its names ([#7540](https://github.com/langwatch/langwatch/issues/7540)) ([c85d41e](https://github.com/langwatch/langwatch/commit/c85d41e416a9abfc4391d5affa513a0012d543a3))
- **langy:** a sandboxed pi worker can enter the shared session stash ([#7467](https://github.com/langwatch/langwatch/issues/7467)) ([3807ebc](https://github.com/langwatch/langwatch/commit/3807ebcf2d357038edb4109c959c2f475205cfff))
- **langy:** codex models run again on pi, the backend refuses prompt_cache_retention ([#7484](https://github.com/langwatch/langwatch/issues/7484)) ([bac622a](https://github.com/langwatch/langwatch/commit/bac622a9317807d20fa8720a7b4a66d48b5d15fc))
- **langy:** composer typing performance, session resume, and cards that tell the truth ([#7403](https://github.com/langwatch/langwatch/issues/7403)) ([6dc0d81](https://github.com/langwatch/langwatch/commit/6dc0d8153995d263a2f0ca5a5c4218380e3a6777))
- **langy:** show what a tool returned, and stop reading a rejected command as an empty result ([#7408](https://github.com/langwatch/langwatch/issues/7408)) ([7d59ad8](https://github.com/langwatch/langwatch/commit/7d59ad8f7bf68fb01a5fd769e3f372b5c12f9c41))
- **langy:** the transcript reads in the order the turn happened ([#7510](https://github.com/langwatch/langwatch/issues/7510)) ([ae7c39a](https://github.com/langwatch/langwatch/commit/ae7c39ad7a6779adfefdfced94f2fd71a4f412da))
- **navigation:** highlight the top result while the project search runs ([#7517](https://github.com/langwatch/langwatch/issues/7517)) ([f50f039](https://github.com/langwatch/langwatch/commit/f50f039d875280e196bcdc6182ef45dd891b93aa))
- quick fixes for the top recurring prod errors ([#7465](https://github.com/langwatch/langwatch/issues/7465)) ([1c92514](https://github.com/langwatch/langwatch/commit/1c92514a25bdf6d57b6ad84d25800f7af35ff85a))
- **test:** follow the docs rename in the update-metadata endpoint test ([#7475](https://github.com/langwatch/langwatch/issues/7475)) ([efcbe95](https://github.com/langwatch/langwatch/commit/efcbe95c4fc3c53840a78fd470fa401fd5b1a19b))
- **typescript-sdk:** stop excludeHttpRequests from dropping user verb-word spans ([#7457](https://github.com/langwatch/langwatch/issues/7457)) ([7b1c204](https://github.com/langwatch/langwatch/commit/7b1c204b79f99f68ac45e9038d0a298a9257eed5))
- **ui:** a markdown link is an inline box again, so long URLs wrap instead of escaping the message ([#7434](https://github.com/langwatch/langwatch/issues/7434)) ([8d84e82](https://github.com/langwatch/langwatch/commit/8d84e82a7c751e35f9f7c50281b19c651f526349)), closes [#7433](https://github.com/langwatch/langwatch/issues/7433)
### Miscellaneous
- **governance:** the review followups that are not about the cadence fix ([#7524](https://github.com/langwatch/langwatch/issues/7524)) ([c3d07af](https://github.com/langwatch/langwatch/commit/c3d07afc44b2baeaa78cde2bb7ef894d47771304))
### Documentation
- **agent-cache:** state that project-scoped entries accept cross-run writes ([#7575](https://github.com/langwatch/langwatch/issues/7575)) ([23c0194](https://github.com/langwatch/langwatch/commit/23c0194b0df578646a0c1d4266c7d91f12498f54))
- FEATURE_MAP points at SKILL.md, the skills are SKILL.mdx ([4637c5d](https://github.com/langwatch/langwatch/commit/4637c5d1723d5717997ea9fa7dd38b5d324f6470))
- give coding agents their own top-level section ([#7546](https://github.com/langwatch/langwatch/issues/7546)) ([058882c](https://github.com/langwatch/langwatch/commit/058882c08cfd9070210c9db2d0a46fe837647d28))
- **identity:** the identity platform program — epic, delivery plan, and D01–D13 ([#7515](https://github.com/langwatch/langwatch/issues/7515)) ([3f8c12e](https://github.com/langwatch/langwatch/commit/3f8c12e028ad3d88bb4966805510a25a63c56ab8))
- **langy:** prompt optimization page and prose CI check ([#7587](https://github.com/langwatch/langwatch/issues/7587)) ([ddbc99b](https://github.com/langwatch/langwatch/commit/ddbc99bb4daf7759933609e43f92d9aa068b7a04))
- **langy:** rename to Automatic Prompt Optimization ([#7589](https://github.com/langwatch/langwatch/issues/7589)) ([70f6786](https://github.com/langwatch/langwatch/commit/70f67860f47cc251e6166c60a35bc6b842d66c30))
- **langy:** rename to Automatic Prompt Optimization and fix the example cost ([70f6786](https://github.com/langwatch/langwatch/commit/70f67860f47cc251e6166c60a35bc6b842d66c30))
- point FEATURE_MAP at the SKILL.mdx sources ([#7172](https://github.com/langwatch/langwatch/issues/7172)) ([4637c5d](https://github.com/langwatch/langwatch/commit/4637c5d1723d5717997ea9fa7dd38b5d324f6470))
### Code Refactoring
- **authz:** a grant is its own aggregate, and finishing the migration is the switch ([#7358](https://github.com/langwatch/langwatch/issues/7358)) ([f51e773](https://github.com/langwatch/langwatch/commit/f51e773e311e404ace8dabecc44b39b5e3b4a2ef))
- **authz:** the migration's proof says less and proves the same ([#7466](https://github.com/langwatch/langwatch/issues/7466)) ([ed47c8a](https://github.com/langwatch/langwatch/commit/ed47c8a8929296ae62049f0ea4c8952a0a080cd3))
- **gateway:** one parameter table decides what the codex lane drops or refuses ([#7518](https://github.com/langwatch/langwatch/issues/7518)) ([172a16a](https://github.com/langwatch/langwatch/commit/172a16a19a12468160bac024120774a15e423723))
- **governance:** activity-monitor repos take the standard client resolver ([#7584](https://github.com/langwatch/langwatch/issues/7584)) ([287dc93](https://github.com/langwatch/langwatch/commit/287dc935136c7a84a9eed6a91e1c4af42e203404))
- **governance:** let a pulled source carry its own conversation shape ([#7570](https://github.com/langwatch/langwatch/issues/7570)) ([b1a9cf9](https://github.com/langwatch/langwatch/commit/b1a9cf9152f2b3c9050b69e9f359c3398aa7595e))
- **governance:** zod validation + CH repository extraction for activityMonitor ([#7146](https://github.com/langwatch/langwatch/issues/7146)) ([fe0dc90](https://github.com/langwatch/langwatch/commit/fe0dc9016986aa9fc29792cf15cbec7228d6ed21))
## [3.16.0](https://github.com/langwatch/langwatch/compare/langwatch@v3.15.0...langwatch@v3.16.0) (2026-08-21)
### Features
- **ai-gateway:** broker realtime voice sessions so voice spend lands on a virtual key ([#7066](https://github.com/langwatch/langwatch/issues/7066)) ([ccee2b7](https://github.com/langwatch/langwatch/commit/ccee2b735696917ae56c644243a99e35df703a49))
- **authz:** per-org cutover - the fork live, engine primary one organization at a time (ADR-092 PR 3) ([#7151](https://github.com/langwatch/langwatch/issues/7151)) ([4f791c7](https://github.com/langwatch/langwatch/commit/4f791c7dc6ed88214b0e083f44f2f6ee21973b09))
- **authz:** the Access surface lists from the head that decides (ADR-092 PR 3 follow-up) ([#7303](https://github.com/langwatch/langwatch/issues/7303)) ([6976c7d](https://github.com/langwatch/langwatch/commit/6976c7d6c9900d01289f04f0b7ebecc8b0d2ae15))
- **authz:** the ledger becomes the writer, one organization at a time (ADR-092 PR 2) ([#7147](https://github.com/langwatch/langwatch/issues/7147)) ([44ef2b7](https://github.com/langwatch/langwatch/commit/44ef2b7a27195fd6fe8a07bf3534180b3aaf6abc))
- **gateway:** one budget-overview service for /me, the CLI epilogue, and budgets surfaces ([#6420](https://github.com/langwatch/langwatch/issues/6420)) ([7dcd14d](https://github.com/langwatch/langwatch/commit/7dcd14d9389824c6a114d333ecdec1ad364ff873))
- **governance:** Add source becomes a vendor menu with plain-language groups ([6cacc15](https://github.com/langwatch/langwatch/commit/6cacc15a3dcf36d7fef1335d89290fffd91dce2a))
- **governance:** attribute Databricks warehouse compute to the Genie question that ran it ([#7188](https://github.com/langwatch/langwatch/issues/7188)) ([ff39a59](https://github.com/langwatch/langwatch/commit/ff39a594e5de4ddcab11c2cbca90c75521cb7bc8))
- **governance:** the add-source button becomes a vendor menu with plain-language groups ([#7316](https://github.com/langwatch/langwatch/issues/7316)) ([6cacc15](https://github.com/langwatch/langwatch/commit/6cacc15a3dcf36d7fef1335d89290fffd91dce2a))
- **governance:** the composer speaks cadence in plain words, and Genie leads with the service principal ([#7325](https://github.com/langwatch/langwatch/issues/7325)) ([dfb5bdc](https://github.com/langwatch/langwatch/commit/dfb5bdc4f378c34e4377da2376588e686d3c46fa))
- **governance:** the nav commits the catalog direction ([#7356](https://github.com/langwatch/langwatch/issues/7356)) ([9323f3f](https://github.com/langwatch/langwatch/commit/9323f3f24d257a40c9e7ad92fd172a8d634d6567))
- **governance:** the source detail page tables every event, cursor-walked ([#7340](https://github.com/langwatch/langwatch/issues/7340)) ([b741ffd](https://github.com/langwatch/langwatch/commit/b741ffd646cfb1fe154d552de92bb392f86f88f1))
- **langy:** minimal harness, own system prompt, scoped tools, outcome-based judge, overfit-resistant skills ([#7266](https://github.com/langwatch/langwatch/issues/7266)) ([084324f](https://github.com/langwatch/langwatch/commit/084324f9db077cdaea0cc822ff505485b593d278))
- **migrations:** per-organization claims, parallel passes, batched grants fold, previous-step cohorts ([#7337](https://github.com/langwatch/langwatch/issues/7337)) ([4f4476a](https://github.com/langwatch/langwatch/commit/4f4476ac08c1c9c009096734095d3a9a295f1ba4))
- **navigation:** product switcher becomes the default, and the sidebar matches the design ([#7198](https://github.com/langwatch/langwatch/issues/7198)) ([1253431](https://github.com/langwatch/langwatch/commit/125343109dbb38538970b006302acf39c38091a6))
- **ops:** per-migration enrollment, human names and targeted runs on the migrations page ([#7304](https://github.com/langwatch/langwatch/issues/7304)) ([bc515e5](https://github.com/langwatch/langwatch/commit/bc515e528c3bb61cbc188f9acc9af9629d5ab194))
### Bug Fixes
- **ai-gateway:** a rotated provider credential reaches a running gateway, and dogfood seeding stops replacing working keys ([#7068](https://github.com/langwatch/langwatch/issues/7068)) ([fdaceab](https://github.com/langwatch/langwatch/commit/fdaceabd3dbe03893367647caf46f02d188d377d))
- **authz:** no platform tenant, size-scaled convergence, cohort enrollment ([#7322](https://github.com/langwatch/langwatch/issues/7322)) ([410ac86](https://github.com/langwatch/langwatch/commit/410ac865949472a89767e29a980e81d9a3f6198c))
- **billing:** say which limit was hit in the plan limit slack alert ([#6719](https://github.com/langwatch/langwatch/issues/6719)) ([49d3837](https://github.com/langwatch/langwatch/commit/49d383739daad8021e4b1961d3dd78dc1386e4f7))
- **build:** anchor the npm pack filters, and run them where they can fail ([#7367](https://github.com/langwatch/langwatch/issues/7367)) ([422e73d](https://github.com/langwatch/langwatch/commit/422e73dc8e3e9d36ee868cfa835d6acd4f8f97bd))
- **ci:** exempt manifest-only diffs from deployment-impact-check ([#7294](https://github.com/langwatch/langwatch/issues/7294)) ([13d29a2](https://github.com/langwatch/langwatch/commit/13d29a298cf58904e3652954027ff39ff7caf67d))
- **clickhouse:** a tenant is a project or an organization, and the grants ledger's is the latter ([#7315](https://github.com/langwatch/langwatch/issues/7315)) ([e54316c](https://github.com/langwatch/langwatch/commit/e54316c8bf7c0f7eef96f9f91eec1d39a412b4f1))
- **clickhouse:** size the statement bound from the cluster, not one node ([fadc632](https://github.com/langwatch/langwatch/commit/fadc6321ddc9846a1208048b2c05994020b65a7c))
- **clickhouse:** size the statement bound from the whole cluster, not one node ([#7186](https://github.com/langwatch/langwatch/issues/7186)) ([fadc632](https://github.com/langwatch/langwatch/commit/fadc6321ddc9846a1208048b2c05994020b65a7c))
- **data-privacy:** catch vendor API keys the allow-list missed, and stop custom patterns erasing trace text ([#6816](https://github.com/langwatch/langwatch/issues/6816)) ([8668f2c](https://github.com/langwatch/langwatch/commit/8668f2c4eb2d5e9ed72b564caf7f6e0512bb4aee))
- **dev:** listen for signals before the check queue starts the command ([#7319](https://github.com/langwatch/langwatch/issues/7319)) ([1534967](https://github.com/langwatch/langwatch/commit/1534967eea570d095eb374dc005ac39ccf7776ac))
- **gateway:** retire every cap scoped to a key when the key is revoked ([#7338](https://github.com/langwatch/langwatch/issues/7338)) ([62c0a38](https://github.com/langwatch/langwatch/commit/62c0a38234282c54a3c1d176d260477b8ef500f0))
- **governance:** a walk id keeps the events pager's latest walk from losing to a stale failure ([#7346](https://github.com/langwatch/langwatch/issues/7346)) ([2afcf8a](https://github.com/langwatch/langwatch/commit/2afcf8a7f94486dcae55f6b26883139f6c586582))
- **governance:** a walk id keeps the events pager's latest walk from losing to a stale failure ([#7347](https://github.com/langwatch/langwatch/issues/7347)) ([2afcf8a](https://github.com/langwatch/langwatch/commit/2afcf8a7f94486dcae55f6b26883139f6c586582))
- **governance:** anthropic cost report amount is cents, not USD (was 100x) + four adjacent puller defects ([#7287](https://github.com/langwatch/langwatch/issues/7287)) ([31e76de](https://github.com/langwatch/langwatch/commit/31e76dea550c0a1f2dfff5873835f16f312a6843))
- **governance:** price warehouse compute by the hours it ran in ([#7324](https://github.com/langwatch/langwatch/issues/7324)) ([9e17af1](https://github.com/langwatch/langwatch/commit/9e17af170b98e83a61ff016749c1d973c30d1f5c))
- **governance:** the codex harvest caps a long conversation in one pass ([#7336](https://github.com/langwatch/langwatch/issues/7336)) ([4b032cd](https://github.com/langwatch/langwatch/commit/4b032cd4f617fb86565ae68613acedf07181ec7a))
- **langy:** accept model ids that contain a slash in the per-send override ([#7388](https://github.com/langwatch/langwatch/issues/7388)) ([2208659](https://github.com/langwatch/langwatch/commit/22086594e291db50ffecfaba3d8993c3606f39c5))
- **langy:** conversation-id adoption + persona and quality-suite fixes ([#7205](https://github.com/langwatch/langwatch/issues/7205)) ([97f10b6](https://github.com/langwatch/langwatch/commit/97f10b63591e55f792f4d83da1a1321f52c0d592))
- **lwql:** provision LWQL objects + key-map, coded lwql_unavailable (503), PostHog resolver removal ([#7194](https://github.com/langwatch/langwatch/issues/7194)) ([76aa940](https://github.com/langwatch/langwatch/commit/76aa9400044eb7483a275215225040d1520a64d9))
- **model-providers:** tell an unreadable credential apart from no credential ([#7369](https://github.com/langwatch/langwatch/issues/7369)) ([e04cd5d](https://github.com/langwatch/langwatch/commit/e04cd5d6d6b23e8b308e50017d9a54a5d909af58))
- **navigation:** an admin keeps the project they picked, and the menu opens where they are ([#7305](https://github.com/langwatch/langwatch/issues/7305)) ([d000913](https://github.com/langwatch/langwatch/commit/d000913010375f55feec3bae85484010d239dd79))
- **navigation:** keep the settings chrome, mark the open page, and stop icon-rail pages overflowing ([#7332](https://github.com/langwatch/langwatch/issues/7332)) ([828c6df](https://github.com/langwatch/langwatch/commit/828c6df3b287c036dfab9623d575c7ac97b26689))
- **navigation:** move the sidebar menu only when the open page is out of view ([#7386](https://github.com/langwatch/langwatch/issues/7386)) ([ab15043](https://github.com/langwatch/langwatch/commit/ab150433ccc030add6f22b02d5876630fc0f3325))
- **navigation:** open LLM Ops from Me, and line up the sidebar rules ([#7320](https://github.com/langwatch/langwatch/issues/7320)) ([4ba905a](https://github.com/langwatch/langwatch/commit/4ba905a0025fcbbf7432bd5c3a49df5802c68a2a))
- **ops:** the tenancy guard lets the enrollment rollout read itself again ([#7311](https://github.com/langwatch/langwatch/issues/7311)) ([fcabd05](https://github.com/langwatch/langwatch/commit/fcabd054cef4b75b69946f3b6e96baaa5aca2d7d))
- **scenarios:** a run that did not pass is a result, not an error — and stop the poll caching itself blind ([#7285](https://github.com/langwatch/langwatch/issues/7285)) ([d048b9c](https://github.com/langwatch/langwatch/commit/d048b9c91e34d317aa131be606c9a8634d9c9ec9))
- **scenarios:** bind the inlined SDK to the OpenTelemetry the app actually has ([#7314](https://github.com/langwatch/langwatch/issues/7314)) ([20b59f7](https://github.com/langwatch/langwatch/commit/20b59f702e1826942b41ef89007eddb0d889733f))
- **scenarios:** vendor scenario SDK 1.3.0 so the judge can fetch remote traces again ([#7327](https://github.com/langwatch/langwatch/issues/7327)) ([5996d7a](https://github.com/langwatch/langwatch/commit/5996d7abab166619d7ea535d7c00ac8bc0e738bb))
- **sdk-ts:** migrate to the OpenTelemetry logs SDK 0.221 API surface ([#7274](https://github.com/langwatch/langwatch/issues/7274)) ([dc60f46](https://github.com/langwatch/langwatch/commit/dc60f46eb127513e9af34a3a8f450b88df71417b))
- **tests:** give the typecheck-projects test the time its three compilers need ([#7390](https://github.com/langwatch/langwatch/issues/7390)) ([0418f81](https://github.com/langwatch/langwatch/commit/0418f810fb63bbcf8f94eb90a5ac0a63b2627644))
- **traces:** a trace's media is wherever its spans put it ([#7339](https://github.com/langwatch/langwatch/issues/7339)) ([3604d99](https://github.com/langwatch/langwatch/commit/3604d998b0439fea37eba8e81f44c06e02ce3c7d))
- **traces:** read the Vercel AI SDK's own metadata channel, and stop telling ADK users to break their trace ([#7368](https://github.com/langwatch/langwatch/issues/7368)) ([b7a94e6](https://github.com/langwatch/langwatch/commit/b7a94e61f46c1ad78e3a8e9db445f7b2120206f8))
- unify money type — string for USD amounts, BigInt for nanoUsd ([#7145](https://github.com/langwatch/langwatch/issues/7145)) ([f9febee](https://github.com/langwatch/langwatch/commit/f9febeedbcd6d4f971e53135bbb03a287758177e))
### Miscellaneous
- **deps-dev:** bump @anthropic-ai/claude-code ([aac07f5](https://github.com/langwatch/langwatch/commit/aac07f53aa0c7fa4cc988cb365865ff521a0922a))
- **deps-dev:** bump @anthropic-ai/claude-code from 2.1.226 to 2.1.228 in the anthropic group across 1 directory ([#7264](https://github.com/langwatch/langwatch/issues/7264)) ([aac07f5](https://github.com/langwatch/langwatch/commit/aac07f53aa0c7fa4cc988cb365865ff521a0922a))
- **deps-dev:** bump the vitest group across 1 directory with 4 updates ([#7262](https://github.com/langwatch/langwatch/issues/7262)) ([ed3fa5a](https://github.com/langwatch/langwatch/commit/ed3fa5af56fdbfa7092d2066e45b7d0c25444ffb))
- **deps:** bump chalk from 5.6.2 to 6.0.0 ([#6803](https://github.com/langwatch/langwatch/issues/6803)) ([82c62ea](https://github.com/langwatch/langwatch/commit/82c62eacb15d9a9ae33e5f4a14da82feaf1de033))
- **deps:** bump openai from 6.45.0 to 7.4.0 ([#6801](https://github.com/langwatch/langwatch/issues/6801)) ([f535170](https://github.com/langwatch/langwatch/commit/f535170cfae6651307b9a323dba367e8856b837b))
- **deps:** bump posthog-js from 1.415.1 to 1.415.5 in the posthog group across 1 directory ([#7265](https://github.com/langwatch/langwatch/issues/7265)) ([0d7ef1a](https://github.com/langwatch/langwatch/commit/0d7ef1ada943030d9eeb20640c60ae0fe6b83482))
- **deps:** bump posthog-js from 1.415.5 to 1.415.6 in the posthog group ([#7298](https://github.com/langwatch/langwatch/issues/7298)) ([013e6d9](https://github.com/langwatch/langwatch/commit/013e6d966e662008bcd0d2a3d51874fd0a0bcd60))
- **deps:** bump posthog-js in the posthog group ([013e6d9](https://github.com/langwatch/langwatch/commit/013e6d966e662008bcd0d2a3d51874fd0a0bcd60))
- **deps:** bump posthog-js in the posthog group across 1 directory ([0d7ef1a](https://github.com/langwatch/langwatch/commit/0d7ef1ada943030d9eeb20640c60ae0fe6b83482))
- **deps:** bump the aws-sdk group across 1 directory with 8 updates ([#7245](https://github.com/langwatch/langwatch/issues/7245)) ([9651510](https://github.com/langwatch/langwatch/commit/9651510c911e722063bc0e9a470620f5f94891ee))
- **deps:** bump the opentelemetry group across 1 directory with 25 updates ([#7296](https://github.com/langwatch/langwatch/issues/7296)) ([12615f1](https://github.com/langwatch/langwatch/commit/12615f1fc27dfc26063d4135f3f322f7c71c7f01))
- **security:** clear the dependabot alert backlog (278 open alerts triaged) ([#7195](https://github.com/langwatch/langwatch/issues/7195)) ([e5e64aa](https://github.com/langwatch/langwatch/commit/e5e64aa692c519eeebd5dc2e6b36c4263ec2191d))
### Documentation
- **adr:** record what the realtime voice broker actually shipped (ADR-097) ([#7361](https://github.com/langwatch/langwatch/issues/7361)) ([d11f585](https://github.com/langwatch/langwatch/commit/d11f585999637be909f0f2f6f1ff350f74b137d1))
- **agent-simulations:** group the connect pages, add the PM testing guide, and screenshot the flows ([#7175](https://github.com/langwatch/langwatch/issues/7175)) ([4e6780a](https://github.com/langwatch/langwatch/commit/4e6780accac07c3373a56aa5e3205ddfd9c95fee))
### Code Refactoring
- **api:** migrate hono-openapi 0.4.8 -> 1.3.1 ([#7286](https://github.com/langwatch/langwatch/issues/7286)) ([f814e42](https://github.com/langwatch/langwatch/commit/f814e42612ed86650dfd0014df3be70bf0e42b8c))
## [3.15.0](https://github.com/langwatch/langwatch/compare/langwatch@v3.14.0...langwatch@v3.15.0) (2026-08-19)
### ⚠ BREAKING CHANGES
- **lwql:** migration and code must ship in the same release. Prisma enumerates every Project column on ordinary project fetches, so a pod on the previous image against this schema raises 42703 application-wide.
### Features
- **cli:** create the HTTP agent on the spot when agent dev finds none ([#7156](https://github.com/langwatch/langwatch/issues/7156)) ([13b40a8](https://github.com/langwatch/langwatch/commit/13b40a8509a3eafbb49449fc58d1227f3359cccb))
- **navigation:** product switcher and icon rail behind one flag, gateway/governance URL moves ([#7076](https://github.com/langwatch/langwatch/issues/7076)) ([aadd411](https://github.com/langwatch/langwatch/commit/aadd4112e6a92e3a50f7db8b34a3f4dd376efefd))
- **ui:** closable toasts at the bottom center, and a compact trace drawer toolbar ([#7124](https://github.com/langwatch/langwatch/issues/7124)) ([073e915](https://github.com/langwatch/langwatch/commit/073e9157cf986f1e2fe2b6bee7de0b14937c41e7))
### Bug Fixes
- **automations:** navigate to the dataset drawer and back, instead of stacking one ([#7073](https://github.com/langwatch/langwatch/issues/7073)) ([807b72a](https://github.com/langwatch/langwatch/commit/807b72a717ffe53510d24a87d1ba70e0f75efcb3))
- **charts:** serialize stored-objects PVC consumers across upgrades ([#7196](https://github.com/langwatch/langwatch/issues/7196)) ([c373527](https://github.com/langwatch/langwatch/commit/c3735278a84624fc4e4624b709c740a78ad806ba))
- **coding-agent:** a row exists once the session says something, and its orchestrator can name it ([#7197](https://github.com/langwatch/langwatch/issues/7197)) ([52df144](https://github.com/langwatch/langwatch/commit/52df144ee06d86c25403ca094d2005c448a89799))
- **coding-agent:** terminal session viewer opens at the end, anchors totals, zero scroll jumps ([#7055](https://github.com/langwatch/langwatch/issues/7055)) ([1b149c5](https://github.com/langwatch/langwatch/commit/1b149c56b9128a3800a127d12c504dac9a5872f1))
- **governance:** anthropic_admin cost_report 400 — default too recent + log error body ([#7178](https://github.com/langwatch/langwatch/issues/7178)) ([7c291d6](https://github.com/langwatch/langwatch/commit/7c291d64987bb749ae6e6de440fa4853bec1c423))
- **scim:** a group PATCH that names no members no longer empties the group ([#7136](https://github.com/langwatch/langwatch/issues/7136)) ([fd51aca](https://github.com/langwatch/langwatch/commit/fd51acacbd7520cca285ca999dfda211eb51fa36))
### Miscellaneous
- **deps-dev:** bump @anthropic-ai/claude-code ([fbc7dcf](https://github.com/langwatch/langwatch/commit/fbc7dcf5f18f9be74ed7d1a390f922d3c9db7ea8))
- **deps-dev:** bump @anthropic-ai/claude-code from 2.1.202 to 2.1.226 in the anthropic group across 1 directory ([#6546](https://github.com/langwatch/langwatch/issues/6546)) ([fbc7dcf](https://github.com/langwatch/langwatch/commit/fbc7dcf5f18f9be74ed7d1a390f922d3c9db7ea8))
- **deps-dev:** bump @testing-library/jest-dom from 6.9.1 to 7.0.1 ([#6796](https://github.com/langwatch/langwatch/issues/6796)) ([6c61cc8](https://github.com/langwatch/langwatch/commit/6c61cc8442944f3124114cfd3396688f2b313426))
- **deps-dev:** bump mermaid from 11.16.0 to 11.16.1 ([#6658](https://github.com/langwatch/langwatch/issues/6658)) ([f437d17](https://github.com/langwatch/langwatch/commit/f437d1717e3d8aeb48ca664abbb9d6abf2e4d724))
- **deps-dev:** bump the types group across 1 directory with 2 updates ([#6789](https://github.com/langwatch/langwatch/issues/6789)) ([7be2d04](https://github.com/langwatch/langwatch/commit/7be2d04c798b46a29b9b5b046dbb28a1e6c369e7))
- **deps:** bump @opentelemetry/core from 2.9.0 to 2.10.0 ([#6663](https://github.com/langwatch/langwatch/issues/6663)) ([6fb4051](https://github.com/langwatch/langwatch/commit/6fb40515723afc2dc440982b44b47d940cde4cc8))
- **deps:** bump @react-email/components from 0.0.42 to 1.0.12 ([#6806](https://github.com/langwatch/langwatch/issues/6806)) ([378f9d9](https://github.com/langwatch/langwatch/commit/378f9d95a275f86d5ca882f5462c85b16b89b84f))
- **deps:** bump commander from 14.0.3 to 15.0.0 ([#6798](https://github.com/langwatch/langwatch/issues/6798)) ([bbaa2a2](https://github.com/langwatch/langwatch/commit/bbaa2a2d057c8568d97dcbb4ad860eaac15daebd))
- **deps:** bump js-yaml from 5.2.1 to 5.2.2 ([#6659](https://github.com/langwatch/langwatch/issues/6659)) ([accecef](https://github.com/langwatch/langwatch/commit/accecefbaca5ff6bf58bc919d5e194ddf326c9ed))
- **deps:** bump nanoid from 5.1.16 to 6.0.0 ([#6739](https://github.com/langwatch/langwatch/issues/6739)) ([addeee3](https://github.com/langwatch/langwatch/commit/addeee3c45b95b085d1d0cc7fdea839d1c29b94c))
- **deps:** bump pino-opentelemetry-transport from 3.0.0 to 4.0.2 ([#6802](https://github.com/langwatch/langwatch/issues/6802)) ([772e3b6](https://github.com/langwatch/langwatch/commit/772e3b6222d3089de678c674b39589d719a8d5d4))
- **deps:** bump react-router from 8.1.0 to 8.3.0 ([#6660](https://github.com/langwatch/langwatch/issues/6660)) ([dca5740](https://github.com/langwatch/langwatch/commit/dca57401e1a1d0d23dca82265dd4cf32f28a8ccc))
- **deps:** bump the posthog group across 1 directory with 2 updates ([#6547](https://github.com/langwatch/langwatch/issues/6547)) ([e7b0174](https://github.com/langwatch/langwatch/commit/e7b017434fe4501c04a89358c3c4e2be62d7d7c5))
- **release:** pin the platform at 3.15.0 ([#7201](https://github.com/langwatch/langwatch/issues/7201)) ([508ef67](https://github.com/langwatch/langwatch/commit/508ef67c52219e5797bba056cc1a8a07134238ed))
### Documentation
- **agent-simulations:** use the skill card on the connect-your-agent page ([#7155](https://github.com/langwatch/langwatch/issues/7155)) ([65307a1](https://github.com/langwatch/langwatch/commit/65307a16eebdc9c7dfbc97a0fd2f8de8d1683048))
- **claude-code:** document OTEL_LOG_ASSISTANT_RESPONSES flag ([#7193](https://github.com/langwatch/langwatch/issues/7193)) ([ed3feca](https://github.com/langwatch/langwatch/commit/ed3feca741530fc4419541c7260a1b03a1f34900))
### Code Refactoring
- **lwql:** rename governed-sql vocabulary to LWQL / LangWatchQL ([#7183](https://github.com/langwatch/langwatch/issues/7183)) ([37df9e4](https://github.com/langwatch/langwatch/commit/37df9e4a8edb04b2d7ba52df871c2f60b4b3b7af))
## [3.14.0](https://github.com/langwatch/langwatch/compare/langwatch@v3.13.0...langwatch@v3.14.0) (2026-08-18)
### Features
- **ai-gateway:** virtual keys can auto-expire, and every usage view links to its traces ([#7067](https://github.com/langwatch/langwatch/issues/7067)) ([2e21dc3](https://github.com/langwatch/langwatch/commit/2e21dc3b0529cd627cd7b245c0bec754a2b023c1))
- **api:** add v.rpc(), and fix an endpoint's success status at registration ([#7077](https://github.com/langwatch/langwatch/issues/7077)) ([b9245e8](https://github.com/langwatch/langwatch/commit/b9245e8325b3e459202e60d5467e2d99df4fcc1a))
- **authz:** stage B in place — the system backfills itself ([#7079](https://github.com/langwatch/langwatch/issues/7079)) ([4be01a9](https://github.com/langwatch/langwatch/commit/4be01a9f0cfeb77bb6e557491f8d0f16adf3c162))
- **authz:** unified authorization engine (ADR-092) - one registry, one resolver, every principal ([#6894](https://github.com/langwatch/langwatch/issues/6894)) ([13fdd91](https://github.com/langwatch/langwatch/commit/13fdd910fa7b4aceeb8ab9c7b06710ce4a33fe44))
- **coding-agent:** a Sessions screen, full-session terminal replay, and conversations back to their name ([#6815](https://github.com/langwatch/langwatch/issues/6815)) ([5ba2147](https://github.com/langwatch/langwatch/commit/5ba2147a79e3957c0ade19d64927c795f0567e42))
- **coding-agent:** capture codex conversations and repository identity by default ([#7069](https://github.com/langwatch/langwatch/issues/7069)) ([625ddb6](https://github.com/langwatch/langwatch/commit/625ddb69d626383659f5c6357351ceb1515f3b28))
- **gateway:** audio and realtime quantities reach billing, closing the zero-billed audio path ([#7021](https://github.com/langwatch/langwatch/issues/7021)) ([071ae32](https://github.com/langwatch/langwatch/commit/071ae32368a43ca44ab203221800e5f4e1c5f290))
- **gateway:** model tiers, routing policy editor, and the allowlist that aliases skipped ([#6923](https://github.com/langwatch/langwatch/issues/6923)) ([c4a988d](https://github.com/langwatch/langwatch/commit/c4a988d3ebf7c1f16d09c4257e547f668232c61e))
- **gateway:** stop minting a durable process row per LLM call ([#7083](https://github.com/langwatch/langwatch/issues/7083)) ([d3f8503](https://github.com/langwatch/langwatch/commit/d3f85034defc4b05566880857a0008bff1a5b834))
- **github:** keep pull request history, add a GitHub Enterprise Server host, document restricted networks ([#7047](https://github.com/langwatch/langwatch/issues/7047)) ([e7e3346](https://github.com/langwatch/langwatch/commit/e7e33469f1b5158d62f35d8f7cced8d0fc4c7647))
- **governance:** pulled provider usage as priced, attributed cost in the shared ledger (ADR-088) ([#6649](https://github.com/langwatch/langwatch/issues/6649)) ([cae9c39](https://github.com/langwatch/langwatch/commit/cae9c39cf764f0623e0ae4c1e9eb0221c6f46ce0))
- **governed-sql:** governed SQL workbench — full stack (supersedes [#6486](https://github.com/langwatch/langwatch/issues/6486)/[#6861](https://github.com/langwatch/langwatch/issues/6861)/[#6579](https://github.com/langwatch/langwatch/issues/6579)/[#6678](https://github.com/langwatch/langwatch/issues/6678)/[#6690](https://github.com/langwatch/langwatch/issues/6690)/[#6705](https://github.com/langwatch/langwatch/issues/6705)/[#6709](https://github.com/langwatch/langwatch/issues/6709)) ([#7014](https://github.com/langwatch/langwatch/issues/7014)) ([7007d9b](https://github.com/langwatch/langwatch/commit/7007d9bd55b426be89c96ea798447918b5b6484a))
- **haven:** machine-wide resource governance for parallel agents ([#6623](https://github.com/langwatch/langwatch/issues/6623)) ([2cf718b](https://github.com/langwatch/langwatch/commit/2cf718b2b5d5cdf936b825e82403906a3e37f37f))
- **haven:** reap leaked testcontainers and tighten shared-resource defaults ([#6944](https://github.com/langwatch/langwatch/issues/6944)) ([269a56e](https://github.com/langwatch/langwatch/commit/269a56ec79295beabd3f7dcfc9d8a76df4bdfc82))
- **haven:** revamp the hub — whole-machine RAM, worktrees, cleanup, reaping monitor ([#6989](https://github.com/langwatch/langwatch/issues/6989)) ([d8cac76](https://github.com/langwatch/langwatch/commit/d8cac76167c002c0fcdb377d8fadda4dff436a49))
- **langy:** key-authed Langy turn surface, behind its own rollback switch ([#6821](https://github.com/langwatch/langwatch/issues/6821)) ([#6844](https://github.com/langwatch/langwatch/issues/6844)) ([2ae67f8](https://github.com/langwatch/langwatch/commit/2ae67f8c5c7e59d04f2321685ef62f1f883937bc))
- **observability:** continuous profiling with Pyroscope ([#7000](https://github.com/langwatch/langwatch/issues/7000)) ([ad3ff83](https://github.com/langwatch/langwatch/commit/ad3ff83109eb02fcba00f99d90f29e82fabd9982))
- **ops:** discard dead letters, redrive in bulk, and record why each one died ([#7127](https://github.com/langwatch/langwatch/issues/7127)) ([e393096](https://github.com/langwatch/langwatch/commit/e393096c51b5200cb71f7db56c2f00958b95ec06))
- **ops:** give the event-sourcing page a sidebar and dead letters a home ([#7085](https://github.com/langwatch/langwatch/issues/7085)) ([3fb479d](https://github.com/langwatch/langwatch/commit/3fb479d60ba47e37b6b355dacae7a4db13dcb9a4))
- **ops:** one writer publishes the ops snapshot every pod serves, and the scheduler gets controls (ADR-090, ADR-091) ([#6859](https://github.com/langwatch/langwatch/issues/6859)) ([37edf25](https://github.com/langwatch/langwatch/commit/37edf25a79de8fba9489488cc4c2c3c18244a71d))
- project-scoped coding-agent instrumentation, lazy virtual keys, CLI help cleanup ([#7057](https://github.com/langwatch/langwatch/issues/7057)) ([0f2c353](https://github.com/langwatch/langwatch/commit/0f2c353fa1ac59ac963f8b95fce7a1e43ba6edbe))
- **scenarios:** add maxTurns/minTurns to scenario editor ([#6932](https://github.com/langwatch/langwatch/issues/6932)) ([986ed11](https://github.com/langwatch/langwatch/commit/986ed110de6169c8db36b1386463255f4e120878))
- **scenarios:** judge on remote traces with per-turn propagation and a local dev tunnel ([#7070](https://github.com/langwatch/langwatch/issues/7070)) ([56689a3](https://github.com/langwatch/langwatch/commit/56689a327857169ce0d458a08f9e105ef28e182b))
- **scenarios:** open the parameters editor with a row ready to fill ([#7045](https://github.com/langwatch/langwatch/issues/7045)) ([5105bbf](https://github.com/langwatch/langwatch/commit/5105bbf2ebc1933d99bf1fe8a8d6885adb98642a))
- **scenarios:** scenario run parameters and http secret references ([#6906](https://github.com/langwatch/langwatch/issues/6906)) ([a21b7a1](https://github.com/langwatch/langwatch/commit/a21b7a15f0a98e6a5a4754eea0b8a33729561d24))
- **simulations:** run simulation execution on the process-manager substrate (ADR-094) ([#6946](https://github.com/langwatch/langwatch/issues/6946)) ([122b1d7](https://github.com/langwatch/langwatch/commit/122b1d7790be4eab8b38335172c63cf85cad5182))
- sync wait mode for langy turns + gateway provider routing fixes ([#7006](https://github.com/langwatch/langwatch/issues/7006)) ([d826d5a](https://github.com/langwatch/langwatch/commit/d826d5af905817f51bc61229c9caef88c91c0152))
- **traces:** extract AWS Bedrock Converse payloads into trace I/O ([#6984](https://github.com/langwatch/langwatch/issues/6984)) ([a63e703](https://github.com/langwatch/langwatch/commit/a63e7034b389b07f767efd339bf055decb1b349b))
- **traces:** remove the legacy trace UI ([#6902](https://github.com/langwatch/langwatch/issues/6902)) ([c2ee570](https://github.com/langwatch/langwatch/commit/c2ee5708c78ea9733bb67b321201d98685dec24d))
- **webhooks:** deliver to SQS as a per-endpoint destination ([#6925](https://github.com/langwatch/langwatch/issues/6925)) ([4c30bf3](https://github.com/langwatch/langwatch/commit/4c30bf3595b40d0d9cd5b04a936639f3ed8d9597))
### Bug Fixes
- **agents:** test an HTTP agent through the engine that runs it ([#6942](https://github.com/langwatch/langwatch/issues/6942)) ([251bf0c](https://github.com/langwatch/langwatch/commit/251bf0c23edbf89120372715dc663cb17e5ad428))
- **ai-gateway:** a provider-native route decides its own vendor ([#7049](https://github.com/langwatch/langwatch/issues/7049)) ([5945b0c](https://github.com/langwatch/langwatch/commit/5945b0c413a667a4076b0d5a3c5f286ca4eae2ab))
- **ai-gateway:** provider access allows scope-reachable providers and the gateway says why a request was blocked ([#7063](https://github.com/langwatch/langwatch/issues/7063)) ([edfba78](https://github.com/langwatch/langwatch/commit/edfba7850fe0ff25485ce214a54f09f3df5709df))
- **aigateway:** make graceful shutdown actually happen, and give a stream the budget it is promised ([#7003](https://github.com/langwatch/langwatch/issues/7003)) ([f4258df](https://github.com/langwatch/langwatch/commit/f4258dfd62f7e667329c005121d32f9c28b9b6ac))
- **app:** stop the nested-update storm that wedges navigation after a prompt chat (React [#185](https://github.com/langwatch/langwatch/issues/185)) ([#6931](https://github.com/langwatch/langwatch/issues/6931)) ([5ad9b57](https://github.com/langwatch/langwatch/commit/5ad9b57f897b16e4948cd8e585e2f2541e3070d5))
- **ci:** re-arm a dead ast-grep rule and repoint stale post-restructure paths ([#6892](https://github.com/langwatch/langwatch/issues/6892)) ([4a88619](https://github.com/langwatch/langwatch/commit/4a88619d46f30f14212d8e366c83855030249db4))
- **ci:** treat an allow-list checkout as already lean ([#7102](https://github.com/langwatch/langwatch/issues/7102)) ([576ebfe](https://github.com/langwatch/langwatch/commit/576ebfe8f6d9abbff01c6315efb0a9c6c841cdbb))
- **cli:** make scenario run --wait count only its own batch ([#7144](https://github.com/langwatch/langwatch/issues/7144)) ([1a0fd66](https://github.com/langwatch/langwatch/commit/1a0fd66208c63656c2762659e3b02b98382a8449))
- **coding-agent:** link a pull request the moment GitHub announces it ([#6849](https://github.com/langwatch/langwatch/issues/6849)) ([411ccc4](https://github.com/langwatch/langwatch/commit/411ccc4199d3b0fa1d0d885b9ccbaaf994ccd215))
- **costs:** let the hand-written overlay override a wrong generated price ([#7046](https://github.com/langwatch/langwatch/issues/7046)) ([17d7e9a](https://github.com/langwatch/langwatch/commit/17d7e9ae7226421e9793bef9f3797d70a19e4014))
- **costs:** unbreak the price guard, and correct the gpt-realtime-2 text output rate ([#7058](https://github.com/langwatch/langwatch/issues/7058)) ([8168415](https://github.com/langwatch/langwatch/commit/8168415ceeb1ee7c5187d075601220f6a1bd90c3))
- **data-privacy:** keep identifier-shaped attribute values out of phone redaction ([#7017](https://github.com/langwatch/langwatch/issues/7017)) ([53471ed](https://github.com/langwatch/langwatch/commit/53471ed639bbc1dcb3f7977edff4625978c23cb1))
- **errors:** recognise a validation failure whichever zod threw it ([#7106](https://github.com/langwatch/langwatch/issues/7106)) ([689d1aa](https://github.com/langwatch/langwatch/commit/689d1aacfee9e409700d3fb7d75c6f3000beea7d))
- **event-sourcing:** confirm worker deaths before parking a group ([#6922](https://github.com/langwatch/langwatch/issues/6922)) ([a6cd99a](https://github.com/langwatch/langwatch/commit/a6cd99a0df08798eeafc81bfb942ae41c37242c8))
- **experiments:** let a row the judge could not settle explain itself ([#6928](https://github.com/langwatch/langwatch/issues/6928)) ([853b1a1](https://github.com/langwatch/langwatch/commit/853b1a1343adce6edcf84c8a3d7e418f3594701a))
- **governance:** replace hardcoded white backgrounds with theme tokens in ingestion sources drawers ([#7161](https://github.com/langwatch/langwatch/issues/7161)) ([c32644c](https://github.com/langwatch/langwatch/commit/c32644c26dc9a228ea3fa3ce4aa8ae007b2f612f))
- **lint:** let Biome run from the repo root ([#7108](https://github.com/langwatch/langwatch/issues/7108)) ([16d5c4f](https://github.com/langwatch/langwatch/commit/16d5c4f82b4b3187490dbfba957cef24bb3c5faf))
- **model-providers:** classify credential fields fail-closed ([#7050](https://github.com/langwatch/langwatch/issues/7050)) ([481a7b5](https://github.com/langwatch/langwatch/commit/481a7b5667741b03aef5ce700f72b786ffa8889c))
- **model-providers:** one default-models config per scope, wide-to-narrow inherit, no 500 on save ([#7002](https://github.com/langwatch/langwatch/issues/7002)) ([66612ec](https://github.com/langwatch/langwatch/commit/66612ec6b848445852cfa9db0b8689f7a1fdb9b8))
- **observability:** bound the reads and level the logs that hid a six-day fleet crash ([#7125](https://github.com/langwatch/langwatch/issues/7125)) ([54cdbfc](https://github.com/langwatch/langwatch/commit/54cdbfc066707d8cd7fb9df361a3623a7dcbf99b))
- **observability:** keep request bytes out of the logs, and name an uncaused 5xx ([#6992](https://github.com/langwatch/langwatch/issues/6992)) ([98ac6a5](https://github.com/langwatch/langwatch/commit/98ac6a5224c00bc9a82d43efc93fe1f34a40f7a4))
- **ops:** close the type-argument list that made the dead-letter read a comparison ([#7095](https://github.com/langwatch/langwatch/issues/7095)) ([60fa445](https://github.com/langwatch/langwatch/commit/60fa445a3e320bc7d281d3f650ee3fc4a7d3cea6))
- **ops:** drop the namespace the dead-letter block stopped using ([#7104](https://github.com/langwatch/langwatch/issues/7104)) ([b22a34b](https://github.com/langwatch/langwatch/commit/b22a34b0035093dee9daadaf6cd1394d8d07f89f))
- **ops:** register the /ops/migrations route so the sidebar link opens ([#7113](https://github.com/langwatch/langwatch/issues/7113)) ([cb31fec](https://github.com/langwatch/langwatch/commit/cb31fecf0a64d5e3401ce0c4f75f0b9f75a1a9e1))
- **process-manager:** outbox lease hardening: attempts at lease, loud fencing, batch-tail shedding, stuck-drain watchdog ([#7037](https://github.com/langwatch/langwatch/issues/7037)) ([8a240e0](https://github.com/langwatch/langwatch/commit/8a240e08ee8fa5098156028e821aa24b2a7b4494))
- **readme:** repair nine dead links and check them in CI ([#6878](https://github.com/langwatch/langwatch/issues/6878)) ([3d7448b](https://github.com/langwatch/langwatch/commit/3d7448b21a33568b41d61fcdd9fc92bf9bf48414))
- **redis:** close the ownership guard's blind spots and stop silent auth writes ([#6957](https://github.com/langwatch/langwatch/issues/6957)) ([a195fa6](https://github.com/langwatch/langwatch/commit/a195fa66a803b9a788869ae292f54988ee3d80ec))
- **scim:** read PATCH operation names without regard to case, so Entra can offboard ([#7121](https://github.com/langwatch/langwatch/issues/7121)) ([5fa3602](https://github.com/langwatch/langwatch/commit/5fa36026c517f105d987de4a51074c1b72433e63))
- **sso:** count Auth0 SAML logins as verified emails so account linking works ([#7008](https://github.com/langwatch/langwatch/issues/7008)) ([2803659](https://github.com/langwatch/langwatch/commit/28036594a0357ed9dbaa4421271fcf42e256681d))
### Miscellaneous
- **deps:** bump the aws-sdk group across 1 directory with 6 updates ([#7087](https://github.com/langwatch/langwatch/issues/7087)) ([4d34fae](https://github.com/langwatch/langwatch/commit/4d34faefcdb4f690178472249dda053ea04bc1a6))
- **deps:** bump the react group across 1 directory with 2 updates ([#7088](https://github.com/langwatch/langwatch/issues/7088)) ([124b087](https://github.com/langwatch/langwatch/commit/124b08708c270d6d039497a55764cfc802529a25))
- **deps:** upgrade Prisma to 7.9.1 and tRPC to 11 (TanStack Query 5) ([#6697](https://github.com/langwatch/langwatch/issues/6697)) ([5f3122a](https://github.com/langwatch/langwatch/commit/5f3122a525a404c4ff136337dfeec81bbd4fdc9e))
- **scenarios:** re-vendor @langwatch/scenario 1.2.0 ([#7135](https://github.com/langwatch/langwatch/issues/7135)) ([13beae9](https://github.com/langwatch/langwatch/commit/13beae9c7437d91f8a22973dfdcd23eef9c23350))
- sync model registry ([c854b70](https://github.com/langwatch/langwatch/commit/c854b70a971dcb3520760319a0965552b7a69083))
- sync model registry ([5e0a8ad](https://github.com/langwatch/langwatch/commit/5e0a8ad44c017fe81ff75abea6eb6874e8e08a9e))
- sync model registry (436 models) ([#7059](https://github.com/langwatch/langwatch/issues/7059)) ([5e0a8ad](https://github.com/langwatch/langwatch/commit/5e0a8ad44c017fe81ff75abea6eb6874e8e08a9e))
- sync model registry (441 models) ([#7082](https://github.com/langwatch/langwatch/issues/7082)) ([c854b70](https://github.com/langwatch/langwatch/commit/c854b70a971dcb3520760319a0965552b7a69083))
### Documentation
- **adr:** one automation flow with a subject choice, and Slack as a project integration (ADR-093) ([#6901](https://github.com/langwatch/langwatch/issues/6901)) ([4f68a37](https://github.com/langwatch/langwatch/commit/4f68a37660ef271c36d9930d77094ff90a12b4fc))
- **adr:** record the realtime voice session broker decision (ADR-097) ([#7019](https://github.com/langwatch/langwatch/issues/7019)) ([900e657](https://github.com/langwatch/langwatch/commit/900e65785335dd09a4607735a9082af98c1bdf31))
- **logging:** identifiers are logged raw, and the linters now agree ([#7093](https://github.com/langwatch/langwatch/issues/7093)) ([523e07e](https://github.com/langwatch/langwatch/commit/523e07e8c59cc0fa172d9ea0ab65617542be096b))
- rewrite marketing language in simple technical English ([#7020](https://github.com/langwatch/langwatch/issues/7020)) ([68faaf5](https://github.com/langwatch/langwatch/commit/68faaf577bf9623c7ffbf8e1a8a500deabf3e036))
- **scim:** say plainly that an unrecognized PATCH operation name is rejected ([#7130](https://github.com/langwatch/langwatch/issues/7130)) ([d72b184](https://github.com/langwatch/langwatch/commit/d72b1840987e34fa6c7529644afb079f2c37022f))
### Code Refactoring
- **clickhouse:** a client class, and a cluster name on every failure ([#6947](https://github.com/langwatch/langwatch/issues/6947)) ([3377d12](https://github.com/langwatch/langwatch/commit/3377d1267122085f3d73fbd3f9a27af0e55aab38))
- **event-sourcing:** retire the reactor vocabulary — post-event work is subscribers and process managers (ADR-098) ([#6956](https://github.com/langwatch/langwatch/issues/6956)) ([8609798](https://github.com/langwatch/langwatch/commit/8609798ba36387596a62f8c513fd76660bd500dc))
- **ops:** answer each operator question on one surface ([#7099](https://github.com/langwatch/langwatch/issues/7099)) ([8f8ee6b](https://github.com/langwatch/langwatch/commit/8f8ee6b7cd50514c2639d672d7bf8f501d709c04))
- **redis:** make Redis an owned client, not a module singleton ([#6829](https://github.com/langwatch/langwatch/issues/6829)) ([2f9e913](https://github.com/langwatch/langwatch/commit/2f9e913b7923972760f443712accc13f81975499))
- **typescript:** move the workspace to TypeScript 7, and stop a typecheck filling a 9 GiB ceiling ([#7081](https://github.com/langwatch/langwatch/issues/7081)) ([f79b748](https://github.com/langwatch/langwatch/commit/f79b74898b6a921823ebd32c57ac2295d79e6113))
## [3.13.0](https://github.com/langwatch/langwatch/compare/langwatch@v3.12.0...langwatch@v3.13.0) (2026-08-13)
### ⚠ BREAKING CHANGES
- **sdk-go:** the provider middlewares now capture input and output content by default (langwatch.DataCaptureAll), and the opt-in WithCaptureInput() / WithCaptureOutput() options are removed. An existing user who upgrades without passing WithDataCapture will begin exporting full prompts and completions, which routinely contain end-user PII. Opt out with WithDataCapture(langwatch.DataCaptureNone).
### Features
- **automations:** retention, overflow aggregation and plan-tiered action ceilings for the process manager ([#6754](https://github.com/langwatch/langwatch/issues/6754)) ([811b38e](https://github.com/langwatch/langwatch/commit/811b38ee55c328e4d0b8efe3b526e233b6d95932))
- **billing:** collect annual event overage during the year via billing thresholds ([#6609](https://github.com/langwatch/langwatch/issues/6609)) ([ef57d0e](https://github.com/langwatch/langwatch/commit/ef57d0e65cd754204eaad7676d80b70d4cc4e0ff))
- **coding-agent:** bring the pull requests page to GitHub parity with sorting, search, date filter and numbered pagination ([#6773](https://github.com/langwatch/langwatch/issues/6773)) ([81d539c](https://github.com/langwatch/langwatch/commit/81d539c649ae00531b058cf18fe59b7d7756d4a6))
- **gateway:** routing null glyph, per-key budget bar, one-line budget scopes ([#6421](https://github.com/langwatch/langwatch/issues/6421)) ([5ea01b7](https://github.com/langwatch/langwatch/commit/5ea01b75e576dc2919b1c189519001a3ae6cefc8))
- **gateway:** view traces from a virtual key, and teams/projects management in both SDKs ([#6807](https://github.com/langwatch/langwatch/issues/6807)) ([2c55fe3](https://github.com/langwatch/langwatch/commit/2c55fe30ee1dbd89fd2877cede5af645fe49889e))
- **haven:** seed a play sandbox from the shared preset registry ([#6903](https://github.com/langwatch/langwatch/issues/6903)) ([390b1a1](https://github.com/langwatch/langwatch/commit/390b1a1a7cf2d4f1bbdfe3fdce37d0815ce566a4))
- **management-api:** full management API surface with CLI, SCIM reference and self-hosted provisioning ([#6720](https://github.com/langwatch/langwatch/issues/6720)) ([5ebf89d](https://github.com/langwatch/langwatch/commit/5ebf89d6f474590f81fbb5c72d2c64dfcf653a53))
- **otlp:** serve the paths a misconfigured exporter posts to ([#6822](https://github.com/langwatch/langwatch/issues/6822)) ([a78fd16](https://github.com/langwatch/langwatch/commit/a78fd16a667f059da8c3af4e164f8de7d5a100c9))
- **scenarios:** prompt-agent input binding + judge transport (Simulations P0, [#6594](https://github.com/langwatch/langwatch/issues/6594)) ([#6607](https://github.com/langwatch/langwatch/issues/6607)) ([964fe4f](https://github.com/langwatch/langwatch/commit/964fe4f524f8254396710e29363c5a4174cea724))
- **sdk-go:** native instrumentations, REST client, and gen_ai-first telemetry ([#4998](https://github.com/langwatch/langwatch/issues/4998)) ([893de7f](https://github.com/langwatch/langwatch/commit/893de7f740d56517ab835ece936b609bf6c81a11))
- **sdk:** judge n-way target comparisons from the experiment SDKs ([#6863](https://github.com/langwatch/langwatch/issues/6863)) ([9c34d3c](https://github.com/langwatch/langwatch/commit/9c34d3c37418ecf6d29b0e521d66fca0661a45d8))
- **stored-objects:** sign in to Azure Blob without a shared account key ([#6181](https://github.com/langwatch/langwatch/issues/6181)) ([fbb6c36](https://github.com/langwatch/langwatch/commit/fbb6c369955bb6fd75d6544e0bec5edd52b3dd76))
### Bug Fixes
- **aigateway:** repoint controlPlaneRoot after ADR-076, and make the skip-guard unfakeable ([#6898](https://github.com/langwatch/langwatch/issues/6898)) ([c1a4014](https://github.com/langwatch/langwatch/commit/c1a4014ad5f216dfcc56e03318a8d77d64acf0d1))
- **analytics:** keep Attributes-backed metrics in scope in the dedup CTE ([#6819](https://github.com/langwatch/langwatch/issues/6819)) ([b262f98](https://github.com/langwatch/langwatch/commit/b262f98a82c773afea11fe188933c6d6667cfd36))
- **automations:** decode middle-dot in metadata filter keys for in-memory matching ([#6870](https://github.com/langwatch/langwatch/issues/6870)) ([5074917](https://github.com/langwatch/langwatch/commit/507491763b4feb11037ab8217f9de0ec07cb04d5))
- **billing:** seat preview on flexible billing, honest unlinked-subscription errors ([#6639](https://github.com/langwatch/langwatch/issues/6639)) ([fe6b6f7](https://github.com/langwatch/langwatch/commit/fe6b6f7ca10bd2cc785abe962ee1ea83f9fd9053))
- **charts:** stop the install notes reading cluster-scoped resources ([#6842](https://github.com/langwatch/langwatch/issues/6842)) ([2e64969](https://github.com/langwatch/langwatch/commit/2e649694bd4e84eae85134cde5ea20a49edc34e5))
- **ci:** keep integration test files serial so the budget rollup replay cannot collide ([#6581](https://github.com/langwatch/langwatch/issues/6581)) ([e36f51f](https://github.com/langwatch/langwatch/commit/e36f51f9fb143d0b9cb58d73c7b257b15684175e))
- **clickhouse:** stop metering tables that have no _size_bytes column ([#6453](https://github.com/langwatch/langwatch/issues/6453)) ([ad9d8d0](https://github.com/langwatch/langwatch/commit/ad9d8d09c9003574636eb8cf3e85fbc78582dbef))
- **clickhouse:** three audit defects — dropped EventVersion, decimal money sums, unbounded events read ([#6627](https://github.com/langwatch/langwatch/issues/6627)) ([984dd6d](https://github.com/langwatch/langwatch/commit/984dd6d3dddef5d053a99698544d6422feebbf23))
- **cli:** drop billing and cadence wording from wrapper prompts ([#6760](https://github.com/langwatch/langwatch/issues/6760)) ([39cb437](https://github.com/langwatch/langwatch/commit/39cb4377636cd2f8523afda7bc2fd0d1d81df9be))
- **evaluations:** a verdict only counts when the evaluation actually ran (passed-without-status family) ([#6838](https://github.com/langwatch/langwatch/issues/6838)) ([ee79650](https://github.com/langwatch/langwatch/commit/ee7965024d586c885883725348d2d8e3bf9a4507))
- **evaluations:** stop display and export surfaces from inventing verdicts (no-verdict family) ([#6839](https://github.com/langwatch/langwatch/issues/6839)) ([15c56f3](https://github.com/langwatch/langwatch/commit/15c56f3e666668b8fd842b5a177d538a7dd95ba6))
- **experiments:** a workflow agent target offers every result its workflow declares ([#6921](https://github.com/langwatch/langwatch/issues/6921)) ([26e74e4](https://github.com/langwatch/langwatch/commit/26e74e4385583b0b5dbe11991729ba844bf5726d))
- **licensing:** an enterprise plan carries its entitlements however it was resolved ([#6847](https://github.com/langwatch/langwatch/issues/6847)) ([334219b](https://github.com/langwatch/langwatch/commit/334219b5a9000dc9a3e41966ae2912901b7222df))
- **licensing:** the subscription page honors what a held plan actually grants ([#6854](https://github.com/langwatch/langwatch/issues/6854)) ([a883aa1](https://github.com/langwatch/langwatch/commit/a883aa1e89af3dfcd35ae751e973ccf5372d6486))
- **mcp:** make /sse transport work across replicas and harden the OAuth path ([#6860](https://github.com/langwatch/langwatch/issues/6860)) ([1c0b060](https://github.com/langwatch/langwatch/commit/1c0b060fc2fca6f105442229db969e5ac2723fd0))
- **observability:** let a gateway log join its trace, and a JS log name its build ([#6702](https://github.com/langwatch/langwatch/issues/6702)) ([23bdcad](https://github.com/langwatch/langwatch/commit/23bdcad87635e6d23b5f4d7764d313b28525ddb7))
- **observability:** make the prod error signal mean something ([#6687](https://github.com/langwatch/langwatch/issues/6687)) ([8f9a39b](https://github.com/langwatch/langwatch/commit/8f9a39b352853212f6a25065da5c72e29f80cdef))
- **ops:** publish the pending-drift metric so every collector reports the same figure ([#4703](https://github.com/langwatch/langwatch/issues/4703)) ([#6669](https://github.com/langwatch/langwatch/issues/6669)) ([78432b6](https://github.com/langwatch/langwatch/commit/78432b6cec894aaa0e7266b08399ab00fb307473))
- **python-sdk:** a refused call keeps the platform's own explanation ([#6837](https://github.com/langwatch/langwatch/issues/6837)) ([2576dbd](https://github.com/langwatch/langwatch/commit/2576dbd96617f44c6bf2945e65c360ec54425c55))
- **release:** a pin no longer exempts a break from the scope guard ([#6919](https://github.com/langwatch/langwatch/issues/6919)) ([49209b1](https://github.com/langwatch/langwatch/commit/49209b1bb3f5daf5aea85a725a9c866443eaff1e))
- **scenarios:** move orphan-reconciler integration test to platform/app ([#6893](https://github.com/langwatch/langwatch/issues/6893)) ([665789a](https://github.com/langwatch/langwatch/commit/665789a6ba763354e83a88d7c326464ed2b9b324))
- **scenarios:** never show a runner crash dump as the run's verdict ([#6817](https://github.com/langwatch/langwatch/issues/6817)) ([d7f04d1](https://github.com/langwatch/langwatch/commit/d7f04d1026f869529484998b599ddc6633acb814))
- **scenarios:** re-vendor @langwatch/scenario 1.1.0 for UI-triggered runs ([#6890](https://github.com/langwatch/langwatch/issues/6890)) ([49ce740](https://github.com/langwatch/langwatch/commit/49ce74017b8809e07955e58086bbbd7b3966fdc7))
- **scenarios:** retry judge tool calls with reasoning off on provider rejection ([#6714](https://github.com/langwatch/langwatch/issues/6714)) ([2a8309d](https://github.com/langwatch/langwatch/commit/2a8309d2e73bccaa3f2a9ecce491b02f4fb8fc37))
- ship the ADR-069 R2 producer flip and bound the graph-trigger query that was killing workers ([#6814](https://github.com/langwatch/langwatch/issues/6814)) ([60b37f2](https://github.com/langwatch/langwatch/commit/60b37f2f7f75a8b32312b954563248f616605b26))
- **tests:** repair mock specifiers that silently resolved to nothing ([#6586](https://github.com/langwatch/langwatch/issues/6586)) ([0c378d2](https://github.com/langwatch/langwatch/commit/0c378d2d1f7d6356b0713e03f75f615dad6cd6cc))
- **trace-processing:** fold the trace-side correlation appends ([#6827](https://github.com/langwatch/langwatch/issues/6827)) ([a098b46](https://github.com/langwatch/langwatch/commit/a098b469d84e32143af87272c78625c93fb4c9fd))
- **traces:** reject pageOffset, and pin the updated-axis scroll to a snapshot ([#6812](https://github.com/langwatch/langwatch/issues/6812)) ([e490008](https://github.com/langwatch/langwatch/commit/e49000891dbd58fe0e033230dfc83c380e1b1615))
- **traces:** route the edge spool through the shared storage layer ([#6253](https://github.com/langwatch/langwatch/issues/6253)) ([558015a](https://github.com/langwatch/langwatch/commit/558015ae7071e276c726e4d93487717ceecc84c6))
- **traces:** stop a deleted span reaching the dataset, and show removals where the reader can see them ([#6855](https://github.com/langwatch/langwatch/issues/6855)) ([62418fb](https://github.com/langwatch/langwatch/commit/62418fb8b1549c1a3515eb56bbb082ce6f15a4cf))
- **typescript-sdk:** stop the observability SDK exiting its host on a signal ([#6826](https://github.com/langwatch/langwatch/issues/6826)) ([7a4a8b8](https://github.com/langwatch/langwatch/commit/7a4a8b80398b234d4f040a78eb5b9760f6ce308b))
- **workers:** drain the queue before closing ClickHouse on shutdown ([#6825](https://github.com/langwatch/langwatch/issues/6825)) ([78621a7](https://github.com/langwatch/langwatch/commit/78621a74586d55c3e470386cbd4b6a776e793bae))
### Miscellaneous
- **deps-dev:** bump jsdom from 29.1.1 to 30.0.1 ([#6800](https://github.com/langwatch/langwatch/issues/6800)) ([1826af0](https://github.com/langwatch/langwatch/commit/1826af056807f48eddd2e74528c935de687901fd))
- **deps-dev:** bump vitest-mock-extended from 4.0.0 to 5.1.1 ([#6795](https://github.com/langwatch/langwatch/issues/6795)) ([181f965](https://github.com/langwatch/langwatch/commit/181f9652753f066fa2ac9e6fee775cd8cb806056))
- **release:** restore the platform pin to 3.13.0 ([#6918](https://github.com/langwatch/langwatch/issues/6918)) ([910392a](https://github.com/langwatch/langwatch/commit/910392accacdee245ec1f1dfc4297e410f276ffc))
### Documentation
- **adr:** events are appended, staged payloads are plain DTOs (ADR-089) ([#6626](https://github.com/langwatch/langwatch/issues/6626)) ([53169a4](https://github.com/langwatch/langwatch/commit/53169a44af03808447434ade52f6a863ec5f7c26))
- **mcp:** lead with Claude Desktop and use /sse for remote setup ([#6875](https://github.com/langwatch/langwatch/issues/6875)) ([609e9d9](https://github.com/langwatch/langwatch/commit/609e9d913e39b46c0f70388de5be4a6e830483d5))
### Code Refactoring
- **billing:** route webhook notifications through a bestEffort wrapper ([#5591](https://github.com/langwatch/langwatch/issues/5591)) ([#6573](https://github.com/langwatch/langwatch/issues/6573)) ([b22c14f](https://github.com/langwatch/langwatch/commit/b22c14f73789eeaa2915a1e375874aa0047178cf))
## [3.12.0](https://github.com/langwatch/langwatch/compare/langwatch@v3.11.0...langwatch@v3.12.0) (2026-08-10)
### Features
- **gateway:** store the trace destination at creation instead of deriving it per read ([#6769](https://github.com/langwatch/langwatch/issues/6769)) ([b65e6f3](https://github.com/langwatch/langwatch/commit/b65e6f3957676df55ba366f0698c9f710b6e5db1))
### Bug Fixes
- **members:** desired-state access edits, group-aware guards, Lite Member rows store the truth ([#6698](https://github.com/langwatch/langwatch/issues/6698)) ([aa3ad21](https://github.com/langwatch/langwatch/commit/aa3ad2192645e91896b39d97b7d7f5bc94d1c22d))
### Code Refactoring
- **aigateway:** one auth cache tier, and a conditional config refresh ([#6768](https://github.com/langwatch/langwatch/issues/6768)) ([995f0da](https://github.com/langwatch/langwatch/commit/995f0da964e9f85d089b6e55c57149874faadcb3))
## [3.11.0](https://github.com/langwatch/langwatch/compare/langwatch@v3.10.0...langwatch@v3.11.0) (2026-08-09)
### ⚠ BREAKING CHANGES
- **spend:** POST /api/gateway/v1/virtual-keys refuses an organization- or team-scoped key, and a key scoped to more than one project, when it does not carry trace_project_id and the organization has projects to choose from. Send trace_project_id, or scope the key to exactly one project. Existing keys are unaffected until they are next edited.
- **gateway:** POST /api/gateway/v1/virtual-keys refuses an organization- or team-scoped key, and a key scoped to more than one project, when it does not carry trace_project_id and the organization has projects to choose from. Send trace_project_id, or scope the key to exactly one project. Existing keys are unaffected until they are next edited.
- **evaluators:** evaluations, monitors and experiments referencing a legacy/ragas_* evaluator type stop working. Their current equivalents in the ragas/* family remain available.
- **mcp-server:** three behaviors change for callers of the HTTP server. A client that authenticated once at initialize and then sent only the session id must now send Authorization: Bearer <key> on every request. GET /sse?apiKey=<key> no longer authenticates; use the Authorization header. A deployment relying on the implicit 0.0.0.0 bind must pass --host 0.0.0.0, which the published container image already does.
### Features
- **agent-plugin:** first-class LangWatch plugin for Claude Code and Agent Plugins 1.0 ([#6747](https://github.com/langwatch/langwatch/issues/6747)) ([25625c4](https://github.com/langwatch/langwatch/commit/25625c44e53d6dd23d647e58fad9783464e8a1e2))
- **cli:** keep the LangWatch Claude Code plugin up to date from every wrapped run ([#6751](https://github.com/langwatch/langwatch/issues/6751)) ([b64a584](https://github.com/langwatch/langwatch/commit/b64a58465e7d35fcc2ae6ba22d9d4ca54e66b7a4))
- **codex:** capture the conversation for a plain codex, not just the wrapper ([#6433](https://github.com/langwatch/langwatch/issues/6433)) ([38931b4](https://github.com/langwatch/langwatch/commit/38931b4392837c4a011dbde44ec7b80c80b19720))
- **coding-agent:** session economics, and the repositories and pull requests behind them ([#6435](https://github.com/langwatch/langwatch/issues/6435)) ([6430813](https://github.com/langwatch/langwatch/commit/6430813056cda513241a8389a2136fac2d63591e))
- **evaluators:** remove the legacy Ragas evaluators ([#6600](https://github.com/langwatch/langwatch/issues/6600)) ([ef9ea90](https://github.com/langwatch/langwatch/commit/ef9ea90e22bc2adb92bacf5c732cc996c9782bfe))
- **gateway:** make a budget reach the traffic it names, and every route say which key it wants ([#6647](https://github.com/langwatch/langwatch/issues/6647)) ([eaf6573](https://github.com/langwatch/langwatch/commit/eaf6573f95cfb5bec234dfbe5c3643126e53fb3c))
- **governance:** copilot capture across three surfaces — CLI wrapper, app login agent, VS Code Chat (ADR-039) ([#5605](https://github.com/langwatch/langwatch/issues/5605)) ([fd6a3b3](https://github.com/langwatch/langwatch/commit/fd6a3b304176137433ad645d718ec1411097c60f))
- **langy:** show a data-use notice under the composer ([#6755](https://github.com/langwatch/langwatch/issues/6755)) ([98395a4](https://github.com/langwatch/langwatch/commit/98395a4e6e470773bd9a82354e55b249df306dce))
- **model-providers:** test a credential you have already saved ([#6657](https://github.com/langwatch/langwatch/issues/6657)) ([223f6f4](https://github.com/langwatch/langwatch/commit/223f6f4f30d973735f6917bfe19a67fb8e541469))
- **spend:** one filter vocabulary on both reads, and a grouping that refuses to lie ([#6656](https://github.com/langwatch/langwatch/issues/6656)) ([dd3be46](https://github.com/langwatch/langwatch/commit/dd3be46de9aa70d40f256b26a4ee49a1ec753e53))
- **traces:** trace edit overlay and annotation queue to dataset workflow ([#6565](https://github.com/langwatch/langwatch/issues/6565)) ([33d55ee](https://github.com/langwatch/langwatch/commit/33d55ee3b6f3a031f753c252fc89f243d7f9310c))
### Bug Fixes
- **aigateway:** propagate routing-policy and cache-rule edits through the change feed ([#6737](https://github.com/langwatch/langwatch/issues/6737)) ([b2377ca](https://github.com/langwatch/langwatch/commit/b2377caa9e3fa7c0ef41e7a24434f79e46988ef9))
- **charts:** unpin the clickhouse-serverless subchart and resync the lock ([#6745](https://github.com/langwatch/langwatch/issues/6745)) ([0e2c9c7](https://github.com/langwatch/langwatch/commit/0e2c9c7a6521725c0c4cfcb363d0a866aae45936))
- **ci:** the release-scope guard recognizes its own pin remediation ([#6759](https://github.com/langwatch/langwatch/issues/6759)) ([bdde347](https://github.com/langwatch/langwatch/commit/bdde347d14435ac96dcf112b151ea15442fb2ce5))
- **cli:** survive orphaned member rows when resolving the bootstrap admin email ([#6738](https://github.com/langwatch/langwatch/issues/6738)) ([f2149eb](https://github.com/langwatch/langwatch/commit/f2149eb4c648ccffab6151eff05b2d28d4d78f65))
- **dev:** count the checks that go around the package scripts ([#6733](https://github.com/langwatch/langwatch/issues/6733)) ([824a297](https://github.com/langwatch/langwatch/commit/824a297757875829702a9339dbf80947e6581a90))
- **dev:** identify a dev lane by its command line, not by ps comm alone ([#6753](https://github.com/langwatch/langwatch/issues/6753)) ([38e1e34](https://github.com/langwatch/langwatch/commit/38e1e34c31a1367ed3218bddabca9d0ffb38f7b2))
- **dev:** take a dev stack down with whoever started it ([#6749](https://github.com/langwatch/langwatch/issues/6749)) ([474c7a0](https://github.com/langwatch/langwatch/commit/474c7a0b6668e64b4d19e55388b83914d387ab69))
- **mcp-server:** authorize every request to the standalone HTTP server ([#6641](https://github.com/langwatch/langwatch/issues/6641)) ([af324de](https://github.com/langwatch/langwatch/commit/af324deeb3700f2745783a46e6fd5e8625ef868e))
- **model-providers:** an extra header no longer deletes the stored Azure credentials ([#6730](https://github.com/langwatch/langwatch/issues/6730)) ([11f4736](https://github.com/langwatch/langwatch/commit/11f473670f92098b07eb1b57a9ac4b3f7dc65c09))
- **observability:** default ClickHouse backup metrics ON, opt out where there are no backups ([#6756](https://github.com/langwatch/langwatch/issues/6756)) ([8f1c021](https://github.com/langwatch/langwatch/commit/8f1c0215742ae49a18997ca424af8f1630383013))
- **tests:** read the annotations column as the text it is, and stop the queue overlap test racing its holder ([#6764](https://github.com/langwatch/langwatch/issues/6764)) ([d79fe54](https://github.com/langwatch/langwatch/commit/d79fe543ea6855a412eebb3bf0fdcedd8d158d7b))
- **traces:** default the oversized-span S3 spool on so configured storage means no truncation ([#6729](https://github.com/langwatch/langwatch/issues/6729)) ([6bf9ec8](https://github.com/langwatch/langwatch/commit/6bf9ec80ad5982cb9a422145b608c6ea1a8d2823))
- **traces:** gate coding-agent log content by canonical event and per key ([#6743](https://github.com/langwatch/langwatch/issues/6743)) ([157eb0e](https://github.com/langwatch/langwatch/commit/157eb0e772232a52be22d1cd2a5336842dc06def))
### Miscellaneous
- **release:** single-footer shadow Release-As 3.11.0 ([#6744](https://github.com/langwatch/langwatch/issues/6744)) ([54885bd](https://github.com/langwatch/langwatch/commit/54885bd6a06aa4e57791eba470a7771c6d02c9ff))
## [3.10.0](https://github.com/langwatch/langwatch/compare/langwatch@v3.9.0...langwatch@v3.10.0) (2026-08-07)
### ⚠ BREAKING CHANGES
- **helm:** app.email.enabled has been removed. Set app.email.provider to sendgrid, ses, smtp or resend, and drop app.email.enabled from your values.
### Features
- **api-docs:** publish the REST API the SDKs actually call, and gate route coverage ([#6605](https://github.com/langwatch/langwatch/issues/6605)) ([25884bf](https://github.com/langwatch/langwatch/commit/25884bf3992eb99c00c3c7bafb09b979b02f0013))
- **app:** serve content-hashed assets from a runtime-configurable CDN base ([#5535](https://github.com/langwatch/langwatch/issues/5535)) ([5492827](https://github.com/langwatch/langwatch/commit/549282796229408cc0e589f4d725226a1d0c3e75))
- **auth:** support AWS Cognito and OneLogin as self-hosted SSO providers ([#6606](https://github.com/langwatch/langwatch/issues/6606)) ([4d9000b](https://github.com/langwatch/langwatch/commit/4d9000b0bee137c8359670b6063a1e027184e248))
- **charts:** alert when a ClickHouse backup stops succeeding ([#6436](https://github.com/langwatch/langwatch/issues/6436)) ([16c3dbc](https://github.com/langwatch/langwatch/commit/16c3dbc4a8a04b0ff79ba75e0544f05351d870bd))
- **clickhouse:** a shared client package for pooling, logging and retries ([#6604](https://github.com/langwatch/langwatch/issues/6604)) ([91f7463](https://github.com/langwatch/langwatch/commit/91f7463b868a9badbfcaa1285eec157ac1065e77))
- **clickhouse:** wire the statement limiter, one client, one door ([#6614](https://github.com/langwatch/langwatch/issues/6614)) ([eb91e22](https://github.com/langwatch/langwatch/commit/eb91e22afa4a884ad249546a88e9cf9f01b13912))
- gateway billing follow-ups: anchored cycles, idempotency keys, one webhook pipeline, CodeQL, docs sweep ([#6511](https://github.com/langwatch/langwatch/issues/6511)) ([359f985](https://github.com/langwatch/langwatch/commit/359f985700bc7178ff4725108810b917c626af84))
- **gateway:** billing-grade spend pipeline, webhook endpoints platform, and the reconciliation surface ([#6395](https://github.com/langwatch/langwatch/issues/6395)) ([75ae272](https://github.com/langwatch/langwatch/commit/75ae272c4835f29c370a66691adb3e533aa113d8))
- **helm:** one switch for email, and a self-hosting page to set it up ([#6567](https://github.com/langwatch/langwatch/issues/6567)) ([60d98f9](https://github.com/langwatch/langwatch/commit/60d98f9631eb23aa8b7e17eb1d715857d63e2cb3))
- **mailer:** smtp and resend gateways, outbound proxy support, EMAIL_PROVIDER registry ([#6445](https://github.com/langwatch/langwatch/issues/6445)) ([13e3476](https://github.com/langwatch/langwatch/commit/13e347662456642d8420ec6441fc37704bc8563d))
- **model-providers:** fold Google Agent Platform into Gemini — one provider, two doors ([#6633](https://github.com/langwatch/langwatch/issues/6633)) ([42a889f](https://github.com/langwatch/langwatch/commit/42a889fff6479e3906628d3c75be1de29a47bda3))
### Bug Fixes
- **aigateway:** derive the control-plane URL in dev instead of silently defaulting, and unbreak the docs-metrics contract test ([#6599](https://github.com/langwatch/langwatch/issues/6599)) ([53c2a5f](https://github.com/langwatch/langwatch/commit/53c2a5f56e4d1bbf8c303697d88bbefa4142c176))
- **aigateway:** enforce seconds-based duration envs, wire graceful-shutdown timing ([#5977](https://github.com/langwatch/langwatch/issues/5977)) ([b2a5431](https://github.com/langwatch/langwatch/commit/b2a5431285ab8ba05fd28a63edca0f2d23b25a91))
- **api-keys:** render Token Created dialog snippets through the shared CodePreview ([#6689](https://github.com/langwatch/langwatch/issues/6689)) ([9630916](https://github.com/langwatch/langwatch/commit/9630916c21e965baf1026585f349af0731857e17))
- **auth:** recover sign-up when the account already exists, ship NEXTAUTH_URL to every helm process ([#6568](https://github.com/langwatch/langwatch/issues/6568)) ([66ea5de](https://github.com/langwatch/langwatch/commit/66ea5de63de93300a3b5acec2a42ca778ea39801))
- **ci:** scope the secrets gate to the pull request's own commits ([#6683](https://github.com/langwatch/langwatch/issues/6683)) ([4c01593](https://github.com/langwatch/langwatch/commit/4c015936a6194e90b3563c72044d390bf1581102))
- **clickhouse:** in-band exceptions surfaced as errors; rollup reads slimmed under the memory cap ([#6493](https://github.com/langwatch/langwatch/issues/6493)) ([f1fc667](https://github.com/langwatch/langwatch/commit/f1fc667bb75e95cdad12ac33cf7cb46865096368))
- **datasets:** stop the dataset list counting every tenant's entries ([#6559](https://github.com/langwatch/langwatch/issues/6559)) ([76fc395](https://github.com/langwatch/langwatch/commit/76fc39555389f8b14509a0faeb8eaef77cf194eb))
- **event-sourcing:** bisect a failing coalesced batch instead of retrying it whole ([#6555](https://github.com/langwatch/langwatch/issues/6555)) ([e2db0b1](https://github.com/langwatch/langwatch/commit/e2db0b1b239c03ceff503eae4fedc3724fd3de22))
- **event-sourcing:** budget coalesced batches by payload bytes, not stored bytes ([#6473](https://github.com/langwatch/langwatch/issues/6473)) ([6fe1e0e](https://github.com/langwatch/langwatch/commit/6fe1e0ebcab4711409c799ae54e9b1e6d427cd3a))
- **event-sourcing:** floor the group queue's ready score so the age gauge cannot report 56 years ([#6618](https://github.com/langwatch/langwatch/issues/6618)) ([b0b9990](https://github.com/langwatch/langwatch/commit/b0b9990fc5c867780cefff829b75306b88bf97fe))
- **event-sourcing:** freeze the trace-summary storage anchor, and bound the joined span read ([#6624](https://github.com/langwatch/langwatch/issues/6624)) ([21761f4](https://github.com/langwatch/langwatch/commit/21761f48a80f8d1b3387815d02025bed1e8bd4d5))
- **event-sourcing:** stop the coding-agent claim-check racing its own span write ([#6621](https://github.com/langwatch/langwatch/issues/6621)) ([0a298dd](https://github.com/langwatch/langwatch/commit/0a298dd9179c4da33964c7bfb8799d35640a28d7))
- **helm:** size the evaluations worker pool to the container, not the node ([#6479](https://github.com/langwatch/langwatch/issues/6479)) ([117f36c](https://github.com/langwatch/langwatch/commit/117f36c19bcded326c67dcb8778be010a9aaa1bc))
- make missing-model and relayed LLM failures handled errors ([#6619](https://github.com/langwatch/langwatch/issues/6619)) ([5370c44](https://github.com/langwatch/langwatch/commit/5370c449650e2966f5141808e661256f538b6781))
- **members:** a personal workspace no longer blocks moving someone to a Lite Member seat ([#6608](https://github.com/langwatch/langwatch/issues/6608)) ([e8d5b74](https://github.com/langwatch/langwatch/commit/e8d5b74e24b7b2d353fec01f835080bc16db81c0))
- **members:** let a seat change take a team's last admin, and say what was refused ([#6630](https://github.com/langwatch/langwatch/issues/6630)) ([c1bcf3c](https://github.com/langwatch/langwatch/commit/c1bcf3c3633aaba73746d26cabd46633bc374353))
- **metrics:** bound the rollup successor read's request size by construction ([#6625](https://github.com/langwatch/langwatch/issues/6625)) ([b4730c1](https://github.com/langwatch/langwatch/commit/b4730c1c43241b20fb5be394eed7a6d7423d52b6))
- **monitors:** require an evaluator to create an online evaluation; CLI --settings lands under config.settings ([#6478](https://github.com/langwatch/langwatch/issues/6478)) ([f3daaf3](https://github.com/langwatch/langwatch/commit/f3daaf3c488ba6f6e7a9344d2e1bfdd4ba1e7669))
- **observability:** stop tracing every Redis command, which was 93% of all spans ([#6640](https://github.com/langwatch/langwatch/issues/6640)) ([54abef7](https://github.com/langwatch/langwatch/commit/54abef7e725372e6f149b13fa11b3c4f36aeccc5))
- **ops:** let the keyspace sweep come due again ([#6472](https://github.com/langwatch/langwatch/issues/6472)) ([c7b16a8](https://github.com/langwatch/langwatch/commit/c7b16a83215a2cea188cc4a6b1d908258998493e))
- **ops:** queue dashboard retry counts + retry-pinned backlog visibility ([#6597](https://github.com/langwatch/langwatch/issues/6597)) ([af67809](https://github.com/langwatch/langwatch/commit/af67809d42def86c89fb8646c205d28212c5131c))
- **packages:** declare the deps the root workspace members import at runtime ([#6548](https://github.com/langwatch/langwatch/issues/6548)) ([97c11a5](https://github.com/langwatch/langwatch/commit/97c11a5e790ec6e2e375fb4f660c86ba63bce5a0))
- **pricing:** name every billable family in the short answer, not just spans ([#6515](https://github.com/langwatch/langwatch/issues/6515)) ([bb7c83c](https://github.com/langwatch/langwatch/commit/bb7c83c96fd3b2df1e7ea0e8efc4a39768823fce))
- **scenarios:** scope reasoning compatibility to affected judges ([#6620](https://github.com/langwatch/langwatch/issues/6620)) ([fe69b70](https://github.com/langwatch/langwatch/commit/fe69b70beed0e5b6788e84239fde197680998a14))
- **scenarios:** stop resolving the FAST scenarios.generator model for simulation runs ([#6634](https://github.com/langwatch/langwatch/issues/6634)) ([#6674](https://github.com/langwatch/langwatch/issues/6674)) ([fc1f452](https://github.com/langwatch/langwatch/commit/fc1f452c1b056e26b9540f1c39b88eed06b93cd1))
- **sdk:** @opentelemetry/api is a runtime import, so declare it as a dependency ([#6552](https://github.com/langwatch/langwatch/issues/6552)) ([35effd6](https://github.com/langwatch/langwatch/commit/35effd6ae669e5e2799297048c0f87253a0a42d6))
- **sdk:** declare the otel packages the SDK imports at runtime as dependencies ([35effd6](https://github.com/langwatch/langwatch/commit/35effd6ae669e5e2799297048c0f87253a0a42d6))
- **sdk:** normalize the configured endpoint so a trailing slash stops 404ing ([#6509](https://github.com/langwatch/langwatch/issues/6509)) ([dc337b0](https://github.com/langwatch/langwatch/commit/dc337b0f8dd3edabda34b5e15a36fd547a8929fe))
- seven production defects found in a five-day error review ([#6602](https://github.com/langwatch/langwatch/issues/6602)) ([cea66e8](https://github.com/langwatch/langwatch/commit/cea66e8e12fd3de8720bf9ba6978b471d4bd9286))
- **tokenizer:** tiktoken's JSON imports need an import attribute under the bundle ([#6592](https://github.com/langwatch/langwatch/issues/6592)) ([a09e7c7](https://github.com/langwatch/langwatch/commit/a09e7c72ff2ba4ac8a4442e884a6a13ef790fae7))
- **traces-v2:** the Events column reads real events, and a category verdict stops posing as a passing zero ([#6632](https://github.com/langwatch/langwatch/issues/6632)) ([116d67c](https://github.com/langwatch/langwatch/commit/116d67c4bd6a25ed5afd2ab254c05257ac8c7ec9))
- **ui:** give the onboarding accent surfaces a dark mode, and stop the assistant tabs disagreeing with the docs ([#6653](https://github.com/langwatch/langwatch/issues/6653)) ([465056b](https://github.com/langwatch/langwatch/commit/465056b2e65a721e1e520178b6302ae153000732))
### Miscellaneous
- **main:** release python-sdk 1.1.0 ([#6378](https://github.com/langwatch/langwatch/issues/6378)) ([4a3ee2d](https://github.com/langwatch/langwatch/commit/4a3ee2d9defc38fdfb42d858e448693c1436709f))
- **release:** single-footer shadow Release-As 3.10.0 ([#6704](https://github.com/langwatch/langwatch/issues/6704)) ([d0842fa](https://github.com/langwatch/langwatch/commit/d0842fabe813c062716b5fe69cfbacbebbf79945))
### Documentation
- **build:** the saas image prunes devDependencies too, so drop the exception ([#6591](https://github.com/langwatch/langwatch/issues/6591)) ([95c54b1](https://github.com/langwatch/langwatch/commit/95c54b1507a98a5f8c3bd1f39cced9f8c1b8da2e))
- correct the Monitor poll-cadence rule for the real prompt-cache TTL ([#6680](https://github.com/langwatch/langwatch/issues/6680)) ([a08bd05](https://github.com/langwatch/langwatch/commit/a08bd05f3ad0b0b4fb3bc764cc91fb4dd7ce6e74))
- **observability:** the queue is groupQueue, not BullMQ ([#6645](https://github.com/langwatch/langwatch/issues/6645)) ([bec2bcc](https://github.com/langwatch/langwatch/commit/bec2bcc352c6442c9f2e45d2c2bfedb260eafa4f))
### Code Refactoring
- **build:** single pnpm workspace + restructure into sdks/ platform/ services/ mcp/ infra/ (ADR-076) ([#6405](https://github.com/langwatch/langwatch/issues/6405)) ([2bbeb7d](https://github.com/langwatch/langwatch/commit/2bbeb7dd2e0747e81478f22c3165adb9163c9f99))
- **clickhouse:** work the repository-access backlog down ([#6622](https://github.com/langwatch/langwatch/issues/6622)) ([e697f91](https://github.com/langwatch/langwatch/commit/e697f91b93b18901f4578ccc30792b4b2519ff43))
- **experiment-runs:** extract the shared deduped-items filter ([#3178](https://github.com/langwatch/langwatch/issues/3178)) ([#5812](https://github.com/langwatch/langwatch/issues/5812)) ([7cb696a](https://github.com/langwatch/langwatch/commit/7cb696a4fb40b811d3e1ebbefe0a95d71e5428be))
## [3.9.0](https://github.com/langwatch/langwatch/compare/langwatch@v3.8.0...langwatch@v3.9.0) (2026-08-03)
### Features
- **experiments-v3:** add a Bradley-Terry leaderboard chart for the Comparison evaluator ([#5103](https://github.com/langwatch/langwatch/issues/5103)) ([#6110](https://github.com/langwatch/langwatch/issues/6110)) ([3fdc675](https://github.com/langwatch/langwatch/commit/3fdc675322a71d9c0c25face6e3bd12baad6f243))
- **experiments:** group comparison table by dataset-entry metadata ([#4638](https://github.com/langwatch/langwatch/issues/4638)) ([d992b08](https://github.com/langwatch/langwatch/commit/d992b088406df781adc827ab2647a40a08f8cbc5))
- **licensing:** license-gated SSO — signature-only gate, decided at startup (ADR-027) ([#4830](https://github.com/langwatch/langwatch/issues/4830)) ([4093b55](https://github.com/langwatch/langwatch/commit/4093b55154a4af578b783c02af4449b3a483fb9e))
- **licensing:** make experimentation resources & workspace structure OSS-aligned ([#4480](https://github.com/langwatch/langwatch/issues/4480)) ([e23c561](https://github.com/langwatch/langwatch/commit/e23c5611bb76d0f938ffece7a09541e0123937fb))
- **scenarios:** export scenario run history as CSV ([#6273](https://github.com/langwatch/langwatch/issues/6273)) ([1fb5e8e](https://github.com/langwatch/langwatch/commit/1fb5e8ed8bf5d1f656b9cca69e82f06847f35a87))
- **traces:** honest trace export (cursor paging, spans, token metrics) and coding-agent transcript over REST ([#6434](https://github.com/langwatch/langwatch/issues/6434)) ([9bdbe41](https://github.com/langwatch/langwatch/commit/9bdbe414c59a0c9ce9965d26eb3325dbe432ad81))
### Bug Fixes
- **automations:** serialize graph-trigger sweeps in one lane per tenant ([#6414](https://github.com/langwatch/langwatch/issues/6414)) ([05d3b74](https://github.com/langwatch/langwatch/commit/05d3b74f8c1e8146531986a950de4b72bfab6c88))
- **clickhouse:** replicate the rollup tables a Replicated database was silently fragmenting ([#6418](https://github.com/langwatch/langwatch/issues/6418)) ([3a98a7c](https://github.com/langwatch/langwatch/commit/3a98a7ccb606f2c7ecc7d07c93750c51d1750de2))
- **coding-agent:** restore codex terminal and claude session context, capture reasoning effort, cache TTL and context size ([#6429](https://github.com/langwatch/langwatch/issues/6429)) ([72ea2ad](https://github.com/langwatch/langwatch/commit/72ea2adcbaa3ba13854a948585d5b5456b2f1f37))
- **event-sourcing:** decline governance reactors before enqueue, not after ([#6461](https://github.com/langwatch/langwatch/issues/6461)) ([acd2148](https://github.com/langwatch/langwatch/commit/acd2148e016c95e30d4ccc0d186d7ed38bbbbe9b))
- **event-sourcing:** give per-project reactors a per-project queue lane ([#6460](https://github.com/langwatch/langwatch/issues/6460)) ([8a2e373](https://github.com/langwatch/langwatch/commit/8a2e373861127f70051004ee1c62d0a74ce44858))
- **event-sourcing:** restore traceSummary to the 500-event fold coalesce default ([#6408](https://github.com/langwatch/langwatch/issues/6408)) ([f754fe1](https://github.com/langwatch/langwatch/commit/f754fe1700800c030d12fcc7e4e6fcb5f6c4dd0f))
- **ops:** stop the pending reconcile and blob sweep scaling with the keyspace ([#6457](https://github.com/langwatch/langwatch/issues/6457)) ([5928d5b](https://github.com/langwatch/langwatch/commit/5928d5b8629553ecee543c186a9b08a3d4eefc50))
- **personal-workspace:** guard the write paths that hand an organization uncounted resources and brick provisioning ([#6227](https://github.com/langwatch/langwatch/issues/6227)) ([7e74a53](https://github.com/langwatch/langwatch/commit/7e74a53dd50c76956a18666f46bf8101b37ce4dc))
- surface structured AI SDK output in trace spans ([#6422](https://github.com/langwatch/langwatch/issues/6422)) ([9f8edf7](https://github.com/langwatch/langwatch/commit/9f8edf75c1ddbed6b5f31a3505113a1760e476f9))
### Documentation
- move the Langy group to the bottom of the Self Hosting nav ([#6456](https://github.com/langwatch/langwatch/issues/6456)) ([f9a8f30](https://github.com/langwatch/langwatch/commit/f9a8f305f236d5c6c4bfe2102d2642a85fed5d8c))
## [3.8.0](https://github.com/langwatch/langwatch/compare/langwatch@v3.7.0...langwatch@v3.8.0) (2026-07-31)
### Features
- **analytics:** capture signed_up and first_trace_integrated in posthog, instrument the coding-agent onboarding screen ([#6215](https://github.com/langwatch/langwatch/issues/6215)) ([3b9433f](https://github.com/langwatch/langwatch/commit/3b9433ff573f7c35de95e92871c603b30d44c206))
- **batch-evaluation-results:** fields + row height controls for the results table ([#4623](https://github.com/langwatch/langwatch/issues/4623)) ([7af05ca](https://github.com/langwatch/langwatch/commit/7af05ca1e4c6cb8d5baeed9e4d4bb16841d30085))
- **charts:** consolidated chart hardening — admission control, ingress path blocking, component flags, signed OCI prereleases ([#6375](https://github.com/langwatch/langwatch/issues/6375)) ([4531d24](https://github.com/langwatch/langwatch/commit/4531d2434862c7c4cdd78b1dca5d46cb663430c0))
- **cli:** /me credentials just work after device login, authorize page fixes ([#6264](https://github.com/langwatch/langwatch/issues/6264)) ([a78f2f8](https://github.com/langwatch/langwatch/commit/a78f2f845cb29ddbc0d36e1032897cf40c4ca8a3))
- **code-agent:** executed proof + contract — Auth0 M2M auth in a custom code agent ([#6341](https://github.com/langwatch/langwatch/issues/6341)) ([270b3fa](https://github.com/langwatch/langwatch/commit/270b3fab381c225b458e62c9e91fdfa6ba4c73f3))
- **coding-agent:** fold Claude Cowork sessions via a registration-style agent registry ([#6103](https://github.com/langwatch/langwatch/issues/6103)) ([2551354](https://github.com/langwatch/langwatch/commit/25513544f482eae6b253569ccd35c2faefa48031))
- **data-privacy:** pii exception patterns and readable ingestion key id ([#6324](https://github.com/langwatch/langwatch/issues/6324)) ([3de891d](https://github.com/langwatch/langwatch/commit/3de891dff86ce45c4cb0c75b46946e1f8cca4838))
- **event-sourcing:** payload cost is a scheduling input — filter irrelevant events at ingest (ADR-069 phase 1) ([#6111](https://github.com/langwatch/langwatch/issues/6111)) ([e3f41c1](https://github.com/langwatch/langwatch/commit/e3f41c13371dd71032bf8786627af2eccdf235a1))
- **event-sourcing:** read-back stores for the trace/eval analytics folds (ADR-066) ([#6126](https://github.com/langwatch/langwatch/issues/6126)) ([af1199c](https://github.com/langwatch/langwatch/commit/af1199c0e0e5e4fca7a9b7cbe899ad044e4c80ed))
- **gateway:** a public status-page health endpoint for the AI gateway ([#6228](https://github.com/langwatch/langwatch/issues/6228)) ([7cc5d0c](https://github.com/langwatch/langwatch/commit/7cc5d0cadb58cb01c18932374ba25c69bd538ba6))
- **gateway:** align the REST provisioning surface with the service layer, six-scope budgets with live spend, per-key spend read, CLI n-by-n ([#6268](https://github.com/langwatch/langwatch/issues/6268)) ([5459a31](https://github.com/langwatch/langwatch/commit/5459a31a0f82a1c2579c084322fbaf46f290c985))
- **gateway:** budgets on every dimension and the virtual-key drawer redesign ([#6259](https://github.com/langwatch/langwatch/issues/6259)) ([35d7e2b](https://github.com/langwatch/langwatch/commit/35d7e2b4d898301542dd8cf8707a7bb7b6cc6da6))
- **gateway:** reach non-Anthropic models from Claude Code through the router ([#6207](https://github.com/langwatch/langwatch/issues/6207)) ([b1e8cd2](https://github.com/langwatch/langwatch/commit/b1e8cd2096f3e7f45be9f254525e9ff1be818c55))
- **haven:** haven CLI v2 (ADR-064), one name per command, one meaning per flag ([#6058](https://github.com/langwatch/langwatch/issues/6058)) ([cd88cb5](https://github.com/langwatch/langwatch/commit/cd88cb5f13fa624c44d856d099d2b73b7187004d))
- **langy:** agent-driven browser navigation — open the surfaced resource in place ([#5980](https://github.com/langwatch/langwatch/issues/5980)) ([a9b2f60](https://github.com/langwatch/langwatch/commit/a9b2f60fd810e9fdfd12a22c7de142939418626f))
- launch day fixes: pre-provisioned tools, subscription-first CLI, first-trace redirect, opus-5 1m pricing, first-project affordance ([#6249](https://github.com/langwatch/langwatch/issues/6249)) ([98d8790](https://github.com/langwatch/langwatch/commit/98d87904c09ab9330b055260b1c6c98c87d1cbbc))
- **model-providers:** add Google Agent Platform as a provider ([#6352](https://github.com/langwatch/langwatch/issues/6352)) ([74b3563](https://github.com/langwatch/langwatch/commit/74b35636e818a5a7409fccb327086dc7400505e2))
- **stored-objects:** wire Azure Blob as a write destination ([#6092](https://github.com/langwatch/langwatch/issues/6092)) ([6b5fcbc](https://github.com/langwatch/langwatch/commit/6b5fcbcc11f08a76cf2589c8dfd5d072c87e2954))
### Bug Fixes
- **aigateway:** decode compressed request bodies so codex turns stop failing with missing model field ([#6344](https://github.com/langwatch/langwatch/issues/6344)) ([1a7e5d0](https://github.com/langwatch/langwatch/commit/1a7e5d0919c5c89b0d1cad5ed19edb32cd49f8c2))
- **aigateway:** honor client max_tokens on anthropic, bedrock and gemini lanes ([#6285](https://github.com/langwatch/langwatch/issues/6285)) ([870ab7e](https://github.com/langwatch/langwatch/commit/870ab7e2f1e322d9da2e7b543bdf782d7529082c))
- **aigateway:** list hosted provider catalogs in GET /v1/models and surface discovery gaps ([#6284](https://github.com/langwatch/langwatch/issues/6284)) ([1c34f7b](https://github.com/langwatch/langwatch/commit/1c34f7bc80eba4f3d611bce1b02010937f7be358))
- **aigateway:** preserve upstream provider error identity through the gateway envelope ([#6304](https://github.com/langwatch/langwatch/issues/6304)) ([c4c6978](https://github.com/langwatch/langwatch/commit/c4c69784d2adfd2fdbf5fc8bddf83b9b920ec897))
- **analytics:** bound the evaluation_runs JOIN so it prunes partitions; env-driven ClickHouse pool size ([#6399](https://github.com/langwatch/langwatch/issues/6399)) ([c7ce7db](https://github.com/langwatch/langwatch/commit/c7ce7dbfe75d7778f39b1b5010afc3a97a516f5c))
- **analytics:** per-model buckets partition cost/tokens exactly; total_tokens includes completion in grouped queries; traces carry metadata.model ([#6263](https://github.com/langwatch/langwatch/issues/6263)) ([45603ef](https://github.com/langwatch/langwatch/commit/45603efe52ba0a95b39a380b39b93e35e9629d12))
- **annotations:** stop shipping full User rows to the browser ([#6133](https://github.com/langwatch/langwatch/issues/6133)) ([ed3a38c](https://github.com/langwatch/langwatch/commit/ed3a38c6a50ea9504b2f6ba595106734a02ffb6b))
- **automations:** add features.bot_user to the Slack app manifest ([#6109](https://github.com/langwatch/langwatch/issues/6109)) ([d3a81c1](https://github.com/langwatch/langwatch/commit/d3a81c1bd8c0ce503878cce5405a088fd63fb7d4))
- **automations:** expose page-cap and missing-scope gaps in Slack channel listings ([#6266](https://github.com/langwatch/langwatch/issues/6266)) ([d6a5663](https://github.com/langwatch/langwatch/commit/d6a5663a70e748b8a6b80d7fda8a5fe80adcb7ee))
- **automations:** make the Slack channel picker searchable again ([#6233](https://github.com/langwatch/langwatch/issues/6233)) ([b6229f3](https://github.com/langwatch/langwatch/commit/b6229f31a8362eeef61b3cf65cbc3ea6f53d3b73))
- **billing:** build checkout in the currency Stripe has fixed for the customer ([#5969](https://github.com/langwatch/langwatch/issues/5969)) ([45dc615](https://github.com/langwatch/langwatch/commit/45dc6153b257476f75425ce6ff70953f30f0797e))
- **billing:** classify provider failures instead of naming every one ([#6353](https://github.com/langwatch/langwatch/issues/6353)) ([9a80837](https://github.com/langwatch/langwatch/commit/9a80837717beb18c918f0bdb6827f14f921d7e95))
- **clickhouse:** give every ALTER-added Array column an explicit DEFAULT ([#6297](https://github.com/langwatch/langwatch/issues/6297)) ([48e9f7c](https://github.com/langwatch/langwatch/commit/48e9f7c85c5268c6b44c172bc7112d9e898a8f74))
- **clickhouse:** remove the slow-query warning feature ([#6114](https://github.com/langwatch/langwatch/issues/6114)) ([3d3fb6b](https://github.com/langwatch/langwatch/commit/3d3fb6b802d94888e121cb30db07a88555eaeced))
- **cli:** never reroute a run onto the metered gateway path ([#6343](https://github.com/langwatch/langwatch/issues/6343)) ([30dcd1f](https://github.com/langwatch/langwatch/commit/30dcd1fc2f63f83153106bf96b3b5ab46f2a08b6))
- **coding-agent:** take the mutable start time out of the session list read's dedup scope (ADR-071) ([#6276](https://github.com/langwatch/langwatch/issues/6276)) ([cb3b5db](https://github.com/langwatch/langwatch/commit/cb3b5db4e4899caae7fa220fdd713b27288b6f95))
- **components:** clear scheduled timers so nothing runs after unmount ([#6394](https://github.com/langwatch/langwatch/issues/6394)) ([5605067](https://github.com/langwatch/langwatch/commit/56050679f9b4206eeb6c113a73a4135f870cbf80))
- **deps:** support Node 25 and 26 alongside 24 ([#6267](https://github.com/langwatch/langwatch/issues/6267)) ([232a4d0](https://github.com/langwatch/langwatch/commit/232a4d0c59cdfe861f5f575b480a71141c122651))
- **event-sourcing:** bind the fold contract scenarios [#6347](https://github.com/langwatch/langwatch/issues/6347) left unwritten, and refuse a trusted windowed absence on a long-lived aggregate ([#6380](https://github.com/langwatch/langwatch/issues/6380)) ([80f7a81](https://github.com/langwatch/langwatch/commit/80f7a818c268558acef8cbef4b7669e6fb934948))
- **event-sourcing:** bound the re-fold event_log reads so they prune partitions ([#6336](https://github.com/langwatch/langwatch/issues/6336)) ([42b5a4c](https://github.com/langwatch/langwatch/commit/42b5a4cd4999fc73994c20c6177474fd531bd1e8))
- **event-sourcing:** stop log-only traces committing into partition 197001 ([#6306](https://github.com/langwatch/langwatch/issues/6306)) ([bb468cc](https://github.com/langwatch/langwatch/commit/bb468cc6b50ede10c33790a6484beab73f2cc5af))
- **export:** stop trace CSV losing a row at every batch boundary ([#6286](https://github.com/langwatch/langwatch/issues/6286)) ([8056382](https://github.com/langwatch/langwatch/commit/805638255842b244a0935eceab761a0d2be73871))
- **gateway:** chat streams open with the role-carrying delta OpenAI sends ([#6214](https://github.com/langwatch/langwatch/issues/6214)) ([b7fc473](https://github.com/langwatch/langwatch/commit/b7fc47321058170af25c0286b3e2021fc32eea09))
- **gateway:** pin budget rollup period truncation to UTC ([#6222](https://github.com/langwatch/langwatch/issues/6222)) ([0c4b991](https://github.com/langwatch/langwatch/commit/0c4b991fff90fe2c299b750764fdcd04d1f6e3d2))
- **gateway:** the Usage page reads the organization, not the selected project ([#6345](https://github.com/langwatch/langwatch/issues/6345)) ([7f56c99](https://github.com/langwatch/langwatch/commit/7f56c995f0bafea898c27d429b1567c501b5a7e1))
- **langy:** let the session key reach the experiment surface ([#6288](https://github.com/langwatch/langwatch/issues/6288)) ([6b2930e](https://github.com/langwatch/langwatch/commit/6b2930e8995e3b80a5db56ff703fde7e693823e7))
- **langy:** make View in Trace Explorer land on the traces Langy searched ([#6370](https://github.com/langwatch/langwatch/issues/6370)) ([3163a7a](https://github.com/langwatch/langwatch/commit/3163a7a5cfd67cccfc34b68a5d385d47713554a2))
- **langy:** resolve the [#5741](https://github.com/langwatch/langwatch/issues/5741) retrospective findings across langy, langyagent, traces-v2 and the CLI daemon ([#5881](https://github.com/langwatch/langwatch/issues/5881)) ([#6275](https://github.com/langwatch/langwatch/issues/6275)) ([392d0be](https://github.com/langwatch/langwatch/commit/392d0bed8f8bb308a7096553a789cd1b81a724d8))
- **langy:** resolve the user's own project on /me, not the org ambient team ([#6262](https://github.com/langwatch/langwatch/issues/6262)) ([cfc962a](https://github.com/langwatch/langwatch/commit/cfc962ad9972ad0e949fce796aaee829364376b4))
- **langy:** surface and self-heal GitHub App install failures ([#6291](https://github.com/langwatch/langwatch/issues/6291)) ([ae028c9](https://github.com/langwatch/langwatch/commit/ae028c9dc3ddb833862b4f8d3f62a4a7bb79fefc))
- **licensing:** canonicalize PEM before crypto.createSign, and type signing-key failures as HandledErrors ([#6274](https://github.com/langwatch/langwatch/issues/6274)) ([d95a70e](https://github.com/langwatch/langwatch/commit/d95a70e67c84fdd74e015208922aa26a7c8fc420))
- **lint:** clear the biome errors [#6347](https://github.com/langwatch/langwatch/issues/6347) landed on main ([#6381](https://github.com/langwatch/langwatch/issues/6381)) ([ee8a61b](https://github.com/langwatch/langwatch/commit/ee8a61b1246d88ad62a76e17a8369e48f2c60d0e))
- **me:** stop pinning tool spend against the gateway virtual-key budget ([#6321](https://github.com/langwatch/langwatch/issues/6321)) ([62f0671](https://github.com/langwatch/langwatch/commit/62f06719fa8b0b40f0817e3ce331762cbad6570f))
- **model-providers:** derive credential requiredness from the schema and keep the stored key through base-URL edits ([#6210](https://github.com/langwatch/langwatch/issues/6210)) ([165b629](https://github.com/langwatch/langwatch/commit/165b629482e5aceb35883cb5ac3ab0dabd011984))
- **model-providers:** say why a key was refused, not just "invalid" ([#6252](https://github.com/langwatch/langwatch/issues/6252)) ([a83f9f6](https://github.com/langwatch/langwatch/commit/a83f9f6c8a8ead693ed4b13066fe86f82fb95bed))
- **process-manager:** key the inbox on a digest, stop tool ids carrying provider payload ([#6302](https://github.com/langwatch/langwatch/issues/6302)) ([bba16a4](https://github.com/langwatch/langwatch/commit/bba16a46cfe026f18cbbbf87017e93530b9c58ad))
- **prompts:** scope the version-drift refetch trade-off to the N-mounted callers ([#6292](https://github.com/langwatch/langwatch/issues/6292)) ([#6333](https://github.com/langwatch/langwatch/issues/6333)) ([4393cfa](https://github.com/langwatch/langwatch/commit/4393cfa328bfcb348aeba6a4a6c2d4374d95a5c5))
- **settings:** resolve the ambient team to one the member is actually on ([#6393](https://github.com/langwatch/langwatch/issues/6393)) ([043d86a](https://github.com/langwatch/langwatch/commit/043d86a368dca8988bd9ddbca3280252e7dbb30c))
- **tests:** un-skip 14 integration suites that had never run anywhere ([#6330](https://github.com/langwatch/langwatch/issues/6330)) ([769ea31](https://github.com/langwatch/langwatch/commit/769ea311cc9cc400127f198d4180d22aa76673c6))
- **traces:** free-text search reaches trace and span names ([#6358](https://github.com/langwatch/langwatch/issues/6358)) ([ec36069](https://github.com/langwatch/langwatch/commit/ec360691b7fded6df86b68410f2d43869e0bfad9))
- **traces:** make tracesV2.header's full IO resolution opt-in per caller ([#6042](https://github.com/langwatch/langwatch/issues/6042)) ([10bfec9](https://github.com/langwatch/langwatch/commit/10bfec90cdfbe9e0b4a32b3d82995bae9309873d))
- **workers:** probe an unauthenticated /healthz instead of /metrics ([#5524](https://github.com/langwatch/langwatch/issues/5524)) ([4c182f0](https://github.com/langwatch/langwatch/commit/4c182f0f56c8e5336cb735ce94b708109f7d54c4))
### Miscellaneous
- scrub QA scratch scripts, a dangling spec reference, and dead model helpers ([#6220](https://github.com/langwatch/langwatch/issues/6220)) ([37a47a3](https://github.com/langwatch/langwatch/commit/37a47a335b9b5125afa8bcb151a0f33cffc896f2))
- sync model registry ([0cab6c2](https://github.com/langwatch/langwatch/commit/0cab6c24c3b36f7a1bbca2c39f6ee57627676796))
- sync model registry (361 models) ([#6221](https://github.com/langwatch/langwatch/issues/6221)) ([0cab6c2](https://github.com/langwatch/langwatch/commit/0cab6c24c3b36f7a1bbca2c39f6ee57627676796))
## [3.7.0](https://github.com/langwatch/langwatch/compare/langwatch@v3.6.0...langwatch@v3.7.0) (2026-07-26)
### Features
- **costs:** price TTS per character and STT per second from the model catalog ([#6199](https://github.com/langwatch/langwatch/issues/6199)) ([606b889](https://github.com/langwatch/langwatch/commit/606b8892f3c2b9c9f2a3532ee9b933b07c84d7d9))
- **gateway:** route anthropic providers with a base URL to self-hosted endpoints ([#5940](https://github.com/langwatch/langwatch/issues/5940)) ([9b0a48f](https://github.com/langwatch/langwatch/commit/9b0a48fe6b25c974662e805e8650e62b0a3ad9aa))
### Bug Fixes
- **charts:** let the gateway find the control plane of its own install ([#6194](https://github.com/langwatch/langwatch/issues/6194)) ([a9a3c0a](https://github.com/langwatch/langwatch/commit/a9a3c0a7e90052fb653424598474a8b158381d63))
- **cli:** latest login wins over stale tool wiring ([#6204](https://github.com/langwatch/langwatch/issues/6204)) ([f7bb069](https://github.com/langwatch/langwatch/commit/f7bb069462a1c72950dcc49d9025cd2f689d1891))
- **docs:** make the agents footer link readable on desktop ([#6193](https://github.com/langwatch/langwatch/issues/6193)) ([fedd15f](https://github.com/langwatch/langwatch/commit/fedd15f7656702762a9b1370c9599e7398834fd3))
- **gateway:** stop transient config-fetch failures from answering (and caching) no_provider_configured ([#6198](https://github.com/langwatch/langwatch/issues/6198)) ([004634b](https://github.com/langwatch/langwatch/commit/004634b0fe9772798c672c6a988658b4c624d08f))
- **model-providers:** let an organization with no project add a provider ([#6186](https://github.com/langwatch/langwatch/issues/6186)) ([bfabeca](https://github.com/langwatch/langwatch/commit/bfabecaf93de7959b63cac05aebf0393bc838995))
- **server:** restart crashed services with bounded backoff ([#6203](https://github.com/langwatch/langwatch/issues/6203)) ([852d48d](https://github.com/langwatch/langwatch/commit/852d48d2e24f91cf3569ad8ac1ac17d57acf17ce))
- **server:** ship the workspace packages the app imports, and boot smoke from the packed tarball ([#6200](https://github.com/langwatch/langwatch/issues/6200)) ([d7327e1](https://github.com/langwatch/langwatch/commit/d7327e1a9f93863535e4a36c4b76d1b6fa325f39))
### Miscellaneous
- sync model registry (359 models) ([#6206](https://github.com/langwatch/langwatch/issues/6206)) ([140e5ff](https://github.com/langwatch/langwatch/commit/140e5fff7690d5ee1f0128519d18495296a73f96))
## [3.6.0](https://github.com/langwatch/langwatch/compare/langwatch@v3.5.0...langwatch@v3.6.0) (2026-07-26)
### Features
- agent issue reports, npx langwatch report at every access point ([#6101](https://github.com/langwatch/langwatch/issues/6101)) ([e881f8e](https://github.com/langwatch/langwatch/commit/e881f8e5ed5e24094e9c55e3f8d390c9ff2f43e4))
- **aigateway:** bound cached VK config staleness with a ConfigTTL refresh ([#5359](https://github.com/langwatch/langwatch/issues/5359)) ([dd26e72](https://github.com/langwatch/langwatch/commit/dd26e72b4f0662976d4427978898e925369471c6))
- **aigateway:** implement GET /v1/models behind the virtual key ([#5941](https://github.com/langwatch/langwatch/issues/5941)) ([2635540](https://github.com/langwatch/langwatch/commit/2635540b112d86aa0da36fe799bfc9cc6c8b9f45))
- **analytics:** event-sourced trace_analytics foundation (ADR-034 Ph 0-3.5) ([#5012](https://github.com/langwatch/langwatch/issues/5012)) ([6a440f4](https://github.com/langwatch/langwatch/commit/6a440f46723e790ca457726f885f2de8123fe9f1))
- **analytics:** outbox heartbeat + graph triggers + trace/eval analytics projections (ADR-039 + ADR-034 Ph 4-6) ([#5014](https://github.com/langwatch/langwatch/issues/5014)) ([f76f8bb](https://github.com/langwatch/langwatch/commit/f76f8bbdc38210259b5395a571aa96cf4471e820))
- **api:** add a versioned Hono service builder ([#3156](https://github.com/langwatch/langwatch/issues/3156)) ([7f08a91](https://github.com/langwatch/langwatch/commit/7f08a9178ae811a233ecfb5b7e65d9380baf9365))
- **automations:** graph alerts in automations drawer + Liquid template wiring (ADR-034 Ph 5.1, 5.2, 8, 8.1) ([#5015](https://github.com/langwatch/langwatch/issues/5015)) ([abef8b7](https://github.com/langwatch/langwatch/commit/abef8b7d8d2df0bf61b16d23a86185410f05987a))
- **automations:** process-manager substrate + automations pipeline; legacy outbox retired (ADR-052) ([#5911](https://github.com/langwatch/langwatch/issues/5911)) ([0c61f45](https://github.com/langwatch/langwatch/commit/0c61f4527bf1203facac8bed7580f1f177e25c0e))
- **automations:** transactional outbox dispatch, per-trigger timing, liquid templates + authoring drawer ([#4498](https://github.com/langwatch/langwatch/issues/4498)) ([a59e910](https://github.com/langwatch/langwatch/commit/a59e910769398fea167a0f506e6ee1499d2be14f))
- canonical OTLP metric and log pipelines ([#5945](https://github.com/langwatch/langwatch/issues/5945)) ([e6fd3e8](https://github.com/langwatch/langwatch/commit/e6fd3e8a02c983c57b121206a52cfe962f1fa934))
- **charts:** datasets-S3 deploy support — worker PVC + migration Job (ADR-032) ([#5083](https://github.com/langwatch/langwatch/issues/5083)) ([8ddb0cc](https://github.com/langwatch/langwatch/commit/8ddb0ccda0dc0bcaf63b84495ad7f5fa65ddfd9c))
- **charts:** make Langy self-hostable via the Helm chart ([#6138](https://github.com/langwatch/langwatch/issues/6138)) ([35ecfbe](https://github.com/langwatch/langwatch/commit/35ecfbea27e8561d266ae23ff097d5c4d855d0cc))
- **ci:** per-PR Boxd preview VM workflow ([#3772](https://github.com/langwatch/langwatch/issues/3772)) ([6ff6447](https://github.com/langwatch/langwatch/commit/6ff644722d213175a0345e95c19df352143248bc))
- **cli-auth:** signup attribution + approval page in the onboarding design ([#5541](https://github.com/langwatch/langwatch/issues/5541)) ([2aef104](https://github.com/langwatch/langwatch/commit/2aef104aa87fb65b93b27ba0f7a5eaeffd5eba83))
- **cli:** agent-first `lw` CLI ([#5921](https://github.com/langwatch/langwatch/issues/5921)) ([efdaafc](https://github.com/langwatch/langwatch/commit/efdaafc09e8195720896315018f9bc05ee82020d))
- **clickhouse:** one windowed read with a measured fallback — queryWindowed (ADR-068) ([#6107](https://github.com/langwatch/langwatch/issues/6107)) ([e966bbe](https://github.com/langwatch/langwatch/commit/e966bbe266c439ecb70732d789b591a92e3e11ef))
- **cli:** scope per-tool telemetry persistence + add langwatch logout ([#5404](https://github.com/langwatch/langwatch/issues/5404)) ([1f81a16](https://github.com/langwatch/langwatch/commit/1f81a16628b904261a49fc4e4d1eff0343dc8a00))
- **coding-agent:** pipeline with a session aggregate (ADR-056) ([#6005](https://github.com/langwatch/langwatch/issues/6005)) ([11b5881](https://github.com/langwatch/langwatch/commit/11b58812165660d7dc9843a3b67932efd17e450c))
- **coding-agent:** read-back store for the session fold (ADR-066, closes the refold outage) ([#6079](https://github.com/langwatch/langwatch/issues/6079)) ([cd514d0](https://github.com/langwatch/langwatch/commit/cd514d0093e53db0cee4afa7db1860139d962808))
- **dev:** make local development work with no container runtime ([#6135](https://github.com/langwatch/langwatch/issues/6135)) ([03e22eb](https://github.com/langwatch/langwatch/commit/03e22eb81b1010fdf9598e6db19be5e037736d4c))
- **dev:** observability + logging hygiene, in-process workers, `haven pr` ([#5743](https://github.com/langwatch/langwatch/issues/5743)) ([3c16b42](https://github.com/langwatch/langwatch/commit/3c16b42e115b830bb15742e8c684c0a0387be7ef))
- **dev:** opt-in single-process mode — run workers inside the app ([#5700](https://github.com/langwatch/langwatch/issues/5700)) ([f87dc99](https://github.com/langwatch/langwatch/commit/f87dc99213ba6599e28670826918b3391f850670))
- **dev:** thuishaven — hostname-based local dev via portless ([#5713](https://github.com/langwatch/langwatch/issues/5713)) ([45a4073](https://github.com/langwatch/langwatch/commit/45a4073be74d7e093d85234bf5033ed5deb5a97b))
- **docs:** expand pairwise comparator docs ([#5533](https://github.com/langwatch/langwatch/issues/5533)) ([86a501c](https://github.com/langwatch/langwatch/commit/86a501ce656e01db3a41ddfa104ae94420cc557c))
- **errors:** handled-error remediation channel (tips/docsUrl/fault) + shared package ([#5917](https://github.com/langwatch/langwatch/issues/5917)) ([bf9bf5a](https://github.com/langwatch/langwatch/commit/bf9bf5ab61c1c70160be712532a92d81816f77be))
- **evaluators:** one "Comparison" judge for two or more candidates ([#5100](https://github.com/langwatch/langwatch/issues/5100), [#5101](https://github.com/langwatch/langwatch/issues/5101)) ([#5528](https://github.com/langwatch/langwatch/issues/5528)) ([37ab6d1](https://github.com/langwatch/langwatch/commit/37ab6d1072e333d289e17dfb1a2cc333159ae881))
- **event-sourcing:** coalesce recordTriggerMatch appends + durable dedup watermark (ADR-066 pillar 2) ([#6098](https://github.com/langwatch/langwatch/issues/6098)) ([cbc81e7](https://github.com/langwatch/langwatch/commit/cbc81e7361560e919ff307272e2ec533b4186200))
- **event-sourcing:** declared fold read windows — width as fold config, miss-coalescing in the executor ([#6102](https://github.com/langwatch/langwatch/issues/6102)) ([40e4871](https://github.com/langwatch/langwatch/commit/40e48715cc5368812b54068045eb9b72184a22a2))
- expand operational telemetry and harden gateway egress ([#5907](https://github.com/langwatch/langwatch/issues/5907)) ([81de1bf](https://github.com/langwatch/langwatch/commit/81de1bfc9091cc0b17559cfdc4aa76ffacf17be4))
- **experiments:** pairwise-evaluator UX overhaul + backend fixes ([#5452](https://github.com/langwatch/langwatch/issues/5452)) ([bec09cb](https://github.com/langwatch/langwatch/commit/bec09cb833fa75b2e0a17750e904b5df17dfa251))
- **experiments:** reroute legacy pairwise_compare to select_best_compare ([#5796](https://github.com/langwatch/langwatch/issues/5796)) ([5e5c7e5](https://github.com/langwatch/langwatch/commit/5e5c7e55f7bbfecd1855407d9cc2a88fb4bd5f79))
- **feature-flags:** gate Langy by the internal feature flag only ([#6013](https://github.com/langwatch/langwatch/issues/6013)) ([2625c3d](https://github.com/langwatch/langwatch/commit/2625c3da4d20980a21131408ca55d39ab53e6cff))
- **gateway:** flow VK tags to customer spans as trace labels ([#5995](https://github.com/langwatch/langwatch/issues/5995)) ([125292c](https://github.com/langwatch/langwatch/commit/125292ce779a7482ca0861047108c230272e984e))
- **gateway:** full voice support — /v1/audio/speech + /v1/audio/transcriptions for OpenAI and ElevenLabs ([#6168](https://github.com/langwatch/langwatch/issues/6168)) ([79c2c16](https://github.com/langwatch/langwatch/commit/79c2c168b0afea40ac2c01e8946acabef8971316))
- **group-queue:** active blob reclaim runner + ops blob store ([#6044](https://github.com/langwatch/langwatch/issues/6044)) ([35d6b75](https://github.com/langwatch/langwatch/commit/35d6b75346155053d1ddef776e6db419a169ab19))
- **groupqueue:** content-addressed tiered blob offload (ADR-029/030) ([#4999](https://github.com/langwatch/langwatch/issues/4999)) ([ffca3e6](https://github.com/langwatch/langwatch/commit/ffca3e6f798bb609d28baa30e720feca7ca54855))
- harden the pipeline against fat-payload poison (worker outage 2026-07-10) ([#5661](https://github.com/langwatch/langwatch/issues/5661)) ([494d0a9](https://github.com/langwatch/langwatch/commit/494d0a9819ceacdec01fa3a465064059a7c2b4e3))
- **haven:** interactive worktree prune — scan, sort, pick, delete ([#6004](https://github.com/langwatch/langwatch/issues/6004)) ([aaefdcb](https://github.com/langwatch/langwatch/commit/aaefdcb51c14853a6213267cae68fcbe32a3803f))
- **haven:** keep the managed ClickHouse's own logs lightweight by default ([#5924](https://github.com/langwatch/langwatch/issues/5924)) ([3f9fe0b](https://github.com/langwatch/langwatch/commit/3f9fe0bd85de58a8429605952cf92e955ad64dc9))
- **haven:** lifecycle usability — safer down, restart, detach, switch, seed extras + hub web revamp ([#5814](https://github.com/langwatch/langwatch/issues/5814)) ([2916575](https://github.com/langwatch/langwatch/commit/2916575bca0ab384f95b4ce2239a6d8d59fe2c62))
- **haven:** offer to add the Go bin dir to PATH on 'make haven install' ([3ba7a35](https://github.com/langwatch/langwatch/commit/3ba7a358c7fb31dc52e61b99e09646ae8489ee6f))
- **haven:** offer to add the Go bin dir to PATH on `make haven install` ([#5805](https://github.com/langwatch/langwatch/issues/5805)) ([3ba7a35](https://github.com/langwatch/langwatch/commit/3ba7a358c7fb31dc52e61b99e09646ae8489ee6f))
- langy documentation section, and Langy enabled by default in the Helm chart ([#6106](https://github.com/langwatch/langwatch/issues/6106)) ([2570bd6](https://github.com/langwatch/langwatch/commit/2570bd61d4d7edf73afbe1d778f4dd957b882be6))
- **langy:** event-sourced frontend, model-emitted cards, and a home built on one field ([#6027](https://github.com/langwatch/langwatch/issues/6027)) ([5d72c7e](https://github.com/langwatch/langwatch/commit/5d72c7efc7b27fbc683ed77df7a943d01fb6b7a9))
- **langy:** flag-only access, a langy permission family, and no product-managed credentials over the API ([#5966](https://github.com/langwatch/langwatch/issues/5966)) ([84cfbb3](https://github.com/langwatch/langwatch/commit/84cfbb3fe6f693d4feb69777b42a7dd217633239))
- **langy:** langy goes large - event driven orchestration, ideated on a design concept, made the go agent well tuff ([#5741](https://github.com/langwatch/langwatch/issues/5741)) ([5982038](https://github.com/langwatch/langwatch/commit/59820384139fdf275a799719fa677c3106b64ad1))
- **langy:** light mode back on the app palette, docked panel becomes a second shell card, drawers yield the right edge ([#5991](https://github.com/langwatch/langwatch/issues/5991)) ([48c0f5b](https://github.com/langwatch/langwatch/commit/48c0f5b6a336eeac403ddbc1f88e8366aba5f58b))
- **langy:** remove deprecated api surfaces, nicer gating ([#5892](https://github.com/langwatch/langwatch/issues/5892)) ([332e275](https://github.com/langwatch/langwatch/commit/332e275714e6f24f333c9083b43ac734383da47c))
- **langy:** replace iptables sibling-isolation with per-worker opencode password (gVisor-safe) ([#5311](https://github.com/langwatch/langwatch/issues/5311)) ([9d52657](https://github.com/langwatch/langwatch/commit/9d52657451d6bc4a06f324f69067852d3b5efc12))
- **langy:** stop a turn for real, choose what Langy sees, and a home to ask from (ADR-058) ([#6026](https://github.com/langwatch/langwatch/issues/6026)) ([a29667a](https://github.com/langwatch/langwatch/commit/a29667a4723b1db697ab21d7692e65ccb03685b4))
- **model-providers:** codex, sign in with your OpenAI account ([#6000](https://github.com/langwatch/langwatch/issues/6000)) ([940baf9](https://github.com/langwatch/langwatch/commit/940baf943d5efa52d1e45c432d59ab5791830ad3))
- **observability:** full-stack trace correlation — browser RUM + tRPC context (ADR-058) ([#6015](https://github.com/langwatch/langwatch/issues/6015)) ([73f73d7](https://github.com/langwatch/langwatch/commit/73f73d7fe3252219ee7365d4a90989abc0600e01))
- **observability:** local logs/traces/metrics stack + Grafana for agent debugging ([#5698](https://github.com/langwatch/langwatch/issues/5698)) ([226083a](https://github.com/langwatch/langwatch/commit/226083a5462afd678bc2999469bd01a9613e49c6))
- **onboarding:** intent-forked onboarding — governance vs LLMOps (ADR-038) ([#5536](https://github.com/langwatch/langwatch/issues/5536)) ([be27c7a](https://github.com/langwatch/langwatch/commit/be27c7a7b4b4485d46f09198cae233b892266712))
- **ops:** keep Deja View access while impersonating a customer ([#5774](https://github.com/langwatch/langwatch/issues/5774)) ([cc2122f](https://github.com/langwatch/langwatch/commit/cc2122fa643f95e5d10fd5b393fa159980c4474e))
- **ops:** show event subscribers and the per-aggregate manager state machine in DejaView ([#6047](https://github.com/langwatch/langwatch/issues/6047)) ([f25859c](https://github.com/langwatch/langwatch/commit/f25859c448ad7ae9e6171a298f833b06eaac7e57))
- **pairwise-compare:** support comparing A vs B without a golden/reference answer ([#5381](https://github.com/langwatch/langwatch/issues/5381)) ([8d58404](https://github.com/langwatch/langwatch/commit/8d584040e34d402df23a2fe391f20a2e79662b41))
- **profile:** let users upload a custom avatar photo ([#6086](https://github.com/langwatch/langwatch/issues/6086)) ([#6099](https://github.com/langwatch/langwatch/issues/6099)) ([efa96f7](https://github.com/langwatch/langwatch/commit/efa96f7f6a23572f9f05f674ef6c57d07fd552c1))
- **prompts:** add Duplicate prompt action to playground menu ([#5577](https://github.com/langwatch/langwatch/issues/5577)) ([2a0ab02](https://github.com/langwatch/langwatch/commit/2a0ab024b1dfd144130ad7d0c04d7fc70fd27070))
- **prompts:** tab switcher for the prompt playground ([#5639](https://github.com/langwatch/langwatch/issues/5639)) ([221d394](https://github.com/langwatch/langwatch/commit/221d394be795abe33b206896470df06c75d40c4e))
- **replay:** support map projection replay with marker-based deferral ([#3268](https://github.com/langwatch/langwatch/issues/3268)) ([970dc8d](https://github.com/langwatch/langwatch/commit/970dc8d2c5156c57787fd18f11547dbbef7344d1))
- **scenarios:** hand scenario runs to the simulations tab already open ([#6137](https://github.com/langwatch/langwatch/issues/6137)) ([48daf08](https://github.com/langwatch/langwatch/commit/48daf08ae5bca4ac6f2ff246414c918274035bbc))
- **security:** shared SSRF classification + fail-closed tenant egress (ADR-053) ([#5922](https://github.com/langwatch/langwatch/issues/5922)) ([4f2afaa](https://github.com/langwatch/langwatch/commit/4f2afaa128d005c40a60e854200268f73818b83d))
- separate experiments from online evaluations ([#5916](https://github.com/langwatch/langwatch/issues/5916)) ([27d66a6](https://github.com/langwatch/langwatch/commit/27d66a60f09b99477c2e139dff2dffa7ece8f144))
- **server:** run Langy on npx installs and slim the install to what gets used ([#6144](https://github.com/langwatch/langwatch/issues/6144)) ([4405b04](https://github.com/langwatch/langwatch/commit/4405b04f1dfc70589994b2792596adbed41f336b))
- **sharing:** single token-validated share surface (ADR-057) ([#5809](https://github.com/langwatch/langwatch/issues/5809)) ([548dbe0](https://github.com/langwatch/langwatch/commit/548dbe0d29ed59124c104fea0ce48678ad93a8bc))
- **simulations:** handled infra errors, no-response state, cert-safe runner, accent polish ([#5929](https://github.com/langwatch/langwatch/issues/5929)) ([4a26185](https://github.com/langwatch/langwatch/commit/4a261851081a635c1bde126de97a45ffec6634af))
- **simulations:** stop re-downloading run payloads on timers + refresh run surfaces to the Traces V2 language ([#5540](https://github.com/langwatch/langwatch/issues/5540)) ([fadf7d2](https://github.com/langwatch/langwatch/commit/fadf7d2abe4c38b923734502952c15721ce24227))
- **skills:** evolve the insight skills into a diagnosis-to-improvement ladder ([#5968](https://github.com/langwatch/langwatch/issues/5968)) ([f0b458d](https://github.com/langwatch/langwatch/commit/f0b458dd97041f5a29024e360130ca6cacf76593))
- **studio:** manage nodes and connections with the Delete key and a node drawer action menu ([#4974](https://github.com/langwatch/langwatch/issues/4974)) ([2fce533](https://github.com/langwatch/langwatch/commit/2fce533cf1dde290dc4fa3d2f0f74252fbd37ccf))
- **traces-v2:** cursor-paged span-tree fetch + bounded per-trace span reads ([#5662](https://github.com/langwatch/langwatch/issues/5662)) ([c106095](https://github.com/langwatch/langwatch/commit/c106095f517ba3a2505041a4b1abde813af19fb0))
- **traces:** canonicalise Vertex AI Agent Engine (Google ADK) spans ([#5773](https://github.com/langwatch/langwatch/issues/5773)) ([4df8fa8](https://github.com/langwatch/langwatch/commit/4df8fa870032619c8ef30e707b5f81c7cf72ecee))
- **traces:** extract inline media to S3-backed storage at the ingestion edge, render it everywhere ([#5949](https://github.com/langwatch/langwatch/issues/5949)) ([987a28b](https://github.com/langwatch/langwatch/commit/987a28bbfe1d3afb4d9a70235f892919f671cd4a))
- **traces:** make Trace Explorer the default, mark legacy traces as going away ([#5663](https://github.com/langwatch/langwatch/issues/5663)) ([fdb2027](https://github.com/langwatch/langwatch/commit/fdb20272ac311ee7214ebc7e14981f6ad71fd8b8))
- **traces:** promote skill invocations in the trace drawer ([#5530](https://github.com/langwatch/langwatch/issues/5530)) ([4f4ecbb](https://github.com/langwatch/langwatch/commit/4f4ecbbda943e34263c3a9fd78054a82a0953584))
- **ui:** unify section navigation layouts ([#6009](https://github.com/langwatch/langwatch/issues/6009)) ([d683666](https://github.com/langwatch/langwatch/commit/d683666e5fe5badcfad03ddabbf9e296e5dd04b3))
- **workflows:** remove workflow-level default_llm, LLM nodes own their config ([#5866](https://github.com/langwatch/langwatch/issues/5866)) ([66ae096](https://github.com/langwatch/langwatch/commit/66ae096c90d79cc6fcb844a9915aa7946e7af6e7))
### Bug Fixes
- **aigateway:** fall back to next provider on upstream 404 ([#5358](https://github.com/langwatch/langwatch/issues/5358)) ([3c2ed9a](https://github.com/langwatch/langwatch/commit/3c2ed9acb6246cbcfde255eced09f69874b54dbc))
- **aigateway:** forward mid-stream provider error events with their payload, cut in-stream retry loops at the relay ([#6128](https://github.com/langwatch/langwatch/issues/6128)) ([13d9526](https://github.com/langwatch/langwatch/commit/13d9526f9cf94a68d16e038dff570b0483b2d08b))
- **aigateway:** keep non-streaming connections warm during slow dispatch ([#5963](https://github.com/langwatch/langwatch/issues/5963)) ([dbba3d1](https://github.com/langwatch/langwatch/commit/dbba3d1864bf2989a0780015899db73bfc5f8d5d))
- **aigateway:** route custom (OpenAI-compatible) providers to their configured base URL ([#5326](https://github.com/langwatch/langwatch/issues/5326)) ([0d0c1bf](https://github.com/langwatch/langwatch/commit/0d0c1bf395fe559f839ba80a7d49c09675c28028))
- **aigateway:** use require.ErrorAs in dispatch_test (testifylint) ([#5399](https://github.com/langwatch/langwatch/issues/5399)) ([#5400](https://github.com/langwatch/langwatch/issues/5400)) ([5a68e32](https://github.com/langwatch/langwatch/commit/5a68e32060b270ccf3a7b5bf7da61f36fd168792))
- **analytics:** include score-only evaluators in evaluation_passed groupBy ([#5007](https://github.com/langwatch/langwatch/issues/5007)) ([ef7d3a0](https://github.com/langwatch/langwatch/commit/ef7d3a04fd2ef6d9e3b6f5bd3679c90ef50c15d1))
- **analytics:** monitor cards match the analytics donut pass rate; forward negateFilters/traceIds ([#5858](https://github.com/langwatch/langwatch/issues/5858)) ([75eee96](https://github.com/langwatch/langwatch/commit/75eee964cc55b3371487e98ea09f67ff4c5c91c7))
- **api:** gate project base-key reads on project:update ([#6029](https://github.com/langwatch/langwatch/issues/6029)) ([b3bb115](https://github.com/langwatch/langwatch/commit/b3bb11539926d27faf32f7e48b53c3a684662311))
- **api:** surface ModelNotConfiguredError as a clean 400, not a raw 500 ([#5987](https://github.com/langwatch/langwatch/issues/5987)) ([ae90e63](https://github.com/langwatch/langwatch/commit/ae90e63bea2c116ef96b3f3663246264c06d3bc9))
- **api:** trust real HandledErrors, and log the ones we swallow ([#5934](https://github.com/langwatch/langwatch/issues/5934)) ([4cc669b](https://github.com/langwatch/langwatch/commit/4cc669b020ce44223e51278193970cdf15ccdd24))
- **auth:** close open redirect on /auth/signin callbackUrl ([#6070](https://github.com/langwatch/langwatch/issues/6070)) ([9985a31](https://github.com/langwatch/langwatch/commit/9985a311232de8334c35a122ce2c75a609e0b079))
- **billing:** resolve plan once per usage limit check to avoid snapshot race ([#5310](https://github.com/langwatch/langwatch/issues/5310)) ([c030de4](https://github.com/langwatch/langwatch/commit/c030de410e75287ac6f92042652445e0a881d1f1))
- **billing:** wire evaluation runs to billable events meter ([#5125](https://github.com/langwatch/langwatch/issues/5125)) ([da5d940](https://github.com/langwatch/langwatch/commit/da5d9401b8a292c8848b029c08b5bceed5526cc6))
- **ci:** drop JSON reporter from unit shards + lower hang hard-floor ([#4476](https://github.com/langwatch/langwatch/issues/4476)) ([#5394](https://github.com/langwatch/langwatch/issues/5394)) ([96d089a](https://github.com/langwatch/langwatch/commit/96d089afbdd1d7acf7fafe7a9199848cce87d5c8))
- **ci:** re-enable skipped e2e tests with NLP services and health checks ([#3082](https://github.com/langwatch/langwatch/issues/3082)) ([e0b27ec](https://github.com/langwatch/langwatch/commit/e0b27ec3dc1aae052ab12394e6e6931e1fbb55b8))
- **cli:** route `langwatch claude` telemetry-persist into ~/.claude/settings.json ([#5352](https://github.com/langwatch/langwatch/issues/5352)) ([668d15b](https://github.com/langwatch/langwatch/commit/668d15b23c6fa030b8ed399b988d74ab0975fbaf))
- **cli:** route `langwatch claude` telemetry-persist offer into ~/.claude/settings.json ([668d15b](https://github.com/langwatch/langwatch/commit/668d15b23c6fa030b8ed399b988d74ab0975fbaf))
- **coding-agent:** monotonic version stamp — two session upserts can no longer tie on UpdatedAt ([#6127](https://github.com/langwatch/langwatch/issues/6127)) ([38afd0e](https://github.com/langwatch/langwatch/commit/38afd0e3c69822a1c7e5e4d59ed6b63bd9a3d04f))
- comparison judge error handling ([#5789](https://github.com/langwatch/langwatch/issues/5789)) ([a04a5cb](https://github.com/langwatch/langwatch/commit/a04a5cbcdddebcd161f46c7e55f7223009a3dd84))
- **deps:** bump @anthropic-ai/claude-code to 2.1.202 with consistent lockfiles ([#5808](https://github.com/langwatch/langwatch/issues/5808)) ([a32cb2d](https://github.com/langwatch/langwatch/commit/a32cb2d7935dab244e05dd6ef360296d90a548d5))
- **deps:** repair corrupted langwatch pnpm-lock.yaml ([#5393](https://github.com/langwatch/langwatch/issues/5393)) ([8d3ee77](https://github.com/langwatch/langwatch/commit/8d3ee7702d952170a7fb32235a84d55d7b2dadcb))
- **dev:** skip tracked files in post-checkout env-copy hook ([#5397](https://github.com/langwatch/langwatch/issues/5397)) ([131a489](https://github.com/langwatch/langwatch/commit/131a489900b1c8717e4d4151e678a7cd3385b1e9))
- **docker:** repair + CI-guard the langyagent image build ([#6024](https://github.com/langwatch/langwatch/issues/6024)) ([a147626](https://github.com/langwatch/langwatch/commit/a1476266f310b825ed06b3eb98e6db2eda92fc0e))
- **docker:** ship @langwatch/handled-error in the runtime image ([#5967](https://github.com/langwatch/langwatch/issues/5967)) ([8dcef86](https://github.com/langwatch/langwatch/commit/8dcef8664b888d9b9facf7a04a1923935816fbe6))
- **docs:** PostHog capture via first-party proxy + docs-to-app attribution ([068f708](https://github.com/langwatch/langwatch/commit/068f70807622c3a710af7c733b20c95578c5132e))
- **docs:** repair SKILL.md downloads and restore SSR on skills directory pages ([#5946](https://github.com/langwatch/langwatch/issues/5946)) ([6114d40](https://github.com/langwatch/langwatch/commit/6114d4091d6826d8088f1c3a6190ffc4da178bfc))
- **docs:** route PostHog via first-party proxy + docs-to-app attribution ([#5361](https://github.com/langwatch/langwatch/issues/5361)) ([068f708](https://github.com/langwatch/langwatch/commit/068f70807622c3a710af7c733b20c95578c5132e))
- **env:** telemetry routing via LANGWATCH_ENDPOINT, drop localhost fallbacks ([#3541](https://github.com/langwatch/langwatch/issues/3541)) ([f6231f4](https://github.com/langwatch/langwatch/commit/f6231f4d79b22f0436365872c47489b7ae65edf6))
- **errors:** the wire message is the code, on every transport ([#5984](https://github.com/langwatch/langwatch/issues/5984)) ([31ad81c](https://github.com/langwatch/langwatch/commit/31ad81c2bf1272ad412bf8af4b1a11342f35d020))
- **evaluations-legacy:** pass resolved model to getEvaluatorDefaultSettings ([#5468](https://github.com/langwatch/langwatch/issues/5468)) ([#5469](https://github.com/langwatch/langwatch/issues/5469)) ([4151e1b](https://github.com/langwatch/langwatch/commit/4151e1b361398ea3d32c65774e064d4d8c6af3d7))
- **evaluations:** render field-mapping section when Run opens the evaluator editor ([#950](https://github.com/langwatch/langwatch/issues/950)) ([#5865](https://github.com/langwatch/langwatch/issues/5865)) ([f1ffeec](https://github.com/langwatch/langwatch/commit/f1ffeecc107d0198f8db53e701534289a4809226))
- **evaluations:** treat evaluator misconfiguration as a skip, not an error ([#5942](https://github.com/langwatch/langwatch/issues/5942)) ([1abb4f9](https://github.com/langwatch/langwatch/commit/1abb4f9e117ddbc6969c1a3af3dedc84a3805e71))
- **evaluators:** explain why the code evaluator Create button is disabled ([#4911](https://github.com/langwatch/langwatch/issues/4911)) ([687bf3f](https://github.com/langwatch/langwatch/commit/687bf3ff0fe3d8f22b47daa6163c3ccce69cb2c4))
- **event-sourcing:** bound out-of-order fold re-fold amplification + remove SDK radar ([#5707](https://github.com/langwatch/langwatch/issues/5707)) ([210a5cd](https://github.com/langwatch/langwatch/commit/210a5cdac19246f51b52893f5e8bfa71c3428f0b))
- **event-sourcing:** fold redelivery idempotency + group poison guard (replaces [#5918](https://github.com/langwatch/langwatch/issues/5918), [#6006](https://github.com/langwatch/langwatch/issues/6006)) ([#6016](https://github.com/langwatch/langwatch/issues/6016)) ([f5785f2](https://github.com/langwatch/langwatch/commit/f5785f21b7cc8767e840345e86c60a4923904cb0))
- **experiments-v3:** resolve pairwise comparator UX bugs from dogfooding ([#5367](https://github.com/langwatch/langwatch/issues/5367)) ([dc97754](https://github.com/langwatch/langwatch/commit/dc97754cdef090f01747a02595bf52759c55576c))
- **experiments:** disambiguate same-name pairwise variants with numbering + click-to-highlight ([#5523](https://github.com/langwatch/langwatch/issues/5523)) ([55ec949](https://github.com/langwatch/langwatch/commit/55ec9491f009014d00ade56dc348d27340698a2c))
- **experiments:** route workflow-agent targets to executeWorkflowCell ([#5871](https://github.com/langwatch/langwatch/issues/5871)) ([c3599e0](https://github.com/langwatch/langwatch/commit/c3599e09d1c38261d29d5a1fef320f856e1b6888))
- **gateway:** make guardrails, metrics, budgets and onboarding actually work ([#6143](https://github.com/langwatch/langwatch/issues/6143)) ([cecdb21](https://github.com/langwatch/langwatch/commit/cecdb21c0f898ce336323f37c9d03838c0368ec1))
- **gateway:** make the VK usage snippet copy-paste-correct for self-hosted and custom keys ([#5362](https://github.com/langwatch/langwatch/issues/5362)) ([3d08484](https://github.com/langwatch/langwatch/commit/3d0848430c989cbf60aaefe0f7b40b988fd690f5))
- **gateway:** resolve Azure endpoint + deployment on the /go/proxy path ([#5760](https://github.com/langwatch/langwatch/issues/5760)) ([#5762](https://github.com/langwatch/langwatch/issues/5762)) ([ea8dab3](https://github.com/langwatch/langwatch/commit/ea8dab36217560dbc2201584b1f770b480b3d877))
- **governance:** enable the governance flag by default so self-hosted device login works out of the box ([#5901](https://github.com/langwatch/langwatch/issues/5901)) ([9ad835d](https://github.com/langwatch/langwatch/commit/9ad835df5692a28324ccec49f4f2bac5ee3f82ae))
- **governance:** scope /me/usage ingestion-ledger queries to the org's governance tenant ([#5224](https://github.com/langwatch/langwatch/issues/5224)) ([b47499a](https://github.com/langwatch/langwatch/commit/b47499ad788def92106ff25ab55e4b3ca1ba7941))
- **group-queue:** bound blob retention with a release grace window ([#6028](https://github.com/langwatch/langwatch/issues/6028)) ([a161cda](https://github.com/langwatch/langwatch/commit/a161cda080c147bb4a678143a2becc5b02b13a71))
- **group-queue:** lease-based blob lifecycle, Lua maintenance sweep, and fold post-store telemetry ([#5947](https://github.com/langwatch/langwatch/issues/5947)) ([0479226](https://github.com/langwatch/langwatch/commit/04792267fcf9b9f277f9d462260f00f8ab0cf739))
- **group-queue:** move dedup-squash blob-hold transfers into the stage eval ([#5598](https://github.com/langwatch/langwatch/issues/5598)) ([4fc7488](https://github.com/langwatch/langwatch/commit/4fc748824f2a33ee7dd04616534b4ed9d94a64b3))
- **group-queue:** name, count and stop destroying discarded staged jobs ([#5821](https://github.com/langwatch/langwatch/issues/5821)) ([edc6a33](https://github.com/langwatch/langwatch/commit/edc6a33610c3a0283a866ea26c5531f7296387b7))
- **group-queue:** planned shutdowns stop counting as worker deaths in the poison guard ([#6122](https://github.com/langwatch/langwatch/issues/6122)) ([2861179](https://github.com/langwatch/langwatch/commit/2861179c0d8a6af5162ad0bc3cd0d84cf025318c))
- **group-queue:** write GQ2 redis blobs with the 4-day backstop, not GQ1's 7-day default ([#5594](https://github.com/langwatch/langwatch/issues/5594)) ([30d79a0](https://github.com/langwatch/langwatch/commit/30d79a0feb305c5950f5c0be4c1b4a91d295038c))
- **groupQueue:** classify redis-tier blob-read errors as transient, await holder bookkeeping ([#5736](https://github.com/langwatch/langwatch/issues/5736)) ([7fba70d](https://github.com/langwatch/langwatch/commit/7fba70d351c56630d8d58f5c1948abe76dd3ad6f))
- **haven:** stop the langwatch platform self-referencing its own trace ingest ([3c1263f](https://github.com/langwatch/langwatch/commit/3c1263f855c8dc3be132db8d1ca9cabf71543593))
- **helm:** set LANGWATCH_ENDPOINT on the app deployment so post-[#3541](https://github.com/langwatch/langwatch/issues/3541) images boot ([#5660](https://github.com/langwatch/langwatch/issues/5660)) ([c50a3ed](https://github.com/langwatch/langwatch/commit/c50a3ed72c82beba88463b3d692e55fe2fe2f27f))
- **home:** bring back a prominent "Send your first trace" CTA on the quiet home ([#6112](https://github.com/langwatch/langwatch/issues/6112)) ([3c771c6](https://github.com/langwatch/langwatch/commit/3c771c656ea3e7fc538a3bdb5283af09bd985981))
- **invite:** surface acceptInvite failures instead of dead-ending on the loading screen ([#5551](https://github.com/langwatch/langwatch/issues/5551)) ([9607bd0](https://github.com/langwatch/langwatch/commit/9607bd0966cacde8306d15658dc2a4212fb77c01))
- keep process failure diagnostics generic ([#5913](https://github.com/langwatch/langwatch/issues/5913)) ([6836b9e](https://github.com/langwatch/langwatch/commit/6836b9ef48c5505ef51b53702a30ee876d1c8b13))
- **langy:** add turnExists to the conversation-repo test double ([#5981](https://github.com/langwatch/langwatch/issues/5981)) ([65cbeb2](https://github.com/langwatch/langwatch/commit/65cbeb2bd073ec0ca197bb899d931989e73fa15d))
- **langy:** complete the turnExists mock in langy-message.service test ([#5989](https://github.com/langwatch/langwatch/issues/5989)) ([18be586](https://github.com/langwatch/langwatch/commit/18be586740a43c387579aba2ddce18795a8d656a))
- **langy:** constrain worker processes ([#5884](https://github.com/langwatch/langwatch/issues/5884)) ([4864fe9](https://github.com/langwatch/langwatch/commit/4864fe91313f5e9142de2fecc4fc613aa54082fb))
- **langy:** cut hopeless LLM 429 retry loops at the relay, chart netpol collector egress + IPv6 opt-in ([#6104](https://github.com/langwatch/langwatch/issues/6104)) ([b240650](https://github.com/langwatch/langwatch/commit/b240650682e4608f674738d42997a37108a17f42))
- **langy:** harden GitHub App installation binding at /setup ([#6067](https://github.com/langwatch/langwatch/issues/6067)) ([068106c](https://github.com/langwatch/langwatch/commit/068106cac5e73783a8c28199705c01f38b4cac8e))
- **langy:** honor org-scoped rollout rules in the UI visibility gate ([#6022](https://github.com/langwatch/langwatch/issues/6022)) ([27b2054](https://github.com/langwatch/langwatch/commit/27b2054bfc7c14ceb9c85764e9a18d6bf748a1ad))
- **langy:** live-watched turn failures render their typed card, not the unknown apology ([#6115](https://github.com/langwatch/langwatch/issues/6115)) ([ba0e355](https://github.com/langwatch/langwatch/commit/ba0e35545f9863519b974576e1a2c4ec5ef73d4f))
- **langy:** preflight health check before reserving a PR permit ([#5306](https://github.com/langwatch/langwatch/issues/5306)) ([52f9eed](https://github.com/langwatch/langwatch/commit/52f9eed16f5607d490c5c8ad63d057168de110d6))
- **langy:** red-team + expanded scenario coverage, fix root causes found along the way ([#5986](https://github.com/langwatch/langwatch/issues/5986)) ([48ccc7d](https://github.com/langwatch/langwatch/commit/48ccc7daa9fd5324b44779c6887247eb19c3d632))
- **langy:** refresh open conversation on turns it did not initiate ([#5978](https://github.com/langwatch/langwatch/issues/5978)) ([d024e95](https://github.com/langwatch/langwatch/commit/d024e955b139c583ebacdb9b315ac73015e2991b))
- **langy:** stop proposal-handler registration from looping the workbench ([#5280](https://github.com/langwatch/langwatch/issues/5280)) ([d5909fc](https://github.com/langwatch/langwatch/commit/d5909fc52dc6ffafabd094bac67e0538df56f4be))
- **langy:** stop the relay dropping progress frames and hanging on reconnect ([#6007](https://github.com/langwatch/langwatch/issues/6007)) ([f143a92](https://github.com/langwatch/langwatch/commit/f143a92692ddff4c3a346da9f0617f35159b19eb))
- **langy:** turn-end honesty, backend feedback cadence, and panel polish ([#5999](https://github.com/langwatch/langwatch/issues/5999)) ([42119ec](https://github.com/langwatch/langwatch/commit/42119ec14cea32a63900b9b11eb3fbc425605154))
- **licensing:** personal workspaces no longer consume plan limits ([#6189](https://github.com/langwatch/langwatch/issues/6189)) ([2eac8e8](https://github.com/langwatch/langwatch/commit/2eac8e8b410419ced6f9dc3334d6b8af32303d80))
- **mcp-server:** bump vitest to 4.1.8 for SNYK-JS-VITEST-17375131 ([#5379](https://github.com/langwatch/langwatch/issues/5379)) ([f495f35](https://github.com/langwatch/langwatch/commit/f495f35e385db610bdfbd235992dbcf18df8b1eb))
- **mcp-server:** keep zod and @modelcontextprotocol/sdk as real dependencies ([#5976](https://github.com/langwatch/langwatch/issues/5976)) ([2a368ef](https://github.com/langwatch/langwatch/commit/2a368eff7f7b1129b992bf3a74259e63cf299140))
- **mcp-server:** move unused runtime deps to devDependencies (npx cold-start 27s -> 2s) ([#5965](https://github.com/langwatch/langwatch/issues/5965)) ([7c5b49a](https://github.com/langwatch/langwatch/commit/7c5b49a18cc24a1c9f0a462d521c5907e4e98216))
- **mcp-server:** surface evaluation results in search_traces ([#5983](https://github.com/langwatch/langwatch/issues/5983)) ([dacb1e9](https://github.com/langwatch/langwatch/commit/dacb1e9fbadfb0d156bf44d31cd263720180eded))
- **mcp:** validate redirect_uri against registered OAuth clients ([#6069](https://github.com/langwatch/langwatch/issues/6069)) ([9b08141](https://github.com/langwatch/langwatch/commit/9b0814190aad5be2838db06dcd8c4fa23ec78e11))
- **me:** rename Sessions to Devices, keep simulations date window on set switch ([#6136](https://github.com/langwatch/langwatch/issues/6136)) ([7a9917a](https://github.com/langwatch/langwatch/commit/7a9917a13d07bd31c33bd8c0ccd9a84678c7cd41))
- **metrics:** correct oldest-pending-age gauge + reset stale CH table gauges ([bf8263f](https://github.com/langwatch/langwatch/commit/bf8263f181639050490070d70331a29c1e15b124))
- **metrics:** correct oldest-pending-age gauge + reset stale ClickHouse table gauges ([#6084](https://github.com/langwatch/langwatch/issues/6084)) ([bf8263f](https://github.com/langwatch/langwatch/commit/bf8263f181639050490070d70331a29c1e15b124))
- **metrics:** normalize entity IDs out of the http_request_duration path label ([#5763](https://github.com/langwatch/langwatch/issues/5763)) ([4ad10f8](https://github.com/langwatch/langwatch/commit/4ad10f8abb66ccc09491e65ab71324b6d4e80899))
- **model-providers:** custom display names resolve in every picker ([#5837](https://github.com/langwatch/langwatch/issues/5837)) ([#5838](https://github.com/langwatch/langwatch/issues/5838)) ([24c314a](https://github.com/langwatch/langwatch/commit/24c314a1f82ac8769a9c3f59947c4d43d03f7987))
- **model-providers:** ElevenLabs key validation uses xi-api-key instead of failing with a fake network error ([#6188](https://github.com/langwatch/langwatch/issues/6188)) ([05f4073](https://github.com/langwatch/langwatch/commit/05f4073cb4d558fe36a7c899d5f12b2f90888d8d))
- **model-providers:** honour team role bindings in batch RBAC, pick the provider row that serves the model, surface Ask AI errors, drawer translate ([#5964](https://github.com/langwatch/langwatch/issues/5964)) ([9e5059b](https://github.com/langwatch/langwatch/commit/9e5059b66e4d0b13e224071b5b311d6ff5c78ef2))
- **model-providers:** latest alias follows named tier generations ([#6147](https://github.com/langwatch/langwatch/issues/6147)) ([ba93d59](https://github.com/langwatch/langwatch/commit/ba93d59a79c9ebe7cd7739848ac935c91e93c76d))
- **model-providers:** prefer enabled row over narrower-scope disabled row in collapse ([#5575](https://github.com/langwatch/langwatch/issues/5575)) ([#5738](https://github.com/langwatch/langwatch/issues/5738)) ([700e149](https://github.com/langwatch/langwatch/commit/700e1492a15788415c9adeb033a19f9f6fca99de))
- **model-providers:** show custom model Display Name in selection UI ([#5824](https://github.com/langwatch/langwatch/issues/5824)) ([60b9efc](https://github.com/langwatch/langwatch/commit/60b9efc146f88c1cabc07cefe770dc1271f300e8))
- **model-providers:** stop getAllForProject returning decrypted secrets ([#6003](https://github.com/langwatch/langwatch/issues/6003)) ([84773e8](https://github.com/langwatch/langwatch/commit/84773e8b3c685b5e9690eaee1e0e51a3185edf1c))
- **model-providers:** sync newly-added providers across tabs instantly ([#5897](https://github.com/langwatch/langwatch/issues/5897)) ([4cffbca](https://github.com/langwatch/langwatch/commit/4cffbcaae6a905f5a0315d43ddba95d967bdb4ad))
- **model-providers:** validate ElevenLabs keys with xi-api-key, stop faking network errors ([05f4073](https://github.com/langwatch/langwatch/commit/05f4073cb4d558fe36a7c899d5f12b2f90888d8d))
- **monitors:** stop per-trace evaluations running twice (survivesDispatch dedup) ([#5163](https://github.com/langwatch/langwatch/issues/5163)) ([0a0d9dd](https://github.com/langwatch/langwatch/commit/0a0d9dd65a61a85e7436e69afe16fd3314db82a4))
- **navigation:** a personal workspace is never the ambient organization context, and coding-agent signups provision one ([#6190](https://github.com/langwatch/langwatch/issues/6190)) ([7f103eb](https://github.com/langwatch/langwatch/commit/7f103eb62218418ee4203b50c03aaefa2ca6147a))
- **nlpgo:** withhold pod environment from code-block subprocess ([#5923](https://github.com/langwatch/langwatch/issues/5923)) ([521b9b2](https://github.com/langwatch/langwatch/commit/521b9b2ea65fddb7fcefcba7af20b5a39604c97c))
- **otel:** backend services default to full sampling in every environment ([#5992](https://github.com/langwatch/langwatch/issues/5992)) ([abc0763](https://github.com/langwatch/langwatch/commit/abc076370c8c3f8fc26addf0ecc2781f3ee0332e))
- **otel:** end-to-end telemetry correctness and customer/internal trace isolation ([#5990](https://github.com/langwatch/langwatch/issues/5990)) ([9765454](https://github.com/langwatch/langwatch/commit/976545412259917983bbe68a55ed78368472965e))
- **outbox:** wire the outbox runtime into EventSourcing on workers ([#5532](https://github.com/langwatch/langwatch/issues/5532)) ([6b04bce](https://github.com/langwatch/langwatch/commit/6b04bced5337b1dd80ee5153bc75a5c69790d05c))
- post-merge codex and Langy dogfood batch ([#6073](https://github.com/langwatch/langwatch/issues/6073)) ([a5a1e5a](https://github.com/langwatch/langwatch/commit/a5a1e5ac92854fc5a9619373ea57591f7b702539))
- **prompts:** show full version commit messages, describe local-file updates ([#6100](https://github.com/langwatch/langwatch/issues/6100)) ([08f3af0](https://github.com/langwatch/langwatch/commit/08f3af042ef6af8c683ba8e1e7f079aaefb7102f))
- **prompts:** show who authored each prompt version ([#6083](https://github.com/langwatch/langwatch/issues/6083)) ([10b0440](https://github.com/langwatch/langwatch/commit/10b04408d84649939344ce595a5bdf6890ddc5d1))
- **prompts:** stop prompt playground tabs from leaking memory ([#5456](https://github.com/langwatch/langwatch/issues/5456)) ([fec392b](https://github.com/langwatch/langwatch/commit/fec392b4b977366e3ef7efeafa19ddbd56f740c5))
- **recursion:** stop the langwatch platform self-referencing its own trace ingest ([#5745](https://github.com/langwatch/langwatch/issues/5745)) ([3c1263f](https://github.com/langwatch/langwatch/commit/3c1263f855c8dc3be132db8d1ca9cabf71543593))
- **replay:** follow-ups from [#5776](https://github.com/langwatch/langwatch/issues/5776) review — marker cleanup on failure, interval heartbeat, replay path split ([#5794](https://github.com/langwatch/langwatch/issues/5794)) ([be22546](https://github.com/langwatch/langwatch/commit/be2254617f3c7af878d7f34ae77048c38cbbae53))
- **replay:** unfreeze live processing and cut weeks off projection rebuilds ([#5776](https://github.com/langwatch/langwatch/issues/5776)) ([3e86189](https://github.com/langwatch/langwatch/commit/3e861895de0f77409fc3bdd7410ff31058d754d3))
- resolve model-provider edit target from the uncollapsed row list ([#5380](https://github.com/langwatch/langwatch/issues/5380)) ([#5383](https://github.com/langwatch/langwatch/issues/5383)) ([bb12314](https://github.com/langwatch/langwatch/commit/bb123148aadb277410d787d1f629a4796496629d))
- **routing-policies:** list every org model provider in the policy picker ([#5357](https://github.com/langwatch/langwatch/issues/5357)) ([1f22ff5](https://github.com/langwatch/langwatch/commit/1f22ff564b5b96cffc5c6dea586e2a3ea4e8b66a))
- **scenarios:** accept documented image/file attachment parts in MESSAGE_SNAPSHOT ([#5667](https://github.com/langwatch/langwatch/issues/5667)) ([080c59f](https://github.com/langwatch/langwatch/commit/080c59f5d8c38e925571c675a63d859cc57376c1))
- **scenarios:** bound generate dispatch so a failing gateway can't surface as HTML ([#5758](https://github.com/langwatch/langwatch/issues/5758)) ([#5761](https://github.com/langwatch/langwatch/issues/5761)) ([e0f79de](https://github.com/langwatch/langwatch/commit/e0f79def771c1165a255dc406642a45b23c76faf))
- **scenarios:** clear stale flow callbacks when AgentTypeSelectorDrawer closes ([#2707](https://github.com/langwatch/langwatch/issues/2707)) ([b861541](https://github.com/langwatch/langwatch/commit/b8615411372e26aca056ff5a0854fd3e2f2f94d7))
- **scenarios:** reconcile orphaned IN_PROGRESS runs on worker boot, and make a finished run final ([#3195](https://github.com/langwatch/langwatch/issues/3195)) ([#5006](https://github.com/langwatch/langwatch/issues/5006)) ([70893a8](https://github.com/langwatch/langwatch/commit/70893a887faaf2d54eec040d8534ae037dc09b70))
- **scenarios:** require only the minimal input mapping to ru