{
  "format": "bb-python-oz-bbport-release-v1",
  "product": "python-ap",
  "version": "1.0.1.6",
  "passed": true,
  "source_revision": "0b870f5a89624b76a67765d6ba2ad3e0360221b0",
  "native_revision": "e814c636786aa5401022b540848f2dd0dd8ffafb",
  "world_version": "1.0.1",
  "product_contract": {
    "title_ids": [
      "CUSA00900",
      "CUSA03173"
    ],
    "game_version": "01.09",
    "world_version": "1.0.1"
  },
  "archive_sha256": "d8301ae7e18070f4f5f72c68315aa07c31de501c368a2023c2a2aac2af881461",
  "artifact": {
    "name": "BloodborneAPLauncher-1.0.1.6-signed-win-x64.zip",
    "sha256": "d8301ae7e18070f4f5f72c68315aa07c31de501c368a2023c2a2aac2af881461",
    "bytes": 268329085,
    "files": 1916,
    "signed": true
  },
  "checks": [
    {
      "name": "frozen-self-check.json",
      "sha256": "fba80166ffe4506354d1de262148dece84c5cd5e5c243426d12c83c725f94448"
    },
    {
      "name": "python-frozen-map-0b870f5a8962.json",
      "sha256": "a7c89d36177c5415925f6ccc77b35217b3fb27ca8d53bfbf93f819cb1cc497a0"
    },
    {
      "name": "result.json",
      "sha256": "fe23c20dc9d3c4e722a379b1ab7504c00dc2080f02c9b3c2248fa086a12fc7db"
    },
    {
      "name": "python-frozen-oz-0b870f5a8962.json",
      "sha256": "cf290e3f8c516956871320be1b2bf6f61cc783b76e9fb80074db0eb6c34d9148"
    },
    {
      "name": "native-client-release-proof.json",
      "sha256": "fb7b986d0f109b3fbadc5158af4069ba78bcab09612499d63f7b97c04102bea1"
    }
  ],
  "apworld_sha256": "e702c8f1f14b5a24ad515d531fe4656554138b67fb93c3bbd81ad85c53c8b5fa",
  "source_attachment": {
    "name": "bb-archipelago-source.zip",
    "sha256": "1fa0287cb1fdf29327d6238bde39e82734b44fddaa8994fc206974c486274a17",
    "bytes": 15714291
  },
  "signing_evidence_sha256": "46183165cb0026bf226932d05561e3bc56a9d44693b74fa5baea4f3d3d5556e7",
  "change_scope": "Preserve enabled BBPort mods, surface early client exits, and release client session ownership when its exact engine exits.",
  "frozen_bbport_regressions": {
    "format": "bb-frozen-oz-bbport-regression-v1",
    "passed": true,
    "executable": "C:\\Users\\alari\\.codex\\worktrees\\bbport-stale-map-path\\bb-archipelago\\build\\oz-bbport-release\\signed-0b870f5a8962\\BloodborneAPLauncher\\BloodborneAPLauncher.exe",
    "executable_sha256": "c8441867c6a03da4d4a6540f8c237e0b948c3d3cafc3547a2601f8c6ee2931e3",
    "modules": [
      {
        "module": "bb_launcher.core",
        "source_sha256": "b9d22665f7f63936669d04ae693c753f1da7908ec92e2acc45dbe31cf6c82abd"
      },
      {
        "module": "bb_launcher.workflow",
        "source_sha256": "01ef6cc180f22b0803ab1682ef6b08ed118690430a116aef385b092ec4fd1f7d"
      },
      {
        "module": "bb_launcher.bbport_mods",
        "source_sha256": "98d2e0abce90ba3f4b481535c23565d278bffdf504e8649f0ef78236758ccfb2"
      },
      {
        "module": "bb_launcher.bbport_workflow",
        "source_sha256": "0632b53bc4ec894d91a6cb7988034117ed31f5e15c9c13ec2b2ec7756d900003"
      }
    ],
    "tests_run": 14,
    "skipped": 0,
    "test_sources": {
      "tests.test_bbport_user_mods": "c9e263996775e2157b941718fe080467223ac0ebb28057b3ba53db50d5d6a514",
      "tests.test_bbport_client_startup": "8619e581b38c7fb1c087793003f74f03c19c52602909dcb4f41a7888298983de"
    },
    "stock_loader": {
      "format": "bbport-mod-loader-check-v1",
      "passed": true,
      "script_sha256": "2128dd8dd401c655f4d69c93c6879301835ad036fd12d848e5b8d86cede38e18",
      "platform": "win32",
      "verified_files": 2,
      "original_unchanged": true,
      "ap_overrides_competing_loose_files": true,
      "unowned_mod_files_preserved": true,
      "enabled_named_mods_preserved": true,
      "disabled_named_mods_excluded": true,
      "named_mod_order_and_new_folder_semantics_preserved": true,
      "ap_overrides_competing_named_mod_files": true,
      "stock_mod_library_and_profile_unchanged": true,
      "scope": "Production AP export through stock mod loader with synthetic files",
      "runtime_validated": false,
      "limitations": [
        "No game execution, native hook callers, graphics or campaign tested"
      ]
    },
    "boundary": "Exact packaged code objects match reviewed source and execute ten stock-mod selection/preservation tests plus four startup-monitor tests using real short-lived child processes and their logs. The actual stock mods.py composes enabled/disabled/ordered mod fixtures with AP file precedence. Engine discovery, game data, activation and AP client behavior are fixtures; this does not launch a game or prove the cause of Oz's disconnect. Actual frozen process startup and native-client lifecycle are verified separately."
  },
  "native_client_validation": {
    "format": "bb-native-client-release-proof-v1",
    "passed": true,
    "native_revision": "e814c636786aa5401022b540848f2dd0dd8ffafb",
    "binary_sha256": "9f22b291c02c721a946f1435aa85877968ce0fade1abf27f6dfe01353895acc1",
    "version": "0.1.0+e814c636786a",
    "capabilities": {
      "arch": "x86_64",
      "format": "bb-ap-runtime-capabilities-v1",
      "launch_bbport": false,
      "platform": "windows",
      "runtime_build": "bb-0.1.0-r10",
      "runtimes": [
        "shadps4",
        "bbport"
      ]
    },
    "contract_check": {
      "passed": true,
      "input_sha256": "d675b376a6bca5574b51725044ca0d96a4429195f42f19dab16a6d5bc9261b8b",
      "exit_code": 0,
      "output_sha256": "0d8baee7d5d9a75bb800a63749da13be792656242fb14e8c2704d6497cbefe7a"
    },
    "lifecycle": {
      "passed": true,
      "test_name": "bbport_exit_releases_client_ledger_and_same_seed_can_relaunch",
      "executable_sha256": "9f22b291c02c721a946f1435aa85877968ce0fade1abf27f6dfe01353895acc1",
      "two_boots_same_ledger": true,
      "menu_unready_kept_alive": true,
      "engine_exit_client_code": 0,
      "ledger_released": true,
      "log_sha256": "8a6b9e35e124e048530c988c80416b4a6e0b73e0304877beab004a0e23b0c44e",
      "test_executable_sha256": "41ed6423f7626e99d454090be74e27da6fdf48f756b87ba86330b0cf7d465227",
      "test_source_sha256": "49e656934e5a225d1b53f842c44dbe6e8835ba6402a5aecb8137c733c6210b44",
      "baseline_binary_sha256": "69becc6d0f1cbe9b8230fa79e6d4600a8c4d2ce1ef4f5b80e13187831bc289f0",
      "baseline_log_sha256": "b80c27819b9b08b16c7b28b93a297392d63baca99889180a38c3492c6d33507d",
      "baseline_failed_after_connected_engine_exit": true
    },
    "checks": {
      "windows_lib": {
        "passed": true,
        "tests": 415,
        "log_sha256": "025e9352822f70bc29842adad2181000d2a4a61f67d7026631d9820b1270e6f1"
      },
      "windows_bin": {
        "passed": true,
        "tests": 43,
        "log_sha256": "eaa30739dfb891dd4f906f3e78ae7efb0ca6a2584bccb804d6cc2f5e7cdd9b83"
      },
      "windows_process": {
        "passed": true,
        "tests": 2,
        "helper_invoked_by_parent": 1,
        "log_sha256": "f7453829d4f36a41e24e2ae0fcd6008f07039b6ba6ddc18d399183da0306a50f"
      },
      "format": {
        "passed": true,
        "log_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
      },
      "clippy_all_targets": {
        "passed": true,
        "warnings_denied": true,
        "log_sha256": "d34566d3bf850a252ff66b14405b62eb98744fe9648aca1dea10c48999704400"
      },
      "linux_lifetime_and_ptrace": {
        "passed": true,
        "tests": 5,
        "warnings_denied": true,
        "log_sha256": "4097b8cfda7e45e9aa5945929192f24d19cfa5cc49c39c6c34530e6f1ecc08ad"
      },
      "linux_process": {
        "passed": true,
        "tests": 2,
        "helper_invoked_by_parent": 1,
        "warnings_denied": false,
        "existing_windows_ui_warnings": 9,
        "log_sha256": "c51c4aae0b708aedeeef02214d38c60cf939c1fe42c8674158618351a1c0c251"
      }
    },
    "boundary": "Exact unsigned release executable, real Windows native attachment, production client main loop and isolated AP websocket; two authored synthetic engine boots with gameplay unavailable and the same ledger. Confirms process-exit cleanup and relaunch, not Bloodborne gameplay, physical menu input, reward delivery, or the exact cause of Oz's screenshot. Linux lifetime and existing native process fixtures are separate source-build checks. No active game or live room was touched."
  },
  "runtime_validated": false,
  "limitations": [
    "Exact frozen code passes stock-mod selection, actual stock-loader composition, and short-lived child startup-monitor regressions, plus retained map-path regressions. Actual signed process self-check constructs the GUI. The new native client has separately bound lifecycle evidence; APWorld is unchanged. Synthetic game/process boundaries do not establish the cause of the player report or new gameplay acceptance."
  ]
}
