trunk
Login: brand OAuth2 login screen as Jetpack for the Jetpack app (#112392)
Lint markdown files (#46716)
chore(deps): update linters (major) (#80830)
Fix more jsdoc/tag-lines ESLint errors (#84148)
Lodash: replace get() with optional chaining (batches 4–5) (#112070)
Staging Sites: Redirect from site tools subpages if accessing them directly (#84937)
Jetpack Manage: Add Managed sites page sidebar menu using the new navigation. (#83163)
Plans: rely on server for upgrade availability (#111404)
chore: migrate remaining `client/state/**/*` to `import/order` (#55659)
Activity Log: Hide backup/scan events for sites without self-serve access (#108740)
Convert `WebServerSettingsCard` to Typescript (#93552)
Convert `ServerSettings` to Typescript (#94669)
Separate logic for ssh and sftp loading check (#96777)
refactor(sftp-card): tsx, styled to scss, removed unused classNames, fixed checkbox padding, fixed cleaning up of the password (#95474)
Purchases: Convert PurchasesList to TS (#97302)
Lodash: replace single-key get() with optional chaining (#111945)
Redux: Convert billingTransactions state slice to TypeScript (#73129)
Lodash: replace some() with native Array.prototype.some (#112073)
Lodash: replace no-default get() with optional chaining (#111865)
Redux: Convert countries state slice to TypeScript (#72978)
i18n: Fix intl collator to work with BCP 47 language tags (#105353)
Redux route state: store timestamp outside query (#57500)
Jetpack Backup: refactor Jetpack credentials tests validation (#85870)
Remove Calypsoify (#106219)
Lodash: replace filter() with native Array.prototype.filter (#112081)
Eslint autofix
Lodash: replace simple lodash get() with optional chaining (round 1) (#111780)
Don't display intro discount if not eligible (#95484)
Connect Refresh: Migrate Akismet create-account to unified Signup (#105116)
Rename BlazePro into "Blaze Pro" (#91507)
Add custom styles for Passport on Login and Checkout pages. (#107226)
Fix | Disable Restore buttons when one is already in progress (#61071)
Add conditional check and message for updated account email verification (#113238)
Refactor Woo state selectors (#98796)
Jetpack Backup: Prevent restores with invalid creds (#68552)
Remove lodash `get` in favor of native optional chaining (#112149)
Prepare the store and send sendEmailLogin for magic codes (#103590)
Billing: display business use tax labels in history receipts and checkout line items (#111116)
Marketplace: look for the uploaded plugin once its transfer completes (#113083)
Reader: Update action button link of an empty list of a user profile (#98706)
Sites: Convert `getSite()` to TypeScript (#101538)
Reader: Fix "New posts" notification with duplicated posts (#107615)
Show a link to add credentials when a credential-less restore failed (#92992)
A4A: Filter out sites without full Jetpack installed from Plugins dashboard (#99564)
A4A: Removing the A4A environments from isJetpackCloud, adding the A4A environment check anywhere that it is needed (#89414)
Import everything: Improve MigrationProgress and MigrationError screens (#85897)
Convert CancelPurchaseForm to TypeScript (#112933)
Revert "Revert "Clean up deprecation and otherwise problematic warnings from …" (#104904)
Site Checklist: fix crash when checklist is empty object (#84556)
[WordAds] Update ad dashboard for free sites removed from wordads (#73177)
Help Center: Load in LoggedOut layout (#101892)
Lodash: replace sortBy() and orderBy() (#111908)
Stats: Update Calypso links with wp-admin links (#104924)
Hosting Overview: Fix the change theme link on simple sites with the paid plan (#100544)
Refactor user settings selectors to TS and remove lodash (#61751)
Include `user_is_dev_account` property in page view tracking (#86618)
add: woo passwordless feature toggle via url param (#87887)
WordAds: Include Inline Ads Setting (#91006)
Purchases: Stop using Purchase.active (#105096)
Newsletter: add cancelation warning (#100107)
Domain: Restyle pages in the Gravatar domain subscription flow for Gravatar branding (#103932)
Fix typos in comments, docs, and test descriptions (#111277)
get-current-theme-software-sets: request features before redirecting for lack of features (#69134)
Sites Dashboard - Add P2 sites filter (#92914)
Lodash: replace isEmpty with an @automattic/js-utils helper (#112106)
Lodash: replace includes() with native Array/String includes (#111860)
Replace FE gradual rollout logic with one from the BE (#68526)
Add Stats Standalone App for Jetpack plugins (#69231)
Jetpack Cloud: more tweaks for the Search standalone plugin (#62323)
Fix `Need more storage?` link on Hosting Overview page (#94702)
Server Settings: Add separate buttons to clear edge cache and object cache (#94664)
Hosting Dashboard v1: simplify sidebar selection logic by passing correct current route (#102900)
A4A: Prevent assigning of the domain for the development site (#111433)
Convert isJetpackSite to TypeScript (#66779)
Site Launch Celebration Modal: Refetch data within Calypso when React Query data changes (#109955)
New hosted site: Remove ineligibility message from plans grid (#102861)
Connect Refresh: Updated Woo DNA JP flow to unified Login (#104506)
Check if user has unlimited subscriber feature (#89043)
Free hosting trial: enable escape expired page (#83672)
Add redirects for expired eCommerce trials (#74335)
Add a redirect to plan selection for expired business trial sites (#80693)
Woo Express Trial: Add a check for previous upgrade from trial before forwarding to trial expired screen (#85104)