Review fixes: Trigger Radar coverage, find-proxy hardening, screener perf, feed 404, font#1
Open
gorillachimps wants to merge 5 commits into
Open
Review fixes: Trigger Radar coverage, find-proxy hardening, screener perf, feed 404, font#1gorillachimps wants to merge 5 commits into
gorillachimps wants to merge 5 commits into
Conversation
The watcher fetched /api/markets?limit=500 (volume-ranked), so an alert armed from a market-detail page on a market outside the top 500 silently never fired while the button still showed Alerting. Now fetches exactly the armed markets via a new /api/markets?ids= branch (getMarketsByIds) -- any snapshot market is covered and the app-wide 60s top-500 refetch is gone. Also reconcile the persisted fired-set against removed alerts so it stays bounded and re-armed alerts can fire again. Findings H1, M3, L3. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The per-IP limit keyed on the leftmost X-Forwarded-For entry, which is client-controlled and trivially spoofable to dodge the Etherscan-quota guard. Prefer x-real-ip (Vercel-set), fall back to the closest-trusted XFF hop. Also bound the hits map (prune expired windows + cap) so a churn of distinct IPs cannot grow it unbounded on a warm instance. Findings M2, L4. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
useLiveMidMap called setMids on every WS book/price-change message, forcing a full screener re-render + react-table re-sort per message; and never pruned mids for tokens that rotated out of the subscribed set (stale frozen values + unbounded Map growth). Stage mid changes and flush once per ~800ms (one re-render per burst; live cadence unchanged -- verified mids still tick in-browser), and prune on subscription change. Memoize PmBar, the live cell. Findings H2, M4, M5, partial H3. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copy-this-fill and the title link pointed at /markets/[slug] for every followed-wallet trade, 404-ing whenever the wallet traded a non-crypto market absent from Auspex's snapshot, and the Copy button silently no-op'd. Resolve each trade's token via useMarketLookup: crypto markets keep the in-app link + Copy; everything else links out to Polymarket. Also let the row wrap on mobile so the title is not crushed. Findings M1, M10, L1, L15. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
next/font/google was disabled to avoid a build-time network fetch, so the ss01/cv11/tabular-nums type system silently fell back to system-ui in production. Adopt the geist package (local next/font assets, no build-time network) and wire GeistSans/GeistMono .variable onto <html>; globals.css already consumes --font-geist-sans/-mono. Verified rendering as GeistSans in-browser. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
Quick-win cluster from the 2026-06-01 review (full report:
REVIEW_2026-06-01.md). Read-only audit → fixes; no behavior change beyond the findings. tsc clean; verified againstnext dev+ browser. Not yet deployed./api/markets?ids=branch instead of the volume-ranked top-500 — alerts armed from a market-detail page on a low-volume market now actually fire (the button used to show "Alerting" and silently never fire). Drops the app-wide 60s top-500 refetch. Reconcile the fired-set against removed alerts (bounded + re-armable).x-real-ip(was the spoofable leftmostX-Forwarded-For); bound the hits map.setStateper WS message → full re-render + re-sort); prune rotated-out mids; memoize the live cell. Verified in-browser: mids still tick (53.95%→54.05% over 6s), zero console errors./markets/[slug]404); show Copy only where it works; row wraps on mobile.geistpackage (no build-time network) — thess01/cv11/tabular-numstype system was silently falling back to system-ui in prod. Verified rendering as GeistSans.🤖 Generated with Claude Code