Repository navigation
Releases
v2026.11.5-alpha
Upgrade notes
Storage: batch format 5 is unchanged and no control database migrations were added since v2026.11.4-alpha.
What's Changed
- feat(ingest)!: support multiple named ingest tokens by @vishr in #466
- chore!: rename Fanout to Pitot by @vishr in #467
Full Changelog: v2026.11.3-alpha...v2026.11.5-alpha
v2026.11.4-alpha
Upgrade notes
Important
Control schema migration. 1 new control database migration runs forward at startup. Take a cold backup first: rolling back means restoring that backup with v2026.11.3-alpha. See upgrade an instance.
20261109120000_ingest_tokens.sql
Breaking changes
What's Changed
- feat(ingest)!: support multiple named ingest tokens by @vishr in #466
- chore!: rename Fanout to Pitot by @vishr in #467
Full Changelog: v2026.11.3-alpha...v2026.11.4-alpha
v2026.11.3-alpha
Upgrade notes
Important
Control schema migration. 1 new control database migration runs forward at startup. Take a cold backup first: rolling back means restoring that backup with v2026.11.2-alpha. See upgrade an instance.
20261108120000_alert_email.sql
What's Changed
- feat(ui): add a local Storybook catalog of the product by @vishr in #391
- feat(auth): designate the first administrator with FANOUT_FIRST_ADMIN_EMAIL by @vishr in #432
- feat(server): verify client certificates with FANOUT_TLS_CLIENT_CA_FILE by @vishr in #431
- docs(deploy): run the native systemd unit on port 443 by @vishr in #433
- refactor(ui): adopt the shared console design and default theme by @vishr in #434
- docs: publish the upgrade policy and mark format-changing releases by @vishr in #435
- chore(ui): upgrade the shared UI library to 2026.11.11 by @vishr in #437
- revert: remove FANOUT_FIRST_ADMIN_EMAIL before its first release by @vishr in #448
- docs(tls): warn against sharing a probe certificate CA across hosts by @vishr in #441
- feat(ingest): set the first ingest token from configuration by @vishr in #450
- fix(ui): finish console redesign follow-ups by @vishr in #436
- feat(auth): add break-glass login links for OIDC mode by @vishr in #449
- feat(auth): start without the OIDC provider and retry discovery by @vishr in #451
- ci: run the gate in parallel and reuse main's CI result at release by @vishr in #452
- ci: run the required checks in the merge queue by @vishr in #454
- docs(auth): break-glass works after a restart during an outage by @vishr in #453
- feat(auth): add SCIM 2.0 user provisioning by @vishr in #456
- feat(alerts): deliver alerts by email by @vishr in #455
- feat(auth): identity provider owns accounts when roles are mapped by @vishr in #459
- fix(alert): keep a newer email failure visible on the rule by @vishr in #462
- feat(release): graduate releases to the stable channel by @vishr in #463
- revert: keep releases on the alpha channel by @vishr in #464
Full Changelog: v2026.11.2-alpha...v2026.11.3-alpha
v2026.11.2-alpha
What's Changed
Full Changelog: v2026.11.1-alpha...v2026.11.2-alpha
v2026.11.1-alpha
Upgrade notes
- Ingest tokens use the
foi_prefix (#424), with no alias. Tokens
starting withfo_are rejected. After upgrading, rotate the token in
Connect telemetry → Ingest token and update every collector; telemetry
from a collector still using the old token is rejected until it is updated. - Unused sign-in links issued before the upgrade stop working. Request a
new one. Issued OAuth tokens and connected MCP clients keep working. - Query state rebuilds on first start. The read cache moves to version 18;
telemetry and control data are untouched. Expect slower queries until the
rebuild finishes. - Fixed: service-map drill-downs no longer time out or shed other reads
under sustained ingest (#419, #423).
What's Changed
- ci: scan for secrets, session links and local paths with gitleaks by @vishr in #420
- docs: cover Explore, alerts, dashboard editing, upgrades, deployment and the CLI by @vishr in #421
- docs(site): publish the v2026.11.0-alpha benchmark by @vishr in #422
- fix(query): serve service drill-downs from the trace index by @vishr in #423
- feat(auth)!: one bearer secret format and the foi_ ingest prefix by @vishr in #424
Full Changelog: v2026.11.0-alpha...v2026.11.1-alpha
v2026.11.0-alpha
Upgrade notes
- Batch format 5 is required. This release does not read format 4 telemetry. Before upgrading, stop Fanout and move the
telemetry/andquery/directories out of the data directory. Keepcontrol/: users, dashboards, alert rules and the ingest token carry over. - Renamed API and MCP contracts (#416), with no aliases. MCP tools are
get_overviewandget_insights. Routes areGET /api/insightsandPOST /api/annotations/query. User, alert and rule lists return named arrays (users,alerts,rules). Update MCP clients and scripts. - Saturated ingest throttles instead of blocking. Exporters receive gRPC
RESOURCE_EXHAUSTEDwith RetryInfo, or HTTP429withRetry-After. The OpenTelemetry Collector retries these by default. - Panel results are cached for up to
FANOUT_QUERY_CACHE_TTL(default10s). Manual refresh bypasses the cache. Summary-backed panels lag about one minute, and quantiles are approximate to within one histogram bucket. - New: the Explore page with FanQL, and dashboard and alert editing without chat.
Benchmarks against v2026.10.8-alpha are in #417.
What's Changed
- feat(fanql): FanQL text query language with HTTP, MCP and AI-optional UI by @vishr in #410
- refactor!: name the structured query after queries and use last_evaluated_at by @vishr in #411
- docs: keep design proposals and decision records under standard names by @vishr in #412
- feat: Explore, FanQL and batch format 5 by @vishr in #417
Full Changelog: v2026.10.24-alpha...v2026.11.0-alpha
v2026.10.24-alpha
What's Changed
- fix(ui): stop counting panels in chat card summaries by @vishr in #386
- chore(site): publish landing clips to the fanout R2 bucket by @vishr in #387
- chore(site): publish landing clips under videos/ in the fanout bucket by @vishr in #388
- chore(deps): upgrade go-jose to v4.1.6 for CVE-2026-116587 by @vishr in #393
- docs: align the README tagline and release examples with the current release by @vishr in #392
- chore(site): use rendered product clips on the homepage by @vishr in #394
- fix(deps): clear the seroval advisories in TanStack Router by @vishr in #397
- docs(site): move documentation under /docs with standard section names by @vishr in #399
- docs(site): add a documentation home page at /docs by @vishr in #402
- docs(site): tighten documentation prose and state each rule once by @vishr in #408
- refactor(ui): align remaining file and component names by @vishr in #407
- refactor: remove package-name stutter and fix initialisms in Go identifiers by @vishr in #409
Full Changelog: v2026.10.23-alpha...v2026.10.24-alpha
v2026.10.23-alpha
What's Changed
- fix: clear the high-severity UI and Echo advisories by @vishr in #375
- chore: keep agent working files out of the public repository by @vishr in #376
- chore(deps): bump vite from 8.3.1 to 8.3.5 in /site by @dependabot[bot] in #366
- fix(site): clear the site lockfile advisories by @vishr in #382
- fix(ui): stop the app lifecycle tests racing their 500 ms launch deadline by @vishr in #383
- chore(deps): upgrade modernc.org/sqlite to v1.61.0 by @vishr in #384
Full Changelog: v2026.10.22-alpha...v2026.10.23-alpha
v2026.10.22-alpha
What's Changed
- fix(ingest): map current RPC semantic conventions to rpc_service and rpc_method by @vishr in #363
- fix(query): name the fix when a TIMESTAMPTZ literal meets a TIMESTAMPTZ_NS column by @vishr in #365
- chore: build with Go 1.27.3 and refresh the runtime image by @vishr in #368
- chore: adopt the shared LabStack CLA by @vishr in #367
- build(duckdb): pin DuckDB v2.0.0 LTS by @vishr in #370
- ci(release): build binaries with the Go version from go.mod by @vishr in #371
Full Changelog: v2026.10.20-alpha...v2026.10.22-alpha
Note on 2026.10.21-alpha
v2026.10.21-alpha published only its container images (ghcr.io/labstack/fanout:2026.10.21-alpha and labstack/fanout:2026.10.21-alpha). Its native archives failed to build because the release workflow pinned an older Go version (fixed in #371), so it has no GitHub Release, archives, or MCP Registry entry. This release contains the same changes, including DuckDB v2.0.0 LTS (#370), and is the complete release.
v2026.10.20-alpha
Upgrade notes
- Agent logins last months, not an hour. MCP access tokens now last 30
days and refresh tokens 90 days, renewed on each use. A refresh token its
own client rotated is admitted again for one access-token lifetime while
its family is live, so agent processes that share one stored credential,
such as Codex, no longer sign each other out. Every request still checks
access tokens against the database, so revocation is immediate. - Connected agents in Settings. Users see the agents connected to their
account and can disconnect one at once. Disconnecting, and an
administrator's revoke-all, also delete pending authorization codes. - Tokens issued before the upgrade keep their old lifetimes until their next
refresh. A client signed out before the upgrade signs in again once.
No configuration, Parquet format or migration changes.
What's Changed
Full Changelog: v2026.10.19-alpha...v2026.10.20-alpha