Skip to content

Releases

Fluidify Regen v1.3.0

Choose a tag to compare

@singret singret released this 09 Nov 06:19
15ad161

Incident severity control and alert-driven incident lifecycle

Thanks to @NickvanTholen for #200 and #204.

Added

  • Choose the incident severity from the generic webhook. A new optional incident_severity field (critical, high, medium, low) sets the level of the incident an alert creates, independently of the alert's own severity, and can open an incident for an info alert. Leaving it out keeps the existing mapping (critical → critical, warning → high, info → no incident). Routing suppress and routing severity overrides take precedence. (#204, #202)

    {"title": "Redis memory usage increasing", "severity": "info", "incident_severity": "low"}
  • Routing rule severity overrides accept the four incident levels for every source (Prometheus, Grafana, CloudWatch and the generic webhook). The original monitoring severity is still stored on the alert. warning and info keep their previous meaning.

Changed

  • Automatic incidents now resolve when their alerts resolve. An incident created from alerts is resolved once every linked alert has resolved (acknowledged incidents included), with a timeline note. If the alert fires again later, a new incident is opened. Manually created incidents are never auto-resolved. Each webhook is processed in one transaction, so retries and simultaneous deliveries cannot create duplicate incidents. (#200)
  • Routing rules saved with a low override now open a low incident. The routing UI already offered low, but the backend treated it as warning, so those rules opened a high incident. Check existing rules that use low.
  • Go 1.26.10 toolchain, with updated x/net, x/text, OpenTelemetry, gRPC and ClickHouse driver dependencies. Clears 27 reachable vulnerabilities reported by govulncheck. (#203)

Fixed

  • Linked alerts on the incident page showed "Invalid Date". Alert start, end and received times are now included and shown in the browser's timezone.
  • dompurify (used by the analytics library) updated to 3.4.17 for critical XSS advisories.
  • The Helm chart now deploys the current release. The chart's appVersion had stayed at 1.0.0, so Helm installs that did not set image.tag kept running Regen 1.0.0 through v1.2.x. The chart is now 1.3.0 and deploys 1.3.0 by default.

Known limitations

  • A resolved incident shows its alert as firing again if that alert recurs, because the alert record holds only its latest state.
  • Incidents whose alerts never send another webhook stay open; they are reconciled on the next delivery for that alert.

Upgrade

docker pull ghcr.io/fluidifyai/regen:1.3.0
# or
helm repo add fluidify https://charts.fluidify.ai
helm repo update
helm upgrade regen fluidify/fluidify-regen --version 1.3.0 --reuse-values

No new database migrations in this release. Helm users on the default image tag are upgrading from 1.0.0, so every migration since 1.0.0 runs during the upgrade: take a database backup first.

See CHANGELOG for full details.

Fluidify Regen v1.2.4

Choose a tag to compare

@singret singret released this 26 Oct 14:48
58923b9

Teams escalation cards

A release for the follow-ups from #188.

Added

  • Teams escalation pages are now Adaptive Cards. The page shows the alert title (coloured by severity), severity, source and tier, with a View Alert button, so a later-tier recipient has the context without searching. Incident-sourced escalations get a card with the tier and a link to the incidents list. Slack pages are unchanged.

Documentation

  • The Teams guide referred to scripts/teams-app-package.sh, which does not exist. It now describes the in-app download (Settings → Integrations → Teams → Download Teams App Package), which needs the credentials saved first.

Known limitations

  • The Teams card change has not been tested against a real tenant by the maintainers. Reports are welcome on #188.
  • Teams escalation cards have no Acknowledge button.
  • Users brought in with Import from Teams have an Entra Object ID in teams_user_id, which Bot Framework rejects for DMs. Set the Teams user ID (29:...) by hand for now.

Upgrade

docker pull ghcr.io/fluidifyai/regen:1.2.4
# or
helm repo add fluidify https://charts.fluidify.ai
helm upgrade regen fluidify/fluidify-regen --version 1.0.0 --reuse-values --set image.tag=1.2.4

No database migrations in this release.

See CHANGELOG for full details.

Fluidify Regen v1.2.3

Choose a tag to compare

@singret singret released this 26 Oct 14:26
f21f1bd

Escalation pages carry the alert's details

A patch release for a follow-up found in #188.

Bug fixes

  • Escalation pages now include the alert. The escalation engine was never given a way to load the alert, so pages arrived as "You're being paged:" with no title and the fallback emoji instead of the severity one. This affected Slack and Teams pages and the text of the push notification. Pages now carry the alert's title, severity and source. If the alert cannot be loaded, a warning is logged and the bare page is still sent, so a lookup problem never stops someone being paged.

Known limitation

Teams escalation pages are plain text, without an Acknowledge button or a link to the incident. This is tracked on #188.

Upgrade

docker pull ghcr.io/fluidifyai/regen:1.2.3
# or
helm repo add fluidify https://charts.fluidify.ai
helm upgrade regen fluidify/fluidify-regen --version 1.0.0 --reuse-values --set image.tag=1.2.3

No database migrations in this release.

See CHANGELOG for full details.

Fluidify Regen v1.2.2

Choose a tag to compare

@singret singret released this 24 Oct 10:13
5dbf34f

Teams paging fixes and an escalation crash

A patch release for the problems reported in #188.

Bug fixes

  • Escalating a manually declared incident no longer crashes the server. An escalation with no alert dereferenced a nil alert, so every replica crash-looped on the 30-second worker tick. These escalations now send a page without the alert Acknowledge button.
  • Teams on-call DMs are now delivered. The card was sent inline when the conversation was created. Bot Framework accepts that with a 200 but does not deliver it, and Regen logged success. The DM now opens the conversation and posts the card to it, and reports success only from that response.
  • Teams escalation and shift DMs now work with application permissions. They used to create a Graph 1:1 chat, which cannot work. They now go through Bot Framework as plain text, using the recipient's teams_user_id. A user with no teams_user_id now logs an error instead of being skipped silently.
  • teams_user_id takes the Teams user ID. The 29: prefix is added only when it is missing, so 29:<id> and the bare ID both work. The Entra Object ID does not work, and the Teams guide now says so.

Upgrade notes

  • The Teams DM changes have not been tested against a real tenant by the maintainers. Reports are welcome on #188.
  • Users brought in with Import from Teams have an Entra Object ID in teams_user_id, which Bot Framework rejects for DMs. Replace it with the Teams user ID (29:...) for now.
  • Teams escalation pages are plain text, without an Acknowledge button.

Upgrade

docker pull ghcr.io/fluidifyai/regen:1.2.2
# or
helm repo add fluidify https://charts.fluidify.ai
helm upgrade regen fluidify/fluidify-regen --version 1.0.0 --reuse-values --set image.tag=1.2.2

No database migrations in this release.

See CHANGELOG for full details.

Fluidify Regen v1.2.1

Choose a tag to compare

@singret singret released this 21 Oct 17:20
5858383

Schedule timezone fixes

A patch release for three timezone problems when creating schedules.

Bug fixes

  • The instance timezone now follows the container's TZ. With nothing saved, Settings → System used to show UTC even when TZ was set. It now shows TZ when that is a valid timezone name, and UTC otherwise. A saved value still wins.
  • New schedules no longer default to UTC. The create-schedule form and the onboarding wizard start with the instance timezone, then the browser's.
  • A schedule now starts on the day you pick. The start date used to be saved as midnight UTC whatever timezone was chosen, so a Perth schedule starting on Monday began at 08:00 and the preview showed the previous person on day one. The date is now midnight in the schedule's timezone, and the preview is computed in that timezone. The default start date also uses today in the schedule's timezone.

Upgrade notes

Schedules created before this release keep the start they were saved with (midnight UTC). To move one to local midnight, an admin can re-save the layer start.

Known limitation

The on-call calendar still draws its day columns in the viewer's timezone rather than the schedule's. This is tracked in #186.

Upgrade

docker pull ghcr.io/fluidifyai/regen:1.2.1
# or
helm repo add fluidify https://charts.fluidify.ai
helm upgrade regen fluidify/fluidify-regen --version 1.0.0 --reuse-values --set image.tag=1.2.1

No database migrations in this release.

See CHANGELOG for full details.

Fluidify Regen v1.2.0

Choose a tag to compare

@singret singret released this 18 Oct 09:11
4fb6e5a

Mobile PWA, editable holidays, and tracing

What's new

  • Edit your schedule's holidays. Admins can hide or restore imported holidays, rename them, and add their own from a new Holidays panel on the schedule page. Country feeds keep syncing daily but no longer undo your edits. Hidden holidays show dimmed on the calendar for admins only.
  • Slack DM from a routing rule. A rule can name an alert label that holds an email (notify_email_label). If it matches an active Regen user, that person gets a Slack DM, even when the rule suppresses the incident. Emails that don't belong to a Regen user are ignored.
  • Mobile PWA. Install Regen on your phone, with push notifications and five mobile screens. This builds on the push infrastructure from v1.1.0.
  • OpenTelemetry tracing, off by default. Set OTEL_EXPORTER_OTLP_ENDPOINT to turn it on. It covers HTTP, database, Redis, outbound calls, workers and LLM completions, plus browser error tracking. See docs/OBSERVABILITY.md.

Bug fixes

  • The on-call calendar no longer shows a layer starting a day late.
  • Push endpoints now check authentication before validating the request body.

Known limitation

Holidays are not yet tied to a state or region, so a feed such as Australia's includes every state's holidays. You can now hide the ones that don't apply. Region-aware feeds are planned.

Upgrade

docker pull ghcr.io/fluidifyai/regen:1.2.0
# or
helm repo add fluidify https://charts.fluidify.ai
helm upgrade regen fluidify/fluidify-regen --version 1.0.0 --reuse-values --set image.tag=1.2.0

Two new database migrations (000044, 000045) run automatically on startup. No manual action is needed.

See CHANGELOG for full details.

Fluidify Regen v1.1.0

Choose a tag to compare

@singret singret released this 08 Aug 11:54
3f5bceb

Mobile: Push Notifications

On-call engineers can now receive push alerts on Android and iOS directly from Regen no separate notification service needed.

What's new

  • Firebase Cloud Messaging integration set GOOGLE_APPLICATION_CREDENTIALS to a Firebase service account JSON to enable. If the variable is unset, nothing changes the feature silently no-ops.
  • Device token API authenticated endpoints for PWA and native clients to register and unregister push tokens:
    • POST /api/v1/push/register
    • POST /api/v1/push/unregister
  • Three notification triggers:
    • Incident created → on-call responder is notified
    • Escalation tier fires → paged engineer is notified
    • Incident resolved → commander is notified
  • Automatic stale token cleanup tokens inactive for 90+ days are removed nightly

Setup

  1. Create a Firebase project and download a service account JSON
  2. Set GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json in your environment
  3. The PWA (coming in v1.2) and React Native app (v1.3) will use these endpoints automatically

Upgrade

docker pull ghcr.io/fluidifyai/regen:1.1.0
# or
helm repo add fluidify https://charts.fluidify.ai
helm upgrade regen fluidify/fluidify-regen --version 1.0.0 --reuse-values --set image.tag=1.1.0

One new database migration (000043) runs automatically on startup no manual action needed.

See CHANGELOG for full details.

Fluidify Regen v1.0.2

Choose a tag to compare

@singret singret released this 08 Aug 11:47
4c8446a

Bug fixes

  • Login broken on plain-HTTP self-hosted installs — session cookie was set with Secure=true unconditionally, causing browsers to silently drop it over HTTP on self-hosted installs behind a reverse proxy or without TLS termination at the app layer. Cookie security is now detected per-request via r.TLS / X-Forwarded-Proto. (#150, #151)
  • Timezone picker missing most of the world — the hardcoded 30-entry timezone list has been replaced with a searchable combobox backed by Intl.supportedValuesOf('timeZone'), exposing all ~600 IANA timezone zones. Brisbane, Perth, Adelaide, Darwin and every other previously missing timezone now appear. (#147, #152)

Upgrade from v1.0.1 or v1.0.0:

docker pull ghcr.io/fluidifyai/regen:1.0.2
# or
helm repo add fluidify https://charts.fluidify.ai
helm upgrade regen fluidify/fluidify-regen --version 1.0.0 --reuse-values --set image.tag=1.0.2

No database migrations or environment variable changes are required.

See CHANGELOG for full details.

Fluidify Regen v1.0.1

Choose a tag to compare

@singret singret released this 08 Aug 11:46
35b5ab9

Security

  • Go 1.25.12 toolchain — resolves GO-2026-5856 (Encrypted Client Hello privacy leak in crypto/tls).

Upgrade from v1.0.0:

docker pull ghcr.io/fluidifyai/regen:1.0.1
# or
helm repo add fluidify https://charts.fluidify.ai
helm upgrade regen fluidify/fluidify-regen --version 1.0.0 --reuse-values --set image.tag=1.0.1

See CHANGELOG for full details.

Fluidify Regen v1.0.0

Choose a tag to compare

@singret singret released this 12 Jul 05:58
d60b9e2

Fluidify Regen v1.0.0 — GitHub Release Body


Fluidify Regen v1.0.0

The first stable release of Fluidify Regen — open-source incident management and on-call scheduling, self-hosted, free forever.

Why we built this

PagerDuty and incident.io charge $30–50/user/month. For a 200-person engineering team, that's $120,000/year for software that runs on someone else's infrastructure with your incident data. Grafana OnCall was the best self-hosted alternative — until Grafana archived it in March 2026, leaving ~50,000 users without a migration path.

Regen fills that gap. Full alert ingestion, on-call rotations, escalation policies, Slack/Teams integration, AI post-mortems, and 1-click migration from PagerDuty, Opsgenie, and Grafana OnCall — in a single Docker image, on your own servers.

SSO is free. Gating SAML behind an enterprise tier is user-hostile. Security hygiene shouldn't require a procurement process.

What's new since v0.11.0

On-call

  • Schedule overrides UI with drag-to-create and conflict detection
  • Public holidays — import national calendars, suppress paging during holidays
  • Individual leave and unavailability — auto-redistributes shifts
  • Timezone UX improvements across all schedule forms and the calendar

Alert routing

  • RE2 regex in routing rule match criteria — match on label values, annotation content, alert title, and description
  • Fixes: suppress toggle, priority defaulting, optional webhook fingerprint

Migrations

  • PagerDuty 1-click import with EU region support
  • Opsgenie 1-click import with EU region support
  • Grafana OnCall migration guide for the ~50,000 affected users

Slack

  • Migrated from Socket Mode to HTTP Events API — SLACK_APP_TOKEN no longer needed
  • Threaded timeline notes — notes post as threads, not separate messages
  • Emoji reaction transitions — ✅ to acknowledge, 🔴 to resolve from Slack

AI

  • Multi-provider connector: OpenAI, Anthropic, or self-hosted Ollama
  • Post-mortem template selector at generation time
  • AI cost tracking per user in the Analytics dashboard

Incident management

  • File attachments on incidents
  • Incident detail page redesign — severity tint, sticky action bar, cleaner properties panel
  • Public status page for stakeholder-facing incident communication

Security

  • Patched SAML signature-bypass in goxmldsig
  • Fixed pgx SQL injection CVE (GO-2026-5004) — upgraded to pgx/v5 v5.9.2
  • Go 1.25.11 toolchain — closes 7 stdlib CVEs
  • 12 npm transitive vulnerability fixes

Documentation

  • Opsgenie migration guide
  • 10 production failure runbooks (Slack down, DB lost, alert flood, missed escalation, Redis unavailable, SAML, empty schedule, Helm rollback, migration failed, OOM)

Upgrade from v0.11.0

# Docker Compose
docker pull ghcr.io/fluidifyai/regen:1.0.0
make start

# Kubernetes
helm upgrade fluidify-regen fluidify/fluidify-regen --version 1.0.0 -n fluidify --reuse-values

Migrations run automatically. No environment variable changes required. SLACK_APP_TOKEN is now unused — safe to remove or leave as-is.

No breaking changes

v1.0.0 is fully backwards-compatible with v0.11.0.

What's next

v1.1 focuses on the MCP server — external agents (Claude, GPT, custom bots) will be able to call Regen over MCP to query incident history, triage context, on-call state, and service health profiles. Agents become first-class actors, with their own identity and audit trail in the timeline.


Full changelog: CHANGELOG.md
Docker image: ghcr.io/fluidifyai/regen:1.0.0
Helm chart: helm install regen fluidify/fluidify-regen --version 1.0.0
Discord: https://discord.gg/b6PSdhzDa