From b58a5f8d21ac718b33a6df15516ef43aa96b6197 Mon Sep 17 00:00:00 2001 From: Florent Tapponnier Date: Fri, 10 Jul 2026 22:36:59 +0200 Subject: [PATCH] mev-protect-rpc: gate via REMOVED_BENCH_SLUGS (the house staging mechanism), redirect aligned, bench-set cache bumped --- src/app/products/[slug]/page.tsx | 8 ++++---- src/lib/removed-benches.ts | 1 + src/lib/spec.ts | 6 +++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/app/products/[slug]/page.tsx b/src/app/products/[slug]/page.tsx index 1ce586d2..87c6d1a5 100644 --- a/src/app/products/[slug]/page.tsx +++ b/src/app/products/[slug]/page.tsx @@ -69,11 +69,11 @@ export async function generateMetadata({ // crawlers that peek at the response before the 308 fires still see the // right canonical target. // Merkle rebranded to Blink Labs and went keyed-only; the provider was - // fully delisted 2026-07-10 from the keyless RPC benches. 308 to the - // Blink Labs product page (bench 074 lists them under the new name) so - // the old URL's link equity lands on the successor. + // fully delisted 2026-07-10 so this page has no data left. 308 to the + // capabilities bench for now; flip to /products/blinklabs in the same PR + // that removes mev-protect-rpc from REMOVED_BENCH_SLUGS. if (slug === "merkle") { - permanentRedirect("/products/blinklabs"); + permanentRedirect("/benchmarks/rpc-capabilities"); } if (await isHlBuilderWithHistory(slug)) { const canonicalUrl = `${SITE.url}/hyperliquid/${slug}`; diff --git a/src/lib/removed-benches.ts b/src/lib/removed-benches.ts index 32de4dca..84bca2c9 100644 --- a/src/lib/removed-benches.ts +++ b/src/lib/removed-benches.ts @@ -37,6 +37,7 @@ export const REMOVED_BENCH_SLUGS = new Set([ "monad-rpc", "megaeth-rpc", "rpc-keyed-latency", + "mev-protect-rpc", "explorer-chain-coverage", "portfolio-chain-coverage", ]); diff --git a/src/lib/spec.ts b/src/lib/spec.ts index d2a59e88..c68633d0 100644 --- a/src/lib/spec.ts +++ b/src/lib/spec.ts @@ -267,7 +267,7 @@ const loadBenchmarkUnfilteredCached = unstable_cache( // level on VERCEL_ENV=production). Bench SET now differs per env, so // the env is part of the cache key to keep prod and preview entries // from colliding. - ["bench-unfiltered-v23", process.env.VERCEL_ENV === "production" ? "prod" : "all"], + ["bench-unfiltered-v24", process.env.VERCEL_ENV === "production" ? "prod" : "all"], { revalidate: 300, tags: ["benchmarks"] }, ); @@ -416,7 +416,7 @@ const loadAllBenchmarksCached = unstable_cache( // 055-066; sitemap/citable/products must pick up the new slugs). // v25: bumped with bench-unfiltered-v21 (+bench 067 portfolio-chain-coverage). // v26: bumped with bench-unfiltered-v22 (+bench 068 explorer-chain-coverage). - // v27: bumped with bench-unfiltered-v23 (prod-only bench gate); env in key. + // v27: bumped with bench-unfiltered-v24 (prod-only bench gate); env in key. ["all-benchmarks-v27", process.env.VERCEL_ENV === "production" ? "prod" : "all"], { revalidate: 300, tags: ["benchmarks"] }, ); @@ -492,7 +492,7 @@ const loadBenchmarkFiltered = unstable_cache( // 055-066). // v13: bumped with bench-unfiltered-v21 (+bench 067 portfolio-chain-coverage). // v14: bumped with bench-unfiltered-v22 (+bench 068 explorer-chain-coverage). - // v15: bumped with bench-unfiltered-v23 (prod-only bench gate); env in key. + // v15: bumped with bench-unfiltered-v24 (prod-only bench gate); env in key. ["bench-filters-v15", process.env.VERCEL_ENV === "production" ? "prod" : "all"], { revalidate: 300, tags: ["benchmarks"] } );