Commit Graph

  • 32399f1899 feat: recalibrate P.77/P.75 thresholds; capacity guard on alerts master grabowski 2026-09-12 00:34:59 +02:00
  • f4d42c90f4 fix: ntfy listens on the Tailscale address; monitor publishes to it directly grabowski 2026-09-12 00:28:29 +02:00
  • 039d24a5c3 fix: init ntfy only in the collection leader grabowski 2026-09-12 00:22:03 +02:00
  • 777b230baf feat: public flood notifications over self-hosted ntfy grabowski 2026-09-12 00:18:38 +02:00
  • 0ec675e9c5 ci: license report from a clean venv, not the runner's site-packages grabowski 2026-09-11 23:54:44 +02:00
  • 7b31d4d0dd feat: "Is the model getting better?" - live verification per model version grabowski 2026-09-11 23:44:44 +02:00
  • 2e19974fad docs: README describes the project that exists; CLAUDE.md for agents grabowski 2026-09-11 23:44:43 +02:00
  • b03318210c security: pip-audit + bandit gates that can fail; patch 29 known CVEs grabowski 2026-09-11 23:44:43 +02:00
  • 97a6694ab2 feat(dashboard): light/dark theme grabowski 2026-09-11 23:16:30 +02:00
  • 5ad8e4eac3 ci: green pipelines that check what exists; one formatting contract grabowski 2026-09-11 23:05:37 +02:00
  • 6f4a86edbb fix(dashboard): timestamps are Asia/Bangkok everywhere; stale feed says so grabowski 2026-09-11 23:00:39 +02:00
  • ce08312c0f docs: public dashboard URL (water.buildfor.life) replaces the Tailscale IP everywhere grabowski 2026-09-11 22:38:13 +02:00
  • d621aa9ce7 eval: quantile heads and fc48 on top of hgb-v3 (rejected/deferred); HII gauge-rain aggregate grabowski 2026-09-11 21:55:37 +02:00
  • 764764e07e feat: refuse silent v3->v2 downgrade; monthly retrain timer with staged promote grabowski 2026-09-11 21:37:11 +02:00
  • 0a4bf843ff chore: remove empty shell-accident files committed at repo root grabowski 2026-09-11 20:54:48 +02:00
  • f6570ac10f chore: declutter the repo grabowski 2026-08-14 13:42:08 +07:00
  • 7e64e0cf18 fix: one current river level, not two grabowski 2026-08-14 09:25:39 +07:00
  • 382daa7d86 perf: backfill one dam per request via the api/dam range endpoint grabowski 2026-08-13 23:10:36 +07:00
  • b02e815d72 feat: Thai localisation and portrait-phone layout for the dashboard grabowski 2026-08-13 23:10:34 +07:00
  • 5dc5850df6 docs: source sweep — P.75 already is the Mae Ngat release signal grabowski 2026-08-13 21:58:47 +07:00
  • 70e4da07a0 docs: lsim.rid.go.th is unreachable, not geo-blocked grabowski 2026-08-13 21:00:24 +07:00
  • 28b62e5a36 feat: Mae Ngat dam features — built, evaluated, defaulted OFF grabowski 2026-08-13 20:42:21 +07:00
  • 6af6fbe02c fix: survive junk RID dam values — widen storage_pct, bound inserts grabowski 2026-08-13 10:50:58 +07:00
  • ba781465a9 feat: in-memory HII gap-fill in the ML data loader grabowski 2026-08-13 10:29:54 +07:00
  • 6eafb353b1 feat: RID large-dam daily collector — Mae Ngat storage/inflow/outflow grabowski 2026-08-13 10:29:34 +07:00
  • 811af1625b feat: dashboard shows the live model version; DB stats count openmeteo_rain grabowski 2026-08-12 17:35:23 +07:00
  • 160617e87b feat: openmeteo_rain 2021+ backfill entry point grabowski 2026-08-12 17:28:44 +07:00
  • df0ae8cda3 feat: hgb-v3 — Open-Meteo rain features clear the 12h warning gate grabowski 2026-08-12 17:05:01 +07:00
  • cbb3bf7369 feat: Open-Meteo catchment rainfall series + rain features + harness variant grabowski 2026-08-12 16:39:36 +07:00
  • 21e9d2e114 feat: hgb-v2 — regression heads predict rise, recovering flood warning lead grabowski 2026-08-12 15:43:29 +07:00
  • a0086086a2 feat: rolling-origin event-aware evaluation harness for model variants grabowski 2026-08-12 15:19:26 +07:00
  • 98023243af feat: forecast precompute + issued-forecast archive + dashboard overlay grabowski 2026-08-12 14:13:39 +07:00
  • 731f10910e perf: stale-while-revalidate caching, bigger executor, cheap DB health probe grabowski 2026-08-12 12:32:38 +07:00
  • 96fedb3991 perf: single-flight /api/stats; fast-fail health probe grabowski 2026-08-12 11:55:49 +07:00
  • 0b14e394ad perf: Cache-Control headers so browsers and edge caches absorb traffic grabowski 2026-08-12 11:51:43 +07:00
  • d9c65bcf0c perf: inline cache fast path; cache /health checks grabowski 2026-08-12 11:48:05 +07:00
  • 1ec5cfb4df perf: gzip responses; multi-worker serving with single collection leader grabowski 2026-08-12 11:34:12 +07:00
  • 039af8caac perf: cache /measurements/latest; stale-on-error fallback for cached endpoints grabowski 2026-08-12 11:05:02 +07:00
  • d27ca8bf40 perf: 120s TTL cache with single-flight on /api/hii/*/latest grabowski 2026-08-12 10:58:19 +07:00
  • 0005f7dce1 feat: codified backtests, honest docs, belt-and-braces serving, perf fixes grabowski 2026-08-12 10:46:00 +07:00
  • d2d0e655aa fix: All-time range fills the date pickers with the DB's first record date grabowski 2026-08-11 17:02:31 +07:00
  • b89c7e1915 feat: flood-verdict banner, violet rain palette, per-station bands, chip contrast, Umami grabowski 2026-08-11 16:56:53 +07:00
  • 5848621c77 fix: UI/UX review round 1 — mobile reachability, legend toggle, replay correctness grabowski 2026-08-11 16:39:53 +07:00
  • 09c1c84153 feat: search-engine indexing — robots.txt, sitemap.xml, llms.txt, SEO meta grabowski 2026-08-11 16:33:44 +07:00
  • bd3353e2dc feat: buildfor.life link in dashboard footer grabowski 2026-08-11 16:30:25 +07:00
  • d0018d6529 feat: physically meaningful stat tiles + footer links grabowski 2026-08-11 16:25:41 +07:00
  • df31de092b fix: collapse additional-stations list by default; no scroll-jump on station click grabowski 2026-08-11 16:15:34 +07:00
  • e27d418a1a feat: station search in side panel; DB stats cover HII tables grabowski 2026-08-11 16:06:39 +07:00
  • ba4710b243 feat: 'Last N' labels on history ranges; dropdown mirrors into date pickers grabowski 2026-08-11 15:58:28 +07:00
  • 9516857d44 feat: date-range picker on the station history panel; drop PostgreSQL naming grabowski 2026-08-11 15:52:40 +07:00
  • d29d49eac7 feat: collapsible flood outlook (P.1 only by default) + dashboard fixes grabowski 2026-08-11 15:48:20 +07:00
  • 4f3f19f6db feat: rainfall + HII water-level layers on the dashboard grabowski 2026-08-11 15:26:58 +07:00
  • d72496f404 feat: backfill hii_waterlevel from the HII waterlevel_graph archive grabowski 2026-08-11 15:11:08 +07:00
  • 33d8baa8dd fix: composite (station_id, timestamp) PK on hii_* measurement tables grabowski 2026-08-11 14:50:27 +07:00
  • 1845ef7203 feat: hourly HII/ThaiWater rainfall + backup water-level collection grabowski 2026-08-11 14:44:53 +07:00
  • 7befc82ff5 feat: database stats on the dashboard via GET /api/stats grabowski 2026-08-10 23:27:36 +07:00
  • 5e62ea529d feat: --fill-gaps all repairs missing data across the whole DB range grabowski 2026-08-10 22:13:58 +07:00
  • 410faeddd5 fix: protect admin API endpoints; stop rejecting flood-peak measurements grabowski 2026-08-10 18:47:08 +07:00
  • 27fa292e09 docs: September 2025 flood render - deployed config, 24 h warning, peak within 7 cm grabowski 2026-08-10 18:35:55 +07:00
  • f0183faa62 feat: discharge-driven river animation speed, replay stat tiles, hourly doc render grabowski 2026-08-10 18:29:01 +07:00
  • 6112c681a7 docs: render of actual vs predicted through the 2024 flood; adaptive replay speed grabowski 2026-08-10 18:10:48 +07:00
  • 199b0e3483 feat: replay shows when the model would have detected and warned grabowski 2026-08-10 18:07:57 +07:00
  • d015420b66 feat: full-basin 2024 flood replay with clock and demo indicator grabowski 2026-08-10 17:59:06 +07:00
  • 0b885e572d chore: gitignore .playwright-mcp browser artifacts grabowski 2026-08-10 17:45:21 +07:00
  • 0672ea5ffa feat: Oct-2024 flood replay, simulation hooks, and static replay data grabowski 2026-08-10 17:44:36 +07:00
  • c62a03e778 feat: flooded zones render as water and auto-surface grabowski 2026-08-10 17:22:27 +07:00
  • 711629682d feat: per-marker icon field for custom markers grabowski 2026-08-10 17:20:12 +07:00
  • 7e7d244efa feat: add baan boe marker grabowski 2026-08-10 17:19:31 +07:00
  • 786b8514ea feat: custom map markers with per-location flood-zone risk grabowski 2026-08-10 17:16:28 +07:00
  • a17509f3ea feat: replace digitized flood zones with owner-traced polygons grabowski 2026-08-10 17:12:23 +07:00
  • 4f12360960 fix: shift flood zones 1.05 km south, anchored to Nawarat Bridge grabowski 2026-08-10 16:47:14 +07:00
  • c4e0fb6bae fix: re-georeference flood zones and make them clearly visible grabowski 2026-08-10 16:38:09 +07:00
  • f05289e628 fix: CI matrix to Python 3.11 only until pandas is upgraded grabowski 2026-08-10 16:15:32 +07:00
  • 3b919adc56 feat: vector flood-zone polygons replace the scanned-map overlay grabowski 2026-08-10 16:14:34 +07:00
  • 6c0bb024a8 chore: remove stray zero-byte files accidentally committed grabowski 2026-08-10 15:57:19 +07:00
  • ecd34177bb fix: backtest/review findings in the flood-ML package grabowski 2026-08-10 15:57:01 +07:00
  • 9cac9c4d2a style: apply black/isort across the repo; make CI mypy advisory grabowski 2026-08-10 15:57:00 +07:00
  • 300c0e0b6f fix: trigger CI on master (repo default branch), drop unsupported Python matrix entries grabowski 2026-08-10 15:46:24 +07:00
  • e4d5d274f0 feat: per-station flood thresholds and Chiang Mai inundation stages for P.1 grabowski 2026-08-10 15:35:00 +07:00
  • 29f4b5818d fix: require Python >=3.11 and lock scikit-learn deps for uv grabowski 2026-08-10 14:44:54 +07:00
  • 4358d52d55 feat: ML flood-event forecasting from 8 years of gauge history grabowski 2026-08-10 12:49:47 +07:00
  • 49a3de0087 fix: restore station telemetry and make river flow visualization data-driven grabowski 2026-08-10 10:30:05 +07:00
  • af1909db73 fix: restore history chart initialization after flood bands change grabowski 2026-08-10 09:46:34 +07:00
  • 76c934e475 feat: add _calculate_discharge to estimate from water level when DB discharge is NULL grabowski 2026-08-09 18:09:27 +07:00
  • 32e455783a fix: harden loadHistory against race conditions and canvas reuse grabowski 2026-08-09 18:03:41 +07:00
  • b3ea340bbd fix: fix chart reuse error and harden flood-bands plugin grabowski 2026-08-09 17:56:30 +07:00
  • ba0348b580 feat: add flood-zone bands (normal/warning/danger) to history chart grabowski 2026-08-09 17:54:11 +07:00
  • 21ca84444d perf: downsample history to daily averages and fix chart overflow grabowski 2026-08-09 17:48:31 +07:00
  • 9f26b32c86 fix: bump history limits to 100k so all-time shows full dataset grabowski 2026-08-09 17:41:14 +07:00
  • bbbf548d66 fix: align web API limit cap with 10k and clean up postgres_history imports grabowski 2026-08-09 17:36:58 +07:00
  • ef106fce8d fix: include year in history chart labels grabowski 2026-08-09 17:21:20 +07:00
  • 33f2dd45f4 fix: render history chart timestamps in ICT (Asia/Bangkok) grabowski 2026-08-09 17:19:28 +07:00
  • 2fe1dcf4da feat: add 5-minute TTL cache for PostgreSQL history queries grabowski 2026-08-09 17:15:47 +07:00
  • c00a26402a fix: update test limit boundary to match new 10k ceiling grabowski 2026-08-09 17:13:51 +07:00
  • abfac1d3bb fix: correct all-time hours value and update backend limit grabowski 2026-08-09 17:12:22 +07:00
  • 6f2a8a0d8f feat: add all-time history option and increase limit to 10k grabowski 2026-08-09 17:11:26 +07:00
  • 9ef7798e00 feat: load history when clicking station markers on map grabowski 2026-08-09 17:04:21 +07:00
  • ae5d0a13d7 [verified] feat: add live river dashboard grabowski 2026-08-09 16:59:25 +07:00
  • e5936d5717 Move dashboard HTML out of web_api into a static file grabowski 2026-07-22 14:28:34 +07:00
  • 08dc536c93 Add unit tests for RID API response parsing grabowski 2026-07-22 14:24:28 +07:00