{
  "prNumber": 43535,
  "prTitle": "release: 13.35.1",
  "generatedAt": "2026-06-15T07:25:26.619Z",
  "modelUsed": "gpt-5",
  "summary": {
    "totalFilesChanged": 901,
    "totalCommitsInRelease": 1,
    "releaseRiskScore": "54/100",
    "highRiskScenarios": 6,
    "mediumRiskScenarios": 5
  },
  "testScenarios": {
    "cherryPickScenarios": [],
    "initialScenarios": [
      {
        "area": "Token Management - Assets Controller upgrade",
        "riskLevel": "high",
        "testSteps": [
          "1. On Mainnet, connect to a test dapp that calls wallet_watchAsset to add a custom ERC-20 (with logo and decimals), and approve the prompt.",
          "2. Verify the token appears under Assets with correct symbol/decimals/logo and updates balance after receiving a small transfer.",
          "3. Switch to another network (e.g., Polygon) and add a token via wallet_watchAsset; confirm tokens are isolated per network and do not leak across chains.",
          "4. Hide/unhide the token and reload the extension; ensure visibility state persists."
        ],
        "whyThisMatters": "Large patch to the Assets Controller can impact watchAsset flows, token metadata, and per-network isolation, risking incorrect balances, broken logos, or cross-network leakage."
      },
      {
        "area": "State Migration - Assets data",
        "riskLevel": "high",
        "testSteps": [
          "1. Start with a pre-13.35.x profile containing multiple custom ERC-20s and NFTs across Mainnet and at least one testnet; upgrade to this build.",
          "2. After upgrade, open Assets and NFTs tabs; verify all tokens/NFTs are present without duplicates and with correct balances/fiat values.",
          "3. Switch between accounts and networks; confirm hidden items remain hidden and no migration warnings or errors surface in UI.",
          "4. Reload the extension and verify state consistency remains intact."
        ],
        "whyThisMatters": "Changes in assets-migration selectors risk data loss, duplication, or broken references after upgrade; this directly affects balances and portfolio integrity."
      },
      {
        "area": "Transaction Sending and Gas Controls (Transaction Pay Controller)",
        "riskLevel": "high",
        "testSteps": [
          "1. Send ETH on Mainnet using default gas option; confirm the confirmation screen loads with estimates and the transaction mines successfully.",
          "2. Repeat a send using Advanced gas (edit max fee and priority fee); ensure validation, save, and broadcast succeed.",
          "3. On an L2 (e.g., Optimism or Polygon), send native token; confirm estimation works and no unexpected validation/compliance blocks occur.",
          "4. Verify the Activity list shows correct status updates for these transactions."
        ],
        "whyThisMatters": "Transaction pay logic changes can break gas estimation, advanced editing, or broadcasting across L1/L2 networks—core to successful sends."
      },
      {
        "area": "Swaps flow with approvals and compliance/alerts",
        "riskLevel": "high",
        "testSteps": [
          "1. On Mainnet, initiate a swap (ETH→USDC), review quotes, and proceed to approval and swap transactions.",
          "2. Observe any compliance/warning modals; confirm messaging is clear and that approve/swap proceed when allowed.",
          "3. Complete the swap and verify both approval and swap appear in Activity with correct details and settlement.",
          "4. Attempt a swap on another supported network and ensure flows and messaging remain correct."
        ],
        "whyThisMatters": "Controller and alert changes can surface during multi-step swaps/approvals; regressions here can block swaps or mislead users with incorrect warnings."
      },
      {
        "area": "Controller Initialization and Unlock (Compliance Controller integration)",
        "riskLevel": "high",
        "testSteps": [
          "1. Complete new wallet onboarding and SRP backup; verify the home screen loads without errors.",
          "2. Lock and unlock the wallet; ensure accounts, balances, and recent activity load normally.",
          "3. Fully close and reopen the browser; confirm the extension initializes cleanly and can send a small test transaction.",
          "4. Connect to a website and approve connection to ensure controller messaging works end-to-end."
        ],
        "whyThisMatters": "Introducing a new Compliance Controller and messenger in the init path risks startup, unlock, and controller orchestration failures affecting core usability."
      },
      {
        "area": "Auto-detect tokens and bad metadata handling",
        "riskLevel": "high",
        "testSteps": [
          "1. Enable Auto-detect tokens in Settings and import an account with known token holdings.",
          "2. Wait for detection to complete; verify detected tokens appear with correct symbols/logos and accurate balances.",
          "3. Add a token via dapp with incorrect decimals; confirm the UI corrects or flags metadata and computes balances correctly.",
          "4. Disable auto-detect and verify previously detected tokens remain unless manually hidden."
        ],
        "whyThisMatters": "Assets Controller upgrades impact detection and metadata normalization; failures can misprice assets or show wrong balances."
      },
      {
        "area": "Activity feed avatars and transaction item rendering",
        "riskLevel": "medium",
        "testSteps": [
          "1. Perform a Send, an ERC-20 approval from a dapp, and a Swap; open the Activity tab.",
          "2. Confirm each item shows the correct avatar/icon (token logos, dapp logo for approvals) and status.",
          "3. Test fallback avatar behavior by viewing an item with a missing/broken logo and in dark mode.",
          "4. Scroll through a long list to check for layout shifts or image flicker."
        ],
        "whyThisMatters": "UI refactors to activity avatars can degrade clarity of transaction history or cause rendering/performance issues."
      },
      {
        "area": "Snaps installation and permission dialogs",
        "riskLevel": "medium",
        "testSteps": [
          "1. Install a popular Snap (e.g., BTC Snap) from a verified source.",
          "2. Review the permissions screen for accurate descriptions and ability to scroll/accept without visual glitches.",
          "3. Invoke a basic Snap method; confirm it executes without errors and persists after reload.",
          "4. Uninstall the Snap and verify cleanup of permissions and UI."
        ],
        "whyThisMatters": "Updates to Snaps permission specs can misrepresent capabilities or block installs, impacting security and user trust."
      },
      {
        "area": "Alerts and modals (alert system context changes)",
        "riskLevel": "medium",
        "testSteps": [
          "1. Connect to a new website; reject the permission request, then reconnect and approve.",
          "2. Verify modal open/close behavior is correct, with no duplicate or stuck modals.",
          "3. Trigger a high-signal warning (e.g., SRP reveal warning); ensure buttons act correctly and modal closes.",
          "4. Confirm alerts do not reappear unexpectedly after navigation or reload."
        ],
        "whyThisMatters": "Alert handling changes can result in stuck modals, lost actions, or incorrect analytics, disrupting critical decision points."
      },
      {
        "area": "NFT gallery and metadata (Assets Controller path)",
        "riskLevel": "medium",
        "testSteps": [
          "1. Import an account with known ERC-721/1155 NFTs and open the NFTs tab.",
          "2. Verify collections/items load with images, names, and balances; use refresh metadata if available.",
          "3. Hide an NFT and reload; confirm visibility state persists.",
          "4. Attempt to send or view details of an NFT; ensure actions and metadata render correctly."
        ],
        "whyThisMatters": "Assets controller and metadata pipelines affect NFT display; regressions can hide assets or show wrong data."
      },
      {
        "area": "Localization regression (German)",
        "riskLevel": "medium",
        "testSteps": [
          "1. Switch language to Deutsch (German).",
          "2. Navigate Home, Activity, Send, Swap, and Settings screens.",
          "3. Verify strings render (no placeholder keys), CTAs fit buttons, and no layout breaks occur.",
          "4. Complete a basic Send to ensure transactional flows remain usable in German."
        ],
        "whyThisMatters": "Large locale updates can introduce missing keys or layout issues that break core flows for non-English users."
      }
    ]
  }
}