Thermograph monorepo: graded-climate API + SSR frontend + infra, domain-specific containerized deploys
Find a file
Emi Griffith 3dc0a0cf5b Notifier: fetch a subscribed cell's archive once when it's missing (#94)
A subscription to a city that had never been viewed had no cached ~45-year
archive, so the evaluator skipped it and it never fired. Now when a subscribed
cell has no cached archive, the pass fetches it once via get_history (which caches
it); every later pass reads it from cache and never re-fetches. A per-pass budget
(THERMOGRAPH_NOTIFY_ARCHIVE_FETCHES, default 4) caps how many missing archives one
pass will fetch so a burst of new subscriptions can't exhaust the archive quota,
and a rate-limited fetch just retries on the next pass. The recent/forecast bundle
keeps refreshing on its own hourly cadence.

Add integration tests covering fetch-when-missing and never-refetch-when-cached.
2026-07-15 22:18:19 +00:00
tests Notifier: fetch a subscribed cell's archive once when it's missing (#94) 2026-07-15 22:18:19 +00:00
api_accounts.py Account system with weather-notification subscriptions (#89) 2026-07-15 18:46:46 +00:00
app.py Serve the app on thermograph.org at root; redirect emigriffith.dev/thermograph (#91) 2026-07-15 19:58:32 +00:00
audit.py Initial commit: app + 2026-07-10 17:29:47 -07:00
climate.py Migrate backend dataframe layer from pandas to polars (#90) 2026-07-15 19:07:38 +00:00
db.py Fix mobile alerts dropdown overflow; add account API tests (#93) 2026-07-15 22:00:47 +00:00
grading.py Migrate backend dataframe layer from pandas to polars (#90) 2026-07-15 19:07:38 +00:00
grid.py Warm neighbor cells server-side (/cell?neighbors=1) (#51) 2026-07-11 20:47:31 +00:00
migrate.py Migrate backend dataframe layer from pandas to polars (#90) 2026-07-15 19:07:38 +00:00
models.py Account system with weather-notification subscriptions (#89) 2026-07-15 18:46:46 +00:00
notify.py Notifier: fetch a subscribed cell's archive once when it's missing (#94) 2026-07-15 22:18:19 +00:00
places.py Move the suggestion policy into places.py (#45) 2026-07-11 20:00:24 +00:00
requirements-dev.txt Add backend test suite; gate direct pushes; serialize LAN deploys (#41) 2026-07-11 19:37:49 +00:00
requirements.txt Migrate backend dataframe layer from pandas to polars (#90) 2026-07-15 19:07:38 +00:00
schemas.py Account system with weather-notification subscriptions (#89) 2026-07-15 18:46:46 +00:00
store.py Compare/calendar mobile polish: overflow fix, sheet load button, 6-yr default, country in names (#80) 2026-07-12 06:32:10 +00:00
users.py Account system with weather-notification subscriptions (#89) 2026-07-15 18:46:46 +00:00
views.py Migrate backend dataframe layer from pandas to polars (#90) 2026-07-15 19:07:38 +00:00