$ the-wire · showcase
Liquid settings false positives cleared, throttled CLI retries get backoff
By RepoJournal · Filed · About Shopify · Composed from the cited sources · methodology
The Shopify CLI stopped flagging the settings merchants cannot actually tamper with and stopped burning its own API quota on synchronized retries, while Hydrogen filled two gaps in the public predictive-search types.
Exempt inert schema-typed Liquid settings from LIQUID_UNSAFE_RENDER Shopify/cli
LIQUID_UNSAFE_RENDER used to fire on every block.settings.* and section.settings.* output; it now exempts settings whose values are closed by the extension schema, like a select with left|right options or a boolean toggle used as a class. Those developer-defined domains cannot carry merchant-injected markup in HTML text or ordinary attribute contexts, so the warnings were noise.
Use exponential backoff for throttled API requests Shopify/cli
Throttled requests now back off exponentially instead of retrying on a fixed one-second schedule. The old path had three failure modes: retries could exhaust before the shared quota recovered, concurrent requests retried in lockstep and hit the quota again, and Retry-After seconds were read as milliseconds with fractional values truncated. HTTP-date Retry-After is handled too.
feat(predictive-search): type client state from server handlers Shopify/hydrogen
The public predictive search API now exports PredictiveSearchDataFromHandlers, so custom fragment fields can be typed on the client and not just in the server handler, plus SearchResultUrlOptions for getSearchResultUrl(). The companion commit drops an unused handler query symbol that had been unreadable since the symbol was made private.
Use fixed stores for CLI E2E tests Shopify/cli
CLI E2E tests now reuse a fixed store per dev test and create a fresh app each run, so cleanup touches only that app and its preview. One dedicated test still covers store creation and deletion; the authors note overlapping concurrent runs share stores without locks and have not been stress-tested.
Give a collection-scoped product match without a collection handle the product's standard path Shopify/hydrogen
Also in Hydrogen: a productInCollection template that omits :collectionHandle no longer returns a standardPathname containing the literal placeholder. The match carries no collection, so its standard path is now the product's own.