Skip to content

Add selectors for ConnectivityController#7701

Open
cryptodev-2s wants to merge 7 commits intomainfrom
add-connectivity-controller-selectors
Open

Add selectors for ConnectivityController#7701
cryptodev-2s wants to merge 7 commits intomainfrom
add-connectivity-controller-selectors

Conversation

@cryptodev-2s
Copy link
Copy Markdown
Contributor

@cryptodev-2s cryptodev-2s commented Jan 22, 2026

Explanation

The ConnectivityController currently defines selectors for accessing its state directly in clients, making it inconsistent with our guidelines.

Solution:

  • Added selectConnectivityStatus - simple selector that returns the current connectivity status
  • Added selectIsOffline - memoized selector using reselect that returns true when offline

The selectors are exported from the package and can be used with Redux or directly with controller state.

References

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed
  • I've introduced breaking changes in this PR and have prepared draft pull requests for clients and consumer packages to resolve them

Note

Low Risk
Low risk: adds new exported selectors and a reselect dependency without changing controller behavior or state shape.

Overview
Adds a new exported connectivityControllerSelectors API with selectConnectivityStatus and a memoized selectIsOffline (via reselect) for reading ConnectivityControllerState.

Updates @metamask/connectivity-controller to depend on reselect, adds unit tests for the selectors, and documents the addition in the package changelog.

Written by Cursor Bugbot for commit d10a1ef. This will update automatically on new commits. Configure here.

@cryptodev-2s cryptodev-2s self-assigned this Jan 22, 2026
@cryptodev-2s cryptodev-2s force-pushed the add-connectivity-controller-selectors branch from 4d04889 to 3ec2a74 Compare January 22, 2026 10:53
@cryptodev-2s
Copy link
Copy Markdown
Contributor Author

@metamaskbot publish-preview

@github-actions
Copy link
Copy Markdown
Contributor

Preview builds have been published. See these instructions for more information about preview builds.

Expand for full list of packages and versions.
{
  "@metamask-previews/account-tree-controller": "4.0.0-preview-3ec2a74",
  "@metamask-previews/accounts-controller": "35.0.2-preview-3ec2a74",
  "@metamask-previews/address-book-controller": "7.0.1-preview-3ec2a74",
  "@metamask-previews/analytics-controller": "1.0.0-preview-3ec2a74",
  "@metamask-previews/announcement-controller": "8.0.0-preview-3ec2a74",
  "@metamask-previews/app-metadata-controller": "2.0.0-preview-3ec2a74",
  "@metamask-previews/approval-controller": "8.0.0-preview-3ec2a74",
  "@metamask-previews/assets-controller": "0.0.0-preview-3ec2a74",
  "@metamask-previews/assets-controllers": "95.3.0-preview-3ec2a74",
  "@metamask-previews/base-controller": "9.0.0-preview-3ec2a74",
  "@metamask-previews/bridge-controller": "64.8.0-preview-3ec2a74",
  "@metamask-previews/bridge-status-controller": "64.4.3-preview-3ec2a74",
  "@metamask-previews/build-utils": "3.0.4-preview-3ec2a74",
  "@metamask-previews/chain-agnostic-permission": "1.4.0-preview-3ec2a74",
  "@metamask-previews/claims-controller": "0.4.1-preview-3ec2a74",
  "@metamask-previews/composable-controller": "12.0.0-preview-3ec2a74",
  "@metamask-previews/connectivity-controller": "0.1.0-preview-3ec2a74",
  "@metamask-previews/controller-utils": "11.18.0-preview-3ec2a74",
  "@metamask-previews/core-backend": "5.0.0-preview-3ec2a74",
  "@metamask-previews/delegation-controller": "2.0.0-preview-3ec2a74",
  "@metamask-previews/earn-controller": "11.1.0-preview-3ec2a74",
  "@metamask-previews/eip-5792-middleware": "2.1.0-preview-3ec2a74",
  "@metamask-previews/eip-7702-internal-rpc-middleware": "0.1.0-preview-3ec2a74",
  "@metamask-previews/eip1193-permission-middleware": "1.0.3-preview-3ec2a74",
  "@metamask-previews/ens-controller": "19.0.2-preview-3ec2a74",
  "@metamask-previews/error-reporting-service": "3.0.1-preview-3ec2a74",
  "@metamask-previews/eth-block-tracker": "15.0.1-preview-3ec2a74",
  "@metamask-previews/eth-json-rpc-middleware": "23.0.0-preview-3ec2a74",
  "@metamask-previews/eth-json-rpc-provider": "6.0.0-preview-3ec2a74",
  "@metamask-previews/foundryup": "1.0.1-preview-3ec2a74",
  "@metamask-previews/gas-fee-controller": "26.0.2-preview-3ec2a74",
  "@metamask-previews/gator-permissions-controller": "1.1.0-preview-3ec2a74",
  "@metamask-previews/json-rpc-engine": "10.2.1-preview-3ec2a74",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.8-preview-3ec2a74",
  "@metamask-previews/keyring-controller": "25.0.0-preview-3ec2a74",
  "@metamask-previews/logging-controller": "7.0.1-preview-3ec2a74",
  "@metamask-previews/message-manager": "14.1.0-preview-3ec2a74",
  "@metamask-previews/messenger": "0.3.0-preview-3ec2a74",
  "@metamask-previews/multichain-account-service": "5.1.0-preview-3ec2a74",
  "@metamask-previews/multichain-api-middleware": "1.2.6-preview-3ec2a74",
  "@metamask-previews/multichain-network-controller": "3.0.2-preview-3ec2a74",
  "@metamask-previews/multichain-transactions-controller": "7.0.0-preview-3ec2a74",
  "@metamask-previews/name-controller": "9.0.0-preview-3ec2a74",
  "@metamask-previews/network-controller": "29.0.0-preview-3ec2a74",
  "@metamask-previews/network-enablement-controller": "4.1.0-preview-3ec2a74",
  "@metamask-previews/notification-services-controller": "21.0.0-preview-3ec2a74",
  "@metamask-previews/permission-controller": "12.2.0-preview-3ec2a74",
  "@metamask-previews/permission-log-controller": "5.0.0-preview-3ec2a74",
  "@metamask-previews/perps-controller": "0.0.0-preview-3ec2a74",
  "@metamask-previews/phishing-controller": "16.1.0-preview-3ec2a74",
  "@metamask-previews/polling-controller": "16.0.2-preview-3ec2a74",
  "@metamask-previews/preferences-controller": "22.0.0-preview-3ec2a74",
  "@metamask-previews/profile-metrics-controller": "3.0.0-preview-3ec2a74",
  "@metamask-previews/profile-sync-controller": "27.0.0-preview-3ec2a74",
  "@metamask-previews/ramps-controller": "4.1.0-preview-3ec2a74",
  "@metamask-previews/rate-limit-controller": "7.0.0-preview-3ec2a74",
  "@metamask-previews/remote-feature-flag-controller": "4.0.0-preview-3ec2a74",
  "@metamask-previews/sample-controllers": "4.0.2-preview-3ec2a74",
  "@metamask-previews/seedless-onboarding-controller": "7.1.0-preview-3ec2a74",
  "@metamask-previews/selected-network-controller": "26.0.2-preview-3ec2a74",
  "@metamask-previews/shield-controller": "5.0.0-preview-3ec2a74",
  "@metamask-previews/signature-controller": "39.0.1-preview-3ec2a74",
  "@metamask-previews/storage-service": "0.0.1-preview-3ec2a74",
  "@metamask-previews/subscription-controller": "5.4.0-preview-3ec2a74",
  "@metamask-previews/token-search-discovery-controller": "4.0.0-preview-3ec2a74",
  "@metamask-previews/transaction-controller": "62.9.2-preview-3ec2a74",
  "@metamask-previews/transaction-pay-controller": "11.0.2-preview-3ec2a74",
  "@metamask-previews/user-operation-controller": "41.0.2-preview-3ec2a74"
}

