Project

General

Profile

QA验收 #40 » receipt.json

Redmine Admin, 11/03/2026 08:12 AM

 
{
"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."
]
}
(12-12/12)