github safe-global/safe-wallet-monorepo web-v1.102.0

4 hours ago

🚀 Release web-v1.102.0

📊 Release Statistics

  • Total commits: 139
  • Features: 30
  • Bug fixes: 65
  • Mobile changes: 3
  • Breaking changes: 0

✨ Features

Change PR/Commit Author
feat(relay): offer one gas payment option per chain [PLA-2041] #8877 Daniel
feat(policies): show last updated in the active spending limit panel #8888 Tim
feat(Spaces): members addresses on the Team page #8865 Varya
feat(oidc-auth): let a page choose where a step-up returns the user #8879 Tim Daubenschütz
feat(policies): add a network row to the Proposer and Spending Limits drawers #8871 Varya
feat(policies): UI section to inform about Nested Safes limitations #8868 Varya
feat(policies): track the Policies page funnel in Mixpanel (WA-3723) #8863 Clóvis Neto
feat(policies): edit a spending limit #8855 Tong Yao
feat(policies): open the side panel for pending spending limits #8852 Tim
feat(spaces): remove the Safes left out as part of the plan change request #8856 Pooya Raki
feat: swap the dead ETH staking icon for a Safenet SAFE entry point in the asset list [WA-3450] #8612 Guilherme Fekete Endres
feat(policies): show pending spending limits in the policies table #8820 Tim
feat(policies): open the spending limit side panel from the policies table #8818 Tong Yao
feat(policies): gate adding a policy on the Policies page by the plan #8735 Tim Daubenschütz
feat(policies): gate adding proposers and spending limits by the policies entitlement #8789 valleXYZ
feat(policies): wire the policies table to the space policies route #8768 Tim Daubenschütz
feat: Safe Pro #8717 Yago Pérez Vázquez
feat(policies): spending limit side drawer #8780 Tim
feat(policies): expand the spending limit popular token list #8786 Tong Yao
feat: name Safes when adding them to a workspace (WA-3259, WA-3260) #8759 valleXYZ
feat(proposers): submit EOA proposer #8775 Varya
feat(policies): Stories for the Add Policy popup #8776 Varya
feat(policies): batch the spending limit policy into one multisend and hand it to the shared sign flow #8771 Tong Yao
feat(pw): migrate landing test #8741 dsh
feat(proposers): Create Proposer flow #8746 Varya
feat(web): proposer role drawer #8749 Clóvis Neto
feat(policies): show the space's policies in a table #8611 Tim Daubenschütz
feat(policies): add the policy summary block for the spending limit confirm step #8731 Tong Yao
feat(web): add signatures to queued transactions via the confirmation endpoint #8747 Pooya Raki
feat(policies): build the spending limit create form with multiple spenders and tokens #8722 Tong Yao

🐛 Bug Fixes

