Releases: duckduckgo/apple-browsers
Releases · duckduckgo/apple-browsers
7.222.0-8+ios
What's Changed
- [iOS][Tailored Onboarding] Add Duck.Ai animation in landing screen for Duck.ai tailored flow by @alessandroboron in #4875
- [macOS] Fix selection skipping unloaded tab when closing adjacent tab by @ayoy in #4918
- [macOS] Move tab to new window not working with unloaded tabs by @diegoreymendez in #4919
- Closing unloaded tab not alerting about floating duck.ai window by @diegoreymendez in #4921
- ATB install date not triggering assert anymore by @federicocappelli in #4923
- iOS: Duck.ai back arrow opens focused omnibar instead of tab switcher by @jaceklyp in #4914
- [macOS] Address bar bug fixes — padding, icon overlap, shield-on-placeholder, tall-height-on-restore by @tomasstrba in #4920
- [macOS] Fix selection being dismissed when swiching from duck.ai to search by @jotaemepereira in #4912
- [iOS] Update Fire Mode colors in UTI by @hassaanelgarem in #4892
- [macOS | iOS] Extract VPN rekey logic into KeyRotator by @diegoreymendez in #4865
- [macOS] RMF asset update by @amddg44 in #4922
- iOS: UTI Newline Bugs & Placeholder Regression by @aataraxiaa in #4911
- [iOS] [Onboarding] [Subscription] Update reinstaller subscription promo copy by @hanyutang-sandra in #4739
- [iOS] add long press menu on unfocussed address bar by @brindy in #4856
- Migrate WindowControllersManager off tabViewModel(at:) by @diegoreymendez in #4924
- Escape Hatch: Implements Actions by @jleandroperez in #4873
- Surface unloaded tabs in address-bar tab suggestions by @diegoreymendez in #4925
- [iOS] UTI visual polish pass by @jaceklyp in #4930
- Update post-idle session wide event definition by @samsymons in #4939
- Additional wide event schema fix by @samsymons in #4942
- Further wide event validation fix by @samsymons in #4943
- Fix variant DMG not uploaded to S3 when custom DMG URL is used by @ayoy in #4940
- iOS: Use Reasoning Level from Native Storage on Chat Continuation by @pikorddg in #4903
- iOS: Fix YouTube Ad Blocking settings popping on iPad by @miasma13 in #4935
- iOS: add one-tap OTA install for ad-hoc builds by @pballart in #4791
- Bump ws from 8.18.3 to 8.20.1 in /macOS/LocalPackages/PerformanceTest/Sources/PerformanceTest/SafariTestRunner by @dependabot[bot] in #4946
- iOS: remove stale UTI hasSubmittedPrompt reset test by @jaceklyp in #4949
- iOS: Fix SwiftUI Previews on iOS browser scheme by @pballart in #4882
- [macOS] Button height changes on first time quit survey by @jotaemepereira in #4913
- [iOS/macOS] Remove vpnConnectionFailureLoopDetection feature flag by @samsymons in #4893
- [macOS] Improve voice chat permission handling for Duck.ai by @jotaemepereira in #4860
- [iOS/macOS] Add OS version to leak detection event by @samsymons in #4866
- Fix RMF trigger filtering and idle return message display by @SabrinaTardio in #4900
- [iOS/macOS] Add pixels for Duck.ai user script errors by @samsymons in #4849
- [iOS] fix failing maestro tests by @brindy in #4959
- [VPN] Extract monitor lifecycle into TunnelMonitors by @diegoreymendez in #4870
- Default excludeLocalNetworks to true on macOS by @diegoreymendez in #4955
- Fix pixel validation errors for 9 macOS pixels by @jotaemepereira in #4961
- Escape Hatch: Swipe Support by @jleandroperez in #4907
- iOS: UTI - Disable all UTI toolbar controls while generating by @aataraxiaa in #4952
- macOS 13.7.8 favicon crash workaround (part 2) by @amddg44 in #4887
- [mac][Subscription] No subscription menu after failed Stripe purchase by @federicocappelli in #3956
- Remove .feature case from PrivacyConfigFeatureLevel by @SabrinaTardio in #4926
- Add conflict-watch: daily cross-branch conflict detection by @tomasstrba in #4776
- Add native input URL handling for Duck.ai by @aataraxiaa in #4948
- macOS: record local clear for sync when deleting all Duck.ai chats from menu by @jotaemepereira in #4956
- iOS: Fix unified input suggestion tap-ahead by @aataraxiaa in #4974
- [iPad perf] Optimize tab refresh and save paths during loading by @dus7 in #4951
- iOS: Open Duck.ai chat links in new tabs by @aataraxiaa in #4976
- Bump github.com/duckduckgo/duckduckgo-autofill from 19.0.0 to 19.1.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #4944
- conflict-watch: skip release branches and automation users by @tomasstrba in #4988
- iOS - Full ap rebranding FF by @federicocappelli in #4979
- Bump github.com/duckduckgo/content-scope-scripts from 14.9.0 to 14.10.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #4945
- macOS: Fix wrong drop index moving a bookmark into the overflow menu by @jotaemepereira in #4983
- macOS: @-mention tab picker in the duck.ai omnibar by @tomasstrba in #4838
- ddg-sentry-report skill: portable Asana MCP tool names by @ayoy in #4995
- Fix About warning text vanishing on click on Big Sur by @diegoreymendez in #4999
- tab bloat idle return pixels by @SabrinaTardio in #4978
- [iOS] Improve support for iCal (Calendar) links by @edulpn in #4859
- iOS - Roll back previews guard in VPN embed script by @diegoreymendez in #5005
- iOS: Fix Duck.ai collapsed input shadow in dark mode by @aataraxiaa in #4992
- Escape Hatch: Implements Fire Confirmation Support by @jleandroperez in #4954
- iOS: UTI ↔ omnibar transition polish (animation + alignment) by @jaceklyp in #5008
- Escape Hatch: Opt Out by @jleandroperez in #4963
- Escape Hatch: Fire Tabs Actions by @jleandroperez in #4984
- Fix ICS Maestro happy path test for iOS 26 by @edulpn in #5012
- Revert "iOS: Fix SwiftUI Previews on iOS and macOS (#4882)" by @pballart in #5006
- Add AI Chat sync promo plumbing by @pballart in #5000
- Fix duck.ai suggestion truncation and View all chats double selection by @tomasstrba in #4977
- iOS: Remember toggle position — match Android (drop per-tab last-used) by @jaceklyp in #5018
- iOS: UTI Search bottom padding + paid AI Chat title icon by @aataraxiaa in #5024
- iOS: Regenerate VPN configuration on widget and shortcut starts by @diegoreymendez in #5009
- iOS - Rebranded images (with FF) by @federicocappelli in #4970
- Escape Hatch: Switches Menu Assets to Size16 by @jleandroperez in #5013
- Duck.ai dark mode: Surface-Canvas / Surface-Secondary tokens by @jaceklyp in #5027
- Escape Hatch: Reloading Tab Bar on Tab Close by @jleandroperez in #5016
- ddg-sentry-report skill: fix custom-field...
1.192.0-725+macos
What's Changed
- [iOS][Tailored Onboarding] Add Duck.Ai animation in landing screen for Duck.ai tailored flow by @alessandroboron in #4875
- ATB install date not triggering assert anymore by @federicocappelli in #4923
- iOS: Duck.ai back arrow opens focused omnibar instead of tab switcher by @jaceklyp in #4914
- [macOS] Fix selection being dismissed when swiching from duck.ai to search by @jotaemepereira in #4912
- [iOS] Update Fire Mode colors in UTI by @hassaanelgarem in #4892
- [macOS | iOS] Extract VPN rekey logic into KeyRotator by @diegoreymendez in #4865
- iOS: UTI Newline Bugs & Placeholder Regression by @aataraxiaa in #4911
- [iOS] [Onboarding] [Subscription] Update reinstaller subscription promo copy by @hanyutang-sandra in #4739
- [iOS] add long press menu on unfocussed address bar by @brindy in #4856
- iOS: Cherry-pick UTI newline fixes to 7.221 by @aataraxiaa in #4931
- Escape Hatch: Implements Actions by @jleandroperez in #4873
- [iOS] UTI visual polish pass by @jaceklyp in #4930
- Update post-idle session wide event definition by @samsymons in #4939
- Additional wide event schema fix by @samsymons in #4942
- Further wide event validation fix by @samsymons in #4943
- Fix variant DMG not uploaded to S3 when custom DMG URL is used by @ayoy in #4940
- iOS: Use Reasoning Level from Native Storage on Chat Continuation by @pikorddg in #4903
- iOS: Fix YouTube Ad Blocking settings popping on iPad by @miasma13 in #4935
- iOS: add one-tap OTA install for ad-hoc builds by @pballart in #4791
- Bump ws from 8.18.3 to 8.20.1 in /macOS/LocalPackages/PerformanceTest/Sources/PerformanceTest/SafariTestRunner by @dependabot[bot] in #4946
- iOS: remove stale UTI hasSubmittedPrompt reset test by @jaceklyp in #4949
- iOS: Fix SwiftUI Previews on iOS browser scheme by @pballart in #4882
- [macOS] Button height changes on first time quit survey by @jotaemepereira in #4913
- iOS: Restore iPad webview bottom anchor (regression from #4841) by @jaceklyp in #4950
- [iOS/macOS] Remove vpnConnectionFailureLoopDetection feature flag by @samsymons in #4893
- [macOS] Improve voice chat permission handling for Duck.ai by @jotaemepereira in #4860
- [iOS/macOS] Add OS version to leak detection event by @samsymons in #4866
- Fix RMF trigger filtering and idle return message display by @SabrinaTardio in #4900
- [iOS/macOS] Add pixels for Duck.ai user script errors by @samsymons in #4849
- [iOS] fix failing maestro tests by @brindy in #4959
- [VPN] Extract monitor lifecycle into TunnelMonitors by @diegoreymendez in #4870
- Fix pixel validation errors for 9 macOS pixels by @jotaemepereira in #4961
- Escape Hatch: Swipe Support by @jleandroperez in #4907
- Implement Duck.ai chat-path onboarding flow with tracker-blocking demo and subscription upsell by @mallexxx in #4544
- iOS: UTI - Disable all UTI toolbar controls while generating by @aataraxiaa in #4952
- [mac][Subscription] No subscription menu after failed Stripe purchase by @federicocappelli in #3956
- Remove .feature case from PrivacyConfigFeatureLevel by @SabrinaTardio in #4926
- Add conflict-watch: daily cross-branch conflict detection by @tomasstrba in #4776
- Add native input URL handling for Duck.ai by @aataraxiaa in #4948
- iOS: Fix unified input suggestion tap-ahead by @aataraxiaa in #4974
- [iPad perf] Optimize tab refresh and save paths during loading by @dus7 in #4951
- iOS: Open Duck.ai chat links in new tabs by @aataraxiaa in #4976
- Bump github.com/duckduckgo/duckduckgo-autofill from 19.0.0 to 19.1.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #4944
- conflict-watch: skip release branches and automation users by @tomasstrba in #4988
- iOS - Full ap rebranding FF by @federicocappelli in #4979
- Bump github.com/duckduckgo/content-scope-scripts from 14.9.0 to 14.10.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #4945
- macOS: Fix wrong drop index moving a bookmark into the overflow menu by @jotaemepereira in #4983
- macOS: @-mention tab picker in the duck.ai omnibar by @tomasstrba in #4838
- ddg-sentry-report skill: portable Asana MCP tool names by @ayoy in #4995
- Fix About warning text vanishing on click on Big Sur by @diegoreymendez in #4999
- tab bloat idle return pixels by @SabrinaTardio in #4978
- [iOS] Improve support for iCal (Calendar) links by @edulpn in #4859
- iOS - Roll back previews guard in VPN embed script by @diegoreymendez in #5005
- Restore /pro URL interception for legacy subscription links by @SabrinaTardio in #4966
- iOS: Fix Duck.ai collapsed input shadow in dark mode by @aataraxiaa in #4992
- Escape Hatch: Implements Fire Confirmation Support by @jleandroperez in #4954
- iOS: UTI ↔ omnibar transition polish (animation + alignment) by @jaceklyp in #5008
- Escape Hatch: Opt Out by @jleandroperez in #4963
- Escape Hatch: Fire Tabs Actions by @jleandroperez in #4984
- Fix ICS Maestro happy path test for iOS 26 by @edulpn in #5012
- Revert "iOS: Fix SwiftUI Previews on iOS and macOS (#4882)" by @pballart in #5006
- Add AI Chat sync promo plumbing by @pballart in #5000
- Fix duck.ai suggestion truncation and View all chats double selection by @tomasstrba in #4977
- iOS: Remember toggle position — match Android (drop per-tab last-used) by @jaceklyp in #5018
- iOS: UTI Search bottom padding + paid AI Chat title icon by @aataraxiaa in #5024
- iOS: Regenerate VPN configuration on widget and shortcut starts by @diegoreymendez in #5009
- iOS - Rebranded images (with FF) by @federicocappelli in #4970
- Escape Hatch: Switches Menu Assets to Size16 by @jleandroperez in #5013
- Duck.ai dark mode: Surface-Canvas / Surface-Secondary tokens by @jaceklyp in #5027
- Escape Hatch: Reloading Tab Bar on Tab Close by @jleandroperez in #5016
- ddg-sentry-report skill: fix custom-field filter to use .contains by @ayoy in #5029
- Bump github.com/duckduckgo/content-scope-scripts from 14.10.0 to 14.12.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #5014
- iOS: Update Unified Input Copy by @aataraxiaa in #4991
- Implement pixel coverage under unifiedToggleInput ON by @pikorddg in #4972
- macOS: Link to Duck.ai Settings from Settings → AI Features by @jotaemepereira in #5004
- macOS: skip Firefox key3.db tests broken on macOS 26 runner by @jotaemepereira in #5035
- [macOS...
7.222.0-7+ios
What's Changed
- [iOS][Tailored Onboarding] Add Duck.Ai animation in landing screen for Duck.ai tailored flow by @alessandroboron in #4875
- [macOS] Fix selection skipping unloaded tab when closing adjacent tab by @ayoy in #4918
- [macOS] Move tab to new window not working with unloaded tabs by @diegoreymendez in #4919
- Closing unloaded tab not alerting about floating duck.ai window by @diegoreymendez in #4921
- ATB install date not triggering assert anymore by @federicocappelli in #4923
- iOS: Duck.ai back arrow opens focused omnibar instead of tab switcher by @jaceklyp in #4914
- [macOS] Address bar bug fixes — padding, icon overlap, shield-on-placeholder, tall-height-on-restore by @tomasstrba in #4920
- [macOS] Fix selection being dismissed when swiching from duck.ai to search by @jotaemepereira in #4912
- [iOS] Update Fire Mode colors in UTI by @hassaanelgarem in #4892
- [macOS | iOS] Extract VPN rekey logic into KeyRotator by @diegoreymendez in #4865
- [macOS] RMF asset update by @amddg44 in #4922
- iOS: UTI Newline Bugs & Placeholder Regression by @aataraxiaa in #4911
- [iOS] [Onboarding] [Subscription] Update reinstaller subscription promo copy by @hanyutang-sandra in #4739
- [iOS] add long press menu on unfocussed address bar by @brindy in #4856
- Migrate WindowControllersManager off tabViewModel(at:) by @diegoreymendez in #4924
- Escape Hatch: Implements Actions by @jleandroperez in #4873
- Surface unloaded tabs in address-bar tab suggestions by @diegoreymendez in #4925
- [iOS] UTI visual polish pass by @jaceklyp in #4930
- Update post-idle session wide event definition by @samsymons in #4939
- Additional wide event schema fix by @samsymons in #4942
- Further wide event validation fix by @samsymons in #4943
- Fix variant DMG not uploaded to S3 when custom DMG URL is used by @ayoy in #4940
- iOS: Use Reasoning Level from Native Storage on Chat Continuation by @pikorddg in #4903
- iOS: Fix YouTube Ad Blocking settings popping on iPad by @miasma13 in #4935
- iOS: add one-tap OTA install for ad-hoc builds by @pballart in #4791
- Bump ws from 8.18.3 to 8.20.1 in /macOS/LocalPackages/PerformanceTest/Sources/PerformanceTest/SafariTestRunner by @dependabot[bot] in #4946
- iOS: remove stale UTI hasSubmittedPrompt reset test by @jaceklyp in #4949
- iOS: Fix SwiftUI Previews on iOS browser scheme by @pballart in #4882
- [macOS] Button height changes on first time quit survey by @jotaemepereira in #4913
- [iOS/macOS] Remove vpnConnectionFailureLoopDetection feature flag by @samsymons in #4893
- [macOS] Improve voice chat permission handling for Duck.ai by @jotaemepereira in #4860
- [iOS/macOS] Add OS version to leak detection event by @samsymons in #4866
- Fix RMF trigger filtering and idle return message display by @SabrinaTardio in #4900
- [iOS/macOS] Add pixels for Duck.ai user script errors by @samsymons in #4849
- [iOS] fix failing maestro tests by @brindy in #4959
- [VPN] Extract monitor lifecycle into TunnelMonitors by @diegoreymendez in #4870
- Default excludeLocalNetworks to true on macOS by @diegoreymendez in #4955
- Fix pixel validation errors for 9 macOS pixels by @jotaemepereira in #4961
- Escape Hatch: Swipe Support by @jleandroperez in #4907
- iOS: UTI - Disable all UTI toolbar controls while generating by @aataraxiaa in #4952
- macOS 13.7.8 favicon crash workaround (part 2) by @amddg44 in #4887
- [mac][Subscription] No subscription menu after failed Stripe purchase by @federicocappelli in #3956
- Remove .feature case from PrivacyConfigFeatureLevel by @SabrinaTardio in #4926
- Add conflict-watch: daily cross-branch conflict detection by @tomasstrba in #4776
- Add native input URL handling for Duck.ai by @aataraxiaa in #4948
- macOS: record local clear for sync when deleting all Duck.ai chats from menu by @jotaemepereira in #4956
- iOS: Fix unified input suggestion tap-ahead by @aataraxiaa in #4974
- [iPad perf] Optimize tab refresh and save paths during loading by @dus7 in #4951
- iOS: Open Duck.ai chat links in new tabs by @aataraxiaa in #4976
- Bump github.com/duckduckgo/duckduckgo-autofill from 19.0.0 to 19.1.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #4944
- conflict-watch: skip release branches and automation users by @tomasstrba in #4988
- iOS - Full ap rebranding FF by @federicocappelli in #4979
- Bump github.com/duckduckgo/content-scope-scripts from 14.9.0 to 14.10.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #4945
- macOS: Fix wrong drop index moving a bookmark into the overflow menu by @jotaemepereira in #4983
- macOS: @-mention tab picker in the duck.ai omnibar by @tomasstrba in #4838
- ddg-sentry-report skill: portable Asana MCP tool names by @ayoy in #4995
- Fix About warning text vanishing on click on Big Sur by @diegoreymendez in #4999
- tab bloat idle return pixels by @SabrinaTardio in #4978
- [iOS] Improve support for iCal (Calendar) links by @edulpn in #4859
- iOS - Roll back previews guard in VPN embed script by @diegoreymendez in #5005
- iOS: Fix Duck.ai collapsed input shadow in dark mode by @aataraxiaa in #4992
- Escape Hatch: Implements Fire Confirmation Support by @jleandroperez in #4954
- iOS: UTI ↔ omnibar transition polish (animation + alignment) by @jaceklyp in #5008
- Escape Hatch: Opt Out by @jleandroperez in #4963
- Escape Hatch: Fire Tabs Actions by @jleandroperez in #4984
- Fix ICS Maestro happy path test for iOS 26 by @edulpn in #5012
- Revert "iOS: Fix SwiftUI Previews on iOS and macOS (#4882)" by @pballart in #5006
- Add AI Chat sync promo plumbing by @pballart in #5000
- Fix duck.ai suggestion truncation and View all chats double selection by @tomasstrba in #4977
- iOS: Remember toggle position — match Android (drop per-tab last-used) by @jaceklyp in #5018
- iOS: UTI Search bottom padding + paid AI Chat title icon by @aataraxiaa in #5024
- iOS: Regenerate VPN configuration on widget and shortcut starts by @diegoreymendez in #5009
- iOS - Rebranded images (with FF) by @federicocappelli in #4970
- Escape Hatch: Switches Menu Assets to Size16 by @jleandroperez in #5013
- Duck.ai dark mode: Surface-Canvas / Surface-Secondary tokens by @jaceklyp in #5027
- Escape Hatch: Reloading Tab Bar on Tab Close by @jleandroperez in #5016
- ddg-sentry-report skill: fix custom-field...
7.222.0-5+ios
What's Changed
- [iOS][Tailored Onboarding] Add Duck.Ai animation in landing screen for Duck.ai tailored flow by @alessandroboron in #4875
- [macOS] Fix selection skipping unloaded tab when closing adjacent tab by @ayoy in #4918
- [macOS] Move tab to new window not working with unloaded tabs by @diegoreymendez in #4919
- Closing unloaded tab not alerting about floating duck.ai window by @diegoreymendez in #4921
- ATB install date not triggering assert anymore by @federicocappelli in #4923
- iOS: Duck.ai back arrow opens focused omnibar instead of tab switcher by @jaceklyp in #4914
- [macOS] Address bar bug fixes — padding, icon overlap, shield-on-placeholder, tall-height-on-restore by @tomasstrba in #4920
- [macOS] Fix selection being dismissed when swiching from duck.ai to search by @jotaemepereira in #4912
- [iOS] Update Fire Mode colors in UTI by @hassaanelgarem in #4892
- [macOS | iOS] Extract VPN rekey logic into KeyRotator by @diegoreymendez in #4865
- [macOS] RMF asset update by @amddg44 in #4922
- iOS: UTI Newline Bugs & Placeholder Regression by @aataraxiaa in #4911
- [iOS] [Onboarding] [Subscription] Update reinstaller subscription promo copy by @hanyutang-sandra in #4739
- [iOS] add long press menu on unfocussed address bar by @brindy in #4856
- Migrate WindowControllersManager off tabViewModel(at:) by @diegoreymendez in #4924
- Escape Hatch: Implements Actions by @jleandroperez in #4873
- Surface unloaded tabs in address-bar tab suggestions by @diegoreymendez in #4925
- [iOS] UTI visual polish pass by @jaceklyp in #4930
- Update post-idle session wide event definition by @samsymons in #4939
- Additional wide event schema fix by @samsymons in #4942
- Further wide event validation fix by @samsymons in #4943
- Fix variant DMG not uploaded to S3 when custom DMG URL is used by @ayoy in #4940
- iOS: Use Reasoning Level from Native Storage on Chat Continuation by @pikorddg in #4903
- iOS: Fix YouTube Ad Blocking settings popping on iPad by @miasma13 in #4935
- iOS: add one-tap OTA install for ad-hoc builds by @pballart in #4791
- Bump ws from 8.18.3 to 8.20.1 in /macOS/LocalPackages/PerformanceTest/Sources/PerformanceTest/SafariTestRunner by @dependabot[bot] in #4946
- iOS: remove stale UTI hasSubmittedPrompt reset test by @jaceklyp in #4949
- iOS: Fix SwiftUI Previews on iOS browser scheme by @pballart in #4882
- [macOS] Button height changes on first time quit survey by @jotaemepereira in #4913
- [iOS/macOS] Remove vpnConnectionFailureLoopDetection feature flag by @samsymons in #4893
- [macOS] Improve voice chat permission handling for Duck.ai by @jotaemepereira in #4860
- [iOS/macOS] Add OS version to leak detection event by @samsymons in #4866
- Fix RMF trigger filtering and idle return message display by @SabrinaTardio in #4900
- [iOS/macOS] Add pixels for Duck.ai user script errors by @samsymons in #4849
- [iOS] fix failing maestro tests by @brindy in #4959
- [VPN] Extract monitor lifecycle into TunnelMonitors by @diegoreymendez in #4870
- Default excludeLocalNetworks to true on macOS by @diegoreymendez in #4955
- Fix pixel validation errors for 9 macOS pixels by @jotaemepereira in #4961
- Escape Hatch: Swipe Support by @jleandroperez in #4907
- iOS: UTI - Disable all UTI toolbar controls while generating by @aataraxiaa in #4952
- macOS 13.7.8 favicon crash workaround (part 2) by @amddg44 in #4887
- [mac][Subscription] No subscription menu after failed Stripe purchase by @federicocappelli in #3956
- Remove .feature case from PrivacyConfigFeatureLevel by @SabrinaTardio in #4926
- Add conflict-watch: daily cross-branch conflict detection by @tomasstrba in #4776
- Add native input URL handling for Duck.ai by @aataraxiaa in #4948
- macOS: record local clear for sync when deleting all Duck.ai chats from menu by @jotaemepereira in #4956
- iOS: Fix unified input suggestion tap-ahead by @aataraxiaa in #4974
- [iPad perf] Optimize tab refresh and save paths during loading by @dus7 in #4951
- iOS: Open Duck.ai chat links in new tabs by @aataraxiaa in #4976
- Bump github.com/duckduckgo/duckduckgo-autofill from 19.0.0 to 19.1.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #4944
- conflict-watch: skip release branches and automation users by @tomasstrba in #4988
- iOS - Full ap rebranding FF by @federicocappelli in #4979
- Bump github.com/duckduckgo/content-scope-scripts from 14.9.0 to 14.10.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #4945
- macOS: Fix wrong drop index moving a bookmark into the overflow menu by @jotaemepereira in #4983
- macOS: @-mention tab picker in the duck.ai omnibar by @tomasstrba in #4838
- ddg-sentry-report skill: portable Asana MCP tool names by @ayoy in #4995
- Fix About warning text vanishing on click on Big Sur by @diegoreymendez in #4999
- tab bloat idle return pixels by @SabrinaTardio in #4978
- [iOS] Improve support for iCal (Calendar) links by @edulpn in #4859
- iOS - Roll back previews guard in VPN embed script by @diegoreymendez in #5005
- iOS: Fix Duck.ai collapsed input shadow in dark mode by @aataraxiaa in #4992
- Escape Hatch: Implements Fire Confirmation Support by @jleandroperez in #4954
- iOS: UTI ↔ omnibar transition polish (animation + alignment) by @jaceklyp in #5008
- Escape Hatch: Opt Out by @jleandroperez in #4963
- Escape Hatch: Fire Tabs Actions by @jleandroperez in #4984
- Fix ICS Maestro happy path test for iOS 26 by @edulpn in #5012
- Revert "iOS: Fix SwiftUI Previews on iOS and macOS (#4882)" by @pballart in #5006
- Add AI Chat sync promo plumbing by @pballart in #5000
- Fix duck.ai suggestion truncation and View all chats double selection by @tomasstrba in #4977
- iOS: Remember toggle position — match Android (drop per-tab last-used) by @jaceklyp in #5018
- iOS: UTI Search bottom padding + paid AI Chat title icon by @aataraxiaa in #5024
- iOS: Regenerate VPN configuration on widget and shortcut starts by @diegoreymendez in #5009
- iOS - Rebranded images (with FF) by @federicocappelli in #4970
- Escape Hatch: Switches Menu Assets to Size16 by @jleandroperez in #5013
- Duck.ai dark mode: Surface-Canvas / Surface-Secondary tokens by @jaceklyp in #5027
- Escape Hatch: Reloading Tab Bar on Tab Close by @jleandroperez in #5016
- ddg-sentry-report skill: fix custom-field...
1.192.0-724+macos
What's Changed
- [iOS][Tailored Onboarding] Add Duck.Ai animation in landing screen for Duck.ai tailored flow by @alessandroboron in #4875
- ATB install date not triggering assert anymore by @federicocappelli in #4923
- iOS: Duck.ai back arrow opens focused omnibar instead of tab switcher by @jaceklyp in #4914
- [macOS] Fix selection being dismissed when swiching from duck.ai to search by @jotaemepereira in #4912
- [iOS] Update Fire Mode colors in UTI by @hassaanelgarem in #4892
- [macOS | iOS] Extract VPN rekey logic into KeyRotator by @diegoreymendez in #4865
- iOS: UTI Newline Bugs & Placeholder Regression by @aataraxiaa in #4911
- [iOS] [Onboarding] [Subscription] Update reinstaller subscription promo copy by @hanyutang-sandra in #4739
- [iOS] add long press menu on unfocussed address bar by @brindy in #4856
- iOS: Cherry-pick UTI newline fixes to 7.221 by @aataraxiaa in #4931
- Escape Hatch: Implements Actions by @jleandroperez in #4873
- [iOS] UTI visual polish pass by @jaceklyp in #4930
- Update post-idle session wide event definition by @samsymons in #4939
- Additional wide event schema fix by @samsymons in #4942
- Further wide event validation fix by @samsymons in #4943
- Fix variant DMG not uploaded to S3 when custom DMG URL is used by @ayoy in #4940
- iOS: Use Reasoning Level from Native Storage on Chat Continuation by @pikorddg in #4903
- iOS: Fix YouTube Ad Blocking settings popping on iPad by @miasma13 in #4935
- iOS: add one-tap OTA install for ad-hoc builds by @pballart in #4791
- Bump ws from 8.18.3 to 8.20.1 in /macOS/LocalPackages/PerformanceTest/Sources/PerformanceTest/SafariTestRunner by @dependabot[bot] in #4946
- iOS: remove stale UTI hasSubmittedPrompt reset test by @jaceklyp in #4949
- iOS: Fix SwiftUI Previews on iOS browser scheme by @pballart in #4882
- [macOS] Button height changes on first time quit survey by @jotaemepereira in #4913
- iOS: Restore iPad webview bottom anchor (regression from #4841) by @jaceklyp in #4950
- [iOS/macOS] Remove vpnConnectionFailureLoopDetection feature flag by @samsymons in #4893
- [macOS] Improve voice chat permission handling for Duck.ai by @jotaemepereira in #4860
- [iOS/macOS] Add OS version to leak detection event by @samsymons in #4866
- Fix RMF trigger filtering and idle return message display by @SabrinaTardio in #4900
- [iOS/macOS] Add pixels for Duck.ai user script errors by @samsymons in #4849
- [iOS] fix failing maestro tests by @brindy in #4959
- [VPN] Extract monitor lifecycle into TunnelMonitors by @diegoreymendez in #4870
- Fix pixel validation errors for 9 macOS pixels by @jotaemepereira in #4961
- Escape Hatch: Swipe Support by @jleandroperez in #4907
- Implement Duck.ai chat-path onboarding flow with tracker-blocking demo and subscription upsell by @mallexxx in #4544
- iOS: UTI - Disable all UTI toolbar controls while generating by @aataraxiaa in #4952
- [mac][Subscription] No subscription menu after failed Stripe purchase by @federicocappelli in #3956
- Remove .feature case from PrivacyConfigFeatureLevel by @SabrinaTardio in #4926
- Add conflict-watch: daily cross-branch conflict detection by @tomasstrba in #4776
- Add native input URL handling for Duck.ai by @aataraxiaa in #4948
- iOS: Fix unified input suggestion tap-ahead by @aataraxiaa in #4974
- [iPad perf] Optimize tab refresh and save paths during loading by @dus7 in #4951
- iOS: Open Duck.ai chat links in new tabs by @aataraxiaa in #4976
- Bump github.com/duckduckgo/duckduckgo-autofill from 19.0.0 to 19.1.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #4944
- conflict-watch: skip release branches and automation users by @tomasstrba in #4988
- iOS - Full ap rebranding FF by @federicocappelli in #4979
- Bump github.com/duckduckgo/content-scope-scripts from 14.9.0 to 14.10.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #4945
- macOS: Fix wrong drop index moving a bookmark into the overflow menu by @jotaemepereira in #4983
- macOS: @-mention tab picker in the duck.ai omnibar by @tomasstrba in #4838
- ddg-sentry-report skill: portable Asana MCP tool names by @ayoy in #4995
- Fix About warning text vanishing on click on Big Sur by @diegoreymendez in #4999
- tab bloat idle return pixels by @SabrinaTardio in #4978
- [iOS] Improve support for iCal (Calendar) links by @edulpn in #4859
- iOS - Roll back previews guard in VPN embed script by @diegoreymendez in #5005
- Restore /pro URL interception for legacy subscription links by @SabrinaTardio in #4966
- iOS: Fix Duck.ai collapsed input shadow in dark mode by @aataraxiaa in #4992
- Escape Hatch: Implements Fire Confirmation Support by @jleandroperez in #4954
- iOS: UTI ↔ omnibar transition polish (animation + alignment) by @jaceklyp in #5008
- Escape Hatch: Opt Out by @jleandroperez in #4963
- Escape Hatch: Fire Tabs Actions by @jleandroperez in #4984
- Fix ICS Maestro happy path test for iOS 26 by @edulpn in #5012
- Revert "iOS: Fix SwiftUI Previews on iOS and macOS (#4882)" by @pballart in #5006
- Add AI Chat sync promo plumbing by @pballart in #5000
- Fix duck.ai suggestion truncation and View all chats double selection by @tomasstrba in #4977
- iOS: Remember toggle position — match Android (drop per-tab last-used) by @jaceklyp in #5018
- iOS: UTI Search bottom padding + paid AI Chat title icon by @aataraxiaa in #5024
- iOS: Regenerate VPN configuration on widget and shortcut starts by @diegoreymendez in #5009
- iOS - Rebranded images (with FF) by @federicocappelli in #4970
- Escape Hatch: Switches Menu Assets to Size16 by @jleandroperez in #5013
- Duck.ai dark mode: Surface-Canvas / Surface-Secondary tokens by @jaceklyp in #5027
- Escape Hatch: Reloading Tab Bar on Tab Close by @jleandroperez in #5016
- ddg-sentry-report skill: fix custom-field filter to use .contains by @ayoy in #5029
- Bump github.com/duckduckgo/content-scope-scripts from 14.10.0 to 14.12.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #5014
- iOS: Update Unified Input Copy by @aataraxiaa in #4991
- Implement pixel coverage under unifiedToggleInput ON by @pikorddg in #4972
- macOS: Link to Duck.ai Settings from Settings → AI Features by @jotaemepereira in #5004
- macOS: skip Firefox key3.db tests broken on macOS 26 runner by @jotaemepereira in #5035
- [macOS...
7.222.0-4+ios
What's Changed
- [iOS][Tailored Onboarding] Add Duck.Ai animation in landing screen for Duck.ai tailored flow by @alessandroboron in #4875
- [macOS] Fix selection skipping unloaded tab when closing adjacent tab by @ayoy in #4918
- [macOS] Move tab to new window not working with unloaded tabs by @diegoreymendez in #4919
- Closing unloaded tab not alerting about floating duck.ai window by @diegoreymendez in #4921
- ATB install date not triggering assert anymore by @federicocappelli in #4923
- iOS: Duck.ai back arrow opens focused omnibar instead of tab switcher by @jaceklyp in #4914
- [macOS] Address bar bug fixes — padding, icon overlap, shield-on-placeholder, tall-height-on-restore by @tomasstrba in #4920
- [macOS] Fix selection being dismissed when swiching from duck.ai to search by @jotaemepereira in #4912
- [iOS] Update Fire Mode colors in UTI by @hassaanelgarem in #4892
- [macOS | iOS] Extract VPN rekey logic into KeyRotator by @diegoreymendez in #4865
- [macOS] RMF asset update by @amddg44 in #4922
- iOS: UTI Newline Bugs & Placeholder Regression by @aataraxiaa in #4911
- [iOS] [Onboarding] [Subscription] Update reinstaller subscription promo copy by @hanyutang-sandra in #4739
- [iOS] add long press menu on unfocussed address bar by @brindy in #4856
- Migrate WindowControllersManager off tabViewModel(at:) by @diegoreymendez in #4924
- Escape Hatch: Implements Actions by @jleandroperez in #4873
- Surface unloaded tabs in address-bar tab suggestions by @diegoreymendez in #4925
- [iOS] UTI visual polish pass by @jaceklyp in #4930
- Update post-idle session wide event definition by @samsymons in #4939
- Additional wide event schema fix by @samsymons in #4942
- Further wide event validation fix by @samsymons in #4943
- Fix variant DMG not uploaded to S3 when custom DMG URL is used by @ayoy in #4940
- iOS: Use Reasoning Level from Native Storage on Chat Continuation by @pikorddg in #4903
- iOS: Fix YouTube Ad Blocking settings popping on iPad by @miasma13 in #4935
- iOS: add one-tap OTA install for ad-hoc builds by @pballart in #4791
- Bump ws from 8.18.3 to 8.20.1 in /macOS/LocalPackages/PerformanceTest/Sources/PerformanceTest/SafariTestRunner by @dependabot[bot] in #4946
- iOS: remove stale UTI hasSubmittedPrompt reset test by @jaceklyp in #4949
- iOS: Fix SwiftUI Previews on iOS browser scheme by @pballart in #4882
- [macOS] Button height changes on first time quit survey by @jotaemepereira in #4913
- [iOS/macOS] Remove vpnConnectionFailureLoopDetection feature flag by @samsymons in #4893
- [macOS] Improve voice chat permission handling for Duck.ai by @jotaemepereira in #4860
- [iOS/macOS] Add OS version to leak detection event by @samsymons in #4866
- Fix RMF trigger filtering and idle return message display by @SabrinaTardio in #4900
- [iOS/macOS] Add pixels for Duck.ai user script errors by @samsymons in #4849
- [iOS] fix failing maestro tests by @brindy in #4959
- [VPN] Extract monitor lifecycle into TunnelMonitors by @diegoreymendez in #4870
- Default excludeLocalNetworks to true on macOS by @diegoreymendez in #4955
- Fix pixel validation errors for 9 macOS pixels by @jotaemepereira in #4961
- Escape Hatch: Swipe Support by @jleandroperez in #4907
- iOS: UTI - Disable all UTI toolbar controls while generating by @aataraxiaa in #4952
- macOS 13.7.8 favicon crash workaround (part 2) by @amddg44 in #4887
- [mac][Subscription] No subscription menu after failed Stripe purchase by @federicocappelli in #3956
- Remove .feature case from PrivacyConfigFeatureLevel by @SabrinaTardio in #4926
- Add conflict-watch: daily cross-branch conflict detection by @tomasstrba in #4776
- Add native input URL handling for Duck.ai by @aataraxiaa in #4948
- macOS: record local clear for sync when deleting all Duck.ai chats from menu by @jotaemepereira in #4956
- iOS: Fix unified input suggestion tap-ahead by @aataraxiaa in #4974
- [iPad perf] Optimize tab refresh and save paths during loading by @dus7 in #4951
- iOS: Open Duck.ai chat links in new tabs by @aataraxiaa in #4976
- Bump github.com/duckduckgo/duckduckgo-autofill from 19.0.0 to 19.1.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #4944
- conflict-watch: skip release branches and automation users by @tomasstrba in #4988
- iOS - Full ap rebranding FF by @federicocappelli in #4979
- Bump github.com/duckduckgo/content-scope-scripts from 14.9.0 to 14.10.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #4945
- macOS: Fix wrong drop index moving a bookmark into the overflow menu by @jotaemepereira in #4983
- macOS: @-mention tab picker in the duck.ai omnibar by @tomasstrba in #4838
- ddg-sentry-report skill: portable Asana MCP tool names by @ayoy in #4995
- Fix About warning text vanishing on click on Big Sur by @diegoreymendez in #4999
- tab bloat idle return pixels by @SabrinaTardio in #4978
- [iOS] Improve support for iCal (Calendar) links by @edulpn in #4859
- iOS - Roll back previews guard in VPN embed script by @diegoreymendez in #5005
- iOS: Fix Duck.ai collapsed input shadow in dark mode by @aataraxiaa in #4992
- Escape Hatch: Implements Fire Confirmation Support by @jleandroperez in #4954
- iOS: UTI ↔ omnibar transition polish (animation + alignment) by @jaceklyp in #5008
- Escape Hatch: Opt Out by @jleandroperez in #4963
- Escape Hatch: Fire Tabs Actions by @jleandroperez in #4984
- Fix ICS Maestro happy path test for iOS 26 by @edulpn in #5012
- Revert "iOS: Fix SwiftUI Previews on iOS and macOS (#4882)" by @pballart in #5006
- Add AI Chat sync promo plumbing by @pballart in #5000
- Fix duck.ai suggestion truncation and View all chats double selection by @tomasstrba in #4977
- iOS: Remember toggle position — match Android (drop per-tab last-used) by @jaceklyp in #5018
- iOS: UTI Search bottom padding + paid AI Chat title icon by @aataraxiaa in #5024
- iOS: Regenerate VPN configuration on widget and shortcut starts by @diegoreymendez in #5009
- iOS - Rebranded images (with FF) by @federicocappelli in #4970
- Escape Hatch: Switches Menu Assets to Size16 by @jleandroperez in #5013
- Duck.ai dark mode: Surface-Canvas / Surface-Secondary tokens by @jaceklyp in #5027
- Escape Hatch: Reloading Tab Bar on Tab Close by @jleandroperez in #5016
- ddg-sentry-report skill: fix custom-field...
7.222.0-3+ios
What's Changed
- [iOS][Tailored Onboarding] Add Duck.Ai animation in landing screen for Duck.ai tailored flow by @alessandroboron in #4875
- [macOS] Fix selection skipping unloaded tab when closing adjacent tab by @ayoy in #4918
- [macOS] Move tab to new window not working with unloaded tabs by @diegoreymendez in #4919
- Closing unloaded tab not alerting about floating duck.ai window by @diegoreymendez in #4921
- ATB install date not triggering assert anymore by @federicocappelli in #4923
- iOS: Duck.ai back arrow opens focused omnibar instead of tab switcher by @jaceklyp in #4914
- [macOS] Address bar bug fixes — padding, icon overlap, shield-on-placeholder, tall-height-on-restore by @tomasstrba in #4920
- [macOS] Fix selection being dismissed when swiching from duck.ai to search by @jotaemepereira in #4912
- [iOS] Update Fire Mode colors in UTI by @hassaanelgarem in #4892
- [macOS | iOS] Extract VPN rekey logic into KeyRotator by @diegoreymendez in #4865
- [macOS] RMF asset update by @amddg44 in #4922
- iOS: UTI Newline Bugs & Placeholder Regression by @aataraxiaa in #4911
- [iOS] [Onboarding] [Subscription] Update reinstaller subscription promo copy by @hanyutang-sandra in #4739
- [iOS] add long press menu on unfocussed address bar by @brindy in #4856
- Migrate WindowControllersManager off tabViewModel(at:) by @diegoreymendez in #4924
- Escape Hatch: Implements Actions by @jleandroperez in #4873
- Surface unloaded tabs in address-bar tab suggestions by @diegoreymendez in #4925
- [iOS] UTI visual polish pass by @jaceklyp in #4930
- Update post-idle session wide event definition by @samsymons in #4939
- Additional wide event schema fix by @samsymons in #4942
- Further wide event validation fix by @samsymons in #4943
- Fix variant DMG not uploaded to S3 when custom DMG URL is used by @ayoy in #4940
- iOS: Use Reasoning Level from Native Storage on Chat Continuation by @pikorddg in #4903
- iOS: Fix YouTube Ad Blocking settings popping on iPad by @miasma13 in #4935
- iOS: add one-tap OTA install for ad-hoc builds by @pballart in #4791
- Bump ws from 8.18.3 to 8.20.1 in /macOS/LocalPackages/PerformanceTest/Sources/PerformanceTest/SafariTestRunner by @dependabot[bot] in #4946
- iOS: remove stale UTI hasSubmittedPrompt reset test by @jaceklyp in #4949
- iOS: Fix SwiftUI Previews on iOS browser scheme by @pballart in #4882
- [macOS] Button height changes on first time quit survey by @jotaemepereira in #4913
- [iOS/macOS] Remove vpnConnectionFailureLoopDetection feature flag by @samsymons in #4893
- [macOS] Improve voice chat permission handling for Duck.ai by @jotaemepereira in #4860
- [iOS/macOS] Add OS version to leak detection event by @samsymons in #4866
- Fix RMF trigger filtering and idle return message display by @SabrinaTardio in #4900
- [iOS/macOS] Add pixels for Duck.ai user script errors by @samsymons in #4849
- [iOS] fix failing maestro tests by @brindy in #4959
- [VPN] Extract monitor lifecycle into TunnelMonitors by @diegoreymendez in #4870
- Default excludeLocalNetworks to true on macOS by @diegoreymendez in #4955
- Fix pixel validation errors for 9 macOS pixels by @jotaemepereira in #4961
- Escape Hatch: Swipe Support by @jleandroperez in #4907
- iOS: UTI - Disable all UTI toolbar controls while generating by @aataraxiaa in #4952
- macOS 13.7.8 favicon crash workaround (part 2) by @amddg44 in #4887
- [mac][Subscription] No subscription menu after failed Stripe purchase by @federicocappelli in #3956
- Remove .feature case from PrivacyConfigFeatureLevel by @SabrinaTardio in #4926
- Add conflict-watch: daily cross-branch conflict detection by @tomasstrba in #4776
- Add native input URL handling for Duck.ai by @aataraxiaa in #4948
- macOS: record local clear for sync when deleting all Duck.ai chats from menu by @jotaemepereira in #4956
- iOS: Fix unified input suggestion tap-ahead by @aataraxiaa in #4974
- [iPad perf] Optimize tab refresh and save paths during loading by @dus7 in #4951
- iOS: Open Duck.ai chat links in new tabs by @aataraxiaa in #4976
- Bump github.com/duckduckgo/duckduckgo-autofill from 19.0.0 to 19.1.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #4944
- conflict-watch: skip release branches and automation users by @tomasstrba in #4988
- iOS - Full ap rebranding FF by @federicocappelli in #4979
- Bump github.com/duckduckgo/content-scope-scripts from 14.9.0 to 14.10.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #4945
- macOS: Fix wrong drop index moving a bookmark into the overflow menu by @jotaemepereira in #4983
- macOS: @-mention tab picker in the duck.ai omnibar by @tomasstrba in #4838
- ddg-sentry-report skill: portable Asana MCP tool names by @ayoy in #4995
- Fix About warning text vanishing on click on Big Sur by @diegoreymendez in #4999
- tab bloat idle return pixels by @SabrinaTardio in #4978
- [iOS] Improve support for iCal (Calendar) links by @edulpn in #4859
- iOS - Roll back previews guard in VPN embed script by @diegoreymendez in #5005
- iOS: Fix Duck.ai collapsed input shadow in dark mode by @aataraxiaa in #4992
- Escape Hatch: Implements Fire Confirmation Support by @jleandroperez in #4954
- iOS: UTI ↔ omnibar transition polish (animation + alignment) by @jaceklyp in #5008
- Escape Hatch: Opt Out by @jleandroperez in #4963
- Escape Hatch: Fire Tabs Actions by @jleandroperez in #4984
- Fix ICS Maestro happy path test for iOS 26 by @edulpn in #5012
- Revert "iOS: Fix SwiftUI Previews on iOS and macOS (#4882)" by @pballart in #5006
- Add AI Chat sync promo plumbing by @pballart in #5000
- Fix duck.ai suggestion truncation and View all chats double selection by @tomasstrba in #4977
- iOS: Remember toggle position — match Android (drop per-tab last-used) by @jaceklyp in #5018
- iOS: UTI Search bottom padding + paid AI Chat title icon by @aataraxiaa in #5024
- iOS: Regenerate VPN configuration on widget and shortcut starts by @diegoreymendez in #5009
- iOS - Rebranded images (with FF) by @federicocappelli in #4970
- Escape Hatch: Switches Menu Assets to Size16 by @jleandroperez in #5013
- Duck.ai dark mode: Surface-Canvas / Surface-Secondary tokens by @jaceklyp in #5027
- Escape Hatch: Reloading Tab Bar on Tab Close by @jleandroperez in #5016
- ddg-sentry-report skill: fix custom-field...
7.222.0-2+ios
What's Changed
- [iOS][Tailored Onboarding] Add Duck.Ai animation in landing screen for Duck.ai tailored flow by @alessandroboron in #4875
- [macOS] Fix selection skipping unloaded tab when closing adjacent tab by @ayoy in #4918
- [macOS] Move tab to new window not working with unloaded tabs by @diegoreymendez in #4919
- Closing unloaded tab not alerting about floating duck.ai window by @diegoreymendez in #4921
- ATB install date not triggering assert anymore by @federicocappelli in #4923
- iOS: Duck.ai back arrow opens focused omnibar instead of tab switcher by @jaceklyp in #4914
- [macOS] Address bar bug fixes — padding, icon overlap, shield-on-placeholder, tall-height-on-restore by @tomasstrba in #4920
- [macOS] Fix selection being dismissed when swiching from duck.ai to search by @jotaemepereira in #4912
- [iOS] Update Fire Mode colors in UTI by @hassaanelgarem in #4892
- [macOS | iOS] Extract VPN rekey logic into KeyRotator by @diegoreymendez in #4865
- [macOS] RMF asset update by @amddg44 in #4922
- iOS: UTI Newline Bugs & Placeholder Regression by @aataraxiaa in #4911
- [iOS] [Onboarding] [Subscription] Update reinstaller subscription promo copy by @hanyutang-sandra in #4739
- [iOS] add long press menu on unfocussed address bar by @brindy in #4856
- Migrate WindowControllersManager off tabViewModel(at:) by @diegoreymendez in #4924
- Escape Hatch: Implements Actions by @jleandroperez in #4873
- Surface unloaded tabs in address-bar tab suggestions by @diegoreymendez in #4925
- [iOS] UTI visual polish pass by @jaceklyp in #4930
- Update post-idle session wide event definition by @samsymons in #4939
- Additional wide event schema fix by @samsymons in #4942
- Further wide event validation fix by @samsymons in #4943
- Fix variant DMG not uploaded to S3 when custom DMG URL is used by @ayoy in #4940
- iOS: Use Reasoning Level from Native Storage on Chat Continuation by @pikorddg in #4903
- iOS: Fix YouTube Ad Blocking settings popping on iPad by @miasma13 in #4935
- iOS: add one-tap OTA install for ad-hoc builds by @pballart in #4791
- Bump ws from 8.18.3 to 8.20.1 in /macOS/LocalPackages/PerformanceTest/Sources/PerformanceTest/SafariTestRunner by @dependabot[bot] in #4946
- iOS: remove stale UTI hasSubmittedPrompt reset test by @jaceklyp in #4949
- iOS: Fix SwiftUI Previews on iOS browser scheme by @pballart in #4882
- [macOS] Button height changes on first time quit survey by @jotaemepereira in #4913
- [iOS/macOS] Remove vpnConnectionFailureLoopDetection feature flag by @samsymons in #4893
- [macOS] Improve voice chat permission handling for Duck.ai by @jotaemepereira in #4860
- [iOS/macOS] Add OS version to leak detection event by @samsymons in #4866
- Fix RMF trigger filtering and idle return message display by @SabrinaTardio in #4900
- [iOS/macOS] Add pixels for Duck.ai user script errors by @samsymons in #4849
- [iOS] fix failing maestro tests by @brindy in #4959
- [VPN] Extract monitor lifecycle into TunnelMonitors by @diegoreymendez in #4870
- Default excludeLocalNetworks to true on macOS by @diegoreymendez in #4955
- Fix pixel validation errors for 9 macOS pixels by @jotaemepereira in #4961
- Escape Hatch: Swipe Support by @jleandroperez in #4907
- iOS: UTI - Disable all UTI toolbar controls while generating by @aataraxiaa in #4952
- macOS 13.7.8 favicon crash workaround (part 2) by @amddg44 in #4887
- [mac][Subscription] No subscription menu after failed Stripe purchase by @federicocappelli in #3956
- Remove .feature case from PrivacyConfigFeatureLevel by @SabrinaTardio in #4926
- Add conflict-watch: daily cross-branch conflict detection by @tomasstrba in #4776
- Add native input URL handling for Duck.ai by @aataraxiaa in #4948
- macOS: record local clear for sync when deleting all Duck.ai chats from menu by @jotaemepereira in #4956
- iOS: Fix unified input suggestion tap-ahead by @aataraxiaa in #4974
- [iPad perf] Optimize tab refresh and save paths during loading by @dus7 in #4951
- iOS: Open Duck.ai chat links in new tabs by @aataraxiaa in #4976
- Bump github.com/duckduckgo/duckduckgo-autofill from 19.0.0 to 19.1.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #4944
- conflict-watch: skip release branches and automation users by @tomasstrba in #4988
- iOS - Full ap rebranding FF by @federicocappelli in #4979
- Bump github.com/duckduckgo/content-scope-scripts from 14.9.0 to 14.10.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #4945
- macOS: Fix wrong drop index moving a bookmark into the overflow menu by @jotaemepereira in #4983
- macOS: @-mention tab picker in the duck.ai omnibar by @tomasstrba in #4838
- ddg-sentry-report skill: portable Asana MCP tool names by @ayoy in #4995
- Fix About warning text vanishing on click on Big Sur by @diegoreymendez in #4999
- tab bloat idle return pixels by @SabrinaTardio in #4978
- [iOS] Improve support for iCal (Calendar) links by @edulpn in #4859
- iOS - Roll back previews guard in VPN embed script by @diegoreymendez in #5005
- iOS: Fix Duck.ai collapsed input shadow in dark mode by @aataraxiaa in #4992
- Escape Hatch: Implements Fire Confirmation Support by @jleandroperez in #4954
- iOS: UTI ↔ omnibar transition polish (animation + alignment) by @jaceklyp in #5008
- Escape Hatch: Opt Out by @jleandroperez in #4963
- Escape Hatch: Fire Tabs Actions by @jleandroperez in #4984
- Fix ICS Maestro happy path test for iOS 26 by @edulpn in #5012
- Revert "iOS: Fix SwiftUI Previews on iOS and macOS (#4882)" by @pballart in #5006
- Add AI Chat sync promo plumbing by @pballart in #5000
- Fix duck.ai suggestion truncation and View all chats double selection by @tomasstrba in #4977
- iOS: Remember toggle position — match Android (drop per-tab last-used) by @jaceklyp in #5018
- iOS: UTI Search bottom padding + paid AI Chat title icon by @aataraxiaa in #5024
- iOS: Regenerate VPN configuration on widget and shortcut starts by @diegoreymendez in #5009
- iOS - Rebranded images (with FF) by @federicocappelli in #4970
- Escape Hatch: Switches Menu Assets to Size16 by @jleandroperez in #5013
- Duck.ai dark mode: Surface-Canvas / Surface-Secondary tokens by @jaceklyp in #5027
- Escape Hatch: Reloading Tab Bar on Tab Close by @jleandroperez in #5016
- ddg-sentry-report skill: fix custom-field...
7.221.1+ios
What's Changed
Full Changelog: 7.221.0+ios...7.221.1+ios
7.222.0-1+ios
What's Changed
- [iOS][Tailored Onboarding] Add Duck.Ai animation in landing screen for Duck.ai tailored flow by @alessandroboron in #4875
- [macOS] Fix selection skipping unloaded tab when closing adjacent tab by @ayoy in #4918
- [macOS] Move tab to new window not working with unloaded tabs by @diegoreymendez in #4919
- Closing unloaded tab not alerting about floating duck.ai window by @diegoreymendez in #4921
- ATB install date not triggering assert anymore by @federicocappelli in #4923
- iOS: Duck.ai back arrow opens focused omnibar instead of tab switcher by @jaceklyp in #4914
- [macOS] Address bar bug fixes — padding, icon overlap, shield-on-placeholder, tall-height-on-restore by @tomasstrba in #4920
- [macOS] Fix selection being dismissed when swiching from duck.ai to search by @jotaemepereira in #4912
- [iOS] Update Fire Mode colors in UTI by @hassaanelgarem in #4892
- [macOS | iOS] Extract VPN rekey logic into KeyRotator by @diegoreymendez in #4865
- [macOS] RMF asset update by @amddg44 in #4922
- iOS: UTI Newline Bugs & Placeholder Regression by @aataraxiaa in #4911
- [iOS] [Onboarding] [Subscription] Update reinstaller subscription promo copy by @hanyutang-sandra in #4739
- [iOS] add long press menu on unfocussed address bar by @brindy in #4856
- Migrate WindowControllersManager off tabViewModel(at:) by @diegoreymendez in #4924
- Escape Hatch: Implements Actions by @jleandroperez in #4873
- Surface unloaded tabs in address-bar tab suggestions by @diegoreymendez in #4925
- [iOS] UTI visual polish pass by @jaceklyp in #4930
- Update post-idle session wide event definition by @samsymons in #4939
- Additional wide event schema fix by @samsymons in #4942
- Further wide event validation fix by @samsymons in #4943
- Fix variant DMG not uploaded to S3 when custom DMG URL is used by @ayoy in #4940
- iOS: Use Reasoning Level from Native Storage on Chat Continuation by @pikorddg in #4903
- iOS: Fix YouTube Ad Blocking settings popping on iPad by @miasma13 in #4935
- iOS: add one-tap OTA install for ad-hoc builds by @pballart in #4791
- Bump ws from 8.18.3 to 8.20.1 in /macOS/LocalPackages/PerformanceTest/Sources/PerformanceTest/SafariTestRunner by @dependabot[bot] in #4946
- iOS: remove stale UTI hasSubmittedPrompt reset test by @jaceklyp in #4949
- iOS: Fix SwiftUI Previews on iOS browser scheme by @pballart in #4882
- [macOS] Button height changes on first time quit survey by @jotaemepereira in #4913
- [iOS/macOS] Remove vpnConnectionFailureLoopDetection feature flag by @samsymons in #4893
- [macOS] Improve voice chat permission handling for Duck.ai by @jotaemepereira in #4860
- [iOS/macOS] Add OS version to leak detection event by @samsymons in #4866
- Fix RMF trigger filtering and idle return message display by @SabrinaTardio in #4900
- [iOS/macOS] Add pixels for Duck.ai user script errors by @samsymons in #4849
- [iOS] fix failing maestro tests by @brindy in #4959
- [VPN] Extract monitor lifecycle into TunnelMonitors by @diegoreymendez in #4870
- Default excludeLocalNetworks to true on macOS by @diegoreymendez in #4955
- Fix pixel validation errors for 9 macOS pixels by @jotaemepereira in #4961
- Escape Hatch: Swipe Support by @jleandroperez in #4907
- iOS: UTI - Disable all UTI toolbar controls while generating by @aataraxiaa in #4952
- macOS 13.7.8 favicon crash workaround (part 2) by @amddg44 in #4887
- [mac][Subscription] No subscription menu after failed Stripe purchase by @federicocappelli in #3956
- Remove .feature case from PrivacyConfigFeatureLevel by @SabrinaTardio in #4926
- Add conflict-watch: daily cross-branch conflict detection by @tomasstrba in #4776
- Add native input URL handling for Duck.ai by @aataraxiaa in #4948
- macOS: record local clear for sync when deleting all Duck.ai chats from menu by @jotaemepereira in #4956
- iOS: Fix unified input suggestion tap-ahead by @aataraxiaa in #4974
- [iPad perf] Optimize tab refresh and save paths during loading by @dus7 in #4951
- iOS: Open Duck.ai chat links in new tabs by @aataraxiaa in #4976
- Bump github.com/duckduckgo/duckduckgo-autofill from 19.0.0 to 19.1.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #4944
- conflict-watch: skip release branches and automation users by @tomasstrba in #4988
- iOS - Full ap rebranding FF by @federicocappelli in #4979
- Bump github.com/duckduckgo/content-scope-scripts from 14.9.0 to 14.10.0 in /SharedPackages/BrowserServicesKit by @dependabot[bot] in #4945
- macOS: Fix wrong drop index moving a bookmark into the overflow menu by @jotaemepereira in #4983
- macOS: @-mention tab picker in the duck.ai omnibar by @tomasstrba in #4838
- ddg-sentry-report skill: portable Asana MCP tool names by @ayoy in #4995
- Fix About warning text vanishing on click on Big Sur by @diegoreymendez in #4999
- tab bloat idle return pixels by @SabrinaTardio in #4978
- [iOS] Improve support for iCal (Calendar) links by @edulpn in #4859
- iOS - Roll back previews guard in VPN embed script by @diegoreymendez in #5005
- iOS: Fix Duck.ai collapsed input shadow in dark mode by @aataraxiaa in #4992
- Escape Hatch: Implements Fire Confirmation Support by @jleandroperez in #4954
- iOS: UTI ↔ omnibar transition polish (animation + alignment) by @jaceklyp in #5008
- Escape Hatch: Opt Out by @jleandroperez in #4963
- Escape Hatch: Fire Tabs Actions by @jleandroperez in #4984
- Fix ICS Maestro happy path test for iOS 26 by @edulpn in #5012
- Revert "iOS: Fix SwiftUI Previews on iOS and macOS (#4882)" by @pballart in #5006
- Add AI Chat sync promo plumbing by @pballart in #5000
- Fix duck.ai suggestion truncation and View all chats double selection by @tomasstrba in #4977
- iOS: Remember toggle position — match Android (drop per-tab last-used) by @jaceklyp in #5018
- iOS: UTI Search bottom padding + paid AI Chat title icon by @aataraxiaa in #5024
- iOS: Regenerate VPN configuration on widget and shortcut starts by @diegoreymendez in #5009
- iOS - Rebranded images (with FF) by @federicocappelli in #4970
- Escape Hatch: Switches Menu Assets to Size16 by @jleandroperez in #5013
- Duck.ai dark mode: Surface-Canvas / Surface-Secondary tokens by @jaceklyp in #5027
- Escape Hatch: Reloading Tab Bar on Tab Close by @jleandroperez in #5016
- ddg-sentry-report skill: fix custom-field...