v2026.04.29.1
What's Changed
Internal
- Modernize 'verifying you are a human' challenge page by @gumclaw in #4805
- Rescue Pagy::OverflowError in Checkout::DiscountsController by @gumclaw in #4826
- Fix ActiveRecord::StatementInvalid for custom_fee_per_thousand json_data field by @gumclaw in #4842
- Add SaaS marketing page by @gianfrancopiana in #4833
- Fix NoMethodError in Api::V2::LinksController#update for unsupported currency by @gumclaw in #4841
- Fix link spec nesting by @gianfrancopiana in #4846
- Add admin purchase search list by @gianfrancopiana in #4843
- Fix confusing business checkbox on payments onboarding by @gumclaw in #4848
- Remove forfeit balance warning from country selection modal by @gumclaw in #4849
- Redesign test-confidence: 99% as the goal, not a spectrum by @gumclaw in #4847
- Fix ActiveRecord::StatementInvalid when checkout params are nested by @gumclaw in #4845
- Fix ActiveRecord::LockWaitTimeout in OrdersController#create by @gumclaw in #4829
- Fix mobile table of contents popover scroll on download page by @nyomanjyotisa in #4856
- Add /internal/admin precise refund endpoint by @nyomanjyotisa in #4825
- Fix "Show active customers only" filter not hiding cancelled subscriptions by @gumclaw in #4857
- Fix Faraday::ServerError crash in content moderation prompt strategy by @gumclaw in #4854
- Fix ActiveModel::RangeError in Bundles::ProductController#update by @gumclaw in #4859
- Fix InvalidPromptError when sanitized prompt is blank by @gumclaw in #4855
- Add marketing page slugs to username DENYLIST by @gianfrancopiana in #4864
Full Changelog: v2026.04.28.4...v2026.04.29.1