fix(netflow): harden v2 rollup migration (#60)

## Summary

Hardens the pipeline-v2 NetFlow rollup path introduced downstack.

- Adds a reusable `netflow_stats_aggregate_v2` backfill helper and CLI migration command.
- Makes `verify_web_compatible_v2.py` exercise the web-facing rollup query path.
- Requires rollup rows when `--require-data` is used.
- Checks raw 5m NetFlow rows against `netflow_stats_aggregate_v2` when processed completeness or explicit rollup parity is required.
- Adds verifier tests for empty rollups and mismatched rollup metrics.

## Why

The downstack PR routes coarse dashboard requests to `netflow_stats_aggregate_v2`. The merge/finalize gate needs to fail if that table is empty, stale, or out of sync with raw 5m rows.

## Validation

- `bun format`
- `bun lint`
- `bun typecheck`
- `./scripts/run-with-nix-if-available.sh uv run --extra test pytest tests/python/test_verify_web_compatible_v2.py tests/python/test_stats_v2.py tests/python/test_pipeline_v2.py`
- `./scripts/run-with-nix-if-available.sh uv run --extra test pytest tests/python`
bb82d7df9eoliver committed on 5/11/2026, 7:28:22 AM· committed by GitHubparents187c4f6a1dedc1
4 files changedLine totals unavailable