Toutes les nouveautés

langwatch: v3.22.0

Équipe

3.22.0 (2026-11-02)

Features

  • aigateway: serve OpenAI Decisions API on /v1/decisions (#9200) (aa27b1f)

  • analytics: a group project's charts, LangWatchQL and Sessions read its member projects (#8878) (ec4d539)

  • analytics: open dashboards from the analytics entry and point back to the old analytics (#9055) (0e9ae7a)

  • api-key: confirming the legacy key revoke opens the create drawer (#9066) (4a56ffd)

  • api-key: revoking the legacy project key swaps it for an API key (#9061) (f866c94)

  • auth: force a password reset for a set of users (#8959) (e408de0)

  • auth: legacy key scope flag for annotation reads (#9024) (2cd1992)

  • auth: log which credential and client each API request used (#9003) (c55dc6e)

  • 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) (ec41367)

  • chart: let the operator turn the heap ceiling off (#9127) (6899309)

  • charts: let the langyagent chart take over existing agent objects (#8965) (fa657fa)

  • ci: assume AWS roles by OIDC for embeds publish and the gateway matrix (#8961) (d8f12d2)

  • ci: one nightly suite with a single dashboard (#8877) (ee88567)

  • ci: publish the langy agent and Lambda images to the artifacts registry (#8967) (1fa0a2b)

  • coding-agent: copilot CLI and VS Code sessions become rows (#8884) (e5c5e8c)

  • dashboard: add REST create and delete for Dashboards boards (#8896) (fbc1469)

  • dashboards: a dashboards section in the project sidebar with add and pin (#9090) (41480c0)

  • dashboards: a per-dashboard Langy traces setting (#9099) (821b467)

  • dashboards: per-widget "Langy traces" setting in the query editor (#9137) (5e82c1e)

  • dashboards: say Pin instead of Star in the UI (#9128) (2eb09a8)

  • dashboards: widget queries take sources and projects as params (#9171) (af5a9c3)

  • dashboards: widgets show loading and how to get their data (#9108) (5c39251)

  • design-system: brand icons for decision model providers and langwatch (#8957) (f142230)

  • design-system: search other projects from the scope filter (#9116) (a2d681b)

  • docs-site: 404 mark intro, API reference polish and live-site fixes (#9170) (ac821b6)

  • docs-site: deploy the /docs build to its bucket from main (#9165) (e5a3e99)

  • docs: add a lightweight static docs app (#8563) (395ed9c)

  • experiment: accept a per-run concurrency on the experiment run API (#9023) (640d0f6)

  • instant-eval-judge: judge router behind release_instant_evals_judge_router (#9118) (252263a)

  • instant-eval: let an LLM judge pick its own decision model (#9142) (c1e94f7)

  • model-provider: instant evals decision model column with own-key decision models (#8935) (9b022a5)

  • model-providers: add Doubleword provider (strict layout) (#8557) (4304116)

  • monitor: pause a monitor whose evaluations mostly fail (#9040) (fcbd9ed)

  • nurturing: send coding-agent session and app-open signals to Customer.io (#8917) (d55d670)

  • ops: send notices from Cloud to self-hosted installs (#8949) (d831e82)

  • sdk: one product per dashboards path; dashboards means the new product everywhere (#9089) (552534d)

  • tooling: pnpm test:changed runs only the tests an edit reaches (#8945) (c4f357b)

  • workflow,stores: accept web-identity credentials as an alternative to static AWS keys (#8994) (fe9df27)

Bug Fixes

  • aigateway: keep mid-conversation system messages in place on Bedrock (#9219) (846b5bc)

  • analytics: accept Langy session keys in LangWatchQL (#9054) (4dcb63d)

  • analytics: read Postgres-backed LangWatchQL dates at the scale Postgres stores them (#8912) (f5f8086)

  • analytics: rebuild lwql postgres engine tables when reader credentials rotate (#8875) (d1e13a9)

  • analytics: refuse FINAL and SAMPLE on PostgreSQL-resident LWQL views and on subqueries (#9015) (f2660c4)

  • api-key: warn in the replacement drawer that the legacy key no longer works (#9067) (da82f75)

  • api: log an output-schema mismatch and still answer; declare atom evaluations (#9092) (9f8201d)

  • api: name the credential census file in the api package layout (#9005) (03ea93a)

  • auth: show Google and Microsoft marks on Safari sign-in buttons (#9044) (f93b953)

  • auth: tell a person their identity provider refused them, and stop paging on it (#9180) (3b0992a)

  • automation: log a customer-fixable settlement refusal once an hour, not per firing (#8977) (9134f67)

  • browser: a full browser storage no longer breaks the page; read mirror recovers and skips impersonation (#9072) (9325213)

  • chart: sleep 15s before the app's SIGTERM so the load balancer stops routing first (#9031) (9637bb1)

  • ci: an image's change set starts at the last published commit, not the previous push (#9167) (d08eff0)

  • ci: keep Content-Type when a re-tagged app image copies its CDN assets (#9028) (697a4ec)

  • clickhouse-client: async inserts waiting for a slot share one statement (#9182) (622e043)

  • clickhouse: split an id index retention raise under the server's 128 KiB field cap (#9178) (c9160f8)

  • cli: pin cloudflared 2026.10.5, verify it everywhere, drop the npm wrapper (#9086) (0b1bad9)

  • codeblock: harden code block process isolation (#9050) (01db6c2)

  • coding-agent: drop hook_execution_start before it becomes a contribution (#9011) (56a9723)

  • dashboards: refresh moves fixed ranges, hidden stars keep their place, agents read boards by id (#9048) (a5ea0ed)

  • dashboard: tighten delete confirmation for Reports dashboards (#8918) (5dfa85e)

  • data-privacy: raise the per-span PII redaction budget to 400,000 characters (#9209) (9b88cb8)

  • deps: raise authlib, litellm and dnspython for today's advisories (#9120) (828259f)

  • deps: raise qs to 6.17.0 for CVE-2026-110910 (#9100) (56fa502)

  • docker: bump cloudflared to 2026.10.5 in the server image (#9119) (e3cd4dc)

  • docs: inset the compact contents bar so its label clears the edge (#9174) (60d900e)

  • evaluation: do not retry a langevals call that timed out (#9037) (7d7b8e0)

  • eventing: a state projection's rebuild accepts the log's copy of a re-sent key (#9181) (df9775c)

  • governance: centre the overview again and empty its lists with the design system's line (#8932) (685c8e7)

  • group-queue: reclaim a dead worker's groups when its beacon goes, not its active key (#9139) (dceba19)

  • group-queue: the worker that handed a job back passes its group over (#9154) (412630f)

  • helm: bump chart images for CVE fixes (postgres, redis, curl, prometheus, alpine/k8s) (#9208) (ad7c623)

  • langevals: judges reach a verdict on gpt-6 reasoning models (#9102) (d7b6238)

  • langy: expanded panel pushes open drawers left instead of covering them (#9159) (beadf5d)

  • langy: give card-only turns a reply line on the REST surface (#8838) (b7c195d)

  • langy: never tell the user to sign in when the sandbox CLI fails (#8775) (4f2dc72)

  • langy: pick an existing test suite before creating a scenario (#9158) (42a13b7)

  • langy: refresh app lists when a Langy write lands (#9160) (0af13f6)

  • langy: show an AI gateway spending limit as a budget card, not a failed reply (#9197) (810702b)

  • model-provider: doubleword ids by alias, and routers out of the price audit (#9034) (d69d3f7)

  • model-provider: drop the Doubleword models shut down on 30 Oct (#9214) (abfdbbf)

  • navigation: keep the reader where they are when they switch organization (#9114) (709f485)

  • nlp-lambda: start the Lambda image from / so the function can boot (#9018) (3e84e6b)

  • nurturing: send Customer.io date attributes as Unix seconds (#8953) (dc318da)

  • ops: pause the pending-counter keyspace sweep after it adopts (#9073) (08aef76)

  • organization: an open tab ignores another tab's remembered scope (#9107) (150e9e7)

  • presence: keep a project's presence keys on one Redis cluster slot and make leave atomic (#9068) (b8e23ef)

  • presence: list a project's sessions from a per-project index instead of scanning the keyspace (#9063) (53f2d2a)

  • project: the legacy key nudge answers per project, not per remembered scope (#9113) (8bcffa2)

  • redaction: find email addresses in one pass instead of a quadratic regex (#9205) (73079a2)

  • run ClickHouse image 0.4.0 in the dev and self-host compose so custom_ settings work (#9057) (86a85ee)

  • security: close 148 of 150 alerts across the python locks (#7634) (c0837d1)

  • security: close all 52 Go alerts (grpc 1.83.2 in 16 modules, OTel-Go 1.45.0 in the SDK) (#7931) (691f480)

  • security: close the nine alerts raised on 2026-10-22 (#8982) (7eca2c2)

  • security: let ALLOWED_PROXY_HOSTS reach on-premise .local hosts (#9088) (3880e8d)

  • security: raise JS security floors for the root workspace and SDK examples (#6569) (2adf11f)

  • security: read client address headers only from configured proxies (#8970) (9ae6ca4)

  • test: isolate the platform-health suites and wait for the measured query_log entry (#9027) (c96cc6a)

  • trace: a span's own attributes never break its read on a request-param name (#9179) (d8adba2)

  • trace: bound offloaded-field recall so large traces can't kill the worker (#9115) (fdac9b4)

  • workflow: never move a studio Lambda to an older image during a rollout (#9030) (6839a6b)

Miscellaneous

  • deps: bump aiohttp (b51e7cb)

  • deps: bump aiohttp from 3.14.3 to 3.14.4 in the uv group across 1 directory (#8941) (b51e7cb)

  • drop tslsp-cli, point agents at rush ts (#8985) (afb36c1)

  • main: release langwatch 4.0.0 (#8951) (a6090a6)

  • release: undo langwatch 4.0.0 so the platform releases as 3.22.0 (#9225) (637d1c2)

  • sync model registry (531 models) (#9032) (0464ff3)

  • sync model registry (532 models) (#9109) (e2125b4)

Documentation

  • agent-testing: add the setup and teardown hooks guide (#8920) (d3e993c)

  • dashboards: launch-day docs and api reference pages for boards and widgets (#9076) (22e3a67)

Code Refactoring

  • api-key: move the legacy key revoked notice into a ui block (#9075) (7aeb146)

Source GitHub

Idées livrées

1