Files
gps-denied-onboard/configs/operator_replay.yaml
T
Oleksandr Bezdieniezhnykh 763d8b21ad [AZ-962] [AZ-964] [AZ-965] operator_replay.yaml + Tier-2 wiring
AZ-962 SHIPPED — Tier-2 Jetson AZ-840 orchestrator test no longer
SKIPs at the env-var gate. configs/operator_replay.yaml registers
c6/c7/c10/c11 with sane defaults (backbones intentionally empty,
see AZ-965); docker-compose.test.jetson.yml exports
GPS_DENIED_OPERATOR_CONFIG_PATH=/opt/configs/operator_replay.yaml
and bind-mounts ./configs:/opt/configs:ro. ENV_KEY_MAP gains
SATELLITE_PROVIDER_URL → c11_tile_manager.satellite_provider_url
and SATELLITE_PROVIDER_API_KEY → c11_tile_manager.service_api_key
so secrets flow from .env.test and never sit in YAML. README drops
the manual export step. 97/97 c11 + config unit tests stay green.

Tier-2 re-run (4 failed / 48 passed / 1 skipped / 1 xfailed /
1 xpassed / 2 errors in 84.99s vs baseline 3 skipped — i.e. -2
skipped, +2 errors): AZ-840 orchestrator test moves from SKIP to
ERROR with a deeper, real gate — IndexUnavailableError on
FaissDescriptorIndex against a fresh c6_tile_cache.root_dir.

AZ-964 (3 SP, todo/) filed for FAISS index bootstrap in the AZ-839
C3 fixture. AZ-965 (3 SP, todo/, blocked by AZ-964) filed for
NetVLAD ONNX backbone provisioning — the next gate the orchestrator
test will hit once FAISS clears.

Cycle-4 e2e gate remains NOT GREEN: AZ-840 chain is now AZ-964 →
AZ-965 → PASS; 60s smoke chain is AZ-963 → PASS. OKVIS2 deferral
directive (2026-05-29) unchanged — still gated behind Derkachi
e2e green, still NOT MET.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 16:42:55 +03:00

67 lines
2.5 KiB
YAML

# AZ-962 — Operator pre-flight + replay-mode config for Tier-2 Jetson e2e harness.
#
# Consumed by `tests/e2e/replay/conftest.py::_build_operator_pre_flight_cache`
# (the AZ-839 C3 fixture) which `load_config(env, paths=[this])` then drives the
# AZ-840 7-step orchestrator (`test_az835_e2e_real_flight.py`).
#
# Most fields stay at their dataclass defaults (see
# `src/gps_denied_onboard/components/{c6_tile_cache,c7_inference,c10_provisioning,c11_tile_manager}/config.py`).
# The blocks are declared here primarily so the four-component contract the
# fixture skip-gate cites is satisfied by inspection of this file. The env
# vars below are filled by docker-compose.test.jetson.yml / `.env.test`:
#
# * `GPS_DENIED_FC_PROFILE`, `GPS_DENIED_TIER`, `DB_URL` → runtime
# * `INFERENCE_BACKEND`, `TILE_CACHE_PATH`, `CAMERA_CALIBRATION_PATH` → runtime
# * `LOG_LEVEL`, `LOG_SINK` → log
# * `FDR_PATH` → fdr
# * `SATELLITE_PROVIDER_URL` → c11_tile_manager.satellite_provider_url
# * `SATELLITE_PROVIDER_API_KEY` → c11_tile_manager.service_api_key
#
# AZ-964 (follow-up, not yet filed): the orchestrator test SKIPs at the
# next gate because `c10_provisioning.backbones` is empty — no NetVLAD /
# DINOv2 .onnx file ships with this repo. Populating the backbones list
# here (and provisioning the matching .onnx + verifying it compiles on
# Tegra) is AZ-964's scope, not AZ-962's.
__top__:
mode: replay
runtime:
fc_profile: ardupilot_plane
tier: 2
replay:
pace: asap
target_fc_dialect: ardupilot_plane
c6_tile_cache:
store_runtime: postgres_filesystem
metadata_runtime: postgres_filesystem
descriptor_index_runtime: faiss_hnsw
postgres_pool_size: 4
lru_eviction_threshold_bytes: 10737418240 # 10 GiB
c7_inference:
runtime: pytorch_fp16
thermal_poll_hz: 1.0
engine_cache_dir: /var/lib/gps-denied/engines
gpu_memory_budget_bytes: 4294967296 # 4 GiB
trtexec_timeout_s: 600
ort_trt_cache_dir: /var/lib/gps-denied/engines/ort_trt_cache
c10_provisioning:
workspace_mb: 4096
# backbones intentionally empty — see AZ-964 for the follow-up.
# The AZ-839 fixture skip-gate (conftest.py:594-601) fires here
# with a clear message until backbone provisioning lands.
c11_tile_manager:
# satellite_provider_url + service_api_key flow in from env vars
# (SATELLITE_PROVIDER_URL / SATELLITE_PROVIDER_API_KEY) via the
# loader's ENV_KEY_MAP additions in AZ-962.
upload_batch_size: 25
upload_http_timeout_s: 30.0
download_http_timeout_s: 30.0
download_max_5xx_retries: 4
download_resolution_floor_m_per_px: 0.5