$ the-wire · showcase
MiniOxygen moves to Miniflare 4, Hydrogen stops replaying analytics events
By RepoJournal · Filed · About Shopify · Composed from the cited sources · methodology
Hydrogen's dev server finally leaves a March 2025 Workers runtime behind and fixes two analytics and bundling bugs that hit real apps, while the Shopify CLI cleans up its CI store provisioning and theme language server output.
Upgrade MiniOxygen to Miniflare 4 Shopify/hydrogen
MiniOxygen has been pinned to Miniflare 3.20250310.1, so local dev ran a Workers runtime from March 2025; this moves it to Miniflare 4 (runtime 2026-07-30). Miniflare 4 no longer swaps an unsupported compatibility date for the runtime's newest, workerd simply refuses to start, so local runs cap the date to what the bundled runtime supports and warn once per date while oxygen.json keeps the requ...
fix(analytics): re-added destinations no longer replay retained events Shopify/hydrogen
Re-adding a removed destination under the same name used to hand it every retained event again, up to 500, and under React Strict Mode in dev that fired twice. The fix remembers the replay cursor per destination name and resumes from it on re-add, advancing the cursor before callbacks run so a destination that removes itself mid-delivery does not see that event again.
fix(shopify-scripts): load standard events under webpack and Turbopack Shopify/hydrogen
ShopifyScripts loads Shopify's Standard Events with a dynamic import of an https://cdn.shopify.com URL, which webpack cannot build and Turbopack builds in a way that breaks in the browser, so shopify:page:view never fires in Next.js apps. One webpackIgnore comment fixes both, including the Next.js template.
Fix delayed development store provisioning and E2E cleanup Shopify/cli
CI failed store creation before provisioning finished, and lifecycle cleanup returned before the stores appeared, leaving both behind in later runs. The PR retries missing store creation records within the existing five-minute window.
Support JSON flags for the theme language server Shopify/cli
The theme language server now accepts --json (-j) while preserving native LSP messages and Content-Length framing, and keeps CLI diagnostics and argument/startup errors on stderr. Treat DO_NOT_TRACK=1 as an analytics opt-out was also merged into the CLI, alongside typo fixes to decision records and cli-kit doc comments.