@cryptodev-2s cryptodev-2s marked this pull request as ready for review January 22, 2026 13:52
@cryptodev-2s cryptodev-2s requested a review from a team as a code owner January 22, 2026 13:52
@cryptodev-2s cryptodev-2s force-pushed the add-connectivity-controller-selectors branch from 3ec2a74 to 02071b5 Compare January 22, 2026 13:52
@cryptodev-2s cryptodev-2s requested a review from mcmire January 22, 2026 13:52
mcmire
mcmire previously approved these changes Jan 22, 2026
Copy link
Copy Markdown
Contributor

@mcmire mcmire left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@cryptodev-2s
Copy link
Copy Markdown
Contributor Author

@metamaskbot publish-preview

@github-actions
Copy link
Copy Markdown
Contributor

Preview builds have been published. Learn how to use preview builds in other projects.

Expand for full list of packages and versions.
@metamask-previews/account-tree-controller@5.0.1-preview-27e0999e0
@metamask-previews/accounts-controller@37.0.0-preview-27e0999e0
@metamask-previews/address-book-controller@7.1.0-preview-27e0999e0
@metamask-previews/ai-controllers@0.6.0-preview-27e0999e0
@metamask-previews/analytics-controller@1.0.0-preview-27e0999e0
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-27e0999e0
@metamask-previews/announcement-controller@8.0.0-preview-27e0999e0
@metamask-previews/app-metadata-controller@2.0.0-preview-27e0999e0
@metamask-previews/approval-controller@9.0.0-preview-27e0999e0
@metamask-previews/assets-controller@3.1.1-preview-27e0999e0
@metamask-previews/assets-controllers@101.0.1-preview-27e0999e0
@metamask-previews/base-controller@9.0.0-preview-27e0999e0
@metamask-previews/base-data-service@0.1.0-preview-27e0999e0
@metamask-previews/bridge-controller@69.2.1-preview-27e0999e0
@metamask-previews/bridge-status-controller@70.0.1-preview-27e0999e0
@metamask-previews/build-utils@3.0.4-preview-27e0999e0
@metamask-previews/chain-agnostic-permission@1.5.0-preview-27e0999e0
@metamask-previews/claims-controller@0.4.3-preview-27e0999e0
@metamask-previews/client-controller@1.0.0-preview-27e0999e0
@metamask-previews/compliance-controller@1.0.1-preview-27e0999e0
@metamask-previews/composable-controller@12.0.0-preview-27e0999e0
@metamask-previews/config-registry-controller@0.1.1-preview-27e0999e0
@metamask-previews/connectivity-controller@0.1.0-preview-27e0999e0
@metamask-previews/controller-utils@11.19.0-preview-27e0999e0
@metamask-previews/core-backend@6.2.0-preview-27e0999e0
@metamask-previews/delegation-controller@2.0.2-preview-27e0999e0
@metamask-previews/earn-controller@11.1.2-preview-27e0999e0
@metamask-previews/eip-5792-middleware@3.0.1-preview-27e0999e0
@metamask-previews/eip-7702-internal-rpc-middleware@0.1.0-preview-27e0999e0
@metamask-previews/eip1193-permission-middleware@1.0.3-preview-27e0999e0
@metamask-previews/ens-controller@19.1.0-preview-27e0999e0
@metamask-previews/error-reporting-service@3.0.1-preview-27e0999e0
@metamask-previews/eth-block-tracker@15.0.1-preview-27e0999e0
@metamask-previews/eth-json-rpc-middleware@23.1.0-preview-27e0999e0
@metamask-previews/eth-json-rpc-provider@6.0.0-preview-27e0999e0
@metamask-previews/foundryup@1.0.1-preview-27e0999e0
@metamask-previews/gas-fee-controller@26.1.0-preview-27e0999e0
@metamask-previews/gator-permissions-controller@2.1.1-preview-27e0999e0
@metamask-previews/geolocation-controller@0.1.1-preview-27e0999e0
@metamask-previews/json-rpc-engine@10.2.3-preview-27e0999e0
@metamask-previews/json-rpc-middleware-stream@8.0.8-preview-27e0999e0
@metamask-previews/keyring-controller@25.1.0-preview-27e0999e0
@metamask-previews/logging-controller@8.0.0-preview-27e0999e0
@metamask-previews/message-manager@14.1.0-preview-27e0999e0
@metamask-previews/messenger@0.3.0-preview-27e0999e0
@metamask-previews/multichain-account-service@7.1.0-preview-27e0999e0
@metamask-previews/multichain-api-middleware@2.0.0-preview-27e0999e0
@metamask-previews/multichain-network-controller@3.0.5-preview-27e0999e0
@metamask-previews/multichain-transactions-controller@7.0.2-preview-27e0999e0
@metamask-previews/name-controller@9.1.0-preview-27e0999e0
@metamask-previews/network-controller@30.0.0-preview-27e0999e0
@metamask-previews/network-enablement-controller@5.0.0-preview-27e0999e0
@metamask-previews/notification-services-controller@23.0.0-preview-27e0999e0
@metamask-previews/permission-controller@12.2.1-preview-27e0999e0
@metamask-previews/permission-log-controller@5.0.0-preview-27e0999e0
@metamask-previews/perps-controller@1.3.0-preview-27e0999e0
@metamask-previews/phishing-controller@17.0.0-preview-27e0999e0
@metamask-previews/polling-controller@16.0.3-preview-27e0999e0
@metamask-previews/preferences-controller@23.0.0-preview-27e0999e0
@metamask-previews/profile-metrics-controller@3.1.1-preview-27e0999e0
@metamask-previews/profile-sync-controller@28.0.0-preview-27e0999e0
@metamask-previews/ramps-controller@12.0.1-preview-27e0999e0
@metamask-previews/rate-limit-controller@7.0.0-preview-27e0999e0
@metamask-previews/react-data-query@0.1.0-preview-27e0999e0
@metamask-previews/remote-feature-flag-controller@4.1.0-preview-27e0999e0
@metamask-previews/sample-controllers@4.0.3-preview-27e0999e0
@metamask-previews/seedless-onboarding-controller@9.0.0-preview-27e0999e0
@metamask-previews/selected-network-controller@26.0.3-preview-27e0999e0
@metamask-previews/shield-controller@5.0.2-preview-27e0999e0
@metamask-previews/signature-controller@39.1.0-preview-27e0999e0
@metamask-previews/storage-service@1.0.0-preview-27e0999e0
@metamask-previews/subscription-controller@6.1.0-preview-27e0999e0
@metamask-previews/transaction-controller@63.2.0-preview-27e0999e0
@metamask-previews/transaction-pay-controller@18.1.0-preview-27e0999e0
@metamask-previews/user-operation-controller@41.1.0-preview-27e0999e0

@cryptodev-2s cryptodev-2s requested a review from mcmire March 26, 2026 13:52
@cryptodev-2s cryptodev-2s enabled auto-merge March 26, 2026 13:52
@cryptodev-2s cryptodev-2s requested a review from mcmire March 26, 2026 14:31
Copy link
Copy Markdown
Contributor

@mcmire mcmire left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One more thing and then I can approve.

@cryptodev-2s cryptodev-2s requested a review from mcmire March 31, 2026 20:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants