Access Formbricks changelog updates through our uniform API. Same JSON structure across all sources — no adapter-specific parsing needed.
GET https://watchchangelog.com/api/v1/entries?source=formbricks.releases{
"source": "formbricks.releases",
"vendor": "Formbricks",
"id": "tag:github.com,2008:Repository/500289888/5.4.0",
"published_at": "2026-08-26T12:35:18.000Z",
"title": "5.4.0",
"url": "https://github.com/formbricks/formbricks/releases/tag/5.4.0",
"summary": "What's Changed 🚀 Features feat(billing): provision metered workflow_runs price on scale subscriptions by @Dhruwang in #8735 feat(analytics): add PostHog AI and MCP observability by @harshsbhat in #8774 feat(dashboards): add dashboard-level date filter (ENG-1553) by @Dhruwang in #8773 feat(support): brand the Plain chat widget with Formbricks colors by @Dhruwang in #8810 feat: add org-level display timezone for response export timestamps by @Dhruwang in #8791 feat: wire the new feedback-record filters through v3 and the MCP tools by @xernobyl in #8836 feat(unify-feedback): let a source choose whether partial responses reach Hub (ENG-2058) by @xernobyl in #8798 feat: auto-update feedback source mappings when survey changes (ENG-2064) by @xernobyl in #8824 feat(unify-feedback): purge a feedback dataset's records from dataset settings (ENG-2129) by @xernobyl in #8844 feat(helm): add scalable background embedding pool by @BhagyaAmarasinghe in #8843 feat(ui): add settings table primitive by @itsjavi in #8839 feat(charts): show question type icons in the question pick-list and widen it by @Dhruwang in #8883 feat(charts): add chart display settings by @Dhruwang in #8884 feat: show completed responses in survey overview (ENG-1784) by @jobenjada in #8808 🐛 Fixes fix(survey-ui): make the calendar day hover state meet WCAG AA by @pandeymangg in #8723 fix: enforce tenant scoping on workspace teamIds and response contact/display links (ENG-1922, ENG-1923) by @xernobyl in #8669 fix(i18n): stop the translation scanner CLI running on import by @itsjavi in #8708 fix(web): exit non-zero when typegen env validation fails by @Dhruwang in #8730 fix(helm): bound Hub worker API wait by @BhagyaAmarasinghe in #8727 fix(unify-feedback): restrict record delete/update to org owners and managers by @pandeymangg in #8675 fix(auth): stop truncating the localhost warning on the OAuth consent screen [ENG-2120] by @itsjavi in #8720 fix(surveys): make Cal.com scheduler header legible and honor style override by @Dhruwang in #8729 fix(unify-feedback): stop polling a reaped taxonomy run, and declare service_unavailable in the spec by @xernobyl in #8717 fix(logger): resolve OTEL transport from runtime root by @BhagyaAmarasinghe in #8744 fix(deps): patch vite and js-yaml advisories in @formbricks/workflows by @Dhruwang in #8724 fix(charts): pin rating/CSAT Y-axis on ungrouped measure charts [ENG-2226] by @Dhruwang in #8749 fix(mcp): surface the missing OAuth scope and fix recall search [ENG-2120] by @itsjavi in #8718 fix(workflows): report a blocked autosave state for an empty name by @Dhruwang in #8733 fix(workflows): scope send_email recipients to workspace access by @itsjavi in #8736 fix(mcp,api): audit logging, OAuth scope parity, Prisma 7 constraint fields and dry-run scopes by @xernobyl in #8743 fix(survey): use validated SURVEY_SCHEDULING_TIME_ZONE for archive purge by @Dhruwang in #8767 fix: prevent duplicate otel log export by @BhagyaAmarasinghe in #8770 fix(survey): keep lists and non-URL attributes in follow-up email bodies [ENG-2120] by @itsjavi in #8719 fix(helm): support graceful container shutdown by @BhagyaAmarasinghe in #8775 fix(security): tie the contact detail page to the workspace in the URL [ENG-2290] by @mattinannt in #8789 fix(segments): bound caller-controlled surveyIds before the Prisma IN query by @pandeymangg in #8772 fix(link-survey): don't serialize the survey PIN into the public page (ENG-2098) by @Dhruwang in #8793 fix(hub): mount dev Google credentials and make a Hub outage legible (ENG-1916) by @xernobyl in #8662 fix(charts): wrap long x-axis labels on cartesian charts (ENG-2061) by @Dhruwang in #8705 fix(security): bump js-yaml to 4.3.1 for !!omap quadratic-CPU DoS [ENG-2278][ENG-2279] by @Dhruwang in #8799 fix: canonicalize client IP resolution by @BhagyaAmarasinghe in #8796 fix(unify-feedback): exclude draft surveys from feedback source suggestions by @jobenjada in #8803 fix(surveys): stop no-overlay surveys blocking the host page (ENG-2304) by @pandeymangg in #8804 fix(survey-ui): announce validation errors to screen readers - a11y [ENG-1292] by @itsjavi in #8766 fix(email): resolve the whitelabel logo path for workflow and follow-up emails by @jobenjada in #8817 fix(deps): remediate container image vulnerabilities by @BhagyaAmarasinghe in #8828 fix(feedback-records): gate API-key record mutations on unshared datasets and manage [ENG-2189, ENG-2083] by @xernobyl in #8741 fix(surveys): expose progress and auto-close countdown to assistive tech [ENG-1070] by @itsjavi in #8776 fix(security): restrict the onboarding invite path to organization owners [ENG-2169] by @pandeymangg in #8813 fix(deps): bump undici, socket.io-parser, fast-uri, ip-address for high-risk advisories by @Dhruwang in #8807 fix(workflows): stop read-only members getting an interactive editor by @Dhruwang in #8811 fix(security): bind MCP access-token audience to this resource server by @xernobyl in #8829 fix(surveys): open pasted links in a new tab and keep element text selectable by @jobenjada in #8812 fix(unify-feedback): render feedback record value text as a textarea by @jobenjada in #8830 fix(security): bump hono to 4.12.34 and patch 4 advisories by @Dhruwang in #8847 fix: clean up transient Prisma migrations directory after each run by @xernobyl in #8809 fix(surveys): require draft-to-draft for skip-validation survey updates by @itsjavi in #8834 fix: block native password-reset endpoints when PASSWORD_RESET_DISABLED (ENG-2105) by @xernobyl in #8816 fix: stop the sentiment_score filter description from inviting -1/1 as a default by @xernobyl in #8856 fix(settings): hide the workspace breadcrumb on organization and account settings by @itsjavi in #8818 fix: block unauthenticated account creation on closed instances via raw signup endpoint [ENG-2293] by @xernobyl in #8821 fix(security): bump nanoid to 3.3.18 and patch advisory [ENG-2403] by @Dhruwang in #8881 fix(unify-feedback): drop the inert import-mode control from the edit source modal by @Dhruwang in #8879 fix: assign exactly one reviewer via a single team code owner by @mattinannt in #8887 fix(integrations): read Google Sheets integration server-side when linking a sheet by @Dhruwang in #8854 fix(surveys): reject script-capable schemes in survey link URLs [ENG-2411] by @Dhruwang in #8885 fix(integrations): stop returning OAuth credentials from integration actions by @Dhruwang in #8860 fix(security): tie survey pages to the workspace in the URL [ENG-2101] by @mattinannt in #8783 fix(security): bind email-change tokens to credential state [ENG-2106] by @Dhruwang in #8848 fix(surveys): open overflowing welcome and CTA cards at the top [ENG-2289] by @itsjavi in #8902 fix(auth): fail closed on an unrecognized minPermission by @Dhruwang in #8866 fix(analysis): stop the pie tooltip showing the internal measure key [ENG-2346] by @Dhruwang in #8903 fix(security): scope response file deletion to the owning workspace [ENG-2291] by @pandeymangg in #8861 fix(unify): retire stale coming-soon on feedback source options by @xernobyl in #8908 fix(api): restore legacy environmentId on API v1 surveys and webhooks by @Dhruwang in #8855 fix(entitlements): treat null self-hosted workspace license as unlimited by @Dhruwang in #8865 fix(auth): tag Better Auth error captures with the request endpoint (ENG-2259) by @xernobyl in #8907 fix(a11y): give the public survey a semantic heading structure [ENG-2336] by @itsjavi in #8919 fix(security): bump deepmerge-ts to 8.0.1 by @Dhruwang in #8926 fix(surveys): close the editor by navigating, not by history [ENG-2476] by @Dhruwang in #8918 fix(a11y): identify the active language in the survey language switcher [ENG-2335] by @itsjavi in #8920 fix(a11y): title public survey pages per step and keep instructions reachable [ENG-2334] by @itsjavi in #8923 fix(sentry): fix source map uploads and stop them failing silently by @pandeymangg in #8927 fix(surveys): keep mount autofocus from painting an option as hovered or selected [ENG-2288] by @itsjavi in #8932 fix(analysis): close the chart gaps found rebuilding a customer dashboard [ENG-2473] by @Dhruwang in #8921 fix(security): stop publishing the bundled Valkey session store to the host [ENG-2184] by @mattinannt in #8922 fix(navigation): keep the current organization when deleting a workspace and in account settings (ENG-2142) by @jobenjada in #8815 fix(integrations): await Google Sheets writes instead of throwing in callbacks [ENG-2250] by @Dhruwang in #8905 fix(responses): bounds-check the response modal index on delete [ENG-2130] by @Dhruwang in #8906 fix(storage): delete uploaded files when a survey's responses are reset by @jobenjada in #8930 fix(sso): write the canonical Account.issuer so Google sign-in stops looping (backport 5.4) by @xernobyl in #8952 fix: use multi-arch Valkey image (backport #8986 to release/5.4) by @Dhruwang in #8996 fix(surveys): stop announcing the public-API name placeholder on app surveys (backport #8982 to release/5.4) by @Dhruwang in #8997 🔧 Refactors refactor: move Sentry client init to instrumentation-client by @mattinannt in #8725 refactor(jobs): declare recurring background jobs once by @xernobyl in #8765 refactor(storybook): single Tailwind v4 CSS entry and document the workspace CSS invariant by @itsjavi in #8782 refactor(email): treat package as source-consumed and reconcile Tailwind on v4 by @itsjavi in #8781 refactor: normalize package entry points and version pinning by @mattinannt in #8784 refactor(turbo): scope build env per package and tighten task hashing by @xernobyl in #8800 refactor(env): route environment access through the validated env module (ENG-1685) by @pandeymangg in #8794 refactor(ui): unify table primitive defaults by @itsjavi in #8837 refactor(ui): replace SettingsCard noPadding with bodyVariant by @itsjavi in #8838 refactor(settings): move enterprise license features onto SettingsTable by @itsjavi in #8840 refactor(settings): move the api keys table onto SettingsTable by @itsjavi in #8871 refactor(settings): move team access and feedback directories onto SettingsTable by @itsjavi in #8841 refactor(settings): move organization teams onto SettingsTable by @itsjavi in #8842 refactor(settings): move the last four settings tables onto SettingsTable by @itsjavi in #8891 refactor(mcp): migrate MCP to latest protocol (SDK v2) and reject undeclared tool arguments by @xernobyl in #8859 📚 Docs docs(self-hosting): add v5.3 migration guide by @Dhruwang in #8731 docs(helm): document taxonomy observability by @BhagyaAmarasinghe in #8737 docs(helm): enable trace correlation in the observability example by @xernobyl in #8748 docs: state the minimum mobile SDK versions for interaction-based segments by @pandeymangg in #8769 docs: fix Linear auto-linking guidance in the PR template by @mattinannt in #8726 docs: update SSO callback URIs for the Better Auth path change [ENG-1973] by @pandeymangg in #8792 docs: clarify custom subpath storage setup by @BhagyaAmarasinghe in #8785 docs: clarify production self-hosting guidance by @BhagyaAmarasinghe in #8820 docs: document accepted risk for pnpm audit oauth-provider finding by @mattinannt in #8656 docs: add Thank You card page to question types by @jobenjada in #8822 docs: add Collect Google Reviews best practice by @jobenjada in #8823 docs: expand single-use links guide by @jobenjada in #8904 docs: warn about stale package dist after a branch switch by @xernobyl in #8762 docs(pr-template): say how to look up the model and effort for the agent note by @itsjavi in #8934 docs: state that we do not offer bug bounties by @mattinannt in #8944 ⚙️ CI fix(ci): don't mislabel PRs breaking-change; tolerate a hand-removed label by @xernobyl in #8763 ci: enforce prettier formatting in the lint job by @mattinannt in #8777 fix(ci): stop E2E merge-queue stalls from unused Playwright browser install by @mattinannt in #8780 fix(ci): stop path_filters from skipping every CodeRabbit review by @mattinannt in #8852 chore(ci): run pnpm typecheck on every PR [ENG-2261] by @pandeymangg in #8853 ci: drive the breaking-change label from a checkbox (ENG-2332) by @Dhruwang in #8862 🧹 Chores chore: split lint check from autofix and add ESLint to pre-commit by @mattinannt in #8677 chore: update hub to 0.8.3 by @xernobyl in #8758 chore: move CodeRabbit config into the repo as .coderabbit.yaml (ENG-2268) by @mattinannt in #8778 chore: remove stale PostHog A/B experiment flags by @harshsbhat in #8827 chore: update hub to 0.8.4 and the hub sdk to 0.12.0 by @xernobyl in #8833 chore: add CODEOWNERS with CI validation by @mattinannt in #8851 chore: move all QA onto the PR and slim the PR template by @mattinannt in #8888 chore: monorepo config audit cleanups [ENG-1695] [ENG-1696] [ENG-1697] by @pandeymangg in #8898 chore(eslint): restore type-aware rules dropped in the flat-config migration by @pandeymangg in #8850 chore(typecheck): include test files in the typecheck graph by @pandeymangg in #8890 chore: add consistent UTM tags to all outbound formbricks.com links by @harshsbhat in #8928 chore(rustfs): upgrade RustFS from 1.0.0-alpha.93 to 1.0.0-rc.2 by @BhagyaAmarasinghe in #8925 chore(deps): adopt pnpm catalogs for shared dependency versions by @mattinannt in #8937 chore(deps): upgrade Better Auth to 1.7.0 and migrate MCP OAuth to the resource model by @xernobyl in #8835 Full Changelog : 5.3.4...5.4.0",
"tags": [
"Formbricks",
"formbricks.releases",
"forms",
"surveys",
"open-source"
]
}Sign up to access the full changelog API. All public sources are free — no credit card required.
Sign Up Free →+2 more
+2 more
+2 more
+2 more
+2 more