You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(ml): B1 drift monitoring live — apples-to-apples on canonical features
- MLScoringEngine feeds the model its rain features at inference
(bundle rainfall + api_30 → same aggregates as training; they were
silently 0.0 before) and distance_to_iffi_m; feature_row() exposes
the named vector
- ShadowChallengerExecutor persists that vector in breakdown.features
so the drift job compares training vs live on identical keys/scales
- drift job: monitored feature configurable (MONITORING__DRIFT_FEATURE,
default rain.rain_72h_mm), require_features filter in the repo,
enabled by default
- cache_cleanup purges model_runs older than
SCORING__MODEL_RUNS_RETENTION_DAYS (national shadow ≈ 1 GB/day)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|**Job periodici**| workflow MAF orario (con shadow ML), **sweep previsionale** ogni 6 h, **nowcast radar DPC** ogni 15 min, report nazionale giornaliero, sync ISPRA settimanale, **drift monitor ML** (PSI/KS training-vs-live sulle feature canoniche che lo shadow persiste), cache cleanup + retention di `model_runs` (default 30 gg)| APScheduler in-process |`api/jobs/`|
85
85
|**Radar DPC (nowcast)**| SRI nazionale 1 km / 5 min (piattaforma radar DPC, CC-BY-SA): pioggia ≥ `NOWCAST__MIN_INTENSITY_MMH` su una regione ⇒ il workflow di quella AOI parte subito invece di aspettare il tick orario (cooldown 45 min; alert dal percorso operativo normale) | poll ogni `NOWCAST__INTERVAL_MINUTES`|`integrations/dpc/` + `api/jobs/nowcast_monitoring.py`|
86
86
|**Forecast previsionale**| scoring a `now+H` ore con pioggia prevista Open-Meteo (osservata+prevista nella stessa finestra); champion + challenger ML sulle stesse celle; report on-demand o alert "PREVISIONE" schedulato con dedup (AOI, orizzonte) |`limen forecast` / job ogni `FORECAST__INTERVAL_HOURS`|`agents/workflows/forecast.py` + `api/jobs/forecast_monitoring.py`|
87
87
|**MCP `limen-ops`**|`tool_risk_summary`, `tool_top_risk_cells`, `tool_cell_breakdown`, `tool_recent_alerts`, `tool_national_report`, `tool_run_monitor` (admin, fail-closed su `MCP_ADMIN_TOKEN`) per gateway agentici (OpenClaw, Claude Desktop) | servizio compose `mcp`, HTTP `127.0.0.1:8766/mcp`|`mcp/` + `limen mcp-serve`|
0 commit comments