# 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-965 (2026-05-29): `c10_provisioning.backbones` declares one # NetVLAD-VGG16 entry pointing at `models/net_vlad/net_vlad.pt` # (568 MiB git-lfs blob; see `_docs/03_ip_attribution/netvlad.md` for # provenance — VGG16 encoder = torchvision IMAGENET1K_V1 BSD, NetVLAD # pool + PCA tail = deterministic-random untrained). Bind-mounted into # the e2e-runner at `/opt/models` via docker-compose.test.jetson.yml. # AZ-321 design: NetVLAD runs on the PyTorch FP16 runtime (NOT TRT), # so the field literally named `onnx_path` here is actually the path # to the `.pt` PyTorch state_dict the runtime consumes. File stem MUST # equal `MODEL_NAME == "net_vlad"` from c2_vpr.net_vlad because the # PyTorch runtime uses `path.stem` as the registry lookup key. __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 c2_vpr: strategy: net_vlad backbone_weights_path: /opt/models/net_vlad/net_vlad.pt netvlad_descriptor_dim: 4096 warn_top1_threshold: 0.30 # faiss_index_path is overlaid at runtime by # tests/e2e/replay/_e2e_orchestrator.py::write_effective_replay_config # to point at /descriptor.index (the C3 fixture's tmp). c10_provisioning: workspace_mb: 4096 backbones: - model_name: net_vlad onnx_path: /opt/models/net_vlad/net_vlad.pt expected_input_shape: [3, 480, 480] input_name: input 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