feat: enrich servers with CPU cores, threads, generation, and benchmark scores (#256)
* feat: enrich servers with CPU cores, threads, generation, and benchmark scores
Add CPU enrichment from Geekbench data for both auction and standard servers.
Enables filtering by core/thread count, sorting by CPU score, and displays
CPU details (cores/threads, architecture family, GB6 score) on server cards
and detail drawer.
- Add generate_cpu_specs.py to fetch and match Geekbench data
- Enrich auction servers in update_incremental.py via cpu-specs.json
- Enrich in CF Worker via AuctionDataTransformer.lookupCpuSpecs()
- D1 migration for cpu_cores, cpu_threads, cpu_generation, cpu_score columns
- Add cores/threads range sliders to filter UI
- Add CPU Score sort option
- Add CPU row to ServerFactSheet (both layouts)
- Add cpuCores/cpuThreads alert matching in MATCH_ALERTS_SQL
- Weekly GHA workflow to update cpu-specs.json from Geekbench
* fix: resolve CI failures for CPU enrichment
- Copy cpu-specs.json into worker/src/ instead of symlinking through
gitignored data/ directory
- Fix prettier formatting
* fix: resolve flaky Playwright tests
- landing.spec.ts: update text matchers to match current page content
("Dedicated Servers" not "Dedicated Server Auctions",
"check cloud availability" not "check cloud server availability")
- server-interactions.spec.ts: remove non-existent table lookup in
drawer, wait for loading state instead of arbitrary timeout
- advanced-filtering.spec.ts: replace networkidle + waitForTimeout with
waitForFilterUpdate helper that polls until count stabilizes
- fixtures.ts: add waitForFilterUpdate helper for reliable DuckDB waits