What's Changed
Features
- feat(datasets): do not read dataset-runs in events_only mode by @marliessophie in #15526
- feat(in-app-agent): Polish Langfuse Assistant interface by @LysanderKie in #15844
- feat(web): remove trace and session bookmarking from the UI by @maxdeichmann in #16113
- feat(filters): search the filter sidebar by facet name by @nkabardin in #16045
- feat(notifications): add a posthog-export-failed project notification event by @niklassemmler in #16135
- feat(assistant): polish the assistant window header and composer by @nkabardin in #16136
- feat(web): show the persisted PostHog export fault in settings by @niklassemmler in #16096
- feat(api): state the concrete v3 sunset date, November 16, 2026 (LFE-10895) by @niklassemmler in #15270
- feat(v4-migration): implement v4 migration UI toggle across settings page by @marliessophie in #16151
- feat(worker): maintain v4 legacy API usage in Redis via incremental worker job by @maxdeichmann in #16164
- feat(v4-migration): add migration link to personal settings menus by @maxdeichmann in #16191
- feat(trace): pure layout core for the timeline by @nkabardin in #16124
Fixes
- fix(ui): keep sr-only text from escaping its scroll container by @nkabardin in #16083
- fix(v4): clarify migration activity window by @maxdeichmann in #16127
- fix(web): move the compare-traces toggle into the migration action items by @nmtrang29 in #16129
- fix(in-app-agent): stop silencing MCP tool failures into the sandbox by @LysanderKie in #16082
- fix(layout): size the app shell from available space, not 100vw by @nkabardin in #16081
- fix(ui): keep dropdown lists scrollable inside dialogs and drawers by @nkabardin in #16115
- fix(saved-views): replace default view history state LFE-15092 by @nimarb in #16103
- chore(api): mark v3 apis as deprecated in openai by @nimarb in #16099
- fix(api): carry endpoint deprecation notices into the API reference by @niklassemmler in #16121
- fix(v4): wait for migration status before rendering by @maxdeichmann in #16134
- fix(worker): fail fast and auto-disable the PostHog export on config faults by @niklassemmler in #16095
- fix(worker): mock DNS in url-normalization tests to remove CI flakiness by @LysanderKie in #16128
- fix(agent): show a clearer 8-hour write-lock notice in the assistant by @LysanderKie in #16143
- fix(worker): pin analytics export egress to connect-time SSRF validation by @niklassemmler in #16091
- fix(filters): hide non-matching facets during a sidebar search, active ones included by @nkabardin in #16154
- fix(evals): stop offering bookmarked as a trace evaluator filter column by @maxdeichmann in #16175
- fix(redis): avoid CROSSSLOT on v4 legacy API usage multi-key ops by @maxdeichmann in #16180
- fix(assistant): keep the mobile drawer on the visible viewport by @nkabardin in #16155
- fix(shared): count cache token keys in the input and output aggregates by @milanagm in #16142
- fix(web): hold the mobile zoom lock inside portalled overlays by @nkabardin in #16150
- fix(clickhouse): query all clustered query logs by @maxdeichmann in #16198
- fix(api): accept epoch fromTimestamp on public metrics v2 by @maxdeichmann in #16169
- fix(agent): keep old sandbox conversations writable by @LysanderKie in #16148
- fix(web): revert local eslint concurrency to 2 by @wochinge in #16205
Chores
- refactor(worker,shared): share integration helpers across export integrations by @niklassemmler in #16094
- docs: fix grammar in README (set up, drop-in, Alpine Linux) by @MarkHe1222 in #16119
- Revert "docs: fix grammar in README (set up, drop-in, Alpine Linux)" by @maxdeichmann in #16123
- ci: switch pipelines back to Blacksmith by @LysanderKie in #16132
- perf(ci): cap the lint job runtime by @LysanderKie in #16125
- chore(pricing): add gemini-3.7-flash, cut gemini-3.6-flash intro pricing by @langfuse-bot in #16015
- chore(deps): bump nanoid to 3.3.18 by @nimarb in #16141
- chore(deps): bump js-yaml to 4.3.1 by @nimarb in #16145
- ci: harden playwright install retry and cache test-docker-build layers by @wochinge in #16152
- refactor(integrations): derive export-source availability from the v4 write mode by @niklassemmler in #16093
- perf(web): cache v4 SDK usage checks in Redis by @maxdeichmann in #16163
- refactor(web): split v4 transition service by data source by @maxdeichmann in #16176
- perf(worker): run v4 legacy API usage job every 15 minutes by @maxdeichmann in #16183
- chore(deps): bump js-yaml to 4.3.1 by @nimarb in #16195
- chore(shared): log the node-level cause behind Redis connection errors by @niklassemmler in #16200
- chore(worker): add structured logging to the v4 legacy API usage job by @maxdeichmann in #16184
- chore(ci): bump gh-aw compiler to pull in gh-aw-mcpg v0.4.9 fix by @wochinge in #16193
- test(redis): restore REDIS_CLUSTER_ENABLED after safeMultiGet tests by @maxdeichmann in #16181
- perf(trace): lay out large trace graphs off the main thread by @nkabardin in #16054
New Contributors
- @MarkHe1222 made their first contribution in #16119
Full Changelog: v4.11.0...v4.12.0