Highlights
A maintenance patch on top of 3.7.0. It fixes a batch of core, dashboard, and @vendure/create issues, moves a stray type dependency in the email plugin into dependencies, and adds request-scoped DataLoader batching when resolving relation custom fields. Thanks to everyone who reported bugs and sent in PRs.
Core
- Public API type dependencies delivered to consumers (#4947) — types that the public API depends on are now shipped, fixing broken consumer type resolution.
- Hydration merges shared entity instances (#4945) — shared entity instances are merged into every hydration target, fixing stale/partial hydrated relations.
- Non-list ID config args no longer double-encoded (closes #2483, #4856) — corrects ID encoding for non-list configurable-operation args.
- Tax-inclusive shipping cancellation (#4370) — cancelling shipping with
pricesIncludeTaxnow uses the tax-inclusive amount. - Promotion condition threshold validation (#4922) — minimum threshold is now validated in promotion conditions.
Dashboard
- Remove from group bulk action for customer group members (#4346).
- Option groups can be removed from the product detail page (#4876).
- Draft order editing no longer removes a line accidentally when changing quantity (#4345); modified line quantities are reflected in the refund dialog (#4917).
- i18n — added several missing translation strings (#4074) and localised the configurable-operation selector buttons (#4914).
- Experimental bundle mode now shares context libraries correctly (#4967).
Other
@vendure/create— fixed Quick Start hangs and package-manager install failures (#4946).- email-plugin —
@types/nodemailermoved intodependencies(#4942).
Performance
- Relation custom fields are now resolved with request-scoped DataLoader batching, cutting redundant queries.
What's Changed
- chore: Consolidate agent skills directory by @dlhck in #4911
- fix(core): Use tax-inclusive amount when cancelling shipping with pricesIncludeTax by @BibiSebi in #4370
- fix(dashboard): Reflect modified line quantities in refund dialog by @grolmus in #4917
- [FIX] Save and serve files with correct Content-Type by @kwerie in #4404
- fix(core): validate minimum threshold in promotion conditions by @Sanjuhub in #4922
- fix(core): Export and register Province entity and ProvinceService by @grolmus in #4857
- fix: assign facets to channel when re-importing products via CSV by @Ryrahul in #4713
- Fix typo in channel-aware entities description by @mistuttodos in #4927
- fix(dashboard): Add several missing translation strings by @lucatk in #4074
- test(core): add unit tests for buy-x-get-y-free promotion condition by @GabrielRoc in #4879
- fix(dashboard): Localize configurable operation selector buttons by @grolmus in #4914
- fix(core): Stop double-encoding non-list ID config args by @ryandiginomad in #4886
- ci: skip docs workflows on draft PRs by @BibiSebi in #4938
- fix(core): retain v3.6 migration helpers to avoid breaking committed migrations by @michaelbromley in #4939
- fix(create): Fix Quick Start hangs and package-manager install failures by @michaelbromley in #4946
- fix(email-plugin): Move @types/nodemailer to dependencies by @grolmus in #4942
- chore: Align root @types/nodemailer pin with nodemailer@9 by @grolmus in #4944
- chore: Share CI-aware vitest timeout and worker settings across packages by @michaelbromley in #4948
- fix(core, asset-server-plugin): Deliver public API type dependencies to consumers by @michaelbromley in #4947
- fix(core): Merge shared entity instances into every hydration target by @ryandiginomad in #4945
- chore(core): Fix flaky e2e search-index and scheduler tests by @michaelbromley in #4950
- fix(dashboard): Allow removing an option group from the product detail page by @grolmus in #4876
- perf(core): resolve relation custom fields using request-scoped DataLoader batching by @supermadu7 in #4923
- fix(dashboard): Add "Remove from group" bulk action to customer group members by @biggamesmallworld in #4346
- fix(dashboard): Prevent accidental line removal when editing draft order quantity by @biggamesmallworld in #4345
- docs: Fix typo in CMS integration plugin guide by @grolmus in #4963
- chore: Correct 2FA session-window assumption in stage approve script by @michaelbromley in #4966
- fix(dashboard): share context libraries in experimental bundle mode by @michaelbromley in #4967
- fix: resolve SonarCloud reliability issues in maintained packages by @michaelbromley in #4968
New Contributors
- @Sanjuhub made their first contribution in #4922
- @mistuttodos made their first contribution in #4927
- @GabrielRoc made their first contribution in #4879
- @ryandiginomad made their first contribution in #4886
- @supermadu7 made their first contribution in #4923
Full Changelog: v3.7.0...v3.7.1