{
  "verifiedAt": "2026-10-26T04:15:39.8767861+00:00",
  "result": "PASS",
  "scope": "Release identities, source trees and downloaded assets verified; CI conclusions are recorded separately below.",
  "displayName": "XAi",
  "package": "io.github.yudigaga.xai",
  "versionName": "0.4.0",
  "versionCode": 8,
  "artifact": "XAi-0.4.0-api102-release.apk",
  "bytes": 4726507,
  "sha256": "798f52e39b48c211528ac863f0f6c6aebe4710a787825ad787e3750f3f5ab385",
  "sourceCommit": "b47981c3351e6c3d72228fd847f6a49ee43fd18e",
  "sourceGitTree": "2cd960d2304d1c4278262a5bea3bbc717dd269f7",
  "sourceModuleTree": "674a34cc4c7b1168820f1d05937d2ebd6717d54f",
  "sourceWorkingTreeClean": true,
  "lsposedDocsCommit": "922bdfe08e8f46fd4c156d9088ff643378702792",
  "lsposedGitTree": "df617ba49f7ca77e7d50ede74ea9eb8c4b7d1b29",
  "lsposedWorkingTreeClean": true,
  "releases": [
    {
      "repository": "yudigaga/xai",
      "tag": "v0.4.0",
      "commit": "b47981c3351e6c3d72228fd847f6a49ee43fd18e",
      "url": "https://github.com/yudigaga/xai/releases/tag/v0.4.0",
      "latest": true,
      "draft": false,
      "prerelease": false,
      "assets": [
        {
          "name": "XAi-0.4.0-api102-release.apk",
          "sha256": "798f52e39b48c211528ac863f0f6c6aebe4710a787825ad787e3750f3f5ab385",
          "bytes": 4726507,
          "githubAssetDigest": "sha256:798f52e39b48c211528ac863f0f6c6aebe4710a787825ad787e3750f3f5ab385",
          "downloadedByteVerification": "PASS"
        },
        {
          "name": "SHA256SUMS",
          "sha256": "9d237dc51daa4f54a73ecc96f7fa4b8b227496e2f57e2b0c438bd0964cb6c40a",
          "bytes": 95,
          "githubAssetDigest": "sha256:9d237dc51daa4f54a73ecc96f7fa4b8b227496e2f57e2b0c438bd0964cb6c40a",
          "downloadedByteVerification": "PASS"
        },
        {
          "name": "XAi-0.4.0-verification.json",
          "sha256": "a334803e62218c697b1097eb31da400d209a40f11d6f5a4a7d439a23333ef000",
          "bytes": 22111,
          "githubAssetDigest": "sha256:a334803e62218c697b1097eb31da400d209a40f11d6f5a4a7d439a23333ef000",
          "downloadedByteVerification": "PASS"
        }
      ]
    },
    {
      "repository": "Xposed-Modules-Repo/io.github.yudigaga.xai",
      "tag": "8-0.4.0",
      "commit": "922bdfe08e8f46fd4c156d9088ff643378702792",
      "url": "https://github.com/Xposed-Modules-Repo/io.github.yudigaga.xai/releases/tag/8-0.4.0",
      "latest": true,
      "draft": false,
      "prerelease": false,
      "assets": [
        {
          "name": "XAi-0.4.0-api102-release.apk",
          "sha256": "798f52e39b48c211528ac863f0f6c6aebe4710a787825ad787e3750f3f5ab385",
          "bytes": 4726507,
          "githubAssetDigest": "sha256:798f52e39b48c211528ac863f0f6c6aebe4710a787825ad787e3750f3f5ab385",
          "downloadedByteVerification": "PASS"
        },
        {
          "name": "SHA256SUMS",
          "sha256": "9d237dc51daa4f54a73ecc96f7fa4b8b227496e2f57e2b0c438bd0964cb6c40a",
          "bytes": 95,
          "githubAssetDigest": "sha256:9d237dc51daa4f54a73ecc96f7fa4b8b227496e2f57e2b0c438bd0964cb6c40a",
          "downloadedByteVerification": "PASS"
        },
        {
          "name": "XAi-0.4.0-verification.json",
          "sha256": "a334803e62218c697b1097eb31da400d209a40f11d6f5a4a7d439a23333ef000",
          "bytes": 22111,
          "githubAssetDigest": "sha256:a334803e62218c697b1097eb31da400d209a40f11d6f5a4a7d439a23333ef000",
          "downloadedByteVerification": "PASS"
        }
      ]
    }
  ],
  "ci": [
    {
      "conclusion": "success",
      "databaseId": 40267562720,
      "headBranch": "v0.4.0",
      "headSha": "b47981c3351e6c3d72228fd847f6a49ee43fd18e",
      "status": "completed",
      "url": "https://github.com/yudigaga/xai/actions/runs/40267562720"
    },
    {
      "conclusion": "success",
      "databaseId": 40267559825,
      "headBranch": "main",
      "headSha": "b47981c3351e6c3d72228fd847f6a49ee43fd18e",
      "status": "completed",
      "url": "https://github.com/yudigaga/xai/actions/runs/40267559825"
    }
  ],
  "remoteValidation": {
    "runId": 40267562720,
    "commit": "b47981c3351e6c3d72228fd847f6a49ee43fd18e",
    "scope": "Remote Debug variant; Release signing and Release JVM validation performed locally",
    "tests": {
      "suites": 93,
      "tests": 649,
      "failures": 0,
      "errors": 0,
      "skipped": 0
    },
    "lint": {
      "errors": 0,
      "warnings": 23,
      "other": 2
    }
  },
  "localValidation": {
    "debugTests": {
      "tests": 649,
      "failures": 0,
      "errors": 0,
      "skipped": 0
    },
    "releaseTests": {
      "tests": 649,
      "failures": 0,
      "errors": 0,
      "skipped": 0
    },
    "releaseLint": {
      "errors": 0,
      "warnings": 22,
      "totalIssues": 24
    },
    "pythonRegressions": {
      "ruleGeneration": 2,
      "artifactRuleBudget": 3,
      "failures": 0,
      "execution": "Re-executed during publication with python -B"
    },
    "publicationRechecks": [
      "APK/output hashes",
      "Independent v2/v3 signatures and certificate continuity",
      "16 KiB ZIP alignment",
      "Mapping-aware R8 APK contract",
      "Original Debug/Release test XML and Release report snapshot"
    ],
    "gradleTestsRerunDuringPublication": false,
    "debugLint": "Not rerun locally for 0.4.0; the pre-existing local Debug lint XML is from October 25, 2026. New remote CI runs perform Debug lint independently.",
    "sourceProvenance": "Release source only received a whitespace-only blank-line cleanup in ConfigTransfer.java after the local APK build; no application logic changed."
  },
  "deviceValidation": {
    "performed": false,
    "pending": [
      "Real LSPosed/ART callbacks and minified DEX execution",
      "Host UI and gesture behavior",
      "Native sending and automation behavior",
      "Real model/TTS/parser services and CDN downloads",
      "SAF file selection/export and interrupted transfers",
      "Restart handshake and launcher hide/restore"
    ]
  }
}
