From 324bbd636724038b4de2e995aaa2db8167349b03 Mon Sep 17 00:00:00 2001 From: Oleksandr Bezdieniezhnykh Date: Mon, 18 May 2026 09:04:35 +0300 Subject: [PATCH] [AZ-602] e2e compose: set all three replay BUILD_* flags REPLAY_BUILD_FLAGS contains three names but the test compose files only ever set BUILD_REPLAY_SINK_JSONL. Every prior Reality-Gate run hit the auto-sync hard-fail before reaching the VideoFileFrameSource or TlogReplayFcAdapter build-flag gates, so the omission stayed hidden. AZ-611 makes tests bypass auto-sync, which exposes the next gate: VideoFileFrameSource raises FrameSourceConfigError ("BUILD_VIDEO_FILE_FRAME_SOURCE is OFF; ... unavailable"). Mirror the airborne binary's flag requirements in both docker-compose.test.yml (Colima Tier-1) and docker-compose.test.jetson.yml (Jetson Tier-2). Comment block in both files documents why all three must be ON. Co-authored-by: Cursor --- docker-compose.test.jetson.yml | 8 ++++++++ docker-compose.test.yml | 13 +++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/docker-compose.test.jetson.yml b/docker-compose.test.jetson.yml index 680ac0c..b910c7f 100644 --- a/docker-compose.test.jetson.yml +++ b/docker-compose.test.jetson.yml @@ -85,6 +85,14 @@ services: TILE_CACHE_PATH: /var/lib/gps-denied/tiles MAVLINK_SIGNING_KEY: /opt/tests/fixtures/mavlink_signing/dev_key RUN_REPLAY_E2E: "1" + # Replay-mode build flags (Invariant 9). See identical block in + # docker-compose.test.yml — all three are required for the + # composition root to construct the replay strategies. The + # original harness only set BUILD_REPLAY_SINK_JSONL because + # every Reality-Gate run died at auto-sync before the other + # two flags were checked. + BUILD_VIDEO_FILE_FRAME_SOURCE: "ON" + BUILD_TLOG_REPLAY_ADAPTER: "ON" BUILD_REPLAY_SINK_JSONL: "ON" volumes: - ./tests:/opt/tests:ro diff --git a/docker-compose.test.yml b/docker-compose.test.yml index 062a2e9..2564bc3 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -53,8 +53,17 @@ services: # Track-1 bootstrap harness: enable the heavy replay-pipeline tests # in tests/e2e/replay/. AZ-602 / AZ-603 / AZ-604. RUN_REPLAY_E2E: "1" - # NoopMavlinkTransport / JsonlReplaySink build flag — the binary - # refuses to construct the replay transport without it (AZ-612). + # Replay-mode build flags (Invariant 9; see + # _replay_branch.REPLAY_BUILD_FLAGS). All three must be ON for + # the replay path to construct — VideoFileFrameSource gates + # cv2.VideoCapture, TlogReplayFcAdapter gates pymavlink, and + # JsonlReplaySink gates the noop-transport sink. The Reality + # Gate e2e was originally validated only at the auto-sync + # layer (which fired before any of these three were touched); + # since AZ-611 lets tests bypass auto-sync, the next two + # gates surface — hence all three are required here. + BUILD_VIDEO_FILE_FRAME_SOURCE: "ON" + BUILD_TLOG_REPLAY_ADAPTER: "ON" BUILD_REPLAY_SINK_JSONL: "ON" volumes: - ./tests:/opt/tests:ro