Skip to content

run-0 DELIVERED: first FAO global-land forecast shipped frame-native (OOM gone) — verify delivery integrity? #131

Description

@Polichinel

What just happened

Run-0 — the first-ever FAO global-land forecast delivery — SUCCEEDED tonight (2026-07-27) on the frame-native path. With #126 shipped (development at/past f993ddf) and the views-models companion config in place (region: land_gaul, data_format: feature_frame, wire_contract/wire_upload_enabled), the un_fao postprocessor ran end-to-end against the already-published producer run rusty_bucket_forecasting_20260727_095355.

The OOM is gone. The pandas path peaked at ~23.8 GB and was OOM-killed; the frame-native path peaked at 5.6 GB.

Delivery summary (verbatim)

Historical fetched as a views_frames.FeatureFrame (region=land_gaul, format=feature_frame)
historical delivery coverage: 64742 distinct cells, 28356996 rows
Uploaded to unfao_bucket:
  • 108 shards   (type=sampled_forecast_shard, *.arrow.parquet — 3 targets × 36 months)
  •   1 sidecar  (type=sampled_forecast_sidecar — GAUL geography)
  •   1 manifest (type=sampled_forecast_manifest) ✓ committed 19:40:59
WandB alert: "Postprocessor Run Completed" (19:41:43)
Peak RSS 5.6 GB | no OOM | process exited cleanly | no loud failures

The open question

tools/liveness (views-models) shows a split on the unfao_delivery surface:

  • historical_verdict: DELIVERING, days_since 0
  • forecast_verdict: STALLEDforecast_newest_name: forecast_dataset_20260310_114703.parquet (139 days).

That forecast "STALLED" appears to be a measurement gap, not a delivery failure: liveness keys forecast-freshness on the legacy forecast_dataset_*.parquet name, while this run delivered the ADR-013 contract dialect (manifest + 108 arrow shards + sidecar). The manifest committing is the commit marker, so the forecast is on the shelf in the new format.

What can you verify / test on your side?

  1. Confirm the delivery is complete and correct from the producer/postprocessor side — manifest integrity, sidecar/parity check, all 3 targets × 36 months present, the coverage gate at 64,742 for both frames. Does deliver_run's return / any post-delivery assertion look clean for rusty_bucket_forecasting_20260727_095355?
  2. Approved / quarantined file lists — the delivery uploaded contract shards; do the APPWRITE_UNFAO_APPROVED_FILE_IDS / _QUARANTINED_FILE_IDS curation lists need updating for this run to be consumable?
  3. Liveness dialect gap — should the unfao_delivery forecast surface be taught the contract dialect (manifest-first) so it stops reading the legacy parquet? Is that yours or the views-models liveness owner's?
  4. un_fao: retire the pandas historical path — deliver frame-native end-to-end (fixes run-0 OOM) #126 on a real run — anything in the frame-native historical path you want to double-check now that it's been exercised end-to-end at global-land scale for the first time?

Companion issue on the serving side: views-platform/views-faoapi (does the live API serve this contract run). Epic: #126.

Filed from the views-models seat, run-0 delivery (2026-07-27).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions