Commit History

Yesterday

  1. always-on episode merger (EPISODE_MERGER=1: scripts/merge_episodes.py --watch under a supervisor, /api/merger_status); optimistic finalize commit; reopen/finalize race fixes; scorecard never wiped on a read error Running

    Verified signature
    1dc634c
  2. event tick: keep a re-detected episode active; reopen an episode ended within EVENT_REOPEN_H instead of starting a new id

    Verified signature
    5d0d18f

6 days ago

  1. remove local Python 3.13 bytecode uploaded with the temp units guard

    Verified signature
    7d890ca
  2. temp forcing units guard: Kelvin members converted on read (with a status line), writers refuse non-degC, stale Kelvin clips purged once per basin store⁠

    Verified signature
    3c048a9

8 days ago

  1. Reject oversized or incomplete native basins before EF5 and preserve all upstream generation

    Verified signature
    3129022
  2. Treat missing or invalid baseflow thresholds as unavailable for episode continuation

    Verified signature
    35d2b71
  3. Bound queue status reads and guard complete hourly dispatch with progress diagnostics

    Verified signature
    6a1e1db

9 days ago

  1. Use observed upstream Q fallback or runoff-only forcing with v2 KW interflow

    Verified signature
    f8dc8a2
  2. Label historical event recovery as retrospective reconstruction

    Verified signature
    88efac7

15 days ago

  1. deploy CREST_AI 940d4a7: CREST-iMAP c5184759 + CRESTIMAP_SHA stamp

    Verified signature
    3f1dc17

20 days ago

  1. deploy CREST_AI 939800a

    Verified signature
    f2497b5

23 days ago

  1. caltrace: record calibration rounds for the review pilot

    Verified signature
    b692242

24 days ago

  1. Compute priority: health user_ops count (autocal idle gate input); nowcast-brief forced refresh cooldown (10 min)

    Verified signature
    d55630c

28 days ago

  1. NARR reader hardening + TEMP gap visibility (CREST_AI 08a219d)

    Verified signature
    dd54d43

29 days ago

  1. update_temp_narr: retry NARR download on HTTP 429/5xx with backoff

    Verified signature
    4bd9e79