Change PR/Commit Author
fix(policies): mark added and removed limits in the pending spending limit panel (WA-3765) #8934 Tim
fix(safe-shield): treat Safes in the current Workspace as trusted (WA-3684) #8931 Daniel Dimitrov
fix(safe-pro): Removed accounts count #8915 Yago Pérez Vázquez
fix(safe-pro): keep the info icon apart from the Safe accounts count #8926 valleXYZ
fix(policies): fix the spending limit bugs from the QA review (WA-3748) #8913 Tong Yao
fix(UI): name truncation for Members and Added By columns in the address book #8924 Varya
fix(policies): load spending limits for a Safe with no delegates left #8912 Tim
fix(web): list the scoped Safe's queued nonces in Space-level tx flows #8911 Tim
fix(Spending Limits): restrict SL to indexer chains; show disabled safes on chains w/o Allowance module #8909 Varya
fix(safe-pro): align Safe Pro copy and states with the final design #8878 Zalens
fix(spaces): keep the Safe name when a single-network Pay later create needs a step-up #8900 Tim Daubenschütz
fix: Show pricing URL #8907 Yago Pérez Vázquez
fix(spaces): explain a blocked Workspace and open one with the Safe #8906 Daniel Dimitrov
fix(web): show trial status in workspace badge #8850 austin
fix(spaces): check Workspace eligibility with two aggregated requests #8901 Daniel Dimitrov
fix(web): sign queued tx deletion against the Safe Transaction Service domain #8903 Pooya Raki
fix: send each CGW request only once #8869 Pooya Raki
fix(policies): warn when a parent Safe picks a nested Safe in the Policies flows #8873 Varya
fix(spaces): add a multi-network Pay later Safe to its Workspace in one request (WA-3725, surgical) #8898 Tim Daubenschütz
fix(policies): open pending spending limit transactions in the Safe queue #8887 Tim
fix(policies): simulate the scoped Safe in Space-level flows (WA-3731) #8874 Tong Yao
fix(spaces): continue onboarding after a step-up on the invite step #8893 Tim Daubenschütz
fix(spaces): return to the Safe in the chosen Workspace after a step-up from the sidebar #8895 Tim Daubenschütz
fix(spaces): keep Safe names and the onboarding step across step-up (WA-3721) #8884 valleXYZ
fix(spaces): land on the new Safe in its Workspace after step-up, for Pay later and Pay now #8883 Tim Daubenschütz
fix(spaces): return to the Safes step after a step-up from the trial offer #8880 Tim Daubenschütz
fix(policies): hide unknown balance and price in the spending limit form (WA-3737) #8882 Tong Yao
fix(safe-shield): do not treat an unpicked Safe as untrusted or loading (WA-3729) #8872 Tong Yao
fix(policies): wait for the scoped Safe SDK before loading a pending transaction (WA-3732) #8870 Tim
fix(policies): keep the picked Safe and the proposer out of each other's options #8866 Clóvis Neto
fix(safe-pro): Disable Space removal when the subscription can still be billed #8861 Yago Pérez Vázquez
fix(policies): Safe and Proposer names on the Proposers info toasts #8860 Varya
fix(spaces): take the Workspace of a tab from its URL #8845 Daniel Dimitrov
fix(safe-pro): Improvements to avoid extra calls to /spaces.*/safes endpoint #8827 Yago Pérez Vázquez
fix(spaces): make the Workspace name copyable in the delete dialog #8859 Tim Daubenschütz
fix(policies): resolve proposer names from the address book (WA-3664) #8841 valleXYZ
fix(web): close stale broadcast channels and stub them in Jest #8849 Daniel Dimitrov
fix: keep the allowance preset listed while typing an amount (WA-3454) #8619 Guilherme Fekete Endres
fix(safe-pro): Selection reset when changing between monthly/yearly plans #8853 Yago Pérez Vázquez
fix(policies): Address Book contacts in the Policies search #8842 Varya
fix(safe-pro): Enable Set Tenderly simulation in queue #8843 Yago Pérez Vázquez
fix(policies): link Safe accounts to their settings and tidy the policies table #8844 Clóvis Neto
fix: policies mobile UI #8848 dsh
fix(safe-pro): tell Core Safes their free sponsored transactions are per day #8846 Daniel
fix(policies): tell the user to remove a nested Safe proposer on the Safe level #8840 Clóvis Neto
fix(safe-shield): offer the Hypernative login only to eligible Safes #8832 Daniel
fix(safe-pro): Gate contract checks #8823 Yago Pérez Vázquez
fix(policies): multiple UI and copy fixes #8833 Varya
fix(safe-pro): Add support url to talk to sales #8836 Yago Pérez Vázquez
fix(web): keep tx queue columns aligned for pending rows #8778 Daniel Dimitrov
fix: add an existing URL to the Policies info link #8828 Varya
fix(proposers): Restrict proposer role granting for signers only (without proposers) #8805 Varya
fix: Checkout return #8821 Yago Pérez Vázquez
fix: Accounts counter #8822 Yago Pérez Vázquez
fix(policies): disable Safe selection for CF safes in Policies flows #8783 Varya
fix: keep search focus in account list dropdown #8428 Daniel Dimitrov
fix(web): sign queued tx deletion against the Safe Queue Service domain #8766 Pooya Raki
fix(web): restore background push notifications (#7987) #7568 Daniel Dimitrov
fix(tx-builder): dont show Tx Lib header on empty state #8728 dsh
fix(web): open the request-policy form in a popup window #8770 Clóvis Neto
fix: show unsupported network error for unknown URL prefixes (WA-3599) #8765 Daniel Dimitrov
fix(web): link the Something missing? tile to the request-policy form #8750 Clóvis Neto
fix: show queued recoveries for Safes older than the RPC getLogs range (WA-3473) #8744 Daniel Dimitrov
fix(web): open Safe Shield cards with Enter and Space #8743 Daniel Dimitrov
fix: show fixed copy for a blocked Safe instead of the gateway's wording #8692 Clóvis Neto

📱 Mobile

Change PR/Commit Author
fix(mobile): mobile signer import recovery #8737 Daniel Dimitrov
fix(mobile): sign with contract addresses resolved by the read-only SDK #8817 Daniel Dimitrov
tests(mobile): dismiss iOS open-link alert in deep-link E2E flow #8779 Daniel Dimitrov

🔧 Chores & Maintenance

Change PR/Commit Author
chore(safe-pro): add stories for the plan views #8889 valleXYZ
chore(store): regenerate the CGW schema with gas payment options [PLA-2041] #8886 Daniel
chore: regenerate schema #8875 Varya
chore: do not cancel a running dev or staging deploy #8862 Tim Daubenschütz
chore(deps): bump fast-uri from 3.1.6 to 3.1.8 #8829 dependabot[bot]
chore(deps): bump undici from 6.28.0 to 6.28.1 #8831 dependabot[bot]
chore: Link legal pages to safe.global and remove local copies #8838 Oluwaseyi Oluwapelumi
chore: bump mobile app version to 1.0.16 #8825 Daniel Dimitrov
chore: build Storybook in parallel with the web preview build #8824 Tim Daubenschütz
chore: upgrade Jest to 30.5 across the monorepo #8816 Daniel Dimitrov
chore(deps): bump docker/build-push-action from 7.3.0 to 7.4.0 #8814 dependabot[bot]
chore(deps): bump linear/linear-release-action from 0.17.2 to 0.18.0 #8813 dependabot[bot]
chore(deps): bump anthropics/claude-code-action from 1.0.223 to 1.0.231 #8812 dependabot[bot]
chore(deps): bump aws-actions/configure-aws-credentials #8811 dependabot[bot]
chore(deps): bump docker/setup-qemu-action from 4.3.0 to 4.4.0 #8810 dependabot[bot]
chore: run base coverage in parallel with web unit tests #8806 Tim Daubenschütz
chore: Regenerate schema #8802 Yago Pérez Vázquez
chore: Regenerate Schema #8784 Yago Pérez Vázquez
chore(deps): bump brace-expansion from 1.1.18 to 1.1.21 #8764 dependabot[bot]
chore: type-check with the native TypeScript 7 compiler #8742 Daniel Dimitrov
chore: stage 2 migration of assets Cy tests #8751 dsh
chore: back-merge main into dev b0459212b Daniel Dimitrov
chore(deps): bump nanoid from 3.3.18 to 3.3.19 #8755 dependabot[bot]
chore(deps): bump anthropics/claude-code-action from 1.0.217 to 1.0.223 #8745 dependabot[bot]
chore: drop the pre-push husky hook #8740 Tim Daubenschütz
chore(ci): serve the Storybook preview with no-cache #8734 Tim Daubenschütz
chore: update schema and types #8738 Varya

📦 Other Changes

Change PR/Commit Author
perf(spaces): label workspace badges from one entitlements request #8910 Daniel Dimitrov
tests: check the spending limit plan gate in the Cypress specs #8830 Tim Daubenschütz
tests: update the pending TxSummary story snapshot #8834 Tim Daubenschütz
refactor(web): one hook per Safe Pro flag lifecycle #8807 Daniel
Update CODEOWNERS to include more owners #8819 Tim Daubenschütz
tests: paste the proposer inputs instead of typing them #8785 valleXYZ
refactor: capitalise Workspace throughout the UI copy #8670 Daniel Dimitrov
docs: run verify and test commands in a sub-agent, not the main context #8739 Tim Daubenschütz
tests: stop appending a prefixed Safe to chain-scoped view URLs #8773 Daniel Dimitrov
tests: seed the expired step-up record only in the top frame #8757 Tim Daubenschütz
tests: point the spending-limit token fixtures at their current path #8758 valleXYZ
docs: harden agents rules for PR reviews #8748 Varya
refactor(web): extract a reusable composed Drawer component #8733 Clóvis Neto

Generated from main..dev on 2026-10-05 14:50:56 UTC


🔗 IPFS release

Don't miss a new safe-wallet-monorepo release

NewReleases is sending notifications on new releases.