- Changed save_zero_hour_forecast_as_truth to use issued_at instead of target_at for resolved_at timestamp
- Added window function to deduplicate forecast points, keeping only the most recent for each (target_at, horizon_hours)
- Limits resolved truth query to current time to prevent future points from displaying
- This fixes vertical lines in the chart caused by duplicate forecasts and ensures truth data displays correctly
The zero-hour forecasts (observations) were being saved with resolved_at = target_at,
which could be in the future. This caused them to be filtered out by the time-based
query in load_display_dataset(). Now using issued_at (when the observation was made)
ensures the timestamps fall within the valid display range.