{
  "release": {
    "version": "90c55c2fe714611e",
    "semver": "0.22.2",
    "publishedAt": "2026-10-28T15:23:46+00:00"
  },
  "scope": "Dedicated domain, preserved URLs, browser storage migration and same service backends",
  "focusedJavaScriptTests": 7,
  "pythonDomainTests": 2,
  "pythonBuildTests": 4,
  "domPassed": true,
  "browserMigrationAndServices": {
    "checkedAt": "2026-10-28T15:25:30.672Z",
    "domain": "https://civ3.ya-erm.ru",
    "release": {
      "version": "90c55c2fe714611e",
      "semver": "0.22.2",
      "publishedAt": "2026-10-28T15:23:46+00:00"
    },
    "checks": {
      "exactPartyRestored": true,
      "audioAndGridRestoredBeforeStartup": true,
      "editorProjectCopied": true,
      "unrelatedDataExcluded": true,
      "oldStorageRetained": true,
      "manualSaveDownload": true,
      "newPartyNeverOverwritten": true,
      "notesWebSocketConnected": true,
      "sameNotesDocument": true,
      "researchNavigation": true,
      "realImageUploadAndDownload": true
    },
    "pageErrors": []
  },
  "http": {
    "checkedAt": "2026-10-28T15:25:21.620697+00:00",
    "canonical": "https://civ3.ya-erm.ru",
    "release": {
      "version": "90c55c2fe714611e",
      "semver": "0.22.2",
      "publishedAt": "2026-10-28T15:23:46+00:00"
    },
    "checks": [
      {
        "path": "/civilization",
        "status": 308,
        "location": "https://civ3.ya-erm.ru/"
      },
      {
        "path": "/civilization/",
        "status": 308,
        "location": "https://civ3.ya-erm.ru/"
      },
      {
        "path": "/civilization/research/?doc=test&x=1",
        "status": 308,
        "location": "https://civ3.ya-erm.ru/research/?doc=test&x=1"
      },
      {
        "path": "/civilization/notes/?doc=project",
        "status": 308,
        "location": "https://civ3.ya-erm.ru/notes/?doc=project"
      },
      {
        "path": "/civilization/upload/",
        "status": 308,
        "location": "https://civ3.ya-erm.ru/upload/"
      },
      {
        "path": "/civilization/images/2026-10-28_12-20-49-354_MSK/image.png?x=1",
        "status": 308,
        "location": "https://civ3.ya-erm.ru/images/2026-10-28_12-20-49-354_MSK/image.png?x=1"
      },
      {
        "path": "/civilization/research/file%20space.html?q=%D0%B4",
        "status": 308,
        "location": "https://civ3.ya-erm.ru/research/file%20space.html?q=%D0%B4"
      },
      {
        "path": "/",
        "status": 200
      },
      {
        "path": "/research/",
        "status": 200
      },
      {
        "path": "/notes/",
        "status": 200
      },
      {
        "path": "/upload/",
        "status": 200
      },
      {
        "path": "/notes-api/health",
        "status": 200
      },
      {
        "path": "/civilization/notes-api/health",
        "status": 200
      },
      {
        "path": "/api/image-upload",
        "foreignOrigin": 403
      },
      {
        "path": "/notes-api/health",
        "foreignOrigin": 403
      }
    ],
    "bridgeException": true,
    "prefixedAliases": true,
    "immutableAssetsAnd304": true
  },
  "gameRulesUnchanged": true,
  "fullMvpComplete": false,
  "fullParty": {
    "checkedAt": "2026-10-28T15:27:10.032Z",
    "url": "https://civ3.ya-erm.ru/",
    "browser": "156.0.8078.4",
    "codeVersion": "./app.mjs?v=90c55c2fe714611e",
    "profileId": "atlants2-827be8b3f7aab140",
    "schemaVersion": 39,
    "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": "07692f6596b0a3eeb878f84b94352844ae69bd4a2474749f548f2cfaf4cb85ce",
    "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": 19526484,
      "browserProcessRSSBytes": 486801408,
      "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."
    }
  },
  "publishedByteAudit": {
    "checkedAt": "2026-10-28T15:28:33.875847+00:00",
    "release": {
      "version": "90c55c2fe714611e",
      "semver": "0.22.2",
      "publishedAt": "2026-10-28T15:23:46+00:00"
    },
    "compiledDataAndManifestMedia": 4069,
    "manifestIncludesAllNativeColorVariantsAndAudio": true,
    "mismatches": [],
    "independentServiceFiles": 5,
    "changedServiceFiles": []
  }
}
