Repository navigation
Releases
Fluidify Regen v1.3.0
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_severityfield (critical,high,medium,low) sets the level of the incident an alert creates, independently of the alert's ownseverity, and can open an incident for aninfoalert. Leaving it out keeps the existing mapping (critical → critical, warning → high, info → no incident). Routingsuppressand 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.
warningandinfokeep 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
lowoverride now open a low incident. The routing UI already offeredlow, but the backend treated it aswarning, so those rules opened a high incident. Check existing rules that uselow. - Go 1.26.10 toolchain, with updated
x/net,x/text, OpenTelemetry, gRPC and ClickHouse driver dependencies. Clears 27 reachable vulnerabilities reported bygovulncheck. (#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
appVersionhad stayed at 1.0.0, so Helm installs that did not setimage.tagkept 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-valuesNo 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
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.4No database migrations in this release.
See CHANGELOG for full details.
Fluidify Regen v1.2.3
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.3No database migrations in this release.
See CHANGELOG for full details.
Fluidify Regen v1.2.2
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 noteams_user_idnow logs an error instead of being skipped silently. teams_user_idtakes the Teams user ID. The29:prefix is added only when it is missing, so29:<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.2No database migrations in this release.
See CHANGELOG for full details.
Fluidify Regen v1.2.1
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 whenTZwas set. It now showsTZwhen 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.1No database migrations in this release.
See CHANGELOG for full details.
Fluidify Regen v1.2.0
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_ENDPOINTto turn it on. It covers HTTP, database, Redis, outbound calls, workers and LLM completions, plus browser error tracking. Seedocs/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.0Two new database migrations (000044, 000045) run automatically on startup. No manual action is needed.
See CHANGELOG for full details.
Fluidify Regen v1.1.0
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_CREDENTIALSto 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/registerPOST /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
- Create a Firebase project and download a service account JSON
- Set
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.jsonin your environment - 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.0One new database migration (000043) runs automatically on startup no manual action needed.
See CHANGELOG for full details.
Fluidify Regen v1.0.2
Bug fixes
- Login broken on plain-HTTP self-hosted installs — session cookie was set with
Secure=trueunconditionally, 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 viar.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.2No database migrations or environment variable changes are required.
See CHANGELOG for full details.
Fluidify Regen v1.0.1
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.1See CHANGELOG for full details.
Fluidify Regen v1.0.0
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_TOKENno 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-valuesMigrations 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