rates/frontend
jtricerolph cab1a39503 Auto-recheck parity after scrape + manual Recheck button + faster badge
Parity logic:
- Extract _fetch_latest_alerts() and _upsert_alerts() helpers so the alert
  upsert loop is no longer duplicated between the daily job and per-date runs
- Add run_parity_check_for_date(date) which runs the full comparison +
  alert upsert for a single date

Scraper integration:
- _safe_parity_recheck(date) wrapper (never raises) called after each
  successful date in both search-results and hotel-page workers; hotel-page
  mode waits until all hotels for the date are done before rechecking

API:
- POST /competitors/parity/check-date?rate_date=YYYY-MM-DD for manual recheck

Frontend:
- Recheck button on every parity alert row (all statuses); invalidates
  alerts list and badge count on success
- parity-alert-count badge polls every 15s (was 60s) so new alerts from
  the scheduled job or post-scrape rechecks appear quickly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-15 09:33:33 +00:00
..
public/icons Replace letter icons with Lucide PWA icons 2026-07-11 20:30:12 +00:00
src Auto-recheck parity after scrape + manual Recheck button + faster badge 2026-07-15 09:33:33 +00:00
Dockerfile
index.html
nginx.conf Add bare /health location to nginx for management monitor compatibility 2026-07-13 17:07:35 +00:00
package-lock.json Make rates installable as a PWA 2026-07-11 11:27:00 +00:00
package.json Make rates installable as a PWA 2026-07-11 11:27:00 +00:00
tsconfig.json
vite.config.ts Replace letter icons with Lucide PWA icons 2026-07-11 20:30:12 +00:00