fastapi==0.115.6 uvicorn[standard]==0.34.0 httpx==0.28.1 polars==1.42.1 numpy==2.2.1 # Accounts + notification subscriptions (see accounts/db.py, users.py, notify.py). # Postgres in prod/containers: asyncpg (async web/store) + psycopg (sync notifier); # aiosqlite is kept for the SQLite fallback the test suite runs on. alembic manages # the accounts schema. fastapi-users[sqlalchemy]==15.0.5 aiosqlite==0.22.1 asyncpg==0.30.0 psycopg[binary]==3.2.3 alembic==1.14.0 # Web Push (VAPID) delivery of notifications (see backend/push.py). Pulls in # py-vapid, cryptography, and http-ece. pywebpush==2.0.0 # Ed25519 verification of Discord interaction webhooks (see backend/discord_interactions.py). PyNaCl==1.5.0 # Not used by backend itself (its own content.py/content_loader.py were # deleted in repo-split Stage 4) -- installed here because frontend_ssr/ # shares this requirements.txt in the current shared Dockerfile. See # frontend_ssr/content.py (server-rendered SEO content pages). jinja2==3.1.6 # Structured SSR copy (glossary, static-page SEO meta) — see # frontend_ssr/content_loader.py and content/. PyYAML==6.0.3 # Recurring worker-tier jobs — city warming, IndexNow pings (see # notifications/scheduler.py). In-process; no broker/queue needed at this scale. apscheduler==3.11.3