🪭 feat: Add opt-in Langfuse fanout gateway + collector (#13872)

* feat: add opt-in Langfuse fanout collector

* feat: fan out Langfuse feedback scores

* docs: prepare Langfuse fanout for OSS setup

* fix: clarify Langfuse fanout collector config

* test: stabilize librechat suite

* test: fix upload dialog import order

* fix: omit empty Langfuse tenant fields

* fix: gate tenant Langfuse fanout

* test: cover central Langfuse env fallback

* style: format Langfuse fanout config

* feat: route langfuse fanout by destination

* docs: clarify langfuse compose destination scope

* test: remove unrelated suite stabilization

* style: sort agent imports

* fix: treat blank tenant fanout toggle as disabled

* fix: rename tenant fanout emergency toggle

* test: guard langfuse fanout collector config drift

* feat: tune langfuse fanout batching

* test: render fanout helm tests without dependencies

* fix: narrow remote agent run config

* refactor: share string normalization helper

* fix: align langfuse fanout env parsing

* fix(langfuse): align score fanout toggles with traces

* fix(langfuse): keep central fanout config collector-only

* fix(langfuse): type fanout collector config

* fix(langfuse): harden tenant fanout config

* feat(langfuse): support media fanout gateway

* fix(langfuse): route tenant fanout through destination URL

* fix(langfuse): harden fanout routing checks

* ci(langfuse): test fanout gateway changes

* ci(langfuse): check fanout go formatting

* fix(langfuse): satisfy api typecheck
This commit is contained in:
Ravi Kumar L 2026-06-26 17:26:39 +02:00 committed by GitHub
parent 0789a04d11
commit a0529c9af7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
38 changed files with 5699 additions and 130 deletions

43
.github/workflows/langfuse-fanout.yml vendored Normal file
View file

@ -0,0 +1,43 @@
name: Langfuse Fanout
on:
workflow_dispatch:
pull_request:
paths:
- '.github/workflows/langfuse-fanout.yml'
- 'otel/langfuse-fanout/**'
permissions:
contents: read
concurrency:
group: langfuse-fanout-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
go-tests:
name: Go tests
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: otel/langfuse-fanout/go.mod
cache-dependency-path: otel/langfuse-fanout/go.sum
- name: Check Go formatting
working-directory: otel/langfuse-fanout
run: |
unformatted="$(gofmt -l .)"
if [ -n "$unformatted" ]; then
echo "::error::Go files are not gofmt-formatted:"
echo "$unformatted"
exit 1
fi
- name: Run Go tests
working-directory: otel/langfuse-fanout
run: go test ./...