Repository navigation
fix(deps): update dependency @coveo/headless to v3.58.0 - #137
Open
renovate-coveo[bot] wants to merge 1 commit into
Open
renovate-coveo[bot] wants to merge 1 commit into
renovate-coveo[bot] wants to merge 1 commit into
Conversation
renovate-coveo
Bot
requested review from
jpmarceau,
jsmith2-coveo and
tbaxter-coveo
September 29, 2026 06:11
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
renovate-coveo
Bot
force-pushed
the
renovate/all-minor-patch-js-ts
branch
from
September 30, 2026 13:17
bf275bc to
b4c42fb
Compare
renovate-coveo
Bot
force-pushed
the
renovate/all-minor-patch-js-ts
branch
from
October 7, 2026 15:40
b4c42fb to
aa3ca96
Compare
renovate-coveo
Bot
force-pushed
the
renovate/all-minor-patch-js-ts
branch
from
October 13, 2026 14:52
aa3ca96 to
916a143
Compare
renovate-coveo
Bot
force-pushed
the
renovate/all-minor-patch-js-ts
branch
from
October 20, 2026 17:11
916a143 to
cdb80ce
Compare
renovate-coveo
Bot
force-pushed
the
renovate/all-minor-patch-js-ts
branch
from
October 26, 2026 23:04
cdb80ce to
9575e8a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
3.55.4→3.58.0Release Notes
coveo/ui-kit (@coveo/headless)
v3.58.0Compare Source
Minor Changes
a873e42- Add an optional per-requestnavigatorContexttofetchStaticState(),hydrateStaticState()andbuild()in@coveo/headless/ssr. It applies to that call only, without mutating the shared engine definition, so concurrent requests no longer risk sending each other's client ID, user agent orx-forwarded-foraddress. When it is omitted, the provider set withsetNavigatorContextProvider()is still used. The "Missing navigator context" warning and thesetNavigatorContextProvider()deprecation notice now point to this option.Patch Changes
#8669
5d3b308- Remove a controller's listener from the engine when its last subscriber unsubscribes, whatever the order in which its subscribers unsubscribe. Before, the listener was only removed when the first subscriber was also the last to unsubscribe. Otherwise it stayed registered, and the controller kept comparing its state on every state change for the rest of the session.#8693
8af7566- Fix@coveo/headless/ssrsending the first request'sx-forwarded-forheader on every later request.fetchStaticState()stored its forwarded-for wrapper on the shared engine definition, and that wrapper kept reading the navigator context of the request that created it, so latersetNavigatorContextProvider()calls no longer changed the header. Each engine now gets its own wrapper, on a copy of the definition options, so each request forwards its own address.#8698
0a95379- DeprecategetAccessToken()andsetAccessToken()on the@coveo/headless/ssrengine definition, as on@coveo/headless/ssr-commerce. To renew an expiring token, configurerenewAccessToken; to change the token of an engine you already have, dispatchupdateBasicConfiguration({accessToken})fromloadConfigurationActions(engine).#8695
480c745- Correct the deprecation notice ofControllerDefinitionOption, which types thelistingandsearchoptions of seven@coveo/headless/ssr-commercedefiners such asdefinePagination. It said the interface was no longer used; it now says these options will be removed in the next major version, and to omit them so the controller is built for both search and product listing pages. The documentation of the seven definers now says the same, because editors don't show the interface's notice where these options are passed.#8702
a292905- Fix three misleading deprecation notices on the SSR commerce sub-packages.FetchStaticStateOptionsno longer points toBuildConfig, which@coveo/headless/ssr-commercedoesn't export.defineCartnow names the cart controller. ThenavigatorContextprop of the@coveo/headless-react/ssr-commerceproviders no longer says to set the navigator context when fetching the static state.#8694
2f1cde8- Stop the SSR "Missing navigator context" warning from recommending the deprecatedsetNavigatorContextProvider. On@coveo/headless/ssr-commerce, it now says to passnavigatorContexttofetchStaticState()andhydrateStaticState(). On@coveo/headless/ssr, it says to pass anavigatorContextProvidertodefineSearchEngine(), which thesetNavigatorContextProviderdeprecation notice now recommends too, instead of anavigatorContextoption thatfetchStaticState()doesn't accept.v3.57.3Compare Source
Patch Changes
ef62433- Exclude the selected value from commerce category facet search results by sending its path inignorePaths.v3.57.2Compare Source
Patch Changes
2535634]:v3.57.1Compare Source
Patch Changes
#8500
cf041b2- Clarify in thesetNavigatorContextProviderdeprecation notice that it mutates the shared engine definition and is therefore unsafe under server concurrency, and point to passingnavigatorContextper request when fetching the static state.#8516
3c4e3d2- Fix an issue in commerce where a manually set numeric facet range persisted and was still sent in subsequent queries after clearing filters (e.g. via a search box submission), even though it had been removed from the URL parameters.v3.57.0Compare Source
Minor Changes
#8494
3ed8932- feat(headless): support a per-request access token in SSR commercefetchStaticState()andhydrateStaticState()The
@coveo/headless/ssr-commerceengine definition now accepts an optionalaccessTokenwhenfetching the static state, hydrating it, or calling
build(). It overrides the definition'sconfigured token for that call only, without mutating the shared definition — the supported way to
use per-user search tokens in a multi-tenant server process. When omitted, the definition's
configured token is used.
Pass the same token to
hydrateStaticState()that was used forfetchStaticState()so the hydratedengine keeps querying with the same permissions. The hydrated engine outlives the call, so it stays
subscribed to
setAccessToken()updates; the request-scoped engine built byfetchStaticState()does not, which keeps a per-request token safe from concurrent updates on the shared definition.
#8495
a01e1f3- feat(headless): support a per-request navigator context in SSR commercefetchStaticState()andhydrateStaticState()The
@coveo/headless/ssr-commerceengine definition now accepts an optionalnavigatorContextwhenfetching the static state, hydrating it, or calling
build(). It is applied to that call only,without mutating the shared definition. When omitted, the provider set with
setNavigatorContextProvideris used.This also removes the shared-options mutation on the static-state path, which caused a more serious
problem than a race.
fetchStaticState()used to assign the forwarded-for wrapper onto the sharedconfiguration.preprocessRequest, and that wrapper resolves its navigator context from the optionsobject it captured. Because the augmentation short-circuits on an already-wrapped function, the
wrapper created by the first request was reused for the lifetime of the process — so every subsequent
request sent the first request's
x-forwarded-forvalue, regardless of any latersetNavigatorContextProvider()call. The augmentation now happens per request, on a copy, so eachrequest forwards its own address.
#8504
9e88f88- BREAKING (open alpha)@coveo/headless/ssr-commerce-next: removedgetAccessToken()andsetAccessToken()from the commerce engine definitions, along with the shared access-token managerbehind them.
The access token is now configured the same way as
navigatorContext: per request, through the buildconfig, with no setter on the shared definition. This removes a class of concurrency bug — the shared
token manager pushed updates into engines that had already been built with their own per-request
token, so a queued or concurrent
setAccessToken()could silently replace one request's token.Migrate as follows:
accessTokentofetchStaticState(). It is returned withthe static state, so passing that static state to
hydrateStaticState()carries the token to theclient automatically.
renewAccessTokenonthe engine configuration. The engine renews proactively before a request and reactively on an
unauthorized response.
@coveo/headless/ssr-commerceis unchanged:getAccessToken()andsetAccessToken()still workthere but are now deprecated, with the same migration path.
#8505
c3d3669-@coveo/headless/ssr-next: added an optional per-requestaccessTokento the searchBuildConfig,so
fetchStaticState()andhydrateStaticState()can use a per-user search token without mutatingthe shared engine definition. When omitted, the definition's configured token is used.
BREAKING (open alpha) removed
getAccessToken()andsetAccessToken()from the search enginedefinitions, along with the shared access-token manager behind them.
The access token is now configured like
navigatorContext: per request, through the build config,with no setter on the shared definition.
setAccessToken()wrote to the module-level definition thatevery request reads, so two overlapping requests could cross tokens and one user could issue requests
under another user's permissions.
Migrate as follows:
accessTokentofetchStaticState(). It is returned withthe static state, so passing that static state to
hydrateStaticState()carries the token to theclient automatically.
renewAccessTokenonthe engine configuration. The engine renews proactively before a request and reactively on an
unauthorized response.
This brings the search engine definition in line with the commerce one.
v3.56.0Compare Source
Minor Changes
#8481
01434bc- feat(headless): support a per-request access token in SSR commercefetchStaticState()fetchStaticState()(andhydrateStaticState()) in/ssr-commerce-nextnow accept an optionalaccessTokenin their build config. When provided, it overrides the engine definition's configuredaccess token for that request only, without mutating the shared definition — the supported way to
use per-user Coveo search tokens in a multi-tenant server process. When omitted, the definition's
configured token is used, so the change is fully backward compatible.
Patch Changes
#8480
818bdf0- fix(headless): bound the memoized relay-instance selector to prevent unbounded growthgetRelayInstanceFromStateused reselect's defaultweakMapMemoize, which never evictsprimitive cache keys. Because the selector is keyed by
accessToken(a string), servers usingper-user search tokens accumulated one cache entry per distinct token for the lifetime of the
process. The selector now uses a bounded
lruMemoizecache, keeping the memoization benefit whilecapping retention. The change is internal — no public API changes.
#8464
e8c6ee4- Fixed an issue in the insight panel where callingfetchMoreResultsmore than once re-fetched the same batch of results instead of fetching the next one.Fixed the insight panel's fetchMoreResults analytics logging, which was silently dropped because an action factory was passed instead of a dispatchable analytics action.
#8479
fa2e9de- Fix a memory leak in the SSR access-token manager. The manager held token-update callbacks in aplain
Set, and because the manager lives at module scope for the whole process, every enginebuilt through
buildFactory(fetchStaticState,hydrateStaticState, andbuild()) was retainedfor the process lifetime — an unbounded, per-request leak of the Redux store, logger, relay
instance, and API client.
The registry is now weak: callbacks are held through
WeakRefand anchored to their owner enginevia a
WeakMap, and aFinalizationRegistryprunes dead entries. The garbage collector nowreleases a subscription once its engine is unreachable, which fixes every path in both the commerce
and search trees, with no behavior change for engines that are still alive (a hydrated browser
engine keeps receiving token updates).
Configuration
📅 Schedule: (in timezone America/Toronto)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate CLI.