Medusa v2.14.0stable Released Apr 23, 2026
โš ๏ธ Breaking Change Impact Score: 7/10

Medusa v2.14.0 โ€” Release Notes & Engineering Impact

Source available โ€” automated, not human-reviewed

Component: medusajs ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Breaking-change evidence from the source

  • This release open sources the Loyalty plugin and includes breaking changes related to Zod, account creation, and more. Please read carefully before updating.
  • ๐Ÿšง Breaking change Medusa has been upgraded its Zod dependency from v3 to v4. This includes updates to all internal validation schemas and type definitions. For most users, this upgrade is seamless, but if you're using custom validation schemas or directly interacting with Zod types in your project, you may need to:
  • I've updated my project to v2.14.0 of Medusa, which upgrades Zod to v4. This is a breaking change. Migrate all Zod v3 usage in my project to Zod v4.
  • Breaking changes to fix ### Error customization
  • ๐Ÿšง Breaking change The Medusa Icons package has been upgraded to support React v19. If you've installed the icons package directly and haven't upgraded to React v19 yet, you may need to update your React version or pin to an earlier version of the icons package. Otherwise, no action is needed.
  • ๐Ÿšง Breaking change The `create-medusa-app` command and `medusa new` CLI now create projects using a monorepo structure based on the [dtc-starter](https://github.com/medusajs/dtc-starter) template. This provides better separation of concerns between the backend and storefront applications, and allows you to deploy your project to Medusa Cloud seamlessly.
  • ๐Ÿšง Breaking change We've updated our HTTP types exported from `@medusajs/framework/types` to match exactly the Zod schemas used to validate API routes in the Medusa core. This change doesn't impact most users, and it doesn't impact the API routes interfaces. However, if you've explicitly used or relied any of the following types, make sure to apply the required changes.
  • <summary>HTTP types breaking changes</summary>
Read the original context โ†—
Source flags breaking changes โ€” review applicability
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Medusa v2.14.0. Source highlight: This release open sources the Loyalty plugin and includes breaking changes related to Zod, account creation, and more. Please read carefully before updating.

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โš ๏ธ Breaking Changes & Deprecations (8)

  • This release open sources the Loyalty plugin and includes breaking changes related to Zod, account creation, and more. Please read carefully before updating.
  • ๐Ÿšง Breaking change Medusa has been upgraded its Zod dependency from v3 to v4. This includes updates to all internal validation schemas and type definitions. For most users, this upgrade is seamless, but if you're using custom validation schemas or directly interacting with Zod types in your project, you may need to:
  • I've updated my project to v2.14.0 of Medusa, which upgrades Zod to v4. This is a breaking change. Migrate all Zod v3 usage in my project to Zod v4.
  • Breaking changes to fix ### Error customization
  • ๐Ÿšง Breaking change The Medusa Icons package has been upgraded to support React v19. If you've installed the icons package directly and haven't upgraded to React v19 yet, you may need to update your React version or pin to an earlier version of the icons package. Otherwise, no action is needed.
  • ๐Ÿšง Breaking change The `create-medusa-app` command and `medusa new` CLI now create projects using a monorepo structure based on the [dtc-starter](https://github.com/medusajs/dtc-starter) template. This provides better separation of concerns between the backend and storefront applications, and allows you to deploy your project to Medusa Cloud seamlessly.
  • ๐Ÿšง Breaking change We've updated our HTTP types exported from `@medusajs/framework/types` to match exactly the Zod schemas used to validate API routes in the Medusa core. This change doesn't impact most users, and it doesn't impact the API routes interfaces. However, if you've explicitly used or relied any of the following types, make sure to apply the required changes.
  • <summary>HTTP types breaking changes</summary>

โœจ New Features & Capabilities (6)

  • feat(core-flows,medusa,types): add no_notification to markOrderFulfillmentAsDeliveredWorkflow by @NicolasGorga in #15106
  • feat: add support for custom arguments in Twilio Sendgrid email notifications by @420coupe in #14879
  • feat(medusa-oas-cli, oas-github-ci): support versioning for outputted oas by @shahednasser in #15123
  • feat(dashboard,types): add metadata form to Stock Location by @NicolasGorga in #15025
  • feat(core-flows,order,medusa,types): Version shipping method adjustments & implement missing creation flow for versioned adjustments by @NicolasGorga in #14482
  • feat(core-flows,order,medusa,types): allow to update the original order.email on order customer transfer requests by @NicolasGorga in #14234

โšก Performance & Enhancements (3)

  • chore: improve PR reviewer by @shahednasser in #15092
  • chore: improve guidelines for PR reviewer by @shahednasser in #15073
  • chore: improvement to PR review skill by @shahednasser in #15040

๐Ÿ”ง Bug Fixes & Patches (6)

  • fix(order): remove fields causing excessive stack depth by @shahednasser in #15172
  • fix(medusa): optimize currency code normalization migration by @shahednasser in #15165
  • fix(loyalty-plugin): migrate to Zod v4 by @shahednasser in #15156
  • fix(loyalty-plugin): remove delete gift cards action + cleanup by @shahednasser in #15150
  • fix(loyalty-plugin): show gift card products section + error message for expiration date by @shahednasser in #15145
  • fix(payment): fix currency code unset when updating payment collection by @shahednasser in #15144
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
## Highlights This release open sources the Loyalty plugin and includes breaking changes related to Zod, account creation, and more. Please read carefully before updating. ### Zod Updated to v4 ๐Ÿšง Breaking change Medusa has been upgraded its Zod dependency from v3 to v4. This includes updates to all internal validation schemas and type definitions. For most users, this upgrade is seamless, but if you're using custom validation schemas or directly interacting with Zod types in your project, you may need to: 1. Explicitly install Zod v4.2.0 if you have Zod installed in your backend. 2. Update your Zod usage based on [their migration guide](https://zod.dev/v4/changelog). We've also drafted the following prompt that you can use with agents like Claude Code to migrate your Zod usage: <details> <summary>Zod Migration Agent Prompt</summary> ```bash I've updated my project to v2.14.0 of Medusa, which upgrades Zod to v4. This is a breaking change. Migrate all Zod v3 usage in my project to Zod v4. Do NOT modify anything inside node_modules or the Medusa packages themselves โ€” only migrate my custom code (e.g. custom API routes, modules, workflows, plugins, validators, admin customizations). ## Breaking changes to fix ### Error customization - Replace `invalid_type_error` and `required_error` options with the unified `error` param - BEFORE: z.string({ invalid_type_error: "Not a string", required_error: "Required" }) - AFTER: z.string({ error: (issue) => issue.input === undefined ? "Required" : "Not a string" }) - Rename `errorMap` option to `error` wherever used ### ZodError - Replace `.format()` and `.flatten()` calls with `z.treeifyError(err)` - Remove `.formErrors` usage (identical to deprecated `.flatten()`) - Replace `.addIssue()` / `.addIssues()` calls with direct pushes to `err.issues` ### z.string() format validators - Replace `z.string().email()` with `z.email()` (top-level) - Replace `z.string().url()` with `z.url()` (top-level) - Replace `z.string().uuid()` with `z.uuid()` โ€” note: now RFC 9562 strict; use `z.guid()` if lenient matching is needed - Replace `z.string().ip()` with `z.ipv4()` or `z.ipv6()` depending on intent - Replace `z.string().cidr()` with `z.cidrv4()` or `z.cidrv6()` depending on intent - Replace `z.string().emoji()` with `z.emoji()` (top-level) - Replace `z.string().base64url()` โ€” note it no longer accepts padding ### z.number() - Remove any inputs passing Infinity or -Infinity โ€” they are now rejected - Review `.safe()` usage โ€” it now behaves like `.int()` and rejects floats ### z.object() - Replace `.strict()` with `z.strictObject({ ... })` - Replace `.passthrough()` with `z.looseObject({ ... })` - Replace `.strip()` โ€” it's now the default; just remove it - Remove `.nonstrict()` โ€” deleted entirely - Remove `.deepPartial()` โ€” deleted; implement manually if needed - Replace `.merge(other)` with `.extend(other.shape)` or spreading shapes ### z.nativeEnum() - Replace `z.nativeEnum(MyEnum)` with `z.enum(MyEnum)` โ€” `z.enum()` now handles native TypeScript enums directly ### z.array() - Review `.nonempty()` usage โ€” it now returns `string[]` (not a tuple), so type inference changes if you relied on the first-element guarantee ### z.record() - Replace single-argument `z.record(valueSchema)` with `z.record(z.string(), valueSchema)` ### .refine() - Remove type predicate functions from `.refine()` โ€” they no longer narrow types - Remove any use of `ctx.path` inside refine callbacks โ€” unavailable in v4 - Remove function as second argument to `.refine()` for custom error messages; use the `error` option in the options object instead: - BEFORE: schema.refine(fn, (val) => ({ message: `${val} is invalid` })) - AFTER: schema.refine(fn, { error: (issue) => `${issue.input} is invalid` }) ### Removed APIs - Remove `z.ostring()`, `z.onumber()`, `z.oboolean()` โ€” use `z.string().optional()` etc. - Remove `z.literal()` with symbol values - Remove `.create()` static factory calls โ€” use the `z.*()` functions directly - Remove `z.promise()` wrappers โ€” await the value before parsing instead ### Internal / advanced usage - Replace `._def` access with `._zod.def` if you introspect Zod schema internals - Replace `ZodEffects` type references with the appropriate new types ## Instructions 1. Search the entire project (excluding node_modules) for Zod imports and usage. 2. For each file, apply the relevant fixes above. 3. After migrating, build the Medusa project (`medusa build`) which will run TypeScript type checking to catch any remaining type errors introduced by the generics restructure (ZodType now uses only Output and Input generics instead of three). 4. Run any existing tests to verify runtime behavior is unchanged. 5. Summarize what was changed per file. ``` </details> [#14309](https://github.com/medusajs/medusa/pull/14309) --- ### React v19 Support in Icons Package ๐Ÿšง Breaking change The Medusa Icons package has been upgraded to support React v19. If you've installed the icons package directly and haven't upgraded to React v19 yet, you may need to update your React version or pin to an earlier version of the icons package. Otherwise, no action is needed. [#14791](https://github.com/medusajs/medusa/pull/14791) --- ### Monorepo Project Structure for New Applications ๐Ÿšง Breaking change The `create-medusa-app` command and `medusa new` CLI now create projects using a monorepo structure based on the [dtc-starter](https://github.com/medusajs/dtc-starter) template. This provides better separation of concerns between the backend and storefront applications, and allows you to deploy your project to Medusa Cloud seamlessly. ```bash yarn dlx create-medusa-app@latest my-medusa-store # Creates a monorepo with separate backend and storefront packages ``` With this change, the `medusa-starter-default` and the [Next.js Starter Storefront](https://github.com/medusajs/nextjs-starter-medusa) repositories are now deprecated in favor of the unified monorepo approach. [#14999](https://github.com/medusajs/medusa/pull/14999) --- ### HTTP Types Consistent with Zod Schemas ๐Ÿšง Breaking change We've updated our HTTP types exported from `@medusajs/framework/types` to match exactly the Zod schemas used to validate API routes in the Medusa core. This change doesn't impact most users, and it doesn't impact the API routes interfaces. However, if you've explicitly used or relied any of the following types, make sure to apply the required changes. <details> <summary>HTTP types breaking changes</summary> ### Renamed types - **`InventoryLevel`** renamed to **`AdminInventoryLevel`**. - **`AdminPricePreferenceParams`** renamed to **`AdminGetPricePreferenceParams`**. ### Properties made required - **`AdminCreatePricePreference.attribute`** and **`.value`**: changed from optional `string?` to required `string`. - **`AdminCreateProductVariantInventoryKit.required_quantity`**: changed from optional to required. ### Properties removed - **`AdminProductCategoryListParams.name`**: removed from the filter type. - **`BaseClaimListParams.q`**: search query field removed (also affects `AdminClaimListParams`). - **`StoreCustomerAddressFilters.company`** and **`.province`**: removed from store-facing address filters. ### Properties with changed types - **`AdminCreateProductVariantPrice.rules`**: changed from `{ region_id: string } | null` to `Record<string, string>` โ€” `null` is no longer a valid value. - **`AdminUpdateProductVariant.prices`**: changed from `AdminCreateProductVariantPrice[]` to `AdminUpdateProductVariantPrice[]`. - **`AdminInventoryItemsParams.location_levels`**: changed from `Record<"location_id", string | string[]>` to `{ location_id?: string | string[] }`. - **`metadata`** in `AdminCreateCollection`, `AdminUpdateCollection`, `AdminCreateOrderFulfillment`, `AdminCreateOrderShipment`, `AdminCreateProductCategory`, `AdminUpdateProductCategory`: changed from `Record<string, any>` to `Record<string, unknown> | null`. - **`AdminCreateFulfillmentItem.line_item_id`** and **`.inventory_item_id`**: changed from `string | undefined` to `string | null`. - **Address string fields** in `StoreAddAddress`, `OrderAddress`, `AdminFulfillmentDeliveryAddress`, `BaseCreateCustomerAddress`, and `BaseUpdateCustomerAddress` (`first_name`, `last_name`, `phone`, `company`, `address_1`, `address_2`, `city`, `country_code`, `province`, `postal_code`, `address_name`): changed from `string | undefined` to `string | null`. </details> --- ### Open Source Loyalty Plugin The Loyalty Plugin that was previously only available to Medusa Cloud users is now open sourced. It provides features related to gift cards and account credits. You can also build on top of it features like loyalty points, referrals, and more. To use the Loyalty Plugin, you must install it manually. Run the following command to install it: ```bash yarn add @medusajs/loyalty-plugin # replace with your package manager ``` Then, add it to your list of plugins in `medusa-config.ts`: ```ts // medusa-config.ts import { loadEnv, defineConfig } from '@medusajs/framework/utils' loadEnv(process.env.NODE_ENV || 'development', process.cwd()) module.exports = defineConfig({ // ... plugins: [ { resolve: "@medusajs/loyalty-plugin", options: { }, } ], }) ``` Finally, run migrations to create the necessary tables: ```bash npx medusa db:migrate ``` [#14711](https://github.com/medusajs/medusa/pull/14711) --- ### Enhanced JavaScript SDK with ESM Support The Medusa JavaScript SDK now includes explicit `.js` extensions for all relative imports, ensuring full ESM compliance and better compatibility with modern bundlers and Node.js environments. [#15037](https://github.com/medusajs/medusa/pull/15037) --- ### Repository-wide Currency Code Normalization Currency codes are now consistently normalized across all modules and APIs throughout Medusa. This ensures consistent handling of currency formatting, validation, and storage across cart, order, payment, pricing, and other commerce modules. [#13975](https://github.com/medusajs/medusa/pull/13975) ## Features * feat(core-flows,medusa,types): add no_notification to markOrderFulfillmentAsDeliveredWorkflow by [@NicolasGorga](https://github.com/NicolasGorga) in [#15106](https://github.com/medusajs/medusa/pull/15106) * feat: add support for custom arguments in Twilio Sendgrid email notifications by [@420coupe](https://github.com/420coupe) in [#14879](https://github.com/medusajs/medusa/pull/14879) * feat(medusa-oas-cli, oas-github-ci): support versioning for outputted oas by [@shahednasser](https://github.com/shahednasser) in [#15123](https://github.com/medusajs/medusa/pull/15123) * feat(dashboard,types): add metadata form to Stock Location by [@NicolasGorga](https://github.com/NicolasGorga) in [#15025](https://github.com/medusajs/medusa/pull/15025) * feat(core-flows,order,medusa,types): Version shipping method adjustments & implement missing creation flow for versioned adjustments by [@NicolasGorga](https://github.com/NicolasGorga) in [#14482](https://github.com/medusajs/medusa/pull/14482) * feat(core-flows,order,medusa,types): allow to update the original order.email on order customer transfer requests by [@NicolasGorga](https://github.com/NicolasGorga) in [#14234](https://github.com/medusajs/medusa/pull/14234) * feat(settings): view configuration enhancement by [@adrien2p](https://github.com/adrien2p) in [#14650](https://github.com/medusajs/medusa/pull/14650) * feat(product,medusa,types): add external id to product tags, collections and types by [@asgerjensen](https://github.com/asgerjensen) in [#14855](https://github.com/medusajs/medusa/pull/14855) * feat(admin): add British English for European-style date/time formatting by [@mlindholm](https://github.com/mlindholm) in [#14902](https://github.com/medusajs/medusa/pull/14902) * feat(admin): add Croatian translation by [@luxapan](https://github.com/luxapan) in [#14919](https://github.com/medusajs/medusa/pull/14919) * feat(order): prevent canceling completed orders by [@yangbobo2021](https://github.com/yangbobo2021) in [#14874](https://github.com/medusajs/medusa/pull/14874) * feat(product-category): add external_id to product-category by [@asgerjensen](https://github.com/asgerjensen) in [#14799](https://github.com/medusajs/medusa/pull/14799) * feat(core-flows,order,medusa,types): update item metadata on item_update change action by [@NicolasGorga](https://github.com/NicolasGorga) in [#14570](https://github.com/medusajs/medusa/pull/14570) * feat: Implement event loop instrumentation by [@sradevski](https://github.com/sradevski) in [#14956](https://github.com/medusajs/medusa/pull/14956) ## Bugs * fix(order): remove fields causing excessive stack depth by [@shahednasser](https://github.com/shahednasser) in [#15172](https://github.com/medusajs/medusa/pull/15172) * fix(medusa): optimize currency code normalization migration by [@shahednasser](https://github.com/shahednasser) in [#15165](https://github.com/medusajs/medusa/pull/15165) * fix(loyalty-plugin): migrate to Zod v4 by [@shahednasser](https://github.com/shahednasser) in [#15156](https://github.com/medusajs/medusa/pull/15156) * fix(loyalty-plugin): remove delete gift cards action + cleanup by [@shahednasser](https://github.com/shahednasser) in [#15150](https://github.com/medusajs/medusa/pull/15150) * fix(loyalty-plugin): show gift card products section + error message for expiration date by [@shahednasser](https://github.com/shahednasser) in [#15145](https://github.com/medusajs/medusa/pull/15145) * fix(payment): fix currency code unset when updating payment collection by [@shahednasser](https://github.com/shahednasser) in [#15144](https://github.com/medusajs/medusa/pull/15144) * fix: migrate return reasons list to new DataTable component by [@TheSeydiCharyyev](https://github.com/TheSeydiCharyyev) in [#14916](https://github.com/medusajs/medusa/pull/14916) * fix(medusa): conditionally updated index_data for currency code normalization by [@NicolasGorga](https://github.com/NicolasGorga) in [#15114](https://github.com/medusajs/medusa/pull/15114) * fix(framework): fix plugin build not outputting server assets by [@shahednasser](https://github.com/shahednasser) in [#15110](https://github.com/medusajs/medusa/pull/15110) * fix(core-flows): consider price and metadata for multiple items linked to a single variant when resolving line action by [@NicolasGorga](https://github.com/NicolasGorga) in [#14834](https://github.com/medusajs/medusa/pull/14834) * fix: update link for Upgrade Guides in medusa/medusa README.md by [@parion](https://github.com/parion) in [#15038](https://github.com/medusajs/medusa/pull/15038) * fix(dashboard): fix shadowed variable in variant media filters by [@ashif323](https://github.com/ashif323) in [#15064](https://github.com/medusajs/medusa/pull/15064) * fix(caching-redis): avoid KEYS scans during tag clears by [@flatplanetpl](https://github.com/flatplanetpl) in [#14869](https://github.com/medusajs/medusa/pull/14869) * fix(core-flows,types): Fix product export breaking when `sales_channel_id` filter is passed by [@NicolasGorga](https://github.com/NicolasGorga) in [#14450](https://github.com/medusajs/medusa/pull/14450) * fix:#14410: (medusa,utils): add delay between module migrations to prevent timestamp collision by [@bhagwatiprasad](https://github.com/bhagwatiprasad) in [#14436](https://github.com/medusajs/medusa/pull/14436) * fix(admin): handle null sales channel references in product list and detail views by [@Vitalini](https://github.com/Vitalini) in [#15009](https://github.com/medusajs/medusa/pull/15009) * fix(promotion): handle fixed discount type in buy-get promotions by [@pitzegluck](https://github.com/pitzegluck) in [#14939](https://github.com/medusajs/medusa/pull/14939) * fix(core-flows): force cart refresh on updatePromotionsWorkflow when refreshing items by [@NicolasGorga](https://github.com/NicolasGorga) in [#14569](https://github.com/medusajs/medusa/pull/14569) * fix(core-flows): ensure full pricing context when adding items to draft order by [@NicolasGorga](https://github.com/NicolasGorga) in [#14941](https://github.com/medusajs/medusa/pull/14941) ## Documentation * docs: fix section label in monitoring by [@shahednasser](https://github.com/shahednasser) in [#15168](https://github.com/medusajs/medusa/pull/15168) * docs: added agent feedback instructions by [@shahednasser](https://github.com/shahednasser) in [#15167](https://github.com/medusajs/medusa/pull/15167) * docs: capture correct URL for agent visits by [@shahednasser](https://github.com/shahednasser) in [#15160](https://github.com/medusajs/medusa/pull/15160) * docs: fix announcements retrieved from cloud by [@shahednasser](https://github.com/shahednasser) in [#15126](https://github.com/medusajs/medusa/pull/15126) * docs: document ip addresses + subdomains in cloud by [@shahednasser](https://github.com/shahednasser) in [#15102](https://github.com/medusajs/medusa/pull/15102) * docs: added documentation for command palette by [@shahednasser](https://github.com/shahednasser) in [#15066](https://github.com/medusajs/medusa/pull/15066) * docs: update React to 19.2.5 by [@shahednasser](https://github.com/shahednasser) in [#15052](https://github.com/medusajs/medusa/pull/15052) * docs: fix content negotiation not resolving markdown by [@shahednasser](https://github.com/shahednasser) in [#15058](https://github.com/medusajs/medusa/pull/15058) * docs: add bloom emails by [@shahednasser](https://github.com/shahednasser) in [#14895](https://github.com/medusajs/medusa/pull/14895) * docs-util: maintain support for Zod v3 and v4 by [@shahednasser](https://github.com/shahednasser) in [#15138](https://github.com/medusajs/medusa/pull/15138) * docs-utils: make docs generator compatible with Zod v4 by [@shahednasser](https://github.com/shahednasser) in [#15104](https://github.com/medusajs/medusa/pull/15104) * docs-utils: support loyalty plugin in generated references by [@shahednasser](https://github.com/shahednasser) in [#15149](https://github.com/medusajs/medusa/pull/15149) * docs(ui): fix content menu position by [@mabouguerra](https://github.com/mabouguerra) in [#15026](https://github.com/medusajs/medusa/pull/15026) ## Chores * chore: fix action to draft release by [@shahednasser](https://github.com/shahednasser) in [#15180](https://github.com/medusajs/medusa/pull/15180) * chore: add action to draft releases by [@shahednasser](https://github.com/shahednasser) in [#15179](https://github.com/medusajs/medusa/pull/15179) * chore(docs): cloud doc changes (automated) by [@shahednasser](https://github.com/shahednasser) in [#15173](https://github.com/medusajs/medusa/pull/15173) * chore: add to skill triager and PR reviewer instructions for by-design implementations by [@shahednasser](https://github.com/shahednasser) in [#15158](https://github.com/medusajs/medusa/pull/15158) * chore: change stale bot threshold + automation skill fixes by [@shahednasser](https://github.com/shahednasser) in [#15157](https://github.com/medusajs/medusa/pull/15157) * chore(js-sdk): add methods to manage promotion codes by [@asgerjensen](https://github.com/asgerjensen) in [#14850](https://github.com/medusajs/medusa/pull/14850) * chore(loyalty): add tsdocs to services + add index.ts model export by [@shahednasser](https://github.com/shahednasser) in [#15154](https://github.com/medusajs/medusa/pull/15154) * chore: add tsdocs to loyalty plugin workflows and types by [@shahednasser](https://github.com/shahednasser) in [#15147](https://github.com/medusajs/medusa/pull/15147) * chore: trigger PR reviewer when draft PR is ready by [@NicolasGorga](https://github.com/NicolasGorga) in [#15130](https://github.com/medusajs/medusa/pull/15130) * chore: add linked PR awareness to issue triager by [@NicolasGorga](https://github.com/NicolasGorga) in [#15121](https://github.com/medusajs/medusa/pull/15121) * chore: fixes to PR reviewer and issue triager by [@shahednasser](https://github.com/shahednasser) in [#15112](https://github.com/medusajs/medusa/pull/15112) * chore: added action to push issue updates to discord by [@shahednasser](https://github.com/shahednasser) in [#15111](https://github.com/medusajs/medusa/pull/15111) * chore: enable issue triager by [@shahednasser](https://github.com/shahednasser) in [#15107](https://github.com/medusajs/medusa/pull/15107) * chore: fix PR reviewer not working on PRs when cursor comments by [@shahednasser](https://github.com/shahednasser) in [#15105](https://github.com/medusajs/medusa/pull/15105) * chore: fix changeset patch by [@shahednasser](https://github.com/shahednasser) in [#15101](https://github.com/medusajs/medusa/pull/15101) * chore: fix http types not matching validators by [@shahednasser](https://github.com/shahednasser) in [#15017](https://github.com/medusajs/medusa/pull/15017) * chore: add pr diff tool for pr reviewer by [@shahednasser](https://github.com/shahednasser) in [#15100](https://github.com/medusajs/medusa/pull/15100) * chore: fix PR reviewer not running automatically by [@shahednasser](https://github.com/shahednasser) in [#15094](https://github.com/medusajs/medusa/pull/15094) * chore: improve PR reviewer by [@shahednasser](https://github.com/shahednasser) in [#15092](https://github.com/medusajs/medusa/pull/15092) * chore(icons): upgrade React to v19 by [@NicolasGorga](https://github.com/NicolasGorga) in [#14791](https://github.com/medusajs/medusa/pull/14791) * chore(): upgrade zod to latest by [@adrien2p](https://github.com/adrien2p) in [#14309](https://github.com/medusajs/medusa/pull/14309) * chore(docs): cloud doc changes (automated) by [@shahednasser](https://github.com/shahednasser) in [#15076](https://github.com/medusajs/medusa/pull/15076) * chore: add writing tutorials skill by [@shahednasser](https://github.com/shahednasser) in [#15078](https://github.com/medusajs/medusa/pull/15078) * chore: improve guidelines for PR reviewer by [@shahednasser](https://github.com/shahednasser) in [#15073](https://github.com/medusajs/medusa/pull/15073) * chore(api,types): allow filtering on variant sku/barcode/ean/upc on both /store and /admin apis by [@asgerjensen](https://github.com/asgerjensen) in [#14826](https://github.com/medusajs/medusa/pull/14826) * chore(medusa,core-flows): include variant images in product export by [@NicolasGorga](https://github.com/NicolasGorga) in [#14886](https://github.com/medusajs/medusa/pull/14886) * chore(docs): cloud doc changes (automated) by [@shahednasser](https://github.com/shahednasser) in [#15036](https://github.com/medusajs/medusa/pull/15036) * chore: fixes to doc skills and pipelines by [@shahednasser](https://github.com/shahednasser) in [#15067](https://github.com/medusajs/medusa/pull/15067) * chore(cart,order,product,inventory,fulfillment,stock-location,workflow-engine-redis,workflow-engine-inmemory): add missing fields for types auto-generation by [@NicolasGorga](https://github.com/NicolasGorga) in [#14801](https://github.com/medusajs/medusa/pull/14801) * chore: add pagination to PR review triager by [@shahednasser](https://github.com/shahednasser) in [#15041](https://github.com/medusajs/medusa/pull/15041) * chore: improvement to PR review skill by [@shahednasser](https://github.com/shahednasser) in [#15040](https://github.com/medusajs/medusa/pull/15040) * chore: add issue triager + PR reviewer by [@shahednasser](https://github.com/shahednasser) in [#15001](https://github.com/medusajs/medusa/pull/15001) * chore: allow triggering PR reviewer automatically by [@shahednasser](https://github.com/shahednasser) in [#15055](https://github.com/medusajs/medusa/pull/15055) ## Other Changes * Complete Turkish (tr) translations by [@onwp](https://github.com/onwp) in [#14991](https://github.com/medusajs/medusa/pull/14991) * Revert "feat: Implement event loop instrumentation (#14956)" by [@shahednasser](https://github.com/shahednasser) in [#15079](https://github.com/medusajs/medusa/pull/15079) * chore(docs): document monitoring in Cloud by [@shahednasser](https://github.com/shahednasser) in [#15113](https://github.com/medusajs/medusa/pull/15113) ## New Contributors * @onwp made their first contribution in [#14991](https://github.com/medusajs/medusa/pull/14991) * @TheSeydiCharyyev made their first contribution in [#14916](https://github.com/medusajs/medusa/pull/14916) * @420coupe made their first contribution in [#14879](https://github.com/medusajs/medusa/pull/14879) * @mlindholm made their first contribution in [#14902](https://github.com/medusajs/medusa/pull/14902) * @luxapan made their first contribution in [#14919](https://github.com/medusajs/medusa/pull/14919) * @flatplanetpl made their first contribution in [#14869](https://github.com/medusajs/medusa/pull/14869) * @yangbobo2021 made their first contribution in [#14874](https://github.com/medusajs/medusa/pull/14874) * @parion made their first contribution in [#15038](https://github.com/medusajs/medusa/pull/15038) * @ashif323 made their first contribution in [#15064](https://github.com/medusajs/medusa/pull/15064) * @pevey made their first contribution in [#15037](https://github.com/medusajs/medusa/pull/15037) * @bhagwatiprasad made their first contribution in [#14436](https://github.com/medusajs/medusa/pull/14436) * @sradevski made their first contribution in [#14956](https://github.com/medusajs/medusa/pull/14956) * @Vitalini made their first contribution in [#15009](https://github.com/medusajs/medusa/pull/15009) * @pitzegluck made their first contribution in [#14939](https://github.com/medusajs/medusa/pull/14939) * @mabouguerra made their first contribution in [#15026](https://github.com/medusajs/medusa/pull/15026) **Full Changelog**: [v2.13.6...v2.14.0](https://github.com/medusajs/medusa/compare/v2.13.6...v2.14.0)