What's Changed
Features
* feat: remove io from wide tables by maxdeichmann in https://github.com/langfuse/langfuse/pull/3878
* feat: adjust clickhouse writer by maxdeichmann in https://github.com/langfuse/langfuse/pull/3881
* feat: add is_deleted to clickhouse by maxdeichmann in https://github.com/langfuse/langfuse/pull/3887
* feat(cloud): add event usage metering by marcklingen in https://github.com/langfuse/langfuse/pull/3898
* feat(cost): make cost tracking flexible by hassiebp in https://github.com/langfuse/langfuse/pull/3811
* feat: better handling of eval retries by maxdeichmann in https://github.com/langfuse/langfuse/pull/3939
* feat(evals): option to update ref eval configs when creating new version by marliessophie in https://github.com/langfuse/langfuse/pull/3919
* feat: add additional traces table filter by maxdeichmann in https://github.com/langfuse/langfuse/pull/3973
* feat: read traces and observations from clickhouse by maxdeichmann in https://github.com/langfuse/langfuse/pull/3810
* feat: add clickhouse support for traces filter options endpoint by maxdeichmann in https://github.com/langfuse/langfuse/pull/3969
* feat: log all project_ids with missing domain id by maxdeichmann in https://github.com/langfuse/langfuse/pull/3984
* feat: support traces.countAll api with clickhouse by maxdeichmann in https://github.com/langfuse/langfuse/pull/3974
* feat: support for traces detail view with clickhouse by maxdeichmann in https://github.com/langfuse/langfuse/pull/3982
* feat: add generations table clickhouse support by maxdeichmann in https://github.com/langfuse/langfuse/pull/4015
* feat: add order by to clickhouse tables by maxdeichmann in https://github.com/langfuse/langfuse/pull/4020
* feat(ui): add new sidebar and main navigation by marcklingen in https://github.com/langfuse/langfuse/pull/3837
* feat(evals): allow creating template from eval config form by marliessophie in https://github.com/langfuse/langfuse/pull/3896
Fixes and Improvements
* chore: add clickhouse writer attributes by maxdeichmann in https://github.com/langfuse/langfuse/pull/3867
* perf: improve CH primary keys and order by by maxdeichmann in https://github.com/langfuse/langfuse/pull/3880
* perf: remove query cache in ingestion pipeline by maxdeichmann in https://github.com/langfuse/langfuse/pull/3882
* fix: improve ingestion pipeline by id query by maxdeichmann in https://github.com/langfuse/langfuse/pull/3883
* fix(models): update sonnet model name by hassiebp in https://github.com/langfuse/langfuse/pull/3894
* fix(evals): show eval filters in eval-configs table by marliessophie in https://github.com/langfuse/langfuse/pull/3897
* fix(models): allow for time tolerance in updateat diff by hassiebp in https://github.com/langfuse/langfuse/pull/3903
* chore: faster healthcheck of minio in dev docker compose by marcklingen in https://github.com/langfuse/langfuse/pull/3914
* chore: remove prod-eu-temp deploy environment by Steffen911 in https://github.com/langfuse/langfuse/pull/3849
* chore: validate clickhouse data quality by Steffen911 in https://github.com/langfuse/langfuse/pull/3809
* chore(deps): dependency updates by Steffen911 in https://github.com/langfuse/langfuse/pull/3917
* chore: add is_deleted column to clickhouse seeder by Steffen911 in https://github.com/langfuse/langfuse/pull/3934
* chore: remove hasCreateEvent check in ingestion pipeline by Steffen911 in https://github.com/langfuse/langfuse/pull/3937
* fix: populate default `metadata` when adding observation as dataset item by marliessophie in https://github.com/langfuse/langfuse/pull/3938
* fix: treat api call failures for eval executions the same way as parsing errors. by maxdeichmann in https://github.com/langfuse/langfuse/pull/3942
* chore: support table-level-tab navigation through eval configs, templates, log by marliessophie in https://github.com/langfuse/langfuse/pull/3899
* chore: create v3beta docker compose file by Steffen911 in https://github.com/langfuse/langfuse/pull/3936
* chore: add background migrations for long-running tasks by Steffen911 in https://github.com/langfuse/langfuse/pull/3895
* chore: `pnpm dx` pulls latest infra containers, waits for healthcheck, prunes old volumes by marcklingen in https://github.com/langfuse/langfuse/pull/3945
* chore: adjust eval execution retries by maxdeichmann in https://github.com/langfuse/langfuse/pull/3946
* chore: add bullmq to external package by maxdeichmann in https://github.com/langfuse/langfuse/pull/3947
* chore: add additional requirements for background migrations by Steffen911 in https://github.com/langfuse/langfuse/pull/3951
* chore: add external packages to next config by maxdeichmann in https://github.com/langfuse/langfuse/pull/3950
* style(evals): add table metadata view for eval config detail by marliessophie in https://github.com/langfuse/langfuse/pull/3916
* refactor: `full-screen-page` to drop magic in height calculation by marliessophie in https://github.com/langfuse/langfuse/pull/3944
* fix(models): upsert prices on model drift; by hassiebp in https://github.com/langfuse/langfuse/pull/3955
* Revert "chore(deps): bump react-hook-form from 7.51.5 to 7.53.0 (3917)" by marliessophie in https://github.com/langfuse/langfuse/pull/3958
* chore: global error handling for `trpc` routes by marliessophie in https://github.com/langfuse/langfuse/pull/3959
* chore: remove zod parsing from worker by Steffen911 in https://github.com/langfuse/langfuse/pull/3967
* chore: remove remaining zod parses in worker pipeline by Steffen911 in https://github.com/langfuse/langfuse/pull/3968
* chore: update traces and observations tables to use map type by Steffen911 in https://github.com/langfuse/langfuse/pull/3960
* chore: join postgres state into Clickhouse results and add event_ts by Steffen911 in https://github.com/langfuse/langfuse/pull/3978
* chore: add fallback to event timestamp again, log warning by Steffen911 in https://github.com/langfuse/langfuse/pull/3983
* chore: correct number parsing from postgres in clickhouse merge by Steffen911 in https://github.com/langfuse/langfuse/pull/3987
* fix: fix zod schema by maxdeichmann in https://github.com/langfuse/langfuse/pull/3991
* chore: ensure model parameters are cast correctly in clickhouse ingestion by Steffen911 in https://github.com/langfuse/langfuse/pull/3992
* revert: revert clickhouse trace check by maxdeichmann in https://github.com/langfuse/langfuse/pull/3993
* fix: remove final from ingestion by maxdeichmann in https://github.com/langfuse/langfuse/pull/3998
* fix: opening public langfuse urls by marliessophie in https://github.com/langfuse/langfuse/pull/3999
* perf(ui): do not refetch filter options on page mount by marcklingen in https://github.com/langfuse/langfuse/pull/4002
* fix: select all functionality on prompt metrics table by marliessophie in https://github.com/langfuse/langfuse/pull/4004
* fix: fix traces table latency by maxdeichmann in https://github.com/langfuse/langfuse/pull/4005
* fix: fix eval execution retries by maxdeichmann in https://github.com/langfuse/langfuse/pull/4010
* chore: fix fetching model by maxdeichmann in https://github.com/langfuse/langfuse/pull/4008
* fix: fix timestamps in clickhouse reading by maxdeichmann in https://github.com/langfuse/langfuse/pull/4011
* fix: fix clickhouse untis and conversions by maxdeichmann in https://github.com/langfuse/langfuse/pull/4013
* chore: improve clickhouse observability by maxdeichmann in https://github.com/langfuse/langfuse/pull/4014
* fix: respect limit and offset for traces table query by maxdeichmann in https://github.com/langfuse/langfuse/pull/4016
* perf: improve traces metrics API performance by maxdeichmann in https://github.com/langfuse/langfuse/pull/4017
* perf: improve select by id observations performance by maxdeichmann in https://github.com/langfuse/langfuse/pull/4021
**Full Changelog**: https://github.com/langfuse/langfuse/compare/v2.86.0...v2.87.0