products: hide appearances on benches absent from this deployment (prod product pages link 3 to 7 dev-only bench/compare URLs that 404) - #2501
Open
Flotapponnier wants to merge 1 commit into
Conversation
…xist in this deployment (the blob is built from dev; on prod every product page linked 3 to 7 dev-only bench and compare URLs that 404) The worker builds providers.json from the `dev` checkout, so on production the index credited appearances on benches whose spec is not on `main` (terminal-fill-quality, trading-app-daily-volume, bridge-execution-latency, bridge-realized-cost, bridge-quote-latency- solana, ...). /products/gmgn linked 4 dead URLs, /products/mobula 3, and the pairs that exist only through those benches (banana-gun-vs-gmgn, bonkbot-vs-gmgn) 404 as well. Search Console lists 271 404s; the audit of 2026-09-19 (products scope) flagged 14 of 16 sampled product pages. getProviders() now confines the index to this deployment's spec set (loadSpecsUncached, minus DEV_ONLY_BENCH_SLUGS and REMOVED_BENCH_SLUGS): appearances on absent benches are dropped, wins and chainWins are reduced by what those appearances contributed (same rule as buildProvidersFromBenches: per chain led when the bench has chain dimensions, else the aggregate #1), categories recomputed, and a profile with nothing left disappears (so its compare pairs are not linked). On dev every bench exists: no-op. Falls open if the spec directory cannot be read. Verified on a local render of this branch against the live blob: /products/gmgn lists 7 benches (was 9, the 2 dev-only ones gone) and 12 compare links, none to banana-gun or bonkbot; /products/mobula 8 benches, the 3 bridge dev-only ones gone. tsc and eslint clean. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HJgbZCqjR4nvCfcJSzofbw
Flotapponnier
added a commit
that referenced
this pull request
Sep 19, 2026
…xist in this deployment (dev counterpart of #2501; no-op here, keeps the branches aligned) (#2502) Claude-Session: https://claude.ai/code/session_01HJgbZCqjR4nvCfcJSzofbw Co-authored-by: Flotapponnier <florent@mobula.io> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Not merged on purpose: main deploy, Florent's call.
providers.json is built by the worker from
dev, so on prod the product pages credit appearances on benches whose spec is not onmainand link them:/products/gmgn→ terminal-fill-quality, trading-app-daily-volume, banana-gun-vs-gmgn, bonkbot-vs-gmgn (all 404);/products/mobula→ 3 bridge dev-only benches. The 2026-09-19 products audit flagged 14/16 sampled pages; Search Console shows 271 404s.getProviders()now keeps only appearances whose bench is in this deployment's spec set (minusDEV_ONLY_BENCH_SLUGS/REMOVED_BENCH_SLUGS), subtracts the wins those appearances carried (same rule as the builder), recomputes categories, drops empty profiles. No-op on dev. Falls open if specs cannot be read.Local render of this branch against the live blob: gmgn 9 → 7 benches, no banana-gun/bonkbot pairs; mobula 3 bridge links gone. tsc + eslint clean.
Same change goes to dev separately (#next) so the branches stay aligned.
🤖 Generated with Claude Code
https://claude.ai/code/session_01HJgbZCqjR4nvCfcJSzofbw