This Formbricks release delivers significant performance enhancements, introduces support for rich text in question headlines and descriptions, and includes numerous bug fixes and security improvements π
What's Changed
- feat(ci): add conditional tagging based on 'Set as latest release' option by @mattinannt in #6628
- feat(docker): upgrade Traefik from v2.7 to v2.11.29 for security by @mattinannt in #6636
- feat: Add "None of the above" option for Multi-Select and Single-Select questions by @jobenjada in #6646
- feat: Add language as default contact attribute for case-insensitive CSV matching by @jobenjada in #6696
- feat: Improve CSV upload validation and handling by @jobenjada in #6699
- feat: Optimize layout data fetching and reduce database queries by 50% by @mattinannt in #6729
- feat: Show SingleUse ID data in survey responses table by @hmacr in #6742
- feat: add cache integration tests and update E2E workflow by @victorvhs017 in #6551
- feat: add redis migration script by @victorvhs017 in #6575
- feat: adds docs for s3 compatible storage by @pandeymangg in #6538
- feat: adds one-click MinIO migration script for Formbricks 4.0 by @pandeymangg in #6553
- feat: hit ENTER for new option by @jobenjada in #6624
- feat: make S3_REGION optional in storage client configuration by @mattinannt in #6577
- feat: recall in rich text by @Dhruwang in #6630
- feat: refactor translation key management by @Dhruwang in #6717
- feat: rich text in headlines by @pandeymangg in #6685
- chore(deps-dev): bump the npm_and_yarn group across 9 directories wit⦠by @mattinannt in #6730
- chore: Response page data handling optimization + UI tweaks by @jobenjada in #6716
- chore: add Cursor rule for Review & Refinement by @jobenjada in #6648
- chore: add PR size guidelines and pre-push hook for size checks by @victorvhs017 in #6679
- chore: added expirationDays param support in personal link api by @Dhruwang in #6578
- chore: adds surveys package readme by @gupta-piyush19 in #6598
- chore: apply prettier formatting by @mattinannt in #6719
- chore: clean up login screen by @jobenjada in #6710
- chore: exclude TSX files from unit test coverage by @mattinannt in #6723
- chore: improve Sentry API logs with correlation ID and request context by @victorvhs017 in #6584
- chore: increase visibility of hover effect to indicate clickability by @jobenjada in #6622
- chore: prevent phishing for CTA question & on thank you page by @jobenjada in #6694
- chore: remove Next.js Redis cache handler by @mattinannt in #6725
- chore: remove cloud infrastructure from main repository by @mattinannt in #6686
- chore: update @boxyhq/saml-jackson and posthog-node by @Dhruwang in #6647
- chore: update Next.js to 15.5.6 by @mattinannt in #6727
- chore: update dependencies and improve logging format by @victorvhs017 in #6672
- chore: update esbuild to latest version by @victorvhs017 in #6662
- chore: update release pipeline for new infrastructure by @mattinannt in #6541
- chore: use stable tag to manage releases and ensure one-click-setup c⦠by @mattinannt in #6540
- docs: Add docs for headless use of Formbricks by @harshsbhat in #6700
- docs: Add redirect error handling by @harshsbhat in #6548
- docs: Open API Docs for Create Attribute Class by @jobenjada in #6713
- docs: add AGENTS guidelines by @mattinannt in #6718
- docs: add setLanguage method to user identification documentation by @devin-ai-integration[bot] in #6670
- docs: add tag docs by @jobenjada in #6640
- docs: enhance file upload troubleshooting guidance in migration by @victorvhs017 in #6645
- docs: remove beta note by @jobenjada in #6593
- docs: update license pages by @jobenjada in #6631
- docs: updated screenshots in docs by @gupta-piyush19 in #6562
- fix(ci): update release tag validation to accept format without v prefix by @mattinannt in #6585
- fix: (Backport) survey UI fix by @Dhruwang in #6757
- fix: 1135 translation updates by @Dhruwang in #6743
- fix: API key docs by @jobenjada in #6697
- fix: Duplicate PR for fixing invalid email validation by @pandeymangg in #6709
- fix: Improve messaging for mobile users by @jakobsitory in #6579
- fix: allow deselecting optional single-select question responses by @jobenjada in #6643
- fix: api key hashing algorithm by @victorvhs017 in #6639
- fix: api key modal tweaks by @Dhruwang in #6552
- fix: backports welcome card survey title fix by @pandeymangg in #6750
- fix: block previews for completed and paused surveys by @Dhruwang in #6576
- fix: breadcrumb dropdown active state and loading indicators by @jobenjada in #6714
- fix: broken churn survey template by @Dhruwang in #6559
- fix: bumps nodemailer version by @pandeymangg in #6667
- fix: e2e tests issue due to security policy by @mattinannt in #6558
- fix: embed mode for relevant question types by @jobenjada in #6705
- fix: empty container in template UI by @Dhruwang in #6556
- fix: enhance JWT handling with improved encryption and decryption logic by @victorvhs017 in #6596
- fix: enter button event applying to preview on right side when enter in welcome card editor #6739 by @Aashish-png in #6740
- fix: execute pipeline on Create Response of Management API by @jobenjada in #6712
- fix: file uploads and cluster setup docs by @pandeymangg in #6623
- fix: fixes the formbricks.sh redis undefined volume bug by @pandeymangg in #6604
- fix: followup toast by @Dhruwang in #6565
- fix: improve E2E test reliability and security by @victorvhs017 in #6653
- fix: integration redirect links by @Dhruwang in #6555
- fix: logic fallback cleanup by @gupta-piyush19 in #6568
- fix: logic issues by @Dhruwang in #6561
- fix: minor csp change and removes uploads volume by @pandeymangg in #6566
- fix: move Follow ups to Enterprise plan by @jobenjada in #6734
- fix: parse question text-content for GSheets header row by @hmacr in #6736
- fix: prevent browser confirmation dialog after successful survey save by @Dhruwang in #6744
- fix: prevent navigation collapse/expand flash on page load (quick fix) by @jobenjada in #6678
- fix: quota translations by @Dhruwang in #6546
- fix: release tag extraction in release action by @mattinannt in #6554
- fix: remove capitalize functions by @jakobsitory in #6610
- fix: removes unused migration and language flag from the codebase by @jobenjada in #6704
- fix: replace button with div in IdBadge to prevent hydration issues by @Dhruwang in #6601
- fix: restricts management file uploads size to be less than 5MB by @pandeymangg in #6669
- fix: revert accidental merges by @jobenjada in #6701
- fix: switch Manage Subscription button bg to stripe color by @jobenjada in #6633
- fix: synced translations by @Dhruwang in #6547
- fix: update OpenAPI schema for action class creation endpoint by @Dhruwang in #6617
- fix: upgrade axios and tar-fs to resolve dependabot issues by @jobenjada in #6655
- fix: use /releases/latest endpoint to fetch correct latest version by @Dhruwang in #6690
- perf(web): optimize Next.js image processing to prevent timeouts by @mattinannt in #6665
- perf: reduce cache TTL to 1 minute for SDK environment state and segments by @mattinannt in #6635
- refactor: remove hidden fields toggle from UI by @jobenjada in #6649
- refactor: simplify Stripe integration and rename enterprise to custom by @jobenjada in #6720
- revert: revert accidental merges (#6701) by @jobenjada in #6703
New Contributors
- @hmacr made their first contribution in #6736
- @Aashish-png made their first contribution in #6740
Full Changelog: 4.0.1...4.1.0