{
  "task": "THREE-PROD-20261103",
  "issue": 40,
  "at": "2026-11-03T08:10:19.405128+00:00",
  "operationsPassed": true,
  "phase": "production-live-verified-clean-main-ready-for-QA-source-receipt-review",
  "productionExecutionReleased": true,
  "sameReleaseBefore22ShanghaiExceptionApproved": true,
  "frozenCandidate": "../candidate-without-alert.json",
  "originalAcceptedBusinessFiles": 14,
  "all14SourceAndMainHashesExactlyMatch": true,
  "gitScopeReadback": "git-scope-readback.json",
  "qaEvidenceReused": {
    "originalBusinessCases": 20,
    "originalUIScreenshots": 23,
    "stagingRelease": "../../release/receipt.json",
    "stagingNonemptyCNHKRead": "../../release/readonly-smoke.json",
    "approvedSevenLineDeletionQACases": 3,
    "deletionQAWriteback": "../qa/redmine-writeback-receipt.json",
    "deletionQAJournal": 372,
    "deletionUIReview": "../ui/receipt.json",
    "originalJournalsPreserved": [
      370,
      371
    ],
    "fullTestsBuildSelfTestsOrUIRepeated": false
  },
  "repositories": {
    "backend": {
      "sourceBranch": "feature/home-blacklist-income-integration",
      "originalFeatureCommit": "9773ed150ed88714a7fd6bd8664f98b128dd1d5e",
      "approvedAlertRemovalCommit": null,
      "finalSourceCommit": "9773ed150ed88714a7fd6bd8664f98b128dd1d5e",
      "mainBase": "52a00635480872694faf4b13c692a114104f87e2",
      "normalMergeCommit": "2414b6c8530627cedaacf62db95fdf4242176445",
      "metadataCommit": "f551aee4f75976295715b13f786d522b05e01fe3",
      "tag": "v1.20.18",
      "version": "1.20.18",
      "candidate": "f551aee4f75976295715b13f786d522b05e01fe3",
      "acceptedFileHashes": {
        "api/finance/services.py": "170266e8970e22aa2e704666f1f5eb5b7691d82cc708ad2da1fb6159b3705fd4",
        "api/finance/tests_billing_income_regions.py": "b10e919655b02932f62b70b1e446aa99a386c1f5acff7230f61c6eb1b742b54a"
      },
      "metadataFiles": [
        "api/__init__.py",
        ".cz.toml",
        "CHANGELOG.md"
      ],
      "gitReceipt": "backend-git.json",
      "ciReceipt": "backend-ci.json",
      "ciSn": "cnb-lrl-1k6g6oo94",
      "ciPassed": true,
      "ciStages": [
        {
          "id": "prepare",
          "name": "Prepare",
          "status": "success"
        },
        {
          "id": "stage-0",
          "name": "设置镜像标签",
          "status": "success"
        },
        {
          "id": "stage-1",
          "name": "生成 .env.production",
          "status": "success"
        },
        {
          "id": "stage-2",
          "name": "构建 Docker 依赖缓存",
          "status": "success"
        },
        {
          "id": "stage-3",
          "name": "构建 Docker 镜像",
          "status": "success"
        },
        {
          "id": "stage-4",
          "name": "推送镜像",
          "status": "success"
        },
        {
          "id": "stage-5",
          "name": "更新 staging 镜像标签",
          "status": "skipped"
        },
        {
          "id": "stage-6",
          "name": "触发 Coolify 测试环境部署",
          "status": "skipped"
        },
        {
          "id": "stage-7",
          "name": "更新 production 镜像标签",
          "status": "success"
        },
        {
          "id": "stage-8",
          "name": "触发 Coolify 自动部署",
          "status": "success"
        },
        {
          "id": "beforeEnd",
          "name": "BeforeEnd",
          "status": "success"
        },
        {
          "id": "debugDetection",
          "name": "DebugDetection",
          "status": "skipped"
        },
        {
          "id": "end",
          "name": "End",
          "status": "success"
        }
      ],
      "productionImagePushDigest": "sha256:952d70b30acdd130091a755fa79feabfcd01a1f4f4ef49d57c3aac7307ef3b8b",
      "productionAliasAndDeploymentTriggerSucceeded": true,
      "stagingStagesSkipped": true,
      "actualVersion": "1.20.18",
      "directRuntimeReceipt": "backend-runtime.json",
      "runtimePassed": true,
      "cleanMain": true,
      "remoteMainMatchesCandidate": true
    },
    "frontend": {
      "sourceBranch": "feature/home-blacklist-income-integration",
      "originalFeatureCommit": "c48a0fba4ed7eda9f9c7fa81c2851b3d6ca3b42e",
      "approvedAlertRemovalCommit": "d93f03a53d625c05c50b65c890a2e7c1a0a6f0f1",
      "finalSourceCommit": "d93f03a53d625c05c50b65c890a2e7c1a0a6f0f1",
      "mainBase": "1a756e16b128b84f9a6d89b32e567e9ca39e06d4",
      "normalMergeCommit": "d81d742245c20220fcf7f5c5080bc6f1cc0baf8a",
      "metadataCommit": "a3a808c400162f1a837300c97a01b429da52d7ba",
      "tag": "v2.16.10",
      "version": "2.16.10",
      "candidate": "a3a808c400162f1a837300c97a01b429da52d7ba",
      "acceptedFileHashes": {
        "src/config/router.config.js": "edee5d03e60238fd73d0bfdc2a02a80207f4805e3a4ccc129e3cebad2ed76914",
        "src/layouts/BlankLayout.vue": "86351002b15e78c857555ecc8fb18ed1dbc55d21a10a924b8a113d2858f04678",
        "src/locales/lang/zh-CN/menu.js": "a32a6cae935b19cd64a91bf2ae6cd1c67a356e27d5dda35d2bab29243ecf9d14",
        "src/utils/actionRoutePermission.mjs": "e7bee04e506a9964b0df26141bfd033193ec9524e93f0e3bcbafc4af1b6a2a19",
        "src/utils/permission.js": "9d582ec0eb3eb7d280e615281728feee9ba944bb0ef20d67b2dd627c57f93476",
        "src/views/candidates/candidate.vue": "cabf38b7c8db6c53467c162a64a2d8108feebb858b6504540f09fe5d8410b53e",
        "src/views/candidates/index.vue": "594e6f5e6e75602df5c549101a8e2c7c5c4936961338c7e7b3710a2543ecfa81",
        "src/views/dashboard/index.vue": "9f32f24bc92b57a2ad9ae1298049d25a76623fe97e5ece353515924d6f453b8b",
        "src/views/expertBlacklist/index.test.mjs": "da8888baa3b92a9341cb9479f105bdc24f27e918f5e55baa9ddcf2d2e9a983b2",
        "src/views/expertBlacklist/index.vue": "2b572848bc5009e16ebc2dd25a763360f392653c7c59e92ae73b11de213595cf",
        "src/views/finance_uncharged/incomeRegions.test.mjs": "21be0589082c0ea3954063217b2dc8e06b37976c038b9576e172fd09dcfb836d",
        "src/views/finance_uncharged/index.vue": "da964947c71e766e1b20ea4726044ba75f335e3e6cecff0196159273ac348f4e"
      },
      "metadataFiles": [
        "package.json",
        "CHANGELOG.md"
      ],
      "gitReceipt": "frontend-git.json",
      "ciReceipt": "frontend-ci.json",
      "ciSn": "cnb-lbk-1k6g6u37j",
      "ciPassed": true,
      "ciStages": [
        {
          "id": "prepare",
          "name": "Prepare",
          "status": "success"
        },
        {
          "id": "stage-0",
          "name": "设置镜像标签",
          "status": "success"
        },
        {
          "id": "stage-1",
          "name": "构建 Docker 依赖缓存",
          "status": "success"
        },
        {
          "id": "stage-2",
          "name": "构建 Docker 镜像",
          "status": "success"
        },
        {
          "id": "stage-3",
          "name": "推送镜像",
          "status": "success"
        },
        {
          "id": "stage-4",
          "name": "更新 staging 镜像标签",
          "status": "skipped"
        },
        {
          "id": "stage-5",
          "name": "触发 Coolify 测试环境部署",
          "status": "skipped"
        },
        {
          "id": "stage-6",
          "name": "更新 production 镜像标签",
          "status": "success"
        },
        {
          "id": "stage-7",
          "name": "触发 Coolify 自动部署",
          "status": "success"
        },
        {
          "id": "beforeEnd",
          "name": "BeforeEnd",
          "status": "success"
        },
        {
          "id": "debugDetection",
          "name": "DebugDetection",
          "status": "skipped"
        },
        {
          "id": "end",
          "name": "End",
          "status": "success"
        }
      ],
      "productionImagePushDigest": "sha256:8a7c81ef0ecabc2e0332433b38cd32c3cf52cb2678ce4e07b8667def0b74e346",
      "productionAliasAndDeploymentTriggerSucceeded": true,
      "stagingStagesSkipped": true,
      "actualVersion": "2.16.10",
      "directRuntimeReceipt": "frontend-runtime.json",
      "runtimePassed": true,
      "cleanMain": true,
      "remoteMainMatchesCandidate": true
    }
  },
  "productionBaseline": "production-baseline.json",
  "rollbackArtifacts": "rollback-artifacts.json",
  "rollbackVerification": "Old formal tags and linux/amd64 artifact details accessible via authenticated official CNB registry API; no rollback or image download performed. Anonymous registry access401 was an access limitation, resolved by official authenticated metadata read.",
  "minimalReadOnlyVerification": {
    "backendPublicVersion": "backend-runtime.json",
    "actualBackendSourceAndPureContract": "backend-deployed-code.json",
    "backendAcceptedFilesMatch": true,
    "liveCNHKFieldContractAndNormalizationPassed": true,
    "contractSQLQueries": 0,
    "frontendServedVersionAndResourceProof": "frontend-runtime.json",
    "frontendSettingsRouteAndStaticInfoRemovalPassed": true,
    "authenticatedProductionBusinessHTTPExercised": false,
    "identityAndSessionDisposition": "identity-and-session-disposition.json",
    "productionBusinessSessionCreated": false,
    "newProductionAccountCreated": false,
    "reason": "No designated dedicated production identity found in BW; no real employee or staging credentials borrowed. Existing nonempty staging API and independent QA evidence reused."
  },
  "canonicalMainClosure": "main-closure.json",
  "bothCleanLocalMainEqualLiveRemoteMain": true,
  "localAndRemotePreviewUntouched": true,
  "normalOriginalFeatureMergesOnly": true,
  "previewOrBetaHistoryMerged": false,
  "sourceBranchesRetained": true,
  "newBranchOrWorktreeCreated": false,
  "forceResetRestoreCleanOrBranchDeletionUsed": false,
  "onlyMainAndExactFormalTagsPushed": true,
  "browserCleanup": "browser-state.json",
  "browserFinished": true,
  "localQAEnvironmentCleanup": "local-cleanup.json",
  "retainedLocalVolumeDatabaseAccountsFixturesAndEvidence": true,
  "opsInitiatedProductionBusinessWrites": false,
  "productionBlacklistingFinanceApprovalPaymentOrNotificationTriggered": false,
  "newSchemaOrMigrationFiles": false,
  "additionalManualMigrationOrSchemaInventoryPerformed": false,
  "newReleaseBackupOrExistingBackupModification": false,
  "coolifyApplicationServiceHealthOrDeploymentStatusQueried": false,
  "deploymentTriggerEvidenceSource": "CNB stages only",
  "aociAssetsChangedOrMaintenanceClaimed": false,
  "remainingOwner": "Existing QA reviews this same raw receipt and appends #40 once, then primary closes delivery",
  "qaShouldRepeatLiveRuntimeOrBusinessQA": false,
  "limitations": [
    "Production checks use public versions, exact deployed backend source and zero-query pure contract plus frontend served resources; no authenticated production business workflow was exercised.",
    "Frontend proof binds accepted source to tagged CI and emitted/served asset names; no direct frontend container source byte comparison is claimed.",
    "Original accepted business/role/callback boundaries remain as documented; a CI/version pass is not a new complete business QA run."
  ]
}
