Langfuse

Langfuse Changelog - February 14-21, 2026

Notra Logo

This changelog is generated by Notra for demonstration purposes. Notra is not affiliated with Langfuse.

This week brings significant performance improvements to dashboard queries, expanded event table capabilities, and developer-focused enhancements. Major work completed includes optimizing v2 metrics queries with uniq(trace_id) aggregation for blazing-fast dashboard tiles, implementing bloom filter indexes on user_id and session_id columns for faster row lookups, and adding head-based opt-in support for direct writes into v4 event tables. Dashboard widgets can now switch query paths based on feature flags, observation table filtering now supports level-based selection, and prompt management gains folder deletion functionality. These improvements directly improve query speed, reduce dashboard load times, and provide operators with better control over their event ingestion paths.

Highlights

Dashboard query optimization with uniq(trace_id) aggregation

Replaced slow eventsTracesView path with direct uniq(trace_id) aggregation on eventsObservationsView, dramatically reducing query complexity and execution time for dashboard trace tiles in v2. Custom widgets, score histograms, and model usage queries all benefit from this single-level optimization pattern.

Bloom filter indexes on user_id and session_id

Added bloom_filter(0.01) indexes to events_core and events_full tables, accelerating row-level filtering when querying by user or session without consuming excessive disk space. Materialized views auto-populate these indexes, seamlessly integrating with existing data pipelines.

Head-based opt-in for direct event writes to v4 tables

Operators can now enable direct event table writes via HTTP headers, bypassing the legacy v1 path. OTEL spans automatically support this opt-in, allowing early adopters to test v4 event storage without full platform migration.

EventsSessionAggregationQueryBuilder for direct session metrics

Eliminated redundant two-step trace aggregation by building session metrics directly from events_core via GROUP BY session_id, pushing filters into inner CTEs for better query planning and faster result sets.

Dashboard v1/v2 metrics consistency validation

Added comprehensive test coverage comparing v1 and v2 metric outputs, ensuring data integrity during the gradual migration and catching regressions early in the pipeline.

More Updates

Features & Enhancements

  • Dashboard v2 metrics version support for custom widgets #12177 - Widgets now respect the v2 metrics query path, enabling the uniq(trace_id) optimization. (Author: @sumerman)
  • Add v2 backend paths for score histogram and model usage queries #12146 - Extends QueryBuilder with pairExpand concept for ARRAY JOIN on ClickHouse Map columns. (Author: @sumerman)
  • Add v2 backend path for score-aggregate dashboard query #12136 - Wires metricsVersion through chart tRPC endpoints. (Author: @sumerman)
  • Level filter support in trace filter sidebar #12174 - Users can now filter observations by depth level in trace view. (Author: @nimarb)
  • Position filter in trace exploration #12058 - New position-based filtering for trace observation navigation. (Author: @nimarb)
  • Add dataset batch action for events table #12144 - Multi-select observations can now be bulk-added to datasets. (Author: @hassiebp)
  • Icon rendering support in filter facets #12169 - Observation type icons now appear in filter sidebar, improving visual scanability. (Author: @hassiebp)
  • Tooltip support for filter sidebar facets #12168 - "Is Root Observation" and other complex filters show helpful explanations on hover. (Author: @hassiebp)
  • Info icon indicators for filters with tooltips #12176 - Visual cue shows when additional filter documentation is available. (Author: @hassiebp)
  • Support Japanese characters in prompt variables #11509 - Prompt templates now accept Unicode characters in variable names. (Author: @komechan-rh)
  • Delete entire prompt folders #11920 - Folder deletion with cascade removes all contained prompts with confirmation dialog. (Author: @5h0ov)
  • Mixpanel and PostHog integration project name support #12038 - Analytics integrations now include langfuse_project_name alongside project_id for better filtering. (Author: @shmulik-apiiro)
  • Enhanced dataset selection in experiments UI #12059 - Popover-based dataset picker with search for faster experiment setup. (Author: @marliessophie)
  • Peek view table support #12044 - Inline table rendering in detail modals for richer data exploration. (Author: @marliessophie)
  • Head-based opt-in for v4 event writes #12025 - HTTP header controls enable direct event table writes; OTEL spans automatically supported. (Author: @sumerman)
  • Add performance controls for GET /api/public/traces #12062 - Self-hosters can now enforce date range requirements and restrict field groups to optimize trace endpoint performance. (Author: @Steffen911)

Bug Fixes

  • Improve chart loading and failure state hints #12180 - Better visual feedback during chart data load and clearer error messaging. (Author: @maxdeichmann)
  • Remove spurious whitespace from .env example #12106 - Standard .env parsers now work without errors. (Author: @LoneRifle)
  • Fix datasets graph formatting for seconds #12165 - Dataset performance graphs display time units correctly. (Author: @nimarb)
  • CSV upload column mapping for dataset schemas #12141 - Users can now map entire columns when schemas are defined. (Author: @marliessophie)
  • Unbounded dashboard query row limits #12160 - Dashboard queries now include row_limit protection preventing memory exhaustion. (Author: @sumerman)
  • Time dimension query root event timestamp #12118 - Traces timeline queries now use correct root event timestamps. (Author: @sumerman)
  • Trace table update when metrics loaded #12113 - UI now refreshes after async metric data arrives. (Author: @nimarb)
  • Coerce usage details to number in evals #12130 - ClickHouse numeric values now parse correctly in evaluation streaming. (Author: @hassiebp)
  • Apply custom base path to sign-out callback #12036 - Self-hosted instances with custom paths now redirect correctly on logout. (Author: @hyeonch)
  • Mutual exclusion for Anthropic temperature and top_p #12020 - Playground auto-disables conflicting parameters to prevent API 400 errors. (Author: @hobostay)
  • Prevent empty target submission in evaluator forms #12088 - Form validation catches configuration errors before submission. (Author: @marliessophie)
  • Add folder path when creating prompt from folder #12043 - New prompts inherit parent folder structure automatically. (Author: @nimarb)
  • Add default generation filter to observation evaluators #12033 - New observation evals default to GENERATION type with inline warnings for unfiltered runs. (Author: @hassiebp)