30 days ago

  1. Health-check fix batch (CREST_AI 3dca271)

    Verified signature
    2ac66f1

  1. finalize_episodes: clip 'ended' to now; peak_obs from episode-window hydro rows only

    Verified signature
    789a74f

  1. CONUS state mosaic: full-basin runs warm-start from fleet pre-runs stitched across the gauge and its upstream gauges; full run is the default scheme again

    Verified signature
    6193b98
  2. Hindcast runs use the fleet's rows + states: value-based cache keys, merging fleet fetch, gap-safe cache plan, fleet state carried past the fleet period, speed scheme default

    Verified signature
    1838f0f

  1. UX-level user isolation: per-browser job ownership + tokens, configuration-tagged caches, calibration no longer locks the gauge, global + per-user CPU admission, tab guard

    Verified signature
    90c988a

  1. Auto-calibration plumbing: per-check miss history, params refresh from CREST_state (newer wins), baseline-relative save, params/ append-only in persist, autocal records on /api/events

    Verified signature
    8469f55

  1. CREST-miss guard part 2: a listed episode the guard disowns is dropped from the list and purged

    Verified signature
    11e7351
  2. CREST-miss guard: no inundation map when EF5's peak is < 30% of the observed peak at the trigger gauge; misses listed in the Events panel

    Verified signature
    6885dec

  1. events: never pair Delete with in-place Add (hub drops unchanged adds -> frames lost), manifest lists only stored frames, demotion clamped off, calendar-month list roll-off, reconcile_store; player preloads next frames

    Verified signature
    da72d4f

  1. health: restart-aware tick liveness (warming / last-publish fallback) so a cold-started runner is not reported STALE

    Verified signature
    4c4794d

  1. health: TEMP freshness limits match NARR's real publish lag (45 d write-age, 2 months coverage)

    Verified signature
    5557d05

  1. admin archive: owner-only (ADMIN_USERS) view of EVERY stored 2-D inundation result (listed + rolled-off) — /api/admin/archive + Archive panel; open any result on the map (shared backend)

    Verified signature
    f2a65be

  1. risk view: tile-first worldpop/OSM probes (CREST_riskdata pre-hosted parquet; live fetch = fallback)

    Verified signature
    ae833ba

  1. worldpop: parallel band fetches + slow-100m->1km heuristic (first live build sat >15 min on striped 100m ranges)

    Verified signature
    0198428
  2. osminfra: name each mirror's failure in the status + lz4/mail.ru mirrors

    Verified signature
    5820aae
  3. osminfra: cache Overpass failures 60 s (not 6 h) + sticky last-good mirror

    Verified signature
    57a6730
  4. Risk view (map_visual lens for 2-D inundation): /api/riskprobe per-PIXEL depth/speed/flow-dir + DEFRA hazard class + WorldPop 2026-2030 population (resampled to the solver grid) + OSM infrastructure values; Dockerfile CRESTIMAP_REF -> e8652781 (maxspeed/flowdir rasters)

    Verified signature
    a8f20b9

  1. obs store: replace-don't-merge on refetched windows so USGS-scrubbed provisional values (phantom floods) self-heal instead of persisting forever

    Verified signature
    ac9fc1b

  1. retention: monthly animation cleanup — when an event rolls off the list, clear only its animation (depth_* frames + archive.parquet) and KEEP the simulation results (manifest + max-depth + final + DEM) until RESULTS_MAX_AGE_D (365 d); orphan result folders swept at that horizon

    Verified signature
    f7984a1
  2. retention: keep depth frames for ALL listed events (KEEP_FULL defaults to KEEP_EVENTS=40) so the time scrubber works for every event — demotion at 8 was deleting ended re-run episodes' frames within hours (user report 2026-08-21)

    Verified signature
    cd47070

  1. health: watch MRMS Pass2 / PET / TEMP archive freshness

    Verified signature
    7f30fae

  1. event_run cold=1: full cold re-run of a listed episode (no warm-start frame; spec 'cold' stamp makes workers drop resident sessions) — basin re-run of the list

    Verified signature
    ff0fe9c
  2. Dockerfile: apt hardening — us.archive mirror + retries (archive.ubuntu.com unreachable/30 kB/s from the HF builder today)

    Verified signature
    06a29ad
  3. Event EF5 extent = HUC12 basin bounds (union with default square): the sqrt-area square centred on the outlet clipped elongated catchments (Spoon R 3,884/4,241 km2, Pope Ck 199/449); hucdomain.basin_bounds; run_gauge(domain_bbox=)

    Verified signature
    42c3d5f
  4. /api/event_run: episode=<id> re-simulates an existing listed episode in place (basin-domain re-run of the list)

    Verified signature
    ecaaa3e
  5. Basin domains (never a rectangle): 2-D event domain = whole HUC12 basin of the trigger gauge (hf_data/hucdomain.py, WBD tables on CREST_data wbd/huc12); domain_huc.tif + domain.geojson in the bundle; CPU rung trims by HUC12 units; frontend draws HUC12 units + basin outline, no rectangle; Dockerfile pins crestimap 678cbf17

    Verified signature
    c5d8188

  1. sync: episode final product takes peak observed flow from the scorer's full USGS series (manifest hydro understated 15.7 vs 34.5 on 03274650); run_nowcast_all.py parity

    Verified signature
    73f10d8
  2. health: queue ok keys off never-published bundles, not swept re-sims

    Verified signature
    ff335a8
  3. V30.1: wall-clock budget for the demoted CPU solve rung + tick wedge detection (a 39-h local solve had starved the hourly event tick)

    Verified signature
    e9f5960

  1. V30 operations: episode final products (consolidated stats + event-scoped nowcast verification replace the running event on end), CPU rung demoted to last resort behind worker claims, provenance stamps in manifests, /api/health self-monitoring, runner-split plumbing (EVENT_TICK / EVENT_RUNNER_URL), event-score labels + no Model-options panel in nowcast mode

    Verified signature
    3490275
  2. V29 fixed episode windows: anchored at trigger-12h (no moving window), USGS-obs-based episode end, frame carry-forward on republish, warm-start IC from previous depth frame, in-flight queue shown in the event panel

    Verified signature
    15fc593
  3. queue sweep: stale = spec queued-stamp age + no fresh claim (id age alone swept re-enqueued episodes and killed a live claim mid-solve)

    Verified signature
    27dce6c
  4. event ladder: delegated worker hand-off frees the runner (no more result-wait/CPU while claimed); new detections outrank episode re-sims; fresh claims survive re-enqueue; event_run gains t0 backdating + defer for refills

    Verified signature
    e2681d6
  5. Nowcast MRMS rain-radar overlay (24h/48h/7d anim) + persistent 2D depth legend + queue worker wake-ping

    Verified signature
    e66a060

  1. Serve cached fleet rows instantly while frames re-render (suppress duplicate live rows)

    Verified signature
    c051cae