Skip to content

feat(profile-controller): fix x methods, api response type add fetchAndUpdateProfile - #10793

Merged
hmalik88 merged 10 commits into
mainfrom
hm/update-profile-controller
Oct 12, 2026
Merged

hmalik88 merged 10 commits into
mainfrom
hm/update-profile-controller

Conversation

@hmalik88

@hmalik88 hmalik88 commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Explanation

References

N/A

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

Medium Risk
X OAuth can run without local profile state and connectedToX is no longer updated on connect; avatar_url is now required in API responses, which may fail validation if the API still returns null.

Overview
Adds fetchAndUpdateProfile on ProfileController, wired through the messenger to ProfileService:getProfile, mapping the API response into state.profile without touching xProfile.

Relaxes X OAuth entry points so getXAuthorizationUrl and connectX no longer require a profile in local state (removed #getProfileIdOrThrow()). connectX only persists xProfile on success; it no longer flips profile.connectedToX in state.

Tightens profile API typing by making avatar_url non-nullable in ProfileService validation and mapping it directly (drops null-to-empty handling and related tests).

Reviewed by Cursor Bugbot for commit 2a6e9ee. Bugbot is set up for automated code reviews on this repo. Configure here.

@hmalik88
hmalik88 marked this pull request as ready for review October 12, 2026 16:31
@hmalik88
hmalik88 requested review from a team as code owners October 12, 2026 16:31
@hmalik88
hmalik88 deployed to default-branch October 12, 2026 16:31 — with GitHub Actions Active

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit b7c4fcc. Configure here.

Comment thread packages/profile-controller/src/ProfileService.ts
@hmalik88 hmalik88 changed the title feat(profile-controller): fix x methods, add fetchAndUpdateProfile feat(profile-controller): fix x methods, api response type add fetchAndUpdateProfile Oct 12, 2026
@hmalik88

Copy link
Copy Markdown
Contributor Author

@metamaskbot publish-previews

@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@11.0.1-preview-8555a5583
@metamask-previews/accounts-controller@40.0.0-preview-8555a5583
@metamask-previews/address-book-controller@8.0.0-preview-8555a5583
@metamask-previews/advanced-chart-core@1.0.0-preview-8555a5583
@metamask-previews/ai-controllers@2.0.0-preview-8555a5583
@metamask-previews/analytics-controller@4.0.0-preview-8555a5583
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-8555a5583
@metamask-previews/announcement-controller@9.0.0-preview-8555a5583
@metamask-previews/app-metadata-controller@3.0.0-preview-8555a5583
@metamask-previews/approval-controller@10.0.0-preview-8555a5583
@metamask-previews/assets-controller@19.0.0-preview-8555a5583
@metamask-previews/assets-controllers@112.1.2-preview-8555a5583
@metamask-previews/authenticated-user-storage@4.1.0-preview-8555a5583
@metamask-previews/base-controller@10.0.0-preview-8555a5583
@metamask-previews/base-data-service@2.1.0-preview-8555a5583
@metamask-previews/bitcoin-regtest-up@2.0.0-preview-8555a5583
@metamask-previews/bridge-controller@82.0.3-preview-8555a5583
@metamask-previews/bridge-status-controller@76.3.5-preview-8555a5583
@metamask-previews/build-utils@4.0.0-preview-8555a5583
@metamask-previews/chain-agnostic-permission@2.0.0-preview-8555a5583
@metamask-previews/chomp-api-service@6.0.1-preview-8555a5583
@metamask-previews/claims-controller@1.0.3-preview-8555a5583
@metamask-previews/client-controller@2.0.0-preview-8555a5583
@metamask-previews/client-utils@3.0.4-preview-8555a5583
@metamask-previews/compliance-controller@3.0.0-preview-8555a5583
@metamask-previews/composable-controller@13.0.0-preview-8555a5583
@metamask-previews/config-registry-controller@5.0.0-preview-8555a5583
@metamask-previews/connectivity-controller@1.0.0-preview-8555a5583
@metamask-previews/controller-utils@13.0.0-preview-8555a5583
@metamask-previews/core-backend@12.1.0-preview-8555a5583
@metamask-previews/cryptography@1.1.2-preview-8555a5583
@metamask-previews/delegation-controller@4.0.0-preview-8555a5583
@metamask-previews/earn-controller@13.0.2-preview-8555a5583
@metamask-previews/eip-5792-middleware@4.0.1-preview-8555a5583
@metamask-previews/eip-7702-internal-rpc-middleware@1.0.0-preview-8555a5583
@metamask-previews/eip1193-permission-middleware@3.0.0-preview-8555a5583
@metamask-previews/eth-block-tracker@16.0.0-preview-8555a5583
@metamask-previews/eth-json-rpc-middleware@25.0.0-preview-8555a5583
@metamask-previews/eth-json-rpc-provider@7.0.0-preview-8555a5583
@metamask-previews/foundryup@2.0.0-preview-8555a5583
@metamask-previews/gas-fee-controller@27.0.0-preview-8555a5583
@metamask-previews/gator-permissions-controller@6.0.1-preview-8555a5583
@metamask-previews/geolocation-controller@2.0.0-preview-8555a5583
@metamask-previews/java-tron-up@2.0.0-preview-8555a5583
@metamask-previews/json-rpc-engine@11.0.0-preview-8555a5583
@metamask-previews/json-rpc-middleware-stream@9.0.0-preview-8555a5583
@metamask-previews/keyring-controller@28.1.0-preview-8555a5583
@metamask-previews/kyc-controller@0.8.0-preview-8555a5583
@metamask-previews/local-node-utils@2.0.0-preview-8555a5583
@metamask-previews/logging-controller@10.0.0-preview-8555a5583
@metamask-previews/message-manager@15.0.0-preview-8555a5583
@metamask-previews/messenger@3.0.0-preview-8555a5583
@metamask-previews/messenger-cli@1.0.0-preview-8555a5583
@metamask-previews/money-account-api-data-service@2.1.0-preview-8555a5583
@metamask-previews/money-account-balance-service@3.1.2-preview-8555a5583
@metamask-previews/money-account-controller@2.0.0-preview-8555a5583
@metamask-previews/money-account-upgrade-controller@5.1.0-preview-8555a5583
@metamask-previews/money-account-utils@2.1.0-preview-8555a5583
@metamask-previews/multichain-account-service@14.1.0-preview-8555a5583
@metamask-previews/multichain-api-middleware@5.0.0-preview-8555a5583
@metamask-previews/multichain-network-controller@4.0.0-preview-8555a5583
@metamask-previews/multichain-transactions-controller@8.0.0-preview-8555a5583
@metamask-previews/name-controller@10.0.0-preview-8555a5583
@metamask-previews/network-connection-banner-controller@1.0.0-preview-8555a5583
@metamask-previews/network-controller@37.0.1-preview-8555a5583
@metamask-previews/network-enablement-controller@7.0.2-preview-8555a5583
@metamask-previews/notification-services-controller@29.0.3-preview-8555a5583
@metamask-previews/passkey-controller@4.1.0-preview-8555a5583
@metamask-previews/permission-controller@14.0.0-preview-8555a5583
@metamask-previews/permission-log-controller@6.0.0-preview-8555a5583
@metamask-previews/perps-controller@20.0.0-preview-8555a5583
@metamask-previews/phishing-controller@18.2.0-preview-8555a5583
@metamask-previews/platform-api-docs@0.2.1-preview-8555a5583
@metamask-previews/polling-controller@17.0.0-preview-8555a5583
@metamask-previews/preferences-controller@24.0.0-preview-8555a5583
@metamask-previews/profile-controller@1.0.1-preview-8555a5583
@metamask-previews/profile-metrics-controller@5.1.3-preview-8555a5583
@metamask-previews/profile-sync-controller@34.0.3-preview-8555a5583
@metamask-previews/ramps-controller@27.0.1-preview-8555a5583
@metamask-previews/rate-limit-controller@8.0.0-preview-8555a5583
@metamask-previews/react-data-query@2.0.0-preview-8555a5583
@metamask-previews/remote-feature-flag-controller@7.0.0-preview-8555a5583
@metamask-previews/sample-controllers@6.0.0-preview-8555a5583
@metamask-previews/seedless-onboarding-controller@12.0.0-preview-8555a5583
@metamask-previews/selected-network-controller@27.0.0-preview-8555a5583
@metamask-previews/sentinel-api-service@2.1.0-preview-8555a5583
@metamask-previews/shield-controller@7.0.4-preview-8555a5583
@metamask-previews/signature-controller@40.0.0-preview-8555a5583
@metamask-previews/smart-transactions-controller@27.1.0-preview-8555a5583
@metamask-previews/snap-account-service@4.0.0-preview-8555a5583
@metamask-previews/social-controllers@3.7.0-preview-8555a5583
@metamask-previews/solana-test-validator-up@2.0.0-preview-8555a5583
@metamask-previews/stellar-quickstart-up@0.0.0-preview-8555a5583
@metamask-previews/storage-service@2.0.0-preview-8555a5583
@metamask-previews/subscription-controller@13.0.0-preview-8555a5583
@metamask-previews/transaction-controller@72.2.0-preview-8555a5583
@metamask-previews/transaction-pay-controller@30.1.0-preview-8555a5583
@metamask-previews/user-operation-controller@42.0.1-preview-8555a5583
@metamask-previews/utils@12.0.0-preview-8555a5583
@metamask-previews/wallet@17.0.0-preview-8555a5583
@metamask-previews/wallet-cli@0.0.0-preview-8555a5583

@hmalik88

Copy link
Copy Markdown
Contributor Author

@metamaskbot publish-previews

@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@11.0.1-preview-df8d6c7ea
@metamask-previews/accounts-controller@40.0.0-preview-df8d6c7ea
@metamask-previews/address-book-controller@8.0.0-preview-df8d6c7ea
@metamask-previews/advanced-chart-core@1.0.0-preview-df8d6c7ea
@metamask-previews/ai-controllers@2.0.0-preview-df8d6c7ea
@metamask-previews/analytics-controller@4.0.0-preview-df8d6c7ea
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-df8d6c7ea
@metamask-previews/announcement-controller@9.0.0-preview-df8d6c7ea
@metamask-previews/app-metadata-controller@3.0.0-preview-df8d6c7ea
@metamask-previews/approval-controller@10.0.0-preview-df8d6c7ea
@metamask-previews/assets-controller@19.0.0-preview-df8d6c7ea
@metamask-previews/assets-controllers@112.1.2-preview-df8d6c7ea
@metamask-previews/authenticated-user-storage@4.1.0-preview-df8d6c7ea
@metamask-previews/base-controller@10.0.0-preview-df8d6c7ea
@metamask-previews/base-data-service@2.1.0-preview-df8d6c7ea
@metamask-previews/bitcoin-regtest-up@2.0.0-preview-df8d6c7ea
@metamask-previews/bridge-controller@82.0.3-preview-df8d6c7ea
@metamask-previews/bridge-status-controller@76.3.5-preview-df8d6c7ea
@metamask-previews/build-utils@4.0.0-preview-df8d6c7ea
@metamask-previews/chain-agnostic-permission@2.0.0-preview-df8d6c7ea
@metamask-previews/chomp-api-service@6.0.1-preview-df8d6c7ea
@metamask-previews/claims-controller@1.0.3-preview-df8d6c7ea
@metamask-previews/client-controller@2.0.0-preview-df8d6c7ea
@metamask-previews/client-utils@3.0.4-preview-df8d6c7ea
@metamask-previews/compliance-controller@3.0.0-preview-df8d6c7ea
@metamask-previews/composable-controller@13.0.0-preview-df8d6c7ea
@metamask-previews/config-registry-controller@5.0.0-preview-df8d6c7ea
@metamask-previews/connectivity-controller@1.0.0-preview-df8d6c7ea
@metamask-previews/controller-utils@13.0.0-preview-df8d6c7ea
@metamask-previews/core-backend@12.1.0-preview-df8d6c7ea
@metamask-previews/cryptography@1.1.2-preview-df8d6c7ea
@metamask-previews/delegation-controller@4.0.0-preview-df8d6c7ea
@metamask-previews/earn-controller@13.0.2-preview-df8d6c7ea
@metamask-previews/eip-5792-middleware@4.0.1-preview-df8d6c7ea
@metamask-previews/eip-7702-internal-rpc-middleware@1.0.0-preview-df8d6c7ea
@metamask-previews/eip1193-permission-middleware@3.0.0-preview-df8d6c7ea
@metamask-previews/eth-block-tracker@16.0.0-preview-df8d6c7ea
@metamask-previews/eth-json-rpc-middleware@25.0.0-preview-df8d6c7ea
@metamask-previews/eth-json-rpc-provider@7.0.0-preview-df8d6c7ea
@metamask-previews/foundryup@2.0.0-preview-df8d6c7ea
@metamask-previews/gas-fee-controller@27.0.0-preview-df8d6c7ea
@metamask-previews/gator-permissions-controller@6.0.1-preview-df8d6c7ea
@metamask-previews/geolocation-controller@2.0.0-preview-df8d6c7ea
@metamask-previews/java-tron-up@2.0.0-preview-df8d6c7ea
@metamask-previews/json-rpc-engine@11.0.0-preview-df8d6c7ea
@metamask-previews/json-rpc-middleware-stream@9.0.0-preview-df8d6c7ea
@metamask-previews/keyring-controller@28.1.0-preview-df8d6c7ea
@metamask-previews/kyc-controller@0.8.0-preview-df8d6c7ea
@metamask-previews/local-node-utils@2.0.0-preview-df8d6c7ea
@metamask-previews/logging-controller@10.0.0-preview-df8d6c7ea
@metamask-previews/message-manager@15.0.0-preview-df8d6c7ea
@metamask-previews/messenger@3.0.0-preview-df8d6c7ea
@metamask-previews/messenger-cli@1.0.0-preview-df8d6c7ea
@metamask-previews/money-account-api-data-service@2.1.0-preview-df8d6c7ea
@metamask-previews/money-account-balance-service@3.1.2-preview-df8d6c7ea
@metamask-previews/money-account-controller@2.0.0-preview-df8d6c7ea
@metamask-previews/money-account-upgrade-controller@5.1.0-preview-df8d6c7ea
@metamask-previews/money-account-utils@2.1.0-preview-df8d6c7ea
@metamask-previews/multichain-account-service@14.1.0-preview-df8d6c7ea
@metamask-previews/multichain-api-middleware@5.0.0-preview-df8d6c7ea
@metamask-previews/multichain-network-controller@4.0.0-preview-df8d6c7ea
@metamask-previews/multichain-transactions-controller@8.0.0-preview-df8d6c7ea
@metamask-previews/name-controller@10.0.0-preview-df8d6c7ea
@metamask-previews/network-connection-banner-controller@1.0.0-preview-df8d6c7ea
@metamask-previews/network-controller@37.0.1-preview-df8d6c7ea
@metamask-previews/network-enablement-controller@7.0.2-preview-df8d6c7ea
@metamask-previews/notification-services-controller@29.0.3-preview-df8d6c7ea
@metamask-previews/passkey-controller@4.1.0-preview-df8d6c7ea
@metamask-previews/permission-controller@14.0.0-preview-df8d6c7ea
@metamask-previews/permission-log-controller@6.0.0-preview-df8d6c7ea
@metamask-previews/perps-controller@20.0.0-preview-df8d6c7ea
@metamask-previews/phishing-controller@18.2.0-preview-df8d6c7ea
@metamask-previews/platform-api-docs@0.2.1-preview-df8d6c7ea
@metamask-previews/polling-controller@17.0.0-preview-df8d6c7ea
@metamask-previews/preferences-controller@24.0.0-preview-df8d6c7ea
@metamask-previews/profile-controller@1.0.1-preview-df8d6c7ea
@metamask-previews/profile-metrics-controller@5.1.3-preview-df8d6c7ea
@metamask-previews/profile-sync-controller@34.0.3-preview-df8d6c7ea
@metamask-previews/ramps-controller@27.0.1-preview-df8d6c7ea
@metamask-previews/rate-limit-controller@8.0.0-preview-df8d6c7ea
@metamask-previews/react-data-query@2.0.0-preview-df8d6c7ea
@metamask-previews/remote-feature-flag-controller@7.0.0-preview-df8d6c7ea
@metamask-previews/sample-controllers@6.0.0-preview-df8d6c7ea
@metamask-previews/seedless-onboarding-controller@12.0.0-preview-df8d6c7ea
@metamask-previews/selected-network-controller@27.0.0-preview-df8d6c7ea
@metamask-previews/sentinel-api-service@2.1.0-preview-df8d6c7ea
@metamask-previews/shield-controller@7.0.4-preview-df8d6c7ea
@metamask-previews/signature-controller@40.0.0-preview-df8d6c7ea
@metamask-previews/smart-transactions-controller@27.1.0-preview-df8d6c7ea
@metamask-previews/snap-account-service@4.0.0-preview-df8d6c7ea
@metamask-previews/social-controllers@3.7.0-preview-df8d6c7ea
@metamask-previews/solana-test-validator-up@2.0.0-preview-df8d6c7ea
@metamask-previews/stellar-quickstart-up@0.0.0-preview-df8d6c7ea
@metamask-previews/storage-service@2.0.0-preview-df8d6c7ea
@metamask-previews/subscription-controller@13.0.0-preview-df8d6c7ea
@metamask-previews/transaction-controller@72.2.0-preview-df8d6c7ea
@metamask-previews/transaction-pay-controller@30.1.0-preview-df8d6c7ea
@metamask-previews/user-operation-controller@42.0.1-preview-df8d6c7ea
@metamask-previews/utils@12.0.0-preview-df8d6c7ea
@metamask-previews/wallet@17.0.0-preview-df8d6c7ea
@metamask-previews/wallet-cli@0.0.0-preview-df8d6c7ea

@hmalik88
hmalik88 added this pull request to the merge queue Oct 12, 2026
Merged via the queue into main with commit 912e568 Oct 12, 2026
45 checks passed
@hmalik88
hmalik88 deleted the hm/update-profile-controller branch October 12, 2026 18:43
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