-
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