{
  "prNumber": 43473,
  "prTitle": "release: 13.36.0",
  "generatedAt": "2026-06-11T19:44:50.873Z",
  "modelUsed": "gpt-5",
  "summary": {
    "totalFilesChanged": 1588,
    "totalCommitsInRelease": 109,
    "releaseRiskScore": "46/100",
    "highRiskScenarios": 4,
    "mediumRiskScenarios": 5
  },
  "testScenarios": {
    "cherryPickScenarios": [],
    "initialScenarios": [
      {
        "area": "State Migrations (212, 213) – upgrade path/data integrity",
        "riskLevel": "high",
        "testSteps": [
          "1. On 13.35.x create a profile with: 2 accounts (one imported), add a custom RPC network, add 2 custom ERC-20s and 1 NFT, connect a dapp, and leave 1 tx pending.",
          "2. Update to 13.36.0, unlock, and allow migrations to complete.",
          "3. Verify accounts, custom network, tokens, NFTs, and connected site persist; balances render without errors.",
          "4. Confirm the pending tx is present and actionable (can Speed up/Cancel and completes correctly).",
          "5. Check Settings > Security & privacy: MetaMetrics preference preserved (no unexpected re-prompt)."
        ],
        "whyThisMatters": "Migrations can corrupt or drop critical user data (accounts, assets, networks) and break pending transactions after upgrade."
      },
      {
        "area": "Token/NFT Management – Assets Controller upgrade (8.3.x)",
        "riskLevel": "high",
        "testSteps": [
          "1. On Ethereum Mainnet enable Token autodetection, then receive a popular token (e.g., USDC) and verify symbol/decimals/logo and fiat conversion are correct.",
          "2. Manually add a custom token by contract address; verify metadata and balance, then Hide/Unhide and ensure it persists across reload.",
          "3. On a non-mainnet EVM (e.g., Polygon), repeat: autodetection on, receive a known token, confirm correct logo/metadata and no cross-chain mix-ups.",
          "4. In the NFT tab, import an NFT by contract/token ID; verify image loads in Assets and in the Activity entry after a transfer."
        ],
        "whyThisMatters": "Upgrading the Assets controller and related selectors can change how token/NFT metadata is resolved, risking wrong symbols/logos, missing assets, or cross-chain confusion."
      },
      {
        "area": "Transaction Sending – Gas estimation and editing (Transaction Pay Controller patch)",
        "riskLevel": "high",
        "testSteps": [
          "1. On Ethereum Mainnet send ETH; open Edit gas > Advanced and set custom Max fee and Priority fee; confirm the tx and ensure it is mined.",
          "2. On a legacy-gas network (e.g., BNB Smart Chain or a custom legacy RPC), send a token; verify only Gas price is shown, edit it, and confirm success.",
          "3. Attempt a send with near-zero balance to trigger 'insufficient funds' and confirm the Confirm button is blocked with clear error messaging.",
          "4. From the Activity list, Speed up a pending tx and verify the replacement tx is created with updated fee and the original is replaced."
        ],
        "whyThisMatters": "Controller changes around gas/payment can cause wrong fee types, failed sends, or inability to edit fees across EIP-1559 vs legacy networks."
      },
      {
        "area": "Pending Transactions Survivability Across Upgrade",
        "riskLevel": "high",
        "testSteps": [
          "1. On 13.35.x submit a low-fee tx to keep it pending.",
          "2. Upgrade to 13.36.0 and unlock; open Activity and locate the pending item.",
          "3. Use Cancel to replace-with-cancel; verify status updates and the original is dropped.",
          "4. Submit another pending tx and then Speed up; verify the replacement confirms and final status is correct."
        ],
        "whyThisMatters": "State model changes can break pending tx tracking, causing stuck states or lost replacement actions."
      },
      {
        "area": "Activity List – Avatars and transaction type icons",
        "riskLevel": "medium",
        "testSteps": [
          "1. Perform: Send ETH, Swap a token, and Transfer an NFT; ensure each Activity item shows the correct avatar (token logo/NFT thumbnail) and direction labels.",
          "2. Simulate an incoming transfer (from another wallet) and verify the received item shows the correct token icon and 'Received' labeling.",
          "3. Open each Activity detail; verify avatars and token/NFT metadata match the summary item and no placeholders or broken images appear."
        ],
        "whyThisMatters": "Avatar component refactor can regress core visual cues in the Activity feed, confusing users about what happened and with which asset."
      },
      {
        "area": "Alert Modal – Destructive action confirmations",
        "riskLevel": "medium",
        "testSteps": [
          "1. Import a private key account, then attempt to Remove it; review the alert modal’s copy and primary/secondary button states.",
          "2. Cancel the modal via the Cancel button and via clicking the overlay/Esc; verify no account is removed and no side effects occur.",
          "3. Re-open and Confirm removal; verify the account is removed and the UI returns to a valid state without errors."
        ],
        "whyThisMatters": "Alert modal changes affect confirmation and cancellation flows; regressions can cause unintended destructive actions or traps."
      },
      {
        "area": "Account List – Selection and identity display",
        "riskLevel": "medium",
        "testSteps": [
          "1. Open the account menu with multiple accounts; select different accounts and verify the active state/checkmark and balance update everywhere.",
          "2. Rename an account and ensure the new label appears in the account list and Activity immediately (no stale cache).",
          "3. With many accounts, scroll and select via keyboard (Up/Down + Enter) to ensure focus/selection works and no clipping or mis-clicks."
        ],
        "whyThisMatters": "Account list item changes can break switching, labeling, and accessibility, directly impacting core wallet navigation."
      },
      {
        "area": "MetaMetrics Consent – Onboarding and settings toggle (Platform analytics adapter)",
        "riskLevel": "medium",
        "testSteps": [
          "1. Fresh install: go through onboarding choosing 'No thanks' for MetaMetrics; open Settings > Security & privacy and confirm the toggle is Off.",
          "2. Toggle MetaMetrics On; restart extension and verify the preference persists and no re-prompt appears.",
          "3. New profile: choose 'I agree' during onboarding; confirm no consent re-prompt later and the toggle reflects On."
        ],
        "whyThisMatters": "New analytics platform adapter and event type changes risk consent state regressions or silent event emission when opted out."
      },
      {
        "area": "Add/Watch Asset (watchAsset) – Token addition and display",
        "riskLevel": "medium",
        "testSteps": [
          "1. From a test dapp, call wallet_watchAsset to add a token; accept in the extension and verify it appears with correct metadata and logo.",
          "2. Hide the watched token and unhide it from the Hidden assets view; ensure state persists after reload.",
          "3. Switch networks and ensure the watched token is only visible on the correct chain (no cross-network leakage)."
        ],
        "whyThisMatters": "Selector and assets controller updates can break watchAsset flows, causing missing or cross-chain misassigned tokens."
      }
    ]
  }
}