diff --git a/src/app/products/[slug]/page.tsx b/src/app/products/[slug]/page.tsx index 87c6d1a5..636b866b 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 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. + // fully delisted 2026-07-10 from the keyless RPC benches; bench 074 + // (mev-protect-rpc) lists them under the new name, so the old URL's + // link equity lands on the successor product page. if (slug === "merkle") { - permanentRedirect("/benchmarks/rpc-capabilities"); + permanentRedirect("/products/blinklabs"); } 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 84bca2c9..32de4dca 100644 --- a/src/lib/removed-benches.ts +++ b/src/lib/removed-benches.ts @@ -37,7 +37,6 @@ 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 c68633d0..a01ac056 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-v24", process.env.VERCEL_ENV === "production" ? "prod" : "all"], + ["bench-unfiltered-v25", 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-v24 (prod-only bench gate); env in key. + // v27: bumped with bench-unfiltered-v25 (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-v24 (prod-only bench gate); env in key. + // v15: bumped with bench-unfiltered-v25 (prod-only bench gate); env in key. ["bench-filters-v15", process.env.VERCEL_ENV === "production" ? "prod" : "all"], { revalidate: 300, tags: ["benchmarks"] } );