Release Highlights
Dashboard Fixes
A solid batch of fixes for the new React dashboard this release:
- List relation custom fields now save correctly — Previously, list-type relation custom fields weren't being persisted properly. (#4206)
- FacetValueInput passes native arrays — The
onChangehandler now correctly passes native arrays rather than wrapped values. (#4209) - ESM path alias resolution — Extension path aliases are now resolved relative to the source file location, fixing issues with dashboard extensions that use custom path mappings. (#4323)
- Required args validation in ConfigurableOperationInput — Configurable operations (e.g. promotions, shipping calculators) now correctly validate required arguments before submission. (#4202)
- Order detail refreshes after mutations — The order entity and history timeline now refresh correctly after all mutations, preventing stale data display. (#4338)
- Missing translations & CI check — Added missing translation keys and a CI script to catch gaps going forward. (#4207)
Core Fixes
- Promotion side effects now run before OrderLine save — Fixes an issue where in-memory changes made by promotion side effects (e.g.
onActivate/onDeactivatemodifying custom fields) were not being persisted. The side effects are now executed before the OrderLine save in both theapplyPriceAdjustmentsandmodifyOrdercode paths. (#4350) - Entity events now emit the post-update entity —
VendureEntityEventfor "updated" events now correctly includes the entity state after the update, rather than the pre-update state. (#4352) - Channel-aware tax zone cache keys — Active tax zone lookups are now cached per-channel, fixing incorrect tax calculations when operating across multiple channels with different tax configurations. (#4329)
Create (Scaffolding)
- Added
ts-nodeto devDependencies — New projects scaffolded with@vendure/createnow includets-node, which was previously missing and caused errors when running migration scripts. (#4212) - Explicit localhost API host in Vite config — The storefront Vite template now uses an explicit
localhosthost for the API proxy, fixing connectivity issues on some systems. (#4349)
Other Improvements
- Dashboard Playwright e2e test suite — A new end-to-end test suite using Playwright has been added for the dashboard, laying the groundwork for automated UI regression testing. (#4355)
- GraphiQL transparent background — The embedded GraphiQL plugin now uses a transparent background, making it blend properly with the dashboard theme. (#4205)
- Swahili translation — Added Swahili (sw) as a new admin UI language. (#4217)
- Documentation overhaul — Major rework of the core-concepts docs with new pages, sidebar reorganisation, SEO metadata, and restored code examples. (#4347)
What's Changed
- fix(ci): Correct CI Bot secret names in CLA workflow by @dlhck in #4211
- fix(dashboard): Pass native arrays from FacetValueInput onChange by @jantokic in #4209
- fix(graphiql-plugin): Make embedded mode background transparent by @dlhck in #4205
- chore: Deprecate community plugins by @michaelbromley in #4215
- ci: Add workflow to auto-generate docs on PR changes by @michaelbromley in #4216
- ci: Add AI-generated commit messages to docs workflow by @michaelbromley in #4219
- fix(dashboard): Fix list relation custom fields not saving correctly by @gabriellbui in #4206
- fix(create): Add ts-node to scaffolded project devDependencies by @HouseinIsProgramming in #4212
- chore(admin-ui): Add Swahili translation by @barakamwakisha in #4217
- fix(dashboard): Resolve ESM path aliases relative to source file location by @biggamesmallworld in #4323
- fix(dashboard): Add missing translations and CI check script by @grolmus in #4207
- fix(dashboard): Validate required args in ConfigurableOperationInput by @grolmus in #4202
- docs: Overhaul core-concepts, new pages, sidebar reorg, SEO metadata, restored code examples by @dlhck in #4347
- fix(create): Use explicit localhost API host in vite config template by @dlhck in #4349
- fix(core): Emit post-update entity in VendureEntityEvent for updated events by @michaelbromley in #4352
- feat(dashboard): Add Playwright e2e test suite by @michaelbromley in #4355
- ci: Optimize Build & Test workflow by @michaelbromley in #4357
- fix(core): Use channel-aware cache keys for active tax zone by @oliverstreissi in #4329
- fix(dashboard): Refresh order entity and history after all mutations by @HouseinIsProgramming in #4338
- fix(core): Run promotion side effects before OrderLine save by @DeltaSAMP in #4350
- fix(create): Fix welcome message on create by @michaelbromley in #4363
Full Changelog: v3.5.3...v3.5.4