{
  "checkedAt": "2026-10-28T12:46:35.766289+00:00",
  "release": {
    "version": "8ded1191b0afb620",
    "semver": "0.21.0",
    "publishedAt": "2026-10-28T12:40:34+00:00"
  },
  "scope": "Native air-trade links in shared land/sea resource network; separate airport flags, sale/import/production interaction, city status, filtered airport-production AI and schema38 migration",
  "javascriptTests": 924,
  "javascriptModules": 75,
  "pythonTests": 25,
  "dom": "passed",
  "localBrowserScenarios": 30,
  "localResults": [
    {
      "name": "air-trade",
      "exitCode": 0,
      "seconds": 11.19,
      "log": "/tmp/civ3-0210-full-local-browser-air-trade.log"
    },
    {
      "name": "airlift",
      "exitCode": 0,
      "seconds": 15.91,
      "log": "/tmp/civ3-0210-full-local-browser-airlift.log"
    },
    {
      "name": "developer-logs",
      "exitCode": 0,
      "seconds": 5.37,
      "log": "/tmp/civ3-0210-full-local-browser-developer-logs.log"
    },
    {
      "name": "movement-sight",
      "exitCode": 0,
      "seconds": 6.98,
      "log": "/tmp/civ3-0210-full-local-browser-movement-sight.log"
    },
    {
      "name": "interturn-planning",
      "exitCode": 0,
      "seconds": 6.96,
      "log": "/tmp/civ3-0210-full-local-browser-interturn-planning.log"
    },
    {
      "name": "context-cargo",
      "exitCode": 0,
      "seconds": 7.76,
      "log": "/tmp/civ3-0210-full-local-browser-context-cargo.log"
    },
    {
      "name": "air-combat",
      "exitCode": 0,
      "seconds": 19.46,
      "log": "/tmp/civ3-0210-full-local-browser-air-combat.log"
    },
    {
      "name": "air-missions",
      "exitCode": 0,
      "seconds": 18.3,
      "log": "/tmp/civ3-0210-full-local-browser-air-missions.log"
    },
    {
      "name": "transport-network",
      "exitCode": 0,
      "seconds": 9.71,
      "log": "/tmp/civ3-0210-full-local-browser-transport-network.log"
    },
    {
      "name": "bombardment",
      "exitCode": 0,
      "seconds": 7.92,
      "log": "/tmp/civ3-0210-full-local-browser-bombardment.log"
    },
    {
      "name": "naval",
      "exitCode": 0,
      "seconds": 12.0,
      "log": "/tmp/civ3-0210-full-local-browser-naval.log"
    },
    {
      "name": "worker-rate",
      "exitCode": 0,
      "seconds": 7.43,
      "log": "/tmp/civ3-0210-full-local-browser-worker-rate.log"
    },
    {
      "name": "civilopedia",
      "exitCode": 0,
      "seconds": 2.78,
      "log": "/tmp/civ3-0210-full-local-browser-civilopedia.log"
    },
    {
      "name": "city-refinements",
      "exitCode": 0,
      "seconds": 5.35,
      "log": "/tmp/civ3-0210-full-local-browser-city-refinements.log"
    },
    {
      "name": "worker-orders",
      "exitCode": 0,
      "seconds": 5.15,
      "log": "/tmp/civ3-0210-full-local-browser-worker-orders.log"
    },
    {
      "name": "preferences",
      "exitCode": 0,
      "seconds": 4.63,
      "log": "/tmp/civ3-0210-full-local-browser-preferences.log"
    },
    {
      "name": "hud-economy",
      "exitCode": 0,
      "seconds": 3.66,
      "log": "/tmp/civ3-0210-full-local-browser-hud-economy.log"
    },
    {
      "name": "modal-backdrop",
      "exitCode": 0,
      "seconds": 5.11,
      "log": "/tmp/civ3-0210-full-local-browser-modal-backdrop.log"
    },
    {
      "name": "technology-tree",
      "exitCode": 0,
      "seconds": 11.85,
      "log": "/tmp/civ3-0210-full-local-browser-technology-tree.log"
    },
    {
      "name": "native-orders",
      "exitCode": 0,
      "seconds": 5.49,
      "log": "/tmp/civ3-0210-full-local-browser-native-orders.log"
    },
    {
      "name": "native-music",
      "exitCode": 0,
      "seconds": 6.2,
      "log": "/tmp/civ3-0210-full-local-browser-native-music.log"
    },
    {
      "name": "readiness",
      "exitCode": 0,
      "seconds": 6.27,
      "log": "/tmp/civ3-0210-full-local-browser-readiness.log"
    },
    {
      "name": "pollution",
      "exitCode": 0,
      "seconds": 8.87,
      "log": "/tmp/civ3-0210-full-local-browser-pollution.log"
    },
    {
      "name": "native-city",
      "exitCode": 0,
      "seconds": 7.07,
      "log": "/tmp/civ3-0210-full-local-browser-native-city.log"
    },
    {
      "name": "terrain-work",
      "exitCode": 0,
      "seconds": 15.66,
      "log": "/tmp/civ3-0210-full-local-browser-terrain-work.log"
    },
    {
      "name": "automation",
      "exitCode": 0,
      "seconds": 11.94,
      "log": "/tmp/civ3-0210-full-local-browser-automation.log"
    },
    {
      "name": "classic-controls",
      "exitCode": 0,
      "seconds": 9.37,
      "log": "/tmp/civ3-0210-full-local-browser-classic-controls.log"
    },
    {
      "name": "party",
      "exitCode": 0,
      "seconds": 54.95,
      "log": "/tmp/civ3-0210-full-local-browser-party.log"
    },
    {
      "name": "interturn-performance",
      "exitCode": 0,
      "seconds": 11.66,
      "log": "/tmp/civ3-0210-full-local-browser-interturn-performance.log"
    },
    {
      "name": "ui-polish",
      "exitCode": 0,
      "seconds": 5.36,
      "log": "/tmp/civ3-0210-full-local-browser-ui-polish.log"
    }
  ],
  "targetedResults": {
    "checkedAt": "2026-10-28T12:34:42.682Z",
    "url": "http://127.0.0.1:40543/civilization/",
    "codeVersion": "./app.mjs?v=8ded1191b0afb620",
    "checks": {
      "airTradeCaptionAndResources": true,
      "airportTooltip": true,
      "immediateEndpointSale": true,
      "seaBlockadeAndUsedAirliftDoNotCutFlight": true,
      "internationalContractBreaksAfterUserSale": true,
      "genuineSchema37WithUsedAirportMigration": true,
      "exactExportReload": true
    },
    "pageErrors": [],
    "failedRequests": []
  },
  "publicStatus": "passed",
  "saveSchema": 38,
  "transportNetworkModel": "land-sea-air-trade-network-v2",
  "nativeAirTradeCases": 688,
  "nativeStaticSignatures": 8,
  "nativeWindowsRuntimeVerified": false,
  "fullParty": {
    "checkedAt": "2026-10-28T12:39:24.790Z",
    "url": "http://127.0.0.1:44677/civilization/",
    "browser": "156.0.8078.4",
    "codeVersion": "./app.mjs?v=8ded1191b0afb620",
    "profileId": "atlants2-827be8b3f7aab140",
    "schemaVersion": 38,
    "kind": "full-new-game-browser-ui",
    "humanChoices": "automated shared policy through buttons, keyboard and canvas; no manual human playtest",
    "originalBehaviorVerified": false,
    "humanCommands": 53,
    "turns": 18,
    "winnerId": "p2",
    "result": {
      "kind": "conquest",
      "winnerId": "p2",
      "turn": 18
    },
    "reloads": [
      {
        "turn": 1,
        "kind": "mixed-production-queue"
      },
      {
        "turn": 3,
        "kind": "road"
      },
      {
        "turn": 11,
        "kind": "combat"
      },
      {
        "turn": 19,
        "kind": "mandatory-production-choice",
        "source": "Unmodified new-game replay with explicit peaceful research/building commands; no stocks, rules or decisions edited",
        "replayCommands": 108
      }
    ],
    "queueChecked": true,
    "productionDecisionReloaded": true,
    "everyHumanCommandMatchesKernel": true,
    "completedExportImportExact": true,
    "completedReloadExact": true,
    "commandSHA256": "368db32cddd9f438ebd75aa2927f671704457019ba060f083afeef02adddf3c7",
    "finalStateSHA256": "5aa02b48ba182d027abd2d456ce922c449c4af1afe897e7c03e23fab7806d688",
    "pageErrors": [],
    "failedRequests": [],
    "captureDecisionCheck": {
      "source": "Replay of normal new-game commands; only human perspective switched to the natural captor",
      "reloadExact": true,
      "escapeCannotSkip": true,
      "keepAndVictoryMatchKernel": true
    },
    "memory": {
      "phase": "finished party, before reload, combat image cache retained",
      "jsHeapBytes": 21231260,
      "browserProcessRSSBytes": 546340864,
      "combatImageRequests": [],
      "caveat": "RSS includes browser processes, libraries, canvas and decoded media; JS heap excludes image/GPU allocations. This is one observed run, not a peak or target-device benchmark."
    }
  },
  "aiRegression": {
    "checkedAt": "2026-10-28T12:36:16.227Z",
    "fixture": {
      "cells": 960,
      "cities": 5,
      "units": 42,
      "commands": 8,
      "harbors": 0
    },
    "previous": "0.20.0",
    "current": "0.21.0",
    "cpuLimitPercent": 35,
    "identicalCommandsStateAndRng": true,
    "previousCpuMs": 2732.715,
    "currentCpuMs": 2749.23,
    "previousWallMs": 7668.255392000001,
    "currentWallMs": 7320.873476999999,
    "warmReverse": {
      "previousCpuMs": 2060.178,
      "currentCpuMs": 1961.023,
      "identicalCommandsStateAndRng": true
    },
    "previousTimings": [
      {
        "command": {
          "playerId": "p2",
          "type": "START_REVOLUTION",
          "params": {}
        },
        "chooseMs": 2367.7200279999997,
        "executeMs": 11.436835999999857
      },
      {
        "command": {
          "playerId": "p2",
          "type": "FOUND_CITY",
          "params": {
            "unitId": "u4",
            "name": "Рим"
          }
        },
        "chooseMs": 719.7231489999999,
        "executeMs": 51.981436999999914
      },
      {
        "command": {
          "playerId": "p2",
          "type": "SET_GOVERNOR",
          "params": {
            "cityId": "c53",
            "settings": {
              "manageCitizens": true,
              "manageProduction": false
            }
          }
        },
        "chooseMs": 15.750634999999875,
        "executeMs": 158.4968630000003
      },
      {
        "command": {
          "playerId": "p2",
          "type": "UPGRADE_UNIT",
          "params": {
            "unitId": "u17"
          }
        },
        "chooseMs": 41.673452,
        "executeMs": 31.380317000000105
      },
      {
        "command": {
          "playerId": "p2",
          "type": "SET_PRODUCTION",
          "params": {
            "cityId": "c53",
            "typeId": 205
          }
        },
        "chooseMs": 1063.6029710000003,
        "executeMs": 17.14487300000019
      },
      {
        "command": {
          "playerId": "p2",
          "type": "MOVE",
          "params": {
            "unitId": "u5",
            "x": 36,
            "y": 11
          }
        },
        "chooseMs": 965.2867910000004,
        "executeMs": 70.84108899999956
      },
      {
        "command": {
          "playerId": "p2",
          "type": "START_WORK",
          "params": {
            "unitId": "u5",
            "jobId": 1
          }
        },
        "chooseMs": 1111.0210349999998,
        "executeMs": 14.12231299999985
      },
      {
        "command": {
          "playerId": "p2",
          "type": "MOVE",
          "params": {
            "unitId": "u6",
            "x": 36,
            "y": 12
          }
        },
        "chooseMs": 1005.2423470000003,
        "executeMs": 22.641771000000517
      }
    ],
    "currentTimings": [
      {
        "command": {
          "playerId": "p2",
          "type": "START_REVOLUTION",
          "params": {}
        },
        "chooseMs": 2040.2053240000005,
        "executeMs": 18.12148200000047
      },
      {
        "command": {
          "playerId": "p2",
          "type": "FOUND_CITY",
          "params": {
            "unitId": "u4",
            "name": "Рим"
          }
        },
        "chooseMs": 880.2164940000002,
        "executeMs": 82.13901600000099
      },
      {
        "command": {
          "playerId": "p2",
          "type": "SET_GOVERNOR",
          "params": {
            "cityId": "c53",
            "settings": {
              "manageCitizens": true,
              "manageProduction": false
            }
          }
        },
        "chooseMs": 29.80713999999898,
        "executeMs": 38.39715200000137
      },
      {
        "command": {
          "playerId": "p2",
          "type": "UPGRADE_UNIT",
          "params": {
            "unitId": "u17"
          }
        },
        "chooseMs": 109.55716200000097,
        "executeMs": 35.69108000000051
      },
      {
        "command": {
          "playerId": "p2",
          "type": "SET_PRODUCTION",
          "params": {
            "cityId": "c53",
            "typeId": 205
          }
        },
        "chooseMs": 1308.9992199999997,
        "executeMs": 43.35065500000019
      },
      {
        "command": {
          "playerId": "p2",
          "type": "MOVE",
          "params": {
            "unitId": "u5",
            "x": 36,
            "y": 11
          }
        },
        "chooseMs": 675.5717179999992,
        "executeMs": 25.79831000000013
      },
      {
        "command": {
          "playerId": "p2",
          "type": "START_WORK",
          "params": {
            "unitId": "u5",
            "jobId": 1
          }
        },
        "chooseMs": 1035.2462329999998,
        "executeMs": 17.36920999999893
      },
      {
        "command": {
          "playerId": "p2",
          "type": "MOVE",
          "params": {
            "unitId": "u6",
            "x": 36,
            "y": 12
          }
        },
        "chooseMs": 964.8862289999997,
        "executeMs": 15.29019100000005
      }
    ],
    "note": "Prepared all-land regression fixture, not the user save or a full turn; shared VM wall time includes CPU limiting"
  },
  "limitations": [
    "Full MVP and stages5.1/5.2 remain in progress",
    "Airfields, aircraft/helicopter transport, parachute drops and remaining military systems are separate work",
    "Original active-building/map helpers are controlled in native proofs; no complete Windows session",
    "Original city-ID reuse and full turn/search/PRNG/animation phases remain unverified"
  ],
  "publicBrowserScenarios": 30,
  "publicResults": [
    {
      "name": "air-trade",
      "exitCode": 0,
      "seconds": 7.83,
      "log": "/tmp/civ3-0210-full-public-browser-air-trade.log"
    },
    {
      "name": "airlift",
      "exitCode": 0,
      "seconds": 11.77,
      "log": "/tmp/civ3-0210-full-public-browser-airlift.log"
    },
    {
      "name": "developer-logs",
      "exitCode": 0,
      "seconds": 3.21,
      "log": "/tmp/civ3-0210-full-public-browser-developer-logs.log"
    },
    {
      "name": "movement-sight",
      "exitCode": 0,
      "seconds": 5.36,
      "log": "/tmp/civ3-0210-full-public-browser-movement-sight.log"
    },
    {
      "name": "interturn-planning",
      "exitCode": 0,
      "seconds": 4.74,
      "log": "/tmp/civ3-0210-full-public-browser-interturn-planning.log"
    },
    {
      "name": "context-cargo",
      "exitCode": 0,
      "seconds": 6.22,
      "log": "/tmp/civ3-0210-full-public-browser-context-cargo.log"
    },
    {
      "name": "air-combat",
      "exitCode": 0,
      "seconds": 17.37,
      "log": "/tmp/civ3-0210-full-public-browser-air-combat.log"
    },
    {
      "name": "air-missions",
      "exitCode": 0,
      "seconds": 13.54,
      "log": "/tmp/civ3-0210-full-public-browser-air-missions.log"
    },
    {
      "name": "transport-network",
      "exitCode": 0,
      "seconds": 7.35,
      "log": "/tmp/civ3-0210-full-public-browser-transport-network.log"
    },
    {
      "name": "bombardment",
      "exitCode": 0,
      "seconds": 7.8,
      "log": "/tmp/civ3-0210-full-public-browser-bombardment.log"
    },
    {
      "name": "naval",
      "exitCode": 0,
      "seconds": 11.17,
      "log": "/tmp/civ3-0210-full-public-browser-naval.log"
    },
    {
      "name": "worker-rate",
      "exitCode": 0,
      "seconds": 6.75,
      "log": "/tmp/civ3-0210-full-public-browser-worker-rate.log"
    },
    {
      "name": "civilopedia",
      "exitCode": 0,
      "seconds": 3.48,
      "log": "/tmp/civ3-0210-full-public-browser-civilopedia.log"
    },
    {
      "name": "city-refinements",
      "exitCode": 0,
      "seconds": 5.58,
      "log": "/tmp/civ3-0210-full-public-browser-city-refinements.log"
    },
    {
      "name": "worker-orders",
      "exitCode": 0,
      "seconds": 6.41,
      "log": "/tmp/civ3-0210-full-public-browser-worker-orders.log"
    },
    {
      "name": "preferences",
      "exitCode": 0,
      "seconds": 4.85,
      "log": "/tmp/civ3-0210-full-public-browser-preferences.log"
    },
    {
      "name": "hud-economy",
      "exitCode": 0,
      "seconds": 4.2,
      "log": "/tmp/civ3-0210-full-public-browser-hud-economy.log"
    },
    {
      "name": "modal-backdrop",
      "exitCode": 0,
      "seconds": 6.11,
      "log": "/tmp/civ3-0210-full-public-browser-modal-backdrop.log"
    },
    {
      "name": "technology-tree",
      "exitCode": 0,
      "seconds": 11.02,
      "log": "/tmp/civ3-0210-full-public-browser-technology-tree.log"
    },
    {
      "name": "native-orders",
      "exitCode": 0,
      "seconds": 5.34,
      "log": "/tmp/civ3-0210-full-public-browser-native-orders.log"
    },
    {
      "name": "native-music",
      "exitCode": 0,
      "seconds": 6.51,
      "log": "/tmp/civ3-0210-full-public-browser-native-music.log"
    },
    {
      "name": "readiness",
      "exitCode": 0,
      "seconds": 7.78,
      "log": "/tmp/civ3-0210-full-public-browser-readiness.log"
    },
    {
      "name": "pollution",
      "exitCode": 0,
      "seconds": 8.87,
      "log": "/tmp/civ3-0210-full-public-browser-pollution.log"
    },
    {
      "name": "native-city",
      "exitCode": 0,
      "seconds": 6.62,
      "log": "/tmp/civ3-0210-full-public-browser-native-city.log"
    },
    {
      "name": "terrain-work",
      "exitCode": 0,
      "seconds": 16.3,
      "log": "/tmp/civ3-0210-full-public-browser-terrain-work.log"
    },
    {
      "name": "automation",
      "exitCode": 0,
      "seconds": 11.57,
      "log": "/tmp/civ3-0210-full-public-browser-automation.log"
    },
    {
      "name": "classic-controls",
      "exitCode": 0,
      "seconds": 9.97,
      "log": "/tmp/civ3-0210-full-public-browser-classic-controls.log"
    },
    {
      "name": "party",
      "exitCode": 0,
      "seconds": 55.65,
      "log": "/tmp/civ3-0210-full-public-browser-party.log"
    },
    {
      "name": "interturn-performance",
      "exitCode": 0,
      "seconds": 11.08,
      "log": "/tmp/civ3-0210-full-public-browser-interturn-performance.log"
    },
    {
      "name": "ui-polish",
      "exitCode": 0,
      "seconds": 5.96,
      "log": "/tmp/civ3-0210-full-public-browser-ui-polish.log"
    }
  ],
  "publicTargetedResults": {
    "checkedAt": "2026-10-28T12:40:59.416Z",
    "url": "https://vm.ya-erm.ru/civilization/",
    "codeVersion": "./app.mjs?v=8ded1191b0afb620",
    "checks": {
      "airTradeCaptionAndResources": true,
      "airportTooltip": true,
      "immediateEndpointSale": true,
      "seaBlockadeAndUsedAirliftDoNotCutFlight": true,
      "internationalContractBreaksAfterUserSale": true,
      "genuineSchema37WithUsedAirportMigration": true,
      "exactExportReload": true
    },
    "pageErrors": [],
    "failedRequests": []
  },
  "publishedByteAudit": "published-0210-byte-audit.json"
}
