{
  "prNumber": 45055,
  "prTitle": "release: 13.43.0",
  "generatedAt": "2026-08-08T02:10:15.163Z",
  "modelUsed": "gpt-5",
  "summary": {
    "totalFilesChanged": 1354,
    "totalCommitsInRelease": 165,
    "releaseRiskScore": "55/100",
    "highRiskScenarios": 6,
    "mediumRiskScenarios": 6
  },
  "testScenarios": {
    "cherryPickScenarios": [
      {
        "area": "Smart Transactions - Sentinel endpoint routing",
        "riskLevel": "high",
        "testSteps": [
          "1. Enable Smart Transactions and prepare a small native transfer on a supported network.",
          "2. In devtools Network, monitor outgoing STX calls during quote and submit; verify requests target the new tx-sentinel Robinhood URL.",
          "3. Temporarily block the Robinhood URL (simulate outage) and confirm the flow fails gracefully or falls back to legacy send without trapping the user.",
          "4. Complete at least one STX successfully and verify Activity status updates through finalization."
        ],
        "whyThisMatters": "Cherry-pick #45214 fixes STX controller routing; incorrect endpoints can break all STX sends or strand users mid-flow."
      },
      {
        "area": "Perps - Order book on order entry page",
        "riskLevel": "medium",
        "testSteps": [
          "1. Open the Perps order entry page and verify the order book renders with bids/asks and updates live.",
          "2. Click a price level to auto-populate the order entry price; verify correct precision and side.",
          "3. Change markets and confirm the order book and selected price update accordingly.",
          "4. Validate empty/error states (unsupported network or no liquidity) are handled gracefully without console errors."
        ],
        "whyThisMatters": "Cherry-pick #45151 adds a new user-facing order book; incorrect wiring can misprice orders or break trading UX."
      }
    ],
    "initialScenarios": [
      {
        "area": "State Migrations 220/221 - Persistent state integrity",
        "riskLevel": "high",
        "testSteps": [
          "1. On 13.41/13.42, create a wallet with 3+ accounts, add at least one custom RPC network, import tokens, and add an address book entry.",
          "2. Start a dapp connection and initiate (but do not confirm) a transaction so there is a pending approval.",
          "3. Upgrade to 13.43.0, unlock, and verify accounts, selected account, custom networks, tokens, and address book entries are intact.",
          "4. Open Activity/Notifications and ensure the pending approval still exists and can be approved or rejected successfully.",
          "5. Switch across added networks and confirm balances and token lists render without errors."
        ],
        "whyThisMatters": "New migrations can corrupt or drop user data (accounts, networks, tokens, pending approvals) and block core wallet flows."
      },
      {
        "area": "State Migrations 220/221 - Metametrics consent and defaults",
        "riskLevel": "high",
        "testSteps": [
          "1. On 13.41/13.42, set Analytics to Opt-out in Settings > Security & Privacy (or during onboarding).",
          "2. Upgrade to 13.43.0 and unlock.",
          "3. Trigger common actions (open portfolio, switch network, open Send) and inspect devtools Network for analytics calls; verify none are sent while Opt-out.",
          "4. Toggle to Opt-in, repeat actions, and verify analytics events now send without exposing account addresses or secrets.",
          "5. Lock and unlock the wallet and verify the consent state persists."
        ],
        "whyThisMatters": "Metametrics-controller changes can mistakenly flip consent or leak PII, creating privacy regressions post-migration."
      },
      {
        "area": "Smart Transactions - submit and fallback",
        "riskLevel": "high",
        "testSteps": [
          "1. Enable Smart Transactions in Settings (where available) and switch to a supported network (e.g., Mainnet).",
          "2. Send a small native transfer; confirm the flow shows Smart Transaction routing/quoting and allows submission.",
          "3. Verify the transaction submits and status updates (queued/relayed) until finalized in Activity.",
          "4. Simulate unsupported/failed STX (e.g., switch to an unsupported network or disable network) and ensure the flow cleanly falls back to a legacy transaction.",
          "5. Confirm gas customization and fee display remain consistent across STX and fallback paths."
        ],
        "whyThisMatters": "Controller and patch changes around Smart Transactions can break send flows or strand users in non-functional routes."
      },
      {
        "area": "Dapp Permissions - Unconnected account alert",
        "riskLevel": "high",
        "testSteps": [
          "1. Connect a dapp to Account A, then switch the active account in the extension to Account B.",
          "2. From the dapp, attempt an action requiring permissions (request accounts or send).",
          "3. Verify the 'Unconnected account' alert appears in the extension and offers to connect the current account.",
          "4. Use the alert action to connect Account B and verify the original dapp action can proceed.",
          "5. Switch back to Account A and confirm the alert no longer appears for Account A."
        ],
        "whyThisMatters": "Incorrect unconnected-account gating can silently block dapp flows or allow unintended account access."
      },
      {
        "area": "Balances - Account group balance accuracy",
        "riskLevel": "high",
        "testSteps": [
          "1. Use 3+ accounts with varied holdings (native and tokens) across 2+ networks.",
          "2. Open the Accounts/Assets view and note the total group balance.",
          "3. Hide one token and verify the group total updates correctly.",
          "4. Switch the primary network and confirm the group total and per-account balances recalculate without stale values.",
          "5. Toggle fiat currency display (if available) and verify the conversions and totals remain correct."
        ],
        "whyThisMatters": "Incorrect aggregation or stale state can misrepresent user funds, eroding trust in balances shown."
      },
      {
        "area": "Perps - Live market data stream resilience",
        "riskLevel": "medium",
        "testSteps": [
          "1. Open the Perps trading page and verify live market data populates (prices/tickers).",
          "2. Switch networks (supported to unsupported and back) and confirm the stream unsubscribes/re-subscribes without errors.",
          "3. Lock and then unlock the wallet; verify the stream resumes and UI updates continue.",
          "4. Simulate a brief offline period (toggle network offline) and confirm the client recovers and updates after reconnection."
        ],
        "whyThisMatters": "Perps stream bridge changes can cause stalls or memory leaks, breaking real-time trading UX."
      },
      {
        "area": "Network Management - Invalid custom network alert",
        "riskLevel": "medium",
        "testSteps": [
          "1. Add a custom RPC with a mismatched chain ID or wrong RPC endpoint.",
          "2. Switch to that network and verify the 'Invalid custom network' alert appears.",
          "3. Use alert actions (e.g., Edit network) to correct RPC/chain ID and confirm the alert resolves.",
          "4. Switch away and back to confirm no false-positive alert on a valid configuration."
        ],
        "whyThisMatters": "Incorrect or noisy network validation interrupts normal use and may mislead users about network safety."
      },
      {
        "area": "Assets - Network filter and control bar behaviors",
        "riskLevel": "medium",
        "testSteps": [
          "1. In Assets, use the control bar to filter by a specific network and verify only tokens for that network are displayed.",
          "2. Switch to 'All networks' and confirm consolidated listing with correct per-network badges/labels.",
          "3. Use search and sorting, then close and reopen the extension; verify filter state persistence (or expected reset).",
          "4. Switch accounts and confirm filters apply consistently without resetting inadvertently."
        ],
        "whyThisMatters": "Filter logic regressions can hide assets or confuse totals, leading to missed funds or actions."
      },
      {
        "area": "App State - Route and UI state persistence",
        "riskLevel": "medium",
        "testSteps": [
          "1. Navigate to a non-default screen (e.g., Activity or Settings) and start a UI tour if available (e.g., Account icon tour).",
          "2. Lock the wallet, close the popup, and reopen; unlock.",
          "3. Verify the last route and relevant UI/tour state persist or reset as intended (e.g., tour step continuity).",
          "4. Reload the extension and confirm no unexpected resets or errors in the UI."
        ],
        "whyThisMatters": "App-state-controller changes can create jarring resets or stuck UI flows after lock/unlock or reload."
      },
      {
        "area": "Analytics Events - Emission and redaction",
        "riskLevel": "medium",
        "testSteps": [
          "1. Set Analytics to Opt-in.",
          "2. Perform key actions: add network, connect dapp, send transaction, and reject a request.",
          "3. Inspect devtools Network for analytics payloads and verify expected event names/properties while ensuring account addresses and secrets are not sent in clear.",
          "4. Toggle to Opt-out and confirm subsequent actions no longer send analytics."
        ],
        "whyThisMatters": "Refactors in the metametrics controller may alter event names or redaction, risking broken dashboards or privacy leaks."
      }
    ]
  }
}