Performance Improvements

  • Optimize v2 traces queries with uniq(trace_id) #12175 - Single-level aggregation on observations view eliminates expensive subqueries. (Author: @sumerman)
  • Optimize v2 traces queries via root-event filter #12166 - Reformulates queries to leverage parentObservationId IS NULL for single-pass optimization. (Author: @sumerman)
  • Add bloom filter indexes on user_id and session_id #12120 - Accelerates row lookups for user and session filtering on event tables. (Author: @Steffen911)

Infrastructure

  • Optional lightweight UPDATE codepath for ClickHouse #12090 - Adds configurable update path for event table mutations. (Author: @Copilot)
  • SYSTEM SYNC REPLICA before event propagation #12079 - Ensures replica consistency before INSERT-SELECT in event pipeline. (Author: @Steffen911)
  • Add delay metrics for event propagation job #12138 - Gauge metrics track partition processing lag for operational visibility. (Author: @Steffen911)
  • Configurable Redis cluster slots refresh timeout #12096 - Self-hosters can tune Redis cluster behavior for their infrastructure. (Author: @Steffen911)
  • Log MOVED cluster redirects at debug level #12086 - Normal Redis Cluster behavior no longer generates misleading warnings. (Author: @Steffen911)
  • Retire parseIoAsJson option with 400 response #11990 - Deprecated API option now returns explicit error guiding users to v2 path. (Author: @sumerman)
  • Shift to events_full and events_core tables #11836 - Major ClickHouse table reorganization splits lightweight and full-content queries. (Author: @Steffen911)

Internal Changes

  • EventsSessionAggregationQueryBuilder for single-step aggregation #12127 - Replaces two-step aggregation with direct session GROUP BY on events_core. (Author: @sumerman)
  • Add metricsVersion prop to dashboard components #12089 - Enables selective routing of widgets to v2 queries. (Author: @sumerman)
  • Remove 100 observation limit per trace #12048 - Detail views now retrieve unlimited observations through tRPC. (Author: @nimarb)
  • Remove shadow optimization test #12066 - Cleans up legacy test code. (Author: @sumerman)
  • Tighten v1/v2 view differences #12065 - Reduces inconsistencies between legacy and new query paths. (Author: @sumerman)
  • Support parent observation is null filter #12063 - Evaluation filters can now target root observations. (Author: @marliessophie)
  • Support tool calls and filtering in events table #12151 - Events table infrastructure extends to handle tool call observations. (Author: @nimarb)
  • Add comments filters for events table #12163 - Filter infrastructure prepared for comment-based segmentation. (Author: @nimarb)
  • Move root observation switch to sidebar #12094 - UI reorganizes filter controls for better accessibility. (Author: @nimarb)
  • Update null check for empty strings #12123 - Filter service handles blank values correctly. (Author: @marliessophie)
  • Add v4 view of scores via metrics query #12124 - Scores now accessible through new event metrics path. (Author: @nimarb)

Testing

  • Add dashboard v1/v2 consistency tests #12098 - Comprehensive metrics validation between legacy and new paths. (Author: @sumerman)
  • Fix e2e test flakiness #12114 - Move tests to async patterns. (Author: @maxdeichmann)

Documentation & Chores

  • Add Claude Sonnet 4.6 model pricing #12080 - Model catalog updated with latest Anthropic offerings. (Author: @hassiebp)
  • Add Gemini 3.1 Pro Preview pricing #12143 - Supports both standard and large-context pricing tiers. (Author: @hassiebp)
  • LangChain v1 upgrade #12085 - SDK compatibility updated. (Author: @hassiebp)
  • Add Vercel React skills #12103 - Developer experience tooling expanded. (Author: @nimarb)
  • Improve events table error messages #12111 - Clearer diagnostic output for debugging. (Author: @maxdeichmann)
  • Remove tremor-based charts dependency #12010 - Simplifies dependencies and reduces bundle size. (Author: @coffee4tw)
  • Move peek view out of data table #12099 - Architectural separation improves code maintainability. (Author: @nimarb)
  • Update events seed logic for production parity #12095 - Dev environment more accurately reflects production data patterns. (Author: @sumerman)
  • Bar chart styling and dark mode improvements #12045 - Enhanced hover states and dynamic label spacing. (Author: @coffee4tw)
  • Rename post in trace filter #12171 - Terminology updates for clarity. (Author: @nimarb)
  • Remove unused imports #12126 - Code cleanup. (Author: @maxdeichmann)
  • Bump turbo to 2.8.10 #12116 - Build tool updates. (Author: @nimarb)
  • Remove replica sync and extend event prop delay to 30min #12167 - Operational tuning for event propagation. (Author: @Steffen911)
Notra Logo
Notra
Turn your daily work into publish-ready content!
© 2026 Notra. All rights reserved.