🚀 Release web-v1.90.0
Resolves: https://linear.app/safe-global/issue/WA-2511/release-regression-testing-for-1900-web-release
📊 Release Statistics
- Total commits: 106
- Features: 23
- Bug fixes: 34
- Mobile changes: 11
- Breaking changes: 0
✨ Features
| Change | PR/Commit | Author |
|---|---|---|
| feat(gtf): phase 2 — pay gas from Safe | #7714 | Zalens |
| feat(spaces): show stored & owned Safes without a wallet across add/view flows | #8000 | tongyaosafe |
| feat(swap): enable TWAP orders on Ink and drop stale network duplicate | #8018 | Pooya Raki |
| feat(web): redesign Security Hub on shadcn/Tailwind with composable report drawer | #8014 | Clóvis Neto |
| feat(spaces): import address book from CSV/JSON files; gate sidebar link | #7953 | katspaugh |
| feat(spaces): rework safe selector for workspace context (WA-2462) | #7989 | tongyaosafe |
| feat(spaces): open Hypernative signup modal from Security Hub empty state | #7979 | Clóvis Neto |
| feat(web): warn when a Safe is affected by the Zodiac module vulnerability | #7996 | Daniel Dimitrov |
| feat(spaces): render Spaces login on / when require-login gate is on | #7978 | katspaugh |
| feat(Copilot): top-3 warnings + Hypernative overflow row | #7883 | Tim |
| feat(web): clarify allowance amount input | #7925 | Tim Daubenschütz |
| feat: Authentication (part of M2) | #7970 | Dasha Kobzeva |
| feat(web/Spaces): Accounts management popup | #7958 | Varya |
| feat(spaces): redesign /welcome/spaces sign-in screen | #7948 | tongyaosafe |
| feat: Space onboarding survey UI (step 4 of 4) | #7886 | tongyaosafe |
| feat(web/Spaces): UI cleanup: redesign Members and Address Book; remove feedback popup; sidebar z-index fix | #7937 | Varya |
| feat: new workspace settings UI | #7916 | devpramoth |
| feat(web): add empty state for the Security tab | #7899 | Clóvis Neto |
| feat(web): require Spaces login + at least one Space to access the app | #7884 | katspaugh |
| feat(web): Rename Spaces to Workspaces | #7903 | Varya |
| feat: update Hypernative SVG assets and styles | #7891 | Tim |
| feat(web): use backend as source of truth for counterfactual safes | #7875 | katspaugh |
| feat: add an RPC provider warning to the Safe Selector Dropdown | #7910 | Varya |
🐛 Bug Fixes
| Change | PR/Commit | Author |
|---|---|---|
| fix(web): stop Accounts/Workspaces tabs jumping and clean up sign-in screen | #8015 | tongyaosafe |
| fix(web): show missing CF badges | #8013 | Varya |
| fix(web/UI): new info badge when "Show all tokens" toggle is on; UI fixes for the empty Positions page | #8011 | Varya |
| fix(spaces): keep safe switcher usable on load failure (WA-2218) | #7976 | tongyaosafe |
| fix: e2e tests fixes for Spaces for the new flows and UI | #7998 | Varya |
| fix: only show sidebar nav tooltips when collapsed and fix Settings item | #7997 | Daniel Dimitrov |
| fix: update RTK with new invitation DTOs | #7992 | Dasha Kobzeva |
| fix(hypernative): render new HN logo after re-design | #7966 | Tim |
| fix: update test fixtures to support updated RTK | #7985 | Dasha Kobzeva |
| fix: disable trusted token filtering without portfolio support | #7648 | valleXYZ |
| fix: Double space on /home page | #7988 | Tim Daubenschütz |
| fix(web): Hide checkmark on indeterminate checkbox | #7974 | Tim Daubenschütz |
| fix(web): account threshold severity | #7961 | Clóvis Neto |
| fix(web): exclude Playwright e2e specs from Jest test run | #7972 | Daniel Dimitrov |
| fix(spaces): polish space onboarding + login page UI (WA-2436) | #7964 | tongyaosafe |
| fix(spaces): refresh aggregated balance after a tx | #7960 | tongyaosafe |
| fix(web): keep ERC20 token controls visible on assets error | #7762 | valleXYZ |
| fix(web/Spaces): improve UX/UI for the case when members try to add safes to a space | #7940 | Varya |
| fix(web): stop pending CF delete queue from retrying 404s forever | #7950 | katspaugh |
| fix(web): don't bounce existing users into create-space on re-login (round 2) | #7942 | katspaugh |
| fix(ci): sign release and back-merge commits with GPG key | #7943 | Diego Pazos |
| fix(web): hide safe selector on 404 and 403 pages; add home icon where it was missing | #7927 | Varya |
| fix(web): stabilize security hub score and harden re-scan | #7933 | Clóvis Neto |
| fix(spaces): improve Import address book dialog UX | #7896 | katspaugh |
| fix(web): prevent security hub gauge flipping between scans | #7874 | Clóvis Neto |
| fix(security-hub): require strict majority in account setup check | #7894 | Clóvis Neto |
| fix(web): flag L2 mastercopy as outdated in Security Hub | #7898 | Clóvis Neto |
| fix(security-hub): use $1M threshold consistently for guard recommendation | #7893 | Clóvis Neto |
| fix(security-hub): show $0 for zero balance instead of dash | #7897 | Clóvis Neto |
| fix: Disable Safe Selector when in apps | #7917 | Varya |
| fix(web): remove SecurityHub signer screening check until Blockaid is wired | #7895 | Clóvis Neto |
| fix(security-hub): responsive Safes table + un-clip "Not deployed" label | #7892 | Clóvis Neto |
| fix(web/Spaces): show +X chains for address book contacts | #7907 | Varya |
| fix(web): sidebar styles for mid-width screens | #7885 | Varya |
📱 Mobile
| Change | PR/Commit | Author |
|---|---|---|
| fix(mobile): let EAS corepack honor root packageManager yarn pin | #7968 | Daniel Dimitrov |
| chore(mobile): use EAS corepack to honor packageManager yarn pin | #7967 | Daniel Dimitrov |
| fix(mobile): memoize Identicon SVG to fix /recipient frozen frames | #7938 | Daniel Dimitrov |
| fix(mobile): stop Datadog RUM view on app background | #7930 | Daniel Dimitrov |
| fix(mobile): detect biometry-invalidated wrapping key and route to re-import | #7901 | Daniel Dimitrov |
| refactor(mobile): use CGW /preview during compose instead of eager /propose | #7856 | Daniel Dimitrov |
| refactor(mobile): move WalletConnect into Signer/ and extract shared/ | #7912 | Tim |
| fix(mobile): surface WalletConnect connect errors without paging on expiry | #7819 | Tim |
| chore(mobile): bump version to 1.0.12 | e1ddd1411
| Daniel Dimitrov |
| fix(mobile): never auto-redirect to Settings on biometrics toggle (WA-2239) | #7811 | Daniel Dimitrov |
| fix(mobile): never auto-redirect to Settings on notification permission denial | #7812 | Daniel Dimitrov |
🔧 Chores & Maintenance
| Change | PR/Commit | Author |
|---|---|---|
| chore(deps): bump axios from 1.16.1 to 1.17.0 | #8001 | dependabot[bot] |
| chore(web): load chains at runtime, drop build-time prefetch | #7962 | katspaugh |
| chore: add devcontainer setup | #7995 | Pooya Raki |
| chore(store): regenerate AUTO_GENERATED after surveys | #7991 | tongyaosafe |
| chore: auto-update schema hash in build scripts | #7959 | Varya |
| chore: regenerate CGW schema to match staging | 49ab2b48f
| Daniel Dimitrov |
| chore: back-merge main to dev after after web-v1.89.0 and web-v1.89.1 | #7934 | Varya |
| chore: remove the Safe Labs terms disclaimer gate | #7936 | Daniel Dimitrov |
| chore(web): harden CI permissions and expose /version.json | #7918 | katspaugh |
| chore(deps): bump anthropics/claude-code-action from 1.0.123 to 1.0.133 | #7924 | dependabot[bot] |
| chore(deps): bump docker/setup-buildx-action from 4.0.0 to 4.1.0 | #7923 | dependabot[bot] |
| chore(deps): bump chromaui/action from 16.10.1 to 17.0.0 | #7922 | dependabot[bot] |
| chore(deps): bump codecov/codecov-action from 6.0.0 to 6.0.1 | #7921 | dependabot[bot] |
| chore(deps): bump docker/build-push-action from 7.1.0 to 7.2.0 | #7920 | dependabot[bot] |
| chore(deps): bump systeminformation from 5.31.1 to 5.31.6 | #7860 | dependabot[bot] |
| chore(deps): bump anthropics/claude-code-action from 1.0.99 to 1.0.123 | #7864 | dependabot[bot] |
| chore(deps): bump chromaui/action from 16.8.0 to 16.10.1 | #7863 | dependabot[bot] |
| chore(deps): bump marocchino/sticky-pull-request-comment | #7865 | dependabot[bot] |
| chore(deps): bump actions/upload-artifact from 6.0.0 to 7.0.1 | #7866 | dependabot[bot] |
| chore(deps): bump brace-expansion from 1.1.14 to 5.0.6 | #7872 | dependabot[bot] |
| chore(deps): bump protobufjs from 6.11.6 to 7.5.8 | #7876 | dependabot[bot] |
| chore(deps): bump ws from 7.4.6 to 8.20.1 | #7887 | dependabot[bot] |
| chore(deps): bump axios from 1.16.0 to 1.16.1 | #7913 | dependabot[bot] |
| chore(deps-dev): bump turbo from 2.9.6 to 2.9.14 | #7914 | dependabot[bot] |
| chore(deps): bump @tootallnate/once from 2.0.0 to 2.0.1 | #7915 | dependabot[bot] |
| chore: drop pipefail from pre-commit hook for Linux VM compatibility | #7890 | katspaugh |
📦 Other Changes
| Change | PR/Commit | Author |
|---|---|---|
| refactor(survey): flip feature flag to positive SPACE_ONBOARDING_SURVEY (WA-2493) | #8007 | tongyaosafe |
| tests: add Playwright e2e framework | #7952 | Diego Pazos |
| tests: add Playwright e2e framework | c3d87a4a3
| Liliya Soroka |
| tests: handle nullable composed types in fixture schema validation | #7949 | Daniel Dimitrov |
| tests: handle nullable composed types in fixture schema validation | #7949 | Daniel Dimitrov |
| Revert "chore: back-merge main to dev after after web-v1.89.0 and web-v1.89.1…" | #7946 | Daniel Dimitrov |
| tests: e2e - rewire tx_share_block specs to Audit Log share icon | #7861 | francovenica |
Generated from main..dev on 2026-06-08 11:58:12 UTC