diff --git a/scripts/build_release.py b/scripts/build_release.py index 2d9dfc8..5c829e7 100755 --- a/scripts/build_release.py +++ b/scripts/build_release.py @@ -163,11 +163,17 @@ def main() -> int: raise SystemExit("Release demo produced no on-camera caption receipt") recorded = json.loads(caption_receipt.read_text(encoding="utf-8")) onscreen = [str(line) for line in (recorded.get("captions") or [])] - if recorded.get("releaseDelta") != release_delta or not any(release_delta in line for line in onscreen): + # A pushed string is not proof of pixels. Only captions the demo measured as a painted, + # on-top, in-frame bar (style + elementFromPoint + band pixel change) count as on camera. + verified = [str(item.get("text")) for item in (recorded.get("captionsVerified") or []) + if item.get("visible") is True and item.get("bandChanged") is True] + if recorded.get("releaseDelta") != release_delta or not any(release_delta in line for line in verified): raise SystemExit("Release demo did not state the declared release delta on camera") for required in DEMO_REQUIRED_CAPTIONS: if not any(required in line for line in onscreen): raise SystemExit(f"Release demo is missing a required on-camera caption: {required}") + if not any(required in line for line in verified): + raise SystemExit(f"Release demo caption never painted on screen: {required}") finally: server.terminate() try: