{"generatedAt":"2026-07-31T18:33:39.533Z","scope":{"countrySlug":"in","status":null,"action":"approve-visual-dry-run","assetSlug":null,"formatKey":null,"correctionType":null},"metrics":{"dualControlCount":2,"dualControlReadyCount":2,"needsCounterpartyCount":0,"needsDualControlFieldsCount":0,"needsCorrectionEventCount":0,"blockedByPolicyCount":0,"samePersonForbiddenCount":2,"approvalWriteDisabledCount":2,"correctionEventWrittenCount":0,"auditLogMutatedCount":0,"approvalWrittenCount":0,"mcpIndexWrittenCount":0,"mapPublishDisabledCount":2,"registryPromotionAllowedCount":0,"approvalDigestCount":2,"mcpResourceCount":2,"localGeneratedEvidenceCount":0,"sourceMismatchCount":0,"sourceEvidenceDigestCount":0},"records":[{"generatedAt":"2026-07-31T18:33:39.533Z","dualControlId":"asset-visual-approval-audit-correction-dual-control-approve-visual-dry-run-in-invit-infra-corridor-isometric-nft-card","correctionEventId":"asset-visual-approval-audit-correction-approve-visual-dry-run-in-invit-infra-corridor-isometric-nft-card","targetAuditLogId":"asset-visual-approval-audit-log-approve-visual-dry-run-in-invit-infra-corridor-isometric-nft-card","targetAuditDigest":"7e93b0fd53f3a31a2cbc52abebec306c5efd6ae0e22995beded7b16860418a82","targetSourceActionDigest":"0dfb6e5930e5edecceeb4ea44f1ff36b21419c384e190b588a1f4ca013674eec","targetSourceEvidenceSha256":null,"correctionDigest":"680204f181f5277c41f767455b109e6321d90641411fe75d79cadafc101c1f1a","action":"approve-visual-dry-run","actionLabel":"批准图片 dry-run","humanConfirmationId":"asset-visual-approval-human-confirmation-in-invit-infra-corridor-isometric-nft-card","identityFixtureId":"asset-visual-approval-identity-fixture-in-invit-infra-corridor-isometric-nft-card","candidateSlug":"in-invit-infra-corridor","assetName":"印度 REITs / InvIT Infra Corridor","nftStyleName":"REITs Pixel Asset #IN-Infra-10","countrySlug":"in","countryName":"印度","cityName":"Mumbai","assetType":"基础设施走廊","formatKey":"isometric-nft-card","source":null,"sourceEvidence":{"sourceType":"missing-source","localFileDetected":false,"publicPath":null,"sha256":null,"bytes":null,"manifestSource":null,"sourceMatchesTransaction":false,"visualIntakeHref":"/operations/bbs-gap-visual-intake-queue?asset=in-invit-infra-corridor&format=isometric-nft-card","approvalPlaceholderHref":"/operations/asset-visual-approval-placeholder-ledger?asset=in-invit-infra-corridor&format=isometric-nft-card","evidenceNote":"当前没有 source image，必须保持 blocked preview row。"},"status":"dual-control-ready","statusLabel":"双人确认 dry-run 可校验","correctionType":"policy-blocker-note","correctionStatus":"correction-schema-ready","correctionStatusLabel":"纠错事件 schema 可校验","redactionScope":"metadata-only","dualControlDryRun":true,"dualControlWriteDisabled":true,"dualControlOnly":true,"correctionWriteDisabled":true,"correctionEventWritten":false,"auditLogMutated":false,"approvalWritten":false,"sessionCreated":false,"mcpIndexWritten":false,"mapPublishDisabled":true,"bbsPostDisabled":true,"registryPromotionAllowed":false,"samePersonForbidden":true,"requiredInputs":["actorRole","actorName","reviewerRole","reviewerName","secondConfirm","approvalReason","dualControlDryRun","dualControlWriteDisabled","dualControlOnly","approvalSchemaVersion","correctionDryRun","correctionWriteDisabled","correctionOnly","correctionSchemaVersion","correctionType","correctionReason","targetAuditLogId","targetAuditDigest","targetSourceActionDigest","sourceEvidenceSha256"],"blockers":[],"approvalSchema":{"table":"asset_visual_approval_audit_correction_approvals","schemaVersion":"2026-06-visual-approval-audit-correction-dual-control-v1","approvalId":"asset-visual-approval-audit-correction-dual-control-approve-visual-dry-run-in-invit-infra-corridor-isometric-nft-card","approvalType":"visual-correction-dual-control","correctionEventId":"asset-visual-approval-audit-correction-approve-visual-dry-run-in-invit-infra-corridor-isometric-nft-card","targetAuditLogId":"asset-visual-approval-audit-log-approve-visual-dry-run-in-invit-infra-corridor-isometric-nft-card","targetAuditDigest":"7e93b0fd53f3a31a2cbc52abebec306c5efd6ae0e22995beded7b16860418a82","targetSourceActionDigest":"0dfb6e5930e5edecceeb4ea44f1ff36b21419c384e190b588a1f4ca013674eec","targetSourceEvidenceSha256":null,"sourceEvidencePublicPath":null,"sourceMatchesTransaction":false,"correctionDigest":"680204f181f5277c41f767455b109e6321d90641411fe75d79cadafc101c1f1a","correctionType":"policy-blocker-note","formatKey":"isometric-nft-card","initiatorRole":"ops","reviewerRole":"compliance","secondConfirmRequired":true,"samePersonForbidden":true,"createdAt":"2026-07-31T18:33:39.533Z","writeMode":"dry-run-only"},"roleMatrix":[{"role":"ops","canInitiate":true,"canReview":true,"canBypassPolicy":false,"note":"可以发起纠错，也可以复核非 redaction 纠错。"},{"role":"design","canInitiate":true,"canReview":false,"canBypassPolicy":false,"note":"可以发现视觉问题，但策略阻断说明需要合规或 admin 复核。"},{"role":"compliance","canInitiate":true,"canReview":true,"canBypassPolicy":false,"note":"负责 redaction、策略阻断和公开展示风险复核。"},{"role":"admin","canInitiate":true,"canReview":true,"canBypassPolicy":false,"note":"可以填任一槽位，但不能绕过同人禁止、摘要校验或策略阻断。"}],"dualControlPacket":{"initiatorSlot":"visual-correction-initiator","reviewerSlot":"visual-correction-reviewer","futureIdentityProvider":"future:ops-sso + visual-reviewer-session-binding","sessionStorage":"future:httpOnly-session + immutable visual actor snapshot","proofRequiredBeforeWrite":true,"sourceEvidenceRequired":true,"preserveSourceEvidenceDigest":true,"sourceEvidenceRedactionAllowed":false,"approvalWriteDisabled":true},"approvalDigest":"9c796c66698d0d1b2e0816ad07418182055f201409e9b705ee42f85b8587d228","links":{"dualControlApi":"/api/public/operations/asset-visual-approval-audit-correction-dual-control?asset=in-invit-infra-corridor&format=isometric-nft-card&action=approve-visual-dry-run&type=policy-blocker-note","dualControlPage":"/operations/asset-visual-approval-audit-correction-dual-control?asset=in-invit-infra-corridor&format=isometric-nft-card&action=approve-visual-dry-run&type=policy-blocker-note","correction":"/operations/asset-visual-approval-audit-corrections?asset=in-invit-infra-corridor&format=isometric-nft-card&action=approve-visual-dry-run","correctionApi":"/api/public/operations/asset-visual-approval-audit-corrections?asset=in-invit-infra-corridor&format=isometric-nft-card&action=approve-visual-dry-run","auditLog":"/operations/asset-visual-approval-audit-log-dry-run?asset=in-invit-infra-corridor&format=isometric-nft-card&action=approve-visual-dry-run","action":"/operations/asset-visual-approval-human-confirmation-actions?asset=in-invit-infra-corridor&format=isometric-nft-card&action=approve-visual-dry-run","humanConfirmation":"/operations/asset-visual-approval-human-confirmation-dry-run?asset=in-invit-infra-corridor&format=isometric-nft-card","identityFixture":"/operations/asset-visual-approval-identity-fixture-dry-run?asset=in-invit-infra-corridor&format=isometric-nft-card","evidenceTransaction":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=in-invit-infra-corridor&format=isometric-nft-card","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=in-invit-infra-corridor&decision=blocked-by-brief&format=isometric-nft-card","registryPreview":"/operations/asset-visual-registry-preview?asset=in-invit-infra-corridor&format=isometric-nft-card","search":"/search?q=%E5%8D%B0%E5%BA%A6%20REITs%20%2F%20InvIT%20Infra%20Corridor"},"mcp":{"dualControlResourceUri":"reits://asset-visual-approval-audit-correction-dual-control/approve-visual-dry-run/in-invit-infra-corridor/isometric-nft-card","correctionResourceUri":"reits://asset-visual-approval-audit-correction/approve-visual-dry-run/in-invit-infra-corridor/isometric-nft-card","auditLogResourceUri":"reits://asset-visual-approval-audit-log/approve-visual-dry-run/in-invit-infra-corridor/isometric-nft-card","visualApprovalHumanConfirmationActionResourceUri":"reits://asset-visual-approval-human-confirmation-action/approve-visual-dry-run/in-invit-infra-corridor/isometric-nft-card","visualApprovalHumanConfirmationResourceUri":"reits://asset-visual-approval-human-confirmation/in-invit-infra-corridor/isometric-nft-card","visualApprovalIdentityFixtureResourceUri":"reits://asset-visual-approval-identity-fixture/in-invit-infra-corridor/isometric-nft-card","visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/in-invit-infra-corridor/isometric-nft-card","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/in-invit-infra-corridor/isometric-nft-card","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/in-invit-infra-corridor/isometric-nft-card","visualReviewResourceUri":"reits://asset-visual-review-ledger/in-invit-infra-corridor/isometric-nft-card","futureAssetResourceUri":"reits://virtual-assets/in-invit-infra-corridor"}},{"generatedAt":"2026-07-31T18:33:39.533Z","dualControlId":"asset-visual-approval-audit-correction-dual-control-approve-visual-dry-run-in-invit-infra-corridor-pixel-map-pin","correctionEventId":"asset-visual-approval-audit-correction-approve-visual-dry-run-in-invit-infra-corridor-pixel-map-pin","targetAuditLogId":"asset-visual-approval-audit-log-approve-visual-dry-run-in-invit-infra-corridor-pixel-map-pin","targetAuditDigest":"8fbfd41c0c97a69ad579bd8e9681e894bd740a3da357841116e3bb6837c3793b","targetSourceActionDigest":"c8ae24a524ae4efc3d71c8c0abb5d2a728a6d961a3e8c78fc40b978752dfb605","targetSourceEvidenceSha256":null,"correctionDigest":"77625de7e17c7945c18b73539443e0d742e221928652242172ac0b7bb259cc5e","action":"approve-visual-dry-run","actionLabel":"批准图片 dry-run","humanConfirmationId":"asset-visual-approval-human-confirmation-in-invit-infra-corridor-pixel-map-pin","identityFixtureId":"asset-visual-approval-identity-fixture-in-invit-infra-corridor-pixel-map-pin","candidateSlug":"in-invit-infra-corridor","assetName":"印度 REITs / InvIT Infra Corridor","nftStyleName":"REITs Pixel Asset #IN-Infra-10","countrySlug":"in","countryName":"印度","cityName":"Mumbai","assetType":"基础设施走廊","formatKey":"pixel-map-pin","source":null,"sourceEvidence":{"sourceType":"missing-source","localFileDetected":false,"publicPath":null,"sha256":null,"bytes":null,"manifestSource":null,"sourceMatchesTransaction":false,"visualIntakeHref":"/operations/bbs-gap-visual-intake-queue?asset=in-invit-infra-corridor&format=pixel-map-pin","approvalPlaceholderHref":"/operations/asset-visual-approval-placeholder-ledger?asset=in-invit-infra-corridor&format=pixel-map-pin","evidenceNote":"当前没有 source image，必须保持 blocked preview row。"},"status":"dual-control-ready","statusLabel":"双人确认 dry-run 可校验","correctionType":"policy-blocker-note","correctionStatus":"correction-schema-ready","correctionStatusLabel":"纠错事件 schema 可校验","redactionScope":"metadata-only","dualControlDryRun":true,"dualControlWriteDisabled":true,"dualControlOnly":true,"correctionWriteDisabled":true,"correctionEventWritten":false,"auditLogMutated":false,"approvalWritten":false,"sessionCreated":false,"mcpIndexWritten":false,"mapPublishDisabled":true,"bbsPostDisabled":true,"registryPromotionAllowed":false,"samePersonForbidden":true,"requiredInputs":["actorRole","actorName","reviewerRole","reviewerName","secondConfirm","approvalReason","dualControlDryRun","dualControlWriteDisabled","dualControlOnly","approvalSchemaVersion","correctionDryRun","correctionWriteDisabled","correctionOnly","correctionSchemaVersion","correctionType","correctionReason","targetAuditLogId","targetAuditDigest","targetSourceActionDigest","sourceEvidenceSha256"],"blockers":[],"approvalSchema":{"table":"asset_visual_approval_audit_correction_approvals","schemaVersion":"2026-06-visual-approval-audit-correction-dual-control-v1","approvalId":"asset-visual-approval-audit-correction-dual-control-approve-visual-dry-run-in-invit-infra-corridor-pixel-map-pin","approvalType":"visual-correction-dual-control","correctionEventId":"asset-visual-approval-audit-correction-approve-visual-dry-run-in-invit-infra-corridor-pixel-map-pin","targetAuditLogId":"asset-visual-approval-audit-log-approve-visual-dry-run-in-invit-infra-corridor-pixel-map-pin","targetAuditDigest":"8fbfd41c0c97a69ad579bd8e9681e894bd740a3da357841116e3bb6837c3793b","targetSourceActionDigest":"c8ae24a524ae4efc3d71c8c0abb5d2a728a6d961a3e8c78fc40b978752dfb605","targetSourceEvidenceSha256":null,"sourceEvidencePublicPath":null,"sourceMatchesTransaction":false,"correctionDigest":"77625de7e17c7945c18b73539443e0d742e221928652242172ac0b7bb259cc5e","correctionType":"policy-blocker-note","formatKey":"pixel-map-pin","initiatorRole":"ops","reviewerRole":"compliance","secondConfirmRequired":true,"samePersonForbidden":true,"createdAt":"2026-07-31T18:33:39.533Z","writeMode":"dry-run-only"},"roleMatrix":[{"role":"ops","canInitiate":true,"canReview":true,"canBypassPolicy":false,"note":"可以发起纠错，也可以复核非 redaction 纠错。"},{"role":"design","canInitiate":true,"canReview":false,"canBypassPolicy":false,"note":"可以发现视觉问题，但策略阻断说明需要合规或 admin 复核。"},{"role":"compliance","canInitiate":true,"canReview":true,"canBypassPolicy":false,"note":"负责 redaction、策略阻断和公开展示风险复核。"},{"role":"admin","canInitiate":true,"canReview":true,"canBypassPolicy":false,"note":"可以填任一槽位，但不能绕过同人禁止、摘要校验或策略阻断。"}],"dualControlPacket":{"initiatorSlot":"visual-correction-initiator","reviewerSlot":"visual-correction-reviewer","futureIdentityProvider":"future:ops-sso + visual-reviewer-session-binding","sessionStorage":"future:httpOnly-session + immutable visual actor snapshot","proofRequiredBeforeWrite":true,"sourceEvidenceRequired":true,"preserveSourceEvidenceDigest":true,"sourceEvidenceRedactionAllowed":false,"approvalWriteDisabled":true},"approvalDigest":"aebf6a449b878bda1f0757d9f1cb2b1d9f7bb0f9f70d54853519f3f4e01e3e89","links":{"dualControlApi":"/api/public/operations/asset-visual-approval-audit-correction-dual-control?asset=in-invit-infra-corridor&format=pixel-map-pin&action=approve-visual-dry-run&type=policy-blocker-note","dualControlPage":"/operations/asset-visual-approval-audit-correction-dual-control?asset=in-invit-infra-corridor&format=pixel-map-pin&action=approve-visual-dry-run&type=policy-blocker-note","correction":"/operations/asset-visual-approval-audit-corrections?asset=in-invit-infra-corridor&format=pixel-map-pin&action=approve-visual-dry-run","correctionApi":"/api/public/operations/asset-visual-approval-audit-corrections?asset=in-invit-infra-corridor&format=pixel-map-pin&action=approve-visual-dry-run","auditLog":"/operations/asset-visual-approval-audit-log-dry-run?asset=in-invit-infra-corridor&format=pixel-map-pin&action=approve-visual-dry-run","action":"/operations/asset-visual-approval-human-confirmation-actions?asset=in-invit-infra-corridor&format=pixel-map-pin&action=approve-visual-dry-run","humanConfirmation":"/operations/asset-visual-approval-human-confirmation-dry-run?asset=in-invit-infra-corridor&format=pixel-map-pin","identityFixture":"/operations/asset-visual-approval-identity-fixture-dry-run?asset=in-invit-infra-corridor&format=pixel-map-pin","evidenceTransaction":"/operations/asset-visual-approval-evidence-transaction-dry-run?asset=in-invit-infra-corridor&format=pixel-map-pin","visualReview":"/operations/virtual-asset-visual-review-ledger?asset=in-invit-infra-corridor&decision=blocked-by-brief&format=pixel-map-pin","registryPreview":"/operations/asset-visual-registry-preview?asset=in-invit-infra-corridor&format=pixel-map-pin","search":"/search?q=%E5%8D%B0%E5%BA%A6%20REITs%20%2F%20InvIT%20Infra%20Corridor"},"mcp":{"dualControlResourceUri":"reits://asset-visual-approval-audit-correction-dual-control/approve-visual-dry-run/in-invit-infra-corridor/pixel-map-pin","correctionResourceUri":"reits://asset-visual-approval-audit-correction/approve-visual-dry-run/in-invit-infra-corridor/pixel-map-pin","auditLogResourceUri":"reits://asset-visual-approval-audit-log/approve-visual-dry-run/in-invit-infra-corridor/pixel-map-pin","visualApprovalHumanConfirmationActionResourceUri":"reits://asset-visual-approval-human-confirmation-action/approve-visual-dry-run/in-invit-infra-corridor/pixel-map-pin","visualApprovalHumanConfirmationResourceUri":"reits://asset-visual-approval-human-confirmation/in-invit-infra-corridor/pixel-map-pin","visualApprovalIdentityFixtureResourceUri":"reits://asset-visual-approval-identity-fixture/in-invit-infra-corridor/pixel-map-pin","visualApprovalEvidenceTransactionResourceUri":"reits://asset-visual-approval-evidence-transaction/in-invit-infra-corridor/pixel-map-pin","visualApprovalEvidenceResourceUri":"reits://asset-visual-approval-evidence/in-invit-infra-corridor/pixel-map-pin","visualRegistryPreviewResourceUri":"reits://asset-visual-registry-preview/in-invit-infra-corridor/pixel-map-pin","visualReviewResourceUri":"reits://asset-visual-review-ledger/in-invit-infra-corridor/pixel-map-pin","futureAssetResourceUri":"reits://virtual-assets/in-invit-infra-corridor"}}],"statusBreakdown":[{"status":"dual-control-ready","label":"双人确认 dry-run 可校验","count":2},{"status":"needs-counterparty","label":"需要复核人","count":0},{"status":"needs-dual-control-fields","label":"需要双人确认字段","count":0},{"status":"needs-correction-event","label":"需要纠错事件","count":0},{"status":"blocked-by-policy","label":"策略阻断","count":0}],"roleBreakdown":[{"role":"ops","canInitiateCount":2,"canReviewCount":2},{"role":"design","canInitiateCount":2,"canReviewCount":0},{"role":"compliance","canInitiateCount":2,"canReviewCount":2},{"role":"admin","canInitiateCount":2,"canReviewCount":2}],"publicNotes":["当前筛选没有 BBS Gap 图片纠错双人确认 dry-run。","当前筛选范围输出 2 条图片纠错双人确认 dry-run，2 条可校验。","其中 0 条双人确认绑定源图证据；复核人必须校验 sourceEvidenceSha256、targetSourceActionDigest 与纠错事件一致。","所有 correction/redaction 写入前都必须有发起人和复核人，且同人禁止。","admin 不能绕过 targetAuditDigest、correctionDigest、角色矩阵、MCP 写入红线或策略阻断。"],"qaWarnings":["该层不会写 approval，approvalWritten 始终为 false。","该层不会写纠错事件，correctionEventWritten 始终为 false。","该层不会修改原图片审批审计日志，auditLogMutated 始终为 false。","POST 校验必须继承纠错事件 requiredInputs，并携带匹配的 targetSourceActionDigest 与 sourceEvidenceSha256。","真实登录、角色表、双人签名、redaction worker 和 MCP 写入队列完成前，不得开放真实纠错确认。"]}