Skip to content

unblock the deploy gate, drop the Blast link, rename XPLA to CONX - #2916

Merged
Flotapponnier merged 1 commit into
mainfrom
release/blast-xpla-sitemap
Oct 9, 2026
Merged

Flotapponnier merged 1 commit into
mainfrom
release/blast-xpla-sitemap

Conversation

@Flotapponnier

Copy link
Copy Markdown
Collaborator

Cherry-pick of #2915. This unblocks production: the sitemap smoke gate has been failing since #2914 and main is a commit ahead of what is deployed.

The four -cold slugs folded into their vendor left ten redirecting URLs in the sitemap (four 308 product pages, six /compare pairs built from them). The gate checks every sampled sitemap URL for a 200, found /products/quicknode-cold at 308 and rolled the prod alias back, correctly. Aliased profiles are now filtered out where the provider list is loaded, which fixes both the product routes and adHocPairs() from the alias table rather than from a store that still holds rows under the old slug.

Also: the Blast link goes (the site's own headline is "Blast is winding down"), and XPLA is renamed to CONX on every reader-facing surface after the rename proposal passed on 2025-11-10. The xpla slug and every PromQL query are untouched on purpose: that label is what the published columns are pinned to.

515 tests pass, tsc --noEmit and pnpm validate clean.

)

* the sitemap kept advertising the slugs it had just stopped serving

Folding the four `-cold` slugs into their vendor left ten redirecting URLs
in the sitemap: the four product pages, now 308, and the six /compare pairs
built out of them. The deploy smoke gate checks every sampled sitemap URL for
a 200, found /products/quicknode-cold at 308, and rolled the prod alias back.
It was right to.

getProviders() does fold aliases when it builds from bench rows, but a stale
store keeps rows under the old slug and so keeps the aliased profile alive
until the store refreshes. Two sections then trusted it: the product routes
treat a slug present in the profile list as canonical and skip the redirect
check entirely, and adHocPairs() builds compare pairs straight off the list.

Filtering the aliased profiles out once, where the list is loaded, fixes both
from the alias table instead of from whatever the store still holds. Any
future alias is covered the moment it is added, with no wait on the worker.

tsc --noEmit clean, 492 tests pass.

* drop the Blast link, and call XPLA by its name

Two corrections from the link audit.

Blast: blast.io is Blast's own domain and plainly Blast's page, but the
headline is "Blast is winding down" and the site now only offers bridging
back to Ethereum. Linking it as a live product sends a reader to an exit. The
url-only entry goes; the bench row is a separate question.

XPLA: a governance proposal to rename the token, its symbol and the brand
identity of the chain to CONX passed on 2025-11-10, and xpla.io now redirects
to conx.xyz, which names CONX throughout. So the chain is renamed on the
surfaces a reader sees: the chain label, its native symbol, its website, and
the bench's title, subtitle, intro and abstract.

The slug stays `xpla` deliberately, and so does every query. It is the
Prometheus label the bench is pinned to (chain="xpla"), it is the page URL,
and the endpoints are still named for it: dimension-rpc.xpla.dev,
xpla-rpc.publicnode.com, xpla-rpc.polkachu.com. Renaming the label would blank
the published columns and reset the page's search history to buy nothing. The
title keeps XPLA alongside CONX for the same reason, since that is what a
reader still searches for.

pnpm validate clean (title 46 chars, description 146). 492 tests pass.
@Flotapponnier
Flotapponnier merged commit 8a350cf into main Oct 9, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant