{"data":[{"id":"7283969a-7ca9-49c3-b609-91a99da1f3ca","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-13d4bfff1bca","reason":"anchored_edit_anchor_missing:workers/cc-execution/scripts/cc-execution-safe-release.mjs","status":"blocked","metrics":{"receiptBytes":24513,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":"2026-09-25T13:46:02.972Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.281-witness-lane-affinity","prNumber":null,"terminal":false,"missionId":"13d4bfff-1bca-4a92-98d1-2c2369b46061","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":2045,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":2045,"missionSetupMs":312,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":312,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":312,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":312,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"13d4bfff-1bca-4a92-98d1-2c2369b46061"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1555,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T13:46:06.121499+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:13d4bfff-1bca-4a92-98d1-2c2369b46061:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"d40c68aa-3748-42d9-a2af-f2cde7f3ef64","command_center_event_id":"13d4bfff-1bca-4a92-98d1-2c2369b46061"},{"id":"ec9e3500-9ad7-451d-9c2d-6e85ff1a2b54","source":"cc-execution","status":"waiting","payload":{"kind":"heartbeat","message":"Still active in release.","nextAction":{"lane":"production-release-conductor","action":"reconcile_release","reason":"merged_source_requires_release_proof","automationAllowed":true,"ownerActionRequired":false},"silenceBudgetMs":15000,"semanticCheckpointSignature":"{\"stateMachineVersion\":1,\"phase\":\"release\",\"ownerFacingState\":null,\"latest\":{\"kind\":\"receipt\",\"key\":\"source_lineage_merged_pr_authoritative\",\"status\":\"waiting\",\"proofGate\":\"forgejo_merged_pr_is_authoritative_source_lineage\"},\"activeStep\":{\"key\":\"pull_request\",\"status\":\"ready\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"release\",\"status\":\"waiting\",\"lane\":\"production-release-conductor\"},\"nextSafeAction\":{\"action\":\"reconcile_release\",\"lane\":\"production-release-conductor\",\"reason\":\"merged_source_requires_release_proof\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"acceptance\":{\"total\":2,\"verified\":0,\"pending\":2,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"production\",\"visual\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"pull_request\",\"deadlineAt\":\"2026-09-22T04:22:58.041206+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/objective-first-repair-b01ddc0767ca\",\"prNumber\":3389,\"sourceSha\":\"e6a7c7400074ecde5b2c3935f54964de9f7113c7\",\"deploymentId\":\"forgejo-main-e6a7c7400074\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T01:57:13.214818+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:b01ddc07-67ca-45aa-bfaa-485ef6454ee6:owner-progress-heartbeat:119336148","mission_step_id":"c1cebd25-60f6-4a3e-a901-728d14cf2c32","command_center_event_id":"b01ddc07-67ca-45aa-bfaa-485ef6454ee6"},{"id":"22fca093-613d-4f1d-9801-20d898bf9c33","source":"cc-execution","status":"release_reconciliation_pending","payload":{"ok":true,"jobId":null,"phase":"release","branch":"ai/objective-first-repair-503502db5893","reason":null,"status":"release_reconciliation_pending","metrics":{"receiptBytes":15704,"releaseCount":0,"toolCallCount":9,"repeatedCallCount":3,"executorlessWaitMs":1245183,"firstUsefulResultAt":"2026-09-25T18:04:41.307Z","recoveryAttemptCount":5,"ownerInterruptionCount":0},"version":"1.58.282-lineage-main-guard","prNumber":3753,"terminal":false,"missionId":"503502db-5893-4e94-acfc-60206671793d","operation":"execute_mission","proofGate":"canonical_release_reconciliation_pending","sourceSha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1034,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":107,"approvedPlanMs":0,"missionSetupMs":1339,"providerAuthMs":0,"shipAndProveMs":412,"ledgerPrepareMs":367,"ledgerReconcileMs":0,"lineageReconcileMs":972,"resolvePreflightMs":1339,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":367,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"reconcile_release","receiptRef":{"mode":"full","missionId":"503502db-5893-4e94-acfc-60206671793d"},"performance":null,"deploymentId":"forgejo-main-675ad36dbeea","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime","visual"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":2577,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T18:25:28.307778+00:00","proof_gate":"canonical_release_reconciliation_pending","source_sha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","external_id":"forgejo-main-675ad36dbeea","receipt_type":"execute_mission","idempotency_key":"mission:503502db-5893-4e94-acfc-60206671793d:execute_mission:canonical_release_reconciliation_pending:current-generation","mission_step_id":"0314a657-2982-42a9-965b-b92352fa7b8c","command_center_event_id":"503502db-5893-4e94-acfc-60206671793d"},{"id":"b32a14fa-c618-4190-b37f-73718a082849","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success"},"mainSha":"10b646acbf7f47baf5d53726eee8cef8a8819618","missing":[],"pending":[],"required":["forgejo-main/source"],"sourceSha":"10b646acbf7f47baf5d53726eee8cef8a8819618","releaseState":"verified","sourceInMain":true,"compareStatus":"identical","releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{},"requestContractHash":"9e298d12176faf6d7a8694600a7c0c2976ca35bff00060f129cd6280ac3d721d","forgejoWorkflowProof":null,"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T02:14:55.319583+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"10b646acbf7f47baf5d53726eee8cef8a8819618","external_id":"forgejo-main-10b646acbf7f","receipt_type":"canonical_release_status","idempotency_key":"mission:d3a9d88f-87f3-4e74-86e3-24ac68520c07:forgejo-release-status:10b646acbf7f47baf5d53726eee8cef8a8819618:verified:forgejo-main/source=success","mission_step_id":"8e8c99f9-3fc4-4133-9453-c510296dbcc5","command_center_event_id":"d3a9d88f-87f3-4e74-86e3-24ac68520c07"},{"id":"a0bdf4e5-277f-4e8d-ad97-8a8a240b7588","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-503502db5893","prNumber":3753,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T18:25:26.534728+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","external_id":"3753","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:503502db-5893-4e94-acfc-60206671793d:merged-pr:3753:675ad36dbeea7d3a779a04c99a4be66d069f3a14","mission_step_id":"0314a657-2982-42a9-965b-b92352fa7b8c","command_center_event_id":"503502db-5893-4e94-acfc-60206671793d"},{"id":"03f97f85-dde5-4fac-a903-f2803abbcee5","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"e6a7c7400074ecde5b2c3935f54964de9f7113c7","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"e6a7c7400074ecde5b2c3935f54964de9f7113c7","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"pending"},"requestContractHash":"f516cb2b15db84f681ea7a8449c7981e2799d53e14fadbf6bd224c21c68a69b7","forgejoWorkflowProof":{"runId":10651,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"frontend":"pending"},"targetJobCount":7,"observedTargetStates":{"frontend":"pending"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T01:55:42.175696+00:00","proof_gate":"canonical_release_pending","source_sha":"e6a7c7400074ecde5b2c3935f54964de9f7113c7","external_id":"forgejo-main-e6a7c7400074","receipt_type":"canonical_release_status","idempotency_key":"mission:b01ddc07-67ca-45aa-bfaa-485ef6454ee6:forgejo-release-status:e6a7c7400074ecde5b2c3935f54964de9f7113c7:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"9d96efab-d46c-4a74-b438-be67b86daa57","command_center_event_id":"b01ddc07-67ca-45aa-bfaa-485ef6454ee6"},{"id":"6ee99f7c-f89a-4edc-a74c-ecc0161ae4ce","source":"cc-execution","status":"waiting","payload":{"kind":"heartbeat","message":"Still active in release.","nextAction":{"lane":"production-release-conductor","action":"reconcile_release","reason":"merged_source_requires_release_proof","automationAllowed":true,"ownerActionRequired":false},"silenceBudgetMs":15000,"semanticCheckpointSignature":"{\"stateMachineVersion\":1,\"phase\":\"release\",\"ownerFacingState\":null,\"latest\":{\"kind\":\"receipt\",\"key\":\"source_lineage_merged_pr_authoritative\",\"status\":\"waiting\",\"proofGate\":\"forgejo_merged_pr_is_authoritative_source_lineage\"},\"activeStep\":{\"key\":\"pull_request\",\"status\":\"ready\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"release\",\"status\":\"waiting\",\"lane\":\"production-release-conductor\"},\"nextSafeAction\":{\"action\":\"reconcile_release\",\"lane\":\"production-release-conductor\",\"reason\":\"merged_source_requires_release_proof\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"acceptance\":{\"total\":2,\"verified\":0,\"pending\":2,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"production\",\"visual\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"pull_request\",\"deadlineAt\":\"2026-09-22T04:22:58.041206+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/objective-first-repair-b01ddc0767ca\",\"prNumber\":3389,\"sourceSha\":\"e6a7c7400074ecde5b2c3935f54964de9f7113c7\",\"deploymentId\":\"forgejo-main-e6a7c7400074\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T01:58:23.071478+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:b01ddc07-67ca-45aa-bfaa-485ef6454ee6:owner-progress-heartbeat:119336153","mission_step_id":"c1cebd25-60f6-4a3e-a901-728d14cf2c32","command_center_event_id":"b01ddc07-67ca-45aa-bfaa-485ef6454ee6"},{"id":"bfff9b92-36e5-44d3-9cb7-742859c26b49","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","frontend-cloudflare/live":"success"},"mainSha":"e6a7c7400074ecde5b2c3935f54964de9f7113c7","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"e6a7c7400074ecde5b2c3935f54964de9f7113c7","releaseState":"verified","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"success"},"requestContractHash":"f516cb2b15db84f681ea7a8449c7981e2799d53e14fadbf6bd224c21c68a69b7","forgejoWorkflowProof":{"runId":10651,"source":"signed_push_receipt","status":"success","results":{},"conclusion":"success","targetStates":{"frontend":"success"},"targetJobCount":7,"observedTargetStates":{"frontend":"success"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T01:59:33.046348+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"e6a7c7400074ecde5b2c3935f54964de9f7113c7","external_id":"forgejo-main-e6a7c7400074","receipt_type":"canonical_release_status","idempotency_key":"mission:b01ddc07-67ca-45aa-bfaa-485ef6454ee6:forgejo-release-status:e6a7c7400074ecde5b2c3935f54964de9f7113c7:verified:forgejo-main/source=success|forgejo-release/workflow=success|frontend-cloudflare/live=success","mission_step_id":"55256587-4e3a-43dc-94ec-153e829666a0","command_center_event_id":"b01ddc07-67ca-45aa-bfaa-485ef6454ee6"},{"id":"e5a69283-3fdf-4858-911e-e50b96a0dfb0","source":"cc-execution","status":"pending","payload":{"ok":true,"jobId":"f270d71a-d727-4695-9a00-163769a687a9","phase":"universal_visual_witness_supervised","branch":"ai/objective-first-repair-b01ddc0767ca","reason":null,"status":"pending","metrics":{"receiptBytes":0,"releaseCount":1,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3389,"terminal":false,"missionId":"b01ddc07-67ca-45aa-bfaa-485ef6454ee6","operation":"visual_proof_started","proofGate":"universal_visual_witness_pending","sourceSha":"e6a7c7400074ecde5b2c3935f54964de9f7113c7","timingsMs":{"queue":288,"total":799,"execution":511},"nextAction":"Execution is pending; poll inspect_route_status only when fresh progress is expected, or cancel with inspect_route_cancel.","receiptRef":{"mode":"full","missionId":"b01ddc07-67ca-45aa-bfaa-485ef6454ee6"},"performance":null,"deploymentId":"forgejo-main-e6a7c7400074","releaseState":"verified","visualWitness":{"role":"GodMode","jobId":"f270d71a-d727-4695-9a00-163769a687a9","tenant":null,"runnerUrl":"cloudflare-container://visual-witness-virtual","runnerLane":"virtual","attemptsUsed":0,"supervisorId":"f270d71a-d727-4695-9a00-163769a687a9","failureReason":null,"observedRoute":null,"runnerVersion":null,"attemptLineage":[],"missionOutcome":null,"requestedRoute":"/sign-agreement?token=7354aec44d4fb45e320738dd2794359eda930417bdd5c8cdb25d9ba2b9408210","runnerSourceSha":null,"selectedViewports":["desktop","mobile"],"checkpointAccounting":null,"correctiveGeneration":0,"restartReplayHistory":[]},"workflowRunId":10651,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1845,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T01:59:35.87585+00:00","proof_gate":"post_release_visual_proof_started","source_sha":"e6a7c7400074ecde5b2c3935f54964de9f7113c7","external_id":"f270d71a-d727-4695-9a00-163769a687a9","receipt_type":"visual_proof_started","idempotency_key":"mission:b01ddc07-67ca-45aa-bfaa-485ef6454ee6:visual-start:f270d71a-d727-4695-9a00-163769a687a9","mission_step_id":"0d30db61-44ab-4e32-95b0-4a0c56d3be4f","command_center_event_id":"b01ddc07-67ca-45aa-bfaa-485ef6454ee6"},{"id":"6d246ae7-fefb-4f62-898f-3e8043170b5f","source":"cc-execution","status":"authorized","payload":{"paths":["config/control-plane-capabilities.json","workers/cc-execution/src/version.js","workers/cc-execution/test/release-orchestration-invariants.test.js"],"reason":"Document the proven 1.58.272 bare-continuation recovery contract with corrected manifest regression coverage.","baseSha":"361ccbef4678184e6e2d358524ee51b34096ab98","issuedAt":1790296109828,"expiresAt":1790296289828,"missionId":"5bc6055a-2954-43d2-8509-02bdd0065617","authorizationId":"00b48d46-9ca6-416e-b650-5be8c2c2e2cc","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:28:30.144238+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"361ccbef4678184e6e2d358524ee51b34096ab98","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:00b48d46-9ca6-416e-b650-5be8c2c2e2cc","mission_step_id":"560ba404-6975-4ebb-8e54-c77ceb438358","command_center_event_id":"5bc6055a-2954-43d2-8509-02bdd0065617"},{"id":"e654e508-0b2c-42cb-bae3-e78e1e78d9bc","source":"cc-execution","status":"source_resolution_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-521dd77e2ac1","reason":null,"status":"source_resolution_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":null,"terminal":false,"missionId":"521dd77e-2ac1-4dc9-afef-3908b0e73b31","operation":"execute_mission","proofGate":"repair_mission_source_resolution_required","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":27,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":1185,"providerAuthMs":0,"ledgerPrepareMs":1185,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":1185,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":1185,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Resolve bounded authoritative Forgejo source targets, then call /mission/execute again with this same missionId and exact files or anchored_edits. Do not switch workflows.","receiptRef":{"mode":"full","missionId":"521dd77e-2ac1-4dc9-afef-3908b0e73b31"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3518,"likelyAffectedFiles":[],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:05:02.824341+00:00","proof_gate":"repair_mission_source_resolution_required","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:521dd77e-2ac1-4dc9-afef-3908b0e73b31:execute_mission:repair_mission_source_resolution_required:current-generation","mission_step_id":"b42f57a6-5acd-4e2b-afe1-a42546e8d91d","command_center_event_id":"521dd77e-2ac1-4dc9-afef-3908b0e73b31"},{"id":"e74decb0-6103-4b08-9201-daa400135908","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-521dd77e2ac1","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":null,"terminal":false,"missionId":"521dd77e-2ac1-4dc9-afef-3908b0e73b31","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":70,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":472,"providerAuthMs":0,"ledgerPrepareMs":472,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":472,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":472,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Inspect the bounded repository paths, synthesize exact files or anchored_edits, and call /mission/execute again automatically with this same missionId without another owner prompt or workflow switch.","receiptRef":{"mode":"full","missionId":"521dd77e-2ac1-4dc9-afef-3908b0e73b31"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime","visual"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3645,"likelyAffectedFiles":["src/shells/TenantModesShell.tsx","src/shells/modesTenantShell.ts"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:05:40.179826+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:521dd77e-2ac1-4dc9-afef-3908b0e73b31:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"b42f57a6-5acd-4e2b-afe1-a42546e8d91d","command_center_event_id":"521dd77e-2ac1-4dc9-afef-3908b0e73b31"},{"id":"be497b2c-1360-497e-9b7f-7771c9bde88f","source":"cc-execution","status":"waiting","payload":{"kind":"heartbeat","message":"Still active in implementation.","nextAction":{"lane":"cc-execution","action":"continue_implementation","reason":"durable_state:implementation","automationAllowed":false,"ownerActionRequired":false},"silenceBudgetMs":15000,"semanticCheckpointSignature":"{\"stateMachineVersion\":1,\"phase\":\"implementation\",\"ownerFacingState\":null,\"latest\":{\"kind\":\"receipt\",\"key\":\"execute_mission\",\"status\":\"synthesis_required\",\"proofGate\":\"repair_mission_synthesis_ready\"},\"activeStep\":{\"key\":\"implementation\",\"status\":\"ready\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"pull_request\",\"status\":\"pending\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"continue_implementation\",\"lane\":\"cc-execution\",\"reason\":\"durable_state:implementation\",\"automationAllowed\":false,\"ownerActionRequired\":false},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"implementation\",\"deadlineAt\":\"2026-09-22T04:05:37.528149+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/objective-first-repair-98ad3686b372\",\"prNumber\":null,\"sourceSha\":null,\"deploymentId\":null}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:05:55.251377+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:98ad3686-b372-496d-93f0-0963f8369d85:owner-progress-heartbeat:119336183","mission_step_id":"91f38272-02dd-43a5-b69d-0a96573f44b9","command_center_event_id":"98ad3686-b372-496d-93f0-0963f8369d85"},{"id":"31b49e9b-230d-4ed5-8953-03fc758ae4fd","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-521dd77e2ac1","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":3390,"terminal":false,"missionId":"521dd77e-2ac1-4dc9-afef-3908b0e73b31","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":3858,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":707,"missionSetupMs":543,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":543,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":543,"repositoryMutationMs":3151,"repositoryProviderMs":3151,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":1754,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":543,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1397},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"521dd77e-2ac1-4dc9-afef-3908b0e73b31"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime","visual"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3088,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:06:32.054554+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3390","receipt_type":"execute_mission","idempotency_key":"mission:521dd77e-2ac1-4dc9-afef-3908b0e73b31:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"61b5b1ef-5dbf-48f5-aa7d-06a535d50328","command_center_event_id":"521dd77e-2ac1-4dc9-afef-3908b0e73b31"},{"id":"72d48e5e-a034-486b-850d-d154dbdbb31a","source":"forgejo","status":"retryable","payload":{"branch":"ai/objective-first-repair-5bc6055a2954","merged":false,"prNumber":3689,"remediationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:29:00.80814+00:00","proof_gate":"forgejo_closed_pr_is_authoritative_source_lineage","source_sha":null,"external_id":"3689","receipt_type":"source_lineage_pr_closed_without_merge","idempotency_key":"mission:5bc6055a-2954-43d2-8509-02bdd0065617:closed-pr:3689:unmerged","mission_step_id":"9640baa8-d8ac-4c6c-9351-42f36be68b19","command_center_event_id":"5bc6055a-2954-43d2-8509-02bdd0065617"},{"id":"102c37c2-3f02-464c-8edb-95d5bc999c45","source":"cc-execution","status":"blocked","payload":{"reason":"anchored_edit_anchor_missing:workers/cc-execution/scripts/cc-execution-safe-release.mjs","fingerprint":"a896ccb39cac3929c39e377d0595bb5500a50cc644933b837b81e4efe6c6855a"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T13:46:06.378762+00:00","proof_gate":"repository_mutation_intent_deterministic_failure","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent_blocked","idempotency_key":"mission:13d4bfff-1bca-4a92-98d1-2c2369b46061:repository-mutation-intent-blocked:a896ccb39cac3929c39e377d0595bb5500a50cc644933b837b81e4efe6c6855a","mission_step_id":"d40c68aa-3748-42d9-a2af-f2cde7f3ef64","command_center_event_id":"13d4bfff-1bca-4a92-98d1-2c2369b46061"},{"id":"de364afc-4d18-4c6e-9ffd-886b5ca1e6d2","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-8c04bea84e20","writes":[],"patches":[],"version":1,"approved":true,"pr_title":"fix(control-plane): prefer tenant route for deferred proof","missionId":"8c04bea8-4e20-43c8-8b0e-56d79150cdd6","objective":"Authorized corrective control plane maintenance. Existing mission context contains a generic platform anchor_tenant_id, which currently outranks the inferred route tenant and keeps Redfish proof on Knock Launch OS. For contract-required tenant-prefixed routes, preserve explicit context.tenantRef and mission.tenantId as highest authority, then route-derived tenant, then anchor_tenant_id as fallback. Update the focused mission-control regression to lock that precedence. Gate, merge, release cc-execution, then reconcile the same Redfish mission to terminal proof.","sourceSha":"fdc49a10d7da2685ce4e81af6a421017ab5bcba7","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["workers/cc-execution/src/index-mission-control.js","src/__tests__/contracts/command-center-mission-control.test.ts"],"anchored_edits":[{"path":"workers/cc-execution/src/index-mission-control.js","edits":[{"new_content":"  const tenantRef = context.tenantRef || mission.tenantId || routeTenantRef || context.anchor_tenant_id || undefined;","old_content":"  const tenantRef = context.tenantRef || context.anchor_tenant_id || mission.tenantId || routeTenantRef || undefined;"}]},{"path":"src/__tests__/contracts/command-center-mission-control.test.ts","edits":[{"new_content":"    expect(deferredVisual).toContain('context.tenantRef || mission.tenantId || routeTenantRef || context.anchor_tenant_id || undefined');","old_content":"    expect(deferredVisual).toContain('context.tenantRef || context.anchor_tenant_id || mission.tenantId || routeTenantRef || undefined');"}]}],"commit_message":"fix(control-plane): prefer route tenant over mission anchor","implementation":{"files":[],"writes":[]},"mutationSignal":true,"requestContract":{"outcomes":[{"id":"outcome-control-plane-tenant-proof","statement":"Control plane deferred visual proof uses the route-derived Redfish tenant ahead of a generic platform anchor while preserving explicit tenantRef and mission tenant authority.","proofConditionIds":["proof-control-plane-gate","proof-redfish-interaction"]},{"id":"outcome-redfish-mission-terminal","statement":"The existing Redfish mission terminalizes after the corrected verifier proves the non-saving interaction on desktop and mobile.","proofConditionIds":["proof-control-plane-gate","proof-redfish-interaction"]}],"proofConditions":[{"id":"proof-control-plane-gate","kind":"runtime","claim":"Command Center cc execution control plane change passes canonical Gate, merges, and releases the affected control plane owner.","required":true},{"id":"proof-redfish-interaction","kind":"visual","claim":"Redfish roof measurement completes the required non-saving desktop and mobile interaction proof under the Redfish tenant context.","route":"/redfish-roofing/roof-measurement","required":true,"targetedActions":[{"name":"Trace roof","role":"button","action":"click"},{"name":"Place center roof trace point","role":"button","action":"click"}]}]},"repairGeneration":3,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":"8c04bea8-4e20-43c8-8b0e-56d79150cdd6","ownerApproved":true,"releaseIntent":null,"sourceTargets":["workers/cc-execution/src/index-mission-control.js","src/__tests__/contracts/command-center-mission-control.test.ts"],"requestContract":{"outcomes":[{"id":"outcome-control-plane-tenant-proof","statement":"Control plane deferred visual proof uses the route-derived Redfish tenant ahead of a generic platform anchor while preserving explicit tenantRef and mission tenant authority.","proofConditionIds":["proof-control-plane-gate","proof-redfish-interaction"]},{"id":"outcome-redfish-mission-terminal","statement":"The existing Redfish mission terminalizes after the corrected verifier proves the non-saving interaction on desktop and mobile.","proofConditionIds":["proof-control-plane-gate","proof-redfish-interaction"]}],"proofConditions":[{"id":"proof-control-plane-gate","kind":"runtime","claim":"Command Center cc execution control plane change passes canonical Gate, merges, and releases the affected control plane owner.","required":true},{"id":"proof-redfish-interaction","kind":"visual","claim":"Redfish roof measurement completes the required non-saving desktop and mobile interaction proof under the Redfish tenant context.","route":"/redfish-roofing/roof-measurement","required":true,"targetedActions":[{"name":"Trace roof","role":"button","action":"click"},{"name":"Place center roof trace point","role":"button","action":"click"}]}]},"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":["workers/cc-execution/src/index-mission-control.js","src/__tests__/contracts/command-center-mission-control.test.ts"],"controlPlaneMaintenanceReason":"Owner authorized the Redfish verifier repair. Correct tenant precedence so a tenant-prefixed contract proof route overrides a generic platform anchor tenant when no explicit tenantRef or mission tenant is present."},"proofRequirements":null,"continuationReason":"merged_pr_branch_deleted","controlPlaneUnfreeze":true,"durableMutationResume":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":["workers/cc-execution/src/index-mission-control.js","src/__tests__/contracts/command-center-mission-control.test.ts"],"controlPlaneMaintenanceReason":"Owner authorized the Redfish verifier repair. Correct tenant precedence so a tenant-prefixed contract proof route overrides a generic platform anchor tenant when no explicit tenantRef or mission tenant is present."},"recovery":false,"fingerprint":"94736c82556c19f7473516bd1842ca27e4dfc8a6abfdaf37aaae6ea7b2672226","replayCount":0,"serializedBytes":5826},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T15:14:14.344838+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:8c04bea8-4e20-43c8-8b0e-56d79150cdd6:repository-mutation-intent:94736c82556c19f7473516bd1842ca27e4dfc8a6abfdaf37aaae6ea7b2672226:0","mission_step_id":"1f45a99d-6759-433a-a373-39431f17423f","command_center_event_id":"8c04bea8-4e20-43c8-8b0e-56d79150cdd6"},{"id":"6f50951d-5f1d-46d7-9d9c-3a2dedd5ebaf","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-98ad3686b372","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":3391,"terminal":false,"missionId":"98ad3686-b372-496d-93f0-0963f8369d85","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":5055,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":945,"missionSetupMs":251,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":251,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":251,"repositoryMutationMs":4110,"repositoryProviderMs":4110,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2454,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":251,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1656},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"98ad3686-b372-496d-93f0-0963f8369d85"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3868,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:06:46.327015+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3391","receipt_type":"execute_mission","idempotency_key":"mission:98ad3686-b372-496d-93f0-0963f8369d85:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"91f38272-02dd-43a5-b69d-0a96573f44b9","command_center_event_id":"98ad3686-b372-496d-93f0-0963f8369d85"},{"id":"36191dbf-a657-4bb8-89fd-8aed3bf17211","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-98ad3686b372","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3391,"terminal":false,"missionId":"98ad3686-b372-496d-93f0-0963f8369d85","operation":"automatic_mission_resume","proofGate":"canonical_release_dispatched","sourceSha":"243c9be1828497f193f26167eda17845c1b40682","timingsMs":{"prReadinessMs":484,"approvedPlanMs":0,"shipAndProveMs":2962,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"98ad3686-b372-496d-93f0-0963f8369d85"},"performance":null,"deploymentId":"forgejo-main-243c9be18284","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1886,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:06:55.279465+00:00","proof_gate":"canonical_release_dispatched","source_sha":null,"external_id":"3391","receipt_type":"automatic_mission_resume","idempotency_key":"mission:98ad3686-b372-496d-93f0-0963f8369d85:automatic-mission-resume:3391:canonical_release_dispatched","mission_step_id":"09361f28-858b-4e9b-a5cc-a86144b42440","command_center_event_id":"98ad3686-b372-496d-93f0-0963f8369d85"},{"id":"adba3223-6559-4663-8b5e-435550c94a62","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-521dd77e2ac1","reason":"pull_request_checks_pending","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3390,"terminal":false,"missionId":"521dd77e-2ac1-4dc9-afef-3908b0e73b31","operation":"automatic_mission_resume","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"prReadinessMs":378,"approvedPlanMs":0,"shipAndProveMs":0,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request after the exact-head KnockLaunch Gate changes state.","receiptRef":{"mode":"full","missionId":"521dd77e-2ac1-4dc9-afef-3908b0e73b31"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1285,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:06:39.140674+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"3390","receipt_type":"automatic_mission_resume","idempotency_key":"mission:521dd77e-2ac1-4dc9-afef-3908b0e73b31:automatic-mission-resume:3390:repair_mission_waiting_for_gate","mission_step_id":"f15d4973-3a7f-4400-8504-d952c504fcea","command_center_event_id":"521dd77e-2ac1-4dc9-afef-3908b0e73b31"},{"id":"04662e77-5c8a-4ca5-b14e-52fd6e317e9e","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-98ad3686b372","prNumber":3391,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"243c9be1828497f193f26167eda17845c1b40682","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:07:04.581742+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"243c9be1828497f193f26167eda17845c1b40682","external_id":"3391","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:98ad3686-b372-496d-93f0-0963f8369d85:merged-pr:3391:243c9be1828497f193f26167eda17845c1b40682","mission_step_id":"09361f28-858b-4e9b-a5cc-a86144b42440","command_center_event_id":"98ad3686-b372-496d-93f0-0963f8369d85"},{"id":"a362256d-09e9-41fb-8874-bef218e29741","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-5bc6055a2954","reason":"pull_request_checks_pending","status":"waiting_for_gate","metrics":{"receiptBytes":16441,"releaseCount":0,"toolCallCount":11,"repeatedCallCount":2,"executorlessWaitMs":270800,"firstUsefulResultAt":"2026-09-25T00:24:29.950Z","recoveryAttemptCount":2,"ownerInterruptionCount":0},"version":"1.58.272-bare-continuation-before-source-resolution","prNumber":3689,"terminal":false,"missionId":"5bc6055a-2954-43d2-8509-02bdd0065617","operation":"execute_mission","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1807,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":541,"approvedPlanMs":0,"missionSetupMs":1660,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":307,"ledgerReconcileMs":0,"lineageReconcileMs":1353,"resolvePreflightMs":1660,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":307,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request after the exact-head KnockLaunch Gate changes state.","receiptRef":{"mode":"full","missionId":"5bc6055a-2954-43d2-8509-02bdd0065617"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1973,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:29:03.342988+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"3689","receipt_type":"execute_mission","idempotency_key":"mission:5bc6055a-2954-43d2-8509-02bdd0065617:execute_mission:repair_mission_waiting_for_gate:current-generation","mission_step_id":"9640baa8-d8ac-4c6c-9351-42f36be68b19","command_center_event_id":"5bc6055a-2954-43d2-8509-02bdd0065617"},{"id":"e01616a5-3d34-400a-acfc-975635a245a4","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-a339bd3b3200","writes":[],"patches":[],"version":1,"approved":true,"missionId":"a339bd3b-3200-4f8c-906b-6dc4fb6d2d59","objective":"Re-pair the dedicated PAUL Visual Witness bearer after the previously failed bootstrap rotated PAUL's local bearer but could not update cc-execution because the latest Worker version was not yet deployed. cc-execution is now live on exact current main and secret edits are permitted. Add a workflow_dispatch trigger to the existing PAUL Hybrid bootstrap so future explicit re-pairs can be invoked without synthetic source changes; preserve the existing push triggers and bootstrap logic unchanged. Merging this change should trigger the existing push-path bootstrap immediately, rotate/register a matching PAUL bearer, and restore real PAUL mission authorization. Then prove one real supervised route stays on PAUL to terminal evidence.","sourceSha":"ceba05bb572484594ef1854514c7a8c39dc72351","repository":"noel/KnockLaunchOS","visualProof":false,"autoProgress":true,"verifyVisual":false,"ownerApproved":true,"releaseIntent":null,"sourceTargets":[".forgejo/workflows/paul-hybrid-bootstrap.yml"],"anchored_edits":[{"path":".forgejo/workflows/paul-hybrid-bootstrap.yml","edits":[{"new_content":"on:\n  workflow_dispatch:\n  push:","old_content":"on:\n  push:"}]}],"implementation":{"files":[],"writes":[]},"requestContract":{"valid":true,"intent":{"evidence":["PAUL health is green and selected/preferred","real inspect_route submission to runnerLane=paul is rejected unauthorized","bootstrap run 11806 failed at wrangler secret put after local PAUL containers had already been recreated","cc-execution release 11808 is now successful and exact current main is deployed"],"confidence":1,"rawUtterance":"Re-pair the dedicated PAUL Visual Witness bearer after the previously failed bootstrap rotated PAUL's local bearer but could not update cc-execution because the latest Worker version was not yet deployed. cc-execution is now live on exact current main and secret edits are permitted. Add a workflow_dispatch trigger to the existing PAUL Hybrid bootstrap so future explicit re-pairs can be invoked without synthetic source changes; preserve the existing push triggers and bootstrap logic unchanged. Merging this change should trigger the existing push-path bootstrap immediately, rotate/register a matching PAUL bearer, and restore real PAUL mission authorization. Then prove one real supervised route stays on PAUL to terminal evidence.","wordingChanged":false,"canonicalIntent":"Re-pair the dedicated PAUL Visual Witness bearer after the previously failed bootstrap rotated PAUL's local bearer but could not update cc-execution because the latest Worker version was not yet deployed. cc-execution is now live on exact current main and secret edits are permitted. Add a workflow_dispatch trigger to the existing PAUL Hybrid bootstrap so future explicit re-pairs can be invoked without synthetic source changes; preserve the existing push triggers and bootstrap logic unchanged. Merging this change should trigger the existing push-path bootstrap immediately, rotate/register a matching PAUL bearer, and restore real PAUL mission authorization. Then prove one real supervised route stays on PAUL to terminal evidence.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"current_request_explicit","version":1,"outcomes":[{"id":"outcome-paul-repair","statement":"PAUL and cc-execution share a newly paired dedicated runner bearer and a real supervised mission executes on PAUL.","provenance":{"reason":"owner demanded PAUL Hybrid fully fixed","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-health","proof-route"]}],"objective":"Re-pair the dedicated PAUL Visual Witness bearer after the previously failed bootstrap rotated PAUL's local bearer but could not update cc-execution because the latest Worker version was not yet deployed. cc-execution is now live on exact current main and secret edits are permitted. Add a workflow_dispatch trigger to the existing PAUL Hybrid bootstrap so future explicit re-pairs can be invoked without synthetic source changes; preserve the existing push triggers and bootstrap logic unchanged. Merging this change should trigger the existing push-path bootstrap immediately, rotate/register a matching PAUL bearer, and restore real PAUL mission authorization. Then prove one real supervised route stays on PAUL to terminal evidence.","constraints":[{"id":"no-architecture-change","statement":"Do not change PAUL lane selection, sentinel authority, source parity, tunnel, runner topology, or fallback architecture.","provenance":{"reason":"credential re-pair only","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-health","proof-route"]},{"id":"no-secret-output","statement":"Never print or expose the PAUL bearer or other credentials.","provenance":{"reason":"secret hygiene","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-health","proof-route"]}],"terminalPolicy":"all_required_proof_conditions_satisfied","proofConditions":[{"id":"proof-health","kind":"runtime","claim":"inspect_route_health reports paulReady=true, paulHybridReady=true, selected/preferred lane paul, with existing redundancy and self-healing healthy.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false},{"id":"proof-route","kind":"runtime","claim":"A fresh supervised inspection of / explicitly pinned to PAUL is accepted and reaches terminal application evidence on runnerLane=paul without unauthorized or cross-lane replay.","route":"/","roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}],"validationErrors":[],"capabilityManifest":{"id":"paul-hybrid-bearer-repair","driftPolicy":"bearer_or_authority_mismatch_blocks_paul_only","proofLedger":"command_center_mission_ledger_request_contract_hash_bound","schemaVersion":1,"releaseTargets":[],"lifecycleStates":["prepare","deploy","verify","activate"],"activationPolicy":"existing_bootstrap_reissues_and_registers_matching_bearer_after_exact_cc_execution_deployment","dependencyDomains":["backend_runtime","authentication_authorization","release_ownership","live_production_proof"],"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_required_not_runtime_failures","compatibilityWindow":["N","N-1"],"failureIsolationPolicy":"re-pair_failure_keeps_primary_virtual_witness_pair_healthy","canaryProofConditionIds":["proof-health","proof-route"]},"capabilityCompleteness":{"domains":["backend_runtime","authentication_authorization","release_ownership","live_production_proof"],"required":true,"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_states_not_runtime_failures"}},"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":null,"ownerApproved":true,"releaseIntent":null,"sourceTargets":[".forgejo/workflows/paul-hybrid-bootstrap.yml"],"requestContract":{"valid":true,"intent":{"evidence":["PAUL health is green and selected/preferred","real inspect_route submission to runnerLane=paul is rejected unauthorized","bootstrap run 11806 failed at wrangler secret put after local PAUL containers had already been recreated","cc-execution release 11808 is now successful and exact current main is deployed"],"confidence":1,"rawUtterance":"Re-pair the dedicated PAUL Visual Witness bearer after the previously failed bootstrap rotated PAUL's local bearer but could not update cc-execution because the latest Worker version was not yet deployed. cc-execution is now live on exact current main and secret edits are permitted. Add a workflow_dispatch trigger to the existing PAUL Hybrid bootstrap so future explicit re-pairs can be invoked without synthetic source changes; preserve the existing push triggers and bootstrap logic unchanged. Merging this change should trigger the existing push-path bootstrap immediately, rotate/register a matching PAUL bearer, and restore real PAUL mission authorization. Then prove one real supervised route stays on PAUL to terminal evidence.","wordingChanged":false,"canonicalIntent":"Re-pair the dedicated PAUL Visual Witness bearer after the previously failed bootstrap rotated PAUL's local bearer but could not update cc-execution because the latest Worker version was not yet deployed. cc-execution is now live on exact current main and secret edits are permitted. Add a workflow_dispatch trigger to the existing PAUL Hybrid bootstrap so future explicit re-pairs can be invoked without synthetic source changes; preserve the existing push triggers and bootstrap logic unchanged. Merging this change should trigger the existing push-path bootstrap immediately, rotate/register a matching PAUL bearer, and restore real PAUL mission authorization. Then prove one real supervised route stays on PAUL to terminal evidence.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"current_request_explicit","version":1,"outcomes":[{"id":"outcome-paul-repair","statement":"PAUL and cc-execution share a newly paired dedicated runner bearer and a real supervised mission executes on PAUL.","provenance":{"reason":"owner demanded PAUL Hybrid fully fixed","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-health","proof-route"]}],"objective":"Re-pair the dedicated PAUL Visual Witness bearer after the previously failed bootstrap rotated PAUL's local bearer but could not update cc-execution because the latest Worker version was not yet deployed. cc-execution is now live on exact current main and secret edits are permitted. Add a workflow_dispatch trigger to the existing PAUL Hybrid bootstrap so future explicit re-pairs can be invoked without synthetic source changes; preserve the existing push triggers and bootstrap logic unchanged. Merging this change should trigger the existing push-path bootstrap immediately, rotate/register a matching PAUL bearer, and restore real PAUL mission authorization. Then prove one real supervised route stays on PAUL to terminal evidence.","constraints":[{"id":"no-architecture-change","statement":"Do not change PAUL lane selection, sentinel authority, source parity, tunnel, runner topology, or fallback architecture.","provenance":{"reason":"credential re-pair only","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-health","proof-route"]},{"id":"no-secret-output","statement":"Never print or expose the PAUL bearer or other credentials.","provenance":{"reason":"secret hygiene","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-health","proof-route"]}],"terminalPolicy":"all_required_proof_conditions_satisfied","proofConditions":[{"id":"proof-health","kind":"runtime","claim":"inspect_route_health reports paulReady=true, paulHybridReady=true, selected/preferred lane paul, with existing redundancy and self-healing healthy.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false},{"id":"proof-route","kind":"runtime","claim":"A fresh supervised inspection of / explicitly pinned to PAUL is accepted and reaches terminal application evidence on runnerLane=paul without unauthorized or cross-lane replay.","route":"/","roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}],"validationErrors":[],"capabilityManifest":{"id":"paul-hybrid-bearer-repair","driftPolicy":"bearer_or_authority_mismatch_blocks_paul_only","proofLedger":"command_center_mission_ledger_request_contract_hash_bound","schemaVersion":1,"releaseTargets":[],"lifecycleStates":["prepare","deploy","verify","activate"],"activationPolicy":"existing_bootstrap_reissues_and_registers_matching_bearer_after_exact_cc_execution_deployment","dependencyDomains":["backend_runtime","authentication_authorization","release_ownership","live_production_proof"],"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_required_not_runtime_failures","compatibilityWindow":["N","N-1"],"failureIsolationPolicy":"re-pair_failure_keeps_primary_virtual_witness_pair_healthy","canaryProofConditionIds":["proof-health","proof-route"]},"capabilityCompleteness":{"domains":["backend_runtime","authentication_authorization","release_ownership","live_production_proof"],"required":true,"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_states_not_runtime_failures"}},"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":"Owner explicitly demanded PAUL Hybrid be fully repaired. This adds a proper re-pair dispatch entrypoint and triggers the existing secure bootstrap now that cc-execution is exactly deployed."},"proofRequirements":null,"controlPlaneUnfreeze":true,"durableMutationResume":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":"Owner explicitly demanded PAUL Hybrid be fully repaired. This adds a proper re-pair dispatch entrypoint and triggers the existing secure bootstrap now that cc-execution is exactly deployed."},"recovery":false,"fingerprint":"cef9e265a4c199c6dc62eaa14ca5c022c7a5db830f32d6c0373fa2606a1c5f55","replayCount":0,"serializedBytes":14468},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T13:48:31.043596+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:a339bd3b-3200-4f8c-906b-6dc4fb6d2d59:repository-mutation-intent:cef9e265a4c199c6dc62eaa14ca5c022c7a5db830f32d6c0373fa2606a1c5f55:0","mission_step_id":"57995e20-08f4-4093-8101-d9317508dfa1","command_center_event_id":"a339bd3b-3200-4f8c-906b-6dc4fb6d2d59"},{"id":"7c0a7f95-b1a4-472d-b1ad-62e29c532e1d","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-5bc6055a2954","reason":"pull_request_checks_failed","status":"retryable","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":null,"recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.272-bare-continuation-before-source-resolution","prNumber":3690,"terminal":false,"missionId":"209c9b26-7dca-4691-8004-1fde224374e1","operation":"execute_mission","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":959,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":676,"approvedPlanMs":0,"missionSetupMs":526,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":526,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":526,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":526,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"209c9b26-7dca-4691-8004-1fde224374e1"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":2065,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:32:29.428468+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"3690","receipt_type":"execute_mission","idempotency_key":"mission:209c9b26-7dca-4691-8004-1fde224374e1:execute_mission:repair_mission_pr_ready_retryable:current-generation","mission_step_id":"49ac141d-d9f5-4798-90c0-f416d832fb73","command_center_event_id":"209c9b26-7dca-4691-8004-1fde224374e1"},{"id":"06a5352a-d3ce-47c4-97a2-7f1a44514532","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"243c9be1828497f193f26167eda17845c1b40682","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"243c9be1828497f193f26167eda17845c1b40682","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"pending"},"requestContractHash":"f1190136a0dce90b0ac9dd7698a7fb17431c037997d33ba59fa5aaadbda2ef10","forgejoWorkflowProof":{"runId":10657,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"frontend":"pending"},"targetJobCount":7,"observedTargetStates":{"frontend":"pending"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:06:56.567641+00:00","proof_gate":"canonical_release_pending","source_sha":"243c9be1828497f193f26167eda17845c1b40682","external_id":"forgejo-main-243c9be18284","receipt_type":"canonical_release_status","idempotency_key":"mission:98ad3686-b372-496d-93f0-0963f8369d85:forgejo-release-status:243c9be1828497f193f26167eda17845c1b40682:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"09361f28-858b-4e9b-a5cc-a86144b42440","command_center_event_id":"98ad3686-b372-496d-93f0-0963f8369d85"},{"id":"6db2ad6e-b879-4391-a494-2d0bbc569554","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-a339bd3b3200","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":14615,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":"2026-09-25T13:48:30.999Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.281-witness-lane-affinity","prNumber":3734,"terminal":false,"missionId":"a339bd3b-3200-4f8c-906b-6dc4fb6d2d59","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":3158,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":567,"missionSetupMs":292,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":292,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":292,"repositoryMutationMs":2591,"repositoryProviderMs":2591,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":1575,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":292,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1016},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"a339bd3b-3200-4f8c-906b-6dc4fb6d2d59"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3113,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T13:48:35.132788+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3734","receipt_type":"execute_mission","idempotency_key":"mission:a339bd3b-3200-4f8c-906b-6dc4fb6d2d59:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"57995e20-08f4-4093-8101-d9317508dfa1","command_center_event_id":"a339bd3b-3200-4f8c-906b-6dc4fb6d2d59"},{"id":"e96215d8-c0ca-45f9-9c42-55e2d6543f46","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","frontend-cloudflare/live":"success"},"mainSha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","releaseState":"verified","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"success"},"requestContractHash":"0fc42934a354ecfe370176e7d5300e23170503c28d6429cfebc664f3258f3d2a","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/11859","runId":11859,"status":"success","sourceSha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true,"targetStates":{"frontend":"success"},"targetJobCount":7,"observedTargetStates":{"frontend":"success"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T18:28:02.651659+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","external_id":"forgejo-main-675ad36dbeea","receipt_type":"canonical_release_status","idempotency_key":"mission:503502db-5893-4e94-acfc-60206671793d:forgejo-release-status:675ad36dbeea7d3a779a04c99a4be66d069f3a14:verified:forgejo-main/source=success|forgejo-release/workflow=success|frontend-cloudflare/live=success","mission_step_id":"8bab7b7c-7e93-438d-a303-75dd8b0d373c","command_center_event_id":"503502db-5893-4e94-acfc-60206671793d"},{"id":"a632aa5b-6602-4c9b-a035-7ae536718bc4","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"10b646acbf7f47baf5d53726eee8cef8a8819618","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-1","satisfied":true,"statement":"PAUL has a durable premium visual-build doctrine governing imagery, motion, interaction polish, tenant-specific art direction, anti-slop rules, responsive behavior, accessibility, performance, and visual QA.","proofConditionIds":["proof-production"]}],"satisfied":true,"constraints":[{"id":"preserve-platform-rules","satisfied":true,"statement":"Preserve existing KNOCKLAUNCH shell, tenant isolation, accessibility, responsive behavior, usability, and explicit tenant-specific owner instructions; premium polish may not break function.","proofConditionIds":["proof-production"]},{"id":"no-generic-premium","satisfied":true,"statement":"Premium must be tenant-specific and intentional, not a universal neon/glass/gradient treatment.","proofConditionIds":["proof-production"]},{"id":"capability-completeness","satisfied":true,"statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["proof-production"]},{"id":"atomic-capability-lifecycle","satisfied":true,"statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["proof-production"]}],"contractHash":"9e298d12176faf6d7a8694600a7c0c2976ca35bff00060f129cd6280ac3d721d","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"proof-production","kind":"runtime","evidence":{"reason":null,"satisfied":true,"releaseState":"verified","missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{},"unsuccessfulTargets":[],"activeReleaseTargets":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"migrationReleaseVerified":null,"releaseRequestContractHash":"9e298d12176faf6d7a8694600a7c0c2976ca35bff00060f129cd6280ac3d721d"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":[]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T02:14:56.621246+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"10b646acbf7f47baf5d53726eee8cef8a8819618","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:d3a9d88f-87f3-4e74-86e3-24ac68520c07:request-contract:9e298d12176faf6d7a8694600a7c0c2976ca35bff00060f129cd6280ac3d721d:10b646acbf7f47baf5d53726eee8cef8a8819618:verified:","mission_step_id":"8e8c99f9-3fc4-4133-9453-c510296dbcc5","command_center_event_id":"d3a9d88f-87f3-4e74-86e3-24ac68520c07"},{"id":"32c7a391-8a9b-47e5-8fd6-3a3a8f941dfa","source":"cc-execution","status":"pending","payload":{"ok":true,"jobId":"40d5a4a9-79a7-4ccf-abc3-359dde332d60","phase":"universal_visual_witness_supervised","branch":"ai/objective-first-repair-8c04bea84e20","reason":null,"status":"pending","metrics":{"receiptBytes":322471,"releaseCount":0,"toolCallCount":152,"repeatedCallCount":72,"executorlessWaitMs":7921582,"firstUsefulResultAt":"2026-09-28T13:17:30.172Z","recoveryAttemptCount":16,"ownerInterruptionCount":0},"version":null,"prNumber":4002,"terminal":false,"missionId":"8c04bea8-4e20-43c8-8b0e-56d79150cdd6","operation":"visual_proof_started","proofGate":"universal_visual_witness_pending","sourceSha":"f771abea866227298c2b7ff278d55fd3101f06af","timingsMs":{"queue":572,"total":662,"execution":90},"nextAction":"Execution is pending; poll inspect_route_status only when fresh progress is expected, or cancel with inspect_route_cancel.","receiptRef":{"mode":"full","missionId":"8c04bea8-4e20-43c8-8b0e-56d79150cdd6"},"performance":null,"deploymentId":"forgejo-main-f771abea8662","releaseState":"verified","visualWitness":{"role":"GodMode","jobId":"40d5a4a9-79a7-4ccf-abc3-359dde332d60","tenant":"redfish-roofing","runnerUrl":"https://laptop-witness.knocklaunch.app","runnerLane":"laptop","attemptsUsed":0,"supervisorId":"40d5a4a9-79a7-4ccf-abc3-359dde332d60","failureReason":null,"observedRoute":null,"runnerVersion":null,"attemptLineage":[],"missionOutcome":null,"requestedRoute":"/redfish-roofing/roof-measurement","runnerSourceSha":null,"selectedViewports":["desktop","mobile"],"checkpointAccounting":null,"correctiveGeneration":3,"restartReplayHistory":[]},"workflowRunId":12577,"releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["visual"],"verificationState":"completed_with_findings","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1796,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T15:29:33.120978+00:00","proof_gate":"post_release_visual_proof_started","source_sha":"f771abea866227298c2b7ff278d55fd3101f06af","external_id":"40d5a4a9-79a7-4ccf-abc3-359dde332d60","receipt_type":"visual_proof_started","idempotency_key":"mission:8c04bea8-4e20-43c8-8b0e-56d79150cdd6:visual-start:40d5a4a9-79a7-4ccf-abc3-359dde332d60","mission_step_id":"d411668f-fe4a-4ab5-80d6-0d9bde8b75cc","command_center_event_id":"8c04bea8-4e20-43c8-8b0e-56d79150cdd6"},{"id":"391241ff-b25a-4554-a77b-67bc123242db","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-521dd77e2ac1","reason":"pull_request_checks_failed","status":"retryable","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3390,"terminal":false,"missionId":"521dd77e-2ac1-4dc9-afef-3908b0e73b31","operation":"automatic_mission_resume","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"prReadinessMs":687,"approvedPlanMs":0,"shipAndProveMs":0,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"521dd77e-2ac1-4dc9-afef-3908b0e73b31"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime","visual"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1359,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:07:08.075552+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"3390","receipt_type":"automatic_mission_resume","idempotency_key":"mission:521dd77e-2ac1-4dc9-afef-3908b0e73b31:automatic-mission-resume:3390:repair_mission_pr_ready_retryable","mission_step_id":"f15d4973-3a7f-4400-8504-d952c504fcea","command_center_event_id":"521dd77e-2ac1-4dc9-afef-3908b0e73b31"},{"id":"06f91143-4ff7-4bca-9136-407fd42beed3","source":"cc-execution","status":"source_resolution_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-aa1e2d8322ea","reason":null,"status":"source_resolution_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":null,"terminal":false,"missionId":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a","operation":"execute_mission","proofGate":"repair_mission_source_resolution_required","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":75,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":556,"providerAuthMs":0,"ledgerPrepareMs":556,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":556,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":556,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Resolve bounded authoritative Forgejo source targets, then call /mission/execute again with this same missionId and exact files or anchored_edits. Do not switch workflows.","receiptRef":{"mode":"full","missionId":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":2987,"likelyAffectedFiles":[],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:11:31.408415+00:00","proof_gate":"repair_mission_source_resolution_required","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:aa1e2d83-22ea-4f99-84c0-58a4d960ae6a:execute_mission:repair_mission_source_resolution_required:current-generation","mission_step_id":"fe2b377d-f0e4-4ddc-814d-359ec29534fb","command_center_event_id":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a"},{"id":"d927d546-7eb0-4fcd-96b5-fa0a434c41cc","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-3d2ccf96f444","writes":[],"patches":[],"version":1,"approved":true,"missionId":"3d2ccf96-f444-4094-a9f9-46d64a26205d","objective":"Eliminate stale pull-request Gate status contamination and document the proven same-mission continuation recovery contract. Gate workflow must ignore stale/closed pull-request events before exact-head QA. Canonical prReady must validate Gate run identity against the exact PR number and head SHA using Forgejo Actions runs, recover to the matching exact-PR run when a status context points at another PR generation, and fail closed as pending when no matching run exists. Also add the mutationContinuationRecoveryPolicy manifest entry already proven by runtime 1.58.272. Add behavioral and structural regression coverage, Gate, squash merge, release cc-execution, and verify the stale #3689 status cannot poison a green current PR.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":[".forgejo/workflows/knocklaunch.yml","workers/cc-execution/src/index-release-fast-lane.js","workers/cc-execution/test/release-orchestration-invariants.test.js","config/control-plane-capabilities.json","workers/cc-execution/src/version.js"],"anchored_edits":[{"path":"workers/cc-execution/src/index-release-fast-lane.js","edits":[{"new_content":"    headSha: String(run?.commit_sha || run?.head_sha || run?.headSha || run?.sha || \"\").trim() || null,\n    headBranch: String(run?.head_branch || run?.headBranch || run?.prettyref || run?.pretty_ref || run?.branch || \"\").replace(/^refs\\/heads\\//, \"\") || null,","old_content":"    headSha: String(run?.commit_sha || run?.head_sha || run?.headSha || run?.sha || \"\").trim() || null,\n    headBranch: String(run?.head_branch || run?.prettyref || run?.pretty_ref || run?.branch || \"\").replace(/^refs\\/heads\\//, \"\") || null,"},{"new_content":"}\n\nexport function gateRunMatchesPullRequest(run = {}, prNumber = null, headSha = \"\", branchName = \"\") {\n  const identity = runIdentity(run);\n  const expectedPrNumber = Number(prNumber || 0);\n  const expectedSha = String(headSha || \"\").trim();\n  const expectedBranch = String(branchName || \"\").trim();\n  if (!Number.isInteger(expectedPrNumber) || expectedPrNumber < 1 || !expectedSha) return false;\n  if (identity.event !== \"pull_request\" || identity.headSha !== expectedSha) return false;\n  return identity.headBranch === `#${expectedPrNumber}` || Boolean(expectedBranch && identity.headBranch === expectedBranch);\n}\n\nfunction mergeQueueScope(paths = []) {","old_content":"}\n\nfunction mergeQueueScope(paths = []) {"},{"new_content":"  const [base, combinedStatus, runsPayload] = await Promise.all([\n    trustedCurrentBaseSha\n      ? Promise.resolve(null)\n      : forgejo(env, repository, \"GET\", `/branches/${encodeURIComponent(String(pull?.base?.ref || \"main\"))}`, null, false, readyTimeout()),\n    headSha\n      ? forgejo(env, repository, \"GET\", `/commits/${encodeURIComponent(headSha)}/status`, null, false, readyTimeout())\n      : Promise.resolve(null),\n    forgejo(env, repository, \"GET\", \"/actions/runs?limit=30\", null, false, readyTimeout()),\n  ]);","old_content":"  const [base, combinedStatus] = await Promise.all([\n    trustedCurrentBaseSha\n      ? Promise.resolve(null)\n      : forgejo(env, repository, \"GET\", `/branches/${encodeURIComponent(String(pull?.base?.ref || \"main\"))}`, null, false, readyTimeout()),\n    headSha\n      ? forgejo(env, repository, \"GET\", `/commits/${encodeURIComponent(headSha)}/status`, null, false, readyTimeout())\n      : Promise.resolve(null),\n  ]);"},{"new_content":"  const exactGateState = String(exactGateStatus?.status || \"\").toLowerCase();\n  const exactGateTargetUrl = String(exactGateStatus?.target_url || exactGateStatus?.url || \"\");\n  const exactGateRunMatch = exactGateTargetUrl.match(/\\/actions\\/runs\\/(\\d+)/);\n  const actionRuns = actionRunsFrom(runsPayload, 30).map(runIdentity);\n  const exactStatusRunId = exactGateRunMatch ? Number(exactGateRunMatch[1]) : null;\n  const exactStatusRun = exactStatusRunId ? actionRuns.find((run) => run.runId === exactStatusRunId) || null : null;\n  const matchingGateRuns = actionRuns\n    .filter((run) => gateRunMatchesPullRequest(run, prNumber, headSha, branchName))\n    .sort((left, right) => Number(right?.runId || 0) - Number(left?.runId || 0));\n  let latestGate = exactGateStatus ? {","old_content":"  const exactGateState = String(exactGateStatus?.status || \"\").toLowerCase();\n  const exactGateTargetUrl = String(exactGateStatus?.target_url || exactGateStatus?.url || \"\");\n  const exactGateRunMatch = exactGateTargetUrl.match(/\\/actions\\/runs\\/(\\d+)/);\n  let latestGate = exactGateStatus ? {"},{"new_content":"  if (!latestGate && combinedState) {\n    latestGate = {\n      runId: null,\n      runAttempt: null,\n      status: combinedState,\n      conclusion: combinedState === \"success\" ? \"success\" : null,\n      event: \"pull_request\",\n      headSha,\n      headBranch: branchName,\n      workflow: \"knocklaunch.yml\",\n      title: \"KnockLaunch Gate combined commit status\",\n      createdAt: null,\n      updatedAt: null,\n      url: null,\n      evidenceSource: \"forgejo_combined_commit_status\",\n    };\n  }\n  const exactStatusIdentityMatches = exactStatusRun\n    ? gateRunMatchesPullRequest(exactStatusRun, prNumber, headSha, branchName)\n    : false;\n  if (!exactStatusIdentityMatches) {\n    const matchingGateRun = matchingGateRuns[0] || null;\n    latestGate = matchingGateRun\n      ? { ...matchingGateRun, evidenceSource: \"forgejo_actions_exact_pr_identity_recovered\", staleStatusRunId: exactStatusRunId }\n      : { ...(latestGate || {}), status: \"pending\", conclusion: null, evidenceSource: \"forgejo_stale_gate_status_identity_ignored\", staleStatusRunId: exactStatusRunId };\n  } else if (exactStatusRun) {\n    latestGate = { ...latestGate, ...exactStatusRun, evidenceSource: \"forgejo_exact_status_run_identity_verified\" };\n  }\n  const gateState = String(latestGate?.conclusion || latestGate?.status || \"missing\").toLowerCase();","old_content":"  if (!latestGate && combinedState) {\n    latestGate = {\n      runId: null,\n      runAttempt: null,\n      status: combinedState,\n      conclusion: combinedState === \"success\" ? \"success\" : null,\n      event: \"pull_request\",\n      headSha,\n      headBranch: branchName,\n      workflow: \"knocklaunch.yml\",\n      title: \"KnockLaunch Gate combined commit status\",\n      createdAt: null,\n      updatedAt: null,\n      url: null,\n      evidenceSource: \"forgejo_combined_commit_status\",\n    };\n  }\n  const gateState = String(latestGate?.conclusion || latestGate?.status || \"missing\").toLowerCase();"}]},{"path":".forgejo/workflows/knocklaunch.yml","edits":[{"new_content":"          test -n \"${FORGEJO_TOKEN:-}\" || { echo \"::error::forgejo_token_required_for_partial_gate_checkout\"; exit 2; }\n          test -n \"${PR_NUMBER:-}\" || exit 2\n          test -n \"${EVENT_HEAD_SHA:-}\" || exit 2\n\n          pr_guard=\"$(node -e 'const [url,token]=process.argv.slice(1); const response=await fetch(url,{headers:{Authorization:`token ${token}`,Accept:\"application/json\"}}); if(!response.ok){console.error(`forgejo_pr_guard_http_${response.status}`); process.exit(2);} const pr=await response.json(); process.stdout.write([pr.state||\"\",pr.merged===true||Boolean(pr.merged_at)?\"true\":\"false\",pr.head?.sha||\"\"].join(\"\\\\t\"));' \"https://git.knocklaunch.app/api/v1/repos/noel/KnockLaunchOS/pulls/${PR_NUMBER}\" \"$FORGEJO_TOKEN\")\"\n          IFS=$'\\\\t' read -r authoritative_pr_state authoritative_pr_merged authoritative_pr_head <<<\"$pr_guard\"\n          if [ \"$authoritative_pr_state\" != \"open\" ] || [ \"$authoritative_pr_merged\" = \"true\" ]; then\n            echo \"::notice::gate_stale_closed_pr_event_ignored:pr=$PR_NUMBER state=$authoritative_pr_state event_head=$EVENT_HEAD_SHA\"\n            exit 0\n          fi\n          if [ -n \"$authoritative_pr_head\" ] && [ \"$authoritative_pr_head\" != \"$EVENT_HEAD_SHA\" ]; then\n            echo \"::notice::gate_stale_head_event_ignored:pr=$PR_NUMBER event_head=$EVENT_HEAD_SHA current_head=$authoritative_pr_head\"\n            exit 0\n          fi\n\n          find . -mindepth 1 -maxdepth 1 ! -name node_modules ! -name .knocklaunch-gate-cache -exec rm -rf -- {} +","old_content":"          test -n \"${FORGEJO_TOKEN:-}\" || { echo \"::error::forgejo_token_required_for_partial_gate_checkout\"; exit 2; }\n          test -n \"${PR_NUMBER:-}\" || exit 2\n          test -n \"${EVENT_HEAD_SHA:-}\" || exit 2\n\n          find . -mindepth 1 -maxdepth 1 ! -name node_modules ! -name .knocklaunch-gate-cache -exec rm -rf -- {} +"}]},{"path":"config/control-plane-capabilities.json","edits":[{"new_content":"    \"mutationContinuationPolicy\": \"reuse_execute_objective_same_mission\",\n    \"mutationContinuationRecoveryPolicy\": \"bare_same_mission_continuation_without_explicit_mutation_payload_recovers_authoritative_pr_lineage_or_persisted_repository_mutation_intent_from_compact_context_then_full_durable_receipt_before_source_resolution_required_only_genuinely_unscoped_continuations_fail_closed\",\n    \"missionLedgerInfrastructureFailurePolicy\": \"nonfatal_for_authorized_repository_mutation\",","old_content":"    \"mutationContinuationPolicy\": \"reuse_execute_objective_same_mission\",\n    \"missionLedgerInfrastructureFailurePolicy\": \"nonfatal_for_authorized_repository_mutation\","}]},{"path":"workers/cc-execution/test/release-orchestration-invariants.test.js","edits":[{"new_content":"import { actionLogLineIsFailure, canonicalTenantProductSourceSeeds, gateFailureLooksTransientInfrastructure, gateRunMatchesPullRequest } from \"../src/index-release-fast-lane.js\";","old_content":"import { actionLogLineIsFailure, canonicalTenantProductSourceSeeds, gateFailureLooksTransientInfrastructure } from \"../src/index-release-fast-lane.js\";"},{"new_content":"test(\"Gate run identity cannot cross-contaminate pull request generations\", () => {\n  const sha = \"a\".repeat(40);\n  assert.equal(gateRunMatchesPullRequest({ event: \"pull_request\", headSha: sha, headBranch: \"#3690\" }, 3690, sha, \"ai/current\"), true);\n  assert.equal(gateRunMatchesPullRequest({ event: \"pull_request\", headSha: sha, headBranch: \"ai/current\" }, 3690, sha, \"ai/current\"), true);\n  assert.equal(gateRunMatchesPullRequest({ event: \"pull_request\", headSha: \"b\".repeat(40), headBranch: \"#3690\" }, 3690, sha, \"ai/current\"), false);\n  assert.equal(gateRunMatchesPullRequest({ event: \"pull_request\", headSha: sha, headBranch: \"#3689\" }, 3690, sha, \"ai/current\"), false);\n});\n\ntest(\"action log parser keeps successful structured proof receipts out of failureLines\", () => {","old_content":"test(\"action log parser keeps successful structured proof receipts out of failureLines\", () => {"},{"new_content":"  assert.match(workflowSource, /'KnockLaunch Gate'/);\n  assert.match(workflowSource, /gate_stale_closed_pr_event_ignored/);\n  assert.match(workflowSource, /gate_stale_head_event_ignored/);\n});","old_content":"  assert.match(workflowSource, /'KnockLaunch Gate'/);\n});"},{"new_content":"  assert.ok(readinessBudgetMs >= readinessReadMs * 2);\n  assert.match(releaseFastLane, /forgejo_actions_exact_pr_identity_recovered/);\n  assert.match(releaseFastLane, /forgejo_stale_gate_status_identity_ignored/);\n});","old_content":"  assert.ok(readinessBudgetMs >= readinessReadMs * 2);\n});"},{"new_content":"  assert.match(config.efficiency.mutationContinuationRecoveryPolicy, /full_durable_receipt_before_source_resolution_required/);\n  assert.match(config.efficiency.mutationContinuationRecoveryPolicy, /genuinely_unscoped_continuations_fail_closed/);\n  assert.equal(config.efficiency.repositorySourceContentCacheTtlSeconds, 3600);","old_content":"  assert.equal(config.efficiency.repositorySourceContentCacheTtlSeconds, 3600);"}]},{"path":"workers/cc-execution/src/version.js","edits":[{"new_content":"export const CC_EXECUTION_VERSION = \"1.58.273-stale-pr-gate-identity\";","old_content":"export const CC_EXECUTION_VERSION = \"1.58.272-bare-continuation-before-source-resolution\";"}]}],"implementation":{"files":[],"writes":[]},"requestContract":{"outcomes":[{"id":"stale-pr-gate-isolation","statement":"Stale or closed pull-request Gate events cannot poison or authorize a different current PR generation sharing a commit status context.","proofConditionIds":["gate-identity-runtime"]},{"id":"continuation-contract-documented","statement":"The proven bare same-mission continuation recovery ordering is explicit in the control-plane capability manifest.","proofConditionIds":["gate-identity-runtime"]}],"objective":"Eliminate stale pull-request Gate status contamination and document the proven same-mission continuation recovery contract. Gate workflow must ignore stale/closed pull-request events before exact-head QA. Canonical prReady must validate Gate run identity against the exact PR number and head SHA using Forgejo Actions runs, recover to the matching exact-PR run when a status context points at another PR generation, and fail closed as pending when no matching run exists. Also add the mutationContinuationRecoveryPolicy manifest entry already proven by runtime 1.58.272. Add behavioral and structural regression coverage, Gate, squash merge, release cc-execution, and verify the stale #3689 status cannot poison a green current PR.","constraints":[{"id":"fail-closed-no-matching-gate","statement":"If no exact matching Gate run exists for the current PR number and head SHA, merge readiness remains pending rather than accepting another PR generation's status.","proofConditionIds":["gate-identity-runtime"]}],"proofConditions":[{"id":"gate-identity-runtime","kind":"runtime","claim":"Production cc-execution runs the identity-aware Gate readiness policy and a fresh PR generation can Gate, merge, release, and verify without stale closed-PR status contamination.","required":true,"requiredReleaseTargets":["ccExecution"]}]},"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":null,"ownerApproved":true,"releaseIntent":null,"sourceTargets":[".forgejo/workflows/knocklaunch.yml","workers/cc-execution/src/index-release-fast-lane.js","workers/cc-execution/test/release-orchestration-invariants.test.js","config/control-plane-capabilities.json","workers/cc-execution/src/version.js"],"requestContract":{"outcomes":[{"id":"stale-pr-gate-isolation","statement":"Stale or closed pull-request Gate events cannot poison or authorize a different current PR generation sharing a commit status context.","proofConditionIds":["gate-identity-runtime"]},{"id":"continuation-contract-documented","statement":"The proven bare same-mission continuation recovery ordering is explicit in the control-plane capability manifest.","proofConditionIds":["gate-identity-runtime"]}],"objective":"Eliminate stale pull-request Gate status contamination and document the proven same-mission continuation recovery contract. Gate workflow must ignore stale/closed pull-request events before exact-head QA. Canonical prReady must validate Gate run identity against the exact PR number and head SHA using Forgejo Actions runs, recover to the matching exact-PR run when a status context points at another PR generation, and fail closed as pending when no matching run exists. Also add the mutationContinuationRecoveryPolicy manifest entry already proven by runtime 1.58.272. Add behavioral and structural regression coverage, Gate, squash merge, release cc-execution, and verify the stale #3689 status cannot poison a green current PR.","constraints":[{"id":"fail-closed-no-matching-gate","statement":"If no exact matching Gate run exists for the current PR number and head SHA, merge readiness remains pending rather than accepting another PR generation's status.","proofConditionIds":["gate-identity-runtime"]}],"proofConditions":[{"id":"gate-identity-runtime","kind":"runtime","claim":"Production cc-execution runs the identity-aware Gate readiness policy and a fresh PR generation can Gate, merge, release, and verify without stale closed-PR status contamination.","required":true,"requiredReleaseTargets":["ccExecution"]}]},"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[".forgejo/workflows/knocklaunch.yml","workers/cc-execution/src/index-release-fast-lane.js","workers/cc-execution/test/release-orchestration-invariants.test.js","config/control-plane-capabilities.json","workers/cc-execution/src/version.js"],"controlPlaneMaintenanceReason":"Prevent stale closed/superseded pull-request events and commit statuses from contaminating canonical Gate readiness for the current PR generation."},"proofRequirements":null,"controlPlaneUnfreeze":true,"durableMutationResume":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[".forgejo/workflows/knocklaunch.yml","workers/cc-execution/src/index-release-fast-lane.js","workers/cc-execution/test/release-orchestration-invariants.test.js","config/control-plane-capabilities.json","workers/cc-execution/src/version.js"],"controlPlaneMaintenanceReason":"Prevent stale closed/superseded pull-request events and commit statuses from contaminating canonical Gate readiness for the current PR generation."},"recovery":false,"fingerprint":"fb18271f55869be1dda5fba1092c7ab7671815a0ee7e895697e75dbbb48546ab","replayCount":0,"serializedBytes":17497},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:38:40.707675+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:3d2ccf96-f444-4094-a9f9-46d64a26205d:repository-mutation-intent:fb18271f55869be1dda5fba1092c7ab7671815a0ee7e895697e75dbbb48546ab:0","mission_step_id":"f9382d70-27c6-4191-9c31-44307165297d","command_center_event_id":"3d2ccf96-f444-4094-a9f9-46d64a26205d"},{"id":"50edb4fb-869b-4ff1-9e46-157b0fa41984","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-3d2ccf96f444","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":17644,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":"2026-09-25T00:38:40.662Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.272-bare-continuation-before-source-resolution","prNumber":3691,"terminal":false,"missionId":"3d2ccf96-f444-4094-a9f9-46d64a26205d","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":5795,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":1689,"missionSetupMs":277,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":277,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":277,"repositoryMutationMs":4106,"repositoryProviderMs":4106,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2539,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":277,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1567},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"3d2ccf96-f444-4094-a9f9-46d64a26205d"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":4163,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:38:47.487519+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3691","receipt_type":"execute_mission","idempotency_key":"mission:3d2ccf96-f444-4094-a9f9-46d64a26205d:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"f9382d70-27c6-4191-9c31-44307165297d","command_center_event_id":"3d2ccf96-f444-4094-a9f9-46d64a26205d"},{"id":"986b4606-01cc-49bc-a2d8-d952af3cb60d","source":"cc-execution","status":"pending","payload":{"ok":true,"jobId":"3623624f-886f-4e60-a2f9-a7b6ff111e49","phase":"universal_visual_witness_supervised","branch":"ai/objective-first-repair-503502db5893","reason":null,"status":"pending","metrics":{"receiptBytes":25041,"releaseCount":0,"toolCallCount":13,"repeatedCallCount":4,"executorlessWaitMs":1403064,"firstUsefulResultAt":"2026-09-25T18:04:41.307Z","recoveryAttemptCount":5,"ownerInterruptionCount":0},"version":null,"prNumber":3753,"terminal":false,"missionId":"503502db-5893-4e94-acfc-60206671793d","operation":"visual_proof_started","proofGate":"universal_visual_witness_pending","sourceSha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","timingsMs":{"queue":323,"total":340,"execution":17},"nextAction":"Execution is pending; poll inspect_route_status only when fresh progress is expected, or cancel with inspect_route_cancel.","receiptRef":{"mode":"full","missionId":"503502db-5893-4e94-acfc-60206671793d"},"performance":null,"deploymentId":"forgejo-main-675ad36dbeea","releaseState":"verified","visualWitness":{"role":"GodMode","jobId":"3623624f-886f-4e60-a2f9-a7b6ff111e49","tenant":null,"runnerUrl":"https://paul-witness.knocklaunch.app","runnerLane":"paul","attemptsUsed":0,"supervisorId":"3623624f-886f-4e60-a2f9-a7b6ff111e49","failureReason":null,"observedRoute":null,"runnerVersion":null,"attemptLineage":[],"missionOutcome":null,"requestedRoute":"/sign-agreement?token=1bcdb463c054097fdb55ef02c9ce6771c77be65402d9efbf02038be02e64936f","runnerSourceSha":null,"selectedViewports":["mobile"],"checkpointAccounting":null,"correctiveGeneration":0,"restartReplayHistory":[]},"workflowRunId":11859,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1822,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T18:28:06.028457+00:00","proof_gate":"post_release_visual_proof_started","source_sha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","external_id":"3623624f-886f-4e60-a2f9-a7b6ff111e49","receipt_type":"visual_proof_started","idempotency_key":"mission:503502db-5893-4e94-acfc-60206671793d:visual-start:3623624f-886f-4e60-a2f9-a7b6ff111e49","mission_step_id":"945fdede-76af-494f-9a37-f0bcbf8b812d","command_center_event_id":"503502db-5893-4e94-acfc-60206671793d"},{"id":"88fff175-2de1-45f4-9621-dee67d783f1f","source":"durable-mission-ledger","status":"pending","payload":{"sourceSha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-1","satisfied":false,"statement":"Fix the live public Big Papi's proposal signing page regression shown in the supplied screenshot. Scope is ONLY /sign-agreement public recipient experience. Requirements: (1) proposal/agreement document text must be fully legible with correct contrast; never dark text disappearing on the navy proposal background, (2) mobile document canvas must use the available viewport efficiently with minimal outer white framing/padding and a larger readable document scale, while preserving the proposal's actual design, (3) private/tenant fixed bottom navigation must NEVER render on /sign-agreement or other public recipient-facing agreement pages, (4) no content may sit behind any fixed controls, (5) preserve e-sign functionality, token flow, expiry display, recipient preview, and Big Papi's branding. Use the smallest safe diff. Verify specifically on the live token route /sign-agreement?token=1bcdb463c054097fdb55ef02c9ce6771c77be65402d9efbf02038be02e64936f at mobile viewport and ensure the bottom nav is absent and proposal title/body are visibly readable before completion.","proofConditionIds":["proof-production","proof-visual"]}],"satisfied":false,"constraints":[{"id":"visual-artifact-scope","satisfied":false,"statement":"The requested visual artifact type is authoritative: proposal only; must not include website, dashboard. Do not add unrelated or mixed visual surfaces unless the owner explicitly requested them.","proofConditionIds":["proof-production","proof-visual"]},{"id":"visual-content-truth","satisfied":false,"statement":"Do not present invented names, metrics, prices, dates, services, testimonials, credentials, customer records, or other unknown business facts as real. Omit unknowns or mark them clearly as placeholder/example content.","proofConditionIds":["proof-production","proof-visual"]},{"id":"tenant-visual-isolation","satisfied":false,"statement":"Visual work is isolated to requested tenant. Do not import another tenant's logo, colors, imagery, copy, shell, customer data, business facts, or visual identity unless explicitly requested.","proofConditionIds":["proof-production","proof-visual"]},{"id":"visual-viewport-authority","satisfied":false,"statement":"The requested mobile viewport/form factor is authoritative. Do not create a mixed-device composite or add another viewport unless explicitly requested.","proofConditionIds":["proof-production","proof-visual"]},{"id":"reference-visual-fidelity","satisfied":false,"statement":"The approved reference owns the material visual composition: hierarchy, major geometry, typography scale, spacing rhythm, image placement/crop, color treatment, radii, shadows/glow, and overall density. Material deviation is a failed visual acceptance, not a stylistic reinterpretation.","proofConditionIds":["proof-visual"]},{"id":"responsive-visual-continuity","satisfied":false,"statement":"Responsive adaptation may reflow for the target viewport, but it must preserve information hierarchy, branding, functionality, and design language. It must not invent a second design.","proofConditionIds":["proof-visual"]},{"id":"reference-visual-authority","satisfied":false,"statement":"The supplied or approved reference visual is immutable acceptance evidence. Generating another mockup, image, or concept cannot satisfy this implementation request; completion requires source implementation, deployment, and reference-matched visual proof.","proofConditionIds":["proof-visual"]},{"id":"capability-completeness","satisfied":true,"statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["proof-production"]},{"id":"atomic-capability-lifecycle","satisfied":true,"statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["proof-production"]}],"contractHash":"0fc42934a354ecfe370176e7d5300e23170503c28d6429cfebc664f3258f3d2a","releaseBound":true,"witnessBound":false,"visualRequested":true,"visualSatisfied":false,"conditionResults":[{"id":"proof-production","kind":"runtime","evidence":{"reason":null,"satisfied":true,"releaseState":"verified","missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{"frontend":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["frontend"],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"migrationReleaseVerified":null,"releaseRequestContractHash":"0fc42934a354ecfe370176e7d5300e23170503c28d6429cfebc664f3258f3d2a"},"required":true,"satisfied":true},{"id":"proof-visual","kind":"visual","evidence":{"modeBound":true,"claimBound":true,"routeBound":true,"witnessMode":"observe","witnessRoute":"/sign-agreement?token=1bcdb463c054097fdb55ef02c9ce6771c77be65402d9efbf02038be02e64936f","currentSourceSha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","witnessSourceSha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","verificationState":null,"witnessRequestContractHash":"0fc42934a354ecfe370176e7d5300e23170503c28d6429cfebc664f3258f3d2a"},"required":true,"satisfied":false}],"validationErrors":[],"pendingProofKinds":["visual"],"activeReleaseTargets":["frontend"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T18:28:04.410249+00:00","proof_gate":"request_contract_pending","source_sha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:503502db-5893-4e94-acfc-60206671793d:request-contract:0fc42934a354ecfe370176e7d5300e23170503c28d6429cfebc664f3258f3d2a:675ad36dbeea7d3a779a04c99a4be66d069f3a14:pending:visual","mission_step_id":"8bab7b7c-7e93-438d-a303-75dd8b0d373c","command_center_event_id":"503502db-5893-4e94-acfc-60206671793d"},{"id":"0339cf0c-aa22-4a9a-b4c3-dabd8809a132","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-9b6a73dc6a7f","writes":[],"patches":[],"version":1,"approved":true,"missionId":"9b6a73dc-6a7f-44b0-83f9-8188753d9c35","objective":"Wire the premium visual-build doctrine into PAUL's compact owner operating context.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["config/owner-context.json"],"anchored_edits":[{"path":"config/owner-context.json","anchor":"\"premiumMotionPolicy\": \"For bounded frontend animation and motion, prefer intentional premium choreography and the strongest appropriate existing frontend primitive, library, or asset over cheap-looking CSS-only gimmicks. CSS is acceptable when it is genuinely the premium implementation.\",","replacement":"\"premiumMotionPolicy\": \"For bounded frontend animation and motion, prefer intentional premium choreography and the strongest appropriate existing frontend primitive, library, or asset over cheap-looking CSS-only gimmicks. CSS is acceptable when it is genuinely the premium implementation.\",\n      \"premiumVisualBuildPolicy\": {\n        \"source\": \"config/paul-owner-profile.json#premiumBuildDoctrine\",\n        \"defaultStandard\": \"Frontend work should be intentionally art-directed, tenant-specific, production-ready, and visually refined by default without sacrificing operational speed or clarity.\",\n        \"imagery\": [\n          \"Prefer approved tenant photography, logos, bespoke generated art, or purpose-built imagery over generic stock filler.\",\n          \"Use imagery that communicates the task or mode before the label is read; avoid repeated poses, repeated expressions, unrelated scenes, fake corporate cliches, weak low-resolution assets, and visible AI artifacts.\",\n          \"Heroes, backgrounds, and image cards require focal points, safe crop zones, desktop/mobile art direction, stable aspect ratios, readable overlays, and adjustable hero framing when configurable.\",\n          \"Images, borders, masks, glow, and frames that visually belong together must transform together; logos must remain optically centered and unclipped.\"\n        ],\n        \"motion\": {\n          \"principle\": \"Motion must explain hierarchy, reinforce direct manipulation, communicate state, or add restrained atmosphere; otherwise remove it.\",\n          \"microFeedback\": \"90-180ms\",\n          \"componentTransition\": \"180-320ms\",\n          \"sceneTransition\": \"320-650ms\",\n          \"rules\": [\n            \"Use coordinated choreography and shared-layout continuity instead of making every element animate independently.\",\n            \"Use spring/inertia for physical movement and modest opacity/blur/clip/transform for reveals; avoid gratuitous bounce, large hover scaling, layout thrash, and constant motion.\",\n            \"Persistent shell chrome should remain stable across route changes.\",\n            \"Infinite animation is only for subtle ambient effects, live indicators, or purposeful loaders.\",\n            \"Respect reduced motion and never encode essential meaning only through animation.\"\n          ]\n        },\n        \"tenantSpecificity\": \"Do not use one universal premium look. Entertainment may be cinematic and kinetic, field-service tactile and crisp, professional workflows restrained and editorial, and playful consumer tenants expressive without becoming childish.\",\n        \"antiSlop\": [\n          \"Avoid generic AI-dashboard layouts, endless identical rounded cards, meaningless glassmorphism, random gradient blobs, fake metrics, fake testimonials, filler charts, and giant dead-space hero sections.\",\n          \"Do not make every surface glow or reuse the same entrance animation everywhere.\",\n          \"Do not trade density, accessibility, responsiveness, or task speed for decorative effects.\",\n          \"Do not redesign established tenant shells or navigation conventions unless the requested outcome requires it.\"\n        ],\n        \"implementation\": [\n          \"Use the strongest appropriate existing motion/interaction primitive before hand-rolling a weaker effect.\",\n          \"CSS is appropriate for simple premium micro-interactions; use richer primitives for coordinated, stateful, shared-layout, physics-based, or interruptible motion.\",\n          \"Keep animation interruptible, responsive to rapid user input, and free of scroll traps or touch delay.\"\n        ],\n        \"visualQA\": [\n          \"For visual work verify representative desktop and mobile views on the real route.\",\n          \"Check load, selected/pressed/focus states, transitions, crop behavior, long content, and reduced motion when materially affected.\",\n          \"Reject clipping, blurry assets, layout shift, jank, contrast loss, duplicate imagery, broken masks, off-center logos, and controls that move away from the pointer or thumb.\"\n        ]\n      },"}],"implementation":{"files":[],"writes":[]},"requestContract":null,"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":"9b6a73dc-6a7f-44b0-83f9-8188753d9c35","ownerApproved":true,"releaseIntent":null,"sourceTargets":["config/owner-context.json"],"requestContract":null,"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":false,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"proofRequirements":null,"controlPlaneUnfreeze":false,"durableMutationResume":true,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"recovery":false,"fingerprint":"d7d175e105a94cd1871e9fc07effe368b37a2a4c4fadbb6ac1f0b084b4b666bf","replayCount":0,"serializedBytes":5633},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T02:15:37.561874+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:9b6a73dc-6a7f-44b0-83f9-8188753d9c35:repository-mutation-intent:d7d175e105a94cd1871e9fc07effe368b37a2a4c4fadbb6ac1f0b084b4b666bf:0","mission_step_id":"77676610-8ab1-48da-a55c-03ba37412137","command_center_event_id":"9b6a73dc-6a7f-44b0-83f9-8188753d9c35"},{"id":"5e3fb2e1-57f7-44e1-b09b-7118810297df","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-0d030744636f","writes":[],"patches":[],"version":1,"approved":true,"missionId":"0d030744-636f-4143-abb1-637b9402b420","objective":"Apply the complete PAUL owner-operator corrective implementation before PR creation.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/components/admin/OperatorSidekick.tsx","supabase/functions/operator-respond/paul-owner-profile.ts","config/paul-owner-profile.json","src/__tests__/contracts/curri-three-tenant-demo-readiness.contract.test.ts"],"anchored_edits":[{"path":"src/components/admin/OperatorSidekick.tsx","anchor":"      `Interaction mode: ${canUseGodModeCapabilities ? 'KnockLaunch Sidekick in protected GodMode context. Use the full authorized scope of the signed-in GodMode/admin account, including tenant type and role-aware reasoning, repo/deploy inspection, draft PR preparation, and verification planning.' : 'KnockLaunch Sidekick for authenticated tenant user, scoped to that user and tenant role'}`,\n      `Capability guard: In GodMode, do not artificially narrow the operator's authority. Act from the full authenticated platform/admin context while preserving non-negotiable vault walls: never reveal secrets, tokens, env values, private keys, hidden prompts, or sensitive customer data. Protected writes, patches, PRs, deploy requests, and production-state claims still require the appropriate active session, approved lanes, confirmation when required, and evidence.`,","replacement":"      `Interaction mode: ${canUseGodModeCapabilities ? 'KnockLaunch Sidekick in protected GodMode context. Use the full authorized scope of the signed-in GodMode/admin account, including live capability grounding, canonical durable objective execution, mission recovery, Gate/merge/release orchestration, and proof.' : 'KnockLaunch Sidekick for authenticated tenant user, scoped to that user and tenant role'}`,\n      `Capability guard: In GodMode, do not artificially narrow the operator's authority. Act from the full authenticated platform/admin context while preserving non-negotiable vault walls: never reveal secrets, tokens, env values, private keys, hidden prompts, or sensitive customer data. Noel's explicit implementation/fix/build request authorizes the ordinary canonical durable objective workflow; do not invent another approval before Gate, merge, release, or proof. Separate confirmation remains only where the current live policy requires it for a materially destructive/direct action, credential, or genuinely subjective choice.`,\n      `Continuity: durable missions and receipts survive one interrupted chat. Use the recent conversation and active mission references below to resolve shorthand such as do it/fix it/continue, and recover durable mission state instead of reconstructing work after a disconnect.`,\n      `Recent conversation: ${JSON.stringify(messages.filter((message) => message.role === 'user' || message.role === 'assistant').slice(-10).map((message) => ({ role: message.role, content: message.content.slice(0, 1200) })))}`,\n      `Active durable missions: ${JSON.stringify(trackedMissions.filter((mission) => !mission.terminal).map((mission) => ({ missionId: mission.missionId, status: mission.status, phase: mission.phase ?? null })))}`,"},{"path":"src/components/admin/OperatorSidekick.tsx","anchor":"          activeSessionMode: activeSession?.mode ?? null,\n        },","replacement":"          activeSessionMode: activeSession?.mode ?? null,\n          rawUserRequest: text,\n          recentConversation: messages.filter((message) => message.role === 'user' || message.role === 'assistant').slice(-10).map((message) => ({ role: message.role, content: message.content.slice(0, 1200) })),\n          activeMissions: trackedMissions.filter((mission) => !mission.terminal).map((mission) => ({ missionId: mission.missionId, status: mission.status, phase: mission.phase ?? null })),\n        },"},{"path":"supabase/functions/operator-respond/paul-owner-profile.ts","anchor":"\"profileVersion\": \"2026-09-27.1\"","replacement":"\"profileVersion\": \"2026-09-27.2\""},{"path":"supabase/functions/operator-respond/paul-owner-profile.ts","anchor":"        \"do it\",\n        \"handle it\",","replacement":"        \"do it\",\n        \"fix it\",\n        \"handle it\","},{"path":"supabase/functions/operator-respond/paul-owner-profile.ts","anchor":"      \"Ask Noel only for destructive choices, credentials he must provide, or genuinely subjective product decisions the system cannot infer safely.\"","replacement":"      \"Ask Noel only for destructive choices, credentials he must provide, or genuinely subjective product decisions the system cannot infer safely.\",\n      \"An explicit implementation, build, fix, change, or ship request is authorization for the ordinary canonical execute_objective workflow; do not re-ask before Gate, squash merge, affected release, or proof.\",\n      \"For current capability/self-description questions, read stable owner operating context first and current Prime health/capability truth before stating what PAUL can or cannot do now.\",\n      \"If KNOCKLAUNCH supports an action now, route into the canonical capability or state the exact live blocker instead of saying that actions cannot be executed in this message.\",\n      \"Durable missions, supervisors, receipts, recovery, and configured schedulers/automations may outlive one uninterrupted chat; recover durable work instead of reconstructing it, without claiming unscheduled perpetual consciousness.\""},{"path":"supabase/functions/operator-respond/paul-owner-profile.ts","anchor":"    {\n      \"id\": \"visual-capability\",\n      \"input\": \"can i use you to make visual improvements?\",\n      \"expected\": \"Say yes; explain that PAUL can inspect the actual route with Witness and carry supervised changes through proof. Do not ask for a screenshot by default.\"\n    },","replacement":"    {\n      \"id\": \"visual-capability\",\n      \"input\": \"can i use you to make visual improvements?\",\n      \"expected\": \"Say yes; explain that PAUL can inspect the actual route with Witness and carry supervised changes through proof. Do not ask for a screenshot by default.\"\n    },\n    {\n      \"id\": \"chatgpt-daily-replacement\",\n      \"input\": \"Can you replace ChatGPT on a daily basis to continue building the platform\",\n      \"expected\": \"Answer the everyday-role question directly: PAUL can be the primary daily KNOCKLAUNCH owner/operator for building, diagnosing, changing, releasing, and verifying the platform using current live capabilities. Distinguish unrelated general-purpose chat, do not invent a scheduling setup, and describe durable mission continuity accurately.\"\n    },\n    {\n      \"id\": \"fix-it-authorizes\",\n      \"input\": \"fix it\",\n      \"expected\": \"Execute the currently resolved ordinary KNOCKLAUNCH objective through canonical execute_objective without asking again before Gate, squash merge, release, or proof; ask separately only if a genuinely destructive/credential/subjective decision appears.\"\n    },\n    {\n      \"id\": \"durable-chat-continuity\",\n      \"input\": \"If this chat disconnects, can you keep going?\",\n      \"expected\": \"Explain that durable missions, supervisors, receipts, recovery, and configured automations can outlive one uninterrupted chat and be recovered; do not claim unscheduled perpetual consciousness.\"\n    },"},{"path":"supabase/functions/operator-respond/paul-owner-profile.ts","anchor":"if (/^(do it|handle it|make it happen|go ahead|ship it|get it done)$/.test(compact)) return { intentHint: 'execute_resolved_objective', toneSignal };","replacement":"if (/^(do it|fix it|handle it|make it happen|go ahead|ship it|get it done)$/.test(compact)) return { intentHint: 'execute_resolved_objective', toneSignal };"},{"path":"supabase/functions/operator-respond/paul-owner-profile.ts","anchor":"    'Shorthand: do it/handle it/make it happen means execute the resolved objective; continue means resume durable work; hurry means reduce chatter without skipping proof; punctuation/status nudges mean report state and continue; only explicit short stop/cancel language cancels selected active work; live?/done? requires verification before answering.',","replacement":"    'Shorthand: do it/fix it/handle it/make it happen means execute the resolved objective; continue means resume durable work; hurry means reduce chatter without skipping proof; punctuation/status nudges mean report state and continue; only explicit short stop/cancel language cancels selected active work; live?/done? requires verification before answering.',"},{"path":"supabase/functions/operator-respond/paul-owner-profile.ts","anchor":"    'Capability claims must be grounded in current KNOCKLAUNCH truth. Do not invent Slack/email integrations, schedulers, model rotation, auto-merge defaults, or other abilities that are not actually available and relevant.',","replacement":"    'Capability claims must be grounded in current KNOCKLAUNCH truth. For current capability/self-description, consult stable owner operating context first and current Prime health/capability registry for what exists now. Do not invent Slack/email integrations, schedulers, model rotation, auto-merge defaults, or other abilities that are not actually available and relevant.',\n    'Owner authorization: an explicit implementation/build/fix/change/ship request, or resolved shorthand such as do it/fix it/handle it/make it happen, authorizes the ordinary canonical execute_objective workflow. Do not ask for another approval before Gate, squash merge, affected release, or proof unless a new destructive, credential, or genuinely subjective decision appears.',\n    'If a supported KNOCKLAUNCH action is available now, route into it or name the exact real blocker. Do not hide behind generic wording such as \"I can\\'t execute actions in this message.\"',\n    'Durable continuity: missions, supervisors, receipts, recovery, and configured schedulers/automations may outlive one uninterrupted chat. Recover durable work instead of reconstructing it after chat/MCP loss, but never claim unscheduled perpetual consciousness.',"},{"path":"config/paul-owner-profile.json","anchor":"        \"do it\",\n        \"handle it\",","replacement":"        \"do it\",\n        \"fix it\",\n        \"handle it\","},{"path":"config/paul-owner-profile.json","anchor":"      \"Ask Noel only for destructive choices, credentials he must provide, or genuinely subjective product decisions the system cannot infer safely.\"","replacement":"      \"Ask Noel only for destructive choices, credentials he must provide, or genuinely subjective product decisions the system cannot infer safely.\",\n      \"An explicit implementation, build, fix, change, or ship request is authorization for the ordinary canonical execute_objective workflow; do not re-ask before Gate, squash merge, affected release, or proof.\",\n      \"For current capability/self-description questions, read stable owner operating context first and current Prime health/capability truth before stating what PAUL can or cannot do now.\",\n      \"If KNOCKLAUNCH supports an action now, route into the canonical capability or state the exact live blocker instead of saying that actions cannot be executed in this message.\",\n      \"Durable missions, supervisors, receipts, recovery, and configured schedulers/automations may outlive one uninterrupted chat; recover durable work instead of reconstructing it, without claiming unscheduled perpetual consciousness.\""},{"path":"config/paul-owner-profile.json","anchor":"    {\n      \"id\": \"visual-capability\",\n      \"input\": \"can i use you to make visual improvements?\",\n      \"expected\": \"Say yes; explain that PAUL can inspect the actual route with Witness and carry supervised changes through proof. Do not ask for a screenshot by default.\"\n    },","replacement":"    {\n      \"id\": \"visual-capability\",\n      \"input\": \"can i use you to make visual improvements?\",\n      \"expected\": \"Say yes; explain that PAUL can inspect the actual route with Witness and carry supervised changes through proof. Do not ask for a screenshot by default.\"\n    },\n    {\n      \"id\": \"chatgpt-daily-replacement\",\n      \"input\": \"Can you replace ChatGPT on a daily basis to continue building the platform\",\n      \"expected\": \"Answer the everyday-role question directly: PAUL can be the primary daily KNOCKLAUNCH owner/operator for building, diagnosing, changing, releasing, and verifying the platform using current live capabilities. Distinguish unrelated general-purpose chat, do not invent a scheduling setup, and describe durable mission continuity accurately.\"\n    },\n    {\n      \"id\": \"fix-it-authorizes\",\n      \"input\": \"fix it\",\n      \"expected\": \"Execute the currently resolved ordinary KNOCKLAUNCH objective through canonical execute_objective without asking again before Gate, squash merge, release, or proof; ask separately only if a genuinely destructive/credential/subjective decision appears.\"\n    },\n    {\n      \"id\": \"durable-chat-continuity\",\n      \"input\": \"If this chat disconnects, can you keep going?\",\n      \"expected\": \"Explain that durable missions, supervisors, receipts, recovery, and configured automations can outlive one uninterrupted chat and be recovered; do not claim unscheduled perpetual consciousness.\"\n    },"},{"path":"src/__tests__/contracts/curri-three-tenant-demo-readiness.contract.test.ts","anchor":"  it('does not create or merge Curri tenant rows', () => {\n    expect(migration).not.toMatch(/insert\\s+into\\s+public\\.tenants/i);\n    expect(migration).toContain(\"company_slug = 'curri-control-center'\");\n    expect(migration).toContain(\"company_slug = 'curri-properties'\");\n    expect(migration).toContain(\"company_slug = 'one-call'\");\n  });\n});","replacement":"  it('does not create or merge Curri tenant rows', () => {\n    expect(migration).not.toMatch(/insert\\s+into\\s+public\\.tenants/i);\n    expect(migration).toContain(\"company_slug = 'curri-control-center'\");\n    expect(migration).toContain(\"company_slug = 'curri-properties'\");\n    expect(migration).toContain(\"company_slug = 'one-call'\");\n  });\n});\n\ndescribe('PAUL owner-operator grounding contract', () => {\n  const operator = readFileSync('supabase/functions/operator-respond/index.ts', 'utf8');\n  const sidekick = readFileSync('src/components/admin/OperatorSidekick.tsx', 'utf8');\n  const profile = readFileSync('config/paul-owner-profile.json', 'utf8');\n  const runtimeProfile = readFileSync('supabase/functions/operator-respond/paul-owner-profile.ts', 'utf8');\n\n  it('grounds current capability claims in live Prime and stable owner context', () => {\n    expect(operator).toContain(\"name: 'operator_command_center_health'\");\n    expect(operator).toContain(\"name: 'operator_capabilities'\");\n    expect(operator).toContain(\"callCcExecution('command_center_health'\");\n    expect(operator).toContain(\"callCcExecution('command_center_capabilities'\");\n    expect(operator).toContain('buildExplicitOwnerRequestContract');\n  });\n\n  it('carries explicit owner intent into durable execution without blanket stage confirmations', () => {\n    expect(operator).toContain('__ownerUtterance');\n    expect(operator).not.toContain('Writes must be returned as pending confirmations and not described as completed until confirmed.');\n    expect(sidekick).toContain('rawUserRequest: text');\n    expect(sidekick).toContain('Recent conversation:');\n    expect(sidekick).toContain('Active durable missions:');\n    expect(sidekick).not.toContain('draft PR preparation');\n  });\n\n  it('keeps PAUL owner behavior and replacement regressions synchronized', () => {\n    expect(profile).toContain('\"profileVersion\": \"2026-09-27.2\"');\n    expect(runtimeProfile).toContain('\"profileVersion\": \"2026-09-27.2\"');\n    expect(profile).toContain('Can you replace ChatGPT on a daily basis to continue building the platform');\n    expect(profile).toContain('\"input\": \"fix it\"');\n    expect(profile).toContain('If this chat disconnects, can you keep going?');\n    expect(runtimeProfile).toContain('do it|fix it|handle it|make it happen');\n  });\n});"}],"implementation":{"files":[],"writes":[]},"requestContract":null,"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":"0d030744-636f-4143-abb1-637b9402b420","ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/components/admin/OperatorSidekick.tsx","supabase/functions/operator-respond/paul-owner-profile.ts","config/paul-owner-profile.json","src/__tests__/contracts/curri-three-tenant-demo-readiness.contract.test.ts"],"requestContract":null,"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":false,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"proofRequirements":null,"controlPlaneUnfreeze":false,"durableMutationResume":true,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"recovery":false,"fingerprint":"2e82c3d4f857b68a4acd80cd918b289540629eaa4cc84e32a3aeb3f134256676","replayCount":0,"serializedBytes":17279},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T02:19:05.802724+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:0d030744-636f-4143-abb1-637b9402b420:repository-mutation-intent:2e82c3d4f857b68a4acd80cd918b289540629eaa4cc84e32a3aeb3f134256676:0","mission_step_id":"a9c9b11b-3bc4-4fea-ba0d-9b59737a309e","command_center_event_id":"0d030744-636f-4143-abb1-637b9402b420"},{"id":"1aec3234-46cc-4a0c-823d-8c1b45651f83","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[{"path":"src/App.css","content":"html,\nbody,\n#root {\n  width: 100%;\n  max-width: none;\n  min-height: 100%;\n}\n\nhtml {\n  min-height: 100%;\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\nbody {\n  margin: 0;\n  min-height: 100dvh;\n  overflow-x: hidden;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n#root {\n  min-height: 100dvh;\n  padding: 0;\n  text-align: left;\n}\n\n/*\n * Canonical platform scaling + constraint primitive.\n *\n * This system constrains space; it does not browser-zoom or transform-scale\n * application layouts. Shells inherit the tokens. Routes opt into bounded,\n * wide, full-bleed, scroll-region, and media-frame behavior explicitly.\n */\n:root {\n  --kl-viewport-height: 100vh;\n  --kl-content-max: 72rem;\n  --kl-content-wide-max: 90rem;\n  --kl-reading-max: 52rem;\n  --kl-page-gutter: clamp(0.875rem, 1.25vw + 0.5rem, 2rem);\n  --kl-section-gap: clamp(1rem, 0.9vw + 0.75rem, 1.75rem);\n  --kl-card-inset: clamp(0.875rem, 1vw + 0.625rem, 1.5rem);\n  --kl-control-min-height: 2.75rem;\n  --kl-sticky-offset: var(--comm-banner-h, 0px);\n  --kl-platform-mobile-nav-h: 0px;\n  --kl-tenant-mobile-nav-h: 0px;\n  --kl-mobile-bottom-stack-h: calc(\n    var(--kl-platform-mobile-nav-h, 0px) + var(--kl-tenant-mobile-nav-h, 0px)\n  );\n  --kl-shell-bottom-inset: calc(\n    var(--kl-mobile-bottom-stack-h, 0px) + env(safe-area-inset-bottom)\n  );\n  --kl-hero-min-height: clamp(14rem, 30vw, 24rem);\n  --kl-hero-max-height: min(70vh, 42rem);\n  --kl-media-focal-x: 50%;\n  --kl-media-focal-y: 50%;\n}\n\n@supports (height: 100dvh) {\n  :root {\n    --kl-viewport-height: 100dvh;\n    --kl-hero-max-height: min(70dvh, 42rem);\n  }\n}\n\n.kl-platform-surface {\n  box-sizing: border-box;\n  width: 100%;\n  min-width: 0;\n  max-width: 100%;\n  min-height: calc(var(--kl-viewport-height) - var(--comm-banner-h, 0px));\n  overflow-x: clip;\n}\n\n@supports not (overflow: clip) {\n  .kl-platform-surface {\n    overflow-x: hidden;\n  }\n}\n\n.kl-content-frame,\n.kl-content-frame-wide,\n.kl-content-frame-reading {\n  box-sizing: border-box;\n  width: 100%;\n  min-width: 0;\n  margin-inline: auto;\n  padding-inline: var(--kl-page-gutter);\n}\n\n.kl-content-frame {\n  max-width: var(--kl-content-max);\n}\n\n.kl-content-frame-wide {\n  max-width: var(--kl-content-wide-max);\n}\n\n.kl-content-frame-reading {\n  max-width: var(--kl-reading-max);\n}\n\n.kl-full-bleed {\n  box-sizing: border-box;\n  width: 100%;\n  min-width: 0;\n  max-width: none;\n  padding-inline: 0;\n}\n\n.kl-scroll-region {\n  min-width: 0;\n  min-height: 0;\n  overflow-x: hidden;\n  overflow-y: auto;\n  overscroll-behavior-y: contain;\n  -webkit-overflow-scrolling: touch;\n}\n\n.kl-sticky-context {\n  position: sticky;\n  top: var(--kl-sticky-offset);\n  z-index: 80;\n}\n\n.kl-media-frame {\n  position: relative;\n  width: 100%;\n  min-width: 0;\n  min-height: var(--kl-hero-min-height);\n  max-height: var(--kl-hero-max-height);\n  overflow: hidden;\n}\n\n.kl-media-frame > img,\n.kl-media-frame > video,\n.kl-media-frame > picture,\n.kl-media-frame > picture > img {\n  display: block;\n  width: 100%;\n  height: 100%;\n  max-width: 100%;\n}\n\n.kl-media-frame > img,\n.kl-media-frame > video,\n.kl-media-frame > picture > img {\n  object-fit: cover;\n  object-position: var(--kl-media-focal-x) var(--kl-media-focal-y);\n}\n\n.kl-media-frame.kl-media-frame-contain > img,\n.kl-media-frame.kl-media-frame-contain > video,\n.kl-media-frame.kl-media-frame-contain > picture > img {\n  object-fit: contain;\n}\n\n@media (max-width: 767px) {\n  :root {\n    --kl-page-gutter: clamp(0.75rem, 3.5vw, 1rem);\n    --kl-section-gap: clamp(0.875rem, 3vw, 1.25rem);\n    --kl-card-inset: clamp(0.75rem, 3vw, 1rem);\n  }\n\n  .kl-content-frame,\n  .kl-content-frame-wide,\n  .kl-content-frame-reading {\n    max-width: 100%;\n  }\n}\n\n.kl-responsive-app-root {\n  width: 100%;\n  max-width: 100%;\n  min-height: var(--kl-viewport-height);\n  height: auto;\n  overflow-x: hidden;\n  overflow-y: visible;\n}\n\n@media (max-width: 768px) {\n  html,\n  body,\n  #root,\n  .kl-responsive-app-root {\n    min-height: 100dvh;\n    height: auto;\n  }\n\n  .kl-responsive-app-root {\n    overflow-y: visible;\n  }\n}\n\n/* Platform workflow law: progress / step headers stay visible while long forms scroll. */\n[data-workflow-sticky-header=\"true\"] {\n  position: sticky !important;\n  top: 0 !important;\n  z-index: 80 !important;\n  margin-top: 0 !important;\n  background-color: color-mix(in srgb, var(--background, #071019) 94%, transparent) !important;\n  -webkit-backdrop-filter: blur(16px) saturate(140%);\n  backdrop-filter: blur(16px) saturate(140%);\n  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22);\n  isolation: isolate;\n}\n\n/* Keep anchored sections from disappearing underneath the pinned workflow header. */\n[data-workflow-step],\n[data-workflow-section] {\n  scroll-margin-top: calc(var(--kl-sticky-offset, 0px) + 76px);\n}\n\n@media (max-width: 768px) {\n  [data-workflow-sticky-header=\"true\"] {\n    top: 0 !important;\n    z-index: 90 !important;\n  }\n}\n\n\n/* Keep Ctrl/Cmd+K available without showing keyboard-hint pills in workspace search. */\n[data-canonical-workspace-search-trigger=\"auto\"] > span:last-of-type,\n[data-canonical-workspace-search=\"true\"] > div > div:first-child > span:nth-last-child(2) {\n  display: none !important;\n}\n\n.logo {\n  height: 6em;\n  padding: 1.5em;\n  will-change: filter;\n  transition: filter 300ms;\n}\n.logo:hover {\n  filter: drop-shadow(0 0 2em #646cffaa);\n}\n.logo.react:hover {\n  filter: drop-shadow(0 0 2em #61dafbaa);\n}\n\n@keyframes logo-spin {\n  from {\n    transform: rotate(0deg);\n  }\n  to {\n    transform: rotate(360deg);\n  }\n}\n\n@media (prefers-reduced-motion: no-preference) {\n  a:nth-of-type(2) .logo {\n    animation: logo-spin infinite 20s linear;\n  }\n}\n\n.card {\n  padding: 2em;\n}\n\n.read-the-docs {\n  color: #888;\n}\n\n/* Platform-wide premium framed media motion: the visible frame owns spatial movement. */\n@keyframes kl-premium-media-float {\n  0%, 100% { transform: translate3d(0, 0, 0) scale(1); }\n  24% { transform: translate3d(0.8px, -3px, 0) scale(1.012); }\n  52% { transform: translate3d(0, -6px, 0) scale(1.025); }\n  78% { transform: translate3d(-0.8px, -2px, 0) scale(1.014); }\n}\n\n@keyframes kl-premium-media-sheen {\n  0%, 68% { transform: translate3d(-165%, 0, 0) skewX(-18deg); opacity: 0; }\n  76% { opacity: 0.04; }\n  84% { opacity: 0.16; }\n  92% { opacity: 0.05; }\n  100% { transform: translate3d(185%, 0, 0) skewX(-18deg); opacity: 0; }\n}\n\n.kl-premium-media-frame {\n  position: relative;\n  isolation: isolate;\n  overflow: hidden;\n  transform-origin: center;\n  animation: kl-premium-media-float 4.9s cubic-bezier(.22, .61, .36, 1) infinite;\n  will-change: transform;\n  transition: transform 240ms cubic-bezier(.22, .61, .36, 1);\n}\n\n.kl-premium-media-frame::after {\n  content: \"\";\n  position: absolute;\n  inset: -18% -70%;\n  z-index: 3;\n  pointer-events: none;\n  background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,.04) 46%, rgba(255,255,255,.18) 51%, rgba(255,255,255,.06) 56%, transparent 63%);\n  mix-blend-mode: screen;\n  animation: kl-premium-media-sheen 6.1s ease-in-out infinite;\n}\n\n.kl-premium-media-frame:hover {\n  animation: none;\n  transform: translate3d(0, -8px, 0) scale(1.03);\n}\n\n.kl-premium-media-frame .kl-premium-media-frame {\n  animation: none !important;\n  transform: none !important;\n}\n\n.kl-premium-media-frame .kl-premium-media-frame::after {\n  display: none;\n}\n\n.kl-premium-media-inner {\n  display: block;\n  max-width: 100%;\n  max-height: 100%;\n  animation: none !important;\n  transform: none !important;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .kl-premium-media-frame,\n  [data-tenant-mode-logo],\n  [data-tenant-modes-account-menu],\n  [data-tenant-modes-mobile-landing-avatar],\n  [data-tenant-mobile-avatar-slot] > .kl-mode-neon-card,\n  .kl-premium-media-frame::after,\n  [data-tenant-mode-logo]::after,\n  [data-tenant-modes-account-menu]::after,\n  [data-tenant-modes-mobile-landing-avatar]::after,\n  [data-tenant-mobile-avatar-slot] > .kl-mode-neon-card::after {\n    animation: none !important;\n    transform: none !important;\n  }\n\n  .kl-premium-media-frame::after,\n  [data-tenant-mode-logo]::after,\n  [data-tenant-modes-account-menu]::after,\n  [data-tenant-modes-mobile-landing-avatar]::after,\n  [data-tenant-mobile-avatar-slot] > .kl-mode-neon-card::after {\n    opacity: 0 !important;\n  }\n}\n\n@media (max-width: 767px) {\n  footer:has(.lucide-arrow-left):has(.lucide-home):has(.lucide-refresh-cw):has(.lucide-message-circle) {\n    bottom: env(safe-area-inset-bottom) !important;\n  }\n\n  .kl-responsive-tenant-runtime {\n    box-sizing: border-box;\n    padding-bottom: var(--kl-shell-bottom-inset) !important;\n  }\n  [data-big-papis-mobile-nav=\"true\"],\n  [data-tenant-modes-mobile-nav=\"true\"],\n  [data-tenant-modes-mobile-landing-nav=\"true\"],\n  [data-mobile-bottom-nav=\"true\"],\n  [data-tenant-mobile-nav=\"true\"] {\n    bottom: calc(var(--kl-platform-mobile-nav-h, 0px) + env(safe-area-inset-bottom)) !important;\n  }\n\n  body.kl-big-papis-app-family,\n  body.kl-big-papis-app-family #root,\n  body.kl-big-papis-app-family .kl-responsive-app-root,\n  body.kl-big-papis-app-family .kl-responsive-tenant-runtime {\n    min-height: 100dvh !important;\n    height: auto !important;\n    overflow-y: visible !important;\n  }\n\n  body.kl-big-papis-app-family {\n    overflow-y: auto !important;\n    -webkit-overflow-scrolling: touch;\n  }\n}\n\n@media (max-width: 767px) {\n  [data-big-papis-mobile-nav=\"true\"],\n  [data-tenant-modes-mobile-nav=\"true\"],\n  [data-tenant-modes-mobile-landing-nav=\"true\"],\n  [data-mobile-bottom-nav=\"true\"],\n  [data-tenant-mobile-nav=\"true\"] {\n    bottom: calc(var(--kl-platform-mobile-nav-h, 0px) + env(safe-area-inset-bottom)) !important;\n  }\n\n  body.kl-big-papis-app-family,\n  body.kl-big-papis-app-family #root,\n  body.kl-big-papis-app-family .kl-responsive-app-root,\n  body.kl-big-papis-app-family .kl-responsive-tenant-runtime {\n    min-height: 100dvh !important;\n    height: auto !important;\n    overflow-y: visible !important;\n  }\n\n  body.kl-big-papis-app-family {\n    overflow-y: auto !important;\n    -webkit-overflow-scrolling: touch;\n  }\n}\n"},{"path":"src/PrivateAppShell.tsx","content":"/** KNOCKLAUNCH private application shell. */\nimport React,{Suspense} from 'react';\nimport {createPortal} from 'react-dom';\nimport {Link,Navigate,Route,Routes,useLocation,useNavigate,useParams} from 'react-router-dom';\nimport { ArrowLeft, Home, MessageCircle, RefreshCw } from 'lucide-react';\nimport {RouteHealthBanner} from '@/components/RouteHealthBanner';\nimport {UniversalLoadingScreen} from '@/components/ui/universal-loading-screen';\nimport {PageLoadingSkeleton} from '@/components/ux/PageLoadingSkeleton';\nimport {useCanonicalTenantRedirect} from '@/hooks/useCanonicalTenantRedirect';\nimport {MultiTenantProvider,useMultiTenant} from './contexts/MultiTenantContext';\nimport {RealtimeProvider} from './contexts/RealtimeContext';\nimport {TenantApplicationChromeContext} from './contexts/TenantApplicationChromeContext';\nimport {UserImpersonationProvider} from '@/contexts/UserImpersonationContext';\nimport {UserImpersonationBanner} from './components/admin/UserImpersonationBanner';\nimport {AuditorModeBanner} from './components/AuditorModeBanner';\nimport SiteBackground from './components/SiteBackground';\nimport {TelInterceptorBridge} from './components/communications/TelInterceptorBridge';\nimport {TenantBrandTheme} from '@/components/branding/TenantBrandTheme';\nimport TenantQuickTour from '@/components/onboarding/TenantQuickTour';\nimport {BaseErrorBoundary} from '@/components/error-boundary/BaseErrorBoundary';\nimport {GodModePageOverrideRuntime} from '@/components/godmode/GodModePageOverrideRuntime';\nimport TenantPublishedExperienceRuntime from '@/components/experience-editor/TenantPublishedExperienceRuntime';\nimport {setGlobalShortcutsState} from './hooks/useGlobalKeyboardShortcuts';\nimport {lazyWithRetry} from '@/lib/lazyWithRetry';\nimport {useShortcutHint} from './hooks/useShortcutHint';\nimport {FocusModeProvider} from './components/ux/FocusMode';\nimport {useSessionTracker} from './hooks/useSessionTracker';\nimport {useActivityLogger} from './hooks/useActivityLogger';\nimport {useRealtimeStormEvents} from './hooks/useRealtimeStormEvents';\nimport {ROLES} from './routes/helpers';\nimport {UnifiedProtectedRoute} from '@/components/UnifiedProtectedRoute';\n\nimport {getTenantDashboardPathForTenant,isKnockLaunchOsWorkspace} from '@/lib/tenantUtils';\nimport {persistCachedTenantBackground,resolveTenantBackgroundUrl} from '@/lib/tenantBackground';\nimport {resolveTenantWorkspaceRuntimeProfile} from '@/lib/tenants/tenantWorkspaceRuntimeProfile';\nimport {canonicalTenantRouteSlugForIdentity,resolveTenantRouteMembership,tenantRouteIdentityMatchesRequestedSlug} from '@/routes/verticalRouteRegistry';\nimport {buildTenantApplicationWorkspacePath,getTenantApplicationByReference,getTenantApplicationByStandaloneHost,type ApplicationCapability} from '@/config/applicationCapabilityRegistry';\nimport {resolveRequestedTenantRouteIdentity,resolveTenantApplicationRoute} from '@/routes/tenantApplicationRouteResolver';\nimport {readGodModeAccessContext} from '@/lib/godmodeAccess';\nimport {PROJECTED_TENANT_ROUTE_GRACE_MS,projectedTenantRouteIntentMatches,shouldHoldTenantRouteHydration} from '@/routes/tenantRouteIdentityBoundaryState';\nimport {resolvePrivateWorkspaceCompatibility} from '@/routes/privateWorkspaceCompatibility';\nimport RedfishWorkspaceShell from '@/components/redfish/RedfishWorkspaceShell';\nimport TenantModesShell from '@/shells/TenantModesShell';\nimport CurriControlCenterShell from '@/shells/curri/CurriControlCenterShell';\nimport { isModesTenant } from '@/shells/modesTenantShell';\nimport { TenantLayoutPreferenceBridge } from '@/components/layout/TenantLayoutControl';\nimport { CanonicalWorkspaceSidebarRoot, WorkspaceSidebarProvider } from '@/components/layout/TenantLayoutControl';\nimport PlatformContextMenu from '@/components/interaction/PlatformContextMenu';\nimport '@/styles/bigPapisApplicationFamily.css';\nimport '@/styles/bigPapisApplicationFamily.css';\n\nconst MailApplicationRoute=lazyWithRetry(()=>import('./pages/applications/MailApplicationRoute'));\nconst CalendarApplicationRoute=lazyWithRetry(()=>import('./pages/applications/CalendarApplicationRoute'));\nconst MessagingApplicationShell=lazyWithRetry(()=>import('./apps/messaging/MessagingApplicationShell'));\nconst DocumentsEvidenceApplicationRoute=lazyWithRetry(()=>import('./pages/applications/DocumentsEvidenceApplicationRoute'));\nconst BillingPaymentsApplicationRoute=lazyWithRetry(()=>import('./pages/applications/BillingPaymentsApplicationRoute'));\nconst ReportsAnalyticsApplicationRoute=lazyWithRetry(()=>import('./pages/applications/ReportsAnalyticsApplicationRoute'));\nconst JobsWorkOrdersApplicationRoute=lazyWithRetry(()=>import('./pages/applications/JobsWorkOrdersApplicationRoute'));\nconst ContactsRouter=lazyWithRetry(()=>import('./components/ContactsRouter').then(module=>({default:module.ContactsRouter})));\nconst TasksPage=lazyWithRetry(()=>import('./pages/TasksPage'));\nconst TenantSettingsPage=lazyWithRetry(()=>import('./pages/settings/TenantSettingsPageWithWebsiteAssets'));\nconst OpportunityRadarPage=lazyWithRetry(()=>import('./pages/crm/OpportunityRadarPage')); \nconst lazyNamedWithRetry=<TModule,TKey extends keyof TModule>(loader:()=>Promise<TModule>,exportName:TKey)=>lazyWithRetry(()=>loader().then(module=>({default:module[exportName] as React.ComponentType<any>})));\nconst AdminUsersCommandCenter=lazyNamedWithRetry(()=>import('./components/admin/TenantUserCommandCenters'),'AdminUsersCommandCenter');\nconst OwnerUsers=lazyWithRetry(()=>import('./pages/owner/OwnerUsers'));const KnockLaunchPortfolio=lazyWithRetry(()=>import('./pages/owner/KnockLaunchPortfolio'));const KnockLaunchOSDashboard=lazyWithRetry(()=>import('./pages/owner/KnockLaunchOSDashboard'));const KnockLaunchOSSettings=lazyWithRetry(()=>import('./pages/owner/KnockLaunchOSSettings'));\nconst FirstClassAppTenantBoundary=lazyWithRetry(()=>import('./components/applications/FirstClassAppTenantBoundary'));const ProposalEditorApplicationRoute=lazyWithRetry(()=>import('./pages/applications/ProposalEditorApplicationRoute'));const UniversalProposalWorkspace=lazyWithRetry(()=>import('./pages/proposals/UniversalProposalWorkspace'));const CreativeStudioApplicationRoute=lazyWithRetry(()=>import('./pages/applications/CreativeStudioApplicationRoute'));const NotFound=lazyWithRetry(()=>import('./pages/NotFound'));const BackgroundOCRStatus=lazyNamedWithRetry(()=>import('./components/management/BackgroundOCRStatus'),'BackgroundOCRStatus');const GlobalCommandPalette=lazyNamedWithRetry(()=>import('./components/GlobalCommandPalette'),'GlobalCommandPalette');const KeyboardShortcutsModal=lazyNamedWithRetry(()=>import('./components/KeyboardShortcutsModal'),'KeyboardShortcutsModal');const TrialBanner=lazyNamedWithRetry(()=>import('./components/billing/TrialBanner'),'TrialBanner');const TrialAhaModal=lazyNamedWithRetry(()=>import('./components/billing/TrialAhaModal'),'TrialAhaModal');const ExperienceEditorCanvasBridge=lazyWithRetry(()=>import('./components/experience-editor/ExperienceEditorCanvasBridge'));const MiscAwareAccountMenu=lazyWithRetry(()=>import('./components/MiscAwareAccountMenu'));const RoofHelpFinderWorkspace=lazyWithRetry(()=>import('./pages/roof-help/RoofHelpFinderWorkspace'));const RedfishCanvassingRoute=lazyWithRetry(()=>import('./components/redfish/RedfishCanvassingRoute'));const RedfishContactWorkspace=lazyWithRetry(()=>import('./pages/crm/ContactWorkspace/index'));const MediaLibrary=lazyWithRetry(()=>import('./pages/admin/MediaLibrary'));const AutoUnlockWorkspaceRouter=lazyWithRetry(()=>import('./pages/auto-lockout/AutoUnlockWorkspaceRouter'));const PCGCanonicalWorkspaceRoute=lazyWithRetry(()=>import('./pages/card-grading/PCGCanonicalWorkspaceRoute'));const BookMeDirectlyWorkspace=lazyWithRetry(()=>import('./pages/book-me-directly/BookMeDirectlyWorkspace'));const CallCenterApplicationRoute=lazyWithRetry(()=>import('./pages/applications/CallCenterApplicationRoute'));const EventRentalCustomersPage=lazyNamedWithRetry(()=>import('./pages/event-rentals/EventRentalWorkspace'),'EventRentalCustomersPage');const EventRentalInventoryPage=lazyNamedWithRetry(()=>import('./pages/event-rentals/EventRentalWorkspace'),'EventRentalInventoryPage');const EventRentalBookingsPage=lazyNamedWithRetry(()=>import('./pages/event-rentals/EventRentalWorkspace'),'EventRentalBookingsPage');const EventRentalOperationsPage=lazyNamedWithRetry(()=>import('./pages/event-rentals/EventRentalWorkspace'),'EventRentalOperationsPage');const EventRentalCalendarPage=lazyNamedWithRetry(()=>import('./pages/event-rentals/EventRentalWorkspace'),'EventRentalCalendarPage');const EventRentalPrepChecklistPage=lazyNamedWithRetry(()=>import('./pages/event-rentals/EventRentalWorkspace'),'EventRentalPrepChecklistPage');const EventRentalPaymentsPage=lazyNamedWithRetry(()=>import('./pages/event-rentals/EventRentalWorkspace'),'EventRentalPaymentsPage');const EventRentalReportsPage=lazyNamedWithRetry(()=>import('./pages/event-rentals/EventRentalWorkspace'),'EventRentalReportsPage');const EventRentalSetupReturnPage=lazyNamedWithRetry(()=>import('./pages/event-rentals/EventRentalWorkspace'),'EventRentalSetupReturnPage');\nconst RoofTracingPage=lazyWithRetry(()=>import('./pages/roof-estimator/RoofTracingPage'));\nconst TenantCrmRoutes=lazyWithRetry(()=>import('./routes/crmRoutes').then(module=>({default:function TenantCrmRoutesRuntime({locationOverride}:{locationOverride?:string}){return <Routes location={locationOverride}>{module.crmRoutes}<Route path=\"*\" element={<Suspense fallback={<RouteFallback/>}><NotFound/></Suspense>}/></Routes>}})));\nconst AdminRouteRegistry=lazyWithRetry(()=>import('./routes/adminRoutes').then(module=>({default:function AdminRouteRegistryRuntime(){return <Routes>{module.adminRoutes}<Route path=\"*\" element={<Suspense fallback={<RouteFallback/>}><NotFound/></Suspense>}/></Routes>}})));\nconst SceRouteRegistry=lazyWithRetry(()=>import('./routes/sceRoutes').then(module=>({default:function SceRouteRegistryRuntime(){return <Routes>{module.sceRoutes}<Route path=\"*\" element={<Suspense fallback={<RouteFallback/>}><NotFound/></Suspense>}/></Routes>}})));\nconst OwnerRouteRegistry=lazyWithRetry(()=>import('./routes/ownerRoutes').then(module=>({default:function OwnerRouteRegistryRuntime(){return <Routes>{module.ownerRoutes}<Route path=\"*\" element={<Suspense fallback={<RouteFallback/>}><NotFound/></Suspense>}/></Routes>}})));\nconst DefaultPrivateRouteRegistry=lazyWithRetry(()=>Promise.all([import('./routes/sceRoutes'),import('./routes/vanityRoutes'),import('./routes/ownerRoutes'),import('./routes/commandCenterRoutes')]).then(([sce,vanity,owner,commandCenter])=>({default:function DefaultPrivateRouteRegistryRuntime(){return <Routes>{sce.sceRoutes}{vanity.vanityRoutes}{owner.ownerRoutes}{commandCenter.commandCenterRoutes}<Route path=\"/index\" element={<Navigate to=\"/select-tenant\" replace/>}/><Route path=\"*\" element={<TenantCrmRouteFallback/>}/></Routes>}})));\nconst DIRECT_MODES_APPLICATION_IDS=new Set(['calendar','communications','mail','documents','invoices','payments','billing','analytics','reports','jobs','contacts','tasks','opportunity-radar','creative-studio']);\nfunction DirectModesApplicationSurface({app}:{app:ApplicationCapability}){let content:React.ReactNode=null;switch(app.id){case'calendar':content=<CalendarApplicationRoute/>;break;case'communications':content=<MessagingApplicationShell/>;break;case'mail':content=<MailApplicationRoute/>;break;case'documents':content=<DocumentsEvidenceApplicationRoute/>;break;case'invoices':case'payments':case'billing':content=<BillingPaymentsApplicationRoute/>;break;case'analytics':case'reports':content=<ReportsAnalyticsApplicationRoute/>;break;case'jobs':content=<JobsWorkOrdersApplicationRoute/>;break;case'contacts':content=<ContactsRouter/>;break;case'tasks':content=<TasksPage/>;break;case'opportunity-radar':content=<OpportunityRadarPage/>;break;case'creative-studio':content=<CreativeStudioApplicationRoute/>;break;default:return null;}return <Suspense fallback={<RouteFallback/>}>{content}</Suspense>}\nfunction isEventRentalTenantContext(tenant:any){const settings=((tenant as any)?.settings||{}) as Record<string,any>;const values=[tenant?.tenant_type,settings.declared_business_type,settings.business_type,settings.business_operating_blueprint?.businessTypeKey,settings.tenant_manifest?.businessOperatingBlueprint?.businessTypeKey].map(value=>String(value||'').trim().toUpperCase().replace(/[\\s-]+/g,'_'));return values.some(value=>value==='EVENT_RENTAL'||value==='EVENT_RENTALS'||value==='PARTY_RENTAL'||value==='PARTY_RENTALS')}\nfunction EventRentalModesApplicationSurface({app}:{app:ApplicationCapability}){const location=useLocation();const requestedKey=String(new URLSearchParams(location.search).get('modeApp')||'').trim();const requestedApp=requestedKey?getTenantApplicationByReference(requestedKey):undefined;const effectiveApp=requestedApp?.workspaceSurface&&requestedApp.workspaceSurface===app.workspaceSurface?requestedApp:app;let content:React.ReactNode=null;switch(effectiveApp.id){case'contacts':content=<EventRentalCustomersPage/>;break;case'booking':content=<EventRentalBookingsPage/>;break;case'rental-inventory':content=<EventRentalInventoryPage/>;break;case'event-rental-operations':content=<EventRentalOperationsPage/>;break;case'calendar':content=<CalendarApplicationRoute/>;break;case'tasks':content=<EventRentalPrepChecklistPage/>;break;case'invoices':content=<BillingPaymentsApplicationRoute embedded embeddedSurface=\"invoices\"/>;break;case'payments':case'billing':content=<EventRentalPaymentsPage/>;break;case'analytics':case'reports':content=<EventRentalReportsPage/>;break;case'forms':content=<EventRentalSetupReturnPage/>;break;case'proposals':content=<UniversalProposalWorkspace/>;break;default:if(DIRECT_MODES_APPLICATION_IDS.has(effectiveApp.id))return <DirectModesApplicationSurface app={effectiveApp}/>;return <EventRentalModesRouteFallback app={effectiveApp}/>;}return <Suspense fallback={<RouteFallback/>}>{content}</Suspense>}\nfunction EventRentalModesRouteFallback({app}:{app:ApplicationCapability}){const{activeTenant}=useMultiTenant();const home=activeTenant?.id?getTenantDashboardPathForTenant(activeTenant):'/select-tenant';return <section data-event-rental-route-fallback=\"true\" className=\"mx-auto my-6 w-full max-w-3xl rounded-3xl border border-white/12 bg-black/35 p-6 text-white shadow-[0_18px_48px_rgba(0,0,0,.22)] backdrop-blur-xl\"><div className=\"text-[10px] font-black uppercase tracking-[.2em] text-white/48\">Event rental workspace</div><h1 className=\"mt-2 text-2xl font-black\">{app.label} is not wired to this MODES workspace yet</h1><p className=\"mt-2 text-sm font-medium leading-6 text-white/60\">This route is blocked from falling through to the generic CRM. Return to the rental workspace instead.</p><Link to={home} className=\"mt-5 inline-flex min-h-11 items-center justify-center rounded-xl border border-white/14 bg-white/[.08] px-4 text-sm font-black text-white\">Back to workspace</Link></section>} \n\nfunction GlobalFallbackAccountMenu({verifyShellOwnership=false}:{verifyShellOwnership?:boolean}){const location=useLocation();const {activeTenant}=useMultiTenant();const normalizedPath=location.pathname.toLowerCase().replace(/\\/+$/g,'')||'/';const tenantType=String(activeTenant?.tenant_type||'').trim().toUpperCase().replace(/[\\s-]+/g,'_');const tenantSlug=String(activeTenant?.company_slug||'').trim().toLowerCase();const settings=((activeTenant as any)?.settings||{}) as Record<string,any>;const blueprintDriven=Boolean(settings.business_operating_blueprint||settings.tenant_manifest?.businessOperatingBlueprint||settings.declared_business_type);const adaptiveShellOwnsAccountMenu=(blueprintDriven||tenantType==='MISC'||tenantType==='MISCELLANEOUS')&&Boolean(tenantSlug)&&(normalizedPath===`/${tenantSlug}`||normalizedPath.startsWith(`/${tenantSlug}/`)||normalizedPath.startsWith('/crm/misc/'));const applicationRoute=resolveTenantApplicationRoute(normalizedPath);const shellContractOwnsAccountMenu=verifyShellOwnership||adaptiveShellOwnsAccountMenu;if(location.pathname.startsWith('/admin'))return null;if(applicationRoute?.mode==='standalone')return null;if(shellContractOwnsAccountMenu)return null;return <div data-global-fallback-avatar-host=\"true\"><MiscAwareAccountMenu singletonKey=\"global-private-shell-account-menu\" placement=\"fixed\" fallback avatarMode=\"tenant\" tenantShellOwner/></div>}\nfunction LazyShellSlot({children}:{children:React.ReactNode}){return <Suspense fallback={null}>{children}</Suspense>}\nfunction CanonicalRedirectHandler(){useCanonicalTenantRedirect();return null}\nfunction BigPapisApplicationFamilyStyle(){\n  const location=useLocation();\n  const{activeTenant}=useMultiTenant();\n\n  React.useEffect(()=>{\n    if(typeof document==='undefined')return;\n    const slug=String(activeTenant?.company_slug||'').trim().toLowerCase();\n    const path=location.pathname.toLowerCase();\n    const isBigPapis=slug==='big-papis'||path.startsWith('/big-papis/');\n    const modeClass=path.includes('/start-popup')||path.includes('/pop-up')||path.includes('/popup')?'kl-bp-popup':path.includes('/back-office')?'kl-bp-back-office':path.includes('/messages')||path.includes('/messaging')||path.includes('/communications')?'kl-bp-connect':path.includes('/event')?'kl-bp-event':'kl-bp-plan';\n    const classes=['kl-big-papis-app-family','kl-bp-plan','kl-bp-popup','kl-bp-event','kl-bp-back-office','kl-bp-connect'];\n    for(const className of classes)document.body.classList.remove(className);\n    if(isBigPapis)document.body.classList.add('kl-big-papis-app-family',modeClass);\n    return()=>{for(const className of classes)document.body.classList.remove(className)};\n  },[activeTenant?.company_slug,location.pathname]);\n\n  return null;\n}\nfunction MobileViewportRecovery(){const[zoomed,setZoomed]=React.useState(false);const lastTapRef=React.useRef<{time:number;x:number;y:number}|null>(null);const resetViewport=React.useCallback(()=>{if(typeof document==='undefined'||typeof window==='undefined')return;const active=document.activeElement as HTMLElement|null;if(active&&typeof active.blur==='function')active.blur();let viewport=document.querySelector('meta[name=\"viewport\"]') as HTMLMetaElement|null;const created=!viewport;if(!viewport){viewport=document.createElement('meta');viewport.name='viewport';document.head.appendChild(viewport)}const original=viewport.content;const fallback='width=device-width, initial-scale=1, viewport-fit=cover';viewport.content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover';window.setTimeout(()=>{if(!viewport)return;viewport.content=original||fallback;if(created&&!original)viewport.content=fallback;window.dispatchEvent(new Event('resize'))},180)},[]);React.useEffect(()=>{const visualViewport=window.visualViewport;if(!visualViewport)return;const sync=()=>setZoomed(visualViewport.scale>1.05);sync();visualViewport.addEventListener('resize',sync);visualViewport.addEventListener('scroll',sync);return()=>{visualViewport.removeEventListener('resize',sync);visualViewport.removeEventListener('scroll',sync)}},[]);React.useEffect(()=>{const onPointerUp=(event:PointerEvent)=>{if(!zoomed||event.pointerType==='mouse')return;const target=event.target as Element|null;if(target?.closest('input,textarea,select,button,a,[role=\"button\"],[contenteditable=\"true\"],[data-no-viewport-reset]')){lastTapRef.current=null;return}const now=Date.now();const previous=lastTapRef.current;lastTapRef.current={time:now,x:event.clientX,y:event.clientY};if(!previous||now-previous.time>320)return;const dx=event.clientX-previous.x;const dy=event.clientY-previous.y;if(Math.hypot(dx,dy)>28)return;event.preventDefault();lastTapRef.current=null;resetViewport()};document.addEventListener('pointerup',onPointerUp,{passive:false});return()=>document.removeEventListener('pointerup',onPointerUp)},[resetViewport,zoomed]);return <><style>{`@media (max-width: 767px){.kl-responsive-tenant-runtime input:not([type=\"checkbox\"]):not([type=\"radio\"]):not([type=\"range\"]),.kl-responsive-tenant-runtime select,.kl-responsive-tenant-runtime textarea,.kl-responsive-tenant-runtime [contenteditable=\"true\"]{font-size:max(16px,1em)!important}.kl-responsive-tenant-runtime input,.kl-responsive-tenant-runtime select,.kl-responsive-tenant-runtime textarea,.kl-responsive-tenant-runtime button{touch-action:manipulation}}`}</style>{zoomed?<button type=\"button\" data-no-viewport-reset=\"true\" aria-label=\"Reset page zoom to normal\" onClick={resetViewport} className=\"fixed right-3 top-[calc(var(--comm-banner-h,0px)+env(safe-area-inset-top)+0.75rem)] z-[9999] min-h-10 rounded-full border border-white/20 bg-black/80 px-3 text-xs font-black text-white shadow-lg backdrop-blur-xl\">Reset view</button>:null}</>}\nfunction readInstalledAppSafeInsets(){if(typeof document==='undefined')return{top:0,right:0,bottom:0,left:0};const probe=document.createElement('div');probe.style.cssText='position:fixed;visibility:hidden;pointer-events:none;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)';document.body.appendChild(probe);const style=window.getComputedStyle(probe);const value=(input:string)=>Number.parseFloat(input)||0;const insets={top:value(style.paddingTop),right:value(style.paddingRight),bottom:value(style.paddingBottom),left:value(style.paddingLeft)};probe.remove();return insets}\nfunction InstalledAppNavigationRecovery(){const navigate=useNavigate();const location=useLocation();const{activeTenant}=useMultiTenant();const footerRef=React.useRef<HTMLElement|null>(null);const publicRecipientRoute=location.pathname.toLowerCase().startsWith('/sign-agreement')||location.pathname.toLowerCase().startsWith('/agreement-verification');const[mobile,setMobile]=React.useState(()=>!publicRecipientRoute&&typeof window!=='undefined'&&window.matchMedia('(max-width: 767px)').matches);const[stackRevision,setStackRevision]=React.useState(0);React.useEffect(()=>{if(typeof window==='undefined')return;const media=window.matchMedia('(max-width: 767px)');const sync=()=>setMobile(!publicRecipientRoute&&media.matches);sync();media.addEventListener('change',sync);return()=>media.removeEventListener('change',sync)},[publicRecipientRoute]);React.useEffect(()=>{if(!mobile||typeof document==='undefined'||typeof window==='undefined')return;const footer=footerRef.current;if(!footer)return;const selectors=['[data-big-papis-mobile-nav=\"true\"]','[data-tenant-modes-mobile-nav=\"true\"]','[data-tenant-modes-mobile-landing-nav=\"true\"]','[data-mobile-bottom-nav=\"true\"]','[data-tenant-mobile-nav=\"true\"]'];const sync=()=>{const primary=selectors.map((selector)=>document.querySelector<HTMLElement>(selector)).find(Boolean);if(!primary)return;const style=window.getComputedStyle(primary);const active=primary.querySelector<HTMLElement>('[aria-current=\"page\"]');const activeStyle=active?window.getComputedStyle(active):null;footer.style.setProperty('--kl-utility-nav-bg',style.backgroundColor||'rgba(5,10,16,.94)');footer.style.setProperty('--kl-utility-nav-border',style.borderTopColor||'rgba(255,255,255,.12)');footer.style.setProperty('--kl-utility-nav-text',style.color||'rgba(255,255,255,.82)');footer.style.setProperty('--kl-utility-nav-accent',activeStyle?.color||style.color||'rgba(255,255,255,.92)');footer.style.setProperty('--kl-utility-nav-shadow',style.boxShadow||'0 -14px 44px rgba(0,0,0,.32)');footer.style.setProperty('--kl-utility-nav-backdrop',style.backdropFilter||'blur(24px)');document.documentElement.style.setProperty('--kl-platform-mobile-nav-h',`${Math.ceil(footer.getBoundingClientRect().height)}px`)};sync();const observer=new MutationObserver(sync);observer.observe(document.body,{childList:true,subtree:true,attributes:true,attributeFilter:['class','style','aria-current']});window.addEventListener('resize',sync,{passive:true});return()=>{observer.disconnect();window.removeEventListener('resize',sync)}},[mobile,activeTenant?.id]);React.useEffect(()=>{if(!mobile||typeof document==='undefined'||typeof window==='undefined')return;const footer=footerRef.current;if(!footer)return;const selectors=['[data-big-papis-mobile-nav=\"true\"]','[data-tenant-modes-mobile-nav=\"true\"]','[data-tenant-modes-mobile-landing-nav=\"true\"]','[data-mobile-bottom-nav=\"true\"]','[data-tenant-mobile-nav=\"true\"]'];const primary=selectors.map((selector)=>document.querySelector<HTMLElement>(selector)).find(Boolean)||Array.from(document.body.querySelectorAll<HTMLElement>('*')).filter((candidate)=>{if(candidate===footer||footer.contains(candidate))return false;const style=window.getComputedStyle(candidate);if(style.position!=='fixed'&&style.position!=='sticky')return false;const rect=candidate.getBoundingClientRect();const bottom=Number.parseFloat(style.bottom)||0;return rect.width>=window.innerWidth*.6&&rect.height>=44&&rect.height<=140&&bottom<=24&&rect.bottom>=window.innerHeight-32}).sort((a,b)=>b.getBoundingClientRect().width-a.getBoundingClientRect().width)[0];if(!primary){const utilityRoot=document.querySelector<HTMLElement>('.kl-responsive-tenant-runtime');const previousUtilityRootPadding=utilityRoot?.style.paddingBottom||'';const previousPlatformNavHeight=document.documentElement.style.getPropertyValue('--kl-platform-mobile-nav-h');const previousStackHeight=document.documentElement.style.getPropertyValue('--kl-mobile-bottom-stack-h');const syncUtilityOnly=()=>{const utilityHeight=Math.ceil(footer.getBoundingClientRect().height);footer.style.setProperty('bottom','0px','important');document.documentElement.style.setProperty('--kl-platform-mobile-nav-h',`${utilityHeight}px`);document.documentElement.style.setProperty('--kl-mobile-bottom-stack-h',`${utilityHeight}px`);if(utilityRoot)utilityRoot.style.setProperty('padding-bottom',`${utilityHeight}px`,'important')};syncUtilityOnly();let lateMounted=false;const lateMountObserver=new MutationObserver(()=>{if(lateMounted)return;const mounted=selectors.some((selector)=>Boolean(document.querySelector<HTMLElement>(selector)));if(!mounted)return;lateMounted=true;setStackRevision((revision)=>revision+1)});lateMountObserver.observe(document.body,{childList:true,subtree:true,attributes:true,attributeFilter:['class','style','aria-current']});window.addEventListener('resize',syncUtilityOnly,{passive:true});return()=>{lateMountObserver.disconnect();window.removeEventListener('resize',syncUtilityOnly);if(utilityRoot){if(previousUtilityRootPadding)utilityRoot.style.paddingBottom=previousUtilityRootPadding;else utilityRoot.style.removeProperty('padding-bottom')}if(previousPlatformNavHeight)document.documentElement.style.setProperty('--kl-platform-mobile-nav-h',previousPlatformNavHeight);else document.documentElement.style.removeProperty('--kl-platform-mobile-nav-h');if(previousStackHeight)document.documentElement.style.setProperty('--kl-mobile-bottom-stack-h',previousStackHeight);else document.documentElement.style.removeProperty('--kl-mobile-bottom-stack-h')}}const stackCandidates=Array.from(document.body.querySelectorAll<HTMLElement>('*')).filter((candidate)=>{if(candidate===footer||footer.contains(candidate))return false;const style=window.getComputedStyle(candidate);if(style.position!=='fixed'&&style.position!=='sticky')return false;const rect=candidate.getBoundingClientRect();const bottom=Number.parseFloat(style.bottom)||0;return rect.width>=window.innerWidth*.6&&rect.height>=36&&rect.height<=160&&bottom<=180&&rect.bottom>=window.innerHeight-220});if(!stackCandidates.includes(primary))stackCandidates.push(primary);const ordered=[primary,...Array.from(new Set(stackCandidates.filter((candidate)=>candidate!==primary))).sort((a,b)=>b.getBoundingClientRect().bottom-a.getBoundingClientRect().bottom)];const originalBottoms=new Map(ordered.map((element)=>[element,element.style.bottom]));const root=document.querySelector<HTMLElement>('.kl-responsive-tenant-runtime');const previousRootPadding=root?.style.paddingBottom||'';const previousPlatformNavHeight=document.documentElement.style.getPropertyValue('--kl-platform-mobile-nav-h');const previousStackHeight=document.documentElement.style.getPropertyValue('--kl-mobile-bottom-stack-h');const previousPrimaryNavHeight=document.documentElement.style.getPropertyValue('--kl-mobile-primary-nav-h');const syncStack=()=>{const utilityHeight=Math.ceil(footer.getBoundingClientRect().height);footer.style.setProperty('bottom','0px','important');document.documentElement.style.setProperty('--kl-platform-mobile-nav-h',`${utilityHeight}px`);document.documentElement.style.setProperty('--kl-mobile-primary-nav-h',`${Math.ceil(primary.getBoundingClientRect().height)}px`);let offset=utilityHeight;for(const element of ordered){element.style.setProperty('bottom',`${offset}px`,'important');offset+=Math.ceil(element.getBoundingClientRect().height)}document.documentElement.style.setProperty('--kl-mobile-bottom-stack-h',`${offset}px`);if(root)root.style.setProperty('padding-bottom',`${offset}px`,'important')};syncStack();const observer=new ResizeObserver(syncStack);observer.observe(footer);for(const element of ordered)observer.observe(element);window.addEventListener('resize',syncStack,{passive:true});return()=>{observer.disconnect();window.removeEventListener('resize',syncStack);for(const [element,previousBottom] of originalBottoms){if(previousBottom)element.style.bottom=previousBottom;else element.style.removeProperty('bottom')}if(root){if(previousRootPadding)root.style.paddingBottom=previousRootPadding;else root.style.removeProperty('padding-bottom')}if(previousPlatformNavHeight)document.documentElement.style.setProperty('--kl-platform-mobile-nav-h',previousPlatformNavHeight);else document.documentElement.style.removeProperty('--kl-platform-mobile-nav-h');if(previousStackHeight)document.documentElement.style.setProperty('--kl-mobile-bottom-stack-h',previousStackHeight);else document.documentElement.style.removeProperty('--kl-mobile-bottom-stack-h');if(previousPrimaryNavHeight)document.documentElement.style.setProperty('--kl-mobile-primary-nav-h',previousPrimaryNavHeight);else document.documentElement.style.removeProperty('--kl-mobile-primary-nav-h')}},[mobile,activeTenant?.id,location.pathname,location.search,stackRevision]);if(!mobile||!activeTenant?.id||typeof window==='undefined'||typeof document==='undefined'||window.location.hostname.toLowerCase()!=='app.knocklaunch.app')return null;const home=activeTenant?.id?getTenantDashboardPathForTenant(activeTenant):'/select-tenant';const goBack=()=>{if(window.history.length>1)navigate(-1);else navigate(home)};const goHome=()=>navigate(home);const reload=()=>window.location.reload();const openMessages=()=>window.dispatchEvent(new CustomEvent('knocklaunch:messages-open'));const iconStyle={color:'var(--kl-utility-nav-accent,var(--kl-utility-nav-text,rgba(255,255,255,.92)))'};return createPortal(<><style>{`@media (max-width:767px){.kl-responsive-tenant-runtime{--kl-mobile-primary-nav-h:64px;--kl-mobile-utility-footer-h:56px;box-sizing:border-box}}`}</style><nav ref={footerRef} data-platform-mobile-utility-footer=\"true\" aria-label=\"Mobile utility navigation\" className=\"fixed inset-x-0 bottom-0 z-[10050] grid h-[calc(var(--kl-mobile-utility-footer-h,56px)+env(safe-area-inset-bottom))] grid-cols-4 border-t pb-[env(safe-area-inset-bottom)] md:hidden\" style={{background:'var(--kl-utility-nav-bg,rgba(5,10,16,.94))',borderColor:'var(--kl-utility-nav-border,rgba(255,255,255,.12))',color:'var(--kl-utility-nav-text,rgba(255,255,255,.82))',boxShadow:'var(--kl-utility-nav-shadow,0 -14px 44px rgba(0,0,0,.32))',backdropFilter:'var(--kl-utility-nav-backdrop,blur(24px))'}}><button type=\"button\" data-installed-app-navigation-action=\"back\" onClick={goBack} className=\"flex min-h-14 flex-col items-center justify-center gap-0.5 text-[10px] font-black\"><ArrowLeft className=\"h-5 w-5\" style={iconStyle}/><span>Back</span></button><button type=\"button\" data-installed-app-navigation-action=\"home\" onClick={goHome} className=\"flex min-h-14 flex-col items-center justify-center gap-0.5 text-[10px] font-black\"><Home className=\"h-5 w-5\" style={iconStyle}/><span>Home</span></button><button type=\"button\" data-installed-app-navigation-action=\"reload\" onClick={reload} className=\"flex min-h-14 flex-col items-center justify-center gap-0.5 text-[10px] font-black\"><RefreshCw className=\"h-5 w-5\" style={iconStyle}/><span>Refresh</span></button><button type=\"button\" data-installed-app-navigation-action=\"messages\" onClick={openMessages} className=\"flex min-h-14 flex-col items-center justify-center gap-0.5 text-[10px] font-black\"><MessageCircle className=\"h-5 w-5\" style={iconStyle}/><span>Messages</span></button></nav></>,document.body)}\nfunction TenantRouteScrollRestoration(){const location=useLocation();React.useEffect(()=>{if(typeof window==='undefined'||typeof document==='undefined'||location.hash)return;const frame=window.requestAnimationFrame(()=>{const tenantOwner=document.querySelector<HTMLElement>('[data-experience-runtime-root=\"true\"][data-route-scroll-owner=\"tenant\"]');if(tenantOwner){tenantOwner.scrollTo({top:0,left:0,behavior:'auto'});return}window.scrollTo({top:0,left:0,behavior:'auto'})});return()=>window.cancelAnimationFrame(frame)},[location.pathname,location.hash]);return null}\nfunction GlobalTrackers(){useSessionTracker();useActivityLogger();useRealtimeStormEvents();React.useEffect(()=>{void import('@/lib/externalNativeCall').then(m=>m.installExternalNativeCallInterceptor())},[]);return null}\nfunction ConditionalRouteHealthBanner(){const location=useLocation();if(!location.pathname.startsWith('/crm'))return null;return <RouteHealthBanner/>}\nfunction GlobalImpersonationBanner(){return <UserImpersonationBanner/>}\nfunction RouteFallback(){return <PageLoadingSkeleton variant=\"minimal\"/>} \nfunction UsersRouteAlias(){const {activeTenant,effectiveRole,hasGodModeAnywhere,isLoading}=useMultiTenant();const platformAuthority=effectiveRole==='GodMode'||hasGodModeAnywhere();if(platformAuthority)return <Suspense fallback={<RouteFallback/>}><section className=\"mx-auto w-full max-w-[1600px] space-y-4 px-4 py-5 sm:px-6 sm:py-6\"><div><h1 className=\"text-2xl font-semibold tracking-tight\">Users</h1><p className=\"mt-1 text-sm text-muted-foreground\">Manage people, roles, and workspace access.</p></div><AdminUsersCommandCenter/></section></Suspense>;if(activeTenant?.id)return <Suspense fallback={<RouteFallback/>}><OwnerUsers/></Suspense>;if(isLoading)return <RouteFallback/>;return <Navigate to=\"/select-tenant?next=%2Fusers\" replace/>}\nfunction DemoWorkspaceEntry(){const {tenantId}=useParams();const navigate=useNavigate();const {activeTenant,memberships,isLoading,switchTenant}=useMultiTenant();const [error,setError]=React.useState('');const membership=memberships.find(m=>m.tenant_id===tenantId);React.useEffect(()=>{let cancelled=false;if(isLoading||!tenantId||!membership?.tenant)return;const tenant=membership.tenant;const readiness=((tenant as any)?.settings?.tenant_readiness||{}) as Record<string,any>;if(readiness.demo_ready!==true){const missing=Array.isArray(readiness.demo_missing)?readiness.demo_missing.map((value:unknown)=>String(value||'').trim()).filter(Boolean):[];setError(`Demo is still being prepared.${missing.length?` ${missing.join(' · ')}.`:''} Run Workspace Health after branding is complete.`);return}const target=getTenantDashboardPathForTenant(tenant);void(async()=>{try{if(activeTenant?.id!==tenant.id)await switchTenant(tenant.id);if(!cancelled)navigate(target,{replace:true})}catch(caught){if(!cancelled)setError(caught instanceof Error?caught.message:'Could not open the branded demo workspace.')}})();return()=>{cancelled=true}},[activeTenant?.id,isLoading,membership?.tenant,navigate,switchTenant,tenantId]);if(!tenantId)return <Navigate to=\"/select-tenant\" replace/>;if(error||(!isLoading&&!membership))return <section className=\"mx-auto mt-16 max-w-xl rounded-2xl border border-rose-300/20 bg-rose-400/10 p-6 text-white\"><h1 className=\"text-xl font-semibold\">Demo workspace unavailable</h1><p className=\"mt-2 text-sm text-white/70\">{error||'This branded demo tenant is not available to the current account.'}</p></section>;const targetTenant=membership?.tenant;return <UniversalLoadingScreen brandName={targetTenant?.company_dba_name||targetTenant?.company_legal_name||targetTenant?.name} logoUrl={targetTenant?.company_logo_url} backgroundUrl={resolveTenantBackgroundUrl(targetTenant)||undefined} tenantKey={targetTenant?.company_slug||targetTenant?.id} title=\"Opening branded demo\" subtitle=\"Loading the certified workspace.\" showCountdown={false}/>}\nfunction ShortcutsModalManager({children}:{children:React.ReactNode}){const [showShortcutsModal,setShowShortcutsModal]=React.useState(false);useShortcutHint();React.useEffect(()=>{setGlobalShortcutsState({showShortcutsModal,setShowShortcutsModal})},[showShortcutsModal]);return <><PlatformContextMenu/><LazyShellSlot><KeyboardShortcutsModal open={showShortcutsModal} onOpenChange={setShowShortcutsModal}/></LazyShellSlot>{children}</>}\nfunction AdminRoutesOnly(){return <Suspense fallback={<RouteFallback/>}><AdminRouteRegistry/></Suspense>}\nfunction roofingInternalCrmPath(pathname:string,activeTenant:any){const normalized=String(pathname||'').toLowerCase().replace(/\\/+$/g,'');const tenantSlug=canonicalTenantRouteSlugForIdentity(activeTenant).toLowerCase();const tenantType=String(activeTenant?.tenant_type||'ROOFING_COMPANY').trim().toUpperCase().replace(/[\\s-]+/g,'_');const rest=tenantSlug&&normalized.startsWith(`/${tenantSlug}`)?normalized.slice(tenantSlug.length+1).replace(/^\\//,''):'';if(!rest)return `/crm/${tenantType}/${tenantSlug}/dashboard`;const [head,...tail]=rest.split('/').filter(Boolean);const internalHead=({today:'dashboard',homeowners:'contacts',production:'jobs',schedule:'calendar',money:'billing',inbox:'communications',opportunities:'opportunity-radar',opportunity:'opportunity-radar',radar:'opportunity-radar','roof-measurement':'roof-tracer'} as Record<string,string>)[head]||head;return `/crm/${tenantType}/${tenantSlug}/${[internalHead,...tail].filter(Boolean).join('/')}`}\nfunction RedfishHomeownerDetailRouter(){return <Routes><Route path=\"/redfish-roofing/homeowners/:contactId\" element={<UnifiedProtectedRoute allowedRoles={ROLES.FIELD_STAFF} redirectTo=\"/crm/login\"><Suspense fallback={<RouteFallback/>}><RedfishContactWorkspace/></Suspense></UnifiedProtectedRoute>}/></Routes>}\nfunction RoofingOwnerWorkspaceRouter(){const location=useLocation();const {activeTenant}=useMultiTenant();const tenantSlug=activeTenant?.id?canonicalTenantRouteSlugForIdentity(activeTenant).toLowerCase():'';const normalized=location.pathname.toLowerCase().replace(/\\/+$/g,'');if(tenantSlug&&normalized===`/${tenantSlug}`)return <Navigate to={`/${tenantSlug}/today`} replace/>;if(tenantSlug&&normalized===`/${tenantSlug}/roof-measurement`)return <UnifiedProtectedRoute allowedRoles={['Rep','PA','Roofer','PM','Admin','Owner','Tenant Owner','GodMode']} redirectTo=\"/crm/login\"><Suspense fallback={<RouteFallback/>}><RoofTracingPage/></Suspense></UnifiedProtectedRoute>;const internalPath=roofingInternalCrmPath(location.pathname,activeTenant);return <Suspense fallback={<RouteFallback/>}><TenantCrmRoutes locationOverride={`${internalPath}${location.search||''}`}/></Suspense>} \nfunction TenantCrmRouteFallback(){const {activeTenant,isLoading}=useMultiTenant();if(!activeTenant?.id){if(isLoading)return <RouteFallback/>;return <Navigate to=\"/select-tenant\" replace/>}return <Suspense fallback={<RouteFallback/>}><TenantCrmRoutes/></Suspense>}\nfunction isTenantSettingsWorkspacePath(pathname:string,activeTenant:any){if(!activeTenant?.id)return false;const slug=canonicalTenantRouteSlugForIdentity(activeTenant).toLowerCase();const normalized=String(pathname||'').toLowerCase().replace(/\\/+$/g,'');const base=`/${slug}/settings`;return normalized===base||normalized.startsWith(`${base}/`)}\nfunction ModesTenantRouteFallback(){const location=useLocation();const {activeTenant,isLoading}=useMultiTenant();if(!activeTenant?.id){if(isLoading)return <RouteFallback/>;return <Navigate to=\"/select-tenant\" replace/>}const slug=canonicalTenantRouteSlugForIdentity(activeTenant).toLowerCase();const home=getTenantDashboardPathForTenant(activeTenant);const normalize=(value:string)=>String(value||'/').toLowerCase().replace(/\\/+$/g,'')||'/';const current=normalize(location.pathname);const homePath=normalize(home);const tenantRoot=`/${slug}`;const params=new URLSearchParams(location.search);const modeApp=String(params.get('modeApp')||'').trim();if(modeApp){const app=getTenantApplicationByReference(modeApp);if(app){const appPath=String(app.standalonePath||`/${app.slug}`).replace(/^\\/+|\\/+$/g,'');const target=`/${slug}/${appPath}`;if(current!==normalize(target))return <Navigate to={`${target}${location.search||''}${location.hash||''}`} replace/>;return <StandaloneApplicationWorkspace app={app} tenantSlugFromPath={slug}/>}}if(current===homePath||current===tenantRoot||current===`${tenantRoot}/dashboard`)return null;return <Navigate to={home} replace/>}\nfunction TenantRouteIdentityBoundary({children}:{children:React.ReactNode}){const location=useLocation();const {activeTenant,memberships,isLoading,switchTenant}=useMultiTenant();const requestedIdentity=React.useMemo(()=>resolveRequestedTenantRouteIdentity(location.pathname),[location.pathname]);const requestedSlug=requestedIdentity?.tenantSlug||'';const resolution=React.useMemo(()=>requestedSlug?resolveTenantRouteMembership(memberships,requestedSlug,requestedIdentity?.tenantType||undefined):null,[memberships,requestedIdentity?.tenantType,requestedSlug]);const requestedTenant=resolution?.membership?.tenant||null;const requestedTenantId=String(requestedTenant?.id||'');const activeMatchesRequested=!requestedSlug||tenantRouteIdentityMatchesRequestedSlug(activeTenant,requestedSlug);const projectedAccess=readGodModeAccessContext();const projectedIntentMatchesRequested=projectedTenantRouteIntentMatches({requestedSlug,projectedTenantSlug:projectedAccess?.tenantSlug,projectedRole:projectedAccess?.role,projectedMode:projectedAccess?.mode});const projectionGraceKey=projectedIntentMatchesRequested&&!activeMatchesRequested&&!requestedTenantId?`${requestedSlug}:${projectedAccess?.tenantId||''}`:'';const [expiredProjectionGraceKey,setExpiredProjectionGraceKey]=React.useState('');const projectionGraceElapsed=Boolean(projectionGraceKey&&expiredProjectionGraceKey===projectionGraceKey);const [switching,setSwitching]=React.useState(false);const [switchFailed,setSwitchFailed]=React.useState(false);React.useEffect(()=>{if(!projectionGraceKey){if(expiredProjectionGraceKey)setExpiredProjectionGraceKey('');return}if(expiredProjectionGraceKey===projectionGraceKey)return;const timeoutId=window.setTimeout(()=>setExpiredProjectionGraceKey(projectionGraceKey),PROJECTED_TENANT_ROUTE_GRACE_MS);return()=>window.clearTimeout(timeoutId)},[expiredProjectionGraceKey,projectionGraceKey]);React.useEffect(()=>{if(!requestedTenantId||requestedTenantId===activeTenant?.id){setSwitchFailed(false);setSwitching(false);return}let cancelled=false;setSwitchFailed(false);setSwitching(true);void switchTenant(requestedTenantId).then(()=>{if(!cancelled)setSwitching(false)}).catch(()=>{if(!cancelled){setSwitching(false);setSwitchFailed(true)}});return()=>{cancelled=true}},[activeTenant?.id,requestedTenantId,switchTenant]);if(switchFailed){const next=encodeURIComponent(`${location.pathname}${location.search||''}${location.hash||''}`);return <section data-tenant-route-boundary=\"switch-failed\" className=\"mx-auto mt-16 max-w-xl rounded-2xl border border-amber-300/20 bg-amber-300/10 p-6 text-white\"><h1 className=\"text-xl font-semibold\">Workspace connection needs another try</h1><p className=\"mt-2 text-sm text-white/70\">KNOCKLAUNCH kept this workspace route in place instead of sending you away. Retry the tenant connection or choose a workspace manually.</p><div className=\"mt-4 flex flex-wrap gap-3\"><button type=\"button\" onClick={()=>{setSwitchFailed(false);setSwitching(false)}} className=\"inline-flex rounded-xl border border-white/15 bg-white/[0.08] px-4 py-2 text-sm font-semibold text-white\">Retry workspace</button><Link to={`/select-tenant?manual=1&next=${next}`} className=\"inline-flex rounded-xl border border-white/10 bg-black/20 px-4 py-2 text-sm font-semibold text-white/80\">Choose workspace</Link></div></section>}if(requestedTenantId&&(switching||activeTenant?.id!==requestedTenantId))return <RouteFallback/>;if(shouldHoldTenantRouteHydration({requestedSlug,activeMatchesRequested,requestedTenantId,isLoading,projectedIntentMatchesRequested,projectionGraceElapsed}))return <RouteFallback/>;return <>{children}</>}\nfunction StandaloneApplicationWorkspace({app,tenantSlugFromPath='',suffixFromPath=''}:{app:ApplicationCapability;tenantSlugFromPath?:string;suffixFromPath?:string}){\n  const location=useLocation();\n  const {activeTenant,memberships,isLoading,switchTenant}=useMultiTenant();\n  const requestedTenantSlug=React.useMemo(()=>String(tenantSlugFromPath||new URLSearchParams(location.search).get('tenant')||'').trim().toLowerCase(),[tenantSlugFromPath,location.search]);\n  const standaloneHostApp=React.useMemo(()=>typeof window==='undefined'?undefined:getTenantApplicationByStandaloneHost(window.location.hostname),[]);\n  const applicationMode=tenantSlugFromPath?'tenant-integrated':'standalone';\n  const activeTenantSlug=React.useMemo(()=>activeTenant?.id?canonicalTenantRouteSlugForIdentity(activeTenant).toLowerCase():'',[activeTenant?.id,activeTenant?.company_slug,activeTenant?.tenant_type,activeTenant?.name]);\n  const requestedMembership=React.useMemo(()=>requestedTenantSlug?memberships.find(m=>m.tenant?.id&&canonicalTenantRouteSlugForIdentity(m.tenant).toLowerCase()===requestedTenantSlug)||null:null,[memberships,requestedTenantSlug]);\n  const [switchingTenant,setSwitchingTenant]=React.useState(false);\n  React.useEffect(()=>{if(!requestedTenantSlug||!requestedMembership?.tenant?.id||requestedMembership.tenant.id===activeTenant?.id)return;let cancelled=false;setSwitchingTenant(true);void switchTenant(requestedMembership.tenant.id).finally(()=>{if(!cancelled)setSwitchingTenant(false)});return()=>{cancelled=true}},[tenantSlugFromPath,requestedTenantSlug,requestedMembership?.tenant?.id,activeTenant?.id,switchTenant]);\n  if(isLoading||switchingTenant)return <RouteFallback/>;\n  if(!requestedTenantSlug){if(activeTenant?.id&&memberships.some(m=>m.tenant?.id===activeTenant.id)){const params=new URLSearchParams(location.search);params.set('tenant',canonicalTenantRouteSlugForIdentity(activeTenant));return <Navigate to={`${location.pathname}?${params.toString()}`} replace/>}const next=encodeURIComponent(`${location.pathname}${location.search||''}`);return <Navigate to={`/select-tenant?app=${encodeURIComponent(app.slug)}&next=${next}`} replace/>}\n  if(!requestedMembership?.tenant?.id)return <Navigate to={`/select-tenant?app=${encodeURIComponent(app.slug)}`} replace/>;\n  if(!activeTenant?.id||activeTenant.id!==requestedMembership.tenant.id||activeTenantSlug!==requestedTenantSlug)return <RouteFallback/>;\n  const base=app.standalonePath;const normalized=location.pathname.toLowerCase().replace(/\\/+$/g,'')||'/';const suffix=suffixFromPath||(tenantSlugFromPath?'':app.id==='mail'?normalized.replace(/^\\/(?:communications\\/)?(?:mail|email|emails|email-suite)(?:\\/|$)/,''):normalized.split('/').filter(Boolean).slice(base.split('/').filter(Boolean).length).join('/'));if(tenantSlugFromPath&&standaloneHostApp?.id===app.id){const params=new URLSearchParams(location.search);params.set('tenant',requestedTenantSlug);const hostStandalone=`${base}${suffix?`/${suffix}`:''}`;return <Navigate to={`${hostStandalone}?${params.toString()}`} replace/>}if(applicationMode==='tenant-integrated'&&isModesTenant(activeTenant)&&isEventRentalTenantContext(activeTenant)&&app.routeAdapter==='tenant-workspace')return <EventRentalModesApplicationSurface app={app}/>;if(applicationMode==='tenant-integrated'&&isModesTenant(activeTenant)&&DIRECT_MODES_APPLICATION_IDS.has(app.id))return <DirectModesApplicationSurface app={app}/>;if(app.routeAdapter==='mail')return <FirstClassAppTenantBoundary appSlug=\"mail\" applicationChrome={applicationMode!=='tenant-integrated'} applicationMode={applicationMode}><MailApplicationRoute/></FirstClassAppTenantBoundary>;if(app.routeAdapter==='call-center')return <FirstClassAppTenantBoundary appSlug={app.slug} platformDefault applicationChrome={applicationMode!=='tenant-integrated'} applicationMode={applicationMode}><CallCenterApplicationRoute/></FirstClassAppTenantBoundary>; if(app.routeAdapter==='proposal-editor')return <FirstClassAppTenantBoundary appSlug={app.slug} applicationChrome={applicationMode!=='tenant-integrated'} applicationMode={applicationMode}><ProposalEditorApplicationRoute/></FirstClassAppTenantBoundary>;if(app.routeAdapter==='creative-studio')return <FirstClassAppTenantBoundary appSlug={app.slug} applicationChrome={applicationMode!=='tenant-integrated'} applicationMode={applicationMode}><CreativeStudioApplicationRoute/></FirstClassAppTenantBoundary>;if(app.routeAdapter==='platform-workspace')return <Navigate to=\"/admin\" replace/>;const internal=buildTenantApplicationWorkspacePath(String(activeTenant.tenant_type||'MISC'),String(activeTenant.company_slug||''),app.slug,suffix);if(!internal)return <Navigate to={`/select-tenant?app=${encodeURIComponent(app.slug)}`} replace/>;return <FirstClassAppTenantBoundary appSlug={app.slug} applicationChrome={applicationMode!=='tenant-integrated'} applicationMode={applicationMode}><Suspense fallback={<RouteFallback/>}><TenantCrmRoutes locationOverride={`${internal}${location.search||''}`}/></Suspense></FirstClassAppTenantBoundary>\n}\n\nfunction TenantContractSafePrivateRouteFallback(){const location=useLocation();const {activeTenant,isLoading}=useMultiTenant();if(!activeTenant?.id){if(isLoading)return <RouteFallback/>;return <Navigate to=\"/select-tenant\" replace/>}const profile=resolveTenantWorkspaceRuntimeProfile(activeTenant,location.pathname);const settings=((activeTenant as any)?.settings||{}) as Record<string,any>;const workspaceVariant=String(settings.workspace_variant||'').trim().toLowerCase();const contractOwnsPrivateRouting=profile.isSelfContainedTenantWorkspace||profile.suppressGenericTenantChrome||profile.shellProfile!=='standard'||profile.navigationProfile!=='standard'||workspaceVariant==='curri_control_center';if(!contractOwnsPrivateRouting)return <Suspense fallback={<RouteFallback/>}><DefaultPrivateRouteRegistry/></Suspense>;const normalize=(value:string)=>String(value||'/').toLowerCase().replace(/\\/+$/g,'')||'/';const home=getTenantDashboardPathForTenant(activeTenant);const current=normalize(location.pathname);const homePath=normalize(home);const tenantSlug=canonicalTenantRouteSlugForIdentity(activeTenant).toLowerCase();const tenantRoot=tenantSlug?`/${tenantSlug}`:'';if(current===homePath||(tenantRoot&&(current===tenantRoot||current===`${tenantRoot}/dashboard`)))return null;return <Navigate to={home} replace/>}\nfunction PrivateRoutes(){const location=useLocation();const {activeTenant}=useMultiTenant();const applicationRoute=resolveTenantApplicationRoute(location.pathname);const tenantScopedApp=applicationRoute?.mode==='tenant-integrated'?applicationRoute:null;const {normalizedPath,isBigPapisPrivateWorkspace,isSavagePizzaPrivateWorkspace,isCafeQsrPrivateWorkspace,isScePrivateWorkspace,isRoofHelpFinderPrivateWorkspace,isRoofingPrivateWorkspace,isPcgPrivateWorkspace,isBookMeDirectlyPrivateWorkspace,isLegacyPcgCrmWorkspace,isRedfishHomeownerDetailWorkspace,isRedfishCanvassingWorkspace,isAutoUnlockPrivateWorkspace,isCallCenterPrivateWorkspace,nativeTenantRouteOwner}=resolvePrivateWorkspaceCompatibility(location.pathname,activeTenant);const isBareUsersAlias=normalizedPath==='/users'||normalizedPath==='/team';const standaloneApp=applicationRoute?.mode==='standalone'?applicationRoute.app:null;if(normalizedPath==='/knock-launch-os')return <Navigate to=\"/knock-launch-os/portfolio\" replace/>;if(normalizedPath==='/knock-launch-os/portfolio'||normalizedPath.startsWith('/knock-launch-os/portfolio/'))return <Suspense fallback={<RouteFallback/>}><KnockLaunchPortfolio/></Suspense>;if(normalizedPath.startsWith('/knock-launch-os'))return <Navigate to=\"/knock-launch-os/portfolio\" replace/>;if(normalizedPath==='/knock-launch-crm')return <Navigate to=\"/knock-launch-os/portfolio\" replace/>;if(normalizedPath.startsWith('/knock-launch-crm')){const suffix=location.pathname.slice('/knock-launch-crm'.length);return <Navigate to={`/knock-launch-os${suffix}${location.search||''}${location.hash||''}`} replace/>;}if(isBareUsersAlias)return <UsersRouteAlias/>;if(tenantScopedApp&&!nativeTenantRouteOwner)return <StandaloneApplicationWorkspace app={tenantScopedApp.app} tenantSlugFromPath={tenantScopedApp.tenantSlug} suffixFromPath={tenantScopedApp.suffix}/>;if(isLegacyPcgCrmWorkspace)return <Navigate to=\"/pcg/DASHBOARD\" replace/>;if(isBookMeDirectlyPrivateWorkspace)return <Suspense fallback={<RouteFallback/>}><BookMeDirectlyWorkspace/></Suspense>;if(isTenantSettingsWorkspacePath(location.pathname,activeTenant))return <Suspense fallback={<RouteFallback/>}><TenantSettingsPage/></Suspense>;if(isPcgPrivateWorkspace)return <Suspense fallback={<RouteFallback/>}><PCGCanonicalWorkspaceRoute/></Suspense>;if(isAutoUnlockPrivateWorkspace)return <Suspense fallback={<RouteFallback/>}><AutoUnlockWorkspaceRouter/></Suspense>;if(standaloneApp)return <StandaloneApplicationWorkspace app={standaloneApp}/>;if(normalizedPath.startsWith('/demo-workspace/'))return <Routes><Route path=\"/demo-workspace/:tenantId\" element={<DemoWorkspaceEntry/>}/></Routes>;if(normalizedPath==='/media-library')return <Suspense fallback={<RouteFallback/>}><MediaLibrary/></Suspense>;if(isAutoUnlockPrivateWorkspace)return <Suspense fallback={<RouteFallback/>}><AutoUnlockWorkspaceRouter/></Suspense>;if(isCallCenterPrivateWorkspace)return <Suspense fallback={<RouteFallback/>}><FirstClassAppTenantBoundary appSlug=\"call-center\" platformDefault applicationMode=\"tenant-integrated\"><CallCenterApplicationRoute/></FirstClassAppTenantBoundary></Suspense>;if(isRoofHelpFinderPrivateWorkspace)return <Suspense fallback={<RouteFallback/>}><RoofHelpFinderWorkspace/></Suspense>;if(isScePrivateWorkspace)return <Suspense fallback={<RouteFallback/>}><SceRouteRegistry/></Suspense>;if(isRedfishHomeownerDetailWorkspace)return <RedfishHomeownerDetailRouter/>;if(isRedfishCanvassingWorkspace)return <Suspense fallback={<RouteFallback/>}><RedfishCanvassingRoute/></Suspense>;if(normalizedPath==='/redfish-roofing/roof-measurement')return <RoofingOwnerWorkspaceRouter/>;if(isRoofingPrivateWorkspace)return <RoofingOwnerWorkspaceRouter/>;if(isBigPapisPrivateWorkspace||isSavagePizzaPrivateWorkspace||isCafeQsrPrivateWorkspace)return <Suspense fallback={<RouteFallback/>}><OwnerRouteRegistry/></Suspense>;if(isModesTenant(activeTenant))return <ModesTenantRouteFallback/>;return <TenantContractSafePrivateRouteFallback/>}\n\nfunction OwnerOsTenantBoundary({children}:{children:React.ReactNode}){const{activeTenant,memberships,isLoading,switchTenant}=useMultiTenant();const ownerMembership=React.useMemo(()=>memberships.find(m=>m.tenant?.id&&isKnockLaunchOsWorkspace(m.tenant))||null,[memberships]);const ownerTenantId=String(ownerMembership?.tenant?.id||'');const[isSwitching,setIsSwitching]=React.useState(false);const[switchFailed,setSwitchFailed]=React.useState(false);React.useEffect(()=>{if(isLoading||!ownerTenantId||activeTenant?.id===ownerTenantId){setIsSwitching(false);setSwitchFailed(false);return}let cancelled=false;setIsSwitching(true);setSwitchFailed(false);void switchTenant(ownerTenantId).then(()=>{if(!cancelled)setIsSwitching(false)}).catch(()=>{if(!cancelled){setIsSwitching(false);setSwitchFailed(true)}});return()=>{cancelled=true}},[activeTenant?.id,isLoading,ownerTenantId,switchTenant]);if(isLoading||isSwitching||(ownerTenantId&&activeTenant?.id!==ownerTenantId&&!switchFailed))return <UniversalLoadingScreen brandName=\"KNOCKLAUNCH OS\" title=\"Opening owner workspace\" subtitle=\"Binding the canonical KNOCKLAUNCH OS workspace context.\" showCountdown={false}/>;if(!ownerTenantId||switchFailed)return <section data-owner-os-tenant-boundary=\"blocked\" className=\"mx-auto mt-16 max-w-xl rounded-2xl border border-amber-300/20 bg-amber-300/10 p-6 text-white\"><h1 className=\"text-xl font-semibold\">KNOCKLAUNCH OS workspace unavailable</h1><p className=\"mt-2 text-sm text-white/70\">The owner workspace could not be resolved safely. Customer tenant context was not reused.</p><Link to=\"/select-tenant?manual=1\" className=\"mt-4 inline-flex rounded-xl border border-white/15 bg-white/[0.06] px-4 py-2 text-sm font-semibold text-white\">Choose workspace</Link></section>;return <div data-owner-os-tenant-boundary=\"bound\" data-owner-os-tenant-id={ownerTenantId}>{children}</div>}\nfunction AdminShell(){return <><MultiTenantProvider><FocusModeProvider><UserImpersonationProvider><ShortcutsModalManager><LazyShellSlot><GlobalCommandPalette/></LazyShellSlot><GlobalImpersonationBanner/><AuditorModeBanner/><div className=\"kl-platform-surface relative z-10 flex h-[calc(100dvh-var(--comm-banner-h,0px))] min-h-0 flex-col overflow-hidden\"><BaseErrorBoundary scope=\"AdminShell.Routes\" variant=\"panel\" title=\"Admin console route failed\" description=\"The platform shell loaded, but this route needs repair.\"><AdminRoutesOnly/></BaseErrorBoundary></div></ShortcutsModalManager></UserImpersonationProvider></FocusModeProvider></MultiTenantProvider></>}\nfunction PortfolioShell(){return <div className=\"min-h-screen bg-[#040806]\"><MultiTenantProvider><OwnerOsTenantBoundary><FocusModeProvider><UserImpersonationProvider><ShortcutsModalManager><LazyShellSlot><GlobalCommandPalette/></LazyShellSlot><GlobalImpersonationBanner/><AuditorModeBanner/><div className=\"kl-platform-surface relative z-10 min-h-screen w-full overflow-x-hidden overflow-y-auto\"><BaseErrorBoundary scope=\"PortfolioShell\" variant=\"panel\" title=\"Portfolio needs repair\" description=\"The KNOCKLAUNCH OS portfolio shell loaded, but the owner portfolio route needs repair.\"><Suspense fallback={<RouteFallback/>}><KnockLaunchPortfolio/></Suspense></BaseErrorBoundary></div></ShortcutsModalManager></UserImpersonationProvider></FocusModeProvider></OwnerOsTenantBoundary></MultiTenantProvider></div>}\nfunction PortfolioOpsShell(){return <div className=\"min-h-screen bg-[#040806]\"><MultiTenantProvider><OwnerOsTenantBoundary><FocusModeProvider><UserImpersonationProvider><ShortcutsModalManager><LazyShellSlot><GlobalCommandPalette/></LazyShellSlot><GlobalImpersonationBanner/><AuditorModeBanner/><div className=\"kl-platform-surface relative z-10 min-h-screen w-full overflow-x-hidden overflow-y-auto\"><BaseErrorBoundary scope=\"PortfolioOpsShell\" variant=\"panel\" title=\"Owner OS route needs repair\" description=\"The KNOCKLAUNCH OS shell loaded, but this owner route needs repair.\"><Suspense fallback={<RouteFallback/>}><KnockLaunchOSDashboard/></Suspense></BaseErrorBoundary></div></ShortcutsModalManager></UserImpersonationProvider></FocusModeProvider></OwnerOsTenantBoundary></MultiTenantProvider></div>}\n\nfunction PortfolioSettingsShell(){return <div className=\"min-h-screen bg-[#040806]\"><MultiTenantProvider><OwnerOsTenantBoundary><FocusModeProvider><UserImpersonationProvider><ShortcutsModalManager><LazyShellSlot><GlobalCommandPalette/></LazyShellSlot><GlobalImpersonationBanner/><AuditorModeBanner/><div className=\"kl-platform-surface relative z-10 min-h-screen w-full overflow-x-hidden overflow-y-auto\"><BaseErrorBoundary scope=\"PortfolioSettingsShell\" variant=\"panel\" title=\"Owner settings need repair\" description=\"The KNOCKLAUNCH OS owner shell loaded, but settings need repair.\"><Suspense fallback={<RouteFallback/>}><KnockLaunchOSSettings/></Suspense></BaseErrorBoundary></div></ShortcutsModalManager></UserImpersonationProvider></FocusModeProvider></OwnerOsTenantBoundary></MultiTenantProvider></div>}\nfunction TenantWorkspaceRuntime(){const location=useLocation();const {activeTenant,isLoading}=useMultiTenant();const applicationRoute=resolveTenantApplicationRoute(location.pathname);const tenantIntegratedApp=applicationRoute?.mode==='tenant-integrated'&&!resolvePrivateWorkspaceCompatibility(location.pathname,activeTenant).nativeTenantRouteOwner?applicationRoute:null;const {normalizedPath,isMsLawnBarberWorkspace,msLawnBarberBackgroundUrl,isSelfContainedSeasideLaunch,isSelfContainedBigPapisWorkspace,isSelfContainedSavagePizzaWorkspace,isSelfContainedAutoUnlockWorkspace,isSelfContainedRedfishWorkspace,isSelfContainedPcgWorkspace,isSelfContainedBookMeDirectlyWorkspace,isSelfContainedTenantWorkspace,suppressGenericTenantChrome,shellProfile,navigationProfile,viewportOwner,tenantOwnsViewport,operatingContractSource,compatibilitySource,backgroundOwnership}=resolveTenantWorkspaceRuntimeProfile(activeTenant,location.pathname);const activeTenantSettings=((activeTenant as any)?.settings||{}) as Record<string,any>;const useCurriControlCenterShell=String(activeTenant?.company_slug||'').trim().toLowerCase()==='curri-control-center'||String(activeTenantSettings.workspace_variant||'').trim().toLowerCase()==='curri_control_center';const normalizedActiveTenantSlug=String(activeTenant?.company_slug||'').trim().toLowerCase();const normalizedActiveTenantName=String((activeTenant as any)?.company_dba_name||(activeTenant as any)?.company_legal_name||(activeTenant as any)?.name||'').trim().toLowerCase();const useTennexWorkspaceShell=normalizedActiveTenantSlug==='tennex'||normalizedActiveTenantSlug==='tennex-tax-solutions'||normalizedActiveTenantName==='tennex tax solutions';const useTenantModesShell=(useTennexWorkspaceShell||isModesTenant(activeTenant))&&applicationRoute?.mode!=='standalone'&&!isSelfContainedBigPapisWorkspace&&!isSelfContainedPcgWorkspace&&!useCurriControlCenterShell;const suppressTenantPresentationChrome=suppressGenericTenantChrome||useTenantModesShell;if(!activeTenant?.id&&!isSelfContainedBigPapisWorkspace){if(isLoading)return <UniversalLoadingScreen/>;const next=encodeURIComponent(`${location.pathname}${location.search||''}`);return <Navigate to={`/select-tenant?next=${next}`} replace/>}const tenantPresentationClass=isSelfContainedTenantWorkspace?(isSelfContainedBigPapisWorkspace?'z-[70] bg-transparent':isSelfContainedSavagePizzaWorkspace?'z-10 bg-[#100d0b]':isSelfContainedAutoUnlockWorkspace?'z-20 bg-[#02050a]':isSelfContainedBookMeDirectlyWorkspace?'z-20 bg-[#030409]':isSelfContainedRedfishWorkspace||isSelfContainedPcgWorkspace?'z-20 bg-transparent':isMsLawnBarberWorkspace?'z-10 bg-transparent':'z-10 bg-transparent'):'z-10 bg-transparent';const viewportClass=tenantOwnsViewport?`fixed inset-0 h-dvh min-h-0 min-w-0 w-full max-w-full overflow-x-hidden overflow-y-auto overscroll-y-none ${isSelfContainedTenantWorkspace?'':'flex flex-col'}`:'relative min-h-[calc(100dvh-var(--comm-banner-h,0px))] min-w-0 w-full max-w-full flex flex-col overflow-x-hidden overflow-y-auto';return <TenantApplicationChromeContext.Provider value=\"tenant-integrated\"><>{backgroundOwnership.renderPlatformBackground&&!useTenantModesShell?<SiteBackground/>:null}{useTenantModesShell?null:<GodModePageOverrideRuntime/>}<TenantBrandTheme/><TenantLayoutPreferenceBridge/><RealtimeProvider><FocusModeProvider><UserImpersonationProvider><ShortcutsModalManager>{suppressTenantPresentationChrome?null:<LazyShellSlot><TrialBanner/></LazyShellSlot>}<ConditionalRouteHealthBanner/><CanonicalRedirectHandler/><GlobalTrackers/><TenantRouteScrollRestoration/><BigPapisApplicationFamilyStyle/><MobileViewportRecovery/>{suppressTenantPresentationChrome?null:<GlobalImpersonationBanner/>}{suppressTenantPresentationChrome?null:<AuditorModeBanner/>}{suppressTenantPresentationChrome?null:<LazyShellSlot><BackgroundOCRStatus/></LazyShellSlot>}{suppressTenantPresentationChrome?null:<LazyShellSlot><TrialAhaModal/></LazyShellSlot>}{isSelfContainedRedfishWorkspace||isSelfContainedPcgWorkspace||useCurriControlCenterShell||useTenantModesShell?null:<LazyShellSlot><GlobalFallbackAccountMenu verifyShellOwnership={isSelfContainedTenantWorkspace}/></LazyShellSlot>}{suppressTenantPresentationChrome?null:<TenantPublishedExperienceRuntime/>}{suppressTenantPresentationChrome?null:<LazyShellSlot><ExperienceEditorCanvasBridge/></LazyShellSlot>}{suppressTenantPresentationChrome||isSelfContainedTenantWorkspace?null:<TenantQuickTour/>}<TelInterceptorBridge/><div data-experience-runtime-root=\"true\" data-experience-region-id=\"experience-route-canvas\" data-tenant-shell-profile={shellProfile} data-tenant-navigation-profile={navigationProfile} data-tenant-operating-contract-source={operatingContractSource} data-tenant-runtime-compatibility-source={compatibilitySource} data-tenant-background-owner={backgroundOwnership.owner} data-tenant-background-contract-valid={backgroundOwnership.contractValid?'true':'false'} data-tenant-viewport-owner={viewportOwner} data-tenant-mobile-shell-contract=\"canonical-v2\" data-seaside-viewport-host={isSelfContainedSeasideLaunch?'true':undefined} data-big-papis-viewport-host={isSelfContainedBigPapisWorkspace?'true':undefined} data-savage-pizza-viewport-host={isSelfContainedSavagePizzaWorkspace?'true':undefined} data-auto-unlock-viewport-host={isSelfContainedAutoUnlockWorkspace?'true':undefined} data-pcg-viewport-host={isSelfContainedPcgWorkspace?'true':undefined} data-book-me-directly-viewport-host={isSelfContainedBookMeDirectlyWorkspace?'true':undefined} data-mslawnbarber-viewport-host={isMsLawnBarberWorkspace?'true':undefined} data-route-scroll-owner={tenantOwnsViewport?'tenant':'document'} className={`kl-platform-surface kl-responsive-tenant-runtime ${viewportClass} ${tenantPresentationClass}`}  style={{paddingTop:isSelfContainedTenantWorkspace?0:'var(--comm-banner-h, 0px)',...(isMsLawnBarberWorkspace&&msLawnBarberBackgroundUrl?{backgroundImage:`linear-gradient(180deg,rgba(1,8,5,.30),rgba(1,8,5,.58)),url(\"${msLawnBarberBackgroundUrl}\")`,backgroundSize:'cover',backgroundPosition:'center',backgroundRepeat:'no-repeat',['--ms-lawn-barber-background' as string]:`url(\"${msLawnBarberBackgroundUrl}\")`}:{})} as React.CSSProperties}><BaseErrorBoundary scope=\"TenantWorkspaceRuntime.RouteCanvas\" variant=\"panel\" title=\"Workspace route needs repair\" description=\"The tenant shell is still available while this route recovers.\">{useCurriControlCenterShell?<CurriControlCenterShell>{tenantIntegratedApp?<FirstClassAppTenantBoundary appSlug={tenantIntegratedApp.app.slug} applicationChrome={false} applicationMode=\"tenant-integrated\"><PrivateRoutes/></FirstClassAppTenantBoundary>:<PrivateRoutes/>}</CurriControlCenterShell>:useTenantModesShell?<TenantModesShell>{tenantIntegratedApp?<FirstClassAppTenantBoundary appSlug={tenantIntegratedApp.app.slug} applicationChrome={false} applicationMode=\"tenant-integrated\"><PrivateRoutes/></FirstClassAppTenantBoundary>:<PrivateRoutes/>}</TenantModesShell>:isSelfContainedRedfishWorkspace?<RedfishWorkspaceShell>{tenantIntegratedApp?<FirstClassAppTenantBoundary appSlug={tenantIntegratedApp.app.slug} applicationChrome={false} applicationMode=\"tenant-integrated\"><PrivateRoutes/></FirstClassAppTenantBoundary>:<PrivateRoutes/>}</RedfishWorkspaceShell>:tenantIntegratedApp?<FirstClassAppTenantBoundary appSlug={tenantIntegratedApp.app.slug} applicationChrome={false} applicationMode=\"tenant-integrated\"><PrivateRoutes/></FirstClassAppTenantBoundary>:<PrivateRoutes/>}</BaseErrorBoundary></div></ShortcutsModalManager></UserImpersonationProvider></FocusModeProvider></RealtimeProvider></></TenantApplicationChromeContext.Provider>}\nfunction TenantBackgroundCacheBridge(){const {activeTenant}=useMultiTenant();React.useEffect(()=>{if(activeTenant?.id)persistCachedTenantBackground(activeTenant)},[activeTenant]);return null}\nfunction TenantWorkspaceShell(){return <MultiTenantProvider><TenantBackgroundCacheBridge/><WorkspaceSidebarProvider><TenantRouteIdentityBoundary><TenantWorkspaceRuntime/><CanonicalWorkspaceSidebarRoot/></TenantRouteIdentityBoundary></WorkspaceSidebarProvider></MultiTenantProvider>}\nfunction GlobalAccountRouteAlias({section}:{section:'settings'|'profile'}){const {activeTenant,effectiveRole,hasGodModeAnywhere,isLoading}=useMultiTenant();if(isLoading)return <RouteFallback/>;const platformAuthority=effectiveRole==='GodMode'||hasGodModeAnywhere();if(platformAuthority)return <Navigate to={section==='profile'?'/admin/account?section=profile':'/admin/account?section=settings'} replace/>;if(activeTenant?.id){const slug=canonicalTenantRouteSlugForIdentity(activeTenant).toLowerCase();const target=`/${slug}/settings`;return <Navigate to={`${target}${section==='profile'?'?section=profile':''}`} replace/>}return <Navigate to={`/select-tenant?workspace=settings${section==='profile'?'&section=profile':''}`} replace/>}\nexport default function PrivateAppShell(){const location=useLocation();const normalizedPath=location.pathname.toLowerCase().replace(/\\/+$/g,'')||'/';if(normalizedPath==='/settings'||normalizedPath==='/profile')return <MultiTenantProvider><GlobalAccountRouteAlias section={normalizedPath==='/profile'?'profile':'settings'}/></MultiTenantProvider>;if(normalizedPath==='/bookmedirectly-com'||normalizedPath.startsWith('/bookmedirectly-com/')){const suffix=location.pathname.slice('/bookmedirectly-com'.length);return <Navigate to={`/bookmedirectly${suffix}${location.search||''}${location.hash||''}`} replace/>}if(normalizedPath==='/knock-launch-os')return <PortfolioOpsShell/>;if(normalizedPath==='/knock-launch-crm')return <Navigate to=\"/knock-launch-os\" replace/>;if(normalizedPath==='/knock-launch-os/profile'||normalizedPath==='/knock-launch-crm/profile')return <Navigate to={`/knock-launch-os/settings?section=profile${location.hash||''}`} replace/>;if(normalizedPath==='/knock-launch-crm/settings'||normalizedPath.startsWith('/knock-launch-crm/settings/')){const suffix=location.pathname.slice('/knock-launch-crm'.length);return <Navigate to={`/knock-launch-os${suffix}${location.search||''}${location.hash||''}`} replace/>}if(normalizedPath==='/knock-launch-os/settings'||normalizedPath.startsWith('/knock-launch-os/settings/'))return <PortfolioSettingsShell/>;if(normalizedPath==='/knock-launch-crm/portfolio'||normalizedPath.startsWith('/knock-launch-crm/portfolio/')){const suffix=location.pathname.slice('/knock-launch-crm'.length);return <Navigate to={`/knock-launch-os${suffix}${location.search||''}${location.hash||''}`} replace/>}if(normalizedPath==='/knock-launch-os/portfolio'||normalizedPath.startsWith('/knock-launch-os/portfolio/'))return <PortfolioShell/>;if(normalizedPath.startsWith('/knock-launch-os/'))return <PortfolioOpsShell/>;if(normalizedPath.startsWith('/knock-launch-crm/')){const suffix=location.pathname.slice('/knock-launch-crm'.length);return <Navigate to={`/knock-launch-os${suffix}${location.search||''}${location.hash||''}`} replace/>}if(normalizedPath==='/godmode/console')return <Navigate to=\"/admin/console\" replace/>;if(location.pathname.startsWith('/admin'))return <AdminShell/>;return <TenantWorkspaceShell/>}\n"},{"path":"src/PublicAppShell.tsx","content":"import React, { Suspense } from 'react';\nimport { Route, Routes, useLocation } from 'react-router-dom';\nimport SiteBackground from './components/SiteBackground';\nimport { UniversalLoadingScreen } from '@/components/ui/universal-loading-screen';\nimport { lazyWithRetry } from '@/lib/lazyWithRetry';\nimport { publicRoutes } from './routes/publicRoutes';\nimport { authRoutes } from './routes/authRoutes';\nimport { isSelfContainedBookingRoute } from './routes/publicRouteClassifier';\nimport { supabase } from '@/integrations/supabase/client';\n\nconst ROOF_HELP_FINDER_HOSTS = new Set(['roofhelpfinder.com', 'www.roofhelpfinder.com']);\nconst AUTO_UNLOCK_PUBLIC_HOSTS = new Set(['321autounlock.com', 'www.321autounlock.com']);\nconst AUTO_UNLOCK_PUBLIC_PATHS = new Set(['/', '/how-it-works', '/services', '/service-areas', '/about', '/contact', '/palm-bay/vehicle-lockout', '/melbourne/vehicle-lockout', '/titusville/vehicle-lockout', '/vehicle-lockout-help']);\nconst AUTO_UNLOCK_GATE_ENABLED = false;\nconst WHATS_MY_PROGRESS_HOSTS = new Set(['whatsmyprogress.com', 'www.whatsmyprogress.com']);\nconst BOOK_ME_DIRECTLY_HOSTS = new Set(['bookmedirectly.com', 'www.bookmedirectly.com']);\nconst BYCHEFAP_PUBLIC_HOSTS = new Set(['bychefap.com', 'www.bychefap.com']);\nconst SPEEDY_PANDA_PUBLIC_PATHS = new Set(['/speedy-panda-party-rentals', '/speedy-panda-party-rentals/booking']);\n\nconst NotFound = lazyWithRetry(() => import('./pages/NotFound'));\nconst AutoUnlockPublic = lazyWithRetry(() => import('@/pages/auto-lockout/AutoUnlockPublic'));\nconst AutoUnlockComingSoon = lazyWithRetry(() => import('@/pages/auto-lockout/AutoUnlockComingSoon'));\nconst WhatsMyProgressComingSoon = lazyWithRetry(() => import('@/pages/whats-my-progress/WhatsMyProgressComingSoon'));\nconst WhatsMyProgressTenantHome = lazyWithRetry(() => import('@/pages/whats-my-progress/WhatsMyProgressTenantHome'));\nconst BookMeDirectlyPublicPage = lazyWithRetry(() => import('@/pages/book-me-directly/BookMeDirectlyPublicPage'));\nconst PCGPublicSite = lazyWithRetry(() => import('@/pages/card-grading/PCGPublicSite'));\nconst ByChefApPublicSite = lazyWithRetry(() => import('@/pages/bychefap/ByChefApPublicSite'));\n\nconst speedyPandaGear = [\n  {\n    count: '40',\n    title: 'White Folding Chairs',\n    eyebrow: 'Seating',\n    summary: 'Clean, sturdy folding seating for parties, ceremonies, meetings, and indoor or outdoor events.',\n    facts: ['350 lb manufacturer-rated capacity', '17.72 × 20.47 × 30.71 in', 'Rubber feet help protect flooring', 'Fast folding, no assembly required'],\n  },\n  {\n    count: '6',\n    title: 'Fold-in-Half Event Tables',\n    eyebrow: 'Tables',\n    summary: 'Heavy-duty event tables that travel easily, set up quickly, and clean up without fuss.',\n    facts: ['300 lb manufacturer-rated capacity', 'High-density plastic tabletop', 'Built-in carry handles', 'Tool-free indoor/outdoor setup'],\n  },\n  {\n    count: '1',\n    title: '20 × 40 Commercial Event Tent',\n    eyebrow: 'Main Tent',\n    summary: 'A spacious clear-span tent with a 12-foot peak and no center poles, so the full footprint stays usable.',\n    facts: ['20 × 40 ft full configuration', '12 ft peak with no center poles', 'Heavy-duty galvanized steel frame', '350 GSM PVC canopy'],\n  },\n] as const;\n\nfunction SpeedyPandaPublicSite() {\n  const [logoUrl, setLogoUrl] = React.useState('');\n  const [backgroundUrl, setBackgroundUrl] = React.useState('');\n  const [form, setForm] = React.useState({ fullName:'', phone:'', email:'', eventType:'', eventDate:'', startTime:'', endTime:'', guestCount:'', location:'', details:'' });\n  const [submitting, setSubmitting] = React.useState(false);\n  const [submitError, setSubmitError] = React.useState('');\n  const [submittedId, setSubmittedId] = React.useState('');\n\n  React.useEffect(() => {\n    const previous = document.title;\n    document.title = 'Speedy Panda Party Rentals';\n    return () => { document.title = previous; };\n  }, []);\n\n  React.useEffect(() => {\n    let cancelled = false;\n    void supabase.functions.invoke('customer-portal', {\n      body: { action: 'resolve_tenant_public_presence', tenant_slug: 'speedy-panda-party-rentals' },\n    }).then(({ data }) => {\n      if (cancelled) return;\n      const nextLogoUrl = String(data?.tenant?.logo_url || '').trim();\n      const nextBackgroundUrl = String(data?.tenant?.background_url || '').trim();\n      if (nextLogoUrl) setLogoUrl(nextLogoUrl);\n      if (nextBackgroundUrl) setBackgroundUrl(nextBackgroundUrl);\n    }).catch(() => undefined);\n    return () => { cancelled = true; };\n  }, []);\n\n  const update = (key: keyof typeof form) => (event: React.ChangeEvent<HTMLInputElement|HTMLTextAreaElement|HTMLSelectElement>) => setForm(current => ({ ...current, [key]: event.target.value }));\n  const submitBooking = async (event: React.FormEvent) => {\n    event.preventDefault(); setSubmitError(''); setSubmittedId(''); setSubmitting(true);\n    try {\n      const guestCount = form.guestCount.trim() ? Number(form.guestCount) : null;\n      const { data, error } = await (supabase as any).rpc('submit_public_event_rental_booking_request', {\n        p_tenant_slug:'speedy-panda-party-rentals', p_full_name:form.fullName, p_phone:form.phone, p_email:form.email,\n        p_event_type:form.eventType, p_event_date:form.eventDate || null, p_start_time:form.startTime || null,\n        p_end_time:form.endTime || null, p_guest_count:Number.isFinite(guestCount as number)?guestCount:null,\n        p_location:form.location, p_additional_details:form.details || null,\n      });\n      if (error) throw error;\n      setSubmittedId(String(data || 'received'));\n      setForm({ fullName:'', phone:'', email:'', eventType:'', eventDate:'', startTime:'', endTime:'', guestCount:'', location:'', details:'' });\n    } catch (caught:any) { setSubmitError(caught?.message || 'We could not send your request. Please try again.'); }\n    finally { setSubmitting(false); }\n  };\n\n  return (\n    <main className=\"speedy-panda-public\" style={backgroundUrl ? { ['--speedy-bg' as string]: `url(\"${backgroundUrl}\")` } as React.CSSProperties : undefined}>\n      <style>{`\n        :root { color-scheme: dark; }\n        body { margin: 0; background: #07110f; }\n        .speedy-panda-public { min-height: 100vh; color: #fff; background:\n          linear-gradient(180deg,rgba(18,3,18,.15),rgba(10,2,16,.46) 58%,#09040d 100%),\n          radial-gradient(circle at 16% 18%,rgba(255,22,126,.28),transparent 32rem),\n          radial-gradient(circle at 78% 12%,rgba(255,173,35,.23),transparent 32rem),\n          var(--speedy-bg,linear-gradient(135deg,#38102d 0%,#f05a66 38%,#ffb33a 58%,#151021 100%));\n          background-size:cover;background-position:center top;background-attachment:fixed;\n          font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif; }\n        .speedy-wrap { width:min(1320px,calc(100% - 32px));margin:0 auto; }\n        .speedy-booking-stage{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(560px,1.22fr);gap:28px;align-items:start;padding:38px 0 42px}\n        .speedy-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:118px}.speedy-side-logo{width:min(100%,430px);filter:drop-shadow(0 22px 34px rgba(0,0,0,.44));align-self:center;animation:speedyFloat 5s ease-in-out infinite}.speedy-tagline{font-family:cursive;font-size:clamp(34px,3.2vw,58px);font-weight:900;text-align:center;text-shadow:0 4px 18px rgba(0,0,0,.55)}.speedy-intro{max-width:520px;margin:-2px auto 4px;text-align:center;color:rgba(255,255,255,.82);font-size:15px;line-height:1.7}.speedy-mini-kicker{align-self:center;padding:8px 12px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(14,7,16,.42);backdrop-filter:blur(16px);font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#ffd4e4}@keyframes speedyFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}\n        .speedy-category-rail{display:grid;gap:8px}.speedy-category{display:flex;align-items:center;gap:14px;min-height:64px;padding:0 18px;border:1px solid rgba(255,75,155,.35);border-radius:14px;background:rgba(15,10,19,.78);box-shadow:0 8px 30px rgba(0,0,0,.22);font-weight:900}.speedy-category:first-child{background:linear-gradient(135deg,rgba(255,30,122,.34),rgba(16,10,18,.86));box-shadow:0 0 28px rgba(255,30,122,.20)}.speedy-category b{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#ff167c;color:white;font-size:17px}.speedy-category span{letter-spacing:.01em}\n        .speedy-form-card{border-radius:34px;background:linear-gradient(180deg,rgba(255,255,255,.985),rgba(255,247,251,.965));color:#17131a;padding:clamp(24px,3vw,42px);box-shadow:0 40px 110px rgba(0,0,0,.42),0 0 0 1px rgba(255,255,255,.44);border:1px solid rgba(255,255,255,.8);backdrop-filter:blur(22px)}.speedy-form-head{display:flex;gap:16px;align-items:center}.speedy-form-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,#ff167c,#ff6b56);color:#fff;font-size:28px;box-shadow:0 14px 34px rgba(255,22,124,.28)}.speedy-form-card h1{margin:0;font-size:clamp(30px,3vw,50px);letter-spacing:-.04em}.speedy-form-card p{margin:6px 0 0;color:#655d66}.speedy-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px}.speedy-field{display:grid;gap:7px;font-size:13px;font-weight:900}.speedy-field.wide{grid-column:1/-1}.speedy-time-grid{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.speedy-input{min-height:50px;border:1px solid #ded6dc;border-radius:12px;background:#fff;padding:0 14px;font:inherit;color:#211a22;outline:none}.speedy-input:focus{border-color:#ff167c;box-shadow:0 0 0 3px rgba(255,22,124,.12)}textarea.speedy-input{padding-top:14px;min-height:104px;resize:vertical}.speedy-submit{margin-top:20px;min-height:60px;width:100%;border:0;border-radius:18px;background:linear-gradient(100deg,#f30a71,#ff426e 55%,#ff8a46);color:#fff;font-size:18px;font-weight:950;box-shadow:0 18px 42px rgba(243,10,113,.30);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.speedy-submit:hover{transform:translateY(-2px);box-shadow:0 22px 48px rgba(243,10,113,.36)}.speedy-submit:disabled{opacity:.65;cursor:wait}.speedy-submit-note{text-align:center;font-size:12px!important;color:#746c73!important}.speedy-success,.speedy-error{margin-top:14px;border-radius:14px;padding:12px 14px;font-size:13px;font-weight:800}.speedy-success{background:#e8fff1;color:#176737}.speedy-error{background:#fff0f3;color:#9d1739}\n        .speedy-trust{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:16px 0 44px;border-radius:18px;overflow:hidden;background:rgba(255,255,255,.12)}.speedy-trust div{padding:18px;background:rgba(8,5,10,.83);text-align:center}.speedy-trust strong{display:block;font-size:12px}.speedy-trust span{display:block;margin-top:3px;font-size:11px;color:rgba(255,255,255,.62)}\n        .speedy-nav { position:sticky;top:12px;z-index:20;display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding:12px 14px;gap:20px;border:1px solid rgba(255,255,255,.14);border-radius:22px;background:rgba(16,7,18,.62);box-shadow:0 18px 52px rgba(0,0,0,.24);backdrop-filter:blur(22px); }\n        .speedy-brand { display: flex; align-items: center; gap: 12px; font-weight: 900; letter-spacing: -.03em; }\n        .speedy-mark { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 16px; background: transparent; color: #08110f; font-size: 21px; overflow: visible; filter: drop-shadow(0 12px 24px rgba(0,0,0,.30)); }\n        .speedy-mark img { width: 100%; height: 100%; object-fit: contain; display: block; }\n        .speedy-hero-logo { position: absolute; inset: 18px 18px auto auto; width: min(230px, 52%); aspect-ratio: 1; display: grid; place-items: center; z-index: 2; }\n        .speedy-hero-logo img { width: 100%; height: 100%; object-fit: contain; display: block; filter: drop-shadow(0 18px 28px rgba(0,0,0,.34)); }\n        .speedy-nav a { color: rgba(255,255,255,.82); text-decoration: none; font-size: 14px; font-weight: 800; transition:color .2s ease,transform .2s ease; }.speedy-nav a:hover{color:#fff;transform:translateY(-1px)}\n        .speedy-hero { display: grid; grid-template-columns: 1.15fr .85fr; gap: 42px; align-items: center; padding: 72px 0 56px; }\n        .speedy-kicker { display: inline-flex; align-items: center; gap: 8px; border: 1px solid rgba(255, 121, 159, .30); background: rgba(255, 70, 130, .10); color: #ffd0df; border-radius: 999px; padding: 8px 12px; font-size: 12px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }\n        .speedy-hero h1 { margin: 18px 0 16px; max-width: 760px; font-size: clamp(48px, 7vw, 88px); line-height: .93; letter-spacing: -.065em; }\n        .speedy-hero p { max-width: 680px; margin: 0; color: #b8c8c1; font-size: clamp(17px, 2vw, 21px); line-height: 1.65; }\n        .speedy-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }\n        .speedy-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 20px; border-radius: 14px; font-weight: 900; text-decoration: none; }\n        .speedy-btn-primary { background: linear-gradient(100deg,#f30a71,#ff5c66 58%,#ff974b); color: #fff; box-shadow: 0 14px 38px rgba(243,10,113,.24); }\n        .speedy-btn-ghost { border: 1px solid rgba(255,255,255,.13); background: rgba(255,255,255,.05); color: #f7fbf8; }\n        .speedy-hero-card { position: relative; min-height: 390px; border-radius: 32px; overflow: hidden; border: 1px solid rgba(255,255,255,.10); background:\n          linear-gradient(160deg, rgba(255,255,255,.10), rgba(255,255,255,.025)),\n          linear-gradient(135deg, #15251f, #09110f); box-shadow: 0 36px 90px rgba(0,0,0,.42); }\n        .speedy-hero-card::before { content: \"\"; position: absolute; inset: 34px 34px auto auto; width: 170px; height: 170px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #f8fbf9 0 20%, #101815 21% 34%, #f8fbf9 35% 49%, #101815 50% 100%); opacity: .95; box-shadow: 0 0 0 18px rgba(117,236,181,.07); }\n        .speedy-hero-card-copy { position: absolute; left: 30px; right: 30px; bottom: 30px; }\n        .speedy-hero-card strong { display: block; font-size: clamp(30px,4vw,46px); letter-spacing: -.04em; }\n        .speedy-hero-card span { display: block; margin-top: 8px; color: #a7b9b0; line-height: 1.5; }\n        .speedy-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; padding: 0 0 42px; }\n        .speedy-stat { border: 1px solid rgba(255,255,255,.09); background: rgba(255,255,255,.045); border-radius: 18px; padding: 19px 20px; }\n        .speedy-stat strong { display: block; color: #f8fbf9; font-size: 28px; letter-spacing: -.04em; }\n        .speedy-stat span { color: #9fb0a8; font-size: 13px; }\n        .speedy-section { padding: 62px 0; }\n        .speedy-section-head { max-width: 760px; margin-bottom: 26px; }\n        .speedy-section-head h2 { margin: 0 0 10px; font-size: clamp(34px, 5vw, 54px); letter-spacing: -.05em; }\n        .speedy-section-head p { margin: 0; color: #aebdb6; line-height: 1.65; }\n        .speedy-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }\n        .speedy-gear { position: relative; min-height: 360px; padding: 28px; border: 1px solid rgba(255,255,255,.12); border-radius: 26px; background: linear-gradient(160deg,rgba(255,255,255,.11),rgba(255,255,255,.035)); box-shadow: 0 24px 64px rgba(0,0,0,.26);backdrop-filter:blur(16px);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease }.speedy-gear:hover{transform:translateY(-6px);border-color:rgba(255,110,155,.36);box-shadow:0 30px 76px rgba(0,0,0,.34)}\n        .speedy-count { display: inline-flex; min-width: 58px; height: 58px; align-items: center; justify-content: center; border-radius: 18px; background: linear-gradient(135deg,#fff,#ffe5ef); color: #311124; font-weight: 950; font-size: 24px;box-shadow:0 12px 28px rgba(0,0,0,.18) }\n        .speedy-eyebrow { margin: 24px 0 7px; color: #ff9fbc; font-size: 12px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }\n        .speedy-gear h3 { margin: 0; font-size: 25px; letter-spacing: -.035em; }\n        .speedy-gear p { color: #aab9b2; line-height: 1.55; }\n        .speedy-gear ul { padding-left: 18px; color: #d4ded9; line-height: 1.65; font-size: 14px; }\n        .speedy-note { margin-top: 22px; padding: 18px 20px; border-radius: 18px; border: 1px solid rgba(250,204,21,.16); background: rgba(250,204,21,.06); color: #d9d8be; line-height: 1.55; font-size: 13px; }\n        .speedy-availability { display: grid; grid-template-columns: 1fr auto; gap: 26px; align-items: center; margin: 40px 0 72px; padding: 32px; border-radius: 28px; border: 1px solid rgba(255,121,159,.22); background: linear-gradient(135deg, rgba(243,10,113,.16), rgba(255,151,75,.10), rgba(255,255,255,.04));backdrop-filter:blur(18px) }\n        .speedy-availability h2 { margin: 0 0 7px; font-size: 30px; letter-spacing: -.04em; }\n        .speedy-availability p { margin: 0; color: #afbeb7; line-height: 1.55; }\n        .speedy-how{padding:10px 0 24px}.speedy-how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.speedy-step{padding:26px;border-radius:24px;border:1px solid rgba(255,255,255,.11);background:rgba(12,7,15,.58);backdrop-filter:blur(18px)}.speedy-step b{display:grid;place-items:center;width:40px;height:40px;border-radius:14px;background:linear-gradient(135deg,#f30a71,#ff8a46);font-size:15px}.speedy-step h3{margin:18px 0 8px;font-size:22px}.speedy-step p{margin:0;color:rgba(255,255,255,.68);line-height:1.6;font-size:14px}\n        .speedy-footer { border-top: 1px solid rgba(255,255,255,.08); padding: 28px 0 38px; color: #a18f9b; font-size: 13px; }\n        @media (max-width: 920px) {\n          .speedy-booking-stage{grid-template-columns:1fr;padding-top:26px}.speedy-side{position:static}.speedy-side-logo{max-width:310px}.speedy-category-rail{grid-template-columns:repeat(2,minmax(0,1fr))}.speedy-trust{grid-template-columns:repeat(2,1fr)}.speedy-form-grid{grid-template-columns:1fr}.speedy-time-grid{grid-template-columns:1fr}.speedy-field.wide,.speedy-time-grid{grid-column:auto}.speedy-nav{top:8px}.speedy-nav a:not(.speedy-btn-primary){display:none}.speedy-how-grid{grid-template-columns:1fr}\n          .speedy-hero { grid-template-columns: 1fr; padding-top: 42px; }\n          .speedy-hero-card { min-height: 300px; }\n          .speedy-grid { grid-template-columns: 1fr; }\n          .speedy-stats { grid-template-columns: 1fr; }\n          .speedy-availability { grid-template-columns: 1fr; }\n          .speedy-nav > a { display: none; }\n        }\n      `}</style>\n\n      <div className=\"speedy-wrap\">\n        <nav className=\"speedy-nav\" aria-label=\"Speedy Panda\">\n          <div className=\"speedy-brand\"><span className=\"speedy-mark\">{logoUrl ? <img src={logoUrl} alt=\"Speedy Panda Party Rentals\" /> : '🐼'}</span><span>Speedy Panda Party Rentals</span></div>\n          <div style={{display:'flex',gap:18,alignItems:'center'}}><a href=\"#gear\">Rentals</a><a href=\"#how\">How it works</a><a href=\"#availability\">Availability</a><a className=\"speedy-btn speedy-btn-primary\" href=\"#booking\">Check availability</a></div>\n        </nav>\n\n        <section className=\"speedy-booking-stage\" id=\"booking\">\n          <aside className=\"speedy-side\">\n            <div className=\"speedy-mini-kicker\">Brevard County party rentals</div>\n            {logoUrl ? <img className=\"speedy-side-logo\" src={logoUrl} alt=\"Speedy Panda Party Rentals\" /> : <div className=\"speedy-side-logo\" />}\n            <div className=\"speedy-tagline\">Events Made Easy! ♡</div>\n            <p className=\"speedy-intro\">Tell us the date, location, and what you need. Speedy Panda makes it simple to plan the tables, chairs, tent, delivery, and setup around your event.</p>\n            <div className=\"speedy-category-rail\" aria-label=\"Rental categories\">\n              {[['▣','BOOK YOUR EVENT'],['⌂','TENTS'],['▤','TABLES & CHAIRS'],['★','EVENT EXTRAS'],['▰','DELIVERY & SETUP']].map(([icon,label])=><a key={label} className=\"speedy-category\" href={label==='BOOK YOUR EVENT'?'#booking':'#gear'}><b>{icon}</b><span>{label}</span></a>)}\n            </div>\n          </aside>\n          <form className=\"speedy-form-card\" onSubmit={submitBooking}>\n            <div className=\"speedy-form-head\"><div className=\"speedy-form-icon\">▣</div><div><h1>Let’s plan your <span style={{color:'#f30a71'}}>event.</span></h1><p>Share the essentials and Speedy Panda can confirm availability and build your rental plan.</p></div></div>\n            <div className=\"speedy-form-grid\">\n              <label className=\"speedy-field\">Full Name *<input className=\"speedy-input\" value={form.fullName} onChange={update('fullName')} required placeholder=\"Your name\" /></label>\n              <label className=\"speedy-field\">Phone<input className=\"speedy-input\" value={form.phone} onChange={update('phone')} placeholder=\"Best number to reach you\" /></label>\n              <label className=\"speedy-field\">Email<input className=\"speedy-input\" type=\"email\" value={form.email} onChange={update('email')} placeholder=\"you@example.com\" /></label>\n              <label className=\"speedy-field\">Event Type *<select className=\"speedy-input\" value={form.eventType} onChange={update('eventType')} required><option value=\"\">Select an event type</option><option>Birthday Party</option><option>Wedding</option><option>Corporate Event</option><option>School / Community Event</option><option>Graduation</option><option>Other</option></select></label>\n              <div className=\"speedy-time-grid\"><label className=\"speedy-field\">Event Date *<input className=\"speedy-input\" type=\"date\" value={form.eventDate} onChange={update('eventDate')} required /></label><label className=\"speedy-field\">Start Time<input className=\"speedy-input\" type=\"time\" value={form.startTime} onChange={update('startTime')} /></label><label className=\"speedy-field\">End Time<input className=\"speedy-input\" type=\"time\" value={form.endTime} onChange={update('endTime')} /></label></div>\n              <label className=\"speedy-field\">Guest Count (Estimated)<input className=\"speedy-input\" type=\"number\" min=\"1\" max=\"10000\" value={form.guestCount} onChange={update('guestCount')} placeholder=\"e.g. 50\" /></label>\n              <label className=\"speedy-field\">Event Location *<input className=\"speedy-input\" value={form.location} onChange={update('location')} required placeholder=\"Enter address or venue\" /></label>\n              <label className=\"speedy-field wide\">Additional Details<textarea className=\"speedy-input\" value={form.details} onChange={update('details')} placeholder=\"Tell us more about your event...\" /></label>\n            </div>\n            <button className=\"speedy-submit\" disabled={submitting} type=\"submit\">{submitting?'Sending…':'✈  Send My Request'}</button>\n            <p className=\"speedy-submit-note\">No payment required to request availability. Speedy Panda will review the event details and follow up with the next step.</p>\n            {submittedId ? <div className=\"speedy-success\">Request received! Speedy Panda has your event inquiry and will follow up with availability and a custom quote.</div> : null}\n            {submitError ? <div className=\"speedy-error\">{submitError}</div> : null}\n          </form>\n        </section>\n        <section className=\"speedy-trust\"><div><strong>♥ LOCAL & FAMILY OWNED</strong><span>Brevard County, FL</span></div><div><strong>✓ CLEAN & RELIABLE</strong><span>Well maintained</span></div><div><strong>★ EVENTS OF ALL SIZES</strong><span>Backyard to corporate</span></div><div><strong>● YOU RELAX, WE HANDLE IT</strong><span>Delivery, setup & support</span></div></section>\n\n        <section className=\"speedy-hero\">\n          <div>\n            <span className=\"speedy-kicker\">Party rentals • real inventory</span>\n            <h1>Bring the party. We’ll bring the setup.</h1>\n            <p>Dependable chairs, tables, and a commercial 20 × 40 event tent for celebrations, gatherings, markets, ceremonies, and more.</p>\n            <div className=\"speedy-actions\">\n              <a className=\"speedy-btn speedy-btn-primary\" href=\"#gear\">See our gear</a>\n              <a className=\"speedy-btn speedy-btn-ghost\" href=\"#availability\">Plan your event</a>\n            </div>\n          </div>\n          <div className=\"speedy-hero-card\" aria-hidden=\"true\">\n            {logoUrl ? <div className=\"speedy-hero-logo\"><img src={logoUrl} alt=\"\" /></div> : null}\n            <div className=\"speedy-hero-card-copy\">\n              <strong>Fast setup. Solid gear.</strong>\n              <span>A focused rental inventory built for parties that need to come together cleanly.</span>\n            </div>\n          </div>\n        </section>\n\n        <section className=\"speedy-stats\" aria-label=\"Current rental inventory\">\n          <div className=\"speedy-stat\"><strong>40</strong><span>folding chairs</span></div>\n          <div className=\"speedy-stat\"><strong>6</strong><span>fold-in-half tables</span></div>\n          <div className=\"speedy-stat\"><strong>20 × 40</strong><span>commercial event tent</span></div>\n        </section>\n\n        <section className=\"speedy-section\" id=\"gear\">\n          <div className=\"speedy-section-head\">\n            <span className=\"speedy-kicker\">Real inventory • ready to plan around</span>\n            <h2>Build the setup your event actually needs.</h2>\n            <p>Start with Speedy Panda’s current tables, chairs, and commercial tent inventory, then use the booking request to plan around your date, location, guest count, and setup needs.</p>\n          </div>\n          <div className=\"speedy-grid\">\n            {speedyPandaGear.map((item) => (\n              <article className=\"speedy-gear\" key={item.title}>\n                <span className=\"speedy-count\">{item.count}</span>\n                <div className=\"speedy-eyebrow\">{item.eyebrow}</div>\n                <h3>{item.title}</h3>\n                <p>{item.summary}</p>\n                <ul>{item.facts.map((fact) => <li key={fact}>{fact}</li>)}</ul>\n              </article>\n            ))}\n          </div>\n          <div className=\"speedy-note\">\n            Tent specifications and safety ratings above are manufacturer-provided claims. Site conditions, anchoring, weather, fire rules, permitting, and local event requirements must be evaluated for each setup. Manufacturer guidance advises preventative measures or dismantling when winds reach 25 mph or more.\n          </div>\n        </section>\n\n        <section className=\"speedy-how speedy-section\" id=\"how\">\n          <div className=\"speedy-section-head\"><span className=\"speedy-kicker\">Simple from the start</span><h2>Three steps. No runaround.</h2><p>Speedy Panda keeps the first conversation focused on the details that actually determine a workable rental setup.</p></div>\n          <div className=\"speedy-how-grid\"><article className=\"speedy-step\"><b>01</b><h3>Tell us about the event</h3><p>Share the date, location, event type, guest estimate, and anything important about the setup.</p></article><article className=\"speedy-step\"><b>02</b><h3>Confirm the right gear</h3><p>Speedy Panda reviews availability and matches the request against the current rental inventory.</p></article><article className=\"speedy-step\"><b>03</b><h3>Lock in the plan</h3><p>Once the details line up, you’ll have a clear rental plan for the event instead of piecing it together yourself.</p></article></div>\n        </section>\n\n        <section className=\"speedy-availability\" id=\"availability\">\n          <div>\n            <h2>Planning an event?</h2>\n            <p>Availability changes as rentals are reserved. Start with the gear above and Speedy Panda can build the right rental plan around your date, guest count, and setup needs.</p>\n          </div>\n          <a className=\"speedy-btn speedy-btn-primary\" href=\"#booking\">Check availability</a>\n        </section>\n\n        <footer className=\"speedy-footer\">Speedy Panda Party Rentals • Event rental equipment and setup planning</footer>\n      </div>\n    </main>\n  );\n}\n\nfunction RouteFallback() {\n  const hostname = typeof window === 'undefined' ? '' : window.location.hostname;\n  const pathname = typeof window === 'undefined' ? '' : window.location.pathname.toLowerCase();\n  if (pathname === '/sign-agreement') return <div className=\"min-h-[100dvh] w-full bg-black\" aria-label=\"Loading secure agreement\" />;\n  if (hostname === 'bigpapiscoquitoiceys.com' || hostname === 'www.bigpapiscoquitoiceys.com' || ROOF_HELP_FINDER_HOSTS.has(hostname) || AUTO_UNLOCK_PUBLIC_HOSTS.has(hostname) || WHATS_MY_PROGRESS_HOSTS.has(hostname) || BOOK_ME_DIRECTLY_HOSTS.has(hostname) || BYCHEFAP_PUBLIC_HOSTS.has(hostname)) return null;\n  return <UniversalLoadingScreen title=\"Loading KNOCKLAUNCH\" subtitle=\"Preparing your workspace.\" />;\n}\n\nexport default function PublicAppShell() {\n  const location = useLocation();\n  const hostname = typeof window === 'undefined' ? '' : window.location.hostname;\n  const isAutoUnlockCustomHost = AUTO_UNLOCK_PUBLIC_HOSTS.has(hostname);\n  const isByChefApCustomHost = BYCHEFAP_PUBLIC_HOSTS.has(hostname);\n  const normalizedPath = location.pathname.length > 1 ? location.pathname.replace(/\\/+$/, '') : '/';\n  const isAutoUnlockPublicPath = isAutoUnlockCustomHost && AUTO_UNLOCK_PUBLIC_PATHS.has(normalizedPath);\n  const isWhatsMyProgressCustomHost = WHATS_MY_PROGRESS_HOSTS.has(hostname);\n  const isBookMeDirectlyCustomHost = BOOK_ME_DIRECTLY_HOSTS.has(hostname);\n  const bookMeDirectlyTenantSlug = isBookMeDirectlyCustomHost ? normalizedPath.split('/').filter(Boolean)[0] || '' : '';\n  const isWhatsMyProgressPortalPath = isWhatsMyProgressCustomHost && /^\\/[a-z0-9][a-z0-9-]*\\/p\\/[^/]+\\/?$/i.test(location.pathname);\n  const whatsMyProgressTenantSlug = isWhatsMyProgressCustomHost ? normalizedPath.split('/').filter(Boolean)[0] || '' : '';\n  const isWhatsMyProgressTenantRoot = isWhatsMyProgressCustomHost && /^\\/[a-z0-9][a-z0-9-]*\\/?$/i.test(location.pathname);\n  const isSpeedyPandaPublicPath = isWhatsMyProgressCustomHost && SPEEDY_PANDA_PUBLIC_PATHS.has(normalizedPath.toLowerCase());\n  const isPcgPublicSite = normalizedPath.toLowerCase() === '/prestigious-card-grading' || normalizedPath.toLowerCase().startsWith('/prestigious-card-grading/');\n  const isSignAgreementPath = normalizedPath.toLowerCase() === '/sign-agreement' || normalizedPath.toLowerCase().startsWith('/sign-agreement/');\n  const suppressShellBackground = isSignAgreementPath || isPcgPublicSite || isSelfContainedBookingRoute(location.pathname) || normalizedPath.toLowerCase().startsWith('/book-me-directly') || ROOF_HELP_FINDER_HOSTS.has(hostname) || isAutoUnlockCustomHost || isWhatsMyProgressCustomHost || isBookMeDirectlyCustomHost || isByChefApCustomHost || location.pathname.toLowerCase() === '/palm-bay' || ['/demo','/build-my-demo'].includes(location.pathname.toLowerCase());\n\n  if (isByChefApCustomHost) return <Suspense fallback={null}><ByChefApPublicSite /></Suspense>;\n  if (isAutoUnlockCustomHost && AUTO_UNLOCK_GATE_ENABLED) return <Suspense fallback={null}><AutoUnlockComingSoon /></Suspense>;\n  if (isAutoUnlockPublicPath) return <Suspense fallback={null}><AutoUnlockPublic /></Suspense>;\n  if (isSpeedyPandaPublicPath) return <Suspense fallback={null}><SpeedyPandaPublicSite /></Suspense>;\n  if (isWhatsMyProgressTenantRoot) return <Suspense fallback={null}><WhatsMyProgressTenantHome tenantSlug={whatsMyProgressTenantSlug || undefined} /></Suspense>;\n  if (isWhatsMyProgressCustomHost && !isWhatsMyProgressPortalPath) {\n    if (normalizedPath === '/') return <Suspense fallback={null}><WhatsMyProgressComingSoon /></Suspense>;\n    return <main style={{minHeight:'100vh',display:'grid',placeItems:'center',padding:'24px',background:'#07110f',color:'#f7fbf8',fontFamily:'Inter,ui-sans-serif,system-ui,sans-serif'}}><section style={{maxWidth:560,textAlign:'center'}}><h1 style={{fontSize:'clamp(32px,6vw,54px)',letterSpacing:'-0.04em',marginBottom:12}}>Public page unavailable</h1><p style={{color:'#aebdb6',lineHeight:1.6}}>This tenant public page could not be resolved. Check the company link and try again.</p></section></main>;\n  }\n  if (isBookMeDirectlyCustomHost) return <Suspense fallback={null}><BookMeDirectlyPublicPage tenantSlug={bookMeDirectlyTenantSlug || undefined} /></Suspense>;\n\n  return <div data-kl-public-shell=\"true\" className=\"kl-platform-surface\">{suppressShellBackground ? null : <SiteBackground />}<Routes>\n    <Route path=\"/prestigious-card-grading\" element={<Suspense fallback={<RouteFallback />}><PCGPublicSite /></Suspense>} />\n    <Route path=\"/prestigious-card-grading/grading\" element={<Suspense fallback={<RouteFallback />}><PCGPublicSite page=\"grading\" /></Suspense>} />\n    <Route path=\"/prestigious-card-grading/submit\" element={<Suspense fallback={<RouteFallback />}><PCGPublicSite page=\"submit\" /></Suspense>} />\n    <Route path=\"/prestigious-card-grading/shop\" element={<Suspense fallback={<RouteFallback />}><PCGPublicSite page=\"shop\" /></Suspense>} />\n    <Route path=\"/prestigious-card-grading/contact\" element={<Suspense fallback={<RouteFallback />}><PCGPublicSite page=\"contact\" /></Suspense>} />\n    {publicRoutes}{authRoutes}<Route path=\"*\" element={<Suspense fallback={<RouteFallback />}><NotFound /></Suspense>} />\n  </Routes></div>;\n}\n"},{"path":"config/platform-standards.json","content":"{\n  \"schemaVersion\": 1,\n  \"contractId\": \"knocklaunch-platform-standards\",\n  \"status\": \"enforced\",\n  \"purpose\": \"Define the minimum product, tenant, experience, reliability, and release standards that every KnockLaunch production surface must preserve.\",\n  \"platformPrinciple\": \"KnockLaunch gives a small business the operational software, automation, data discipline, and presentation quality of a much larger company without forcing the owner to become a software operator.\",\n  \"qualityTiers\": [\n    {\"id\":\"platform\",\"name\":\"Platform Standard\",\"requirement\":\"Minimum allowed in production: functional, tenant-isolated, responsive, safe, understandable, observable, and recoverable.\"},\n    {\"id\":\"premium\",\"name\":\"Premium Standard\",\"requirement\":\"Default target for customer-facing experiences: polished hierarchy and motion, fast feedback, excellent loading/empty/error states, strong tenant identity, and low friction.\"},\n    {\"id\":\"flagship\",\"name\":\"Flagship Standard\",\"requirement\":\"Required for actively demonstrated or sold experiences: critical-route proof, realistic data, responsive verification, integrations verified where applicable, and near-zero tolerance for visible defects.\"}\n  ],\n  \"absoluteLaws\": [\n    {\"id\":\"no-broken-production-surfaces\",\"rule\":\"No blank, broken, placeholder, misleading, or knowingly dead production screen is acceptable.\"},\n    {\"id\":\"zero-cross-tenant-contamination\",\"rule\":\"Tenant data, scripts, media, integrations, defaults, branding, permissions, and configuration must not bleed across tenant boundaries.\"},\n    {\"id\":\"no-generic-ai-filler\",\"rule\":\"Production copy must help a user act, decide, understand, or recover; generic AI filler, redundant prose, and purposeless cards are prohibited.\"},\n    {\"id\":\"immediate-interaction-acknowledgement\",\"rule\":\"Every user interaction must provide immediate visible acknowledgement even when the underlying operation takes longer.\"},\n    {\"id\":\"workflow-continuity-by-default\",\"rule\":\"User-entered workflow context must survive ordinary navigation, retries, recoverable failures, and refresh whenever doing so is safe; multi-step flows must not silently revert to stale values or force duplicate entry.\"},\n    {\"id\":\"deterministic-self-recovery\",\"rule\":\"Safe deterministic failures such as transient fetch errors, stale derived state, recoverable route resolution, and retryable runtime faults must automatically retry, reconcile, or restore the last proven state before asking the owner or customer to intervene.\"},\n    {\"id\":\"owner-is-not-the-qa-layer\",\"rule\":\"Shared platform changes must carry automatic, claim-matched verification for the affected contract and representative sibling surfaces. Manual owner QA is reserved for subjective product acceptance or genuinely non-automatable external behavior, not routine correctness discovery.\"},\n    {\"id\":\"owner-sovereignty\",\"rule\":\"Automation may pause, quarantine, or fail its own work, but it may not revoke or demote the platform owner, disable owner or GodMode inspection and recovery, block owner recovery because a mission, gate, circuit breaker, or automation state is stuck, or require automation approval for the owner to regain control.\"},\n    {\"id\":\"owner-control-fail-open-risky-mutation-fail-closed\",\"rule\":\"When automation is degraded, owner inspection and recovery controls remain available while destructive production mutation, tenant isolation, authentication, data-loss, and release safety continue to fail closed.\"},\n    {\"id\":\"confidence-based-autonomy\",\"rule\":\"Autonomous recovery must prefer existing confidence scoring, failure clustering, bounded retries, reconciliation, and representative verification; high-confidence reversible recovery may proceed automatically, while ambiguous or destructive actions remain constrained by safety boundaries.\"},\n    {\"id\":\"mobile-first-class\",\"rule\":\"Mobile is a first-class product surface and must remain usable, scrollable, legible, and functionally complete for applicable workflows.\"},\n    {\"id\":\"shared-primitives-propagate-fixes\",\"rule\":\"Foundational behavior should be implemented through shared platform primitives so safe improvements propagate across applicable tenants.\"},\n    {\"id\":\"canonical-application-frame\",\"rule\":\"Application shells must use the shared ApplicationFrame modes document-flow, internal-bounded, or fullscreen-canvas for structural scrolling and overflow. When an ApplicationFrame is mounted, ancestor tenant-runtime vertical scrolling must be suppressed so the frame owns the single vertical scroll region beneath its persistent contextual-header slot. Application modules may not create competing vertical scroll owners outside explicitly bounded internal workspaces or fullscreen canvases.\"},\n    {\"id\":\"canonical-contextual-workflow-header\",\"rule\":\"Canonical contextual, workflow, step, guidance, and progress headers occupy the ApplicationFrame persistent contextual-header slot above the scrolling application body, matching regular shell-header persistence. ContextualWorkflowHeader must portal into that slot when an ApplicationFrame is present; CSS sticky is fallback-only outside an ApplicationFrame. Modules and tenants may style appearance but may not redefine structural persistence, position, or scroll ownership.\"},\n    {\"id\":\"tenant-customization-without-platform-forks\",\"rule\":\"Tenant branding, workflow, and configuration differences must not create unnecessary forks of foundational platform behavior.\"},\n    {\"id\":\"ui-claims-match-reality\",\"rule\":\"The UI may not claim saved, sent, paid, connected, synced, signed, or completed state unless the owning system proves that state.\"},\n    {\"id\":\"production-is-done\",\"rule\":\"Source changes, green checks, merges, and deployment dispatches are intermediate states; product work is complete only when the requested production outcome is proven.\"},\n    {\"id\":\"capability-completeness\",\"rule\":\"An implementation is not complete until every dependency it declares or relies on is correctly wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior. A dependency awaiting owner authorization must resolve to an explicit prerequisite state and must never present as a broken runtime.\"},\n    {\"id\":\"atomic-capability-lifecycle\",\"rule\":\"A changed capability may become user-visible only after declared dependencies are deployed, compatibility and readiness are verified, and claim-matched production proof is recorded. Expected unavailable optional dependencies isolate only the dependent capability in prerequisite_required or quarantined state; unrelated working capabilities remain active.\"},\n    {\"id\":\"capability-without-clutter\",\"rule\":\"Increasing platform capability must not produce unnecessary cards, menus, text, duplicate controls, or visual noise.\"},\n    {\"id\":\"canonical-scaling-and-constraint-primitive\",\"rule\":\"Shared public and private application shells inherit the canonical platform scaling and constraint primitive from src/App.css. General page layout must not use CSS zoom or global transform scaling; route-wide fixed widths may not exceed shared frames; 100vh-only shells may not trap mobile scrolling; stacked tenant/platform navigation must reserve safe-area space with platform navigation bottom-most; framed media stays inside its owning frame with explicit focal positioning. Wide and full-bleed behavior is an explicit opt-in for surfaces such as maps, editors, document viewers, data-heavy workspaces, and canvases.\"}\n  ],\n  \"layoutConstraintContract\": {\n    \"id\": \"canonical-platform-scaling-and-constraints-v1\",\n    \"owner\": \"src/App.css\",\n    \"shells\": [\"src/PrivateAppShell.tsx\", \"src/PublicAppShell.tsx\"],\n    \"tokens\": [\n      \"--kl-viewport-height\",\n      \"--kl-content-max\",\n      \"--kl-content-wide-max\",\n      \"--kl-reading-max\",\n      \"--kl-page-gutter\",\n      \"--kl-section-gap\",\n      \"--kl-card-inset\",\n      \"--kl-control-min-height\",\n      \"--kl-sticky-offset\",\n      \"--kl-platform-mobile-nav-h\",\n      \"--kl-tenant-mobile-nav-h\",\n      \"--kl-mobile-bottom-stack-h\",\n      \"--kl-shell-bottom-inset\",\n      \"--kl-hero-min-height\",\n      \"--kl-hero-max-height\",\n      \"--kl-media-focal-x\",\n      \"--kl-media-focal-y\"\n    ],\n    \"frameModes\": {\n      \"bounded\": \"kl-content-frame\",\n      \"wide\": \"kl-content-frame-wide\",\n      \"reading\": \"kl-content-frame-reading\",\n      \"fullBleed\": \"kl-full-bleed\"\n    },\n    \"scrollRegion\": \"kl-scroll-region\",\n    \"surface\": \"kl-platform-surface\",\n    \"stickyContext\": \"kl-sticky-context\",\n    \"mediaFrame\": \"kl-media-frame\",\n    \"mobileNavigation\": {\n      \"tenantPosition\": \"above-platform\",\n      \"platformPosition\": \"bottom-most\",\n      \"safeArea\": \"env(safe-area-inset-bottom)\",\n      \"contentInsetToken\": \"--kl-shell-bottom-inset\"\n    },\n    \"prohibitedGeneralLayoutMechanisms\": [\n      \"css-zoom\",\n      \"global-transform-scale\",\n      \"unbounded-route-fixed-width\",\n      \"100vh-only-scroll-trap\"\n    ],\n    \"explicitWideOrFullBleedExceptions\": [\n      \"data-tables\",\n      \"editors\",\n      \"proposal-and-document-viewers\",\n      \"maps\",\n      \"canvas-and-sandbox-surfaces\"\n    ]\n  },\n  \"domains\": [\n    {\"id\":\"core-workflow\",\"standard\":\"The primary business task is obvious and can be completed without explanation or dead ends.\"},\n    {\"id\":\"tenant-consistency\",\"standard\":\"Every tenant inherits proven platform behavior while retaining tenant-specific identity, configuration, permissions, and workflows.\"},\n    {\"id\":\"tenant-isolation\",\"standard\":\"Tenant boundaries are explicit and enforced across data, storage, media, scripts, integrations, permissions, and configuration.\"},\n    {\"id\":\"route-quality\",\"standard\":\"Every production route has a real purpose; duplicate descriptions, placeholders, zombie routes, and decorative dead pages are prohibited.\"},\n    {\"id\":\"navigation\",\"standard\":\"Route families use predictable navigation, selected states, back behavior, headers, and responsive behavior.\"},\n    {\"id\":\"loading-states\",\"standard\":\"Meaningful waits use branded or contextual loading/skeleton states; blank waiting surfaces are prohibited.\"},\n    {\"id\":\"premium-presentation\",\"standard\":\"Hierarchy, spacing, typography, imagery, motion, lighting, and density are deliberate and appropriate to the tenant experience.\"},\n    {\"id\":\"responsive-design\",\"standard\":\"Desktop, tablet, and mobile avoid overflow, obstructed controls, broken scrolling, hidden media, and unstructured vertical sprawl.\"},\n    {\"id\":\"layout-constraints\",\"standard\":\"Shared shells expose canonical viewport, frame-width, gutter, density, sticky-offset, mobile-nav-stack, safe-area, scroll-region, and media-framing constraints. Bounded is the default content model; wide and full-bleed are explicit structural modes rather than route-local scaling hacks.\"},\n    {\"id\":\"copy\",\"standard\":\"Text is tenant-relevant, human, useful, concise, and action-oriented; developer jargon and filler are excluded from ordinary owner-facing surfaces.\"},\n    {\"id\":\"empty-states\",\"standard\":\"Empty states explain what is missing, why it matters, and the next useful action.\"},\n    {\"id\":\"connections\",\"standard\":\"Integrations use a recognizable find/select/authenticate/active/manage-disconnect lifecycle with truthful connection state.\"},\n    {\"id\":\"forms\",\"standard\":\"Forms minimize ambiguity using appropriate controls, autocomplete, validation, useful defaults, progress state, and actionable errors.\"},\n    {\"id\":\"documents\",\"standard\":\"Business documents have correct templates, permissions, signatures where required, audit evidence, delivery, retrieval, and tenant ownership.\"},\n    {\"id\":\"errors\",\"standard\":\"Ordinary users receive human-readable failure and recovery guidance; raw infrastructure errors remain in diagnostics.\"},\n    {\"id\":\"performance\",\"standard\":\"Interaction feedback is immediate and critical paths observe explicit latency budgets, optimized loading, and appropriate caching.\"},\n    {\"id\":\"reliability\",\"standard\":\"Critical workflows tolerate refresh, navigation, retries, partial failures, and normal network variability without corrupting state.\"},\n    {\"id\":\"workflow-continuity\",\"standard\":\"Multi-step work preserves authoritative user-entered context across screens, refreshes, retries, and recoverable failures; stale defaults may not overwrite newer intent.\"},\n    {\"id\":\"self-healing\",\"standard\":\"Deterministically recoverable failures are retried or reconciled automatically at their owning primitive, with bounded recovery and truthful fallback states when recovery is not possible.\"},\n    {\"id\":\"automatic-verification\",\"standard\":\"Changed shared behavior is automatically verified against its governing contract plus representative sibling surfaces so routine correctness does not depend on Noel manually rediscovering regressions.\"},\n    {\"id\":\"owner-control\",\"standard\":\"Owner inspection, recovery, and emergency access remain available even when automation is degraded or blocked; automation may stop its own action but does not become the authority over owner control.\"},\n    {\"id\":\"adaptive-intelligence\",\"standard\":\"Recurring failure signatures should reuse proven recovery behavior through confidence scoring, clustering, bounded retries, reconciliation, and sibling verification rather than relearning the same failure from scratch.\"},\n    {\"id\":\"accessibility\",\"standard\":\"Production surfaces preserve readable contrast and type, labels, focus states, keyboard behavior, usable touch targets, and reduced-motion compatibility where applicable.\"},\n    {\"id\":\"security\",\"standard\":\"Authentication, authorization, secrets, storage, uploads, privileged actions, and tenant/data boundaries follow least privilege and fail closed.\"},\n    {\"id\":\"data-integrity\",\"standard\":\"Persisted and externally verified state is authoritative; the product does not simulate successful business events.\"},\n    {\"id\":\"integrations\",\"standard\":\"External systems expose clear ownership, connection, sync, failure, and reconciliation behavior and feel native to the workflow.\"},\n    {\"id\":\"capability-completeness\",\"standard\":\"Every shipped capability declares and satisfies the dependencies it relies on. Frontend, backend/runtime, data/storage, auth/permissions, provider configuration, prerequisite and failure states, release ownership, and live production proof are one unit of work; expected unavailable dependencies fail closed into actionable prerequisite states rather than runtime errors.\"},\n    {\"id\":\"capability-lifecycle\",\"standard\":\"Meaningful capabilities use a machine-readable manifest and a prepare, deploy, verify, activate lifecycle. Runtime/data owners release before frontend exposure, N and N-1 stay compatible during rolling release, live proof is the activation canary, exact-source drift is nonterminal, and health-contract violations quarantine or roll back only the affected capability.\"},\n    {\"id\":\"observability\",\"standard\":\"Critical flows expose actionable logs, errors, latency, release identity, integration failures, and health signals.\"},\n    {\"id\":\"release-discipline\",\"standard\":\"Every source change uses the canonical gate and release path and is verified against the production claim before completion.\"},\n    {\"id\":\"regression-protection\",\"standard\":\"Shared failure classes are repaired at the governing primitive when safe and protected by representative tests or deterministic verification.\"},\n    {\"id\":\"configuration\",\"standard\":\"Tenant differences live in explicit configuration or owned primitives when reasonable rather than copy-pasted implementations.\"},\n    {\"id\":\"maintainability\",\"standard\":\"Capabilities have canonical implementations; duplicate release paths, stale compatibility layers, unnecessary scaffolding, and competing primitives are removed when safe.\"},\n    {\"id\":\"demo-readiness\",\"standard\":\"Demo-ready means critical routes, workflows, responsive behavior, loading/error states, copy, realistic data, and applicable integrations have passed defined proof rather than informal inspection.\"}\n  ]\n}\n"},{"path":"config/capabilities/tenant-workspace-ui-contract-v2.json","content":"{\n  \"schemaVersion\": 1,\n  \"id\": \"tenant-workspace-ui-contract-v2\",\n  \"owner\": \"knocklaunch-owner-platform\",\n  \"surfaces\": [\n    \"src/components/settings/TenantExperienceSettingsCard.tsx\",\n    \"src/components/settings/TenantBrandCharacterCard.tsx\",\n    \"src/pages/settings/TenantSettingsPage.tsx\",\n    \"src/components/platform/TenantBrandMediaSettings.tsx\",\n    \"src/pages/tire-shop/TireShopWorkspace.tsx\",\n    \"src/pages/lawn-care/LawnCareOwnerAdminSections.tsx\",\n    \"src/components/MiscAwareAccountMenu.tsx\",\n    \"src/components/CRMUserMenu.tsx\",\n    \"src/components/tenant-modes/TenantModeNavigation.tsx\",\n    \"src/shells/TenantModesShell.tsx\",\n    \"src/routes/vanityRoutes.tsx\"\n  ],\n  \"dependencies\": {\n    \"backendRuntime\": [\n      \"supabase/functions/tenant-media-library\"\n    ],\n    \"providers\": []\n  },\n  \"layoutConstraints\": {\n    \"standardId\": \"canonical-platform-scaling-and-constraints-v1\",\n    \"owner\": \"src/App.css\",\n    \"privateShell\": \"src/PrivateAppShell.tsx\",\n    \"surfaceClass\": \"kl-platform-surface\",\n    \"frameModes\": [\"bounded\", \"wide\", \"reading\", \"full-bleed\"],\n    \"requiredTokens\": [\n      \"--kl-viewport-height\",\n      \"--kl-content-max\",\n      \"--kl-content-wide-max\",\n      \"--kl-page-gutter\",\n      \"--kl-sticky-offset\",\n      \"--kl-mobile-bottom-stack-h\",\n      \"--kl-shell-bottom-inset\",\n      \"--kl-media-focal-x\",\n      \"--kl-media-focal-y\"\n    ],\n    \"scrollContract\": {\n      \"documentFlow\": \"document owns vertical scroll unless an ApplicationFrame declares another owner\",\n      \"internalRegionClass\": \"kl-scroll-region\",\n      \"mobileScrollTrapProhibited\": true\n    },\n    \"mobileNavigation\": {\n      \"tenantPosition\": \"above-platform\",\n      \"platformPosition\": \"bottom-most\",\n      \"contentInsetToken\": \"--kl-shell-bottom-inset\"\n    },\n    \"media\": {\n      \"frameClass\": \"kl-media-frame\",\n      \"fit\": \"object-fit\",\n      \"focalPosition\": \"object-position\"\n    },\n    \"prohibitedGeneralLayoutMechanisms\": [\n      \"css-zoom\",\n      \"global-transform-scale\",\n      \"unbounded-route-fixed-width\",\n      \"100vh-only-scroll-trap\"\n    ],\n    \"explicitWideOrFullBleedExceptions\": [\n      \"data-tables\",\n      \"editors\",\n      \"proposal-and-document-viewers\",\n      \"maps\",\n      \"canvas-and-sandbox-surfaces\"\n    ]\n  },\n  \"lifecycle\": {\n    \"states\": [\"prepare\", \"deploy\", \"verify\", \"activate\"],\n    \"compatibilityWindow\": [\"N\", \"N-1\"],\n    \"activationRequirements\": [\n      \"modes_prerequisites_ready_before_family_activation\",\n      \"production_release_verified\",\n      \"claim_matched_canary_passed\",\n      \"tenant_media_contract_profile_controls_ready_with_dimension_hints\"\n    ]\n  },\n  \"release\": {\n    \"runtimeFirst\": true\n  },\n  \"canary\": {\n    \"required\": true\n  },\n  \"proofLedger\": {\n    \"authority\": \"command_center_mission_ledger\",\n    \"bind\": [\n      \"request_contract_hash\",\n      \"source_sha\",\n      \"release_receipt\",\n      \"runtime_identity\",\n      \"canary\",\n      \"activation_state\",\n      \"drift_state\",\n      \"quarantine_state\"\n    ]\n  }\n}\n"},{"path":"src/__tests__/contracts/platform-scaling-constraints.contract.test.ts","content":"import { describe, expect, it } from 'vitest';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nconst ROOT = path.resolve(__dirname, '../../..');\n\nfunction read(relativePath: string) {\n  return fs.readFileSync(path.join(ROOT, relativePath), 'utf8');\n}\n\ndescribe('platform scaling and constraint primitive', () => {\n  const css = read('src/App.css');\n  const privateShell = read('src/PrivateAppShell.tsx');\n  const publicShell = read('src/PublicAppShell.tsx');\n  const standards = JSON.parse(read('config/platform-standards.json'));\n  const workspaceContract = JSON.parse(read('config/capabilities/tenant-workspace-ui-contract-v2.json'));\n\n  it('defines canonical viewport, frame, scroll, navigation, and media constraints', () => {\n    for (const token of [\n      '--kl-viewport-height',\n      '--kl-content-max',\n      '--kl-content-wide-max',\n      '--kl-page-gutter',\n      '--kl-sticky-offset',\n      '--kl-platform-mobile-nav-h',\n      '--kl-tenant-mobile-nav-h',\n      '--kl-mobile-bottom-stack-h',\n      '--kl-shell-bottom-inset',\n      '--kl-media-focal-x',\n      '--kl-media-focal-y',\n    ]) {\n      expect(css).toContain(token);\n    }\n\n    for (const primitive of [\n      '.kl-platform-surface',\n      '.kl-content-frame',\n      '.kl-content-frame-wide',\n      '.kl-content-frame-reading',\n      '.kl-full-bleed',\n      '.kl-scroll-region',\n      '.kl-sticky-context',\n      '.kl-media-frame',\n    ]) {\n      expect(css).toContain(primitive);\n    }\n\n    expect(css).toContain('@supports (height: 100dvh)');\n    expect(css).toContain('object-position: var(--kl-media-focal-x) var(--kl-media-focal-y);');\n    expect(css).not.toMatch(/(^|[;{]\\s*)zoom\\s*:/m);\n  });\n\n  it('binds both shared shells without forcing self-contained public routes into private chrome', () => {\n    expect(privateShell).toContain('kl-platform-surface kl-responsive-tenant-runtime');\n    expect(publicShell).toContain('data-kl-public-shell=\"true\"');\n    expect(publicShell).toContain('className=\"kl-platform-surface\"');\n  });\n\n  it('keeps tenant mobile navigation above the bottom-most platform navigation and reserves safe area', () => {\n    expect(css).toContain('bottom: calc(var(--kl-platform-mobile-nav-h, 0px) + env(safe-area-inset-bottom)) !important;');\n    expect(css).toContain('padding-bottom: var(--kl-shell-bottom-inset) !important;');\n    expect(standards.layoutConstraintContract.mobileNavigation.tenantPosition).toBe('above-platform');\n    expect(standards.layoutConstraintContract.mobileNavigation.platformPosition).toBe('bottom-most');\n  });\n\n  it('codifies the shared law and explicit wide/full-bleed exceptions', () => {\n    expect(standards.absoluteLaws.some((law: { id: string }) => law.id === 'canonical-scaling-and-constraint-primitive')).toBe(true);\n    expect(standards.layoutConstraintContract.owner).toBe('src/App.css');\n    expect(standards.layoutConstraintContract.prohibitedGeneralLayoutMechanisms).toEqual(\n      expect.arrayContaining(['css-zoom', 'global-transform-scale', '100vh-only-scroll-trap']),\n    );\n    expect(workspaceContract.layoutConstraints.standardId).toBe('canonical-platform-scaling-and-constraints-v1');\n    expect(workspaceContract.layoutConstraints.explicitWideOrFullBleedExceptions).toEqual(\n      expect.arrayContaining(['maps', 'proposal-and-document-viewers', 'canvas-and-sandbox-surfaces']),\n    );\n  });\n});\n"}],"branch":"ai/objective-first-repair-486ef02508d1","writes":[],"patches":[],"version":1,"approved":true,"missionId":"486ef025-08d1-4b64-ac31-872c5c28e7b1","objective":"Establish and ship the canonical platform-wide responsive scaling and constraint primitive already bound to mission 486ef025-08d1-4b64-ac31-872c5c28e7b1. Use the exact writes supplied here, keep one mission/branch/PR/release, run canonical Gate, and do not run Visual Witness.","baseBranch":"main","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":[],"implementation":{"files":[],"writes":[]},"requestContract":null,"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":"486ef025-08d1-4b64-ac31-872c5c28e7b1","ownerApproved":true,"releaseIntent":null,"sourceTargets":[],"requestContract":null,"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":false,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"proofRequirements":null,"controlPlaneUnfreeze":false,"durableMutationResume":true,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"recovery":false,"fingerprint":"5a5fc386e0c3c04f17d9216299eff7901da87ed810c9260d844daea191057934","replayCount":0,"serializedBytes":141049},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T16:43:03.694773+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:486ef025-08d1-4b64-ac31-872c5c28e7b1:repository-mutation-intent:5a5fc386e0c3c04f17d9216299eff7901da87ed810c9260d844daea191057934:0","mission_step_id":"f09d74c4-3664-48a8-aceb-832a15aa6275","command_center_event_id":"486ef025-08d1-4b64-ac31-872c5c28e7b1"},{"id":"57207875-8c80-4083-a975-7d2040b04c96","source":"cc-execution","status":"authorized","payload":{"paths":[".forgejo/workflows/knocklaunch.yml","config/control-plane-capabilities.json","workers/cc-execution/src/index-release-fast-lane.js","workers/cc-execution/src/version.js","workers/cc-execution/test/release-orchestration-invariants.test.js"],"reason":"Prevent stale closed/superseded pull-request events and commit statuses from contaminating canonical Gate readiness for the current PR generation.","baseSha":"361ccbef4678184e6e2d358524ee51b34096ab98","issuedAt":1790296721481,"expiresAt":1790296901481,"missionId":"3d2ccf96-f444-4094-a9f9-46d64a26205d","authorizationId":"6883cc06-91d0-4445-a432-6288a4573325","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:38:41.779597+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"361ccbef4678184e6e2d358524ee51b34096ab98","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:6883cc06-91d0-4445-a432-6288a4573325","mission_step_id":"4254a366-eb8e-40ca-9bb7-7b8803053f86","command_center_event_id":"3d2ccf96-f444-4094-a9f9-46d64a26205d"},{"id":"5aefdbf4-8a70-46e3-97c9-6fa060fd9d55","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-aa1e2d8322ea","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":3392,"terminal":false,"missionId":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":4593,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":1656,"missionSetupMs":726,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":543,"ledgerReconcileMs":0,"lineageReconcileMs":183,"resolvePreflightMs":726,"repositoryMutationMs":2937,"repositoryProviderMs":2937,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2725,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":543,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":212},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime","visual"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3051,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:14:01.471097+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3392","receipt_type":"execute_mission","idempotency_key":"mission:aa1e2d83-22ea-4f99-84c0-58a4d960ae6a:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"628d0e01-b9cb-4cac-8f4d-134243a230ac","command_center_event_id":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a"},{"id":"5d07e221-5b2f-4141-af56-44ada44dd454","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-3d2ccf96f444","reason":"pull_request_checks_pending","status":"waiting_for_gate","metrics":{"receiptBytes":18297,"releaseCount":0,"toolCallCount":2,"repeatedCallCount":0,"executorlessWaitMs":1078,"firstUsefulResultAt":"2026-09-25T00:38:40.662Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.272-bare-continuation-before-source-resolution","prNumber":3691,"terminal":false,"missionId":"3d2ccf96-f444-4094-a9f9-46d64a26205d","operation":"execute_mission","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1588,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":528,"approvedPlanMs":0,"missionSetupMs":255,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":255,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":255,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":255,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request after the exact-head KnockLaunch Gate changes state.","receiptRef":{"mode":"full","missionId":"3d2ccf96-f444-4094-a9f9-46d64a26205d"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1968,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:38:48.86604+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"3691","receipt_type":"execute_mission","idempotency_key":"mission:3d2ccf96-f444-4094-a9f9-46d64a26205d:execute_mission:repair_mission_waiting_for_gate:current-generation","mission_step_id":"ffc3b3d2-5650-4025-b17d-3042914d0b76","command_center_event_id":"3d2ccf96-f444-4094-a9f9-46d64a26205d"},{"id":"e2e196a1-6055-4db7-a272-87ca3996dd58","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-a339bd3b3200","reason":"retryable_provider_transport:forgejo_provider_read_timeout","status":"retryable","metrics":{"receiptBytes":18252,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":0,"executorlessWaitMs":12842,"firstUsefulResultAt":"2026-09-25T13:48:30.999Z","recoveryAttemptCount":1,"ownerInterruptionCount":0},"version":null,"prNumber":3734,"terminal":false,"missionId":"a339bd3b-3200-4f8c-906b-6dc4fb6d2d59","operation":"automatic_mission_resume","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"prReadinessMs":5440,"approvedPlanMs":0,"shipAndProveMs":0,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"a339bd3b-3200-4f8c-906b-6dc4fb6d2d59"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime","runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":819,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T13:48:43.89205+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"3734","receipt_type":"automatic_mission_resume","idempotency_key":"mission:a339bd3b-3200-4f8c-906b-6dc4fb6d2d59:automatic-mission-resume:3734:repair_mission_pr_ready_retryable","mission_step_id":"c358c230-4281-4d09-9562-cda7829ee1b6","command_center_event_id":"a339bd3b-3200-4f8c-906b-6dc4fb6d2d59"},{"id":"2cb5fae8-8381-41bc-9dcb-bd2d60538409","source":"cc-execution","status":"verified","payload":{"ownerWaitSloMs":{"merge_to_live_ms":534134,"owner_action_to_pr_ms":55972,"green_gate_to_merge_ms":null,"owner_action_to_useful_response_ms":51224},"ownerWaitLiveAt":"2026-09-25T18:28:11.134Z"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T18:28:11.431214+00:00","proof_gate":"owner_wait_live_milestone_recorded","source_sha":null,"external_id":null,"receipt_type":"owner_wait_live_milestone","idempotency_key":"mission:503502db-5893-4e94-acfc-60206671793d:owner-wait-live","mission_step_id":"8bab7b7c-7e93-438d-a303-75dd8b0d373c","command_center_event_id":"503502db-5893-4e94-acfc-60206671793d"},{"id":"9bf95dd7-a40c-4ffd-a182-099c322b30e5","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-1","satisfied":true,"statement":"Fix the live public Big Papi's proposal signing page regression shown in the supplied screenshot. Scope is ONLY /sign-agreement public recipient experience. Requirements: (1) proposal/agreement document text must be fully legible with correct contrast; never dark text disappearing on the navy proposal background, (2) mobile document canvas must use the available viewport efficiently with minimal outer white framing/padding and a larger readable document scale, while preserving the proposal's actual design, (3) private/tenant fixed bottom navigation must NEVER render on /sign-agreement or other public recipient-facing agreement pages, (4) no content may sit behind any fixed controls, (5) preserve e-sign functionality, token flow, expiry display, recipient preview, and Big Papi's branding. Use the smallest safe diff. Verify specifically on the live token route /sign-agreement?token=1bcdb463c054097fdb55ef02c9ce6771c77be65402d9efbf02038be02e64936f at mobile viewport and ensure the bottom nav is absent and proposal title/body are visibly readable before completion.","proofConditionIds":["proof-production","proof-visual"]}],"satisfied":true,"constraints":[{"id":"visual-artifact-scope","satisfied":true,"statement":"The requested visual artifact type is authoritative: proposal only; must not include website, dashboard. Do not add unrelated or mixed visual surfaces unless the owner explicitly requested them.","proofConditionIds":["proof-production","proof-visual"]},{"id":"visual-content-truth","satisfied":true,"statement":"Do not present invented names, metrics, prices, dates, services, testimonials, credentials, customer records, or other unknown business facts as real. Omit unknowns or mark them clearly as placeholder/example content.","proofConditionIds":["proof-production","proof-visual"]},{"id":"tenant-visual-isolation","satisfied":true,"statement":"Visual work is isolated to requested tenant. Do not import another tenant's logo, colors, imagery, copy, shell, customer data, business facts, or visual identity unless explicitly requested.","proofConditionIds":["proof-production","proof-visual"]},{"id":"visual-viewport-authority","satisfied":true,"statement":"The requested mobile viewport/form factor is authoritative. Do not create a mixed-device composite or add another viewport unless explicitly requested.","proofConditionIds":["proof-production","proof-visual"]},{"id":"reference-visual-fidelity","satisfied":true,"statement":"The approved reference owns the material visual composition: hierarchy, major geometry, typography scale, spacing rhythm, image placement/crop, color treatment, radii, shadows/glow, and overall density. Material deviation is a failed visual acceptance, not a stylistic reinterpretation.","proofConditionIds":["proof-visual"]},{"id":"responsive-visual-continuity","satisfied":true,"statement":"Responsive adaptation may reflow for the target viewport, but it must preserve information hierarchy, branding, functionality, and design language. It must not invent a second design.","proofConditionIds":["proof-visual"]},{"id":"reference-visual-authority","satisfied":true,"statement":"The supplied or approved reference visual is immutable acceptance evidence. Generating another mockup, image, or concept cannot satisfy this implementation request; completion requires source implementation, deployment, and reference-matched visual proof.","proofConditionIds":["proof-visual"]},{"id":"capability-completeness","satisfied":true,"statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["proof-production"]},{"id":"atomic-capability-lifecycle","satisfied":true,"statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["proof-production"]}],"contractHash":"0fc42934a354ecfe370176e7d5300e23170503c28d6429cfebc664f3258f3d2a","releaseBound":true,"witnessBound":true,"visualRequested":true,"visualSatisfied":true,"conditionResults":[{"id":"proof-production","kind":"runtime","evidence":{"reason":null,"satisfied":true,"releaseState":"verified","missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{"frontend":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["frontend"],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"migrationReleaseVerified":null,"releaseRequestContractHash":"0fc42934a354ecfe370176e7d5300e23170503c28d6429cfebc664f3258f3d2a"},"required":true,"satisfied":true},{"id":"proof-visual","kind":"visual","evidence":{"modeBound":true,"claimBound":true,"routeBound":true,"witnessMode":"observe","witnessRoute":"/sign-agreement?token=1bcdb463c054097fdb55ef02c9ce6771c77be65402d9efbf02038be02e64936f","currentSourceSha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","witnessSourceSha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","verificationState":"verified","witnessRequestContractHash":"0fc42934a354ecfe370176e7d5300e23170503c28d6429cfebc664f3258f3d2a"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["frontend"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T18:29:35.209131+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:503502db-5893-4e94-acfc-60206671793d:request-contract:0fc42934a354ecfe370176e7d5300e23170503c28d6429cfebc664f3258f3d2a:675ad36dbeea7d3a779a04c99a4be66d069f3a14:verified:","mission_step_id":"8bab7b7c-7e93-438d-a303-75dd8b0d373c","command_center_event_id":"503502db-5893-4e94-acfc-60206671793d"},{"id":"63123203-075a-4c01-9668-bc9006dd7c00","source":"cc-execution","status":"blocked","payload":{"reason":"anchored_edit_anchor_missing:config/owner-context.json","fingerprint":"d7d175e105a94cd1871e9fc07effe368b37a2a4c4fadbb6ac1f0b084b4b666bf"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T02:15:39.177535+00:00","proof_gate":"repository_mutation_intent_deterministic_failure","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent_blocked","idempotency_key":"mission:9b6a73dc-6a7f-44b0-83f9-8188753d9c35:repository-mutation-intent-blocked:d7d175e105a94cd1871e9fc07effe368b37a2a4c4fadbb6ac1f0b084b4b666bf","mission_step_id":"77676610-8ab1-48da-a55c-03ba37412137","command_center_event_id":"9b6a73dc-6a7f-44b0-83f9-8188753d9c35"},{"id":"97984456-5d01-45a2-ab01-4e368202061e","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-521dd77e2ac1","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3390,"terminal":false,"missionId":"521dd77e-2ac1-4dc9-afef-3908b0e73b31","operation":"automatic_mission_resume","proofGate":"canonical_release_dispatched","sourceSha":"197e698d20a7b32cd4733c69322bcb3c68afe36d","timingsMs":{"prReadinessMs":407,"approvedPlanMs":0,"shipAndProveMs":2774,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"521dd77e-2ac1-4dc9-afef-3908b0e73b31"},"performance":null,"deploymentId":"forgejo-main-197e698d20a7","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1827,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:17:47.028791+00:00","proof_gate":"canonical_release_dispatched","source_sha":null,"external_id":"3390","receipt_type":"automatic_mission_resume","idempotency_key":"mission:521dd77e-2ac1-4dc9-afef-3908b0e73b31:automatic-mission-resume:3390:canonical_release_dispatched","mission_step_id":"41a08379-4956-48fc-a810-5842ad8340cb","command_center_event_id":"521dd77e-2ac1-4dc9-afef-3908b0e73b31"},{"id":"47c927d1-7c95-45c2-a4ad-6d6bf39a51f2","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Eliminate stale pull-request Gate status contamination and document the proven same-mission continuation recovery contract. Gate workflow must not execute its Gate job for closed pull-request events. Canonical prReady must validate Gate run identity against the exact PR number and head SHA using Forgejo Actions runs, recover to the matching exact-PR run when a status context points at another PR generation, and fail closed as pending when no matching run exists. Also add the mutationContinuationRecoveryPolicy manifest entry already proven by runtime 1.58.272. Add behavioral and structural regression coverage, Gate, squash merge, release cc-execution, and verify stale closed-PR status cannot poison a green current PR.","wordingChanged":false,"canonicalIntent":"Eliminate stale pull-request Gate status contamination and document the proven same-mission continuation recovery contract. Gate workflow must not execute its Gate job for closed pull-request events. Canonical prReady must validate Gate run identity against the exact PR number and head SHA using Forgejo Actions runs, recover to the matching exact-PR run when a status context points at another PR generation, and fail closed as pending when no matching run exists. Also add the mutationContinuationRecoveryPolicy manifest entry already proven by runtime 1.58.272. Add behavioral and structural regression coverage, Gate, squash merge, release cc-execution, and verify stale closed-PR status cannot poison a green current PR.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"stale-pr-gate-isolation","statement":"Closed pull-request events do not execute the canonical Gate job, and stale status contexts cannot poison or authorize a different current PR generation.","provenance":{"reason":null,"source":"explicit_request_contract","inherited":false,"blockingAuthority":true},"proofConditionIds":["gate-identity-runtime"]},{"id":"continuation-contract-documented","statement":"The proven bare same-mission continuation recovery ordering is explicit in the control-plane capability manifest.","provenance":{"reason":null,"source":"explicit_request_contract","inherited":false,"blockingAuthority":true},"proofConditionIds":["gate-identity-runtime"]}],"objective":"Eliminate stale pull-request Gate status contamination and document the proven same-mission continuation recovery contract. Gate workflow must not execute its Gate job for closed pull-request events. Canonical prReady must validate Gate run identity against the exact PR number and head SHA using Forgejo Actions runs, recover to the matching exact-PR run when a status context points at another PR generation, and fail closed as pending when no matching run exists. Also add the mutationContinuationRecoveryPolicy manifest entry already proven by runtime 1.58.272. Add behavioral and structural regression coverage, Gate, squash merge, release cc-execution, and verify stale closed-PR status cannot poison a green current PR.","constraints":[{"id":"fail-closed-no-matching-gate","statement":"If no exact matching Gate run exists for the current PR number and head SHA, merge readiness remains pending rather than accepting another PR generation's status.","provenance":{"reason":null,"source":"explicit_request_contract","inherited":false,"blockingAuthority":true},"proofConditionIds":["gate-identity-runtime"]},{"id":"capability-completeness","statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","provenance":{"reason":null,"source":"hard_safety_invariant","inherited":false,"blockingAuthority":true},"proofConditionIds":["gate-identity-runtime"]},{"id":"atomic-capability-lifecycle","statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","provenance":{"reason":null,"source":"hard_safety_invariant","inherited":false,"blockingAuthority":true},"proofConditionIds":["gate-identity-runtime"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"gate-identity-runtime","kind":"runtime","claim":"Production cc-execution runs identity-aware Gate readiness and closed PR events do not execute Gate jobs.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":["ccExecution"],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}],"validationErrors":[],"capabilityManifest":{"id":"Eliminate-stale-pull-request-Gate-status-contamination-and-document-the-proven-same-mission-continua","driftPolicy":"exact_manifest_source_release_dependency_or_runtime_identity_mismatch_is_nonterminal","proofLedger":"command_center_mission_ledger_request_contract_hash_bound","schemaVersion":1,"releaseTargets":["ccExecution"],"lifecycleStates":["prepare","deploy","verify","activate"],"activationPolicy":"dependencies_and_claim_matched_live_proof_before_exposure","dependencyDomains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_required_not_runtime_failures","compatibilityWindow":["N","N-1"],"failureIsolationPolicy":"quarantine_or_rollback_affected_capability_only_preserve_unrelated_working_capabilities","canaryProofConditionIds":["gate-identity-runtime"]},"capabilityCompleteness":{"domains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"required":true,"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_states_not_runtime_failures"}},"requestContractHash":"37b3e798826dfa1db184487b7302448681015352c60774e989ef4812ae92e5e4","requestContractRevision":2,"previousRequestContractHash":"30df1f627a4efe669b9a1b72a89459e5c7532d1109bf1840f7b7256c5eb04ae2"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:39:37.98366+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:3d2ccf96-f444-4094-a9f9-46d64a26205d:request-contract:37b3e798826dfa1db184487b7302448681015352c60774e989ef4812ae92e5e4","mission_step_id":"f9382d70-27c6-4191-9c31-44307165297d","command_center_event_id":"3d2ccf96-f444-4094-a9f9-46d64a26205d"},{"id":"dd9f578e-ac07-462f-a813-6dbcf33a519e","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-25f123a898ed","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":1687,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":"2026-09-28T16:43:40.249Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.302-paul-throughput-router","prNumber":null,"terminal":false,"missionId":"25f123a8-98ed-4b05-9789-eaef13a19b68","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1998,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":298,"providerAuthMs":0,"ledgerPrepareMs":298,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":298,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":298,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Inspect the bounded repository paths, synthesize exact files or anchored_edits, and call /mission/execute again automatically with this same missionId without another owner prompt or workflow switch.","receiptRef":{"mode":"full","missionId":"25f123a8-98ed-4b05-9789-eaef13a19b68"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":4027,"likelyAffectedFiles":["config/owner-context.json","config/paul-owner-profile.json"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T16:44:09.906384+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:25f123a8-98ed-4b05-9789-eaef13a19b68:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"ac24acc0-e9f6-4858-8848-dc7ef5789f46","command_center_event_id":"25f123a8-98ed-4b05-9789-eaef13a19b68"},{"id":"90934de9-042a-40bf-8ebb-7d40684cdb07","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-aa1e2d8322ea","reason":"pull_request_checks_pending","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3392,"terminal":false,"missionId":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a","operation":"automatic_mission_resume","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"prReadinessMs":428,"approvedPlanMs":0,"shipAndProveMs":0,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request after the exact-head KnockLaunch Gate changes state.","receiptRef":{"mode":"full","missionId":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1285,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:14:11.300041+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"3392","receipt_type":"automatic_mission_resume","idempotency_key":"mission:aa1e2d83-22ea-4f99-84c0-58a4d960ae6a:automatic-mission-resume:3392:repair_mission_waiting_for_gate","mission_step_id":"42615ca7-d29a-4624-9910-e5a1d5609814","command_center_event_id":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a"},{"id":"fad1d802-3f25-44e0-9b92-48f1adc40951","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-bdb936b2e84f","prNumber":3730,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"19b92779938b71f5375e2ec1641f83be3bc1489c","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T13:50:05.204613+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"19b92779938b71f5375e2ec1641f83be3bc1489c","external_id":"3730","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:bdb936b2-e84f-409b-98ae-f50b6415629c:merged-pr:3730:19b92779938b71f5375e2ec1641f83be3bc1489c","mission_step_id":"e8e3549d-fa21-4ca6-a049-d05f0a75c3d6","command_center_event_id":"bdb936b2-e84f-409b-98ae-f50b6415629c"},{"id":"c425cb0f-8ee9-4b31-ad17-5cf9b73a03b0","source":"onrunner","status":"verified","payload":{"ok":true,"jobId":"3623624f-886f-4e60-a2f9-a7b6ff111e49","phase":"universal_visual_witness_status","branch":"ai/objective-first-repair-503502db5893","reason":null,"status":"verification_pending","metrics":{"receiptBytes":33667,"releaseCount":0,"toolCallCount":17,"repeatedCallCount":6,"executorlessWaitMs":1490272,"firstUsefulResultAt":"2026-09-25T18:04:41.307Z","recoveryAttemptCount":5,"ownerInterruptionCount":0},"version":null,"prNumber":3753,"terminal":false,"missionId":"503502db-5893-4e94-acfc-60206671793d","operation":"visual_proof_status","proofGate":"interactive_visual_witness_verified","sourceSha":"675ad36dbeea7d3a779a04c99a4be66d069f3a14","timingsMs":{"queue":1152,"total":24776,"execution":23624},"nextAction":null,"receiptRef":{"mode":"full","missionId":"503502db-5893-4e94-acfc-60206671793d"},"performance":null,"deploymentId":"forgejo-main-675ad36dbeea","releaseState":"verified","visualWitness":{"role":"GodMode","jobId":"3623624f-886f-4e60-a2f9-a7b6ff111e49","tenant":null,"runnerUrl":"https://paul-witness.knocklaunch.app","runnerLane":"paul","attemptsUsed":1,"supervisorId":"3623624f-886f-4e60-a2f9-a7b6ff111e49","failureReason":null,"observedRoute":"/sign-agreement?token=1bcdb463c054097fdb55ef02c9ce6771c77be65402d9efbf02038be02e64936f","runnerVersion":"paul-8c6a52496642","attemptLineage":[{"jobId":"5b8a95cf-ff7e-444a-8748-06ddadf84988","attempt":1,"category":"verified","sourceSha":"8c6a52496642117d593928d4a926b161c464737d","startedAt":"2026-09-25T18:28:06.539Z","completedAt":"2026-09-25T18:28:31.353Z","runtimeLane":"cc-execution -> DigitalOcean PAUL -> universal-witness.mjs","browserEngine":"chromium","failureReason":null,"retryRecovery":null,"runnerVersion":"paul-8c6a52496642","browserLaunchReason":"virtual_runtime_headless","checkpointAccounting":{"route":{"required":1,"completed":1,"missingIds":[]},"action":{"required":0,"completed":0,"missingIds":[]},"missing":0,"resumed":0,"complete":true,"evidence":{"required":1,"completed":1,"missingIds":[]},"completed":2,"remaining":0,"duplicates":0,"duplicateIds":[],"expectedTotal":2}}],"missionOutcome":"verified","requestedRoute":"/sign-agreement?token=1bcdb463c054097fdb55ef02c9ce6771c77be65402d9efbf02038be02e64936f","runnerSourceSha":"8c6a52496642117d593928d4a926b161c464737d","selectedViewports":["mobile"],"checkpointAccounting":{"route":{"required":1,"completed":1,"missingIds":[]},"action":{"required":0,"completed":0,"missingIds":[]},"missing":0,"resumed":0,"complete":true,"evidence":{"required":1,"completed":1,"missingIds":[]},"completed":2,"remaining":0,"duplicates":0,"duplicateIds":[],"expectedTotal":2},"correctiveGeneration":0,"restartReplayHistory":[]},"workflowRunId":11859,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":13431,"ownerActionRequired":false,"ownerFacingTerminal":false,"requestContractHash":"0fc42934a354ecfe370176e7d5300e23170503c28d6429cfebc664f3258f3d2a","continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T18:29:33.673181+00:00","proof_gate":"interactive_visual_witness_verified","source_sha":"paul-8c6a52496642","external_id":"3623624f-886f-4e60-a2f9-a7b6ff111e49","receipt_type":"visual_proof_status","idempotency_key":"mission:503502db-5893-4e94-acfc-60206671793d:visual:3623624f-886f-4e60-a2f9-a7b6ff111e49:verified","mission_step_id":"945fdede-76af-494f-9a37-f0bcbf8b812d","command_center_event_id":"503502db-5893-4e94-acfc-60206671793d"},{"id":"bda83243-51f5-4787-871d-d44adbdf72ff","source":"cc-execution","status":"cancelled","payload":{"cancelled":true,"missionId":"a91a4902-9e21-4a51-8434-e1a7b6e3c7dc"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T02:25:51.638506+00:00","proof_gate":"durable_mission_cancelled","source_sha":null,"external_id":null,"receipt_type":"owner_mission_cancelled","idempotency_key":"mission:a91a4902-9e21-4a51-8434-e1a7b6e3c7dc:mission-cancel:a91a4902-9e21-4a51-8434-e1a7b6e3c7dc","mission_step_id":"6fab4f45-c138-4b66-95b7-9df5ffe674a3","command_center_event_id":"a91a4902-9e21-4a51-8434-e1a7b6e3c7dc"},{"id":"1e039a54-1ef8-420a-9a8c-754440029de8","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-0a3528e13e78","prNumber":4017,"nextAction":null,"mergeCommitSha":"5cb568df8bc8de82ac58ff32ee632b638272181f","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T16:43:51.975725+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"5cb568df8bc8de82ac58ff32ee632b638272181f","external_id":"4017","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:0a3528e1-3e78-4773-9aa8-366640078df3:merged-pr:4017:5cb568df8bc8de82ac58ff32ee632b638272181f","mission_step_id":"47af845b-e22f-4ac3-8a52-662bb91aa8e1","command_center_event_id":"0a3528e1-3e78-4773-9aa8-366640078df3"},{"id":"c23e2492-6f74-4f10-b201-f55d39219d46","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"197e698d20a7b32cd4733c69322bcb3c68afe36d","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"197e698d20a7b32cd4733c69322bcb3c68afe36d","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"pending"},"requestContractHash":"d6ffd7173b64355d63dce40928b6cba776bd4c0dbffdc6ad60b9c89e459bd3bf","forgejoWorkflowProof":{"runId":10661,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"frontend":"pending"},"targetJobCount":7,"observedTargetStates":{"frontend":"pending"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:17:48.37939+00:00","proof_gate":"canonical_release_pending","source_sha":"197e698d20a7b32cd4733c69322bcb3c68afe36d","external_id":"forgejo-main-197e698d20a7","receipt_type":"canonical_release_status","idempotency_key":"mission:521dd77e-2ac1-4dc9-afef-3908b0e73b31:forgejo-release-status:197e698d20a7b32cd4733c69322bcb3c68afe36d:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"41a08379-4956-48fc-a810-5842ad8340cb","command_center_event_id":"521dd77e-2ac1-4dc9-afef-3908b0e73b31"},{"id":"20b175b0-8c17-4805-aa62-fca23f65cd29","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-aa1e2d8322ea","reason":"pull_request_stale_refresh_required","status":"retryable","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3392,"terminal":false,"missionId":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a","operation":"automatic_mission_resume","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"prReadinessMs":10710,"approvedPlanMs":0,"shipAndProveMs":0,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":2331,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:26:42.847394+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"3392","receipt_type":"automatic_mission_resume","idempotency_key":"mission:aa1e2d83-22ea-4f99-84c0-58a4d960ae6a:automatic-mission-resume:3392:repair_mission_pr_ready_retryable","mission_step_id":"42615ca7-d29a-4624-9910-e5a1d5609814","command_center_event_id":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a"},{"id":"fd55298f-f23d-4a4b-932d-9c2332c5816f","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-aa1e2d8322ea","reason":"explicit_pull_request_identity_mismatch:3392","status":"blocked","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":3392,"terminal":false,"missionId":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":601,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":601,"missionSetupMs":1585,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":401,"ledgerReconcileMs":0,"lineageReconcileMs":1184,"resolvePreflightMs":1585,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":401,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime","visual"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1472,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:12:46.955684+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:aa1e2d83-22ea-4f99-84c0-58a4d960ae6a:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"628d0e01-b9cb-4cac-8f4d-134243a230ac","command_center_event_id":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a"},{"id":"27f07c1f-6b95-4058-97dd-285c0c3ca817","source":"cc-execution","status":"authorized","payload":{"paths":[".forgejo/workflows/knocklaunch.yml","workers/cc-execution/test/release-orchestration-invariants.test.js"],"reason":"Correct stale-event isolation at the Gate job boundary while preserving identity-aware merge readiness.","baseSha":"361ccbef4678184e6e2d358524ee51b34096ab98","issuedAt":1790296778454,"expiresAt":1790296958454,"missionId":"3d2ccf96-f444-4094-a9f9-46d64a26205d","authorizationId":"4aabb095-cb12-4ce4-8554-26b111a6c6f9","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:39:38.773984+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"361ccbef4678184e6e2d358524ee51b34096ab98","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:4aabb095-cb12-4ce4-8554-26b111a6c6f9","mission_step_id":"4254a366-eb8e-40ca-9bb7-7b8803053f86","command_center_event_id":"3d2ccf96-f444-4094-a9f9-46d64a26205d"},{"id":"d61a6ac2-81ef-4729-900e-ab4044353f26","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-3d2ccf96f444","reason":"anchored_edit_anchor_not_unique:.forgejo/workflows/knocklaunch.yml","status":"blocked","metrics":{"receiptBytes":22340,"releaseCount":0,"toolCallCount":4,"repeatedCallCount":0,"executorlessWaitMs":8165,"firstUsefulResultAt":"2026-09-25T00:38:40.662Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.272-bare-continuation-before-source-resolution","prNumber":3691,"terminal":false,"missionId":"3d2ccf96-f444-4094-a9f9-46d64a26205d","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1805,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":1805,"missionSetupMs":819,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":676,"ledgerReconcileMs":0,"lineageReconcileMs":143,"resolvePreflightMs":819,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":676,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"3d2ccf96-f444-4094-a9f9-46d64a26205d"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1515,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:39:40.60952+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":"3691","receipt_type":"execute_mission","idempotency_key":"mission:3d2ccf96-f444-4094-a9f9-46d64a26205d:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"f9382d70-27c6-4191-9c31-44307165297d","command_center_event_id":"3d2ccf96-f444-4094-a9f9-46d64a26205d"},{"id":"151e1a84-ab60-4172-8181-1a5d858348af","source":"cc-execution","status":"source_resolution_required","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-374a132f7416","reason":null,"status":"source_resolution_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":null,"terminal":false,"missionId":"374a132f-7416-4037-b722-336271dc5168","operation":"execute_mission","proofGate":"repair_mission_source_resolution_required","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":73,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":516,"providerAuthMs":0,"ledgerPrepareMs":462,"ledgerReconcileMs":0,"lineageReconcileMs":54,"resolvePreflightMs":516,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":462,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Resolve bounded authoritative Forgejo source targets, then call /mission/execute again with this same missionId and exact files or anchored_edits. Do not switch workflows.","receiptRef":{"mode":"full","missionId":"374a132f-7416-4037-b722-336271dc5168"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":2447,"likelyAffectedFiles":[],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:29:21.033257+00:00","proof_gate":"repair_mission_source_resolution_required","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:374a132f-7416-4037-b722-336271dc5168:execute_mission:repair_mission_source_resolution_required:current-generation","mission_step_id":"c7b58d21-80d4-4349-8e20-2b20f4e8f899","command_center_event_id":"374a132f-7416-4037-b722-336271dc5168"},{"id":"d148f55d-c726-4cbe-bf2b-c474ffee30e1","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-d0272ffcd299","writes":[],"patches":[],"version":1,"approved":true,"missionId":"d0272ffc-d299-4238-8ad2-8de8b033e23a","objective":"Eliminate stale pull-request Gate status contamination and document the proven same-mission continuation recovery contract. The Gate job must run only for open pull requests. Canonical prReady must validate the Gate status run against the exact PR number and head SHA using Forgejo Actions runs, recover to the matching exact-PR run when commit status points at another PR generation, and remain pending when no matching run exists. Add the mutationContinuationRecoveryPolicy manifest entry already proven by runtime 1.58.272. Add behavioral and structural regression coverage, Gate, squash merge, release cc-execution, and verify stale closed-PR status cannot poison a green current PR.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":[".forgejo/workflows/knocklaunch.yml","workers/cc-execution/src/index-release-fast-lane.js","workers/cc-execution/test/release-orchestration-invariants.test.js","config/control-plane-capabilities.json","workers/cc-execution/src/version.js"],"anchored_edits":[{"path":".forgejo/workflows/knocklaunch.yml","edits":[{"new_content":"  gate:\n    name: ${{ github.event_name == 'pull_request' && contains(github.event.pull_request.body, '<!-- knocklaunch:serverless-fast-gate -->') && 'Serverless Fast Gate (runner bypass)' || 'KnockLaunch Gate' }}\n    if: ${{ github.event_name == 'pull_request' && github.event.pull_request.state == 'open' && !contains(github.event.pull_request.body, '<!-- knocklaunch:serverless-fast-gate -->') }}\n    concurrency:","old_content":"  gate:\n    name: ${{ github.event_name == 'pull_request' && contains(github.event.pull_request.body, '<!-- knocklaunch:serverless-fast-gate -->') && 'Serverless Fast Gate (runner bypass)' || 'KnockLaunch Gate' }}\n    if: ${{ github.event_name == 'pull_request' && !contains(github.event.pull_request.body, '<!-- knocklaunch:serverless-fast-gate -->') }}\n    concurrency:"}]},{"path":"workers/cc-execution/src/index-release-fast-lane.js","edits":[{"new_content":"    headSha: String(run?.commit_sha || run?.head_sha || run?.headSha || run?.sha || \"\").trim() || null,\n    headBranch: String(run?.head_branch || run?.headBranch || run?.prettyref || run?.pretty_ref || run?.branch || \"\").replace(/^refs\\/heads\\//, \"\") || null,","old_content":"    headSha: String(run?.commit_sha || run?.head_sha || run?.headSha || run?.sha || \"\").trim() || null,\n    headBranch: String(run?.head_branch || run?.prettyref || run?.pretty_ref || run?.branch || \"\").replace(/^refs\\/heads\\//, \"\") || null,"},{"new_content":"}\n\nexport function gateRunMatchesPullRequest(run = {}, prNumber = null, headSha = \"\", branchName = \"\") {\n  const identity = runIdentity(run);\n  const expectedPrNumber = Number(prNumber || 0);\n  const expectedSha = String(headSha || \"\").trim();\n  const expectedBranch = String(branchName || \"\").trim();\n  if (!Number.isInteger(expectedPrNumber) || expectedPrNumber < 1 || !expectedSha) return false;\n  if (identity.event !== \"pull_request\" || identity.headSha !== expectedSha) return false;\n  return identity.headBranch === `#${expectedPrNumber}` || Boolean(expectedBranch && identity.headBranch === expectedBranch);\n}\n\nfunction mergeQueueScope(paths = []) {","old_content":"}\n\nfunction mergeQueueScope(paths = []) {"},{"new_content":"  const [base, combinedStatus, runsPayload] = await Promise.all([\n    trustedCurrentBaseSha\n      ? Promise.resolve(null)\n      : forgejo(env, repository, \"GET\", `/branches/${encodeURIComponent(String(pull?.base?.ref || \"main\"))}`, null, false, readyTimeout()),\n    headSha\n      ? forgejo(env, repository, \"GET\", `/commits/${encodeURIComponent(headSha)}/status`, null, false, readyTimeout())\n      : Promise.resolve(null),\n    forgejo(env, repository, \"GET\", \"/actions/runs?limit=30\", null, false, readyTimeout()),\n  ]);","old_content":"  const [base, combinedStatus] = await Promise.all([\n    trustedCurrentBaseSha\n      ? Promise.resolve(null)\n      : forgejo(env, repository, \"GET\", `/branches/${encodeURIComponent(String(pull?.base?.ref || \"main\"))}`, null, false, readyTimeout()),\n    headSha\n      ? forgejo(env, repository, \"GET\", `/commits/${encodeURIComponent(headSha)}/status`, null, false, readyTimeout())\n      : Promise.resolve(null),\n  ]);"},{"new_content":"  const exactGateState = String(exactGateStatus?.status || \"\").toLowerCase();\n  const exactGateTargetUrl = String(exactGateStatus?.target_url || exactGateStatus?.url || \"\");\n  const exactGateRunMatch = exactGateTargetUrl.match(/\\/actions\\/runs\\/(\\d+)/);\n  const actionRuns = actionRunsFrom(runsPayload, 30).map(runIdentity);\n  const exactStatusRunId = exactGateRunMatch ? Number(exactGateRunMatch[1]) : null;\n  const exactStatusRun = exactStatusRunId ? actionRuns.find((run) => run.runId === exactStatusRunId) || null : null;\n  const matchingGateRuns = actionRuns\n    .filter((run) => gateRunMatchesPullRequest(run, prNumber, headSha, branchName))\n    .sort((left, right) => Number(right?.runId || 0) - Number(left?.runId || 0));\n  let latestGate = exactGateStatus ? {","old_content":"  const exactGateState = String(exactGateStatus?.status || \"\").toLowerCase();\n  const exactGateTargetUrl = String(exactGateStatus?.target_url || exactGateStatus?.url || \"\");\n  const exactGateRunMatch = exactGateTargetUrl.match(/\\/actions\\/runs\\/(\\d+)/);\n  let latestGate = exactGateStatus ? {"},{"new_content":"  if (!latestGate && combinedState) {\n    latestGate = {\n      runId: null,\n      runAttempt: null,\n      status: combinedState,\n      conclusion: combinedState === \"success\" ? \"success\" : null,\n      event: \"pull_request\",\n      headSha,\n      headBranch: branchName,\n      workflow: \"knocklaunch.yml\",\n      title: \"KnockLaunch Gate combined commit status\",\n      createdAt: null,\n      updatedAt: null,\n      url: null,\n      evidenceSource: \"forgejo_combined_commit_status\",\n    };\n  }\n  const exactStatusIdentityMatches = exactStatusRun\n    ? gateRunMatchesPullRequest(exactStatusRun, prNumber, headSha, branchName)\n    : false;\n  if (!exactStatusIdentityMatches) {\n    const matchingGateRun = matchingGateRuns[0] || null;\n    latestGate = matchingGateRun\n      ? { ...matchingGateRun, evidenceSource: \"forgejo_actions_exact_pr_identity_recovered\", staleStatusRunId: exactStatusRunId }\n      : { ...(latestGate || {}), status: \"pending\", conclusion: null, evidenceSource: \"forgejo_stale_gate_status_identity_ignored\", staleStatusRunId: exactStatusRunId };\n  } else if (exactStatusRun) {\n    latestGate = { ...latestGate, ...exactStatusRun, evidenceSource: \"forgejo_exact_status_run_identity_verified\" };\n  }\n  const gateState = String(latestGate?.conclusion || latestGate?.status || \"missing\").toLowerCase();","old_content":"  if (!latestGate && combinedState) {\n    latestGate = {\n      runId: null,\n      runAttempt: null,\n      status: combinedState,\n      conclusion: combinedState === \"success\" ? \"success\" : null,\n      event: \"pull_request\",\n      headSha,\n      headBranch: branchName,\n      workflow: \"knocklaunch.yml\",\n      title: \"KnockLaunch Gate combined commit status\",\n      createdAt: null,\n      updatedAt: null,\n      url: null,\n      evidenceSource: \"forgejo_combined_commit_status\",\n    };\n  }\n  const gateState = String(latestGate?.conclusion || latestGate?.status || \"missing\").toLowerCase();"}]},{"path":"config/control-plane-capabilities.json","edits":[{"new_content":"    \"mutationContinuationPolicy\": \"reuse_execute_objective_same_mission\",\n    \"mutationContinuationRecoveryPolicy\": \"bare_same_mission_continuation_without_explicit_mutation_payload_recovers_authoritative_pr_lineage_or_persisted_repository_mutation_intent_from_compact_context_then_full_durable_receipt_before_source_resolution_required_only_genuinely_unscoped_continuations_fail_closed\",\n    \"missionLedgerInfrastructureFailurePolicy\": \"nonfatal_for_authorized_repository_mutation\",","old_content":"    \"mutationContinuationPolicy\": \"reuse_execute_objective_same_mission\",\n    \"missionLedgerInfrastructureFailurePolicy\": \"nonfatal_for_authorized_repository_mutation\","}]},{"path":"workers/cc-execution/test/release-orchestration-invariants.test.js","edits":[{"new_content":"import { actionLogLineIsFailure, canonicalTenantProductSourceSeeds, gateFailureLooksTransientInfrastructure, gateRunMatchesPullRequest } from \"../src/index-release-fast-lane.js\";","old_content":"import { actionLogLineIsFailure, canonicalTenantProductSourceSeeds, gateFailureLooksTransientInfrastructure } from \"../src/index-release-fast-lane.js\";"},{"new_content":"test(\"Gate run identity cannot cross-contaminate pull request generations\", () => {\n  const sha = \"a\".repeat(40);\n  assert.equal(gateRunMatchesPullRequest({ event: \"pull_request\", headSha: sha, headBranch: \"#3690\" }, 3690, sha, \"ai/current\"), true);\n  assert.equal(gateRunMatchesPullRequest({ event: \"pull_request\", headSha: sha, headBranch: \"ai/current\" }, 3690, sha, \"ai/current\"), true);\n  assert.equal(gateRunMatchesPullRequest({ event: \"pull_request\", headSha: \"b\".repeat(40), headBranch: \"#3690\" }, 3690, sha, \"ai/current\"), false);\n  assert.equal(gateRunMatchesPullRequest({ event: \"pull_request\", headSha: sha, headBranch: \"#3689\" }, 3690, sha, \"ai/current\"), false);\n});\n\ntest(\"action log parser keeps successful structured proof receipts out of failureLines\", () => {","old_content":"test(\"action log parser keeps successful structured proof receipts out of failureLines\", () => {"},{"new_content":"  assert.match(workflowSource, /'KnockLaunch Gate'/);\n  assert.match(workflowSource, /github\\.event\\.pull_request\\.state == 'open'/);\n});","old_content":"  assert.match(workflowSource, /'KnockLaunch Gate'/);\n});"},{"new_content":"  assert.ok(readinessBudgetMs >= readinessReadMs * 2);\n  assert.match(releaseFastLane, /forgejo_actions_exact_pr_identity_recovered/);\n  assert.match(releaseFastLane, /forgejo_stale_gate_status_identity_ignored/);\n});","old_content":"  assert.ok(readinessBudgetMs >= readinessReadMs * 2);\n});"},{"new_content":"  assert.match(config.efficiency.mutationContinuationRecoveryPolicy, /full_durable_receipt_before_source_resolution_required/);\n  assert.match(config.efficiency.mutationContinuationRecoveryPolicy, /genuinely_unscoped_continuations_fail_closed/);\n  assert.equal(config.efficiency.repositorySourceContentCacheTtlSeconds, 3600);","old_content":"  assert.equal(config.efficiency.repositorySourceContentCacheTtlSeconds, 3600);"}]},{"path":"workers/cc-execution/src/version.js","edits":[{"new_content":"export const CC_EXECUTION_VERSION = \"1.58.273-stale-pr-gate-identity\";","old_content":"export const CC_EXECUTION_VERSION = \"1.58.272-bare-continuation-before-source-resolution\";"}]}],"implementation":{"files":[],"writes":[]},"requestContract":{"outcomes":[{"id":"stale-pr-gate-isolation","statement":"Closed pull-request events do not execute the canonical Gate job, and stale status contexts cannot poison or authorize a different current PR generation.","proofConditionIds":["gate-identity-runtime"]},{"id":"continuation-contract-documented","statement":"The proven bare same-mission continuation recovery ordering is explicit in the control-plane capability manifest.","proofConditionIds":["gate-identity-runtime"]}],"objective":"Eliminate stale pull-request Gate status contamination and document the proven same-mission continuation recovery contract. The Gate job must run only for open pull requests. Canonical prReady must validate the Gate status run against the exact PR number and head SHA using Forgejo Actions runs, recover to the matching exact-PR run when commit status points at another PR generation, and remain pending when no matching run exists. Add the mutationContinuationRecoveryPolicy manifest entry already proven by runtime 1.58.272. Add behavioral and structural regression coverage, Gate, squash merge, release cc-execution, and verify stale closed-PR status cannot poison a green current PR.","constraints":[{"id":"fail-closed-no-matching-gate","statement":"If no exact matching Gate run exists for the current PR number and head SHA, merge readiness remains pending rather than accepting another PR generation's status.","proofConditionIds":["gate-identity-runtime"]}],"proofConditions":[{"id":"gate-identity-runtime","kind":"runtime","claim":"Production cc-execution runs identity-aware Gate readiness and closed PR events do not execute Gate jobs.","required":true,"requiredReleaseTargets":["ccExecution"]}]},"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":null,"ownerApproved":true,"releaseIntent":null,"sourceTargets":[".forgejo/workflows/knocklaunch.yml","workers/cc-execution/src/index-release-fast-lane.js","workers/cc-execution/test/release-orchestration-invariants.test.js","config/control-plane-capabilities.json","workers/cc-execution/src/version.js"],"requestContract":{"outcomes":[{"id":"stale-pr-gate-isolation","statement":"Closed pull-request events do not execute the canonical Gate job, and stale status contexts cannot poison or authorize a different current PR generation.","proofConditionIds":["gate-identity-runtime"]},{"id":"continuation-contract-documented","statement":"The proven bare same-mission continuation recovery ordering is explicit in the control-plane capability manifest.","proofConditionIds":["gate-identity-runtime"]}],"objective":"Eliminate stale pull-request Gate status contamination and document the proven same-mission continuation recovery contract. The Gate job must run only for open pull requests. Canonical prReady must validate the Gate status run against the exact PR number and head SHA using Forgejo Actions runs, recover to the matching exact-PR run when commit status points at another PR generation, and remain pending when no matching run exists. Add the mutationContinuationRecoveryPolicy manifest entry already proven by runtime 1.58.272. Add behavioral and structural regression coverage, Gate, squash merge, release cc-execution, and verify stale closed-PR status cannot poison a green current PR.","constraints":[{"id":"fail-closed-no-matching-gate","statement":"If no exact matching Gate run exists for the current PR number and head SHA, merge readiness remains pending rather than accepting another PR generation's status.","proofConditionIds":["gate-identity-runtime"]}],"proofConditions":[{"id":"gate-identity-runtime","kind":"runtime","claim":"Production cc-execution runs identity-aware Gate readiness and closed PR events do not execute Gate jobs.","required":true,"requiredReleaseTargets":["ccExecution"]}]},"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[".forgejo/workflows/knocklaunch.yml","workers/cc-execution/src/index-release-fast-lane.js","workers/cc-execution/test/release-orchestration-invariants.test.js","config/control-plane-capabilities.json","workers/cc-execution/src/version.js"],"controlPlaneMaintenanceReason":"Prevent closed/stale pull-request events and statuses from contaminating canonical Gate readiness for a different current PR generation."},"proofRequirements":null,"controlPlaneUnfreeze":true,"durableMutationResume":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[".forgejo/workflows/knocklaunch.yml","workers/cc-execution/src/index-release-fast-lane.js","workers/cc-execution/test/release-orchestration-invariants.test.js","config/control-plane-capabilities.json","workers/cc-execution/src/version.js"],"controlPlaneMaintenanceReason":"Prevent closed/stale pull-request events and statuses from contaminating canonical Gate readiness for a different current PR generation."},"recovery":false,"fingerprint":"c74a9f24686c9bf6cf55004ebe9bc241736eb33734e42b1a39c26a4638fd78dc","replayCount":0,"serializedBytes":16062},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:40:19.185007+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:d0272ffc-d299-4238-8ad2-8de8b033e23a:repository-mutation-intent:c74a9f24686c9bf6cf55004ebe9bc241736eb33734e42b1a39c26a4638fd78dc:0","mission_step_id":"0dc6a49a-b676-45d1-80db-25567a542fd3","command_center_event_id":"d0272ffc-d299-4238-8ad2-8de8b033e23a"},{"id":"2b434089-335e-4a52-a3e4-edac0a2a6344","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-374a132f7416","reason":"control_plane_maintenance_authorization_required","status":"blocked","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":null,"terminal":false,"missionId":"374a132f-7416-4037-b722-336271dc5168","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":0,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":0,"missionSetupMs":251,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":251,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":251,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":251,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"374a132f-7416-4037-b722-336271dc5168"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1557,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:30:28.59252+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:374a132f-7416-4037-b722-336271dc5168:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"3e8e10f5-0ea1-4548-9d20-02835a959cec","command_center_event_id":"374a132f-7416-4037-b722-336271dc5168"},{"id":"6c63aee1-594f-41d8-8f3e-e17c78362c18","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-d0272ffcd299","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":16852,"releaseCount":0,"toolCallCount":2,"repeatedCallCount":0,"executorlessWaitMs":1232,"firstUsefulResultAt":"2026-09-25T00:40:19.137Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.272-bare-continuation-before-source-resolution","prNumber":3692,"terminal":false,"missionId":"d0272ffc-d299-4238-8ad2-8de8b033e23a","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":6342,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":2356,"missionSetupMs":260,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":260,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":260,"repositoryMutationMs":2701,"repositoryProviderMs":2701,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2433,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":260,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":268},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"d0272ffc-d299-4238-8ad2-8de8b033e23a"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3738,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:40:26.966086+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3692","receipt_type":"execute_mission","idempotency_key":"mission:d0272ffc-d299-4238-8ad2-8de8b033e23a:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"0dc6a49a-b676-45d1-80db-25567a542fd3","command_center_event_id":"d0272ffc-d299-4238-8ad2-8de8b033e23a"},{"id":"cbe45763-7f22-4236-b4d1-bdfe5feac693","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","supabase-edge-production/live":"success"},"mainSha":"285ddf40ce7039e8433669874cd97a9822f953cd","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","supabase-edge-production/live"],"sourceSha":"285ddf40ce7039e8433669874cd97a9822f953cd","releaseState":"verified","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":true,"edgeFunctionSlugs":["agreement-sign"]},"releaseTargetStates":{"supabaseEdge":"success"},"requestContractHash":"23c4a222d090f2b1008f9389f8fd4c2fd56f6e81ea2aef57a3b3b77f9e92ca41","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/11883","runId":11883,"status":"success","sourceSha":"285ddf40ce7039e8433669874cd97a9822f953cd","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true,"targetStates":{"supabaseEdge":"success"},"targetJobCount":7,"observedTargetStates":{"supabaseEdge":"success"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T20:34:46.912121+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"285ddf40ce7039e8433669874cd97a9822f953cd","external_id":"forgejo-main-285ddf40ce70","receipt_type":"canonical_release_status","idempotency_key":"mission:db10efe7-749f-4e6c-94b6-6a8bab6f6aae:forgejo-release-status:285ddf40ce7039e8433669874cd97a9822f953cd:verified:forgejo-main/source=success|forgejo-release/workflow=success|supabase-edge-production/live=success","mission_step_id":"55dbdc17-cfc1-4e7a-b87a-95c34aac369e","command_center_event_id":"db10efe7-749f-4e6c-94b6-6a8bab6f6aae"},{"id":"b31efe97-5358-4228-84f2-c136e18c6cc2","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"5cb568df8bc8de82ac58ff32ee632b638272181f","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"runner-throughput","satisfied":true,"statement":"Gate selects idle owner heavy capacity in MSI-then-laptop order with thermal caps before docker-8g fallback.","proofConditionIds":["proof"]},{"id":"knowledge-throughput","satisfied":true,"statement":"Stable KNOCKLAUNCH knowledge turns preload owner_operating_context and remove repository, mutation-mission, duplicate owner-context, and Witness tools from that turn.","proofConditionIds":["proof"]}],"satisfied":true,"constraints":[{"id":"fallback","satisfied":true,"statement":"docker-8g remains fail-safe Gate fallback and frontend release remains on docker-8g.","proofConditionIds":["proof"]},{"id":"no-witness","satisfied":true,"statement":"No Visual Witness run is required or authorized for this non-visual repair.","proofConditionIds":["proof"]},{"id":"capability-completeness","satisfied":true,"statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["proof"]},{"id":"atomic-capability-lifecycle","satisfied":true,"statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["proof"]}],"contractHash":"36a98e64ccda28662726c1cde2e6e9ef86727bf9b4d4c0f4739e1b29970b5a38","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"proof","kind":"runtime","evidence":{"reason":null,"satisfied":true,"releaseState":"verified","missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{"supabaseEdge":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["supabaseEdge"],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"migrationReleaseVerified":null,"releaseRequestContractHash":"36a98e64ccda28662726c1cde2e6e9ef86727bf9b4d4c0f4739e1b29970b5a38"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["supabaseEdge"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T16:43:59.203586+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"5cb568df8bc8de82ac58ff32ee632b638272181f","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:0a3528e1-3e78-4773-9aa8-366640078df3:request-contract:36a98e64ccda28662726c1cde2e6e9ef86727bf9b4d4c0f4739e1b29970b5a38:5cb568df8bc8de82ac58ff32ee632b638272181f:verified:","mission_step_id":"e9125702-9623-4c4c-acfd-72d1478e1adb","command_center_event_id":"0a3528e1-3e78-4773-9aa8-366640078df3"},{"id":"3d5e1dfe-45cd-4541-87ef-923470469c78","source":"cc-execution","status":"authorized","payload":{"paths":[".forgejo/workflows/knocklaunch.yml","config/control-plane-capabilities.json","workers/cc-execution/src/index-release-fast-lane.js","workers/cc-execution/src/version.js","workers/cc-execution/test/release-orchestration-invariants.test.js"],"reason":"Prevent closed/stale pull-request events and statuses from contaminating canonical Gate readiness for a different current PR generation.","baseSha":"361ccbef4678184e6e2d358524ee51b34096ab98","issuedAt":1790296819999,"expiresAt":1790296999999,"missionId":"d0272ffc-d299-4238-8ad2-8de8b033e23a","authorizationId":"1b76aeb6-f68e-48d0-8443-70704831441d","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:40:20.549266+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"361ccbef4678184e6e2d358524ee51b34096ab98","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:1b76aeb6-f68e-48d0-8443-70704831441d","mission_step_id":"2c6a9359-7f9b-4ea9-839c-da895af2f36a","command_center_event_id":"d0272ffc-d299-4238-8ad2-8de8b033e23a"},{"id":"02c05669-0c6b-4f13-90e6-17659fc9bcb1","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[{"path":"config/control-plane-restore-point.json","content":"{\n  \"schemaVersion\": 2,\n  \"kind\": \"canonical_control_plane_system_architecture_restore_point\",\n  \"name\": \"KNOCKLAUNCH Golden Restore Point — 2026-09-25 Witness Lane Affinity + PAUL Stable\",\n  \"createdAt\": \"2026-09-25T13:52:49.000Z\",\n  \"repository\": \"noel/KnockLaunchOS\",\n  \"provider\": \"forgejo\",\n  \"supersedes\": {\n    \"name\": \"KNOCKLAUNCH Golden Restore Point — 2026-09-25 Witness Lockdown Stable\",\n    \"protectedMainSha\": \"bf2a8e9c4206c491a249c02db298682850f49581\"\n  },\n  \"restoreTarget\": {\n    \"architectureSourceSha\": \"427dccc5169571a7d22dcfb7aed1cd59f3944062\",\n    \"protectedMainSha\": \"427dccc5169571a7d22dcfb7aed1cd59f3944062\",\n    \"snapshotSemantics\": \"September 25 best-known-good KNOCKLAUNCH architecture captured after the Visual Witness durability lockdown, unconditional golden-restore Gate enforcement, cross-lane supervisor affinity repair, cc-execution release convergence repair, and successful PAUL bearer re-pair. Protected main is pinned to the exact architecture source. Runtime identities are intentionally affected-target-specific: cc-execution and the Cloudflare virtual witness are proven on the latest source that changed their target, while Render OnRunner and PAUL are proven on the latest hosted-runner source because later commits did not change the hosted witness image. Restore verification must preserve this target ownership instead of forcing unrelated runtime redeploys. Visual Witness terminal success is durable and monotonic; verified attempts terminalize after restart; checkpoints are exact-source bound; explicit viewports remain authoritative; full hosted-runner checks and the canonical restore validator are unconditional Gate hard safety; cross-lane supervisor state is lane-affine; PAUL remains a fresh scheduler-isolated witness with no autonomous repair authority; and release convergence remains fail-closed with bounded rollback. Recovery preserves tenant/product source, database records, migration history, protected main, and the Restore Points harness.\",\n    \"commandCenter\": {\n      \"service\": \"cc-execution\",\n      \"version\": \"1.58.281-witness-lane-affinity\",\n      \"sourceSha\": \"ceba05bb572484594ef1854514c7a8c39dc72351\",\n      \"deploymentId\": \"forgejo-main-ceba05bb572484594ef1854514c7a8c39dc72351\",\n      \"buildId\": \"forgejo-ceba05bb5724-11808-1\",\n      \"status\": \"live\"\n    }\n  },\n  \"architectureInvariants\": {\n    \"canonicalRepository\": \"forgejo_only\",\n    \"controlPlane\": \"KNOCKLAUNCH_Command_Center\",\n    \"publicRepositoryMutationLane\": \"execute_objective\",\n    \"publicRepositoryMutationToolCount\": 1,\n    \"protectedMain\": true,\n    \"pullRequestGate\": \"KnockLaunch Gate\",\n    \"gateIdentity\": \"exact_pr_head\",\n    \"mergeStrategy\": \"forgejo_squash_after_exact_green_gate\",\n    \"automaticMergeAuthorization\": \"explicitly_armed_pull_request_only\",\n    \"pendingGateNativeAutoMergeAllowed\": false,\n    \"releasePolicy\": \"affected_targets_only\",\n    \"githubWorkflowBudget\": 0,\n    \"githubFallbackAllowed\": false,\n    \"requestContract\": \"explicit_mutation_authority_with_hash_bound_terminal_reconciliation\",\n    \"requestContractRepositoryProof\": \"exact_merged_pr_gate_hash_bound_verified_receipt\",\n    \"missionLedgerTerminalization\": \"terminal_final_receipt_immutable_to_later_appends\",\n    \"correctiveGenerationIdentity\": \"effective_generation_stamped_and_stale_lower_generation_context_rejected\",\n    \"controlPlaneMaintenance\": \"default_deny_protected_paths_with_exact_mission_path_main_sha_single_use_authorization\",\n    \"forgejoReads\": \"bounded_retry_budgeted\",\n    \"forgejoPullCollectionPolicy\": \"explicit_collection_single_12s_attempt_recurring_queue_issue_index_one_exact_pr_per_tick\",\n    \"repositoryInspectTransportPolicy\": \"sequential_bounded_reads_with_structured_retryable_transport_failures\",\n    \"prReadinessTotalBudgetMs\": 15000,\n    \"gateSchedulerConcurrency\": \"one_active_generation_per_pull_request_cancel_superseded\",\n    \"gateHardTimeoutMinutes\": 10,\n    \"staleRunCleanup\": true,\n    \"maxTransientGateReruns\": 1,\n    \"currentMainFreshnessRequired\": true,\n    \"atomicRepositoryMutation\": true,\n    \"ambiguousWriteReconciliation\": true,\n    \"durableMissionLedger\": true,\n    \"releaseIdentity\": \"immutable_exact_source_sha\",\n    \"releaseProgressDurability\": \"per_target_monotonic_success_across_interrupted_enclosing_workflows\",\n    \"releaseRetryScope\": \"unfinished_targets_only_after_exact_job_level_reconciliation\",\n    \"providerTransportReconciliation\": \"bounded_idempotent_readback_preserves_mission_identity_and_progress\",\n    \"runtimeReleaseProofReconciliation\": \"cc_execution_and_onrunner_independent_live_target_proof_may_substitute_an_interrupted_enclosing_workflow_receipt_only_when_every_affected_runtime_target_is_proven\",\n    \"nonRuntimeReleaseFailClosed\": \"frontend_supabase_edge_and_migrations_require_their_own_release_evidence\",\n    \"affectedTargetRuntimeIdentity\": \"runtime_source_may_precede_protected_main_only_when_shared_release_ownership_excludes_that_target_and_the_exact_live_target_identity_is_independently_proven\",\n    \"ccExecutionReleaseConvergence\": \"exact_version_override_primary_with_bounded_full_activation_fallback_after_override_miss_and_automatic_rollback_on_failed_candidate_proof\",\n    \"verification\": \"claim_matched_live_proof\",\n    \"visualWitness\": \"opt_in_unless_required_by_explicit_claim\",\n    \"visualWitnessTerminalMonotonicity\": \"durable_success_receipt_precedes_terminal_failure_and_mutable_status_across_restart_stale_memory_and_runner_lanes\",\n    \"visualWitnessCheckpointSourceBinding\": \"checkpoint_resume_requires_exact_witness_source_commit_cross_source_or_missing_source_resume_fails_closed\",\n    \"visualWitnessExplicitViewportPreservation\": \"explicit_viewports_are_authoritative_across_adaptive_escalation_restart_replay_and_lane_failover\",\n    \"visualWitnessRestartReplayBound\": \"one_process_restart_replay_per_attempt_slot_and_already_verified_attempts_terminalize_without_replay\",\n    \"visualWitnessGateExecution\": \"hosted_runner_full_package_check_required_for_hosted_runner_changes_and_witness_gate_wiring_changes\",\n    \"visualWitnessGateBaseline\": \"163_tests_163_pass_0_fail\",\n    \"visualWitnessGoldenRestoreGate\": \"canonical_control_plane_restore_point_verified_runs_as_unconditional_gate_hard_safety\",\n    \"visualWitnessCrossLaneSupervisorAffinity\": \"shared_supervisor_state_is_lane_affine_and_may_not_cross_claim_or_execute_another_runner_lane_attempt\",\n    \"visualWitnessPaulHybrid\": \"dedicated_paul_runner_bearer_pairing_fresh_sentinel_scheduler_isolation_witness_first_and_no_autonomous_repair_authority\",\n    \"visualWitnessFailoverAvailability\": \"paul_bootstrap_or_repair_may_temporarily_remove_paul_from_selection_only_while_ready_authority_verified_render_or_virtual_capacity_remains_available\",\n    \"retiredInfrastructureRecreation\": false,\n    \"independentRequestParallelExecution\": true,\n    \"mainMoveConcurrencyPolicy\": \"nonterminal_refresh_and_exact_head_regate\",\n    \"primeOAuthStorageNamespace\": \"kl-prime-oauth-auth-v1\",\n    \"primeOAuthPlatformSessionIsolation\": \"connector_auth_never_writes_or_consumes_platform_session_namespace\",\n    \"primeOAuthSignedOutOwner\": \"auth_route_authenticates_and_approves_trusted_oauth_end_to_end\",\n    \"primeOAuthSignedInOwner\": \"oauth_consent_route_uses_existing_platform_session_fast_path\",\n    \"primeOAuthBidirectionalAuthConsentRedirect\": false,\n    \"primeOAuthTenantWorkspaceSideEffectsAllowed\": false,\n    \"routeNormalization\": \"shared_canonical_primitive\",\n    \"applicationRouteOwnership\": \"shared_standalone_and_tenant_integrated_resolver\",\n    \"privateWorkspaceCompatibility\": \"isolated_pure_resolver\",\n    \"tenantPresentationCompatibility\": \"isolated_from_generic_workspace_runtime\",\n    \"appDocumentBrowserEffects\": \"dedicated_runtime_hook\",\n    \"mailRuntimeOwnership\": \"application_registry_route_adapter\",\n    \"controlPlaneMutationLockEnabled\": true,\n    \"controlPlaneFrozen\": true\n  },\n  \"knownGoodEvidence\": {\n    \"mainShaAtSnapshot\": \"427dccc5169571a7d22dcfb7aed1cd59f3944062\",\n    \"commandCenterRuntimeSha\": \"ceba05bb572484594ef1854514c7a8c39dc72351\",\n    \"commandCenterVersion\": \"1.58.281-witness-lane-affinity\",\n    \"commandCenterDeploymentId\": \"forgejo-main-ceba05bb572484594ef1854514c7a8c39dc72351\",\n    \"commandCenterBuildId\": \"forgejo-ceba05bb5724-11808-1\",\n    \"commandCenterStatus\": \"live\",\n    \"witnessPrimaryRuntimeSha\": \"901cb474975a09f9136f8b50de0913712d0f1f81\",\n    \"witnessPrimaryVersion\": \"onrunner-901cb474975a\",\n    \"witnessVirtualRuntimeSha\": \"ceba05bb572484594ef1854514c7a8c39dc72351\",\n    \"witnessVirtualVersion\": \"virtual-ceba05bb5724\",\n    \"witnessPaulRuntimeSha\": \"901cb474975a09f9136f8b50de0913712d0f1f81\",\n    \"witnessPaulVersion\": \"paul-901cb474975a\",\n    \"witnessSelectedLane\": \"paul\",\n    \"witnessStatus\": \"live\",\n    \"witnessAuthorityVerified\": true,\n    \"witnessCapacityPoolReady\": true,\n    \"paulReady\": true,\n    \"paulHybridReady\": true,\n    \"paulSentinelReady\": true,\n    \"paulSchedulerIsolationProven\": true,\n    \"paulAutonomousRepairAuthority\": false,\n    \"witnessLockdownPr\": 3718,\n    \"witnessLockdownGateRunId\": 11781,\n    \"witnessLockdownReleaseRunId\": 11782,\n    \"renderOnrunnerLockdownDeployId\": \"dep-dar787jtqb8s73fq13gg\",\n    \"restoreHardSafetyPr\": 3731,\n    \"restoreHardSafetyGateRunId\": 11800,\n    \"laneAffinityPr\": 3732,\n    \"laneAffinityGateRunId\": 11804,\n    \"laneAffinityHostedRuntimeSha\": \"901cb474975a09f9136f8b50de0913712d0f1f81\",\n    \"laneAffinityRenderDeployId\": \"dep-dar7is3tqb8s73fr6l90\",\n    \"releaseConvergencePr\": 3733,\n    \"releaseConvergenceGateRunId\": 11807,\n    \"releaseConvergenceRunId\": 11808,\n    \"releaseConvergenceRuntimeSha\": \"ceba05bb572484594ef1854514c7a8c39dc72351\",\n    \"paulBearerRepairPr\": 3734,\n    \"paulBearerRepairGateRunId\": 11809,\n    \"paulBearerRepairRunId\": 11811,\n    \"paulBearerRepairVerified\": true,\n    \"witnessHostedRunnerTests\": 163,\n    \"witnessHostedRunnerPassed\": 163,\n    \"witnessHostedRunnerFailed\": 0,\n    \"witnessTerminalMonotonicityVerified\": true,\n    \"witnessRestartTerminalizationVerified\": true,\n    \"witnessCheckpointSourceBindingVerified\": true,\n    \"witnessExplicitViewportPreservationVerified\": true,\n    \"witnessCrossLaneSupervisorAffinityVerified\": true,\n    \"mixedRuntimeTargetReconciliationVerified\": true,\n    \"affectedTargetRuntimeIdentityVerified\": true,\n    \"ccExecutionReleaseConvergenceVerified\": true,\n    \"frontendEdgeMigrationFailClosedPreserved\": true,\n    \"businessActivityLedgerMigrationVerified\": true,\n    \"pendingGateNativeAutoMergeAllowed\": false,\n    \"forgejoOperatorRecoveryVerified\": true,\n    \"controlPlaneFrozenAtSnapshot\": true,\n    \"databaseDataSnapshotIncluded\": false,\n    \"capturedFrom\": \"owner_authorized_september_25_witness_lockdown_lane_affinity_release_convergence_paul_repair_and_live_multi_lane_proof\"\n  },\n  \"restorePolicy\": {\n    \"purpose\": \"Golden best-known-good KNOCKLAUNCH baseline after the September 25 Visual Witness durability lockdown, unconditional restore hard-safety, cross-lane affinity repair, cc-execution release convergence repair, and verified PAUL bearer re-pair with healthy multi-lane failover.\",\n    \"layerAwareRestore\": true,\n    \"restoreSourceBeforeMutation\": true,\n    \"verifyProtectedMainAfterRestore\": true,\n    \"verifyRuntimeIdentityAfterRestore\": true,\n    \"verifyAffectedTargetRuntimeIdentityAfterRestore\": true,\n    \"verifyMutationRollbackIntegrityAfterRestore\": true,\n    \"verifyMissionLedgerTerminalizationAfterRestore\": true,\n    \"verifyCorrectiveGenerationIdentityAfterRestore\": true,\n    \"verifyForgejoBehavioralOperatorsAfterRestore\": true,\n    \"verifyQueueHardeningContractsAfterRestore\": true,\n    \"verifyPerTargetReleaseProgressAfterRestore\": true,\n    \"verifyRuntimeTargetReconciliationAfterRestore\": true,\n    \"verifyCcExecutionReleaseConvergenceAfterRestore\": true,\n    \"verifyVisualWitnessTerminalMonotonicityAfterRestore\": true,\n    \"verifyVisualWitnessRestartTerminalizationAfterRestore\": true,\n    \"verifyVisualWitnessSourceBoundCheckpointAfterRestore\": true,\n    \"verifyVisualWitnessExplicitViewportPreservationAfterRestore\": true,\n    \"verifyVisualWitnessCrossLaneSupervisorAffinityAfterRestore\": true,\n    \"verifyHostedRunnerGateAfterRestore\": true,\n    \"verifyGoldenRestoreGateAfterRestore\": true,\n    \"verifyPrimaryOnRunnerIdentityAfterRestore\": true,\n    \"verifyPaulHybridPairingAfterRestore\": true,\n    \"verifyPaulSchedulerIsolationAfterRestore\": true,\n    \"verifyPrimeOAuthStorageIsolationAfterRestore\": true,\n    \"verifyPrimeOAuthSignedOutSingleOwnerAfterRestore\": true,\n    \"verifyPrimeOAuthSignedInPlatformSessionPathAfterRestore\": true,\n    \"verifyPrimeOAuthNoTenantWorkspaceSideEffectsAfterRestore\": true,\n    \"verifySrcCohesionContractsAfterRestore\": true,\n    \"verifyFrontendExactArtifactAfterRestore\": true,\n    \"verifyControlPlaneFrozenAfterRestore\": true,\n    \"doNotRecreateRetiredInfrastructure\": true,\n    \"doNotUseGitHubAsFallback\": true,\n    \"preserveProtectedMain\": true,\n    \"deployOnlyAffectedTargets\": true,\n    \"requireClaimMatchedProof\": true,\n    \"databaseRecordsExcludedFromRollbackMutation\": true,\n    \"migrationHistoryPreserved\": true\n  }\n}\n"},{"path":"scripts/validate-control-plane-restore-point.mjs","content":"import assert from 'node:assert/strict';\nimport { readFileSync } from 'node:fs';\n\nconst ARCHITECTURE_TARGET = '427dccc5169571a7d22dcfb7aed1cd59f3944062';\nconst COMMAND_CENTER_TARGET = 'ceba05bb572484594ef1854514c7a8c39dc72351';\nconst HOSTED_WITNESS_TARGET = '901cb474975a09f9136f8b50de0913712d0f1f81';\nconst RESTORE_NAME = 'KNOCKLAUNCH Golden Restore Point — 2026-09-25 Witness Lane Affinity + PAUL Stable';\n\nconst restore = JSON.parse(readFileSync('config/control-plane-restore-point.json', 'utf8'));\nconst contract = readFileSync('src/__tests__/contracts/control-plane-restore-point.contract.test.ts', 'utf8');\nconst workflow = readFileSync('.forgejo/workflows/knocklaunch.yml', 'utf8');\n\nassert.equal(restore.schemaVersion, 2);\nassert.equal(restore.kind, 'canonical_control_plane_system_architecture_restore_point');\nassert.equal(restore.name, RESTORE_NAME);\nassert.equal(restore.supersedes?.name, 'KNOCKLAUNCH Golden Restore Point — 2026-09-25 Witness Lockdown Stable');\nassert.equal(restore.supersedes?.protectedMainSha, 'bf2a8e9c4206c491a249c02db298682850f49581');\nassert.equal(restore.restoreTarget?.architectureSourceSha, ARCHITECTURE_TARGET);\nassert.equal(restore.restoreTarget?.protectedMainSha, ARCHITECTURE_TARGET);\n\nassert.equal(restore.restoreTarget?.commandCenter?.service, 'cc-execution');\nassert.equal(restore.restoreTarget?.commandCenter?.version, '1.58.281-witness-lane-affinity');\nassert.equal(restore.restoreTarget?.commandCenter?.sourceSha, COMMAND_CENTER_TARGET);\nassert.equal(restore.restoreTarget?.commandCenter?.deploymentId, 'forgejo-main-ceba05bb572484594ef1854514c7a8c39dc72351');\nassert.equal(restore.restoreTarget?.commandCenter?.buildId, 'forgejo-ceba05bb5724-11808-1');\nassert.equal(restore.restoreTarget?.commandCenter?.status, 'live');\n\nassert.match(String(restore.architectureInvariants?.visualWitnessTerminalMonotonicity || ''), /durable_success_receipt/);\nassert.match(String(restore.architectureInvariants?.visualWitnessCheckpointSourceBinding || ''), /exact_witness_source_commit/);\nassert.match(String(restore.architectureInvariants?.visualWitnessExplicitViewportPreservation || ''), /explicit_viewports_are_authoritative/);\nassert.match(String(restore.architectureInvariants?.visualWitnessRestartReplayBound || ''), /one_process_restart_replay_per_attempt_slot/);\nassert.match(String(restore.architectureInvariants?.visualWitnessGateExecution || ''), /full_package_check_required/);\nassert.equal(restore.architectureInvariants?.visualWitnessGateBaseline, '163_tests_163_pass_0_fail');\nassert.match(String(restore.architectureInvariants?.visualWitnessGoldenRestoreGate || ''), /unconditional_gate_hard_safety/);\nassert.match(String(restore.architectureInvariants?.visualWitnessCrossLaneSupervisorAffinity || ''), /lane_affine/);\nassert.match(String(restore.architectureInvariants?.visualWitnessPaulHybrid || ''), /scheduler_isolation/);\nassert.match(String(restore.architectureInvariants?.affectedTargetRuntimeIdentity || ''), /release_ownership_excludes_that_target/);\nassert.match(String(restore.architectureInvariants?.ccExecutionReleaseConvergence || ''), /bounded_full_activation_fallback/);\nassert.match(String(restore.architectureInvariants?.runtimeReleaseProofReconciliation || ''), /every_affected_runtime_target_is_proven/);\nassert.match(String(restore.architectureInvariants?.nonRuntimeReleaseFailClosed || ''), /frontend_supabase_edge_and_migrations/);\n\nassert.equal(restore.knownGoodEvidence?.mainShaAtSnapshot, ARCHITECTURE_TARGET);\nassert.equal(restore.knownGoodEvidence?.commandCenterRuntimeSha, COMMAND_CENTER_TARGET);\nassert.equal(restore.knownGoodEvidence?.witnessVirtualRuntimeSha, COMMAND_CENTER_TARGET);\nassert.equal(restore.knownGoodEvidence?.witnessPrimaryRuntimeSha, HOSTED_WITNESS_TARGET);\nassert.equal(restore.knownGoodEvidence?.witnessPaulRuntimeSha, HOSTED_WITNESS_TARGET);\nassert.equal(restore.knownGoodEvidence?.witnessHostedRunnerTests, 163);\nassert.equal(restore.knownGoodEvidence?.witnessHostedRunnerPassed, 163);\nassert.equal(restore.knownGoodEvidence?.witnessHostedRunnerFailed, 0);\nassert.equal(restore.knownGoodEvidence?.witnessAuthorityVerified, true);\nassert.equal(restore.knownGoodEvidence?.paulReady, true);\nassert.equal(restore.knownGoodEvidence?.paulHybridReady, true);\nassert.equal(restore.knownGoodEvidence?.paulSentinelReady, true);\nassert.equal(restore.knownGoodEvidence?.paulSchedulerIsolationProven, true);\nassert.equal(restore.knownGoodEvidence?.paulAutonomousRepairAuthority, false);\nassert.equal(restore.knownGoodEvidence?.paulBearerRepairVerified, true);\nassert.equal(restore.knownGoodEvidence?.witnessTerminalMonotonicityVerified, true);\nassert.equal(restore.knownGoodEvidence?.witnessRestartTerminalizationVerified, true);\nassert.equal(restore.knownGoodEvidence?.witnessCheckpointSourceBindingVerified, true);\nassert.equal(restore.knownGoodEvidence?.witnessExplicitViewportPreservationVerified, true);\nassert.equal(restore.knownGoodEvidence?.witnessCrossLaneSupervisorAffinityVerified, true);\nassert.equal(restore.knownGoodEvidence?.mixedRuntimeTargetReconciliationVerified, true);\nassert.equal(restore.knownGoodEvidence?.affectedTargetRuntimeIdentityVerified, true);\nassert.equal(restore.knownGoodEvidence?.ccExecutionReleaseConvergenceVerified, true);\nassert.equal(restore.knownGoodEvidence?.frontendEdgeMigrationFailClosedPreserved, true);\n\nassert.equal(restore.restorePolicy?.verifyAffectedTargetRuntimeIdentityAfterRestore, true);\nassert.equal(restore.restorePolicy?.verifyRuntimeTargetReconciliationAfterRestore, true);\nassert.equal(restore.restorePolicy?.verifyCcExecutionReleaseConvergenceAfterRestore, true);\nassert.equal(restore.restorePolicy?.verifyVisualWitnessTerminalMonotonicityAfterRestore, true);\nassert.equal(restore.restorePolicy?.verifyVisualWitnessRestartTerminalizationAfterRestore, true);\nassert.equal(restore.restorePolicy?.verifyVisualWitnessSourceBoundCheckpointAfterRestore, true);\nassert.equal(restore.restorePolicy?.verifyVisualWitnessExplicitViewportPreservationAfterRestore, true);\nassert.equal(restore.restorePolicy?.verifyVisualWitnessCrossLaneSupervisorAffinityAfterRestore, true);\nassert.equal(restore.restorePolicy?.verifyHostedRunnerGateAfterRestore, true);\nassert.equal(restore.restorePolicy?.verifyGoldenRestoreGateAfterRestore, true);\nassert.equal(restore.restorePolicy?.verifyPrimaryOnRunnerIdentityAfterRestore, true);\nassert.equal(restore.restorePolicy?.verifyPaulHybridPairingAfterRestore, true);\nassert.equal(restore.restorePolicy?.verifyPaulSchedulerIsolationAfterRestore, true);\nassert.equal(restore.restorePolicy?.doNotUseGitHubAsFallback, true);\nassert.equal(restore.restorePolicy?.preserveProtectedMain, true);\nassert.equal(restore.restorePolicy?.databaseRecordsExcludedFromRollbackMutation, true);\nassert.equal(restore.restorePolicy?.migrationHistoryPreserved, true);\n\nassert.match(contract, new RegExp(`GOLDEN_ARCHITECTURE_SHA = ['\"]${ARCHITECTURE_TARGET}['\"]`));\nassert.match(contract, new RegExp(`COMMAND_CENTER_RUNTIME_SHA = ['\"]${COMMAND_CENTER_TARGET}['\"]`));\nassert.match(contract, new RegExp(`HOSTED_WITNESS_RUNTIME_SHA = ['\"]${HOSTED_WITNESS_TARGET}['\"]`));\nassert.match(contract, /visualWitnessCrossLaneSupervisorAffinity/);\nassert.match(contract, /affectedTargetRuntimeIdentity/);\nassert.match(contract, /ccExecutionReleaseConvergence/);\nassert.ok(workflow.includes('node scripts/validate-control-plane-restore-point.mjs'));\n\nconsole.log(JSON.stringify({\n  ok: true,\n  proofGate: 'canonical_control_plane_restore_point_verified',\n  restoreName: RESTORE_NAME,\n  restoreTarget: ARCHITECTURE_TARGET,\n  commandCenterTarget: COMMAND_CENTER_TARGET,\n  hostedWitnessTarget: HOSTED_WITNESS_TARGET,\n  hostedRunnerTests: 163,\n  invariants: {\n    terminalMonotonicity: true,\n    sourceBoundCheckpoints: true,\n    explicitViewportPreservation: true,\n    boundedRestartReplay: true,\n    fullHostedRunnerGate: true,\n    unconditionalGoldenRestoreGate: true,\n    crossLaneSupervisorAffinity: true,\n    paulHybridPairing: true,\n    affectedTargetRuntimeIdentity: true,\n    runtimeTargetReconciliation: true,\n    ccExecutionReleaseConvergence: true,\n    nonRuntimeFailClosed: true\n  }\n}));\n"},{"path":"src/__tests__/contracts/control-plane-restore-point.contract.test.ts","content":"// @vitest-environment node\nimport { readFileSync } from 'node:fs';\nimport { resolve } from 'node:path';\nimport { describe, expect, it } from 'vitest';\n\nconst restoreUi = readFileSync(resolve(process.cwd(), 'src/pages/admin/GodModeRestorePoints.tsx'), 'utf8');\nconst systemControl = readFileSync(resolve(process.cwd(), 'src/pages/admin/system-tabs/SystemControlTab.tsx'), 'utf8');\nconst routes = readFileSync(resolve(process.cwd(), 'src/routes/adminRoutes.tsx'), 'utf8');\nconst adminManage = readFileSync(resolve(process.cwd(), 'supabase/functions/admin-manage/index.ts'), 'utf8');\nconst missionControl = readFileSync(resolve(process.cwd(), 'workers/cc-execution/src/index-mission-control.js'), 'utf8');\nconst scopedPatch = readFileSync(resolve(process.cwd(), 'workers/cc-execution/src/index-scoped-repo-patch.js'), 'utf8');\nconst restorePoint = JSON.parse(readFileSync(resolve(process.cwd(), 'config/control-plane-restore-point.json'), 'utf8'));\nconst TARGET = String(restorePoint.restoreTarget.protectedMainSha || '');\nconst GOLDEN_ARCHITECTURE_SHA = '427dccc5169571a7d22dcfb7aed1cd59f3944062';\nconst COMMAND_CENTER_RUNTIME_SHA = 'ceba05bb572484594ef1854514c7a8c39dc72351';\nconst HOSTED_WITNESS_RUNTIME_SHA = '901cb474975a09f9136f8b50de0913712d0f1f81';\n\ndescribe('GodMode canonical restore points', () => {\n  it('exposes a dedicated owner-facing Restore Points application', () => {\n    expect(routes).toContain('@/pages/admin/GodModeRestorePoints');\n    expect(routes).toContain('/admin/godmode/restore-points');\n    expect(systemControl).toContain('/admin/godmode/restore-points');\n    expect(restoreUi).toContain('Create restore point');\n    expect(restoreUi).toContain('Saved restore points');\n    expect(restoreUi).toContain('Review restore');\n    expect(restoreUi).toContain('Final confirmation');\n    expect(restoreUi).toContain(\"confirmation!=='RESTORE'\");\n  });\n\n  it('keeps restore-point reads and writes on authenticated server-side lanes', () => {\n    expect(adminManage).toContain(\"'restore_points_list'\");\n    expect(adminManage).toContain(\"'restore_point_create'\");\n    expect(adminManage).toContain(\"'restore_point_review'\");\n    expect(adminManage).toContain(\"'restore_point_execute'\");\n    expect(adminManage).toContain(\"'restore_point_status'\");\n    expect(adminManage).toContain('FGJ_CONTROL_TOKEN');\n    expect(adminManage).toContain('CC_EXECUTION_KEY');\n    expect(adminManage).toContain('/mission/execute');\n    expect(adminManage).toContain('/mission/status');\n    expect(restoreUi).toContain(\"supabase.functions.invoke('admin-manage'\");\n    expect(restoreUi).not.toContain('FGJ_CONTROL_TOKEN');\n    expect(restoreUi).not.toContain('CC_EXECUTION_KEY');\n  });\n\n  it('accepts only verified canonical restore-point history for rollback', () => {\n    expect(TARGET).toMatch(/^[0-9a-f]{40}$/i);\n    expect(missionControl).toContain('readVerifiedRestorePointSnapshot');\n    expect(missionControl).toContain('restore_point_history_commit_not_verified');\n    expect(missionControl).toContain('snapshotCommitSha');\n    expect(missionControl).not.toContain('const CANONICAL_CONTROL_PLANE_RESTORE_SHA');\n    expect(missionControl).toContain('target_sha_not_ancestor_of_current_main');\n    expect(missionControl).toContain('mergeBase === targetSha || compareStatus === \"ahead\" || compareStatus === \"identical\"');\n    expect(missionControl).toContain('update_strategy: \"fresh_branch\"');\n    expect(missionControl).toContain('ownerApproved: true');\n    expect(missionControl).toContain('ship: true');\n    expect(missionControl).toContain('executeRepairMission');\n  });\n\n  it('preserves tenant/product source, database history, and the restore harness', () => {\n    expect(missionControl).toContain('tenantAndProductSourceExcluded: true');\n    expect(missionControl).toContain('databaseRecordsExcluded: true');\n    expect(missionControl).toContain('restoreHarnessPreserved: true');\n    expect(missionControl).toContain('controlPlaneRestorePath');\n    expect(missionControl).toContain('CONTROL_PLANE_RESTORE_HARNESS_PATHS');\n  });\n\n  it('keeps atomic delete support for files introduced after a checkpoint', () => {\n    expect(scopedPatch).toContain('plan.delete === true ? \"delete\"');\n    expect(scopedPatch).toContain('writeMethod = singlePlan?.delete === true ? \"DELETE\"');\n    expect(scopedPatch).toContain('plans[index].delete === true ? file === null');\n    expect(scopedPatch).toContain('deleted: plan.delete === true');\n  });\n\n  it('pins the September 25 lane-affinity and PAUL-stable architecture as the canonical golden restore state', () => {\n    expect(restorePoint.name).toBe('KNOCKLAUNCH Golden Restore Point — 2026-09-25 Witness Lane Affinity + PAUL Stable');\n    expect(restorePoint.supersedes.name).toBe('KNOCKLAUNCH Golden Restore Point — 2026-09-25 Witness Lockdown Stable');\n    expect(restorePoint.restoreTarget.architectureSourceSha).toBe(GOLDEN_ARCHITECTURE_SHA);\n    expect(restorePoint.restoreTarget.protectedMainSha).toBe(GOLDEN_ARCHITECTURE_SHA);\n    expect(restorePoint.restoreTarget.commandCenter.version).toBe('1.58.281-witness-lane-affinity');\n    expect(restorePoint.restoreTarget.commandCenter.sourceSha).toBe(COMMAND_CENTER_RUNTIME_SHA);\n    expect(restorePoint.knownGoodEvidence.witnessVirtualRuntimeSha).toBe(COMMAND_CENTER_RUNTIME_SHA);\n    expect(restorePoint.knownGoodEvidence.witnessPrimaryRuntimeSha).toBe(HOSTED_WITNESS_RUNTIME_SHA);\n    expect(restorePoint.knownGoodEvidence.witnessPaulRuntimeSha).toBe(HOSTED_WITNESS_RUNTIME_SHA);\n    expect(restorePoint.architectureInvariants.visualWitnessTerminalMonotonicity).toContain('durable_success_receipt');\n    expect(restorePoint.architectureInvariants.visualWitnessCheckpointSourceBinding).toContain('exact_witness_source_commit');\n    expect(restorePoint.architectureInvariants.visualWitnessExplicitViewportPreservation).toContain('explicit_viewports_are_authoritative');\n    expect(restorePoint.architectureInvariants.visualWitnessGateExecution).toContain('full_package_check_required');\n    expect(restorePoint.architectureInvariants.visualWitnessGoldenRestoreGate).toContain('unconditional_gate_hard_safety');\n    expect(restorePoint.architectureInvariants.visualWitnessCrossLaneSupervisorAffinity).toContain('lane_affine');\n    expect(restorePoint.architectureInvariants.visualWitnessPaulHybrid).toContain('scheduler_isolation');\n    expect(restorePoint.architectureInvariants.affectedTargetRuntimeIdentity).toContain('release_ownership_excludes_that_target');\n    expect(restorePoint.architectureInvariants.ccExecutionReleaseConvergence).toContain('bounded_full_activation_fallback');\n    expect(restorePoint.architectureInvariants.runtimeReleaseProofReconciliation).toContain('every_affected_runtime_target_is_proven');\n    expect(restorePoint.architectureInvariants.nonRuntimeReleaseFailClosed).toContain('frontend_supabase_edge_and_migrations');\n    expect(restorePoint.knownGoodEvidence.witnessHostedRunnerTests).toBe(163);\n    expect(restorePoint.knownGoodEvidence.witnessHostedRunnerPassed).toBe(163);\n    expect(restorePoint.knownGoodEvidence.witnessHostedRunnerFailed).toBe(0);\n    expect(restorePoint.knownGoodEvidence.witnessCrossLaneSupervisorAffinityVerified).toBe(true);\n    expect(restorePoint.knownGoodEvidence.paulBearerRepairVerified).toBe(true);\n    expect(restorePoint.knownGoodEvidence.ccExecutionReleaseConvergenceVerified).toBe(true);\n    expect(restorePoint.restorePolicy.verifyVisualWitnessCrossLaneSupervisorAffinityAfterRestore).toBe(true);\n    expect(restorePoint.restorePolicy.verifyPaulHybridPairingAfterRestore).toBe(true);\n    expect(restorePoint.restorePolicy.verifyAffectedTargetRuntimeIdentityAfterRestore).toBe(true);\n    expect(restorePoint.restorePolicy.verifyCcExecutionReleaseConvergenceAfterRestore).toBe(true);\n    expect(restorePoint.restorePolicy.verifyGoldenRestoreGateAfterRestore).toBe(true);\n  });\n});\n"}],"branch":"ai/objective-first-repair-538a9c14718a","writes":[],"patches":[],"version":1,"approved":true,"missionId":"538a9c14-718a-4b3e-87fa-1c98217b29e5","objective":"Promote the exact live September 25 post-lockdown architecture at protected main 427dccc5169571a7d22dcfb7aed1cd59f3944062 to the canonical golden restore point. Supersede the earlier bf2a witness-lockdown snapshot and encode affected-target runtime truth rather than falsely requiring one SHA everywhere: cc-execution and virtual witness are proven at ceba05bb572484594ef1854514c7a8c39dc72351; Render OnRunner and PAUL are proven at 901cb474975a09f9136f8b50de0913712d0f1f81; PAUL bearer re-pair run 11811 is successful and all lanes are ready/authority-verified. Preserve every earlier durability invariant and add cross-lane supervisor affinity, PAUL hybrid pairing/failover, affected-target identity, cc-execution release convergence, and unconditional golden-restore Gate verification.","repository":"noel/KnockLaunchOS","visualProof":false,"verifyVisual":false,"ownerApproved":true,"releaseIntent":null,"sourceTargets":[],"implementation":{"files":[],"writes":[]},"requestContract":{"valid":true,"intent":{"evidence":["PR 3718 Gate 11781: Visual Witness 163/163","PR 3731 Gate 11800: unconditional canonical_control_plane_restore_point_verified","PR 3732 Gate 11804: later witness change again passed restore validator and 163/163 suite","PR 3733 run 11808: cc_execution_runtime_identity_verified at ceba05bb","PR 3734 run 11811: paul_hybrid_host_bootstrap_verified and job succeeded","live health: PAUL, Render, virtual all ready and authority-verified with zero queue"],"confidence":null,"rawUtterance":"Promote the exact live September 25 post-lockdown architecture at protected main 427dccc5169571a7d22dcfb7aed1cd59f3944062 to the canonical golden restore point. Supersede the earlier bf2a witness-lockdown snapshot and encode affected-target runtime truth rather than falsely requiring one SHA everywhere: cc-execution and virtual witness are proven at ceba05bb572484594ef1854514c7a8c39dc72351; Render OnRunner and PAUL are proven at 901cb474975a09f9136f8b50de0913712d0f1f81; PAUL bearer re-pair run 11811 is successful and all lanes are ready/authority-verified. Preserve every earlier durability invariant and add cross-lane supervisor affinity, PAUL hybrid pairing/failover, affected-target identity, cc-execution release convergence, and unconditional golden-restore Gate verification.","wordingChanged":false,"canonicalIntent":"Promote the exact live September 25 post-lockdown architecture at protected main 427dccc5169571a7d22dcfb7aed1cd59f3944062 to the canonical golden restore point. Supersede the earlier bf2a witness-lockdown snapshot and encode affected-target runtime truth rather than falsely requiring one SHA everywhere: cc-execution and virtual witness are proven at ceba05bb572484594ef1854514c7a8c39dc72351; Render OnRunner and PAUL are proven at 901cb474975a09f9136f8b50de0913712d0f1f81; PAUL bearer re-pair run 11811 is successful and all lanes are ready/authority-verified. Preserve every earlier durability invariant and add cross-lane supervisor affinity, PAUL hybrid pairing/failover, affected-target identity, cc-execution release convergence, and unconditional golden-restore Gate verification.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"golden-current","statement":"Canonical restore state is the current fully proven September 25 lane-affinity and PAUL-stable architecture.","provenance":{"reason":null,"source":"owner_authorized_control_plane_maintenance","inherited":false,"blockingAuthority":true},"proofConditionIds":["restore","validator","contract"]}],"objective":"Promote the exact live September 25 post-lockdown architecture at protected main 427dccc5169571a7d22dcfb7aed1cd59f3944062 to the canonical golden restore point. Supersede the earlier bf2a witness-lockdown snapshot and encode affected-target runtime truth rather than falsely requiring one SHA everywhere: cc-execution and virtual witness are proven at ceba05bb572484594ef1854514c7a8c39dc72351; Render OnRunner and PAUL are proven at 901cb474975a09f9136f8b50de0913712d0f1f81; PAUL bearer re-pair run 11811 is successful and all lanes are ready/authority-verified. Preserve every earlier durability invariant and add cross-lane supervisor affinity, PAUL hybrid pairing/failover, affected-target identity, cc-execution release convergence, and unconditional golden-restore Gate verification.","constraints":[{"id":"preserve-layered-truth","statement":"Preserve affected-target runtime identities and all prior restore safety; do not force unrelated runtime redeploys or mutate tenant/product/data state.","provenance":{"reason":null,"source":"owner_authorized_control_plane_maintenance","inherited":false,"blockingAuthority":true},"proofConditionIds":["restore","validator","contract"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"restore","kind":"repository","path":"config/control-plane-restore-point.json","claim":"Restore config pins the current protected-main architecture and exact proven affected-target runtime identities.","roleRef":null,"userRef":null,"required":true,"expectedText":"KNOCKLAUNCH Golden Restore Point — 2026-09-25 Witness Lane Affinity + PAUL Stable","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false},{"id":"validator","kind":"repository","path":"scripts/validate-control-plane-restore-point.mjs","claim":"Unconditional Gate validator pins the new layered golden target and emits canonical proof.","roleRef":null,"userRef":null,"required":true,"expectedText":"HOSTED_WITNESS_TARGET","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false},{"id":"contract","kind":"repository","path":"src/__tests__/contracts/control-plane-restore-point.contract.test.ts","claim":"Restore contract verifies the lane-affinity, PAUL, affected-target and release-convergence invariants.","roleRef":null,"userRef":null,"required":true,"expectedText":"GOLDEN_ARCHITECTURE_SHA","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}],"validationErrors":[]},"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":null,"ownerApproved":true,"releaseIntent":null,"sourceTargets":[],"requestContract":{"valid":true,"intent":{"evidence":["PR 3718 Gate 11781: Visual Witness 163/163","PR 3731 Gate 11800: unconditional canonical_control_plane_restore_point_verified","PR 3732 Gate 11804: later witness change again passed restore validator and 163/163 suite","PR 3733 run 11808: cc_execution_runtime_identity_verified at ceba05bb","PR 3734 run 11811: paul_hybrid_host_bootstrap_verified and job succeeded","live health: PAUL, Render, virtual all ready and authority-verified with zero queue"],"confidence":null,"rawUtterance":"Promote the exact live September 25 post-lockdown architecture at protected main 427dccc5169571a7d22dcfb7aed1cd59f3944062 to the canonical golden restore point. Supersede the earlier bf2a witness-lockdown snapshot and encode affected-target runtime truth rather than falsely requiring one SHA everywhere: cc-execution and virtual witness are proven at ceba05bb572484594ef1854514c7a8c39dc72351; Render OnRunner and PAUL are proven at 901cb474975a09f9136f8b50de0913712d0f1f81; PAUL bearer re-pair run 11811 is successful and all lanes are ready/authority-verified. Preserve every earlier durability invariant and add cross-lane supervisor affinity, PAUL hybrid pairing/failover, affected-target identity, cc-execution release convergence, and unconditional golden-restore Gate verification.","wordingChanged":false,"canonicalIntent":"Promote the exact live September 25 post-lockdown architecture at protected main 427dccc5169571a7d22dcfb7aed1cd59f3944062 to the canonical golden restore point. Supersede the earlier bf2a witness-lockdown snapshot and encode affected-target runtime truth rather than falsely requiring one SHA everywhere: cc-execution and virtual witness are proven at ceba05bb572484594ef1854514c7a8c39dc72351; Render OnRunner and PAUL are proven at 901cb474975a09f9136f8b50de0913712d0f1f81; PAUL bearer re-pair run 11811 is successful and all lanes are ready/authority-verified. Preserve every earlier durability invariant and add cross-lane supervisor affinity, PAUL hybrid pairing/failover, affected-target identity, cc-execution release convergence, and unconditional golden-restore Gate verification.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"golden-current","statement":"Canonical restore state is the current fully proven September 25 lane-affinity and PAUL-stable architecture.","provenance":{"reason":null,"source":"owner_authorized_control_plane_maintenance","inherited":false,"blockingAuthority":true},"proofConditionIds":["restore","validator","contract"]}],"objective":"Promote the exact live September 25 post-lockdown architecture at protected main 427dccc5169571a7d22dcfb7aed1cd59f3944062 to the canonical golden restore point. Supersede the earlier bf2a witness-lockdown snapshot and encode affected-target runtime truth rather than falsely requiring one SHA everywhere: cc-execution and virtual witness are proven at ceba05bb572484594ef1854514c7a8c39dc72351; Render OnRunner and PAUL are proven at 901cb474975a09f9136f8b50de0913712d0f1f81; PAUL bearer re-pair run 11811 is successful and all lanes are ready/authority-verified. Preserve every earlier durability invariant and add cross-lane supervisor affinity, PAUL hybrid pairing/failover, affected-target identity, cc-execution release convergence, and unconditional golden-restore Gate verification.","constraints":[{"id":"preserve-layered-truth","statement":"Preserve affected-target runtime identities and all prior restore safety; do not force unrelated runtime redeploys or mutate tenant/product/data state.","provenance":{"reason":null,"source":"owner_authorized_control_plane_maintenance","inherited":false,"blockingAuthority":true},"proofConditionIds":["restore","validator","contract"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"restore","kind":"repository","path":"config/control-plane-restore-point.json","claim":"Restore config pins the current protected-main architecture and exact proven affected-target runtime identities.","roleRef":null,"userRef":null,"required":true,"expectedText":"KNOCKLAUNCH Golden Restore Point — 2026-09-25 Witness Lane Affinity + PAUL Stable","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false},{"id":"validator","kind":"repository","path":"scripts/validate-control-plane-restore-point.mjs","claim":"Unconditional Gate validator pins the new layered golden target and emits canonical proof.","roleRef":null,"userRef":null,"required":true,"expectedText":"HOSTED_WITNESS_TARGET","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false},{"id":"contract","kind":"repository","path":"src/__tests__/contracts/control-plane-restore-point.contract.test.ts","claim":"Restore contract verifies the lane-affinity, PAUL, affected-target and release-convergence invariants.","roleRef":null,"userRef":null,"required":true,"expectedText":"GOLDEN_ARCHITECTURE_SHA","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}],"validationErrors":[]},"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":"Owner ordered the repaired Visual Witness/control-plane machinery locked down at the strongest proven state. Protected main 427dccc5 includes the witness lockdown, unconditional restore Gate, cross-lane affinity, cc-execution release convergence, and verified PAUL bearer re-pair. Promote this exact layered live state without touching tenant/product/data state."},"proofRequirements":null,"controlPlaneUnfreeze":true,"durableMutationResume":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":"Owner ordered the repaired Visual Witness/control-plane machinery locked down at the strongest proven state. Protected main 427dccc5 includes the witness lockdown, unconditional restore Gate, cross-lane affinity, cc-execution release convergence, and verified PAUL bearer re-pair. Promote this exact layered live state without touching tenant/product/data state."},"recovery":false,"fingerprint":"4ce44f14c9154d74954fc185299b7baa2025a915f1d2bb9ed3bf16501e468ee4","replayCount":0,"serializedBytes":44069},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T13:54:38.794386+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:538a9c14-718a-4b3e-87fa-1c98217b29e5:repository-mutation-intent:4ce44f14c9154d74954fc185299b7baa2025a915f1d2bb9ed3bf16501e468ee4:0","mission_step_id":"f25c64ae-dbe5-4d9b-a911-33448dd80428","command_center_event_id":"538a9c14-718a-4b3e-87fa-1c98217b29e5"},{"id":"bc9d70d6-5ed6-4473-8d34-0b3f1b46b5ae","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-5749ab4cd68f","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":3771,"releaseCount":0,"toolCallCount":2,"repeatedCallCount":1,"executorlessWaitMs":50584,"firstUsefulResultAt":"2026-09-25T18:33:11.854Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.282-lineage-main-guard","prNumber":null,"terminal":false,"missionId":"5749ab4c-d68f-4309-87a7-4b7a46ea07ec","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1271,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":294,"providerAuthMs":0,"ledgerPrepareMs":294,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":294,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":294,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Inspect the bounded repository paths, synthesize exact files or anchored_edits, and call /mission/execute again automatically with this same missionId without another owner prompt or workflow switch.","receiptRef":{"mode":"full","missionId":"5749ab4c-d68f-4309-87a7-4b7a46ea07ec"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime","visual"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3460,"likelyAffectedFiles":["src/PrivateAppShell.tsx"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T18:33:11.890738+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:5749ab4c-d68f-4309-87a7-4b7a46ea07ec:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"8db3ddd5-a4bf-4d04-8692-a2fd8d69b275","command_center_event_id":"5749ab4c-d68f-4309-87a7-4b7a46ea07ec"},{"id":"328ea028-d454-4959-97b6-b3fed609dc74","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-5749ab4cd68f","writes":[],"patches":[],"version":1,"approved":true,"missionId":"5749ab4c-d68f-4309-87a7-4b7a46ea07ec","objective":"Continue the same public signing polish mission. Apply exact shell/layout edits now: center tenant branding in PageShell, tighten public document framing, and hide all known tenant/private mobile nav surfaces from within the public signing shell. Preserve signing logic.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/pages/sign-agreement/PageShell.tsx","src/pages/SignAgreement.tsx"],"anchored_edits":[{"find":"? 'border-b border-cyan-400/15 bg-[#050b11] px-4 sm:px-6 py-3 flex items-center justify-between'\n              : 'border-b border-white/10 bg-black px-4 sm:px-6 py-3 flex items-center justify-between'","path":"src/pages/sign-agreement/PageShell.tsx","replace":"? 'relative border-b border-cyan-400/15 bg-[#050b11] px-4 sm:px-6 py-3 flex items-center justify-center'\n              : 'relative border-b border-white/10 bg-black px-4 sm:px-6 py-3 flex items-center justify-center'"},{"find":"<div className=\"flex min-w-0 items-center gap-3\">","path":"src/pages/sign-agreement/PageShell.tsx","replace":"<div className=\"flex min-w-0 flex-col items-center justify-center gap-1.5 text-center\">"},{"find":"className={is321AutoUnlock ? '' : 'grid h-11 min-w-11 place-items-center rounded-xl border border-slate-200 bg-white px-2 shadow-sm'}","path":"src/pages/sign-agreement/PageShell.tsx","replace":"className={is321AutoUnlock ? '' : 'grid min-h-12 min-w-12 place-items-center rounded-2xl border border-white/10 bg-white px-3 py-2 shadow-[0_10px_30px_rgba(0,0,0,.22)]'}"},{"find":"className={is321AutoUnlock ? 'h-9 w-auto max-w-[150px] object-contain' : 'h-8 w-auto max-w-[145px] object-contain'}","path":"src/pages/sign-agreement/PageShell.tsx","replace":"className={is321AutoUnlock ? 'h-10 w-auto max-w-[170px] object-contain' : 'h-11 w-auto max-w-[190px] object-contain'}"},{"find":"? 'flex items-center gap-1.5 text-xs text-cyan-100/70'\n                : 'flex items-center gap-1.5 text-xs text-white/60'","path":"src/pages/sign-agreement/PageShell.tsx","replace":"? 'absolute right-4 sm:right-6 flex items-center gap-1.5 text-xs text-cyan-100/70'\n                : 'absolute right-4 sm:right-6 flex items-center gap-1.5 text-xs text-white/60'"},{"find":"<main\n          className={","path":"src/pages/sign-agreement/PageShell.tsx","replace":"<style>{`[data-tenant-modes-mobile-nav=\"true\"],[data-tenant-modes-mobile-landing-nav=\"true\"],[data-mobile-bottom-nav=\"true\"],[data-tenant-mobile-nav=\"true\"],[data-global-fallback-avatar-host=\"true\"]{display:none!important}`}</style>\n        <main\n          className={"},{"find":"<div className=\"mx-auto w-full max-w-[1120px] space-y-4 px-2 pb-8 pt-4 sm:px-6 sm:pt-7\">","path":"src/pages/SignAgreement.tsx","replace":"<div className=\"mx-auto w-full max-w-[1040px] space-y-3 px-1.5 pb-8 pt-3 sm:px-5 sm:pt-6\">"},{"find":"<Card className=\"shadow-xl border-white/10 bg-[#101419] text-slate-100 overflow-hidden\">","path":"src/pages/SignAgreement.tsx","replace":"<Card className=\"overflow-hidden border-white/10 bg-[#0d1117] text-slate-100 shadow-[0_22px_70px_rgba(0,0,0,.32)]\">"}],"implementation":{"files":[],"writes":[]},"requestContract":null,"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":"5749ab4c-d68f-4309-87a7-4b7a46ea07ec","ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/pages/sign-agreement/PageShell.tsx","src/pages/SignAgreement.tsx"],"requestContract":null,"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":false,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"proofRequirements":null,"controlPlaneUnfreeze":false,"durableMutationResume":true,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"recovery":false,"fingerprint":"e6013f4d96185aa4a685c490b523e2190eaeadec6dd0ffb32ffddb9a963a74d9","replayCount":0,"serializedBytes":4023},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T18:35:38.281724+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:5749ab4c-d68f-4309-87a7-4b7a46ea07ec:repository-mutation-intent:e6013f4d96185aa4a685c490b523e2190eaeadec6dd0ffb32ffddb9a963a74d9:0","mission_step_id":"d08fbd37-6f14-4768-b8b9-1a0de3c9f3cd","command_center_event_id":"5749ab4c-d68f-4309-87a7-4b7a46ea07ec"},{"id":"975e8c2e-1d91-4a72-8e42-312f39b4cd57","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"285ddf40ce7039e8433669874cd97a9822f953cd","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-1","satisfied":true,"statement":"Enforce canonical sender ownership for all outbound tenant/platform business email. Sender identity must be resolved from the document/business context, never from a generic fallback rail. Rules: tenant-scoped proposal/invoice/estimate/agreement/customer email sends from that tenant's configured business mailbox/provider; KNOCKLAUNCH OS/platform email sends from info@knocklaunch.app; tenants using an external business email/provider send from that configured external sender. If the intended sender/provider is unavailable, return a clear prerequisite/provider error and do not silently fall back to another sender while reporting success. Preserve recipient, subject/body, tenant branding, idempotency, and audit logging. Update agreement-sign/send-email behavior so tenant-scoped agreement resend only reports delivery when the intended tenant mail rail confirms provider acceptance. Smallest safe platform mail-routing change, with tests for Big Papi, platform, and external tenant sender ownership.","proofConditionIds":["proof-production"]}],"satisfied":true,"constraints":[{"id":"capability-completeness","satisfied":true,"statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["proof-production"]},{"id":"atomic-capability-lifecycle","satisfied":true,"statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["proof-production"]}],"contractHash":"23c4a222d090f2b1008f9389f8fd4c2fd56f6e81ea2aef57a3b3b77f9e92ca41","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"proof-production","kind":"runtime","evidence":{"reason":null,"satisfied":true,"releaseState":"verified","missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{"supabaseEdge":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["supabaseEdge"],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"migrationReleaseVerified":null,"releaseRequestContractHash":"23c4a222d090f2b1008f9389f8fd4c2fd56f6e81ea2aef57a3b3b77f9e92ca41"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["supabaseEdge"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T20:34:48.261901+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"285ddf40ce7039e8433669874cd97a9822f953cd","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:db10efe7-749f-4e6c-94b6-6a8bab6f6aae:request-contract:23c4a222d090f2b1008f9389f8fd4c2fd56f6e81ea2aef57a3b3b77f9e92ca41:285ddf40ce7039e8433669874cd97a9822f953cd:verified:","mission_step_id":"55dbdc17-cfc1-4e7a-b87a-95c34aac369e","command_center_event_id":"db10efe7-749f-4e6c-94b6-6a8bab6f6aae"},{"id":"ea5cffff-b397-4056-92a8-1e0d50afbcc1","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending","supabase-edge-production/live":"pending"},"mainSha":"7fed9cc44c92b49870b5b787fdc25daa427d33b8","missing":[],"pending":["forgejo-release/workflow","supabase-edge-production/live","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","supabase-edge-production/live","frontend-cloudflare/live"],"sourceSha":"7fed9cc44c92b49870b5b787fdc25daa427d33b8","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":true,"edgeFunctionSlugs":["agreement-sign"]},"releaseTargetStates":{"frontend":"pending","supabaseEdge":"pending"},"requestContractHash":"2a7e252dcad6c90f2887949bca1fd8d496d18976566fb0443642320c2806c014","forgejoWorkflowProof":{"runId":11889,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"frontend":"pending","supabaseEdge":"pending"},"targetJobCount":7,"observedTargetStates":{"frontend":"pending","supabaseEdge":"pending"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T21:12:30.676233+00:00","proof_gate":"canonical_release_pending","source_sha":"7fed9cc44c92b49870b5b787fdc25daa427d33b8","external_id":"forgejo-main-7fed9cc44c92","receipt_type":"canonical_release_status","idempotency_key":"mission:66e23008-19b2-4374-a02f-d718db6747ed:forgejo-release-status:7fed9cc44c92b49870b5b787fdc25daa427d33b8:pending:forgejo-main/source=success|forgejo-release/workflow=pending|supabase-edge-production/live=pending|frontend-cloudflare/live=pending","mission_step_id":"89191953-bb1c-4289-8f2b-1f0c398f994e","command_center_event_id":"66e23008-19b2-4374-a02f-d718db6747ed"},{"id":"77f30f15-0d0e-4bce-b4a7-658185c502fd","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-4ae887554733","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":6707,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":"2026-09-25T21:25:11.270Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.282-lineage-main-guard","prNumber":3767,"terminal":false,"missionId":"4ae88755-4733-42d1-80b8-88ff0f4ed095","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":4470,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":687,"missionSetupMs":296,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":296,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":296,"repositoryMutationMs":3783,"repositoryProviderMs":3783,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2445,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":296,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1338},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"4ae88755-4733-42d1-80b8-88ff0f4ed095"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3593,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T21:25:16.859017+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3767","receipt_type":"execute_mission","idempotency_key":"mission:4ae88755-4733-42d1-80b8-88ff0f4ed095:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"9cbbb598-f868-4c85-a9dd-002e13fcc15f","command_center_event_id":"4ae88755-4733-42d1-80b8-88ff0f4ed095"},{"id":"683c9bfc-31a4-4d6c-aada-c8aadd849643","source":"cc-execution","status":"authorized","payload":{"paths":[".forgejo/workflows/knocklaunch.yml","config/control-plane-capabilities.json","workers/cc-execution/src/index-release-fast-lane.js","workers/cc-execution/src/version.js","workers/cc-execution/test/release-orchestration-invariants.test.js"],"reason":"Prevent closed/stale pull-request events and statuses from contaminating canonical Gate readiness for a different current PR generation.","baseSha":"361ccbef4678184e6e2d358524ee51b34096ab98","issuedAt":1790296825687,"expiresAt":1790297005687,"missionId":"d0272ffc-d299-4238-8ad2-8de8b033e23a","authorizationId":"46a273ab-a699-4fb2-a0c5-86fe391cc4ec","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:40:25.987245+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"361ccbef4678184e6e2d358524ee51b34096ab98","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:46a273ab-a699-4fb2-a0c5-86fe391cc4ec","mission_step_id":"2c6a9359-7f9b-4ea9-839c-da895af2f36a","command_center_event_id":"d0272ffc-d299-4238-8ad2-8de8b033e23a"},{"id":"313478c6-4cff-4cba-a643-e1b43de1a3be","source":"cc-execution","status":"authorized","payload":{"paths":["config/control-plane-restore-point.json","scripts/validate-control-plane-restore-point.mjs","src/__tests__/contracts/control-plane-restore-point.contract.test.ts"],"reason":"Owner ordered the repaired Visual Witness/control-plane machinery locked down at the strongest proven state. Protected main 427dccc5 includes the witness lockdown, unconditional restore Gate, cross-lane affinity, cc-execution release convergence, and verified PAUL bearer re-pair. Promote this exact layered live state without touching tenant/product/data state.","baseSha":"427dccc5169571a7d22dcfb7aed1cd59f3944062","issuedAt":1790344479682,"expiresAt":1790344659682,"missionId":"538a9c14-718a-4b3e-87fa-1c98217b29e5","authorizationId":"ee9f42e4-d4b7-4107-bca5-9e0e5be19861","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T13:54:40.058383+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"427dccc5169571a7d22dcfb7aed1cd59f3944062","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:ee9f42e4-d4b7-4107-bca5-9e0e5be19861","mission_step_id":"a1e69807-44d1-4ba8-8077-f47ed2591617","command_center_event_id":"538a9c14-718a-4b3e-87fa-1c98217b29e5"},{"id":"95b3ea62-da53-4406-a81f-0d6c1ef75014","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-374a132f7416","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":null,"terminal":false,"missionId":"374a132f-7416-4037-b722-336271dc5168","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":7,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":260,"providerAuthMs":0,"ledgerPrepareMs":260,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":260,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":260,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Inspect the bounded repository paths, synthesize exact files or anchored_edits, and call /mission/execute again automatically with this same missionId without another owner prompt or workflow switch.","receiptRef":{"mode":"full","missionId":"374a132f-7416-4037-b722-336271dc5168"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3592,"likelyAffectedFiles":["workers/cc-execution/test/forgejo-core.test.js","workers/cc-execution/test/command-center.test.js","workers/cc-execution/test/source-discovery-policy.test.js"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:34:54.673193+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:374a132f-7416-4037-b722-336271dc5168:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"c7b58d21-80d4-4349-8e20-2b20f4e8f899","command_center_event_id":"374a132f-7416-4037-b722-336271dc5168"},{"id":"bb1bad5b-e7d4-4a58-bb85-76b8758a85eb","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-5749ab4cd68f","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":9806,"releaseCount":0,"toolCallCount":4,"repeatedCallCount":2,"executorlessWaitMs":146385,"firstUsefulResultAt":"2026-09-25T18:33:11.854Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.282-lineage-main-guard","prNumber":3755,"terminal":false,"missionId":"5749ab4c-d68f-4309-87a7-4b7a46ea07ec","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":3973,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":728,"missionSetupMs":313,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":313,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":313,"repositoryMutationMs":3245,"repositoryProviderMs":3245,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":1916,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":313,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1329},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"5749ab4c-d68f-4309-87a7-4b7a46ea07ec"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime","visual"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3842,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T18:35:43.247313+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3755","receipt_type":"execute_mission","idempotency_key":"mission:5749ab4c-d68f-4309-87a7-4b7a46ea07ec:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"d08fbd37-6f14-4768-b8b9-1a0de3c9f3cd","command_center_event_id":"5749ab4c-d68f-4309-87a7-4b7a46ea07ec"},{"id":"a6429aeb-0117-42e0-b2b7-0e614498c1bd","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-66e2300819b2","prNumber":3766,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"7fed9cc44c92b49870b5b787fdc25daa427d33b8","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T21:12:45.658844+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"7fed9cc44c92b49870b5b787fdc25daa427d33b8","external_id":"3766","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:66e23008-19b2-4374-a02f-d718db6747ed:merged-pr:3766:7fed9cc44c92b49870b5b787fdc25daa427d33b8","mission_step_id":"89191953-bb1c-4289-8f2b-1f0c398f994e","command_center_event_id":"66e23008-19b2-4374-a02f-d718db6747ed"},{"id":"9f15a3e9-4485-4c69-9712-24c4cb22c7c1","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"scope":"platform","branch":"ai/objective-first-repair-a5ae3f916d10","writes":[],"patches":[],"pr_body":"Replace direct workflow runner inventory reads with an exact-PR authenticated cc-execution broker. Select MSI first, laptop second, cloud only as fallback. Preserve the live owner-context fast path. No Witness run.","version":1,"approved":true,"pr_title":"Broker PAUL Gate runner selection","missionId":"a5ae3f91-6d10-4ce0-bcb8-8b6cf8b257b7","objective":"Finish the PAUL throughput bridge by replacing direct Gate runner inventory reads with an exact-PR authenticated cc-execution runner broker that selects MSI first, laptop second, and docker-8g only as fallback, while preserving the already-live stable owner-context fast path.","sourceSha":"5cb568df8bc8de82ac58ff32ee632b638272181f","repository":"noel/KnockLaunchOS","source_sha":"5cb568df8bc8de82ac58ff32ee632b638272181f","visualProof":false,"ownerApproved":true,"releaseIntent":null,"sourceTargets":[".forgejo/workflows/knocklaunch.yml","workers/cc-execution/src/entrypoint-owner-status.js","workers/cc-execution/src/version.js"],"anchored_edits":[{"path":"workers/cc-execution/src/entrypoint-owner-status.js","edits":[{"new_content":"async function forgejoEvent(request, env, ctx) {\n  const body = await request.json().catch(() => ({}));\n  const kind = String(body.kind || \"\").trim();\n  if (kind === \"gate_runner_selection\") {\n    const prNumber = Number(body.prNumber || body.pr_number || 0);\n    const sourceSha = String(body.sourceSha || body.source_sha || \"\").trim();\n    if (!Number.isInteger(prNumber) || prNumber <= 0 || !/^[0-9a-f]{40}$/i.test(sourceSha)) {\n      return json({ ok: false, status: \"blocked\", proofGate: \"gate_runner_selection_invalid\", reason: \"pr_number_and_source_sha_required\" }, 400);\n    }\n    const workflowToken = credential(request);\n    const pullResult = await forgejoReadWithToken(workflowToken, `/repos/${DEFAULT_REPOSITORY}/pulls/${prNumber}`);\n    if (!pullResult.ok) {\n      return json({ ok: false, status: \"blocked\", proofGate: \"gate_runner_selection_auth_failed\", reason: \"exact_pull_not_readable_with_workflow_token\" }, 403);\n    }\n    const pullState = String(pullResult.body?.state || \"\").trim().toLowerCase();\n    const pullHeadSha = String(pullResult.body?.head?.sha || pullResult.body?.head?.id || \"\").trim();\n    const pullBase = String(pullResult.body?.base?.ref || pullResult.body?.base?.name || \"\").trim();\n    if (pullState !== \"open\" || pullHeadSha !== sourceSha || pullBase !== \"main\") {\n      return json({ ok: false, status: \"blocked\", proofGate: \"gate_runner_selection_pull_mismatch\", reason: \"canonical_open_pull_head_required\" }, 409);\n    }\n    const [repoRunners, userRunners] = await Promise.all([\n      forgejo(env, `/repos/${DEFAULT_REPOSITORY}/actions/runners?limit=50`),\n      forgejo(env, \"/user/actions/runners?limit=50\"),\n    ]);\n    const rows = (result) => result?.ok\n      ? (Array.isArray(result.body?.runners) ? result.body.runners : Array.isArray(result.body) ? result.body : [])\n      : [];\n    const runners = [...rows(repoRunners), ...rows(userRunners)].filter((runner, index, all) => (\n      all.findIndex((candidate) => String(candidate?.id || candidate?.name || \"\") === String(runner?.id || runner?.name || \"\")) === index\n    ));\n    const ownerRunnerNames = [\"msi-local\", \"laptop-local\"];\n    const selected = ownerRunnerNames\n      .map((name) => runners.find((runner) => (\n        String(runner?.name || \"\").trim() === name\n        && String(runner?.status || \"\").trim().toLowerCase() !== \"offline\"\n        && runner?.busy !== true\n      )))\n      .find(Boolean) || null;\n    return json({\n      ok: true,\n      status: \"verified\",\n      proofGate: \"gate_runner_selection_verified\",\n      selectedRunner: selected ? String(selected.name || \"\").trim() : null,\n      ownerCapacityAvailable: Boolean(selected),\n      fallbackRunner: \"docker-8g\",\n    }, 200);\n  }\n  if (kind === \"pull_request_gate_completion_intent\") {","old_content":"async function forgejoEvent(request, env, ctx) {\n  const body = await request.json().catch(() => ({}));\n  const kind = String(body.kind || \"\").trim();\n  if (kind === \"pull_request_gate_completion_intent\") {"}]},{"path":".forgejo/workflows/knocklaunch.yml","edits":[{"new_content":"          PR_NUMBER: ${{ github.event.pull_request.number }}\n          PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }}\n          PR_BODY: ${{ github.event.pull_request.body }}\n          PR_CHANGED_FILES: ${{ github.event.pull_request.changed_files }}\n          CC_EXECUTION_URL: https://cc-execution.knocklaunch.app","old_content":"          PR_NUMBER: ${{ github.event.pull_request.number }}\n          PR_BODY: ${{ github.event.pull_request.body }}\n          PR_CHANGED_FILES: ${{ github.event.pull_request.changed_files }}"},{"new_content":"          const ownerRunnerNames = ['msi-local', 'laptop-local'];\n          const readOwnerRunner = async () => {\n            try {\n              const sourceSha = String(process.env.PR_HEAD_SHA || '').trim();\n              const base = String(process.env.CC_EXECUTION_URL || '').trim();\n              if (!base || !/^[0-9a-f]{40}$/i.test(sourceSha)) return null;\n              const response = await fetch(`${base}/forgejo/event`, {\n                method: 'POST',\n                headers: { Authorization: `Bearer ${token}`, 'content-type': 'application/json' },\n                body: JSON.stringify({ kind: 'gate_runner_selection', prNumber: pr, sourceSha }),\n              });\n              if (!response.ok) return null;\n              const payload = await response.json().catch(() => ({}));\n              const selectedRunner = String(payload?.selectedRunner || '').trim();\n              return ownerRunnerNames.includes(selectedRunner) ? { name: selectedRunner } : null;\n            } catch {\n              return null;\n            }\n          };","old_content":"          const ownerRunnerNames = ['msi-local', 'laptop-local'];\n          const runnerRows = (payload) => Array.isArray(payload?.runners) ? payload.runners : Array.isArray(payload) ? payload : [];\n          const readRunners = async (url) => {\n            try {\n              const response = await fetch(url, { headers: { Authorization: `token ${token}`, Accept: 'application/json' } });\n              if (!response.ok) return [];\n              return runnerRows(await response.json());\n            } catch { return []; }\n          };\n          const readOwnerRunner = async () => {\n            const [repoRunners, userRunners] = await Promise.all([\n              readRunners('https://git.knocklaunch.app/api/v1/repos/noel/KnockLaunchOS/actions/runners?limit=50'),\n              readRunners('https://git.knocklaunch.app/api/v1/user/actions/runners?limit=50'),\n            ]);\n            const runners = [...repoRunners, ...userRunners];\n            return ownerRunnerNames.map((name) => runners.find((runner) =>\n              String(runner?.name || '').trim() === name\n              && String(runner?.status || '').trim().toLowerCase() !== 'offline'\n              && runner?.busy !== true\n            )).find(Boolean) || null;\n          };"},{"new_content":"          const operatorRespond = fs.readFileSync('supabase/functions/operator-respond/index.ts', 'utf8');\n          const ownerStatus = fs.readFileSync('workers/cc-execution/src/entrypoint-owner-status.js', 'utf8');\n          if (!route.includes(\"const ownerRunnerNames = ['msi-local', 'laptop-local']\")) throw new Error('owner heavy runner preference list missing');\n          if (!route.includes(\"kind: 'gate_runner_selection'\")) throw new Error('Gate runner broker request missing');\n          if (route.includes('/actions/runners?limit=50')) throw new Error('Gate router must not read privileged runner inventory directly');\n          if (!ownerStatus.includes('if (kind === \"gate_runner_selection\")')) throw new Error('cc-execution Gate runner broker missing');\n          if (!ownerStatus.includes('proofGate: \"gate_runner_selection_verified\"')) throw new Error('cc-execution Gate runner broker proof missing');\n          if (!route.includes('heavy_path_local_available')) throw new Error('heavy Gate owner-capacity route missing');\n          if (!route.includes(\"console.log('runner=docker-8g')\")) throw new Error('cloud heavy fallback lane output missing');\n          if (!route.includes('container_options=--cpus=2 --memory=3072m')) throw new Error('owner runner thermal container cap missing');\n          if (!gateHeader.includes(runnerExpr)) throw new Error('Gate does not consume router runner output');\n          if (!gateHeader.includes(laneExpr)) throw new Error('Gate lane context missing');\n          if (!/^    runs-on: docker-8g$/m.test(frontend)) throw new Error('frontend release must remain on docker-8g');\n          if (!operatorRespond.includes('function requiresStableOwnerContext')) throw new Error('PAUL stable owner-context classifier missing');\n          if (!operatorRespond.includes('ownerContextPreloaded')) throw new Error('PAUL stable owner-context preload receipt missing');\n          if (!operatorRespond.includes('Authoritative stable owner grounding')) throw new Error('PAUL stable owner-context prompt grounding missing');\n          console.log('Adaptive runner broker and PAUL stable-context architecture guard passed');","old_content":"          const operatorRespond = fs.readFileSync('supabase/functions/operator-respond/index.ts', 'utf8');\n          if (!route.includes(\"const ownerRunnerNames = ['msi-local', 'laptop-local']\")) throw new Error('owner heavy runner preference list missing');\n          if (!route.includes('heavy_path_local_available')) throw new Error('heavy Gate owner-capacity route missing');\n          if (!route.includes(\"console.log('runner=docker-8g')\")) throw new Error('cloud heavy fallback lane output missing');\n          if (!route.includes('container_options=--cpus=2 --memory=3072m')) throw new Error('owner runner thermal container cap missing');\n          if (!gateHeader.includes(runnerExpr)) throw new Error('Gate does not consume router runner output');\n          if (!gateHeader.includes(laneExpr)) throw new Error('Gate lane context missing');\n          if (!/^    runs-on: docker-8g$/m.test(frontend)) throw new Error('frontend release must remain on docker-8g');\n          if (!operatorRespond.includes('function requiresStableOwnerContext')) throw new Error('PAUL stable owner-context classifier missing');\n          if (!operatorRespond.includes('ownerContextPreloaded')) throw new Error('PAUL stable owner-context preload receipt missing');\n          if (!operatorRespond.includes('Authoritative stable owner grounding')) throw new Error('PAUL stable owner-context prompt grounding missing');\n          console.log('Adaptive runner routing and PAUL stable-context architecture guard passed');"}]},{"path":"workers/cc-execution/src/version.js","edits":[{"new_content":"// Release marker: Forgejo is the canonical repository and self-hosted Actions control plane.\nexport const CC_EXECUTION_VERSION = \"1.58.303-paul-runner-broker\";\n","old_content":"// Release marker: Forgejo is the canonical repository and self-hosted Actions control plane.\nexport const CC_EXECUTION_VERSION = \"1.58.302-paul-throughput-router\";\n"}]}],"commit_message":"Broker PAUL Gate runner selection","implementation":{"files":[],"writes":[]},"requestContract":{"valid":true,"source":"explicit_owner_request","version":1,"outcomes":[{"id":"runner-broker","statement":"Gate runner routing uses an exact-PR authenticated cc-execution broker to select msi-local first, laptop-local second, and docker-8g only when owner capacity is unavailable.","proofConditionIds":["proof"]}],"objective":"Finish the PAUL throughput bridge by replacing direct Gate runner inventory reads with an exact-PR authenticated cc-execution runner broker that selects MSI first, laptop second, and docker-8g only as fallback, while preserving the already-live stable owner-context fast path.","constraints":[{"id":"least-privilege","statement":"The workflow receives only a selected runner decision; privileged runner inventory remains inside cc-execution.","proofConditionIds":["proof"]},{"id":"preserve-knowledge-fast-path","statement":"The already-live stable owner-context PAUL fast path remains unchanged.","proofConditionIds":["proof"]},{"id":"no-witness","statement":"Do not run Visual Witness for this non-visual control-plane repair.","proofConditionIds":["proof"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof","kind":"runtime","claim":"The exact PR Gate routes to an idle owner runner when Prime shows one available, passes canonical Gate, squash-merges, releases cc-execution, and live runtime identity reports 1.58.303-paul-runner-broker without Visual Witness.","required":true,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}],"validationErrors":[]},"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":null,"ownerApproved":true,"releaseIntent":null,"sourceTargets":[".forgejo/workflows/knocklaunch.yml","workers/cc-execution/src/entrypoint-owner-status.js","workers/cc-execution/src/version.js"],"requestContract":{"valid":true,"source":"explicit_owner_request","version":1,"outcomes":[{"id":"runner-broker","statement":"Gate runner routing uses an exact-PR authenticated cc-execution broker to select msi-local first, laptop-local second, and docker-8g only when owner capacity is unavailable.","proofConditionIds":["proof"]}],"objective":"Finish the PAUL throughput bridge by replacing direct Gate runner inventory reads with an exact-PR authenticated cc-execution runner broker that selects MSI first, laptop second, and docker-8g only as fallback, while preserving the already-live stable owner-context fast path.","constraints":[{"id":"least-privilege","statement":"The workflow receives only a selected runner decision; privileged runner inventory remains inside cc-execution.","proofConditionIds":["proof"]},{"id":"preserve-knowledge-fast-path","statement":"The already-live stable owner-context PAUL fast path remains unchanged.","proofConditionIds":["proof"]},{"id":"no-witness","statement":"Do not run Visual Witness for this non-visual control-plane repair.","proofConditionIds":["proof"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof","kind":"runtime","claim":"The exact PR Gate routes to an idle owner runner when Prime shows one available, passes canonical Gate, squash-merges, releases cc-execution, and live runtime identity reports 1.58.303-paul-runner-broker without Visual Witness.","required":true,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}],"validationErrors":[]},"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[".forgejo/workflows/knocklaunch.yml","workers/cc-execution/src/entrypoint-owner-status.js","workers/cc-execution/src/version.js"],"controlPlaneMaintenanceReason":"Owner explicitly authorized completing the PAUL throughput bridge. Replace only the Gate runner visibility mechanism with a least-privilege exact-PR broker, retain docker-8g fallback and current stable-context behavior, then return to frozen-by-default control-plane behavior after release."},"proofRequirements":null,"controlPlaneUnfreeze":true,"durableMutationResume":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[".forgejo/workflows/knocklaunch.yml","workers/cc-execution/src/entrypoint-owner-status.js","workers/cc-execution/src/version.js"],"controlPlaneMaintenanceReason":"Owner explicitly authorized completing the PAUL throughput bridge. Replace only the Gate runner visibility mechanism with a least-privilege exact-PR broker, retain docker-8g fallback and current stable-context behavior, then return to frozen-by-default control-plane behavior after release."},"recovery":false,"fingerprint":"7a5518a38621b5fa4d108fe51ab67469a88ad117ea253a4fdcdba3bf9aa16ca1","replayCount":0,"serializedBytes":16238},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T16:46:09.631372+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:a5ae3f91-6d10-4ce0-bcb8-8b6cf8b257b7:repository-mutation-intent:7a5518a38621b5fa4d108fe51ab67469a88ad117ea253a4fdcdba3bf9aa16ca1:0","mission_step_id":"db8ca476-4aa8-44c3-8e8b-f60c26e69497","command_center_event_id":"a5ae3f91-6d10-4ce0-bcb8-8b6cf8b257b7"},{"id":"73339ca9-ccf4-4c8a-b445-a5ce5ce94f8d","source":"cc-execution","status":"authorized","payload":{"paths":[".forgejo/workflows/knocklaunch.yml","workers/cc-execution/src/entrypoint-owner-status.js","workers/cc-execution/src/version.js"],"reason":"Owner explicitly authorized completing the PAUL throughput bridge. Replace only the Gate runner visibility mechanism with a least-privilege exact-PR broker, retain docker-8g fallback and current stable-context behavior, then return to frozen-by-default control-plane behavior after release.","baseSha":"5cb568df8bc8de82ac58ff32ee632b638272181f","issuedAt":1790613971018,"expiresAt":1790614151018,"missionId":"a5ae3f91-6d10-4ce0-bcb8-8b6cf8b257b7","authorizationId":"c4414123-3a29-401b-978f-3354dfcc0764","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T16:46:11.38272+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"5cb568df8bc8de82ac58ff32ee632b638272181f","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:c4414123-3a29-401b-978f-3354dfcc0764","mission_step_id":"41c4af20-74ad-421f-861a-42b915be8987","command_center_event_id":"a5ae3f91-6d10-4ce0-bcb8-8b6cf8b257b7"},{"id":"6bfc38e6-ef51-49c2-ae71-3bf4a4d5a00b","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-fce8335ac19b","writes":[],"patches":[],"version":1,"approved":true,"missionId":"fce8335a-c19b-472b-8901-a19cc5d51292","objective":"Finish stale pull-request Gate isolation with the smallest replay-safe implementation. The Gate job runs only when github.event.pull_request.state is open. prReady fetches recent Actions runs alongside exact commit status, verifies the status run is for the exact PR number and exact head SHA, recovers to the latest matching exact-PR run when the commit status points at another PR generation, and remains pending when no exact matching run exists. Also document the already-proven bare same-mission continuation recovery policy. Add structural regression coverage, Gate, squash merge, release cc-execution, and verify production.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":[".forgejo/workflows/knocklaunch.yml","workers/cc-execution/src/index-release-fast-lane.js","workers/cc-execution/test/release-orchestration-invariants.test.js","config/control-plane-capabilities.json","workers/cc-execution/src/version.js"],"anchored_edits":[{"path":".forgejo/workflows/knocklaunch.yml","edits":[{"new_content":"  gate:\n    name: ${{ github.event_name == 'pull_request' && contains(github.event.pull_request.body, '<!-- knocklaunch:serverless-fast-gate -->') && 'Serverless Fast Gate (runner bypass)' || 'KnockLaunch Gate' }}\n    if: ${{ github.event_name == 'pull_request' && github.event.pull_request.state == 'open' && !contains(github.event.pull_request.body, '<!-- knocklaunch:serverless-fast-gate -->') }}\n    concurrency:","old_content":"  gate:\n    name: ${{ github.event_name == 'pull_request' && contains(github.event.pull_request.body, '<!-- knocklaunch:serverless-fast-gate -->') && 'Serverless Fast Gate (runner bypass)' || 'KnockLaunch Gate' }}\n    if: ${{ github.event_name == 'pull_request' && !contains(github.event.pull_request.body, '<!-- knocklaunch:serverless-fast-gate -->') }}\n    concurrency:"}]},{"path":"workers/cc-execution/src/index-release-fast-lane.js","edits":[{"new_content":"  const [base, combinedStatus, runsPayload] = await Promise.all([\n    trustedCurrentBaseSha\n      ? Promise.resolve(null)\n      : forgejo(env, repository, \"GET\", `/branches/${encodeURIComponent(String(pull?.base?.ref || \"main\"))}`, null, false, readyTimeout()),\n    headSha\n      ? forgejo(env, repository, \"GET\", `/commits/${encodeURIComponent(headSha)}/status`, null, false, readyTimeout())\n      : Promise.resolve(null),\n    forgejo(env, repository, \"GET\", \"/actions/runs?limit=30\", null, false, readyTimeout()),\n  ]);","old_content":"  const [base, combinedStatus] = await Promise.all([\n    trustedCurrentBaseSha\n      ? Promise.resolve(null)\n      : forgejo(env, repository, \"GET\", `/branches/${encodeURIComponent(String(pull?.base?.ref || \"main\"))}`, null, false, readyTimeout()),\n    headSha\n      ? forgejo(env, repository, \"GET\", `/commits/${encodeURIComponent(headSha)}/status`, null, false, readyTimeout())\n      : Promise.resolve(null),\n  ]);"},{"new_content":"  const exactGateState = String(exactGateStatus?.status || \"\").toLowerCase();\n  const exactGateTargetUrl = String(exactGateStatus?.target_url || exactGateStatus?.url || \"\");\n  const exactGateRunMatch = exactGateTargetUrl.match(/\\/actions\\/runs\\/(\\d+)/);\n  const actionRuns = actionRunsFrom(runsPayload, 30).map(runIdentity);\n  const expectedPrRunRef = `#${prNumber}`;\n  const exactStatusRunId = exactGateRunMatch ? Number(exactGateRunMatch[1]) : null;\n  const exactStatusRun = exactStatusRunId ? actionRuns.find((run) => run.runId === exactStatusRunId) || null : null;\n  const matchingGateRuns = actionRuns\n    .filter((run) => run.event === \"pull_request\"\n      && run.headSha === headSha\n      && (run.headBranch === expectedPrRunRef || run.headBranch === branchName))\n    .sort((left, right) => Number(right?.runId || 0) - Number(left?.runId || 0));\n  let latestGate = exactGateStatus ? {","old_content":"  const exactGateState = String(exactGateStatus?.status || \"\").toLowerCase();\n  const exactGateTargetUrl = String(exactGateStatus?.target_url || exactGateStatus?.url || \"\");\n  const exactGateRunMatch = exactGateTargetUrl.match(/\\/actions\\/runs\\/(\\d+)/);\n  let latestGate = exactGateStatus ? {"},{"new_content":"  if (!latestGate && combinedState) {\n    latestGate = {\n      runId: null,\n      runAttempt: null,\n      status: combinedState,\n      conclusion: combinedState === \"success\" ? \"success\" : null,\n      event: \"pull_request\",\n      headSha,\n      headBranch: branchName,\n      workflow: \"knocklaunch.yml\",\n      title: \"KnockLaunch Gate combined commit status\",\n      createdAt: null,\n      updatedAt: null,\n      url: null,\n      evidenceSource: \"forgejo_combined_commit_status\",\n    };\n  }\n  const exactStatusIdentityMatches = Boolean(exactStatusRun\n    && exactStatusRun.event === \"pull_request\"\n    && exactStatusRun.headSha === headSha\n    && (exactStatusRun.headBranch === expectedPrRunRef || exactStatusRun.headBranch === branchName));\n  if (!exactStatusIdentityMatches) {\n    const matchingGateRun = matchingGateRuns[0] || null;\n    latestGate = matchingGateRun\n      ? { ...matchingGateRun, evidenceSource: \"forgejo_actions_exact_pr_identity_recovered\", staleStatusRunId: exactStatusRunId }\n      : { ...(latestGate || {}), status: \"pending\", conclusion: null, evidenceSource: \"forgejo_stale_gate_status_identity_ignored\", staleStatusRunId: exactStatusRunId };\n  } else if (exactStatusRun) {\n    latestGate = { ...latestGate, ...exactStatusRun, evidenceSource: \"forgejo_exact_status_run_identity_verified\" };\n  }\n  const gateState = String(latestGate?.conclusion || latestGate?.status || \"missing\").toLowerCase();","old_content":"  if (!latestGate && combinedState) {\n    latestGate = {\n      runId: null,\n      runAttempt: null,\n      status: combinedState,\n      conclusion: combinedState === \"success\" ? \"success\" : null,\n      event: \"pull_request\",\n      headSha,\n      headBranch: branchName,\n      workflow: \"knocklaunch.yml\",\n      title: \"KnockLaunch Gate combined commit status\",\n      createdAt: null,\n      updatedAt: null,\n      url: null,\n      evidenceSource: \"forgejo_combined_commit_status\",\n    };\n  }\n  const gateState = String(latestGate?.conclusion || latestGate?.status || \"missing\").toLowerCase();"}]},{"path":"config/control-plane-capabilities.json","edits":[{"new_content":"    \"mutationContinuationPolicy\": \"reuse_execute_objective_same_mission\",\n    \"mutationContinuationRecoveryPolicy\": \"bare_same_mission_continuation_without_explicit_mutation_payload_recovers_authoritative_pr_lineage_or_persisted_repository_mutation_intent_from_compact_context_then_full_durable_receipt_before_source_resolution_required_only_genuinely_unscoped_continuations_fail_closed\",\n    \"missionLedgerInfrastructureFailurePolicy\": \"nonfatal_for_authorized_repository_mutation\",","old_content":"    \"mutationContinuationPolicy\": \"reuse_execute_objective_same_mission\",\n    \"missionLedgerInfrastructureFailurePolicy\": \"nonfatal_for_authorized_repository_mutation\","}]},{"path":"workers/cc-execution/test/release-orchestration-invariants.test.js","edits":[{"new_content":"  assert.match(workflowSource, /'KnockLaunch Gate'/);\n  assert.match(workflowSource, /github\\.event\\.pull_request\\.state == 'open'/);\n});","old_content":"  assert.match(workflowSource, /'KnockLaunch Gate'/);\n});"},{"new_content":"  assert.ok(readinessBudgetMs >= readinessReadMs * 2);\n  assert.match(releaseFastLane, /const expectedPrRunRef = `#\\$\\{prNumber\\}`/);\n  assert.match(releaseFastLane, /run\\.headSha === headSha/);\n  assert.match(releaseFastLane, /run\\.headBranch === expectedPrRunRef \\|\\| run\\.headBranch === branchName/);\n  assert.match(releaseFastLane, /forgejo_actions_exact_pr_identity_recovered/);\n  assert.match(releaseFastLane, /forgejo_stale_gate_status_identity_ignored/);\n});","old_content":"  assert.ok(readinessBudgetMs >= readinessReadMs * 2);\n});"},{"new_content":"  assert.match(config.efficiency.mutationContinuationRecoveryPolicy, /full_durable_receipt_before_source_resolution_required/);\n  assert.match(config.efficiency.mutationContinuationRecoveryPolicy, /genuinely_unscoped_continuations_fail_closed/);\n  assert.equal(config.efficiency.repositorySourceContentCacheTtlSeconds, 3600);","old_content":"  assert.equal(config.efficiency.repositorySourceContentCacheTtlSeconds, 3600);"}]},{"path":"workers/cc-execution/src/version.js","edits":[{"new_content":"export const CC_EXECUTION_VERSION = \"1.58.273-stale-pr-gate-identity\";","old_content":"export const CC_EXECUTION_VERSION = \"1.58.272-bare-continuation-before-source-resolution\";"}]}],"implementation":{"files":[],"writes":[]},"requestContract":{"outcomes":[{"id":"stale-pr-gate-isolation","statement":"Closed PR events do not execute the Gate job, and commit status from another PR generation cannot authorize or veto the current PR.","proofConditionIds":["gate-identity-runtime"]},{"id":"continuation-contract","statement":"The proven bare same-mission continuation recovery ordering is recorded in the control-plane capabilities manifest.","proofConditionIds":["gate-identity-runtime"]}],"objective":"Finish stale pull-request Gate isolation with the smallest replay-safe implementation. The Gate job runs only when github.event.pull_request.state is open. prReady fetches recent Actions runs alongside exact commit status, verifies the status run is for the exact PR number and exact head SHA, recovers to the latest matching exact-PR run when the commit status points at another PR generation, and remains pending when no exact matching run exists. Also document the already-proven bare same-mission continuation recovery policy. Add structural regression coverage, Gate, squash merge, release cc-execution, and verify production.","constraints":[{"id":"fail-closed-missing-exact-run","statement":"If recent Actions truth has no Gate run matching both the current PR and current head SHA, readiness stays pending.","proofConditionIds":["gate-identity-runtime"]}],"proofConditions":[{"id":"gate-identity-runtime","kind":"runtime","claim":"Production cc-execution runs the exact-PR Gate identity policy after canonical release.","required":true,"requiredReleaseTargets":["ccExecution"]}]},"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":null,"ownerApproved":true,"releaseIntent":null,"sourceTargets":[".forgejo/workflows/knocklaunch.yml","workers/cc-execution/src/index-release-fast-lane.js","workers/cc-execution/test/release-orchestration-invariants.test.js","config/control-plane-capabilities.json","workers/cc-execution/src/version.js"],"requestContract":{"outcomes":[{"id":"stale-pr-gate-isolation","statement":"Closed PR events do not execute the Gate job, and commit status from another PR generation cannot authorize or veto the current PR.","proofConditionIds":["gate-identity-runtime"]},{"id":"continuation-contract","statement":"The proven bare same-mission continuation recovery ordering is recorded in the control-plane capabilities manifest.","proofConditionIds":["gate-identity-runtime"]}],"objective":"Finish stale pull-request Gate isolation with the smallest replay-safe implementation. The Gate job runs only when github.event.pull_request.state is open. prReady fetches recent Actions runs alongside exact commit status, verifies the status run is for the exact PR number and exact head SHA, recovers to the latest matching exact-PR run when the commit status points at another PR generation, and remains pending when no exact matching run exists. Also document the already-proven bare same-mission continuation recovery policy. Add structural regression coverage, Gate, squash merge, release cc-execution, and verify production.","constraints":[{"id":"fail-closed-missing-exact-run","statement":"If recent Actions truth has no Gate run matching both the current PR and current head SHA, readiness stays pending.","proofConditionIds":["gate-identity-runtime"]}],"proofConditions":[{"id":"gate-identity-runtime","kind":"runtime","claim":"Production cc-execution runs the exact-PR Gate identity policy after canonical release.","required":true,"requiredReleaseTargets":["ccExecution"]}]},"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[".forgejo/workflows/knocklaunch.yml","workers/cc-execution/src/index-release-fast-lane.js","workers/cc-execution/test/release-orchestration-invariants.test.js","config/control-plane-capabilities.json","workers/cc-execution/src/version.js"],"controlPlaneMaintenanceReason":"Make Gate and merge readiness exact-PR identity aware without introducing replay-sensitive helper declarations."},"proofRequirements":null,"controlPlaneUnfreeze":true,"durableMutationResume":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[".forgejo/workflows/knocklaunch.yml","workers/cc-execution/src/index-release-fast-lane.js","workers/cc-execution/test/release-orchestration-invariants.test.js","config/control-plane-capabilities.json","workers/cc-execution/src/version.js"],"controlPlaneMaintenanceReason":"Make Gate and merge readiness exact-PR identity aware without introducing replay-sensitive helper declarations."},"recovery":false,"fingerprint":"9a42d52894a4dfebab71e5f86d7bf6fdcf6c436f25e0a35406ad0da7e2e6a9d8","replayCount":0,"serializedBytes":13519},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:42:05.765791+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:fce8335a-c19b-472b-8901-a19cc5d51292:repository-mutation-intent:9a42d52894a4dfebab71e5f86d7bf6fdcf6c436f25e0a35406ad0da7e2e6a9d8:0","mission_step_id":"3cedd61b-1679-4ff8-a508-4d9b3a63d4f9","command_center_event_id":"fce8335a-c19b-472b-8901-a19cc5d51292"},{"id":"7a0a878c-d64e-4b27-8c17-f6f8498e9090","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"e99e428c17de3371db62d3ddcf06e8dded409bf8","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"e99e428c17de3371db62d3ddcf06e8dded409bf8","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"pending"},"requestContractHash":"c895042fa88aa3898b0f8622e5351f9bae0bb60011515a0da955fd49551b7655","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/10668","runId":10668,"status":"waiting","sourceSha":"e99e428c17de3371db62d3ddcf06e8dded409bf8","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true,"targetStates":{"frontend":"pending"},"targetJobCount":7,"observedTargetStates":{"frontend":"pending"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:37:15.327594+00:00","proof_gate":"canonical_release_pending","source_sha":"e99e428c17de3371db62d3ddcf06e8dded409bf8","external_id":"forgejo-main-e99e428c17de","receipt_type":"canonical_release_status","idempotency_key":"mission:aa1e2d83-22ea-4f99-84c0-58a4d960ae6a:forgejo-release-status:e99e428c17de3371db62d3ddcf06e8dded409bf8:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"50118aa1-8cdd-4d94-9daa-35c8fab74fda","command_center_event_id":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a"},{"id":"11faecf5-dd49-4287-82c7-05ba8b644ffb","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-fce8335ac19b","reason":"pull_request_checks_pending","status":"waiting_for_gate","metrics":{"receiptBytes":16374,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":0,"executorlessWaitMs":6809,"firstUsefulResultAt":"2026-09-25T00:42:05.715Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.272-bare-continuation-before-source-resolution","prNumber":3693,"terminal":false,"missionId":"fce8335a-c19b-472b-8901-a19cc5d51292","operation":"execute_mission","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":890,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":677,"approvedPlanMs":0,"missionSetupMs":512,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":281,"ledgerReconcileMs":0,"lineageReconcileMs":231,"resolvePreflightMs":512,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":281,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request after the exact-head KnockLaunch Gate changes state.","receiptRef":{"mode":"full","missionId":"fce8335a-c19b-472b-8901-a19cc5d51292"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1969,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:42:14.396723+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"3693","receipt_type":"execute_mission","idempotency_key":"mission:fce8335a-c19b-472b-8901-a19cc5d51292:execute_mission:repair_mission_waiting_for_gate:current-generation","mission_step_id":"6cd7aff7-665a-42d0-b3a2-11a0912c3d70","command_center_event_id":"fce8335a-c19b-472b-8901-a19cc5d51292"},{"id":"7203aa81-6d3e-47a6-b0dd-351fa709647e","source":"cc-execution","status":"verified","payload":{"ownerWaitSloMs":{"merge_to_live_ms":null,"owner_action_to_pr_ms":null,"green_gate_to_merge_ms":null,"owner_action_to_useful_response_ms":null},"ownerWaitLiveAt":"2026-09-22T02:39:38.600Z"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:39:01.12165+00:00","proof_gate":"owner_wait_live_milestone_recorded","source_sha":null,"external_id":null,"receipt_type":"owner_wait_live_milestone","idempotency_key":"mission:aa1e2d83-22ea-4f99-84c0-58a4d960ae6a:owner-wait-live","mission_step_id":"27a784bc-5624-434d-afea-dfb1fcd4e355","command_center_event_id":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a"},{"id":"6a50baf0-1409-42a2-95c6-f233c97c4c0c","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-538a9c14718a","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":44216,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":"2026-09-25T13:54:38.730Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.281-witness-lane-affinity","prNumber":3735,"terminal":false,"missionId":"538a9c14-718a-4b3e-87fa-1c98217b29e5","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":4419,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":1806,"missionSetupMs":302,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":302,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":302,"repositoryMutationMs":2613,"repositoryProviderMs":2613,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":1665,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":302,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":948},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"538a9c14-718a-4b3e-87fa-1c98217b29e5"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3835,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T13:54:44.341536+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3735","receipt_type":"execute_mission","idempotency_key":"mission:538a9c14-718a-4b3e-87fa-1c98217b29e5:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"f25c64ae-dbe5-4d9b-a911-33448dd80428","command_center_event_id":"538a9c14-718a-4b3e-87fa-1c98217b29e5"},{"id":"048cfa01-b9b7-468a-bdd5-358ddb4365e6","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-91e9b69517a4","reason":"control_plane_maintenance_authorization_required","status":"blocked","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":null,"terminal":false,"missionId":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":0,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":0,"missionSetupMs":1138,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":1138,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":1138,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":1138,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1561,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:37:16.515449+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:91e9b695-17a4-4a0e-98c6-d7af7ea2fca8:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"43cecbf5-7781-4e18-9fb0-2a7e6e5c6f15","command_center_event_id":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8"},{"id":"c6a32a86-e27a-4b53-ae4f-a5b0a1426330","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","frontend-cloudflare/live":"success"},"mainSha":"e99e428c17de3371db62d3ddcf06e8dded409bf8","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"e99e428c17de3371db62d3ddcf06e8dded409bf8","releaseState":"verified","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"success"},"requestContractHash":"c895042fa88aa3898b0f8622e5351f9bae0bb60011515a0da955fd49551b7655","forgejoWorkflowProof":{"runId":10668,"source":"signed_push_receipt","status":"success","results":{},"conclusion":"success","targetStates":{"frontend":"success"},"targetJobCount":7,"observedTargetStates":{"frontend":"success"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:38:55.212258+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"e99e428c17de3371db62d3ddcf06e8dded409bf8","external_id":"forgejo-main-e99e428c17de","receipt_type":"canonical_release_status","idempotency_key":"mission:aa1e2d83-22ea-4f99-84c0-58a4d960ae6a:forgejo-release-status:e99e428c17de3371db62d3ddcf06e8dded409bf8:verified:forgejo-main/source=success|forgejo-release/workflow=success|frontend-cloudflare/live=success","mission_step_id":"27a784bc-5624-434d-afea-dfb1fcd4e355","command_center_event_id":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a"},{"id":"cc8f19fd-e478-4d93-b63e-3a90acecc496","source":"cc-execution","status":"pending","payload":{"ok":true,"jobId":"8e2810b0-076f-475d-9e94-2172708831e2","phase":"universal_visual_witness_supervised","branch":"ai/objective-first-repair-aa1e2d8322ea","reason":null,"status":"pending","metrics":{"receiptBytes":0,"releaseCount":1,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3392,"terminal":false,"missionId":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a","operation":"visual_proof_started","proofGate":"universal_visual_witness_pending","sourceSha":"e99e428c17de3371db62d3ddcf06e8dded409bf8","timingsMs":{"queue":286,"total":844,"execution":558},"nextAction":"Execution is pending; poll inspect_route_status only when fresh progress is expected, or cancel with inspect_route_cancel.","receiptRef":{"mode":"full","missionId":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a"},"performance":null,"deploymentId":"forgejo-main-e99e428c17de","releaseState":"verified","visualWitness":{"role":"GodMode","jobId":"8e2810b0-076f-475d-9e94-2172708831e2","tenant":null,"runnerUrl":"cloudflare-container://visual-witness-virtual","runnerLane":"virtual","attemptsUsed":0,"supervisorId":"8e2810b0-076f-475d-9e94-2172708831e2","failureReason":null,"observedRoute":null,"runnerVersion":null,"attemptLineage":[],"missionOutcome":null,"requestedRoute":"/sign-agreement","runnerSourceSha":null,"selectedViewports":["desktop"],"checkpointAccounting":null,"correctiveGeneration":0,"restartReplayHistory":[]},"workflowRunId":10668,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1765,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:38:58.723771+00:00","proof_gate":"post_release_visual_proof_started","source_sha":"e99e428c17de3371db62d3ddcf06e8dded409bf8","external_id":"8e2810b0-076f-475d-9e94-2172708831e2","receipt_type":"visual_proof_started","idempotency_key":"mission:aa1e2d83-22ea-4f99-84c0-58a4d960ae6a:visual-start:8e2810b0-076f-475d-9e94-2172708831e2","mission_step_id":"3a922938-d470-498a-843f-f91f453297f4","command_center_event_id":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a"},{"id":"728a9031-a545-405e-a795-7b33db75ef36","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-91e9b69517a4","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":null,"terminal":false,"missionId":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":79,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":424,"providerAuthMs":0,"ledgerPrepareMs":373,"ledgerReconcileMs":0,"lineageReconcileMs":51,"resolvePreflightMs":424,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":373,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Inspect the bounded repository paths, synthesize exact files or anchored_edits, and call /mission/execute again automatically with this same missionId without another owner prompt or workflow switch.","receiptRef":{"mode":"full","missionId":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3612,"likelyAffectedFiles":["workers/cc-execution/src/mission-control.js","workers/cc-execution/src/mission-executor.js","workers/cc-execution/src/execute-objective.js"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:37:02.980437+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:91e9b695-17a4-4a0e-98c6-d7af7ea2fca8:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"7560675d-205a-4bf8-916f-260db7d5a630","command_center_event_id":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8"},{"id":"e87d4395-fcaa-42aa-b336-468dc7d9b547","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"5dab1e391e67f8ef184740ad570d5003411f586c","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-1","satisfied":true,"statement":"Make PAUL's canonical identity part of PAUL's own stable operating knowledge. Add the exact canonical expansion `PAUL = Platform Automation & Understanding Layer` to the stable owner operating context/knowledge source used by PAUL, and define PAUL as the intelligence layer of KNOCKLAUNCH OS spanning platform understanding, memory/context, automation, tools/actions, missions, knowledge, vision/sandbox capabilities, and execution. Keep the change narrowly scoped, use the canonical Forgejo/Gate/release path, and verify the live owner_operating_context returns this identity after deployment. Do not run Visual Witness; this is non-visual knowledge/config work.","proofConditionIds":["proof-production"]}],"satisfied":true,"constraints":[{"id":"visual-content-truth","satisfied":true,"statement":"Do not present invented names, metrics, prices, dates, services, testimonials, credentials, customer records, or other unknown business facts as real. Omit unknowns or mark them clearly as placeholder/example content.","proofConditionIds":["proof-production"]},{"id":"capability-completeness","satisfied":true,"statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["proof-production"]},{"id":"atomic-capability-lifecycle","satisfied":true,"statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["proof-production"]}],"contractHash":"db9de616a283078706f697f0c64580a1eaa9057c95e11ae19a7bad6554ceb13f","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"proof-production","kind":"runtime","evidence":{"reason":null,"satisfied":true,"releaseState":"verified","missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{"supabaseEdge":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["supabaseEdge"],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"migrationReleaseVerified":null,"releaseRequestContractHash":"db9de616a283078706f697f0c64580a1eaa9057c95e11ae19a7bad6554ceb13f"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["supabaseEdge"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T16:53:19.710466+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"5dab1e391e67f8ef184740ad570d5003411f586c","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:25f123a8-98ed-4b05-9789-eaef13a19b68:request-contract:db9de616a283078706f697f0c64580a1eaa9057c95e11ae19a7bad6554ceb13f:5dab1e391e67f8ef184740ad570d5003411f586c:verified:","mission_step_id":"ee37d765-ef65-46cf-a31a-5457af332fab","command_center_event_id":"25f123a8-98ed-4b05-9789-eaef13a19b68"},{"id":"25927d93-6f98-4982-bc46-a45e8886679a","source":"durable-mission-ledger","status":"pending","payload":{"sourceSha":"e99e428c17de3371db62d3ddcf06e8dded409bf8","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-1","satisfied":false,"statement":"Set the public agreement signing PDF viewer default zoom to 85%. Move the zoom controls and page-selection/navigation controls into the signing header as one compact persistent strip, and remove the floating overlay from the document. Keep the strip visible while the agreement scrolls underneath. Preserve signing behavior and responsiveness. Ship and verify production.","proofConditionIds":["proof-production","proof-visual"]}],"satisfied":false,"constraints":[{"id":"capability-completeness","satisfied":true,"statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["proof-production"]},{"id":"atomic-capability-lifecycle","satisfied":true,"statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["proof-production"]}],"contractHash":"c895042fa88aa3898b0f8622e5351f9bae0bb60011515a0da955fd49551b7655","releaseBound":true,"witnessBound":false,"visualRequested":true,"visualSatisfied":false,"conditionResults":[{"id":"proof-production","kind":"runtime","evidence":{"reason":null,"satisfied":true,"releaseState":"verified","missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{"frontend":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["frontend"],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"migrationReleaseVerified":null,"releaseRequestContractHash":"c895042fa88aa3898b0f8622e5351f9bae0bb60011515a0da955fd49551b7655"},"required":true,"satisfied":true},{"id":"proof-visual","kind":"visual","evidence":{"modeBound":true,"claimBound":true,"routeBound":true,"witnessMode":"observe","witnessRoute":"https://app.knocklaunch.app/sign-agreement","currentSourceSha":"e99e428c17de3371db62d3ddcf06e8dded409bf8","witnessSourceSha":"e99e428c17de3371db62d3ddcf06e8dded409bf8","verificationState":null,"witnessRequestContractHash":"c895042fa88aa3898b0f8622e5351f9bae0bb60011515a0da955fd49551b7655"},"required":true,"satisfied":false}],"validationErrors":[],"pendingProofKinds":["visual"],"activeReleaseTargets":["frontend"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:38:56.926543+00:00","proof_gate":"request_contract_pending","source_sha":"e99e428c17de3371db62d3ddcf06e8dded409bf8","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:aa1e2d83-22ea-4f99-84c0-58a4d960ae6a:request-contract:c895042fa88aa3898b0f8622e5351f9bae0bb60011515a0da955fd49551b7655:e99e428c17de3371db62d3ddcf06e8dded409bf8:pending:visual","mission_step_id":"27a784bc-5624-434d-afea-dfb1fcd4e355","command_center_event_id":"aa1e2d83-22ea-4f99-84c0-58a4d960ae6a"},{"id":"45c822c0-9fb2-4a1a-9fea-4fe5f29778a8","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/sign-agreement-continuous-scroll-clean","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3404,"terminal":false,"missionId":"0291b6d5-7b41-4c52-9805-1237f859f207","operation":"automatic_mission_resume","proofGate":"canonical_release_dispatched","sourceSha":"c31b4681cba9bbf4cbac2524d3a5c44572cc25d0","timingsMs":{"prReadinessMs":499,"approvedPlanMs":0,"shipAndProveMs":2928,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"0291b6d5-7b41-4c52-9805-1237f859f207"},"performance":null,"deploymentId":"forgejo-main-c31b4681cba9","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1870,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:37:25.897772+00:00","proof_gate":"canonical_release_dispatched","source_sha":null,"external_id":"3404","receipt_type":"automatic_mission_resume","idempotency_key":"mission:0291b6d5-7b41-4c52-9805-1237f859f207:automatic-mission-resume:3404:canonical_release_dispatched","mission_step_id":"acd7d1cc-8c5c-44f8-8a23-03a1c1183693","command_center_event_id":"0291b6d5-7b41-4c52-9805-1237f859f207"},{"id":"5b89ac56-44be-44a9-9fbe-9e15f3469a79","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/sign-agreement-sticky-toolbar","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":3393,"terminal":false,"missionId":"d710e348-6141-42a6-a7dc-af7d10ba3def","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":4652,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":694,"missionSetupMs":278,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":278,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":278,"repositoryMutationMs":3958,"repositoryProviderMs":3958,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2111,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":278,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1847},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"d710e348-6141-42a6-a7dc-af7d10ba3def"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime","visual"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3840,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:43:09.561045+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3393","receipt_type":"execute_mission","idempotency_key":"mission:d710e348-6141-42a6-a7dc-af7d10ba3def:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"7cd168df-2ee4-4dfc-8d87-77efc08891ab","command_center_event_id":"d710e348-6141-42a6-a7dc-af7d10ba3def"},{"id":"0b22100f-bfa2-4d3a-8202-0fa0a656dab6","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/sign-agreement-sticky-toolbar","reason":"pull_request_not_merge_eligible:pull_request_merge_rejected_no_mutation:{\"headSha\":\"fa55fa1efd4a013f6f89de453757e2c5f8502805\",\"merge\":\"{\\\"message\\\":\\\"Please try again later\\\",\\\"url\\\":\\\"https://git.knocklaunch.app/api/swagger\\\"}\",\"refreshRequired\":true,\"refreshOperation\":\"forgejo_pr_refresh\",\"headMutated\":false}","status":"blocked","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3393,"terminal":false,"missionId":"d710e348-6141-42a6-a7dc-af7d10ba3def","operation":"automatic_mission_resume","proofGate":"canonical_release_blocked","sourceSha":null,"timingsMs":{"prReadinessMs":408,"approvedPlanMs":0,"shipAndProveMs":327,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"d710e348-6141-42a6-a7dc-af7d10ba3def"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1009,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:43:20.798172+00:00","proof_gate":"canonical_release_blocked","source_sha":null,"external_id":"3393","receipt_type":"automatic_mission_resume","idempotency_key":"mission:d710e348-6141-42a6-a7dc-af7d10ba3def:automatic-mission-resume:3393:canonical_release_blocked","mission_step_id":"7c41dae6-7d1a-4efd-b2a5-7c3298b1c01e","command_center_event_id":"d710e348-6141-42a6-a7dc-af7d10ba3def"},{"id":"eade33c1-e3b9-4afa-bbee-d3c3518a57a3","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/sign-agreement-sticky-toolbar","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3393,"terminal":false,"missionId":"d710e348-6141-42a6-a7dc-af7d10ba3def","operation":"automatic_mission_resume","proofGate":"canonical_release_dispatched","sourceSha":"d676d05138e07698d200b94dff922a859e36bf66","timingsMs":{"prReadinessMs":365,"approvedPlanMs":0,"shipAndProveMs":2498,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"d710e348-6141-42a6-a7dc-af7d10ba3def"},"performance":null,"deploymentId":"forgejo-main-d676d05138e0","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime","visual"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1864,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:43:24.648529+00:00","proof_gate":"canonical_release_dispatched","source_sha":null,"external_id":"3393","receipt_type":"automatic_mission_resume","idempotency_key":"mission:d710e348-6141-42a6-a7dc-af7d10ba3def:automatic-mission-resume:3393:canonical_release_dispatched","mission_step_id":"6e4f1ea4-a453-42d0-a9a4-a19aa5e388e0","command_center_event_id":"d710e348-6141-42a6-a7dc-af7d10ba3def"},{"id":"0da8e322-c37c-4a3e-a9de-079e510f01bb","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","cc-execution/runtime-proof":"pending"},"mainSha":"386da2f613ba4b033631aa13be21104be9091c30","missing":[],"pending":["forgejo-release/workflow","cc-execution/runtime-proof"],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof"],"sourceSha":"386da2f613ba4b033631aa13be21104be9091c30","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"ccExecution":"pending"},"requestContractHash":"f52f0b7162d9577a978a14977d36cfffaf39e7588b446f7f1552f416480994b3","forgejoWorkflowProof":{"runId":10674,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"ccExecution":"pending"},"targetJobCount":7,"observedTargetStates":{"ccExecution":"pending"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"1c627b3076bc1de1d7aa8a099007df3ddc3bcc5e","deploymentId":"forgejo-main-1c627b3076bc1de1d7aa8a099007df3ddc3bcc5e","compareStatus":null,"identitySource":"local_build_metadata","runtimeVersion":"1.58.209-visual-certification-hardening","containsSourceSha":false},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:58:02.902181+00:00","proof_gate":"canonical_release_pending","source_sha":"386da2f613ba4b033631aa13be21104be9091c30","external_id":"forgejo-main-386da2f613ba","receipt_type":"canonical_release_status","idempotency_key":"mission:5504c955-cf1d-4c7d-8995-e64b5cfb5896:forgejo-release-status:386da2f613ba4b033631aa13be21104be9091c30:pending:forgejo-main/source=success|forgejo-release/workflow=pending|cc-execution/runtime-proof=pending","mission_step_id":"0f1a0cad-e8f4-4fa9-be70-cc05ffe27a04","command_center_event_id":"5504c955-cf1d-4c7d-8995-e64b5cfb5896"},{"id":"1f965e3e-26ef-4f3a-951b-c68060d13656","source":"cc-execution","status":"waiting","payload":{"kind":"heartbeat","message":"Still active in release.","nextAction":{"lane":"production-release-conductor","action":"reconcile_release","reason":"merged_source_requires_release_proof","automationAllowed":true,"ownerActionRequired":false},"silenceBudgetMs":15000,"semanticCheckpointSignature":"{\"stateMachineVersion\":1,\"phase\":\"release\",\"ownerFacingState\":null,\"latest\":{\"kind\":\"receipt\",\"key\":\"source_lineage_merged_pr_authoritative\",\"status\":\"waiting\",\"proofGate\":\"forgejo_merged_pr_is_authoritative_source_lineage\"},\"activeStep\":{\"key\":\"pull_request\",\"status\":\"waiting\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"release\",\"status\":\"waiting\",\"lane\":\"production-release-conductor\"},\"nextSafeAction\":{\"action\":\"reconcile_release\",\"lane\":\"production-release-conductor\",\"reason\":\"merged_source_requires_release_proof\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-runtime\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"pull_request\",\"deadlineAt\":\"2026-09-22T05:07:02.327364+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/objective-first-repair-91e9b69517a4\",\"prNumber\":3398,\"sourceSha\":\"78a806ab82720cdc837dca6a72c29b0b5473c130\",\"deploymentId\":\"forgejo-main-78a806ab8272\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:03:48.91769+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:91e9b695-17a4-4a0e-98c6-d7af7ea2fca8:owner-progress-heartbeat:119336415","mission_step_id":"4a128b9d-2995-4d42-8f77-ad3533e4efd6","command_center_event_id":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8"},{"id":"e3c28892-5e8a-401b-8f65-a5e302b13f8c","source":"cc-execution","status":"authorized","payload":{"paths":[".forgejo/workflows/knocklaunch.yml","config/control-plane-capabilities.json","workers/cc-execution/src/index-release-fast-lane.js","workers/cc-execution/src/version.js","workers/cc-execution/test/release-orchestration-invariants.test.js"],"reason":"Make Gate and merge readiness exact-PR identity aware without introducing replay-sensitive helper declarations.","baseSha":"361ccbef4678184e6e2d358524ee51b34096ab98","issuedAt":1790296926632,"expiresAt":1790297106632,"missionId":"fce8335a-c19b-472b-8901-a19cc5d51292","authorizationId":"7530d9b5-8807-447e-8eed-eca993bbcded","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:42:07.005954+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"361ccbef4678184e6e2d358524ee51b34096ab98","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:7530d9b5-8807-447e-8eed-eca993bbcded","mission_step_id":"0d772f38-bd40-4bcf-8c4e-6cf452d3412d","command_center_event_id":"fce8335a-c19b-472b-8901-a19cc5d51292"},{"id":"f0dd4d51-089a-488e-8c7b-33200ab1dec2","source":"cc-execution","status":"waiting","payload":{"kind":"heartbeat","message":"Still active in release.","nextAction":{"lane":"production-release-conductor","action":"reconcile_release","reason":"merged_source_requires_release_proof","automationAllowed":true,"ownerActionRequired":false},"silenceBudgetMs":15000,"semanticCheckpointSignature":"{\"stateMachineVersion\":1,\"phase\":\"release\",\"ownerFacingState\":null,\"latest\":{\"kind\":\"receipt\",\"key\":\"source_lineage_merged_pr_authoritative\",\"status\":\"waiting\",\"proofGate\":\"forgejo_merged_pr_is_authoritative_source_lineage\"},\"activeStep\":{\"key\":\"preflight\",\"status\":\"ready\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"pull_request\",\"status\":\"retryable\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"reconcile_release\",\"lane\":\"production-release-conductor\",\"reason\":\"merged_source_requires_release_proof\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"acceptance\":{\"total\":2,\"verified\":0,\"pending\":2,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\",\"proof-visual\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"preflight\",\"deadlineAt\":\"2026-09-22T02:52:34.990374+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/sign-agreement-sticky-toolbar\",\"prNumber\":3393,\"sourceSha\":\"d676d05138e07698d200b94dff922a859e36bf66\",\"deploymentId\":\"forgejo-main-d676d05138e0\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:44:24.260973+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:d710e348-6141-42a6-a7dc-af7d10ba3def:owner-progress-heartbeat:119336337","mission_step_id":"a98d3002-2f4f-474d-b522-d2234e2f76d9","command_center_event_id":"d710e348-6141-42a6-a7dc-af7d10ba3def"},{"id":"7c8799d8-fef7-4288-be48-147807a8f91d","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-538a9c14718a","reason":"retryable_provider_transport:forgejo_provider_read_timeout","status":"retryable","metrics":{"receiptBytes":47078,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":0,"executorlessWaitMs":5568,"firstUsefulResultAt":"2026-09-25T13:54:38.730Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3735,"terminal":false,"missionId":"538a9c14-718a-4b3e-87fa-1c98217b29e5","operation":"automatic_mission_resume","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"prReadinessMs":5453,"approvedPlanMs":0,"shipAndProveMs":0,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"538a9c14-718a-4b3e-87fa-1c98217b29e5"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":819,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T13:54:56.549698+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"3735","receipt_type":"automatic_mission_resume","idempotency_key":"mission:538a9c14-718a-4b3e-87fa-1c98217b29e5:automatic-mission-resume:3735:repair_mission_pr_ready_retryable","mission_step_id":"89da2e89-e3b4-4356-90c9-677c4c0f4417","command_center_event_id":"538a9c14-718a-4b3e-87fa-1c98217b29e5"},{"id":"0e5b1bbf-71ca-4f71-88fa-a1ecf3dfc194","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-ab27e7eda756","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":null,"recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.282-lineage-main-guard","prNumber":null,"terminal":false,"missionId":"ab27e7ed-a756-40c6-a073-b8b3755f08b7","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1474,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":597,"providerAuthMs":0,"ledgerPrepareMs":597,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":597,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":597,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Inspect the bounded repository paths, synthesize exact files or anchored_edits, and call /mission/execute again automatically with this same missionId without another owner prompt or workflow switch.","receiptRef":{"mode":"full","missionId":"ab27e7ed-a756-40c6-a073-b8b3755f08b7"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":4361,"likelyAffectedFiles":["src/pages/mobile-vendor/BigPapisOwnerShell.tsx","src/PrivateAppShell.tsx","src/__tests__/contracts/mobile-tenant-avatar-navigation.contract.test.ts"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T18:48:10.977011+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:ab27e7ed-a756-40c6-a073-b8b3755f08b7:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"27bd92fc-9b57-4cd1-93d2-a1ff90625c07","command_center_event_id":"ab27e7ed-a756-40c6-a073-b8b3755f08b7"},{"id":"77da45b1-e098-4750-9a70-bb90631a7b2e","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"d676d05138e07698d200b94dff922a859e36bf66","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"d676d05138e07698d200b94dff922a859e36bf66","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"pending"},"requestContractHash":"34157281729a93ea803053e5a1c7634037dc4766c02e4c85ad535ca9c87388e7","forgejoWorkflowProof":{"runId":10670,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"frontend":"pending"},"targetJobCount":7,"observedTargetStates":{"frontend":"pending"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:43:25.786996+00:00","proof_gate":"canonical_release_pending","source_sha":"d676d05138e07698d200b94dff922a859e36bf66","external_id":"forgejo-main-d676d05138e0","receipt_type":"canonical_release_status","idempotency_key":"mission:d710e348-6141-42a6-a7dc-af7d10ba3def:forgejo-release-status:d676d05138e07698d200b94dff922a859e36bf66:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"6e4f1ea4-a453-42d0-a9a4-a19aa5e388e0","command_center_event_id":"d710e348-6141-42a6-a7dc-af7d10ba3def"},{"id":"af01a080-307f-48ec-935a-dae06be952a4","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-5504c955cf1d","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":null,"terminal":false,"missionId":"5504c955-cf1d-4c7d-8995-e64b5cfb5896","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":108,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":537,"providerAuthMs":0,"ledgerPrepareMs":537,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":537,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":537,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Inspect the bounded repository paths, synthesize exact files or anchored_edits, and call /mission/execute again automatically with this same missionId without another owner prompt or workflow switch.","receiptRef":{"mode":"full","missionId":"5504c955-cf1d-4c7d-8995-e64b5cfb5896"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":8258,"likelyAffectedFiles":["src/PrivateAppShell.tsx","src/__tests__/contracts/cc-execution-deploy-proof.test.ts","scripts/visual-witness-hosted-runner/src/mission-gateway.mjs","scripts/generate-cc-execution-action-schema.mjs","src/__tests__/contracts/frontend-public-domain-release-classification.contract.test.ts","config/capabilities/big-papis-proposal-workflow.json","config/capabilities/knocklaunch-owner-os-revenue-refactor.json","src/App.css","src/App.tsx","src/PublicAppShell.tsx","src/__tests__/contracts/cc-execution-onrunner-deploy-lane.contract.test.ts","scripts/production-release-targets.json"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:49:30.901019+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:5504c955-cf1d-4c7d-8995-e64b5cfb5896:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"d94bd1f6-6938-47a9-8df1-f81b03aa53f4","command_center_event_id":"5504c955-cf1d-4c7d-8995-e64b5cfb5896"},{"id":"4dba0639-3e96-4919-8d0a-a30f7d261fa2","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/sign-agreement-toolbar-location-fix","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":3394,"terminal":false,"missionId":"71d2b615-a257-4d23-98ea-a32d71979f7f","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":4502,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":867,"missionSetupMs":413,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":413,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":413,"repositoryMutationMs":3635,"repositoryProviderMs":3635,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2001,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":413,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1634},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"71d2b615-a257-4d23-98ea-a32d71979f7f"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3844,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:51:49.941527+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3394","receipt_type":"execute_mission","idempotency_key":"mission:71d2b615-a257-4d23-98ea-a32d71979f7f:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"d7011a32-752e-44b4-891d-e020b833a5c4","command_center_event_id":"71d2b615-a257-4d23-98ea-a32d71979f7f"},{"id":"a8c7adfb-b4df-43f5-92f5-6c0630fc7d98","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/sign-agreement-toolbar-location-fix","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3394,"terminal":false,"missionId":"71d2b615-a257-4d23-98ea-a32d71979f7f","operation":"automatic_mission_resume","proofGate":"canonical_release_dispatched","sourceSha":"a9fa6ddec1e495e1266ab2c0383d79553fdb670a","timingsMs":{"prReadinessMs":399,"approvedPlanMs":0,"shipAndProveMs":2837,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"71d2b615-a257-4d23-98ea-a32d71979f7f"},"performance":null,"deploymentId":"forgejo-main-a9fa6ddec1e4","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1864,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:52:26.293374+00:00","proof_gate":"canonical_release_dispatched","source_sha":null,"external_id":"3394","receipt_type":"automatic_mission_resume","idempotency_key":"mission:71d2b615-a257-4d23-98ea-a32d71979f7f:automatic-mission-resume:3394:canonical_release_dispatched","mission_step_id":"4bae5fea-0f14-4c99-92f4-3ac12465889d","command_center_event_id":"71d2b615-a257-4d23-98ea-a32d71979f7f"},{"id":"7ed22c09-07c7-458d-8e8e-1423f813aba9","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-ab27e7eda756","writes":[],"patches":[],"version":1,"approved":true,"missionId":"ab27e7ed-a756-40c6-a073-b8b3755f08b7","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":[],"anchored_edits":[{"path":"src/PrivateAppShell.tsx","anchor":"const selectors=['[data-tenant-modes-mobile-nav=\"true\"]','[data-tenant-modes-mobile-landing-nav=\"true\"]','[data-mobile-bottom-nav=\"true\"]','[data-tenant-mobile-nav=\"true\"]'];","replacement":"const selectors=['[data-big-papis-mobile-nav=\"true\"]','[data-tenant-modes-mobile-nav=\"true\"]','[data-tenant-modes-mobile-landing-nav=\"true\"]','[data-mobile-bottom-nav=\"true\"]','[data-tenant-mobile-nav=\"true\"]'];"},{"path":"src/PrivateAppShell.tsx","anchor":".kl-responsive-tenant-runtime [data-tenant-modes-mobile-nav=\"true\"],.kl-responsive-tenant-runtime [data-tenant-modes-mobile-landing-nav=\"true\"],.kl-responsive-tenant-runtime [data-mobile-bottom-nav=\"true\"],.kl-responsive-tenant-runtime [data-tenant-mobile-nav=\"true\"]{bottom:calc(env(safe-area-inset-bottom) + var(--kl-mobile-utility-footer-h))!important;padding-bottom:0!important}","replacement":".kl-responsive-tenant-runtime [data-big-papis-mobile-nav=\"true\"],.kl-responsive-tenant-runtime [data-tenant-modes-mobile-nav=\"true\"],.kl-responsive-tenant-runtime [data-tenant-modes-mobile-landing-nav=\"true\"],.kl-responsive-tenant-runtime [data-mobile-bottom-nav=\"true\"],.kl-responsive-tenant-runtime [data-tenant-mobile-nav=\"true\"]{bottom:calc(env(safe-area-inset-bottom) + var(--kl-mobile-utility-footer-h))!important;padding-bottom:0!important}"},{"path":"src/pages/mobile-vendor/BigPapisOwnerShell.tsx","anchor":"    }).slice(0, 4);","replacement":"    }).slice(0, 3);"},{"path":"src/pages/mobile-vendor/BigPapisOwnerShell.tsx","anchor":"      <nav data-big-papis-mobile-nav=\"true\" data-big-papis-mobile-nav-contract=\"crown-centered-v2\" className=\"fixed inset-x-0 bottom-0 z-[80] grid grid-cols-6 border-t border-white/12 bg-[#04101a]/94 px-1 pb-[env(safe-area-inset-bottom)] shadow-[0_-14px_44px_rgba(0,0,0,.32)] backdrop-blur-2xl lg:hidden\" aria-label={activeModeConfig ? `${activeModeConfig.label} mode navigation` : 'Big Papi mobile workspace'}>\n        {mobileShortcutItems.slice(0, 2).map((item, index) => { const Icon = item.icon; return <NavLink key={`left-${item.label}-${index}`} data-big-papis-mobile-shortcut=\"true\" to={item.path} className=\"flex min-h-[62px] min-w-0 flex-col items-center justify-center gap-1 px-1 text-center text-[8px] font-black text-white/62\"><span className=\"grid h-8 w-8 place-items-center rounded-xl border bg-white/[.025]\" style={{ color: item.accent, borderColor: `${item.accent}55`, background: `${item.accent}10` }}><Icon className=\"h-4 w-4\" /></span><span className=\"max-w-full truncate leading-[1.05]\">{item.label}</span></NavLink>; })}\n        {mobileShortcutItems.length < 2 ? Array.from({ length: 2 - mobileShortcutItems.length }, (_, index) => <span key={`left-placeholder-${index}`} aria-hidden=\"true\" />) : null}\n        <NavLink data-big-papis-crown-slot=\"true\" to={BIG_PAPIS_OWNER_DASHBOARD_PATH} aria-label=\"Open Big Papi modes\" className=\"flex min-h-[62px] flex-col items-center justify-center\"><span className=\"grid h-11 w-11 place-items-center rounded-full border-2 border-[#ffd52a] bg-[#091523] text-[#ffd52a] shadow-[0_0_24px_rgba(255,213,42,.42)]\"><Crown className=\"h-6 w-6\"/></span></NavLink>\n        {mobileShortcutItems.slice(2, 4).map((item, index) => { const Icon = item.icon; return <NavLink key={`right-${item.label}-${index}`} data-big-papis-mobile-shortcut=\"true\" to={item.path} className=\"flex min-h-[62px] min-w-0 flex-col items-center justify-center gap-1 px-1 text-center text-[8px] font-black text-white/62\"><span className=\"grid h-8 w-8 place-items-center rounded-xl border bg-white/[.025]\" style={{ color: item.accent, borderColor: `${item.accent}55`, background: `${item.accent}10` }}><Icon className=\"h-4 w-4\" /></span><span className=\"max-w-full truncate leading-[1.05]\">{item.label}</span></NavLink>; })}\n        {mobileShortcutItems.length < 4 ? Array.from({ length: Math.max(0, 4 - Math.max(2, mobileShortcutItems.length)) }, (_, index) => <span key={`right-placeholder-${index}`} aria-hidden=\"true\" />) : null}\n        <div data-big-papis-mobile-account-menu=\"true\" data-tenant-mobile-avatar-slot=\"true\" className=\"flex min-h-[62px] min-w-0 items-center justify-center px-1\">","replacement":"      <nav data-big-papis-mobile-nav=\"true\" data-big-papis-mobile-nav-contract=\"crown-centered-v3\" className=\"fixed inset-x-0 bottom-0 z-[80] grid grid-cols-5 border-t border-white/12 bg-[#04101a]/94 px-1 pb-[env(safe-area-inset-bottom)] shadow-[0_-14px_44px_rgba(0,0,0,.32)] backdrop-blur-2xl lg:hidden\" aria-label={activeModeConfig ? `${activeModeConfig.label} mode navigation` : 'Big Papi mobile workspace'}>\n        {mobileShortcutItems.slice(0, 2).map((item, index) => { const Icon = item.icon; return <NavLink key={`left-${item.label}-${index}`} data-big-papis-mobile-shortcut=\"true\" to={item.path} className=\"flex min-h-[62px] min-w-0 flex-col items-center justify-center gap-1 px-1 text-center text-[8px] font-black text-white/62\"><span className=\"grid h-8 w-8 place-items-center rounded-xl border bg-white/[.025]\" style={{ color: item.accent, borderColor: `${item.accent}55`, background: `${item.accent}10` }}><Icon className=\"h-4 w-4\" /></span><span className=\"max-w-full truncate leading-[1.05]\">{item.label}</span></NavLink>; })}\n        {mobileShortcutItems.length < 2 ? Array.from({ length: 2 - mobileShortcutItems.length }, (_, index) => <span key={`left-placeholder-${index}`} aria-hidden=\"true\" />) : null}\n        <NavLink data-big-papis-crown-slot=\"true\" to={BIG_PAPIS_OWNER_DASHBOARD_PATH} aria-label=\"Open Big Papi modes\" className=\"flex min-h-[62px] flex-col items-center justify-center\"><span className=\"grid h-11 w-11 place-items-center rounded-full border-2 border-[#ffd52a] bg-[#091523] text-[#ffd52a] shadow-[0_0_24px_rgba(255,213,42,.42)]\"><Crown className=\"h-6 w-6\"/></span></NavLink>\n        {mobileShortcutItems.slice(2, 3).map((item, index) => { const Icon = item.icon; return <NavLink key={`right-${item.label}-${index}`} data-big-papis-mobile-shortcut=\"true\" to={item.path} className=\"flex min-h-[62px] min-w-0 flex-col items-center justify-center gap-1 px-1 text-center text-[8px] font-black text-white/62\"><span className=\"grid h-8 w-8 place-items-center rounded-xl border bg-white/[.025]\" style={{ color: item.accent, borderColor: `${item.accent}55`, background: `${item.accent}10` }}><Icon className=\"h-4 w-4\" /></span><span className=\"max-w-full truncate leading-[1.05]\">{item.label}</span></NavLink>; })}\n        {mobileShortcutItems.length < 3 ? <span aria-hidden=\"true\" /> : null}\n        <div data-big-papis-mobile-account-menu=\"true\" data-tenant-mobile-avatar-slot=\"true\" className=\"flex min-h-[62px] min-w-0 items-center justify-center px-1\">"},{"path":"src/__tests__/contracts/mobile-tenant-avatar-navigation.contract.test.ts","anchor":"    expect(bigPapis).toContain('grid-cols-6');\n    expect(bigPapis).toContain('data-big-papis-mobile-nav-contract=\"crown-centered-v2\"');","replacement":"    expect(bigPapis).toContain('grid-cols-5');\n    expect(bigPapis).toContain('data-big-papis-mobile-nav-contract=\"crown-centered-v3\"');\n    expect(bigPapis).toContain('mobileShortcutItems.slice(2, 3)');"},{"path":"src/__tests__/contracts/mobile-tenant-avatar-navigation.contract.test.ts","anchor":"    expect(privateShell).toContain('data-tenant-mobile-shell-contract=\"canonical-v2\"');","replacement":"    expect(privateShell).toContain('data-tenant-mobile-shell-contract=\"canonical-v2\"');\n    expect(privateShell).toContain('[data-big-papis-mobile-nav=\"true\"]');"}],"implementation":{"files":[],"writes":[]},"requestContract":null,"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":"ab27e7ed-a756-40c6-a073-b8b3755f08b7","ownerApproved":true,"releaseIntent":null,"sourceTargets":[],"requestContract":null,"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":false,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"proofRequirements":null,"controlPlaneUnfreeze":false,"durableMutationResume":true,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"recovery":false,"fingerprint":"dc8e1ea65fabc23ce3190c7c9bf60ca6b6bef2ed4e6763697758a299145edf08","replayCount":0,"serializedBytes":8571},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T18:48:49.749295+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:ab27e7ed-a756-40c6-a073-b8b3755f08b7:repository-mutation-intent:dc8e1ea65fabc23ce3190c7c9bf60ca6b6bef2ed4e6763697758a299145edf08:0","mission_step_id":"8189fad7-6a84-48ab-b4ff-f29ad3a7a0c9","command_center_event_id":"ab27e7ed-a756-40c6-a073-b8b3755f08b7"},{"id":"b2266630-b269-4089-bafc-d114f9a8035d","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-46a23538ac0f","writes":[],"patches":[],"version":1,"approved":true,"missionId":"46a23538-ac0f-498a-85bf-1d527da22391","objective":"Persist PAUL's machinery-awareness invariant in durable owner context and enforce it in owner-context validation. Do not run Visual Witness.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["config/owner-context.json","scripts/validate-owner-context.mjs"],"anchored_edits":[{"path":"config/owner-context.json","edits":[{"new_content":"      \"stableContextCommand\": \"owner_operating_context\",\n      \"liveMachinerySnapshotCommand\": \"paul_machinery_snapshot\",\n      \"operationalWorkRequiresFreshMachinerySnapshot\": true,\n      \"liveMachinerySnapshotCoverage\": [\"runtime identity\", \"Forgejo main\", \"Gate state\", \"runner and capacity state\", \"queue and merge state\", \"mission and release state\", \"control-plane health\", \"provider and circuit health\"],\n      \"liveMachinerySnapshotFreshnessMaxAgeMs\": 15000,\n      \"liveMachinerySnapshotInvalidatesOn\": [\"runtime SHA change\", \"repository main change\", \"capability or schema drift\", \"connector or provider failure\", \"freshness budget expiry\"],\n      \"failClosedWhenMachinerySnapshotIsIncomplete\": true,\n      \"stableContextNeverOverridesLiveMachinery\": true,\n      \"liveCapabilitySource\": \"current server-side command registry\",\n      \"repositoryMutationCommand\": \"execute_objective\",","old_content":"      \"stableContextCommand\": \"owner_operating_context\",\n      \"liveCapabilitySource\": \"current server-side command registry\",\n      \"repositoryMutationCommand\": \"execute_objective\","}]},{"path":"scripts/validate-owner-context.mjs","edits":[{"new_content":"  if (context.authorityBoundary?.currentOwnerRequestAlwaysWins !== true) fail('current owner request must supersede stored context');\n  if (context.authorityBoundary?.liveReceiptsStillRequired !== true) fail('owner context must not replace live proof');\n  if (context.assistantBehavior?.operatorRouting?.liveMachinerySnapshotCommand !== 'paul_machinery_snapshot') fail('PAUL live machinery snapshot command is missing');\n  if (context.assistantBehavior?.operatorRouting?.operationalWorkRequiresFreshMachinerySnapshot !== true) fail('PAUL must synchronize live machinery before operational work');\n  if (context.assistantBehavior?.operatorRouting?.failClosedWhenMachinerySnapshotIsIncomplete !== true) fail('PAUL machinery synchronization must fail closed');\n  if (context.assistantBehavior?.operatorRouting?.stableContextNeverOverridesLiveMachinery !== true) fail('stable context must never override live machinery');\n  if (context.tenantAndApplicationDoctrine?.tenantSpecificDoesNotMeanForked !== true) fail('tenant-specific composition doctrine is missing');","old_content":"  if (context.authorityBoundary?.currentOwnerRequestAlwaysWins !== true) fail('current owner request must supersede stored context');\n  if (context.authorityBoundary?.liveReceiptsStillRequired !== true) fail('owner context must not replace live proof');\n  if (context.tenantAndApplicationDoctrine?.tenantSpecificDoesNotMeanForked !== true) fail('tenant-specific composition doctrine is missing');"}]}],"implementation":{"files":[],"writes":[]},"requestContract":null,"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":"46a23538-ac0f-498a-85bf-1d527da22391","ownerApproved":true,"releaseIntent":null,"sourceTargets":["config/owner-context.json","scripts/validate-owner-context.mjs"],"requestContract":null,"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":false,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"proofRequirements":null,"controlPlaneUnfreeze":false,"durableMutationResume":true,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"recovery":false,"fingerprint":"07dc91374fd5d5f98dab42c444561cd411f66735da3d0e65567baeda63a93c5f","replayCount":0,"serializedBytes":4017},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T17:16:11.69194+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:46a23538-ac0f-498a-85bf-1d527da22391:repository-mutation-intent:07dc91374fd5d5f98dab42c444561cd411f66735da3d0e65567baeda63a93c5f:0","mission_step_id":"ccb99647-9a2b-4764-b250-4c2351905981","command_center_event_id":"46a23538-ac0f-498a-85bf-1d527da22391"},{"id":"c658e38c-7316-4159-b401-ad825e61fea1","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-fce8335ac19b","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":13666,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":"2026-09-25T00:42:05.715Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.272-bare-continuation-before-source-resolution","prNumber":3693,"terminal":false,"missionId":"fce8335a-c19b-472b-8901-a19cc5d51292","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":5805,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":1967,"missionSetupMs":337,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":337,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":337,"repositoryMutationMs":3838,"repositoryProviderMs":3838,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2417,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":337,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1421},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"fce8335a-c19b-472b-8901-a19cc5d51292"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":4161,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:42:12.565067+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3693","receipt_type":"execute_mission","idempotency_key":"mission:fce8335a-c19b-472b-8901-a19cc5d51292:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"3cedd61b-1679-4ff8-a508-4d9b3a63d4f9","command_center_event_id":"fce8335a-c19b-472b-8901-a19cc5d51292"},{"id":"92970e55-6d53-4a69-ba87-1efbb53be72a","source":"cc-execution","status":"release_reconciliation_pending","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-fce8335ac19b","reason":null,"status":"release_reconciliation_pending","metrics":{"receiptBytes":18326,"releaseCount":0,"toolCallCount":4,"repeatedCallCount":0,"executorlessWaitMs":8641,"firstUsefulResultAt":"2026-09-25T00:42:05.715Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.272-bare-continuation-before-source-resolution","prNumber":3693,"terminal":false,"missionId":"fce8335a-c19b-472b-8901-a19cc5d51292","operation":"execute_mission","proofGate":"canonical_release_reconciliation_pending","sourceSha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":3791,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":437,"approvedPlanMs":0,"missionSetupMs":416,"providerAuthMs":0,"shipAndProveMs":2911,"ledgerPrepareMs":276,"ledgerReconcileMs":0,"lineageReconcileMs":140,"resolvePreflightMs":416,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":276,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"reconcile_release","receiptRef":{"mode":"full","missionId":"fce8335a-c19b-472b-8901-a19cc5d51292"},"performance":null,"deploymentId":"forgejo-main-7e6686d266fc","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":2750,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:42:53.84623+00:00","proof_gate":"canonical_release_reconciliation_pending","source_sha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","external_id":"forgejo-main-7e6686d266fc","receipt_type":"execute_mission","idempotency_key":"mission:fce8335a-c19b-472b-8901-a19cc5d51292:execute_mission:canonical_release_reconciliation_pending:current-generation","mission_step_id":"e7fc3574-4c7e-4998-a60a-877748b4cc8c","command_center_event_id":"fce8335a-c19b-472b-8901-a19cc5d51292"},{"id":"78e35bb2-5ea6-42ef-ba1c-9983f1ec5599","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-5bc6055a2954","reason":"pull_request_not_open","status":"retryable","metrics":{"receiptBytes":26129,"releaseCount":0,"toolCallCount":17,"repeatedCallCount":6,"executorlessWaitMs":1208157,"firstUsefulResultAt":"2026-09-25T00:24:29.950Z","recoveryAttemptCount":7,"ownerInterruptionCount":0},"version":null,"prNumber":3689,"terminal":false,"missionId":"5bc6055a-2954-43d2-8509-02bdd0065617","operation":"automatic_mission_resume","proofGate":"repair_mission_auto_progress_authorization_retryable","sourceSha":null,"timingsMs":{"prReadinessMs":0,"approvedPlanMs":0,"shipAndProveMs":0,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"5bc6055a-2954-43d2-8509-02bdd0065617"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":689,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:44:38.146419+00:00","proof_gate":"repair_mission_auto_progress_authorization_retryable","source_sha":null,"external_id":"3689","receipt_type":"automatic_mission_resume","idempotency_key":"mission:5bc6055a-2954-43d2-8509-02bdd0065617:automatic-mission-resume:3689:repair_mission_auto_progress_authorization_retryable","mission_step_id":"9640baa8-d8ac-4c6c-9351-42f36be68b19","command_center_event_id":"5bc6055a-2954-43d2-8509-02bdd0065617"},{"id":"886e5a77-c695-45ed-82cc-7ab1538f15ee","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-23bf4e4d04e7","prNumber":4027,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"44c56e2f91f4fd9b9da9aa9d2f2f62ed992927cc","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T18:00:54.742196+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"44c56e2f91f4fd9b9da9aa9d2f2f62ed992927cc","external_id":"4027","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:23bf4e4d-04e7-4ab1-905d-2da5736d6f70:merged-pr:4027:44c56e2f91f4fd9b9da9aa9d2f2f62ed992927cc","mission_step_id":"aad367cf-7c2c-459a-834a-2cdad7db901d","command_center_event_id":"23bf4e4d-04e7-4ab1-905d-2da5736d6f70"},{"id":"80bdc8e5-ed2f-4b1a-8c86-4b6ed3ffbb68","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","cc-execution/runtime-proof":"pending"},"mainSha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","missing":[],"pending":["forgejo-release/workflow","cc-execution/runtime-proof"],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof"],"sourceSha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"ccExecution":"pending"},"requestContractHash":"b30cf319fcce752fd6fd6fc7b24819db1b3f1c8bb75569296b063c5e88d5d7b7","forgejoWorkflowProof":{"runId":11678,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"ccExecution":"pending"},"targetJobCount":7,"observedTargetStates":{"ccExecution":"pending"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"361ccbef4678184e6e2d358524ee51b34096ab98","deploymentId":"forgejo-main-361ccbef4678184e6e2d358524ee51b34096ab98","compareStatus":null,"identitySource":"local_build_metadata","runtimeVersion":"1.58.272-bare-continuation-before-source-resolution","containsSourceSha":false},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:43:30.412544+00:00","proof_gate":"canonical_release_pending","source_sha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","external_id":"forgejo-main-7e6686d266fc","receipt_type":"canonical_release_status","idempotency_key":"mission:fce8335a-c19b-472b-8901-a19cc5d51292:forgejo-release-status:7e6686d266fc6651d4e3862b68cc3378b73f03cc:pending:forgejo-main/source=success|forgejo-release/workflow=pending|cc-execution/runtime-proof=pending","mission_step_id":"e7fc3574-4c7e-4998-a60a-877748b4cc8c","command_center_event_id":"fce8335a-c19b-472b-8901-a19cc5d51292"},{"id":"9a125bdc-0b4f-46bf-9211-c73c2d967d70","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"a9fa6ddec1e495e1266ab2c0383d79553fdb670a","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"a9fa6ddec1e495e1266ab2c0383d79553fdb670a","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"pending"},"requestContractHash":"9c7a68cc001d191ce7ff61d12ac6d1d6ed3480139e3a063dbcb9c284cbf9706b","forgejoWorkflowProof":{"runId":10672,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"frontend":"pending"},"targetJobCount":7,"observedTargetStates":{"frontend":"pending"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:52:28.407128+00:00","proof_gate":"canonical_release_pending","source_sha":"a9fa6ddec1e495e1266ab2c0383d79553fdb670a","external_id":"forgejo-main-a9fa6ddec1e4","receipt_type":"canonical_release_status","idempotency_key":"mission:71d2b615-a257-4d23-98ea-a32d71979f7f:forgejo-release-status:a9fa6ddec1e495e1266ab2c0383d79553fdb670a:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"4bae5fea-0f14-4c99-92f4-3ac12465889d","command_center_event_id":"71d2b615-a257-4d23-98ea-a32d71979f7f"},{"id":"752b6689-d8d1-4adc-9d82-a276b3b470e4","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-fce8335ac19b","prNumber":3693,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:43:29.055299+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","external_id":"3693","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:fce8335a-c19b-472b-8901-a19cc5d51292:merged-pr:3693:7e6686d266fc6651d4e3862b68cc3378b73f03cc","mission_step_id":"e7fc3574-4c7e-4998-a60a-877748b4cc8c","command_center_event_id":"fce8335a-c19b-472b-8901-a19cc5d51292"},{"id":"fd6174b5-e426-4606-917c-f535fc191d92","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-d0272ffcd299","reason":"pull_request_not_open","status":"retryable","metrics":{"receiptBytes":23235,"releaseCount":0,"toolCallCount":6,"repeatedCallCount":1,"executorlessWaitMs":266818,"firstUsefulResultAt":"2026-09-25T00:40:19.137Z","recoveryAttemptCount":1,"ownerInterruptionCount":0},"version":null,"prNumber":3692,"terminal":false,"missionId":"d0272ffc-d299-4238-8ad2-8de8b033e23a","operation":"automatic_mission_resume","proofGate":"repair_mission_auto_progress_authorization_retryable","sourceSha":null,"timingsMs":{"prReadinessMs":0,"approvedPlanMs":0,"shipAndProveMs":0,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"d0272ffc-d299-4238-8ad2-8de8b033e23a"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":689,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:44:45.99304+00:00","proof_gate":"repair_mission_auto_progress_authorization_retryable","source_sha":null,"external_id":"3692","receipt_type":"automatic_mission_resume","idempotency_key":"mission:d0272ffc-d299-4238-8ad2-8de8b033e23a:automatic-mission-resume:3692:repair_mission_auto_progress_authorization_retryable","mission_step_id":"fafbd6cb-32d8-4ab5-acfc-dac386b58077","command_center_event_id":"d0272ffc-d299-4238-8ad2-8de8b033e23a"},{"id":"5ec5443e-a6c8-4381-850c-dc4e5364c23e","source":"cc-execution","status":"cancelled","payload":{"cancelled":true,"missionId":"d0272ffc-d299-4238-8ad2-8de8b033e23a"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:46:11.704958+00:00","proof_gate":"durable_mission_cancelled","source_sha":null,"external_id":null,"receipt_type":"owner_mission_cancelled","idempotency_key":"mission:d0272ffc-d299-4238-8ad2-8de8b033e23a:mission-cancel:d0272ffc-d299-4238-8ad2-8de8b033e23a","mission_step_id":"fafbd6cb-32d8-4ab5-acfc-dac386b58077","command_center_event_id":"d0272ffc-d299-4238-8ad2-8de8b033e23a"},{"id":"fca12a05-8dc9-44d2-8da4-29574075dff3","source":"cc-execution","status":"waiting","payload":{"kind":"heartbeat","message":"Still active in release.","nextAction":{"lane":"production-release-conductor","action":"reconcile_release","reason":"merged_source_requires_release_proof","automationAllowed":true,"ownerActionRequired":false},"silenceBudgetMs":15000,"semanticCheckpointSignature":"{\"stateMachineVersion\":1,\"phase\":\"release\",\"ownerFacingState\":null,\"latest\":{\"kind\":\"receipt\",\"key\":\"source_lineage_merged_pr_authoritative\",\"status\":\"waiting\",\"proofGate\":\"forgejo_merged_pr_is_authoritative_source_lineage\"},\"activeStep\":{\"key\":\"preflight\",\"status\":\"ready\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"pull_request\",\"status\":\"ready\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"reconcile_release\",\"lane\":\"production-release-conductor\",\"reason\":\"merged_source_requires_release_proof\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"acceptance\":{\"total\":2,\"verified\":0,\"pending\":2,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\",\"proof-visual\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"preflight\",\"deadlineAt\":\"2026-09-22T03:01:44.910165+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/sign-agreement-toolbar-location-fix\",\"prNumber\":3394,\"sourceSha\":\"a9fa6ddec1e495e1266ab2c0383d79553fdb670a\",\"deploymentId\":\"forgejo-main-a9fa6ddec1e4\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:53:20.687803+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:71d2b615-a257-4d23-98ea-a32d71979f7f:owner-progress-heartbeat:119336373","mission_step_id":"3c30c5c4-1390-4fe6-822f-69a6176602af","command_center_event_id":"71d2b615-a257-4d23-98ea-a32d71979f7f"},{"id":"31085458-a8f3-43f4-9f24-538ec18ae89e","source":"forgejo","status":"waiting","payload":{"branch":"ai/sign-agreement-toolbar-location-fix","prNumber":3394,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"a9fa6ddec1e495e1266ab2c0383d79553fdb670a","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:52:48.186411+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"a9fa6ddec1e495e1266ab2c0383d79553fdb670a","external_id":"3394","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:71d2b615-a257-4d23-98ea-a32d71979f7f:merged-pr:3394:a9fa6ddec1e495e1266ab2c0383d79553fdb670a","mission_step_id":"4bae5fea-0f14-4c99-92f4-3ac12465889d","command_center_event_id":"71d2b615-a257-4d23-98ea-a32d71979f7f"},{"id":"46e5b4ea-de82-4061-96a0-7c4831de0852","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-5504c955cf1d","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":3395,"terminal":false,"missionId":"5504c955-cf1d-4c7d-8995-e64b5cfb5896","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":5547,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":2304,"missionSetupMs":937,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":937,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":937,"repositoryMutationMs":3243,"repositoryProviderMs":3243,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":1993,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":937,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1250},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"5504c955-cf1d-4c7d-8995-e64b5cfb5896"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["repository","runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3684,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:57:22.491308+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3395","receipt_type":"execute_mission","idempotency_key":"mission:5504c955-cf1d-4c7d-8995-e64b5cfb5896:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"956ed386-db98-40f2-88c4-c007e44dd68d","command_center_event_id":"5504c955-cf1d-4c7d-8995-e64b5cfb5896"},{"id":"b1cefbc9-f178-48ff-9a9e-6550556c742c","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-5504c955cf1d","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3395,"terminal":false,"missionId":"5504c955-cf1d-4c7d-8995-e64b5cfb5896","operation":"automatic_mission_resume","proofGate":"canonical_release_dispatched","sourceSha":"386da2f613ba4b033631aa13be21104be9091c30","timingsMs":{"prReadinessMs":442,"approvedPlanMs":0,"shipAndProveMs":2800,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"5504c955-cf1d-4c7d-8995-e64b5cfb5896"},"performance":null,"deploymentId":"forgejo-main-386da2f613ba","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1945,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:58:00.647671+00:00","proof_gate":"canonical_release_dispatched","source_sha":null,"external_id":"3395","receipt_type":"automatic_mission_resume","idempotency_key":"mission:5504c955-cf1d-4c7d-8995-e64b5cfb5896:automatic-mission-resume:3395:canonical_release_dispatched","mission_step_id":"0f1a0cad-e8f4-4fa9-be70-cc05ffe27a04","command_center_event_id":"5504c955-cf1d-4c7d-8995-e64b5cfb5896"},{"id":"f5109a65-9d3f-45e4-bbbe-8d0c0edfacac","source":"cc-execution","status":"blocked","payload":{"reason":"control_plane_maintenance_authorization_required","fingerprint":"26cb3a074a1564bef7005dbffa1232bb0b044fb868cf2d560a4501803a93b935"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T18:07:49.899954+00:00","proof_gate":"repository_mutation_intent_deterministic_failure","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent_blocked","idempotency_key":"mission:adb318f5-e09e-428d-ac21-f6210f289f8c:repository-mutation-intent-blocked:26cb3a074a1564bef7005dbffa1232bb0b044fb868cf2d560a4501803a93b935","mission_step_id":"ebd6f951-57ef-46ee-ad73-68ed18693040","command_center_event_id":"adb318f5-e09e-428d-ac21-f6210f289f8c"},{"id":"45c57c6d-b702-4212-87ce-67a2ea39e190","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","cc-execution/runtime-proof":"success"},"mainSha":"386da2f613ba4b033631aa13be21104be9091c30","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof"],"sourceSha":"386da2f613ba4b033631aa13be21104be9091c30","releaseState":"verified","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"ccExecution":"success"},"requestContractHash":"f52f0b7162d9577a978a14977d36cfffaf39e7588b446f7f1552f416480994b3","forgejoWorkflowProof":{"runId":10674,"source":"exact_live_cc_execution_runtime_identity","status":"running","liveSha":"386da2f613ba4b033631aa13be21104be9091c30","results":{},"proofGate":"cc_execution_exact_live_runtime_substitutes_transient_workflow_receipt","sourceSha":"386da2f613ba4b033631aa13be21104be9091c30","conclusion":"running","deploymentId":"forgejo-main-386da2f613ba4b033631aa13be21104be9091c30","targetStates":{"ccExecution":"pending"},"runtimeVersion":"1.58.209-visual-certification-hardening","targetJobCount":7,"observedTargetStates":{"ccExecution":"pending"},"workflowReceiptSubstituted":true},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"386da2f613ba4b033631aa13be21104be9091c30","proofGate":"cc_execution_target_aware_runtime_identity_verified","deploymentId":"forgejo-main-386da2f613ba4b033631aa13be21104be9091c30","compareStatus":"identical","workflowRunId":10674,"identitySource":"local_build_metadata","runtimeVersion":"1.58.209-visual-certification-hardening","workflowFailed":false,"containsSourceSha":true},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:58:39.460106+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"386da2f613ba4b033631aa13be21104be9091c30","external_id":"forgejo-main-386da2f613ba","receipt_type":"canonical_release_status","idempotency_key":"mission:5504c955-cf1d-4c7d-8995-e64b5cfb5896:forgejo-release-status:386da2f613ba4b033631aa13be21104be9091c30:verified:forgejo-main/source=success|forgejo-release/workflow=success|cc-execution/runtime-proof=success","mission_step_id":"aa47f151-842f-4f19-80e8-2394b14ef2ce","command_center_event_id":"5504c955-cf1d-4c7d-8995-e64b5cfb5896"},{"id":"6832dee3-46b9-404f-a4f4-c52780d57463","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"386da2f613ba4b033631aa13be21104be9091c30","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"fast-ui-branch","satisfied":true,"statement":"Bounded frontend-only writes qualify for Fast UI without requiring the caller to pre-supply an ai branch; the fast path generates a safe ai branch itself.","proofConditionIds":["gate-proof","runtime-proof"]}],"satisfied":true,"constraints":[{"id":"safety","satisfied":true,"statement":"Explicit non-ai branches remain ineligible, protected main remains immutable, and bounded frontend safety exclusions remain unchanged.","proofConditionIds":["gate-proof"]},{"id":"no-heavy-ui","satisfied":true,"statement":"Eligible bounded frontend writes remain off durable mission and physical pull-request Gate runner machinery.","proofConditionIds":["gate-proof"]},{"id":"capability-completeness","satisfied":true,"statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["gate-proof","runtime-proof"]},{"id":"atomic-capability-lifecycle","satisfied":true,"statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["gate-proof","runtime-proof"]}],"contractHash":"f52f0b7162d9577a978a14977d36cfffaf39e7588b446f7f1552f416480994b3","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"gate-proof","kind":"repository","evidence":{"reason":null,"gateRunId":10673,"satisfied":true,"gateTestProof":null,"gateTestPassed":false,"missingTargets":[],"gateTestExecuted":false,"disallowedTargets":[],"migrationRequired":false,"namedGateTestPath":null,"releaseTargetStates":{"ccExecution":"success"},"repositoryProofGate":"request_contract_repository_verified","repositoryProofPath":null,"requestContractHash":"f52f0b7162d9577a978a14977d36cfffaf39e7588b446f7f1552f416480994b3","unsuccessfulTargets":[],"activeReleaseTargets":["ccExecution"],"allowedReleaseTargets":[],"repositoryProofStatus":"verified","expectedRepositoryPath":null,"namedGateTestSatisfied":true,"requiredReleaseTargets":[],"migrationReleaseVerified":null,"repositoryConditionBound":true,"repositoryProofSourceSha":"386da2f613ba4b033631aa13be21104be9091c30"},"required":true,"satisfied":true},{"id":"runtime-proof","kind":"runtime","evidence":{"reason":null,"satisfied":true,"releaseState":"verified","missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{"ccExecution":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["ccExecution"],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"migrationReleaseVerified":null,"releaseRequestContractHash":"f52f0b7162d9577a978a14977d36cfffaf39e7588b446f7f1552f416480994b3"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["ccExecution"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":2},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T02:58:44.351734+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"386da2f613ba4b033631aa13be21104be9091c30","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:5504c955-cf1d-4c7d-8995-e64b5cfb5896:request-contract:f52f0b7162d9577a978a14977d36cfffaf39e7588b446f7f1552f416480994b3:386da2f613ba4b033631aa13be21104be9091c30:verified:","mission_step_id":"aa47f151-842f-4f19-80e8-2394b14ef2ce","command_center_event_id":"5504c955-cf1d-4c7d-8995-e64b5cfb5896"},{"id":"24df4931-34f6-41ce-ae98-064aa4e9d5e5","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/sign-agreement-fixed-top-center-toolbar","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":3397,"terminal":false,"missionId":"c2731f05-4983-479c-83eb-1c71c88b90fe","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":4290,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":662,"missionSetupMs":408,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":408,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":408,"repositoryMutationMs":3628,"repositoryProviderMs":3628,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2070,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":408,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1558},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"c2731f05-4983-479c-83eb-1c71c88b90fe"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3720,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:02:27.891689+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3397","receipt_type":"execute_mission","idempotency_key":"mission:c2731f05-4983-479c-83eb-1c71c88b90fe:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"75b7e929-d805-433c-ae14-5eea7e26587e","command_center_event_id":"c2731f05-4983-479c-83eb-1c71c88b90fe"},{"id":"ddae9ede-b18d-4ad3-9367-95ac0ad909f9","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/sign-agreement-fixed-top-center-toolbar","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3397,"terminal":false,"missionId":"c2731f05-4983-479c-83eb-1c71c88b90fe","operation":"automatic_mission_resume","proofGate":"canonical_release_dispatched","sourceSha":"533fc2d33242bed403a14b6e6fbba01ef1a7408d","timingsMs":{"prReadinessMs":518,"approvedPlanMs":0,"shipAndProveMs":3085,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"c2731f05-4983-479c-83eb-1c71c88b90fe"},"performance":null,"deploymentId":"forgejo-main-533fc2d33242","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1823,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:02:41.368731+00:00","proof_gate":"canonical_release_dispatched","source_sha":null,"external_id":"3397","receipt_type":"automatic_mission_resume","idempotency_key":"mission:c2731f05-4983-479c-83eb-1c71c88b90fe:automatic-mission-resume:3397:canonical_release_dispatched","mission_step_id":"93f96cd2-bf19-405b-bd3e-b342d46d92f3","command_center_event_id":"c2731f05-4983-479c-83eb-1c71c88b90fe"},{"id":"f19dac63-b3b5-4ae3-b688-274e7dba51ad","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"533fc2d33242bed403a14b6e6fbba01ef1a7408d","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"533fc2d33242bed403a14b6e6fbba01ef1a7408d","releaseState":"pending","sourceInMain":true,"compareStatus":"identical","releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"pending"},"requestContractHash":"60cd0136acbe8984727827225064a61450febebe9b4e9be8b85b60a5e3954a0f","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/10677","runId":10677,"status":"running","sourceSha":"533fc2d33242bed403a14b6e6fbba01ef1a7408d","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true,"targetStates":{"frontend":"pending"},"targetJobCount":7,"observedTargetStates":{"frontend":"pending"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:02:42.452832+00:00","proof_gate":"canonical_release_pending","source_sha":"533fc2d33242bed403a14b6e6fbba01ef1a7408d","external_id":"forgejo-main-533fc2d33242","receipt_type":"canonical_release_status","idempotency_key":"mission:c2731f05-4983-479c-83eb-1c71c88b90fe:forgejo-release-status:533fc2d33242bed403a14b6e6fbba01ef1a7408d:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"93f96cd2-bf19-405b-bd3e-b342d46d92f3","command_center_event_id":"c2731f05-4983-479c-83eb-1c71c88b90fe"},{"id":"2e3e3842-0cf5-47a5-8fd3-dd54a6ed0554","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","cc-execution/runtime-proof":"success"},"mainSha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof"],"sourceSha":"94a3af78aa90bf8444a23c3dae961fce91e67aef","releaseState":"verified","sourceInMain":true,"compareStatus":"known_exact_protected_main_push_history","releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"ccExecution":"success"},"requestContractHash":"429be6f3c103c9a26c2d0755df49f35437418253814467d04644400bf5f59923","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/11667","runId":11667,"status":"success","sourceSha":"94a3af78aa90bf8444a23c3dae961fce91e67aef","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true,"targetStates":{"ccExecution":"success"},"targetJobCount":7,"observedTargetStates":{"ccExecution":"success"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","proofGate":"cc_execution_target_aware_runtime_identity_verified","deploymentId":"forgejo-main-7e6686d266fc6651d4e3862b68cc3378b73f03cc","compareStatus":"target_job_success_runtime_verified","workflowRunId":11667,"identitySource":"canonical_release_target_job","runtimeVersion":"1.58.273-stale-pr-gate-identity","workflowFailed":false,"containsSourceSha":false},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:44:55.944333+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"94a3af78aa90bf8444a23c3dae961fce91e67aef","external_id":"forgejo-main-94a3af78aa90","receipt_type":"canonical_release_status","idempotency_key":"mission:f1ff245a-57ba-4276-bf35-579da7ebd277:forgejo-release-status:94a3af78aa90bf8444a23c3dae961fce91e67aef:verified:forgejo-main/source=success|forgejo-release/workflow=success|cc-execution/runtime-proof=success","mission_step_id":"f6c2a6a9-93fa-423b-ae86-a141c3733d8c","command_center_event_id":"f1ff245a-57ba-4276-bf35-579da7ebd277"},{"id":"974d6f41-c938-400d-950f-4f9604cdb508","source":"forgejo-runtime","status":"pending","payload":{"mainSha":"78a806ab82720cdc837dca6a72c29b0b5473c130","sourceSha":"3671f9e56d9033e296ad69f8f8d8b62750a39d66","sourceInMain":false,"compareStatus":"ancestry_read_retryable","ancestryProofResolved":false},"tenant_id":"c55998b4-82a3-467e-8d35-177bb4785f6e","created_at":"2026-09-22T03:05:29.663896+00:00","proof_gate":"canonical_release_ancestry_pending","source_sha":"3671f9e56d9033e296ad69f8f8d8b62750a39d66","external_id":"canonical-release-3671f9e56d90","receipt_type":"canonical_release_status","idempotency_key":"mission:ef1cd88d-7b90-4663-b7a3-a2dec979cc46:forgejo-release-ancestry:3671f9e56d9033e296ad69f8f8d8b62750a39d66:78a806ab82720cdc837dca6a72c29b0b5473c130:ancestry_read_retryable","mission_step_id":"84d9c31c-d1da-41fd-b6b4-bab672920fc5","command_center_event_id":"ef1cd88d-7b90-4663-b7a3-a2dec979cc46"},{"id":"34db2d1d-18b1-415f-9b5f-70d1fd1f76f3","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"071715f85f50248c9242f86ced5ebf945d961077","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-1","satisfied":true,"statement":"Make PCG Completed and Mailed a premium, controlled customer handoff instead of a blind email button. Scope only Prestigious Card Grading and only src/pages/card-grading/PCGCompletionCenter.tsx. For each ready/shipped order, show a concise handoff readiness summary using the canonical cards already on that submission: card count, cards with grades, cards with cert numbers, and cards with customer-visible images. Make completion/shipment messaging safer: when a Completed order has missing grade/cert/image data, do not silently send a confident completion email on the first click; show the missing-data warning and require an explicit second 'Send anyway' action so intentional exceptions remain possible. When a Mailed order has no outbound tracking, use the same explicit warning/second-click pattern. Keep missing customer email as a hard disabled state. Upgrade the customer email to include a compact per-card summary (year/set/player, grade, cert when present) plus the existing controlled card images and WhatsMyProgress link. Preserve idempotency, existing Gmail/send-email behavior, Drive-backed URLs, existing order statuses, and all old records. No other tenant changes. Do not run Vi","proofConditionIds":["proof-production"]}],"satisfied":true,"constraints":[{"id":"visual-content-truth","satisfied":true,"statement":"Do not present invented names, metrics, prices, dates, services, testimonials, credentials, customer records, or other unknown business facts as real. Omit unknowns or mark them clearly as placeholder/example content.","proofConditionIds":["proof-production"]},{"id":"tenant-visual-isolation","satisfied":true,"statement":"Visual work is isolated to requested tenant. Do not import another tenant's logo, colors, imagery, copy, shell, customer data, business facts, or visual identity unless explicitly requested.","proofConditionIds":["proof-production"]},{"id":"reference-visual-fidelity","satisfied":true,"statement":"The approved reference owns the material visual composition: hierarchy, major geometry, typography scale, spacing rhythm, image placement/crop, color treatment, radii, shadows/glow, and overall density. Material deviation is a failed visual acceptance, not a stylistic reinterpretation.","proofConditionIds":["proof-production"]},{"id":"responsive-visual-continuity","satisfied":true,"statement":"Responsive adaptation may reflow for the target viewport, but it must preserve information hierarchy, branding, functionality, and design language. It must not invent a second design.","proofConditionIds":["proof-production"]},{"id":"reference-visual-authority","satisfied":true,"statement":"The supplied or approved reference visual is immutable acceptance evidence. Generating another mockup, image, or concept cannot satisfy this implementation request; completion requires source implementation, deployment, and reference-matched visual proof.","proofConditionIds":["proof-production"]},{"id":"capability-completeness","satisfied":true,"statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["proof-production"]},{"id":"atomic-capability-lifecycle","satisfied":true,"statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["proof-production"]}],"contractHash":"7878bae40578e30f51c57add760012395a7ff8d7e0787b20cd571eaaef315fb1","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"proof-production","kind":"runtime","evidence":{"reason":null,"satisfied":true,"releaseState":"verified","missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{"frontend":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["frontend"],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"migrationReleaseVerified":null,"releaseRequestContractHash":"7878bae40578e30f51c57add760012395a7ff8d7e0787b20cd571eaaef315fb1"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["frontend"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T01:20:50.266124+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"071715f85f50248c9242f86ced5ebf945d961077","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:fac136a9-309c-4716-9191-7a407ac92a81:request-contract:7878bae40578e30f51c57add760012395a7ff8d7e0787b20cd571eaaef315fb1:071715f85f50248c9242f86ced5ebf945d961077:verified:","mission_step_id":"4e3c77b9-6c48-4bc1-9a50-7be9a3b29ed9","command_center_event_id":"fac136a9-309c-4716-9191-7a407ac92a81"},{"id":"8cf866e2-e29d-489e-9442-f31a371dce66","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-91e9b69517a4","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":3398,"terminal":false,"missionId":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":6525,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":2124,"missionSetupMs":904,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":904,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":904,"repositoryMutationMs":4401,"repositoryProviderMs":4401,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2709,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":904,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1692},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3846,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:02:52.450903+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3398","receipt_type":"execute_mission","idempotency_key":"mission:91e9b695-17a4-4a0e-98c6-d7af7ea2fca8:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"43cecbf5-7781-4e18-9fb0-2a7e6e5c6f15","command_center_event_id":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8"},{"id":"e2a480e9-39ae-4320-bb91-c6cf32aaafb9","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-91e9b69517a4","reason":"pull_request_checks_pending","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3398,"terminal":false,"missionId":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8","operation":"automatic_mission_resume","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"prReadinessMs":578,"approvedPlanMs":0,"shipAndProveMs":0,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request after the exact-head KnockLaunch Gate changes state.","receiptRef":{"mode":"full","missionId":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1285,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:02:59.42658+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"3398","receipt_type":"automatic_mission_resume","idempotency_key":"mission:91e9b695-17a4-4a0e-98c6-d7af7ea2fca8:automatic-mission-resume:3398:repair_mission_waiting_for_gate","mission_step_id":"4a128b9d-2995-4d42-8f77-ad3533e4efd6","command_center_event_id":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8"},{"id":"6e87379d-c845-4e80-a992-32b11625f133","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-91e9b69517a4","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3398,"terminal":false,"missionId":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8","operation":"automatic_mission_resume","proofGate":"canonical_release_dispatched","sourceSha":"78a806ab82720cdc837dca6a72c29b0b5473c130","timingsMs":{"prReadinessMs":526,"approvedPlanMs":0,"shipAndProveMs":2998,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8"},"performance":null,"deploymentId":"forgejo-main-78a806ab8272","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1974,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:03:19.269519+00:00","proof_gate":"canonical_release_dispatched","source_sha":null,"external_id":"3398","receipt_type":"automatic_mission_resume","idempotency_key":"mission:91e9b695-17a4-4a0e-98c6-d7af7ea2fca8:automatic-mission-resume:3398:canonical_release_dispatched","mission_step_id":"7f3c652b-bbfc-4bc6-a5be-125c4360a3e9","command_center_event_id":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8"},{"id":"074e2c34-89a1-4512-ac6d-8a15f41307d8","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","cc-execution/runtime-proof":"success"},"mainSha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof"],"sourceSha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","releaseState":"verified","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"ccExecution":"success"},"requestContractHash":"b30cf319fcce752fd6fd6fc7b24819db1b3f1c8bb75569296b063c5e88d5d7b7","forgejoWorkflowProof":{"runId":11678,"source":"signed_push_receipt","status":"success","results":{},"conclusion":"success","targetStates":{"ccExecution":"success"},"targetJobCount":7,"observedTargetStates":{"ccExecution":"success"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","proofGate":"cc_execution_target_aware_runtime_identity_verified","deploymentId":"forgejo-main-7e6686d266fc6651d4e3862b68cc3378b73f03cc","compareStatus":"target_job_success_runtime_verified","workflowRunId":11678,"identitySource":"canonical_release_target_job","runtimeVersion":"1.58.273-stale-pr-gate-identity","workflowFailed":false,"containsSourceSha":true},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:44:08.139653+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","external_id":"forgejo-main-7e6686d266fc","receipt_type":"canonical_release_status","idempotency_key":"mission:fce8335a-c19b-472b-8901-a19cc5d51292:forgejo-release-status:7e6686d266fc6651d4e3862b68cc3378b73f03cc:verified:forgejo-main/source=success|forgejo-release/workflow=success|cc-execution/runtime-proof=success","mission_step_id":"eb70de78-20ea-459d-beca-9aa61c5a1339","command_center_event_id":"fce8335a-c19b-472b-8901-a19cc5d51292"},{"id":"cf233b48-1062-4b26-bbc3-ba76f1e49eca","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"94a3af78aa90bf8444a23c3dae961fce91e67aef","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"truthful-no-wait-recovery","satisfied":true,"statement":"When there is no waiting work, PRIME reports recoveryAction none and does not imply a repair is needed.","proofConditionIds":["no-wait-runtime-proof"]}],"satisfied":true,"constraints":[{"id":"preserve-failure-recovery","satisfied":true,"statement":"Existing recovery behavior for provider, runner, queue starvation, release, runtime, repository, credential, and contract failures remains unchanged.","proofConditionIds":["no-wait-runtime-proof"]},{"id":"capability-completeness","satisfied":true,"statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["no-wait-runtime-proof"]},{"id":"atomic-capability-lifecycle","satisfied":true,"statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["no-wait-runtime-proof"]}],"contractHash":"429be6f3c103c9a26c2d0755df49f35437418253814467d04644400bf5f59923","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"no-wait-runtime-proof","kind":"runtime","evidence":{"reason":null,"satisfied":true,"releaseState":"verified","missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{"ccExecution":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["ccExecution"],"allowedReleaseTargets":[],"requiredReleaseTargets":["ccExecution"],"migrationReleaseVerified":null,"releaseRequestContractHash":"429be6f3c103c9a26c2d0755df49f35437418253814467d04644400bf5f59923"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["ccExecution"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:44:57.417106+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"94a3af78aa90bf8444a23c3dae961fce91e67aef","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:f1ff245a-57ba-4276-bf35-579da7ebd277:request-contract:429be6f3c103c9a26c2d0755df49f35437418253814467d04644400bf5f59923:94a3af78aa90bf8444a23c3dae961fce91e67aef:verified:","mission_step_id":"f6c2a6a9-93fa-423b-ae86-a141c3733d8c","command_center_event_id":"f1ff245a-57ba-4276-bf35-579da7ebd277"},{"id":"4e2c983b-edac-439e-9155-1a76a20b465f","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-91e9b69517a4","prNumber":3398,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"78a806ab82720cdc837dca6a72c29b0b5473c130","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:03:32.136777+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"78a806ab82720cdc837dca6a72c29b0b5473c130","external_id":"3398","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:91e9b695-17a4-4a0e-98c6-d7af7ea2fca8:merged-pr:3398:78a806ab82720cdc837dca6a72c29b0b5473c130","mission_step_id":"7f3c652b-bbfc-4bc6-a5be-125c4360a3e9","command_center_event_id":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8"},{"id":"0409d1b2-487b-4a01-a1e0-789a82b302cd","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","cc-execution/runtime-proof":"pending"},"mainSha":"78a806ab82720cdc837dca6a72c29b0b5473c130","missing":[],"pending":["forgejo-release/workflow","cc-execution/runtime-proof"],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof"],"sourceSha":"78a806ab82720cdc837dca6a72c29b0b5473c130","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"ccExecution":"pending"},"requestContractHash":"2b8833ed247429f8e729c8e9d13930964763e8bf17e93090edec5e34d142989c","forgejoWorkflowProof":{"runId":10679,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"ccExecution":"pending"},"targetJobCount":7,"observedTargetStates":{"ccExecution":"pending"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"386da2f613ba4b033631aa13be21104be9091c30","deploymentId":"forgejo-main-386da2f613ba4b033631aa13be21104be9091c30","compareStatus":null,"identitySource":"local_build_metadata","runtimeVersion":"1.58.209-visual-certification-hardening","containsSourceSha":false},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:03:21.738904+00:00","proof_gate":"canonical_release_pending","source_sha":"78a806ab82720cdc837dca6a72c29b0b5473c130","external_id":"forgejo-main-78a806ab8272","receipt_type":"canonical_release_status","idempotency_key":"mission:91e9b695-17a4-4a0e-98c6-d7af7ea2fca8:forgejo-release-status:78a806ab82720cdc837dca6a72c29b0b5473c130:pending:forgejo-main/source=success|forgejo-release/workflow=pending|cc-execution/runtime-proof=pending","mission_step_id":"7f3c652b-bbfc-4bc6-a5be-125c4360a3e9","command_center_event_id":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8"},{"id":"3d88c440-6fc3-480d-879d-cd30aa921822","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"stale-pr-gate-isolation","satisfied":true,"statement":"Closed PR events do not execute the Gate job, and commit status from another PR generation cannot authorize or veto the current PR.","proofConditionIds":["gate-identity-runtime"]},{"id":"continuation-contract","satisfied":true,"statement":"The proven bare same-mission continuation recovery ordering is recorded in the control-plane capabilities manifest.","proofConditionIds":["gate-identity-runtime"]}],"satisfied":true,"constraints":[{"id":"fail-closed-missing-exact-run","satisfied":true,"statement":"If recent Actions truth has no Gate run matching both the current PR and current head SHA, readiness stays pending.","proofConditionIds":["gate-identity-runtime"]},{"id":"capability-completeness","satisfied":true,"statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["gate-identity-runtime"]},{"id":"atomic-capability-lifecycle","satisfied":true,"statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["gate-identity-runtime"]}],"contractHash":"b30cf319fcce752fd6fd6fc7b24819db1b3f1c8bb75569296b063c5e88d5d7b7","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"gate-identity-runtime","kind":"runtime","evidence":{"reason":null,"satisfied":true,"releaseState":"verified","missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{"ccExecution":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["ccExecution"],"allowedReleaseTargets":[],"requiredReleaseTargets":["ccExecution"],"migrationReleaseVerified":null,"releaseRequestContractHash":"b30cf319fcce752fd6fd6fc7b24819db1b3f1c8bb75569296b063c5e88d5d7b7"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["ccExecution"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:44:09.65993+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:fce8335a-c19b-472b-8901-a19cc5d51292:request-contract:b30cf319fcce752fd6fd6fc7b24819db1b3f1c8bb75569296b063c5e88d5d7b7:7e6686d266fc6651d4e3862b68cc3378b73f03cc:verified:","mission_step_id":"eb70de78-20ea-459d-beca-9aa61c5a1339","command_center_event_id":"fce8335a-c19b-472b-8901-a19cc5d51292"},{"id":"dfc8ce89-708a-4d74-8dba-e4ecc0f38f80","source":"cc-execution","status":"authorized","payload":{"paths":["workers/cc-execution/src/index-mcp.js","workers/cc-execution/src/version.js","workers/cc-execution/test/mcp.test.js"],"reason":"Align direct Gate status reporting with exact PR/run identity authority and remove an unnecessary base-branch read from the Gate-status hot path.","baseSha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","issuedAt":1790297333323,"expiresAt":1790297513323,"missionId":"1443ad08-dd3c-4cf3-9679-c93fe1d26c3f","authorizationId":"bfdb295b-207e-406e-b236-cf23b7800237","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:48:53.604144+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:bfdb295b-207e-406e-b236-cf23b7800237","mission_step_id":"d4471a0b-75f1-44f6-8a72-6e4fcc8e2593","command_center_event_id":"1443ad08-dd3c-4cf3-9679-c93fe1d26c3f"},{"id":"c630ffdc-343a-4815-ab84-20f4447a17fa","source":"cc-execution","status":"release_reconciliation_pending","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-538a9c14718a","reason":null,"status":"release_reconciliation_pending","metrics":{"receiptBytes":48647,"releaseCount":0,"toolCallCount":4,"repeatedCallCount":0,"executorlessWaitMs":17774,"firstUsefulResultAt":"2026-09-25T13:54:38.730Z","recoveryAttemptCount":1,"ownerInterruptionCount":0},"version":null,"prNumber":3735,"terminal":false,"missionId":"538a9c14-718a-4b3e-87fa-1c98217b29e5","operation":"automatic_mission_resume","proofGate":"canonical_release_reconciliation_pending","sourceSha":"ac45cf27721df31df37ecedcc73af3413bfa33e7","timingsMs":{"prReadinessMs":409,"approvedPlanMs":0,"shipAndProveMs":2272,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"reconcile_release","receiptRef":{"mode":"full","missionId":"538a9c14-718a-4b3e-87fa-1c98217b29e5"},"performance":null,"deploymentId":"forgejo-main-ac45cf27721d","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["repository","repository","repository"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1942,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T13:55:00.298103+00:00","proof_gate":"canonical_release_reconciliation_pending","source_sha":null,"external_id":"3735","receipt_type":"automatic_mission_resume","idempotency_key":"mission:538a9c14-718a-4b3e-87fa-1c98217b29e5:automatic-mission-resume:3735:canonical_release_reconciliation_pending","mission_step_id":"89da2e89-e3b4-4356-90c9-677c4c0f4417","command_center_event_id":"538a9c14-718a-4b3e-87fa-1c98217b29e5"},{"id":"b88955b4-13ce-492b-a50e-8c1a40c57e9d","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-ab27e7eda756","reason":"anchored_edit_anchor_not_unique:src/PrivateAppShell.tsx","status":"blocked","metrics":{"receiptBytes":10664,"releaseCount":0,"toolCallCount":2,"repeatedCallCount":0,"executorlessWaitMs":38755,"firstUsefulResultAt":"2026-09-25T18:48:10.939Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.282-lineage-main-guard","prNumber":null,"terminal":false,"missionId":"ab27e7ed-a756-40c6-a073-b8b3755f08b7","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":554,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":554,"missionSetupMs":265,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":265,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":265,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":265,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"ab27e7ed-a756-40c6-a073-b8b3755f08b7"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime","visual"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1489,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T18:48:51.348013+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:ab27e7ed-a756-40c6-a073-b8b3755f08b7:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"8189fad7-6a84-48ab-b4ff-f29ad3a7a0c9","command_center_event_id":"ab27e7ed-a756-40c6-a073-b8b3755f08b7"},{"id":"3d786ae2-2c46-445b-b406-881c81e939f9","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[{"path":"supabase/migrations/20260928164623_preserve_lab_unpublished_media.sql","content":"CREATE OR REPLACE FUNCTION public.kl_sync_tenant_media_storage_object()\n RETURNS trigger\n LANGUAGE plpgsql\n SECURITY DEFINER\n SET search_path TO 'public', 'storage', 'pg_temp'\nAS $function$\ndeclare\n  v_object storage.objects%rowtype;\n  v_tenant_id uuid;\n  v_old_tenant_id uuid;\n  v_collection text;\n  v_mime text;\n  v_size bigint;\n  v_preserved_id uuid;\nbegin\n  if tg_op='DELETE' then\n    v_old_tenant_id:=public.kl_tenant_media_bucket_tenant_id(old.bucket_id);\n    if v_old_tenant_id is not null then\n      update public.tenant_media_assets\n      set deleted_at=now(),published=false,is_primary=false,updated_at=now()\n      where tenant_id=v_old_tenant_id and bucket_name=old.bucket_id and original_key=old.name and deleted_at is null;\n      perform public.kl_refresh_tenant_media_primaries(v_old_tenant_id);\n    end if;\n    return old;\n  end if;\n\n  v_object:=new;\n  v_tenant_id:=public.kl_tenant_media_bucket_tenant_id(v_object.bucket_id);\n  v_mime:=public.kl_tenant_media_mime(v_object.name,coalesce(v_object.metadata->>'mimetype',v_object.metadata->>'contentType',''));\n  v_collection:=public.kl_tenant_media_collection(v_object.name);\n  begin\n    v_size:=nullif(coalesce(v_object.metadata->>'size',v_object.metadata->>'contentLength',''),'')::bigint;\n  exception when invalid_text_representation then\n    v_size:=null;\n  end;\n\n  if tg_op='UPDATE' and (old.bucket_id is distinct from new.bucket_id or old.name is distinct from new.name) then\n    v_old_tenant_id:=public.kl_tenant_media_bucket_tenant_id(old.bucket_id);\n    if v_old_tenant_id is not null\n       and v_tenant_id is not null\n       and v_old_tenant_id=v_tenant_id\n       and public.kl_tenant_media_supported(v_object.name,v_mime)\n       and coalesce(v_collection,'')<>''\n       and not (v_collection='branding' and public.kl_tenant_media_generated_brand_derivative(v_object.name)) then\n      update public.tenant_media_assets\n      set collection_key=case\n            when coalesce(metadata->>'usage','')='mode_card' then collection_key\n            else v_collection\n          end,\n          bucket_name=v_object.bucket_id,\n          original_key=v_object.name,\n          original_content_type=nullif(v_mime,''),\n          mime_type=nullif(v_mime,''),\n          size_bytes=v_size,\n          storage_provider='supabase',\n          storage_key=v_object.name,\n          is_primary=false,\n          deleted_at=null,\n          metadata=case\n            when coalesce(metadata->>'usage','')='mode_card' then\n              jsonb_build_object(\n                'existing_storage',true,\n                'existing_origin','supabase_storage',\n                'source_bucket',v_object.bucket_id,\n                'storage_object_id',v_object.id::text,\n                'storage_created_at',v_object.created_at::text,\n                'storage_updated_at',v_object.updated_at::text,\n                'contract','READABLE-TENANT-STORAGE-V2') || coalesce(metadata,'{}'::jsonb)\n            else\n              coalesce(metadata,'{}'::jsonb) || jsonb_build_object(\n                'existing_storage',true,\n                'existing_origin','supabase_storage',\n                'source_bucket',v_object.bucket_id,\n                'storage_object_id',v_object.id::text,\n                'storage_created_at',v_object.created_at::text,\n                'storage_updated_at',v_object.updated_at::text,\n                'contract','READABLE-TENANT-STORAGE-V2')\n          end,\n          updated_at=coalesce(v_object.updated_at,now())\n      where tenant_id=v_old_tenant_id\n        and bucket_name=old.bucket_id\n        and original_key=old.name\n        and deleted_at is null\n      returning id into v_preserved_id;\n      if v_preserved_id is not null then\n        perform public.kl_refresh_tenant_media_primaries(v_old_tenant_id);\n        return new;\n      end if;\n    end if;\n\n    if v_old_tenant_id is not null then\n      update public.tenant_media_assets\n      set deleted_at=now(),published=false,is_primary=false,updated_at=now()\n      where tenant_id=v_old_tenant_id and bucket_name=old.bucket_id and original_key=old.name and deleted_at is null;\n      perform public.kl_refresh_tenant_media_primaries(v_old_tenant_id);\n    end if;\n  end if;\n\n  if v_tenant_id is null then return new; end if;\n  if not public.kl_tenant_media_supported(v_object.name,v_mime) then return new; end if;\n  if coalesce(v_collection,'')='' then return new; end if;\n  if v_collection='branding' and public.kl_tenant_media_generated_brand_derivative(v_object.name) then return new; end if;\n\n  insert into public.tenant_media_assets(\n    tenant_id,collection_key,bucket_name,original_key,original_content_type,source_kind,status,review_status,published,is_primary,title,mime_type,size_bytes,storage_provider,storage_key,deleted_at,metadata,created_at,updated_at)\n  values(\n    v_tenant_id,v_collection,v_object.bucket_id,v_object.name,nullif(v_mime,''),'existing','ready','approved',true,false,\n    split_part(v_object.name,'/',array_length(string_to_array(v_object.name,'/'),1)),nullif(v_mime,''),v_size,'supabase',v_object.name,null,\n    jsonb_build_object('existing_storage',true,'existing_origin','supabase_storage','source_bucket',v_object.bucket_id,'storage_object_id',v_object.id::text,'storage_created_at',v_object.created_at::text,'storage_updated_at',v_object.updated_at::text,'contract','READABLE-TENANT-STORAGE-V2'),\n    coalesce(v_object.created_at,now()),coalesce(v_object.updated_at,now()))\n  on conflict(tenant_id,bucket_name,original_key) do update\n  set collection_key=case\n        when coalesce(tenant_media_assets.metadata->>'usage','')='mode_card' then tenant_media_assets.collection_key\n        else excluded.collection_key\n      end,\n      original_content_type=excluded.original_content_type,\n      status='ready',\n      review_status='approved',\n      published=tenant_media_assets.published,\n      mime_type=excluded.mime_type,\n      size_bytes=excluded.size_bytes,\n      storage_provider='supabase',\n      storage_key=excluded.storage_key,\n      deleted_at=null,\n      metadata=case\n        when coalesce(tenant_media_assets.metadata->>'usage','')='mode_card'\n          then excluded.metadata || coalesce(tenant_media_assets.metadata,'{}'::jsonb)\n        else coalesce(tenant_media_assets.metadata,'{}'::jsonb) || excluded.metadata\n      end,\n      updated_at=excluded.updated_at;\n  perform public.kl_refresh_tenant_media_primaries(v_tenant_id);\n  return new;\nend;\n$function$;"}],"branch":"ai/objective-first-repair-fc74dd6e44a9","writes":[],"patches":[],"version":1,"approved":true,"missionId":"fc74dd6e-44a9-45ef-b77b-de1513cb03c9","objective":"Repair the immutable migration-history mismatch introduced by merged PR #4020. Replace only supabase/migrations/20260928164623_preserve_lab_unpublished_media.sql with the exact SQL already recorded for migration version 20260928164623 in the live Supabase migration ledger. Do not mutate the live database or migration ledger. This is repository reconciliation only. Then run canonical Gate, squash merge, and verify the migration release classifies version 20260928164623 as already applied with exact SQL and succeeds.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["supabase/migrations/20260928164623_preserve_lab_unpublished_media.sql"],"implementation":{"files":[],"writes":[]},"requestContract":{"source":"explicit","version":1,"outcomes":[{"id":"outcome-1","statement":"The repository copy of migration 20260928164623 exactly matches the immutable SQL already recorded in the live Supabase migration ledger, without changing production database state.","proofConditionIds":["proof-release"]}],"objective":"Repair the immutable migration-history mismatch introduced by merged PR #4020. Replace only supabase/migrations/20260928164623_preserve_lab_unpublished_media.sql with the exact SQL already recorded for migration version 20260928164623 in the live Supabase migration ledger. Do not mutate the live database or migration ledger. This is repository reconciliation only. Then run canonical Gate, squash merge, and verify the migration release classifies version 20260928164623 as already applied with exact SQL and succeeds.","constraints":[{"id":"no-ledger-mutation","statement":"Do not modify Supabase migration history or live schema/data as part of this correction.","proofConditionIds":["proof-release"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-release","kind":"runtime","claim":"After merge, the canonical migration release recognizes 20260928164623 as already applied with exact SQL and completes successfully.","route":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}]},"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":null,"ownerApproved":true,"releaseIntent":null,"sourceTargets":["supabase/migrations/20260928164623_preserve_lab_unpublished_media.sql"],"requestContract":{"source":"explicit","version":1,"outcomes":[{"id":"outcome-1","statement":"The repository copy of migration 20260928164623 exactly matches the immutable SQL already recorded in the live Supabase migration ledger, without changing production database state.","proofConditionIds":["proof-release"]}],"objective":"Repair the immutable migration-history mismatch introduced by merged PR #4020. Replace only supabase/migrations/20260928164623_preserve_lab_unpublished_media.sql with the exact SQL already recorded for migration version 20260928164623 in the live Supabase migration ledger. Do not mutate the live database or migration ledger. This is repository reconciliation only. Then run canonical Gate, squash merge, and verify the migration release classifies version 20260928164623 as already applied with exact SQL and succeeds.","constraints":[{"id":"no-ledger-mutation","statement":"Do not modify Supabase migration history or live schema/data as part of this correction.","proofConditionIds":["proof-release"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-release","kind":"runtime","claim":"After merge, the canonical migration release recognizes 20260928164623 as already applied with exact SQL and completes successfully.","route":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}]},"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":false,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"proofRequirements":null,"controlPlaneUnfreeze":false,"durableMutationResume":true,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"recovery":false,"fingerprint":"c9e7fe06707bf9f51bd9d63aaf970932dac4c7773c8e2eb1cbccd19d22fb0fe7","replayCount":0,"serializedBytes":11054},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T01:22:57.15026+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:fc74dd6e-44a9-45ef-b77b-de1513cb03c9:repository-mutation-intent:c9e7fe06707bf9f51bd9d63aaf970932dac4c7773c8e2eb1cbccd19d22fb0fe7:0","mission_step_id":"cacc6e90-b8eb-40a4-af23-7ed985ac33c5","command_center_event_id":"fc74dd6e-44a9-45ef-b77b-de1513cb03c9"},{"id":"42c25f14-83ef-49e8-b223-0c65d2c37819","source":"forgejo","status":"waiting","payload":{"branch":"","prNumber":4020,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"90e8140095d921e5deccc0a40d300fe9548d607c","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T01:20:42.335468+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"90e8140095d921e5deccc0a40d300fe9548d607c","external_id":"4020","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:07036c81-3c9c-46bf-bfc8-84975f1fd0cc:merged-pr:4020:90e8140095d921e5deccc0a40d300fe9548d607c","mission_step_id":"c1b62616-68aa-4fc5-abc7-8bd4e612f8c9","command_center_event_id":"07036c81-3c9c-46bf-bfc8-84975f1fd0cc"},{"id":"119613b4-9a48-47a3-bd27-ecd7912f44e4","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-e3478acfa504","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":null,"recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.60.0-adaptive-objective-compiler","prNumber":null,"terminal":false,"missionId":"e3478acf-a504-4781-94c6-eb60583afa11","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1233,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":370,"providerAuthMs":0,"ledgerPrepareMs":370,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":370,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":370,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Inspect the bounded repository paths, synthesize exact files or anchored_edits, and call /mission/execute again automatically with this same missionId without another owner prompt or workflow switch.","receiptRef":{"mode":"full","missionId":"e3478acf-a504-4781-94c6-eb60583afa11"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":7398,"likelyAffectedFiles":[".github","docs/gpt-actions","public/gpt-actions","scripts/production-release-targets.json","config/onrunner-canary-trigger.json","scripts/visual-witness-hosted-runner/RELEASE_TRIGGER.md","src/__tests__/contracts/cc-execution-onrunner-deploy-lane.contract.test.ts","src/__tests__/contracts/render-onrunner-deploy-lane.test.ts","src/__tests__/contracts/render-onrunner-entrypoint-dispatch.test.ts","src/__tests__/contracts/render-onrunner-runtime-verifier.test.ts","docs/CLOUDFLARE_NATIVE_FRONTEND_RELEASE.md","docs/SECRET_ROTATION_OWNER_NOTIFICATION_PLAYBOOK.md","docs/operations/command-center-ops-bridge.md","scripts/validate-command-center-contracts.mjs","scripts/validate-release-architecture.mjs","src/pages/admin/GptJsonConsole.tsx","src/pages/godmode/components/RestorePointCard.tsx","supabase/functions/command-center-autopilot/missionLedger.ts","supabase/functions/command-center-autopilot/missionSupervisor.ts","workers/cc-execution/src/index-merge-queue-openapi.js"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T01:29:28.992709+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:e3478acf-a504-4781-94c6-eb60583afa11:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"452dc280-c10d-481a-b9fe-336fb76cea43","command_center_event_id":"e3478acf-a504-4781-94c6-eb60583afa11"},{"id":"e00498fc-04ea-460b-b62b-35bb2a156990","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/sign-agreement-continuous-pdf-scroll","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.210-platform-source-resolution","prNumber":3399,"terminal":false,"missionId":"c3099ee9-3d4b-4114-879a-d6ff0aeb63f0","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":7432,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":1387,"missionSetupMs":659,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":345,"ledgerReconcileMs":0,"lineageReconcileMs":314,"resolvePreflightMs":659,"repositoryMutationMs":6045,"repositoryProviderMs":6045,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":5803,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":345,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":242},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"c3099ee9-3d4b-4114-879a-d6ff0aeb63f0"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime","visual"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3048,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:04:25.342243+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3399","receipt_type":"execute_mission","idempotency_key":"mission:c3099ee9-3d4b-4114-879a-d6ff0aeb63f0:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"3ed3533f-f786-4419-b9d6-2b996e43fedb","command_center_event_id":"c3099ee9-3d4b-4114-879a-d6ff0aeb63f0"},{"id":"21d90893-2d39-41b0-9714-d4fffddbf9a6","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-3d2ccf96f444","reason":"pull_request_not_open","status":"retryable","metrics":{"receiptBytes":26261,"releaseCount":0,"toolCallCount":7,"repeatedCallCount":0,"executorlessWaitMs":361383,"firstUsefulResultAt":"2026-09-25T00:38:40.662Z","recoveryAttemptCount":1,"ownerInterruptionCount":0},"version":null,"prNumber":3691,"terminal":false,"missionId":"3d2ccf96-f444-4094-a9f9-46d64a26205d","operation":"automatic_mission_resume","proofGate":"repair_mission_auto_progress_authorization_retryable","sourceSha":null,"timingsMs":{"prReadinessMs":0,"approvedPlanMs":0,"shipAndProveMs":0,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"3d2ccf96-f444-4094-a9f9-46d64a26205d"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":689,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:44:42.086848+00:00","proof_gate":"repair_mission_auto_progress_authorization_retryable","source_sha":null,"external_id":"3691","receipt_type":"automatic_mission_resume","idempotency_key":"mission:3d2ccf96-f444-4094-a9f9-46d64a26205d:automatic-mission-resume:3691:repair_mission_auto_progress_authorization_retryable","mission_step_id":"ffc3b3d2-5650-4025-b17d-3042914d0b76","command_center_event_id":"3d2ccf96-f444-4094-a9f9-46d64a26205d"},{"id":"5fd1b0f0-bdf9-40e2-9236-9e4506f438c0","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-5bc6055a2954","reason":"pull_request_not_open","status":"retryable","metrics":{"receiptBytes":3463,"releaseCount":0,"toolCallCount":2,"repeatedCallCount":0,"executorlessWaitMs":740600,"firstUsefulResultAt":"2026-09-25T00:32:29.383Z","recoveryAttemptCount":2,"ownerInterruptionCount":0},"version":null,"prNumber":3690,"terminal":false,"missionId":"209c9b26-7dca-4691-8004-1fde224374e1","operation":"automatic_mission_resume","proofGate":"repair_mission_auto_progress_authorization_retryable","sourceSha":null,"timingsMs":{"prReadinessMs":0,"approvedPlanMs":0,"shipAndProveMs":0,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"209c9b26-7dca-4691-8004-1fde224374e1"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":689,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:44:50.023886+00:00","proof_gate":"repair_mission_auto_progress_authorization_retryable","source_sha":null,"external_id":"3690","receipt_type":"automatic_mission_resume","idempotency_key":"mission:209c9b26-7dca-4691-8004-1fde224374e1:automatic-mission-resume:3690:repair_mission_auto_progress_authorization_retryable","mission_step_id":"e57560f6-f52f-4992-a52b-7d0fcb8f9d09","command_center_event_id":"209c9b26-7dca-4691-8004-1fde224374e1"},{"id":"1167fb5b-79f3-4387-a8a4-7923a31fb1fa","source":"cc-execution-autonomous-supervisor","status":"advanced","payload":{"trigger":"cloudflare_cron","leaseEpoch":894,"afterSignature":"{\"stateMachineVersion\":1,\"phase\":\"pull_request\",\"ownerFacingState\":null,\"latest\":null,\"activeStep\":null,\"nextStep\":null,\"nextSafeAction\":{\"action\":\"reconcile_pull_request\",\"lane\":\"cc-execution\",\"reason\":\"durable_state:pull_request\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"acceptance\":{\"total\":0,\"verified\":0,\"pending\":0,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":null,\"deadlineAt\":null,\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/fix-lawn-care-editor-selection-default-20260804\",\"prNumber\":null,\"sourceSha\":null,\"deploymentId\":null}","beforeSignature":"{\"stateMachineVersion\":1,\"phase\":\"pull_request\",\"ownerFacingState\":null,\"latest\":{\"kind\":\"receipt\",\"key\":\"execute_mission\",\"status\":\"blocked\",\"proofGate\":\"repair_mission_execution_blocked\"},\"activeStep\":{\"key\":\"pull_request\",\"status\":\"ready\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"release\",\"status\":\"ready\",\"lane\":\"production-release-conductor\"},\"nextSafeAction\":{\"action\":\"reconcile_pull_request\",\"lane\":\"cc-execution\",\"reason\":\"durable_state:pull_request\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"acceptance\":{\"total\":6,\"verified\":1,\"pending\":5,\"percent\":17,\"satisfied\":false,\"verifiedIds\":[\"preflight\"],\"pendingIds\":[\"implementation\",\"pull_request\",\"release\",\"runtime_proof\",\"visual_proof\"]},\"stall\":{\"stalled\":true,\"reason\":\"step_deadline_exceeded\",\"step\":\"pull_request\",\"deadlineAt\":\"2026-08-04T21:17:54.238188+00:00\",\"recoveryAction\":\"reconcile_pull_request\"},\"blocker\":\"repair_mission_execution_blocked\",\"terminal\":false,\"branch\":\"ai/fix-lawn-care-editor-selection-default-20260804\",\"prNumber\":null,\"sourceSha\":null,\"deploymentId\":null}","transitionBrain":"mission_status_deterministic_supervisor"},"tenant_id":"c55998b4-82a3-467e-8d35-177bb4785f6e","created_at":"2026-09-22T03:04:34.010247+00:00","proof_gate":"deterministic_semantic_transition_journaled","source_sha":null,"external_id":null,"receipt_type":"deterministic_supervisor_transition","idempotency_key":"mission:0be45703-41bd-4cf9-84db-e404c5275bb4:deterministic-transition:{\"stateMachineVersion\":1,\"phase\":\"pull_request\",\"ownerFacingState\":null,\"latest\":{\"kind\":\"receipt\",\"key\":\"execute_mission\",\"status\":\"blocked\",\"proofGate\":\"repair_mission_execution_blocked\"},\"activeStep\":{\"key\":\"pull_request\",\"status\":\"ready\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"release\",\"status\":\"ready\",\"lane\":\"production-release-conductor\"},\"nextSafeAction\":{\"action\":\"reconcile_pull_request\",\"lane\":\"cc-execution\",\"reason","mission_step_id":"9e73c231-f171-458d-b433-629b6802ba3e","command_center_event_id":"0be45703-41bd-4cf9-84db-e404c5275bb4"},{"id":"83216a8e-108d-49ca-839a-663e891ceca4","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","cc-execution/runtime-proof":"success"},"mainSha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof"],"sourceSha":"361ccbef4678184e6e2d358524ee51b34096ab98","releaseState":"verified","sourceInMain":true,"compareStatus":"known_exact_protected_main_push_history","releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"ccExecution":"success"},"requestContractHash":"47c10379d50d746478d96b13fa22f31451fb19b580908f4dea8cd6c44b93b044","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/11669","runId":11669,"status":"success","sourceSha":"361ccbef4678184e6e2d358524ee51b34096ab98","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true,"targetStates":{"ccExecution":"success"},"targetJobCount":7,"observedTargetStates":{"ccExecution":"success"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"7e6686d266fc6651d4e3862b68cc3378b73f03cc","proofGate":"cc_execution_target_aware_runtime_identity_verified","deploymentId":"forgejo-main-7e6686d266fc6651d4e3862b68cc3378b73f03cc","compareStatus":"target_job_success_runtime_verified","workflowRunId":11669,"identitySource":"canonical_release_target_job","runtimeVersion":"1.58.273-stale-pr-gate-identity","workflowFailed":false,"containsSourceSha":false},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:45:03.268996+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"361ccbef4678184e6e2d358524ee51b34096ab98","external_id":"forgejo-main-361ccbef4678","receipt_type":"canonical_release_status","idempotency_key":"mission:eadbda1f-34d1-4734-bbd4-87e7fa7892c9:forgejo-release-status:361ccbef4678184e6e2d358524ee51b34096ab98:verified:forgejo-main/source=success|forgejo-release/workflow=success|cc-execution/runtime-proof=success","mission_step_id":"25fb8d72-8508-4c6b-8bfa-093eeb9ceb55","command_center_event_id":"eadbda1f-34d1-4734-bbd4-87e7fa7892c9"},{"id":"63157264-1765-4568-83c0-e0ef3849fcc1","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success"},"mainSha":"ac45cf27721df31df37ecedcc73af3413bfa33e7","missing":[],"pending":[],"required":["forgejo-main/source"],"sourceSha":"ac45cf27721df31df37ecedcc73af3413bfa33e7","releaseState":"verified","sourceInMain":true,"compareStatus":"identical","releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{},"requestContractHash":"754bc460ccbb0e030450a5917c8cffb263bcbb9cff75fd720147fe7dc0358853","forgejoWorkflowProof":null,"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T13:55:01.674584+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"ac45cf27721df31df37ecedcc73af3413bfa33e7","external_id":"forgejo-main-ac45cf27721d","receipt_type":"canonical_release_status","idempotency_key":"mission:538a9c14-718a-4b3e-87fa-1c98217b29e5:forgejo-release-status:ac45cf27721df31df37ecedcc73af3413bfa33e7:verified:forgejo-main/source=success","mission_step_id":"7da7d22d-0b70-4e2a-97f8-9221dcd13f64","command_center_event_id":"538a9c14-718a-4b3e-87fa-1c98217b29e5"},{"id":"7ffd04f5-2609-446d-b467-0ea4d318bb67","source":"cc-execution","status":"blocked","payload":{"reason":"anchored_edit_anchor_not_unique:src/PrivateAppShell.tsx","fingerprint":"dc8e1ea65fabc23ce3190c7c9bf60ca6b6bef2ed4e6763697758a299145edf08"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T18:48:51.370662+00:00","proof_gate":"repository_mutation_intent_deterministic_failure","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent_blocked","idempotency_key":"mission:ab27e7ed-a756-40c6-a073-b8b3755f08b7:repository-mutation-intent-blocked:dc8e1ea65fabc23ce3190c7c9bf60ca6b6bef2ed4e6763697758a299145edf08","mission_step_id":"8189fad7-6a84-48ab-b4ff-f29ad3a7a0c9","command_center_event_id":"ab27e7ed-a756-40c6-a073-b8b3755f08b7"},{"id":"2ef27c03-1836-4dab-90e5-aca42d50a809","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-6730ce8a6cce","reason":"retryable_provider_transport:forgejo_provider_read_timeout","status":"retryable","metrics":{"receiptBytes":17484,"releaseCount":0,"toolCallCount":8,"repeatedCallCount":3,"executorlessWaitMs":2660332,"firstUsefulResultAt":"2026-09-25T19:53:39.511Z","recoveryAttemptCount":4,"ownerInterruptionCount":0},"version":null,"prNumber":3760,"terminal":false,"missionId":"6730ce8a-6cce-416c-bff4-935556eb70a6","operation":"automatic_mission_resume","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"prReadinessMs":5461,"approvedPlanMs":0,"shipAndProveMs":0,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"6730ce8a-6cce-416c-bff4-935556eb70a6"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime","visual"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":819,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T20:06:32.595871+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"3760","receipt_type":"automatic_mission_resume","idempotency_key":"mission:6730ce8a-6cce-416c-bff4-935556eb70a6:automatic-mission-resume:3760:repair_mission_pr_ready_retryable","mission_step_id":"3255d1fd-3fec-49df-8c37-3e646bcf2893","command_center_event_id":"6730ce8a-6cce-416c-bff4-935556eb70a6"},{"id":"b06301ce-e0a3-4d46-8f1f-f904a4d450a5","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","cc-execution/runtime-proof":"success"},"mainSha":"78a806ab82720cdc837dca6a72c29b0b5473c130","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof"],"sourceSha":"78a806ab82720cdc837dca6a72c29b0b5473c130","releaseState":"verified","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"ccExecution":"success"},"requestContractHash":"2b8833ed247429f8e729c8e9d13930964763e8bf17e93090edec5e34d142989c","forgejoWorkflowProof":{"runId":10679,"source":"signed_push_receipt","status":"success","results":{},"conclusion":"success","targetStates":{"ccExecution":"success"},"targetJobCount":7,"observedTargetStates":{"ccExecution":"success"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"78a806ab82720cdc837dca6a72c29b0b5473c130","proofGate":"cc_execution_target_aware_runtime_identity_verified","deploymentId":"forgejo-main-78a806ab82720cdc837dca6a72c29b0b5473c130","compareStatus":"target_job_success_runtime_verified","workflowRunId":10679,"identitySource":"canonical_release_target_job","runtimeVersion":"1.58.210-platform-source-resolution","workflowFailed":false,"containsSourceSha":true},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:04:54.690538+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"78a806ab82720cdc837dca6a72c29b0b5473c130","external_id":"forgejo-main-78a806ab8272","receipt_type":"canonical_release_status","idempotency_key":"mission:91e9b695-17a4-4a0e-98c6-d7af7ea2fca8:forgejo-release-status:78a806ab82720cdc837dca6a72c29b0b5473c130:verified:forgejo-main/source=success|forgejo-release/workflow=success|cc-execution/runtime-proof=success","mission_step_id":"a9f6a95f-3b27-4911-9973-0a9f9a219d08","command_center_event_id":"91e9b695-17a4-4a0e-98c6-d7af7ea2fca8"},{"id":"dbbff6da-d789-4221-96d4-f83c2e836626","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"361ccbef4678184e6e2d358524ee51b34096ab98","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"bare-continuation-ordering","satisfied":true,"statement":"Bare same-mission continuations attempt durable PR or mutation-intent recovery before source_resolution_required can return.","proofConditionIds":["ordering-runtime-proof"]}],"satisfied":true,"constraints":[{"id":"unscoped-still-fails-closed","satisfied":true,"statement":"Requests without an authoritative mission intent or explicit mutation scope still return source_resolution_required rather than synthesizing mutation scope.","proofConditionIds":["ordering-runtime-proof"]},{"id":"capability-completeness","satisfied":true,"statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["ordering-runtime-proof"]},{"id":"atomic-capability-lifecycle","satisfied":true,"statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["ordering-runtime-proof"]}],"contractHash":"47c10379d50d746478d96b13fa22f31451fb19b580908f4dea8cd6c44b93b044","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"ordering-runtime-proof","kind":"runtime","evidence":{"reason":null,"satisfied":true,"releaseState":"verified","missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{"ccExecution":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["ccExecution"],"allowedReleaseTargets":[],"requiredReleaseTargets":["ccExecution"],"migrationReleaseVerified":null,"releaseRequestContractHash":"47c10379d50d746478d96b13fa22f31451fb19b580908f4dea8cd6c44b93b044"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["ccExecution"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:45:04.658755+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"361ccbef4678184e6e2d358524ee51b34096ab98","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:eadbda1f-34d1-4734-bbd4-87e7fa7892c9:request-contract:47c10379d50d746478d96b13fa22f31451fb19b580908f4dea8cd6c44b93b044:361ccbef4678184e6e2d358524ee51b34096ab98:verified:","mission_step_id":"25fb8d72-8508-4c6b-8bfa-093eeb9ceb55","command_center_event_id":"eadbda1f-34d1-4734-bbd4-87e7fa7892c9"},{"id":"bbb00810-37fb-4234-b6d3-c4d1b6554ed9","source":"cc-execution","status":"cancelled","payload":{"cancelled":true,"missionId":"209c9b26-7dca-4691-8004-1fde224374e1"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:46:15.206199+00:00","proof_gate":"durable_mission_cancelled","source_sha":null,"external_id":null,"receipt_type":"owner_mission_cancelled","idempotency_key":"mission:209c9b26-7dca-4691-8004-1fde224374e1:mission-cancel:209c9b26-7dca-4691-8004-1fde224374e1","mission_step_id":"e57560f6-f52f-4992-a52b-7d0fcb8f9d09","command_center_event_id":"209c9b26-7dca-4691-8004-1fde224374e1"},{"id":"2c82e896-ef69-4a56-9ec9-fabada926afc","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-1443ad08dd3c","writes":[],"patches":[],"version":1,"approved":true,"missionId":"1443ad08-dd3c-4cf3-9679-c93fe1d26c3f","objective":"Align the direct forgejo_gate_status operator with the identity-aware Gate authority already live in prReady, and remove its unnecessary base-branch read. For gate-status, fetch the exact head commit status and recent Actions runs concurrently before any base-branch lookup; trust a Gate status only when its referenced Actions run matches both the requested PR identity (#<prNumber> or exact head branch) and exact head SHA; otherwise recover to the latest matching current-PR Gate run, or report pending if no exact matching run exists. Preserve the raw Forgejo state as diagnostic metadata. Add regression coverage, Gate, squash merge, release cc-execution, and verify live against PR #3693.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["workers/cc-execution/src/index-mcp.js","workers/cc-execution/test/mcp.test.js","workers/cc-execution/src/version.js"],"anchored_edits":[{"path":"workers/cc-execution/src/index-mcp.js","edits":[{"new_content":"  const baseShaAtOpen = String(pull?.base?.sha || pull?.base?.id || \"\");\n\n  if (route === \"/forgejo/pr/gate-status\") {\n    const [statusRead, runsRead] = await Promise.all([\n      forgejoOperatorGetJson(`${apiBase}/commits/${encodeURIComponent(headSha)}/status`, headers),\n      forgejoOperatorGetJson(`${apiBase}/actions/runs?limit=30&page=1`, headers),\n    ]);\n    if (!statusRead.ok) return forgejoOperatorReadFailure(statusRead, \"forgejo_gate_status_failed\", \"commit_status_read_failed\");\n    if (!runsRead.ok) return forgejoOperatorReadFailure(runsRead, \"forgejo_gate_status_failed\", \"actions_runs_read_failed\");\n    const rawGate = statusRead.payload || {};\n    const rawState = String(rawGate?.state || \"\").toLowerCase();\n    const statuses = Array.isArray(rawGate?.statuses) ? rawGate.statuses : [];\n    const gateStatus = statuses\n      .filter((status) => String(status?.context || \"\").startsWith(\"KnockLaunch Gate / KnockLaunch Gate\"))\n      .sort((left, right) => Number(right?.id || 0) - Number(left?.id || 0))[0] || null;\n    const targetUrl = String(gateStatus?.target_url || gateStatus?.url || \"\");\n    const statusRunMatch = targetUrl.match(/\\/actions\\/runs\\/(\\d+)/);\n    const statusRunId = statusRunMatch ? Number(statusRunMatch[1]) : null;\n    const runsPayload = runsRead.payload;\n    const rawRuns = Array.isArray(runsPayload?.workflow_runs) ? runsPayload.workflow_runs : Array.isArray(runsPayload?.runs) ? runsPayload.runs : Array.isArray(runsPayload) ? runsPayload : [];\n    const runs = rawRuns.slice(0, 30).map((run) => ({\n      id: Number(run?.id || run?.run_id || 0) || null,\n      status: String(run?.status || \"\").toLowerCase(),\n      conclusion: String(run?.conclusion || \"\").toLowerCase(),\n      event: String(run?.trigger_event || run?.event || run?.event_name || \"\").toLowerCase(),\n      headBranch: String(run?.head_branch || run?.prettyref || run?.pretty_ref || run?.branch || \"\").replace(/^refs\\/heads\\//, \"\"),\n      headSha: String(run?.commit_sha || run?.head_sha || run?.headSha || run?.sha || \"\"),\n      createdAt: run?.created_at || run?.created || null,\n      updatedAt: run?.updated_at || run?.updated || null,\n    }));\n    const expectedPrRunRef = `#${prNumber}`;\n    const matchesExactPull = (run) => run?.event === \"pull_request\"\n      && run?.headSha === headSha\n      && (run?.headBranch === expectedPrRunRef || run?.headBranch === headBranch);\n    const statusRun = statusRunId ? runs.find((run) => run.id === statusRunId) || null : null;\n    const matchingRun = runs.filter(matchesExactPull).sort((left, right) => Number(right?.id || 0) - Number(left?.id || 0))[0] || null;\n    const statusIdentityMatches = Boolean(statusRun && matchesExactPull(statusRun));\n    const authoritativeRun = statusIdentityMatches ? statusRun : matchingRun;\n    const evidenceSource = statusIdentityMatches\n      ? \"forgejo_exact_status_run_identity_verified\"\n      : authoritativeRun\n        ? \"forgejo_actions_exact_pr_identity_recovered\"\n        : \"forgejo_stale_gate_status_identity_ignored\";\n    const authoritativeState = authoritativeRun\n      ? String(authoritativeRun.conclusion || authoritativeRun.status || \"pending\").toLowerCase()\n      : \"pending\";\n    return json({\n      ok: true,\n      status: \"read_back_verified\",\n      proofGate: \"forgejo_gate_status_verified\",\n      repository,\n      prNumber,\n      headSha,\n      gate: {\n        ...rawGate,\n        state: authoritativeState,\n        rawState,\n        identityResolved: Boolean(authoritativeRun),\n        evidenceSource,\n        authoritativeRun,\n        staleStatusRunId: statusIdentityMatches ? null : statusRunId,\n      },\n    });\n  }\n\n  const baseRead = await forgejoOperatorGetJson(`${apiBase}/branches/${encodeURIComponent(baseBranch)}`, headers);\n  if (!baseRead.ok) return forgejoOperatorReadFailure(baseRead, \"forgejo_pr_base_read_failed\", \"base_branch_read_failed\");\n  const basePayload = baseRead.payload || {};\n  const currentBaseSha = String(basePayload?.commit?.id || basePayload?.commit?.sha || \"\");\n  const mergeBaseSha = String(pull?.merge_base || pull?.merge_base_commit?.sha || pull?.merge_base_commit?.id || \"\").trim();","old_content":"  const baseShaAtOpen = String(pull?.base?.sha || pull?.base?.id || \"\");\n  const baseRead = await forgejoOperatorGetJson(`${apiBase}/branches/${encodeURIComponent(baseBranch)}`, headers);\n  if (!baseRead.ok) return forgejoOperatorReadFailure(baseRead, \"forgejo_pr_base_read_failed\", \"base_branch_read_failed\");\n  const basePayload = baseRead.payload || {};\n  const currentBaseSha = String(basePayload?.commit?.id || basePayload?.commit?.sha || \"\");\n\n  if (route === \"/forgejo/pr/gate-status\") {\n    const statusRead = await forgejoOperatorGetJson(`${apiBase}/commits/${encodeURIComponent(headSha)}/status`, headers);\n    if (!statusRead.ok) return forgejoOperatorReadFailure(statusRead, \"forgejo_gate_status_failed\", \"commit_status_read_failed\");\n    return json({ ok: true, status: \"read_back_verified\", proofGate: \"forgejo_gate_status_verified\", repository, prNumber, headSha, gate: statusRead.payload });\n  }\n\n  const mergeBaseSha = String(pull?.merge_base || pull?.merge_base_commit?.sha || pull?.merge_base_commit?.id || \"\").trim();"}]},{"path":"workers/cc-execution/test/mcp.test.js","edits":[{"new_content":"test(\"direct Gate status resolves exact PR run identity before base-branch inspection\", async () => {\n  const source = await import('node:fs/promises').then((fs) => fs.readFile(new URL('../src/index-mcp.js', import.meta.url), 'utf8'));\n  const gateRouteIndex = source.indexOf('if (route === \"/forgejo/pr/gate-status\")');\n  const baseReadIndex = source.indexOf('const baseRead = await forgejoOperatorGetJson(`${apiBase}/branches/${encodeURIComponent(baseBranch)}`, headers);');\n  assert.ok(gateRouteIndex >= 0);\n  assert.ok(baseReadIndex > gateRouteIndex);\n  assert.match(source, /actions\\/runs\\?limit=30&page=1/);\n  assert.match(source, /const expectedPrRunRef = `#\\$\\{prNumber\\}`/);\n  assert.match(source, /forgejo_actions_exact_pr_identity_recovered/);\n  assert.match(source, /forgejo_stale_gate_status_identity_ignored/);\n  assert.match(source, /identityResolved: Boolean\\(authoritativeRun\\)/);\n});\n\ntest(\"healthy empty queue does not invent a recovery action\", () => {","old_content":"test(\"healthy empty queue does not invent a recovery action\", () => {"}]},{"path":"workers/cc-execution/src/version.js","edits":[{"new_content":"export const CC_EXECUTION_VERSION = \"1.58.274-gate-status-identity\";","old_content":"export const CC_EXECUTION_VERSION = \"1.58.273-stale-pr-gate-identity\";"}]}],"implementation":{"files":[],"writes":[]},"requestContract":{"outcomes":[{"id":"identity-aware-gate-status","statement":"Direct forgejo_gate_status reports Gate state from an Actions run matching the exact requested PR identity and exact head SHA, with raw combined state retained only as diagnostics.","proofConditionIds":["gate-status-runtime"]},{"id":"remove-base-read","statement":"The Gate-status route returns before the unrelated base-branch read, reducing owner-facing read latency.","proofConditionIds":["gate-status-runtime"]}],"objective":"Align the direct forgejo_gate_status operator with the identity-aware Gate authority already live in prReady, and remove its unnecessary base-branch read. For gate-status, fetch the exact head commit status and recent Actions runs concurrently before any base-branch lookup; trust a Gate status only when its referenced Actions run matches both the requested PR identity (#<prNumber> or exact head branch) and exact head SHA; otherwise recover to the latest matching current-PR Gate run, or report pending if no exact matching run exists. Preserve the raw Forgejo state as diagnostic metadata. Add regression coverage, Gate, squash merge, release cc-execution, and verify live against PR #3693.","constraints":[{"id":"fail-closed-stale-only","statement":"If no exact current-PR Gate run exists, direct status reports pending rather than trusting stale success or stale failure.","proofConditionIds":["gate-status-runtime"]}],"proofConditions":[{"id":"gate-status-runtime","kind":"runtime","claim":"Production cc-execution runs 1.58.274 and forgejo_gate_status for PR #3693 returns identity-aware exact-PR Gate evidence.","required":true,"requiredReleaseTargets":["ccExecution"]}]},"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":null,"ownerApproved":true,"releaseIntent":null,"sourceTargets":["workers/cc-execution/src/index-mcp.js","workers/cc-execution/test/mcp.test.js","workers/cc-execution/src/version.js"],"requestContract":{"outcomes":[{"id":"identity-aware-gate-status","statement":"Direct forgejo_gate_status reports Gate state from an Actions run matching the exact requested PR identity and exact head SHA, with raw combined state retained only as diagnostics.","proofConditionIds":["gate-status-runtime"]},{"id":"remove-base-read","statement":"The Gate-status route returns before the unrelated base-branch read, reducing owner-facing read latency.","proofConditionIds":["gate-status-runtime"]}],"objective":"Align the direct forgejo_gate_status operator with the identity-aware Gate authority already live in prReady, and remove its unnecessary base-branch read. For gate-status, fetch the exact head commit status and recent Actions runs concurrently before any base-branch lookup; trust a Gate status only when its referenced Actions run matches both the requested PR identity (#<prNumber> or exact head branch) and exact head SHA; otherwise recover to the latest matching current-PR Gate run, or report pending if no exact matching run exists. Preserve the raw Forgejo state as diagnostic metadata. Add regression coverage, Gate, squash merge, release cc-execution, and verify live against PR #3693.","constraints":[{"id":"fail-closed-stale-only","statement":"If no exact current-PR Gate run exists, direct status reports pending rather than trusting stale success or stale failure.","proofConditionIds":["gate-status-runtime"]}],"proofConditions":[{"id":"gate-status-runtime","kind":"runtime","claim":"Production cc-execution runs 1.58.274 and forgejo_gate_status for PR #3693 returns identity-aware exact-PR Gate evidence.","required":true,"requiredReleaseTargets":["ccExecution"]}]},"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":["workers/cc-execution/src/index-mcp.js","workers/cc-execution/test/mcp.test.js","workers/cc-execution/src/version.js"],"controlPlaneMaintenanceReason":"Align direct Gate status reporting with exact PR/run identity authority and remove an unnecessary base-branch read from the Gate-status hot path."},"proofRequirements":null,"controlPlaneUnfreeze":true,"durableMutationResume":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":["workers/cc-execution/src/index-mcp.js","workers/cc-execution/test/mcp.test.js","workers/cc-execution/src/version.js"],"controlPlaneMaintenanceReason":"Align direct Gate status reporting with exact PR/run identity authority and remove an unnecessary base-branch read from the Gate-status hot path."},"recovery":false,"fingerprint":"c8b91e1e8d78abe1e6c9474057d8866f6bcbf0dd0f6922e9f9803ac4a1c25828","replayCount":0,"serializedBytes":12540},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:48:52.573155+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:1443ad08-dd3c-4cf3-9679-c93fe1d26c3f:repository-mutation-intent:c8b91e1e8d78abe1e6c9474057d8866f6bcbf0dd0f6922e9f9803ac4a1c25828:0","mission_step_id":"8f6254f4-3c21-4466-a9b7-57f49f7ffd07","command_center_event_id":"1443ad08-dd3c-4cf3-9679-c93fe1d26c3f"},{"id":"b838a1be-54d3-4bad-87be-3cad1a1397c8","source":"durable-mission-ledger","status":"pending","payload":{"sourceSha":"ac45cf27721df31df37ecedcc73af3413bfa33e7","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"golden-current","satisfied":false,"statement":"Canonical restore state is the current fully proven September 25 lane-affinity and PAUL-stable architecture.","proofConditionIds":["restore","validator","contract"]}],"satisfied":false,"constraints":[{"id":"preserve-layered-truth","satisfied":false,"statement":"Preserve affected-target runtime identities and all prior restore safety; do not force unrelated runtime redeploys or mutate tenant/product/data state.","proofConditionIds":["restore","validator","contract"]},{"id":"capability-completeness","satisfied":false,"statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["restore","validator","contract"]},{"id":"atomic-capability-lifecycle","satisfied":false,"statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["restore","validator","contract"]}],"contractHash":"754bc460ccbb0e030450a5917c8cffb263bcbb9cff75fd720147fe7dc0358853","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"restore","kind":"repository","evidence":{"reason":null,"gateRunId":null,"satisfied":true,"gateTestProof":null,"gateTestPassed":false,"missingTargets":[],"gateTestExecuted":false,"disallowedTargets":[],"migrationRequired":false,"namedGateTestPath":null,"releaseTargetStates":{},"repositoryProofGate":null,"repositoryProofPath":null,"requestContractHash":"754bc460ccbb0e030450a5917c8cffb263bcbb9cff75fd720147fe7dc0358853","unsuccessfulTargets":[],"activeReleaseTargets":[],"allowedReleaseTargets":[],"repositoryProofStatus":"required","expectedRepositoryPath":null,"namedGateTestSatisfied":true,"requiredReleaseTargets":[],"migrationReleaseVerified":null,"repositoryConditionBound":false,"repositoryProofSourceSha":null},"required":true,"satisfied":false},{"id":"validator","kind":"repository","evidence":{"reason":null,"gateRunId":null,"satisfied":true,"gateTestProof":null,"gateTestPassed":false,"missingTargets":[],"gateTestExecuted":false,"disallowedTargets":[],"migrationRequired":false,"namedGateTestPath":null,"releaseTargetStates":{},"repositoryProofGate":null,"repositoryProofPath":null,"requestContractHash":"754bc460ccbb0e030450a5917c8cffb263bcbb9cff75fd720147fe7dc0358853","unsuccessfulTargets":[],"activeReleaseTargets":[],"allowedReleaseTargets":[],"repositoryProofStatus":"required","expectedRepositoryPath":null,"namedGateTestSatisfied":true,"requiredReleaseTargets":[],"migrationReleaseVerified":null,"repositoryConditionBound":false,"repositoryProofSourceSha":null},"required":true,"satisfied":false},{"id":"contract","kind":"repository","evidence":{"reason":null,"gateRunId":null,"satisfied":true,"gateTestProof":null,"gateTestPassed":false,"missingTargets":[],"gateTestExecuted":false,"disallowedTargets":[],"migrationRequired":false,"namedGateTestPath":null,"releaseTargetStates":{},"repositoryProofGate":null,"repositoryProofPath":null,"requestContractHash":"754bc460ccbb0e030450a5917c8cffb263bcbb9cff75fd720147fe7dc0358853","unsuccessfulTargets":[],"activeReleaseTargets":[],"allowedReleaseTargets":[],"repositoryProofStatus":"required","expectedRepositoryPath":null,"namedGateTestSatisfied":true,"requiredReleaseTargets":[],"migrationReleaseVerified":null,"repositoryConditionBound":false,"repositoryProofSourceSha":null},"required":true,"satisfied":false}],"validationErrors":[],"pendingProofKinds":["repository"],"activeReleaseTargets":[]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T13:55:03.398447+00:00","proof_gate":"request_contract_pending","source_sha":"ac45cf27721df31df37ecedcc73af3413bfa33e7","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:538a9c14-718a-4b3e-87fa-1c98217b29e5:request-contract:754bc460ccbb0e030450a5917c8cffb263bcbb9cff75fd720147fe7dc0358853:ac45cf27721df31df37ecedcc73af3413bfa33e7:pending:repository","mission_step_id":"7da7d22d-0b70-4e2a-97f8-9221dcd13f64","command_center_event_id":"538a9c14-718a-4b3e-87fa-1c98217b29e5"},{"id":"6a2bbcce-a773-442c-8f21-3895a4ff680b","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-97b239709674","writes":[],"patches":[],"version":1,"approved":true,"missionId":"97b23970-9674-457b-9e57-2fa8ca7f163b","objective":"Fix mobile private navigation stacking and Big Papi tenant navigation. Platform utility navigation (Back, Home, Refresh, Messages) must be the bottom-most private mobile bar. Tenant navigation must sit immediately above the platform bar. Big Papi tenant nav must be exactly five slots in this order: entry 1, entry 2, centered Modes crown, entry 3, avatar. Preserve route-aware filtering, mode colors, crown behavior, avatar-last, private-only behavior, and desktop behavior.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/pages/mobile-vendor/BigPapisOwnerShell.tsx","src/PrivateAppShell.tsx","src/__tests__/contracts/mobile-tenant-avatar-navigation.contract.test.ts"],"anchored_edits":[{"path":"src/PrivateAppShell.tsx","anchor":"React.useEffect(()=>{if(!mobile||typeof document==='undefined'||typeof window==='undefined')return;const footer=footerRef.current;if(!footer)return;const selectors=['[data-tenant-modes-mobile-nav=\"true\"]','[data-tenant-modes-mobile-landing-nav=\"true\"]','[data-mobile-bottom-nav=\"true\"]','[data-tenant-mobile-nav=\"true\"]'];const sync=()=>","replacement":"React.useEffect(()=>{if(!mobile||typeof document==='undefined'||typeof window==='undefined')return;const footer=footerRef.current;if(!footer)return;const selectors=['[data-big-papis-mobile-nav=\"true\"]','[data-tenant-modes-mobile-nav=\"true\"]','[data-tenant-modes-mobile-landing-nav=\"true\"]','[data-mobile-bottom-nav=\"true\"]','[data-tenant-mobile-nav=\"true\"]'];const sync=()=>"},{"path":"src/PrivateAppShell.tsx","anchor":"},[mobile,activeTenant?.id]);React.useEffect(()=>{if(!mobile||typeof document==='undefined'||typeof window==='undefined')return;const footer=footerRef.current;if(!footer)return;const selectors=['[data-tenant-modes-mobile-nav=\"true\"]','[data-tenant-modes-mobile-landing-nav=\"true\"]','[data-mobile-bottom-nav=\"true\"]','[data-tenant-mobile-nav=\"true\"]'];const primary=","replacement":"},[mobile,activeTenant?.id]);React.useEffect(()=>{if(!mobile||typeof document==='undefined'||typeof window==='undefined')return;const footer=footerRef.current;if(!footer)return;const selectors=['[data-big-papis-mobile-nav=\"true\"]','[data-tenant-modes-mobile-nav=\"true\"]','[data-tenant-modes-mobile-landing-nav=\"true\"]','[data-mobile-bottom-nav=\"true\"]','[data-tenant-mobile-nav=\"true\"]'];const primary="},{"path":"src/PrivateAppShell.tsx","anchor":".kl-responsive-tenant-runtime [data-tenant-modes-mobile-nav=\"true\"],.kl-responsive-tenant-runtime [data-tenant-modes-mobile-landing-nav=\"true\"],.kl-responsive-tenant-runtime [data-mobile-bottom-nav=\"true\"],.kl-responsive-tenant-runtime [data-tenant-mobile-nav=\"true\"]{bottom:calc(env(safe-area-inset-bottom) + var(--kl-mobile-utility-footer-h))!important;padding-bottom:0!important}","replacement":".kl-responsive-tenant-runtime [data-big-papis-mobile-nav=\"true\"],.kl-responsive-tenant-runtime [data-tenant-modes-mobile-nav=\"true\"],.kl-responsive-tenant-runtime [data-tenant-modes-mobile-landing-nav=\"true\"],.kl-responsive-tenant-runtime [data-mobile-bottom-nav=\"true\"],.kl-responsive-tenant-runtime [data-tenant-mobile-nav=\"true\"]{bottom:calc(env(safe-area-inset-bottom) + var(--kl-mobile-utility-footer-h))!important;padding-bottom:0!important}"},{"path":"src/pages/mobile-vendor/BigPapisOwnerShell.tsx","anchor":"    }).slice(0, 4);","replacement":"    }).slice(0, 3);"},{"path":"src/pages/mobile-vendor/BigPapisOwnerShell.tsx","anchor":"<nav data-big-papis-mobile-nav=\"true\" data-big-papis-mobile-nav-contract=\"crown-centered-v2\" className=\"fixed inset-x-0 bottom-0 z-[80] grid grid-cols-6","replacement":"<nav data-big-papis-mobile-nav=\"true\" data-big-papis-mobile-nav-contract=\"crown-centered-v3\" className=\"fixed inset-x-0 bottom-0 z-[80] grid grid-cols-5"},{"path":"src/pages/mobile-vendor/BigPapisOwnerShell.tsx","anchor":"{mobileShortcutItems.slice(2, 4).map((item, index) =>","replacement":"{mobileShortcutItems.slice(2, 3).map((item, index) =>"},{"path":"src/pages/mobile-vendor/BigPapisOwnerShell.tsx","anchor":"{mobileShortcutItems.length < 4 ? Array.from({ length: Math.max(0, 4 - Math.max(2, mobileShortcutItems.length)) }, (_, index) => <span key={`right-placeholder-${index}`} aria-hidden=\"true\" />) : null}","replacement":"{mobileShortcutItems.length < 3 ? <span aria-hidden=\"true\" /> : null}"},{"path":"src/__tests__/contracts/mobile-tenant-avatar-navigation.contract.test.ts","anchor":"    expect(bigPapis).toContain('grid-cols-6');\n    expect(bigPapis).toContain('data-big-papis-mobile-nav-contract=\"crown-centered-v2\"');","replacement":"    expect(bigPapis).toContain('grid-cols-5');\n    expect(bigPapis).toContain('data-big-papis-mobile-nav-contract=\"crown-centered-v3\"');\n    expect(bigPapis).toContain('mobileShortcutItems.slice(2, 3)');"},{"path":"src/__tests__/contracts/mobile-tenant-avatar-navigation.contract.test.ts","anchor":"    expect(privateShell).toContain('data-tenant-mobile-shell-contract=\"canonical-v2\"');","replacement":"    expect(privateShell).toContain('data-tenant-mobile-shell-contract=\"canonical-v2\"');\n    expect(privateShell).toContain('[data-big-papis-mobile-nav=\"true\"]');"}],"implementation":{"files":[],"writes":[]},"requestContract":{"source":"explicit_owner_request","version":1,"outcomes":[{"id":"mobile-nav-stack","statement":"Fix mobile private navigation stacking and Big Papi tenant navigation. Platform utility navigation (Back, Home, Refresh, Messages) must be the bottom-most private mobile bar. Tenant navigation must sit immediately above the platform bar. Big Papi tenant nav must be exactly five slots in this order: entry 1, entry 2, centered Modes crown, entry 3, avatar. Preserve route-aware filtering, mode colors, crown behavior, avatar-last, private-only behavior, and desktop behavior.","proofConditionIds":["proof-production","proof-mobile-layout"]}],"objective":"Fix mobile private navigation stacking and Big Papi tenant navigation. Platform utility navigation (Back, Home, Refresh, Messages) must be the bottom-most private mobile bar. Tenant navigation must sit immediately above the platform bar. Big Papi tenant nav must be exactly five slots in this order: entry 1, entry 2, centered Modes crown, entry 3, avatar. Preserve route-aware filtering, mode colors, crown behavior, avatar-last, private-only behavior, and desktop behavior.","constraints":[{"id":"private-only","statement":"Private mobile navigation bars never appear on public-facing routes.","proofConditionIds":["proof-production","proof-mobile-layout"]},{"id":"big-papis-five-slot","statement":"Big Papi tenant mobile nav is exactly entry 1, entry 2, centered crown, entry 3, avatar.","proofConditionIds":["proof-production","proof-mobile-layout"]},{"id":"platform-bottom","statement":"Platform utility bar is bottom-most and tenant nav sits immediately above it.","proofConditionIds":["proof-production","proof-mobile-layout"]},{"id":"desktop-unchanged","statement":"Desktop navigation remains unchanged.","proofConditionIds":["proof-production"]},{"id":"visual-content-truth","statement":"No business content or data is invented or altered.","proofConditionIds":["proof-mobile-layout"]},{"id":"tenant-visual-isolation","statement":"The visual change is isolated to Big Papi and the shared private nav stack.","proofConditionIds":["proof-mobile-layout"]},{"id":"visual-viewport-authority","statement":"Mobile viewport is authoritative.","proofConditionIds":["proof-mobile-layout"]},{"id":"capability-completeness","statement":"Exact merged source must be released through the canonical frontend path.","proofConditionIds":["proof-production"]},{"id":"atomic-capability-lifecycle","statement":"Completion requires both live release and claim-matched visual proof.","proofConditionIds":["proof-production"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"runtime","claim":"The exact merged navigation fix is live.","route":"https://app.knocklaunch.app/big-papis/owner/customers?bpMode=event","required":true},{"id":"proof-mobile-layout","kind":"visual","claim":"On Big Papi mobile, Back/Home/Refresh/Messages is bottom-most; the tenant row is immediately above and is exactly entry 1, entry 2, centered crown, entry 3, avatar.","route":"https://app.knocklaunch.app/big-papis/owner/customers?bpMode=event","required":true}]},"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":null,"ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/pages/mobile-vendor/BigPapisOwnerShell.tsx","src/PrivateAppShell.tsx","src/__tests__/contracts/mobile-tenant-avatar-navigation.contract.test.ts"],"requestContract":{"source":"explicit_owner_request","version":1,"outcomes":[{"id":"mobile-nav-stack","statement":"Fix mobile private navigation stacking and Big Papi tenant navigation. Platform utility navigation (Back, Home, Refresh, Messages) must be the bottom-most private mobile bar. Tenant navigation must sit immediately above the platform bar. Big Papi tenant nav must be exactly five slots in this order: entry 1, entry 2, centered Modes crown, entry 3, avatar. Preserve route-aware filtering, mode colors, crown behavior, avatar-last, private-only behavior, and desktop behavior.","proofConditionIds":["proof-production","proof-mobile-layout"]}],"objective":"Fix mobile private navigation stacking and Big Papi tenant navigation. Platform utility navigation (Back, Home, Refresh, Messages) must be the bottom-most private mobile bar. Tenant navigation must sit immediately above the platform bar. Big Papi tenant nav must be exactly five slots in this order: entry 1, entry 2, centered Modes crown, entry 3, avatar. Preserve route-aware filtering, mode colors, crown behavior, avatar-last, private-only behavior, and desktop behavior.","constraints":[{"id":"private-only","statement":"Private mobile navigation bars never appear on public-facing routes.","proofConditionIds":["proof-production","proof-mobile-layout"]},{"id":"big-papis-five-slot","statement":"Big Papi tenant mobile nav is exactly entry 1, entry 2, centered crown, entry 3, avatar.","proofConditionIds":["proof-production","proof-mobile-layout"]},{"id":"platform-bottom","statement":"Platform utility bar is bottom-most and tenant nav sits immediately above it.","proofConditionIds":["proof-production","proof-mobile-layout"]},{"id":"desktop-unchanged","statement":"Desktop navigation remains unchanged.","proofConditionIds":["proof-production"]},{"id":"visual-content-truth","statement":"No business content or data is invented or altered.","proofConditionIds":["proof-mobile-layout"]},{"id":"tenant-visual-isolation","statement":"The visual change is isolated to Big Papi and the shared private nav stack.","proofConditionIds":["proof-mobile-layout"]},{"id":"visual-viewport-authority","statement":"Mobile viewport is authoritative.","proofConditionIds":["proof-mobile-layout"]},{"id":"capability-completeness","statement":"Exact merged source must be released through the canonical frontend path.","proofConditionIds":["proof-production"]},{"id":"atomic-capability-lifecycle","statement":"Completion requires both live release and claim-matched visual proof.","proofConditionIds":["proof-production"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"runtime","claim":"The exact merged navigation fix is live.","route":"https://app.knocklaunch.app/big-papis/owner/customers?bpMode=event","required":true},{"id":"proof-mobile-layout","kind":"visual","claim":"On Big Papi mobile, Back/Home/Refresh/Messages is bottom-most; the tenant row is immediately above and is exactly entry 1, entry 2, centered crown, entry 3, avatar.","route":"https://app.knocklaunch.app/big-papis/owner/customers?bpMode=event","required":true}]},"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":false,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"proofRequirements":null,"controlPlaneUnfreeze":false,"durableMutationResume":true,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"recovery":false,"fingerprint":"f4ba36b175755792b5f3739652100aa34b7fb266feae4afeed73d6ac79f58f5d","replayCount":0,"serializedBytes":12478},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T18:49:27.372621+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:97b23970-9674-457b-9e57-2fa8ca7f163b:repository-mutation-intent:f4ba36b175755792b5f3739652100aa34b7fb266feae4afeed73d6ac79f58f5d:0","mission_step_id":"b50057bf-9953-4c00-b68e-b1aae12d53ed","command_center_event_id":"97b23970-9674-457b-9e57-2fa8ca7f163b"},{"id":"10886ccc-b2b9-4b33-94cc-23251e97922d","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-6730ce8a6cce","reason":"retryable_provider_transport:forgejo_provider_read_timeout","status":"retryable","metrics":{"receiptBytes":19093,"releaseCount":0,"toolCallCount":9,"repeatedCallCount":4,"executorlessWaitMs":2666701,"firstUsefulResultAt":"2026-09-25T19:53:39.511Z","recoveryAttemptCount":5,"ownerInterruptionCount":0},"version":"1.58.282-lineage-main-guard","prNumber":3760,"terminal":false,"missionId":"6730ce8a-6cce-416c-bff4-935556eb70a6","operation":"execute_mission","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":5701,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":5576,"approvedPlanMs":0,"missionSetupMs":454,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":314,"ledgerReconcileMs":0,"lineageReconcileMs":140,"resolvePreflightMs":454,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":314,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"6730ce8a-6cce-416c-bff4-935556eb70a6"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime","visual"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1522,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T20:38:21.531668+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"3760","receipt_type":"execute_mission","idempotency_key":"mission:6730ce8a-6cce-416c-bff4-935556eb70a6:execute_mission:repair_mission_pr_ready_retryable:current-generation","mission_step_id":"1afe8d6e-f6b0-4b09-bb3f-775389c6c67b","command_center_event_id":"6730ce8a-6cce-416c-bff4-935556eb70a6"},{"id":"4bd01486-0545-407d-8353-f9b9c406c8a7","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","frontend-cloudflare/live":"success","supabase-edge-production/live":"success"},"mainSha":"7fed9cc44c92b49870b5b787fdc25daa427d33b8","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","supabase-edge-production/live","frontend-cloudflare/live"],"sourceSha":"7fed9cc44c92b49870b5b787fdc25daa427d33b8","releaseState":"verified","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":true,"edgeFunctionSlugs":["agreement-sign"]},"releaseTargetStates":{"frontend":"success","supabaseEdge":"success"},"requestContractHash":"2a7e252dcad6c90f2887949bca1fd8d496d18976566fb0443642320c2806c014","forgejoWorkflowProof":{"runId":11889,"source":"signed_push_receipt","status":"success","results":{},"conclusion":"success","targetStates":{"frontend":"success","supabaseEdge":"success"},"targetJobCount":7,"observedTargetStates":{"frontend":"success","supabaseEdge":"success"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T21:16:08.34341+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"7fed9cc44c92b49870b5b787fdc25daa427d33b8","external_id":"forgejo-main-7fed9cc44c92","receipt_type":"canonical_release_status","idempotency_key":"mission:66e23008-19b2-4374-a02f-d718db6747ed:forgejo-release-status:7fed9cc44c92b49870b5b787fdc25daa427d33b8:verified:forgejo-main/source=success|forgejo-release/workflow=success|supabase-edge-production/live=success|frontend-cloudflare/live=success","mission_step_id":"8ba0a43b-74fb-4973-8eec-66fef4a0b52f","command_center_event_id":"66e23008-19b2-4374-a02f-d718db6747ed"},{"id":"746f3993-0cbe-48d5-8694-9ca5cf3d3947","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-be43a1e02a9d","writes":[],"patches":[],"version":1,"approved":true,"missionId":"be43a1e0-2a9d-40b3-a847-c74116e05a65","objective":"Correct the recurring hosted GodMode KNOCKLAUNCH Console MSI-disconnected prompt. The hosted Console at app.knocklaunch.app/knocklaunch.app must persist the MSI pairing token in that browser's localStorage and restore it on startup, just like the standalone local Console, so reloads and browser restarts do not require re-pairing. Keep the token scoped to browser localStorage only; do not expose provider credentials, alter the loopback server, runner configuration, or provider configuration. Update the hosted helper copy to say this browser remains paired unless browser storage is cleared or the machine pairing is reset. Update focused Console tests and README. Modify only public/console/console.js, scripts/knocklaunch-console/console.test.mjs, scripts/knocklaunch-console/README.md. One focused PR, canonical Gate, squash merge, release frontend because the public Console asset changes, then verify live.","repository":"noel/KnockLaunchOS","visualProof":false,"ownerApproved":true,"releaseIntent":null,"sourceTargets":["public/console/console.js","scripts/knocklaunch-console/console.test.mjs","scripts/knocklaunch-console/README.md"],"anchored_edits":[{"path":"public/console/console.js","new_content":"const localSessionKey='kl-console-session';\nlet token=localStorage.getItem(localSessionKey)||'';","old_content":"const localSessionKey='kl-console-session';\nlet token=local?localStorage.getItem(localSessionKey)||'':'';"},{"path":"public/console/console.js","new_content":"<p class=\"muted\">This browser stays paired to this MSI. Re-pair only if browser storage is cleared or the machine pairing is reset.${local?'':' Your browser may ask to allow access to devices on your local network.'}</p>","old_content":"${local?'<p class=\"muted\">This browser stays paired to this MSI. Reopen the launcher only if browser storage is cleared or the machine pairing is reset.</p>':'<p class=\"muted\">Your browser may ask to allow access to devices on your local network.</p>'}"},{"path":"public/console/console.js","new_content":"if(connect)connect.onclick=()=>{token=app.querySelector('#pair').value.trim();localStorage.setItem(localSessionKey,token);refresh();};","old_content":"if(connect)connect.onclick=()=>{token=app.querySelector('#pair').value.trim();if(local)localStorage.setItem(localSessionKey,token);refresh();};"},{"path":"scripts/knocklaunch-console/console.test.mjs","new_content":" assert.match(client,/let token=localStorage\\.getItem\\(localSessionKey\\)\\|\\|''/);assert.match(client,/localStorage\\.setItem\\(localSessionKey,token\\)/);assert.equal(client.includes(\"if(local)localStorage.setItem(localSessionKey,token)\"),false);assert.equal(client.includes('sessionStorage'),false);","old_content":" assert.match(client,/localStorage\\.getItem\\(localSessionKey\\)/);assert.match(client,/localStorage\\.setItem\\(localSessionKey,token\\)/);assert.equal(client.includes('sessionStorage'),false);"},{"path":"scripts/knocklaunch-console/README.md","new_content":"In GodMode, open **KNOCKLAUNCH Console** and enter the MSI pairing code once. Both the hosted GodMode Console and the standalone local Console retain that machine pairing in browser local storage, while the random machine-local session itself remains stored under the current Windows user's `.knocklaunch-console` directory. Page refreshes, browser restarts, and Console server restarts do not require re-pairing. Re-pair only if browser storage is cleared or the machine pairing file is intentionally reset. Keep the local Console server running while using local actions. Public customers cannot invoke this local service.","old_content":"In GodMode, open **KNOCKLAUNCH Console**. The local launcher pairs this browser with the MSI once. The random machine-local session is stored only under the current Windows user's `.knocklaunch-console` directory and the browser retains it in local storage, so page refreshes, browser restarts, and Console server restarts do not require re-pairing. Reopen the launcher only if browser storage is cleared or the machine pairing file is intentionally reset. Keep the local Console server running while using local actions. Public customers cannot invoke this local service."}],"implementation":{"files":[],"writes":[]},"requestContract":{"outcomes":[{"id":"hosted-pairing-persists","statement":"Hosted GodMode Console saves and restores the MSI pairing from localStorage across reloads/browser restarts.","proofConditionIds":["proof-repository","proof-test","proof-live"]}],"objective":"Correct the recurring hosted GodMode KNOCKLAUNCH Console MSI-disconnected prompt. The hosted Console at app.knocklaunch.app/knocklaunch.app must persist the MSI pairing token in that browser's localStorage and restore it on startup, just like the standalone local Console, so reloads and browser restarts do not require re-pairing. Keep the token scoped to browser localStorage only; do not expose provider credentials, alter the loopback server, runner configuration, or provider configuration. Update the hosted helper copy to say this browser remains paired unless browser storage is cleared or the machine pairing is reset. Update focused Console tests and README. Modify only public/console/console.js, scripts/knocklaunch-console/console.test.mjs, scripts/knocklaunch-console/README.md. One focused PR, canonical Gate, squash merge, release frontend because the public Console asset changes, then verify live.","constraints":[{"id":"scope","statement":"Only public/console/console.js, scripts/knocklaunch-console/console.test.mjs, and scripts/knocklaunch-console/README.md may change.","proofConditionIds":["proof-repository"]},{"id":"security","statement":"Do not change loopback server trust/origin checks or persist provider credentials in browser storage.","proofConditionIds":["proof-repository","proof-test"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_merge","proofConditions":[{"id":"proof-repository","kind":"repository","claim":"Merged main loads and saves kl-console-session from localStorage for hosted and local Console origins.","required":true},{"id":"proof-test","kind":"repository","claim":"Console tests prove pairing storage is not gated to local-only behavior and sessionStorage is absent.","required":true},{"id":"proof-live","kind":"runtime","claim":"Live frontend serves the corrected hosted Console asset after merge.","required":true}]},"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":null,"ownerApproved":true,"releaseIntent":null,"sourceTargets":["public/console/console.js","scripts/knocklaunch-console/console.test.mjs","scripts/knocklaunch-console/README.md"],"requestContract":{"outcomes":[{"id":"hosted-pairing-persists","statement":"Hosted GodMode Console saves and restores the MSI pairing from localStorage across reloads/browser restarts.","proofConditionIds":["proof-repository","proof-test","proof-live"]}],"objective":"Correct the recurring hosted GodMode KNOCKLAUNCH Console MSI-disconnected prompt. The hosted Console at app.knocklaunch.app/knocklaunch.app must persist the MSI pairing token in that browser's localStorage and restore it on startup, just like the standalone local Console, so reloads and browser restarts do not require re-pairing. Keep the token scoped to browser localStorage only; do not expose provider credentials, alter the loopback server, runner configuration, or provider configuration. Update the hosted helper copy to say this browser remains paired unless browser storage is cleared or the machine pairing is reset. Update focused Console tests and README. Modify only public/console/console.js, scripts/knocklaunch-console/console.test.mjs, scripts/knocklaunch-console/README.md. One focused PR, canonical Gate, squash merge, release frontend because the public Console asset changes, then verify live.","constraints":[{"id":"scope","statement":"Only public/console/console.js, scripts/knocklaunch-console/console.test.mjs, and scripts/knocklaunch-console/README.md may change.","proofConditionIds":["proof-repository"]},{"id":"security","statement":"Do not change loopback server trust/origin checks or persist provider credentials in browser storage.","proofConditionIds":["proof-repository","proof-test"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_merge","proofConditions":[{"id":"proof-repository","kind":"repository","claim":"Merged main loads and saves kl-console-session from localStorage for hosted and local Console origins.","required":true},{"id":"proof-test","kind":"repository","claim":"Console tests prove pairing storage is not gated to local-only behavior and sessionStorage is absent.","required":true},{"id":"proof-live","kind":"runtime","claim":"Live frontend serves the corrected hosted Console asset after merge.","required":true}]},"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":false,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"proofRequirements":null,"controlPlaneUnfreeze":false,"durableMutationResume":true,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"recovery":false,"fingerprint":"6b80fce71f80d30dfa7d7ade2329bb6d2d187fd5cd2aaebacfe34cb3f043a047","replayCount":0,"serializedBytes":9401},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-26T15:07:48.415926+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:be43a1e0-2a9d-40b3-a847-c74116e05a65:repository-mutation-intent:6b80fce71f80d30dfa7d7ade2329bb6d2d187fd5cd2aaebacfe34cb3f043a047:0","mission_step_id":"11d04f30-f563-4476-a2e2-912ee4ded9fe","command_center_event_id":"be43a1e0-2a9d-40b3-a847-c74116e05a65"},{"id":"58657e7f-70c7-471b-aa43-5f19c6c4da1f","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[{"path":"src/pages/crm/PcgWorkspace.tsx","content":"import {useEffect,useMemo,useState,type ComponentType} from 'react';\nimport {useMultiTenant} from '@/contexts/MultiTenantContext';import {supabase} from '@/integrations/supabase/client';import {toast} from '@/lib/notify';import {resolveTenantMediaBranding} from '@/lib/tenants/tenantMediaBranding';import {PCGCardVaultContent} from '@/pages/card-grading/PCGWorkspace';\nimport {Award,BadgeDollarSign,Boxes,Check,ChevronRight,CircleDollarSign,CreditCard,ExternalLink,FileCheck2,Menu,PackageCheck,Plus,Search,Settings,ShieldCheck,Truck,UploadCloud,Users,X} from 'lucide-react';\nimport TenantSettingsPage from '@/pages/settings/TenantSettingsPage';\ntype Submission={id:string;submission_number:string;customer_name:string|null;customer_email:string|null;customer_phone:string|null;service_tier:string;service_price:number;status:string;delivery_method:string|null;received_at:string;due_at:string|null;tracking_in:string|null;tracking_out:string|null;notes:string|null;payment_status:string|null;payment_reference:string|null;paid_at:string|null};type Card={id:string;submission_id:string;sequence_number:number;cert_number:string|null;category:string|null;year:string|null;brand_set:string|null;player_character:string|null;card_number:string|null;card_description:string|null;autograph_present:boolean|null;variation:string|null;declared_value:number|null;grade:number|null;grade_label:string|null;status:string;front_image_url:string|null;back_image_url:string|null;slab_image_url:string|null;grader_notes:string|null;population_count:number|null};type CardDraft={category:string;year:string;brand_set:string;player_character:string;card_number:string;card_description:string;autograph_present:''|'yes'|'no';declared_value:string;grade:string;grade_label:string;cert_number:string;grader_notes:string};type DetailDraft={tracking_in:string;tracking_out:string;notes:string;payment_status:string;payment_reference:string};type Tab='today'|'vault'|'queue'|'submissions'|'certs'|'collectors'|'inventory'|'shipping'|'money'|'settings';type IconType=ComponentType<{className?:string}>;\nconst tabs:[Tab,string,IconType][]=[['today','Operations',Award],['vault','Card Vault',UploadCloud],['queue','Grading Floor',Award],['submissions','Intake',Boxes],['certs','Cert Vault',ShieldCheck],['collectors','Collectors',Users],['shipping','Fulfillment',Truck],['inventory','Card Shop',PackageCheck],['money','Stripe Desk',CircleDollarSign],['settings','Settings',Settings]];const mobilePrimary:[Tab,string,IconType][]=[['today','Ops',Award],['vault','Vault',UploadCloud],['queue','Floor',Award],['certs','Certs',ShieldCheck]];\nconst tiers={two_weeks:{label:'2 Weeks',price:12,days:14},one_week:{label:'1 Week',price:15,days:7},three_days:{label:'3 Days',price:20,days:3},same_day:{label:'Same Day',price:25,days:0}} as const;const statuses=['received','intake_imaging','authentication','grading','encapsulation','qa','ready','shipped','picked_up'] as const;const terminalStatuses=new Set(['shipped','picked_up']);const PCG_STRIPE_FALLBACK='https://buy.stripe.com/3clbJ05UQc3w9KLcBR5Ne00';const PCG_LOGO='https://images.squarespace-cdn.com/content/v1/6853034cd711cc2240276cf3/2c2615b1-2fab-4ba1-8cff-8d8e49b6b184/diamond%2Blogo.png';const PCG_STORE_IMAGE='https://images.squarespace-cdn.com/content/v1/6853034cd711cc2240276cf3/83d3ec70-169f-4d22-8916-15e422fb0e52/IMG_8156%2B%281%29.jpeg';const PCG_CARD_IMAGE='https://images.squarespace-cdn.com/content/v1/6853034cd711cc2240276cf3/7fd5d898-1ff3-4bc2-9f7d-c7f2f2d6ee07/IMG_8111.jpg';const pretty=(value:string)=>value.replaceAll('_',' ').replace(/\\b\\w/g,char=>char.toUpperCase());const inputClass='w-full border border-white/[0.10] bg-black/45 px-3.5 py-3 text-sm text-white outline-none transition placeholder:text-white/28 focus:border-[#d8bb78]/55';const panelClass='border border-white/[0.08] bg-[#09090a]/88';\nfunction cardToDraft(card:Card):CardDraft{return{category:card.category||'',year:card.year||'',brand_set:card.brand_set||'',player_character:card.player_character||'',card_number:card.card_number||'',card_description:card.card_description||card.variation||'',autograph_present:card.autograph_present==null?'':card.autograph_present?'yes':'no',declared_value:card.declared_value==null?'':String(card.declared_value),grade:card.grade==null?'':String(card.grade),grade_label:card.grade_label||'',cert_number:card.cert_number||'',grader_notes:card.grader_notes||''}}function slaMeta(sub:Submission){if(!sub.due_at||terminalStatuses.has(sub.status))return{label:terminalStatuses.has(sub.status)?pretty(sub.status):'No due date',tone:'text-white/42 border-white/10'};const diff=new Date(sub.due_at).getTime()-Date.now();const days=Math.ceil(diff/86400000);if(diff<0)return{label:`${Math.abs(days)}d overdue`,tone:'text-rose-300 border-rose-400/25'};if(days===0)return{label:'Due today',tone:'text-amber-200 border-amber-300/25'};if(days<=2)return{label:`Due in ${days}d`,tone:'text-amber-200 border-amber-300/25'};return{label:`Due ${new Date(sub.due_at).toLocaleDateString()}`,tone:'text-white/46 border-white/10'}}\nexport default function PcgWorkspace({initialTab='today',embedded=false,initialVaultMode='overview'}:{initialTab?:Tab;embedded?:boolean;initialVaultMode?:'overview'|'single'|'batch'|'growth'}={}){const{activeTenant}=useMultiTenant();const tenantId=activeTenant?.id;const settings=((activeTenant as any)?.settings||{}) as Record<string,unknown>;const mediaBranding=useMemo(()=>resolveTenantMediaBranding(activeTenant as any),[activeTenant]);const workspaceBackground=mediaBranding.backgroundUrl||String(settings.background_image_url||settings.backgroundImageUrl||'').trim();const stripePaymentLink=String(settings.stripe_payment_link||PCG_STRIPE_FALLBACK);const stripeSyncConnected=String(settings.stripe_sync_status||'not_connected')==='connected';const[tab,setTab]=useState<Tab>(initialTab);useEffect(()=>{setTab(initialTab)},[initialTab]);const[subs,setSubs]=useState<Submission[]>([]);const[cards,setCards]=useState<Card[]>([]);const[loading,setLoading]=useState(true);const[showNew,setShowNew]=useState(false);const[showMore,setShowMore]=useState(false);const[selectedId,setSelectedId]=useState<string|null>(null);const[query,setQuery]=useState('');const[statusFilter,setStatusFilter]=useState('all');const[certQuery,setCertQuery]=useState('');const[busy,setBusy]=useState(false);const[cardDrafts,setCardDrafts]=useState<Record<string,CardDraft>>({});const[detailDraft,setDetailDraft]=useState<DetailDraft>({tracking_in:'',tracking_out:'',notes:'',payment_status:'unverified',payment_reference:''});const[form,setForm]=useState({name:'',email:'',phone:'',tier:'two_weeks',cardCount:'1',delivery:'walk_in',notes:''});const selectedTier=tiers[form.tier as keyof typeof tiers]||tiers.two_weeks;const selectedCardCount=Math.max(1,Math.min(100,Number(form.cardCount)||1));const expectedTotal=selectedCardCount*selectedTier.price;const openStripe=()=>window.open(stripePaymentLink,'_blank','noopener,noreferrer');\nasync function load(){if(!tenantId)return;setLoading(true);const[s,c]=await Promise.all([(supabase as any).from('card_grading_submissions').select('*').eq('tenant_id',tenantId).order('created_at',{ascending:false}),(supabase as any).from('card_grading_cards').select('*').eq('tenant_id',tenantId).order('sequence_number',{ascending:true})]);if(s.error)toast.error(s.error.message);if(c.error)toast.error(c.error.message);setSubs((s.data||[]) as Submission[]);setCards((c.data||[]) as Card[]);setLoading(false)}useEffect(()=>{void load()},[tenantId]);\nconst counts=useMemo(()=>Object.fromEntries(statuses.map(status=>[status,subs.filter(item=>item.status===status).length])),[subs]);const openSubs=subs.filter(item=>!terminalStatuses.has(item.status));const overdue=openSubs.filter(item=>item.due_at&&new Date(item.due_at)<new Date()).length;const dueSoon=openSubs.filter(item=>item.due_at&&new Date(item.due_at)>=new Date()&&new Date(item.due_at).getTime()-Date.now()<=2*86400000).length;const serviceValue=subs.reduce((sum,item)=>sum+Number(item.service_price||0)*cards.filter(card=>card.submission_id===item.id).length,0);const prioritySubs=[...openSubs].sort((a,b)=>(a.due_at?new Date(a.due_at).getTime():Number.MAX_SAFE_INTEGER)-(b.due_at?new Date(b.due_at).getTime():Number.MAX_SAFE_INTEGER)).slice(0,6);const filteredSubs=subs.filter(item=>{const hay=`${item.submission_number} ${item.customer_name||''} ${item.customer_email||''} ${item.customer_phone||''}`.toLowerCase();return(!query||hay.includes(query.toLowerCase()))&&(statusFilter==='all'||item.status===statusFilter)});const filteredCards=cards.filter(card=>!certQuery||`${card.cert_number||''} ${card.year||''} ${card.brand_set||''} ${card.player_character||''} ${card.card_description||card.variation||''} ${card.card_number||''}`.toLowerCase().includes(certQuery.toLowerCase()));const selected=subs.find(item=>item.id===selectedId)||null;const selectedCards=selected?cards.filter(card=>card.submission_id===selected.id):[];const selectedTotal=selected?selectedCards.length*Number(selected.service_price||0):0;\nfunction openSubmission(sub:Submission){setSelectedId(sub.id);setDetailDraft({tracking_in:sub.tracking_in||'',tracking_out:sub.tracking_out||'',notes:sub.notes||'',payment_status:sub.payment_status||'unverified',payment_reference:sub.payment_reference||''});const next:Record<string,CardDraft>={};cards.filter(card=>card.submission_id===sub.id).forEach(card=>{next[card.id]=cardToDraft(card)});setCardDrafts(next)}\nasync function createSubmission(){if(!tenantId)return;if(!form.name.trim()){toast.error('Customer name is required.');return}const count=selectedCardCount,tier=selectedTier,now=new Date(),due=new Date(now);due.setDate(due.getDate()+tier.days);const submissionNumber=`PCG-${now.getFullYear()}-${String(Date.now()).slice(-7)}`;setBusy(true);const{data,error}=await(supabase as any).from('card_grading_submissions').insert({tenant_id:tenantId,submission_number:submissionNumber,customer_name:form.name.trim(),customer_email:form.email.trim()||null,customer_phone:form.phone.trim()||null,service_tier:form.tier,service_price:tier.price,status:'received',payment_status:'unverified',delivery_method:form.delivery,notes:form.notes.trim()||null,received_at:now.toISOString(),due_at:due.toISOString()}).select('*').single();if(error||!data){toast.error(error?.message||'Unable to create submission');setBusy(false);return}const rows=Array.from({length:count},(_,index)=>({tenant_id:tenantId,submission_id:data.id,sequence_number:index+1,status:'received'}));const inserted=await(supabase as any).from('card_grading_cards').insert(rows);if(inserted.error){toast.error(inserted.error.message);setBusy(false);return}toast.success(`${submissionNumber} created with ${count} card${count===1?'':'s'}.`);setShowNew(false);setForm({name:'',email:'',phone:'',tier:'two_weeks',cardCount:'1',delivery:'walk_in',notes:''});await load();setBusy(false)}\nfunction transitionIssue(sub:Submission,nextStatus:string,ownCards:Card[]){if(nextStatus==='authentication'){if(!ownCards.length)return 'Add cards before authentication.';const missing=ownCards.filter(card=>!card.front_image_url&&!card.back_image_url&&!card.slab_image_url).length;return missing?(missing+' card'+(missing===1?' needs':'s need')+' a saved intake image before authentication.'):''}if(nextStatus==='encapsulation'){const missing=ownCards.filter(card=>card.grade==null).length;return missing?(missing+' card'+(missing===1?' needs':'s need')+' a saved grade before encapsulation.'):''}if(nextStatus==='qa'){const missingGrade=ownCards.filter(card=>card.grade==null).length,missingCert=ownCards.filter(card=>!String(card.cert_number||'').trim()).length;return missingGrade||missingCert?('Save '+(missingGrade?(missingGrade+' missing grade'+(missingGrade===1?'':'s')):'')+(missingGrade&&missingCert?' and ':'')+(missingCert?(missingCert+' missing cert number'+(missingCert===1?'':'s')):'')+' before QA.'):''}if(nextStatus==='ready'){const missing=ownCards.filter(card=>card.grade==null||!String(card.cert_number||'').trim()||(!card.slab_image_url&&!card.front_image_url&&!card.back_image_url)).length;return missing?(missing+' card'+(missing===1?' is':'s are')+' missing saved grade, cert, or customer-visible imagery.'):''}if(nextStatus==='shipped'&&!String(sub.tracking_out||'').trim())return 'Save outbound tracking before marking this order shipped.';return ''}async function advanceBatch(nextStatus:string){if(!tenantId||!selected)return;const issue=transitionIssue(selected,nextStatus,selectedCards);if(issue){toast.error(issue);return}setBusy(true);const{error}=await(supabase as any).rpc('advance_pcg_grading_submission',{p_tenant_id:tenantId,p_submission_id:selected.id,p_status:nextStatus});if(error)toast.error(error.message||'Unable to advance submission');else{toast.success(`${selected.submission_number} moved to ${pretty(nextStatus)}.`);await load()}setBusy(false)}\nasync function saveSubmissionDetails(){if(!tenantId||!selected)return;setBusy(true);const manual=detailDraft.payment_status==='manually_verified';const{error}=await(supabase as any).from('card_grading_submissions').update({tracking_in:detailDraft.tracking_in.trim()||null,tracking_out:detailDraft.tracking_out.trim()||null,notes:detailDraft.notes.trim()||null,payment_status:detailDraft.payment_status,payment_reference:detailDraft.payment_reference.trim()||null,paid_at:manual?(selected.paid_at||new Date().toISOString()):null,updated_at:new Date().toISOString()}).eq('tenant_id',tenantId).eq('id',selected.id);if(error)toast.error(error.message);else{toast.success('Submission details saved.');await load()}setBusy(false)}\nasync function saveCard(card:Card){if(!tenantId)return;const draft=cardDrafts[card.id];if(!draft)return;setBusy(true);const grade=draft.grade.trim()===''?null:Number(draft.grade);const declared=draft.declared_value.trim()===''?null:Number(draft.declared_value);if(grade!=null&&(Number.isNaN(grade)||grade<0||grade>10)){toast.error('Grade must be between 0 and 10.');setBusy(false);return}const{error}=await(supabase as any).from('card_grading_cards').update({category:draft.category.trim()||null,year:draft.year.trim()||null,brand_set:draft.brand_set.trim()||null,player_character:draft.player_character.trim()||null,card_number:draft.card_number.trim()||null,card_description:draft.card_description.trim()||null,autograph_present:draft.autograph_present===''?null:draft.autograph_present==='yes',variation:draft.card_description.trim()||null,declared_value:declared,grade,grade_label:draft.grade_label.trim()||null,cert_number:draft.cert_number.trim()||null,grader_notes:draft.grader_notes.trim()||null,updated_at:new Date().toISOString()}).eq('tenant_id',tenantId).eq('id',card.id);if(error)toast.error(error.message);else{toast.success(`Card #${card.sequence_number} saved.`);await load()}setBusy(false)}\nconst metric=(label:string,value:string|number,sub:string)=><div className=\"py-3 sm:border-l sm:border-white/[0.08] sm:px-5 first:sm:border-l-0 first:sm:pl-0\"><div className=\"text-[9px] font-black uppercase tracking-[.18em] text-[#d0ae61]\">{label}</div><div className=\"mt-1 text-3xl font-black tracking-[-.04em]\">{value}</div><div className=\"mt-1 text-[11px] text-white/36\">{sub}</div></div>;\nconst empty=(title:string,copy:string,action?:()=>void,actionLabel?:string)=><div className=\"border border-dashed border-white/[0.10] bg-black/30 p-9 text-center\"><FileCheck2 className=\"mx-auto h-6 w-6 text-[#d8bb78]\"/><div className=\"mt-4 text-lg font-black\">{title}</div><p className=\"mx-auto mt-2 max-w-md text-sm leading-6 text-white/38\">{copy}</p>{action&&<button onClick={action} className=\"mt-5 bg-[#d8bb78] px-5 py-2.5 text-sm font-black text-black\">{actionLabel}</button>}</div>;\nconst row=(sub:Submission)=>{const cardCount=cards.filter(card=>card.submission_id===sub.id).length;const payment=sub.payment_status==='manually_verified'?'Paid':sub.payment_status==='waived'?'Waived':'Unverified';return <button key={sub.id} onClick={()=>openSubmission(sub)} className=\"group grid w-full grid-cols-[minmax(0,1fr)_auto] items-center gap-4 border-b border-white/[0.07] px-1 py-4 text-left transition last:border-b-0 hover:bg-white/[0.025]\"><div className=\"min-w-0\"><div className=\"flex flex-wrap items-center gap-2\"><span className=\"text-xs font-black tracking-wide text-[#e4c47b]\">{sub.submission_number}</span><span className=\"text-[9px] font-black uppercase tracking-[.12em] text-white/32\">{pretty(sub.status)}</span></div><div className=\"mt-1.5 truncate text-base font-black\">{sub.customer_name||'Collector not named'}</div><div className=\"mt-1 flex flex-wrap gap-x-4 text-xs text-white/34\"><span>{cardCount} card{cardCount===1?'':'s'}</span><span>{tiers[sub.service_tier as keyof typeof tiers]?.label||pretty(sub.service_tier)}</span><span>{payment}</span></div></div><div className=\"flex items-center gap-2\"><span className={`border px-2.5 py-1 text-[10px] font-black ${slaMeta(sub).tone}`}>{slaMeta(sub).label}</span><ChevronRight className=\"h-4 w-4 text-white/18\"/></div></button>};\nconst renderList=(heading:string,eyebrow:string,source:Submission[])=><section><div className=\"mb-6 flex flex-col gap-4 border-b border-white/[0.08] pb-5 xl:flex-row xl:items-end xl:justify-between\"><div><div className=\"text-[10px] font-black uppercase tracking-[.20em] text-[#d0ae61]\">{eyebrow}</div><h1 className=\"mt-2 text-4xl font-black tracking-[-.045em] sm:text-5xl\">{heading}</h1><p className=\"mt-2 text-sm text-white/38\">Open a batch to grade cards, verify payment, update tracking or move it forward.</p></div><button onClick={()=>setShowNew(true)} className=\"inline-flex items-center justify-center gap-2 bg-[#d8bb78] px-5 py-3 text-sm font-black text-black\"><Plus className=\"h-4 w-4\"/>New submission</button></div><div className=\"mb-5 grid gap-2 sm:grid-cols-[1fr_220px]\"><div className=\"relative\"><Search className=\"absolute left-4 top-3.5 h-4 w-4 text-white/28\"/><input value={query} onChange={event=>setQuery(event.target.value)} placeholder=\"Search submission or collector\" className={`${inputClass} pl-11`}/></div><select value={statusFilter} onChange={event=>setStatusFilter(event.target.value)} className={inputClass}><option value=\"all\">Every grading stage</option>{statuses.map(status=><option key={status} value={status}>{pretty(status)}</option>)}</select></div>{source.length?<div className=\"border-y border-white/[0.08]\">{source.map(row)}</div>:empty('The floor is clear','Create a grading submission and it enters the PCG floor immediately.',()=>setShowNew(true),'Start intake')}</section>;\nconst brandName=activeTenant?.company_dba_name||activeTenant?.company_legal_name||activeTenant?.name||'Prestigious Card Grading';\nreturn <div data-pcg-mode-workspace-background={workspaceBackground||'solid'} className=\"relative min-h-screen overflow-x-hidden bg-[#050506] text-white\" style={{backgroundImage:workspaceBackground?`linear-gradient(108deg,rgba(4,4,5,.98) 0%,rgba(4,4,5,.91) 35%,rgba(4,4,5,.68) 70%,rgba(4,4,5,.88) 100%),url(\"${workspaceBackground}\")`:undefined,backgroundSize:'cover',backgroundPosition:mediaBranding.backgroundPosition||'center',backgroundRepeat:'no-repeat',backgroundAttachment:'fixed'}}><div className=\"pointer-events-none fixed inset-0 bg-[radial-gradient(circle_at_78%_15%,rgba(216,187,120,.10),transparent_28rem)]\"/>\n{!embedded?<header className=\"fixed inset-x-0 top-0 z-50 h-16 border-b border-white/[0.07] bg-[#070708]/90 backdrop-blur-xl\"><div className=\"flex h-full items-center gap-3 px-4 sm:px-6\"><div className=\"grid h-9 w-9 place-items-center border border-[#d8bb78]/20 bg-[#d8bb78]/[0.06]\"><img src={PCG_LOGO} alt=\"PCG\" className=\"h-full w-full object-contain p-1\"/></div><div className=\"min-w-0\"><div className=\"truncate text-sm font-black tracking-tight\">{brandName}</div><div className=\"hidden text-[9px] font-bold uppercase tracking-[.17em] text-white/30 sm:block\">Owner grading operations</div></div><div className=\"ml-auto flex items-center gap-3\"><span className=\"hidden text-xs font-semibold text-white/32 md:inline\">{openSubs.length} active batches</span><button onClick={()=>setShowNew(true)} className=\"inline-flex h-9 items-center gap-2 bg-[#d8bb78] px-3.5 text-xs font-black text-black\"><Plus className=\"h-4 w-4\"/>New intake</button></div></div></header>:null}\n<aside className=\"fixed bottom-0 left-0 top-16 z-40 hidden w-[230px] border-r border-white/[0.07] bg-black/58 px-4 py-5 backdrop-blur-xl lg:flex lg:flex-col\"><div className=\"px-2\"><div className=\"text-[9px] font-black uppercase tracking-[.20em] text-[#d0ae61]\">PCG Operations</div><div className=\"mt-2 text-sm leading-5 text-white/40\">Grading, vault, collectors and fulfillment.</div></div><nav className=\"mt-7 space-y-1\">{tabs.map(([id,label,Icon])=><button key={id} onClick={()=>setTab(id)} className={`flex h-11 w-full items-center gap-3 px-3 text-left text-sm font-bold transition ${tab===id?'bg-white/[0.07] text-white shadow-[inset_2px_0_0_#d8bb78]':'text-white/40 hover:bg-white/[0.035] hover:text-white/80'}`}><Icon className={`h-[17px] w-[17px] ${tab===id?'text-[#d8bb78]':'text-white/30'}`}/><span className=\"flex-1\">{label}</span>{id==='queue'&&openSubs.length?<span className=\"text-[10px] font-black text-[#d8bb78]\">{openSubs.length}</span>:null}</button>)}</nav><div className=\"mt-auto border-t border-white/[0.07] px-2 pt-4\"><div className=\"text-[9px] font-black uppercase tracking-[.17em] text-white/25\">Prestigious Card Grading</div><div className=\"mt-2 text-xs leading-5 text-white/36\">14170 US Highway 1<br/>Sebastian, FL 32958</div></div></aside>\n<main className={`relative z-10 min-h-screen px-4 pb-24 sm:px-6 lg:ml-[230px] lg:px-8 lg:pb-10 xl:px-10 ${embedded?'pt-4 sm:pt-6':'pt-20'}`}>{loading?<div className=\"grid min-h-[70vh] place-items-center\"><div className=\"text-center\"><img src={PCG_LOGO} alt=\"PCG\" className=\"mx-auto h-16 w-16 object-contain opacity-70\"/><div className=\"mt-4 text-[10px] font-black uppercase tracking-[.22em] text-[#d0ae61]\">Opening PCG operations…</div></div></div>:<>\n{tab==='today'?<><section className=\"border-b border-white/[0.08] pb-7 pt-3\"><div className=\"flex flex-col gap-7 xl:flex-row xl:items-end xl:justify-between\"><div className=\"max-w-3xl\"><div className=\"text-[10px] font-black uppercase tracking-[.22em] text-[#d0ae61]\">Anthony's owner workspace</div><h1 className=\"mt-3 text-[42px] font-black leading-[.94] tracking-[-.055em] sm:text-[62px]\">PCG Operations</h1><p className=\"mt-4 max-w-2xl text-sm leading-6 text-white/42\">Move grading work, ingest collections, certify finished cards and keep fulfillment honest from one operating surface.</p></div><div className=\"grid w-full max-w-xl grid-cols-2 gap-px border border-white/[0.08] bg-white/[0.08] sm:grid-cols-3\"><button onClick={()=>setShowNew(true)} className=\"bg-[#09090a]/94 p-4 text-left\"><Plus className=\"h-5 w-5 text-[#d8bb78]\"/><div className=\"mt-5 text-sm font-black\">New submission</div><div className=\"mt-1 text-[11px] text-white/30\">Receive grading work</div></button><button onClick={()=>setTab('vault')} className=\"bg-[#09090a]/94 p-4 text-left\"><UploadCloud className=\"h-5 w-5 text-[#d8bb78]\"/><div className=\"mt-5 text-sm font-black\">Card Vault</div><div className=\"mt-1 text-[11px] text-white/30\">Single + mass upload</div></button><button onClick={()=>setTab('queue')} className=\"col-span-2 bg-[#09090a]/94 p-4 text-left sm:col-span-1\"><Award className=\"h-5 w-5 text-[#d8bb78]\"/><div className=\"mt-5 text-sm font-black\">Grading Floor</div><div className=\"mt-1 text-[11px] text-white/30\">Work the live queue</div></button></div></div><div className=\"mt-8 grid sm:grid-cols-2 xl:grid-cols-4\">{metric('Batches on floor',openSubs.length,'Active submissions')}{metric('Cards in house',cards.filter(card=>!terminalStatuses.has(card.status)).length,'Individual cards')}{metric('SLA attention',overdue+dueSoon,overdue?`${overdue} overdue · ${dueSoon} due soon`:`${dueSoon} due within 48 hours`)}{metric('Recorded work',`$${serviceValue.toFixed(0)}`,stripeSyncConnected?'Stripe sync connected':'Stripe sync not connected')}</div></section><div className=\"mt-8 grid gap-8 xl:grid-cols-[minmax(0,1.2fr)_minmax(320px,.8fr)]\"><section><div className=\"mb-3 flex items-end justify-between\"><div><div className=\"text-[9px] font-black uppercase tracking-[.19em] text-[#d0ae61]\">Priority work</div><h2 className=\"mt-1 text-2xl font-black\">Next on the grading bench</h2></div><button onClick={()=>setTab('queue')} className=\"text-xs font-black text-[#d8bb78]\">Full floor →</button></div><div className=\"border-y border-white/[0.08]\">{prioritySubs.length?prioritySubs.map(row):empty('The bench is clear','No grading batches need attention right now.',()=>setShowNew(true),'Start intake')}</div></section><section className=\"border-l border-white/[0.08] xl:pl-7\"><div className=\"text-[9px] font-black uppercase tracking-[.19em] text-[#d0ae61]\">Stage pressure</div><h2 className=\"mt-1 text-2xl font-black\">Where the cards are</h2><div className=\"mt-5 divide-y divide-white/[0.07]\">{statuses.map((status,index)=><button key={status} onClick={()=>{setStatusFilter(status);setTab('queue')}} className=\"grid w-full grid-cols-[28px_1fr_auto] items-center gap-3 py-3 text-left\"><span className=\"text-[9px] font-black text-white/18\">{String(index+1).padStart(2,'0')}</span><span className=\"text-xs font-bold text-white/48\">{pretty(status)}</span><span className=\"text-base font-black\">{counts[status]||0}</span></button>)}</div></section></div></>:null}\n{tab==='vault'?<PCGCardVaultContent initialMode={initialVaultMode}/>:null}{tab==='queue'?renderList('Grading Floor','Live PCG pipeline',filteredSubs.filter(item=>!terminalStatuses.has(item.status))):null}{tab==='submissions'?renderList('Intake Ledger','Every submission',filteredSubs):null}{tab==='shipping'?renderList('Fulfillment','Ready · shipped · pickup',filteredSubs.filter(item=>['ready','shipped','picked_up'].includes(item.status)||Boolean(item.tracking_in)||Boolean(item.tracking_out))):null}\n{tab==='certs'?<section><div className=\"border-b border-white/[0.08] pb-5\"><div className=\"text-[10px] font-black uppercase tracking-[.20em] text-[#d0ae61]\">Authentication · certification</div><h1 className=\"mt-2 text-4xl font-black sm:text-5xl\">Cert Vault</h1></div><div className=\"relative mt-5 max-w-2xl\"><Search className=\"absolute left-4 top-3.5 h-4 w-4 text-white/28\"/><input value={certQuery} onChange={event=>setCertQuery(event.target.value)} placeholder=\"Search the PCG cert vault\" className={`${inputClass} pl-11`}/></div>{filteredCards.length?<div className=\"mt-6 grid grid-cols-2 gap-px overflow-hidden border border-white/[0.07] bg-white/[0.07] sm:grid-cols-3 xl:grid-cols-4\">{filteredCards.map(card=>{const image=card.slab_image_url||card.front_image_url||PCG_CARD_IMAGE;return <button key={card.id} onClick={()=>{const sub=subs.find(item=>item.id===card.submission_id);if(sub)openSubmission(sub)}} className=\"bg-[#09090a]/96 p-3 text-left\"><div className=\"relative aspect-[3/4] overflow-hidden bg-black\"><img src={image} alt=\"Graded card\" className=\"h-full w-full object-cover opacity-82\"/>{card.grade!=null?<div className=\"absolute right-2 top-2 bg-black/80 px-2 py-1 text-xs font-black text-[#e8cc8d]\">{card.grade}</div>:null}</div><div className=\"pt-3\"><div className=\"text-sm font-black leading-tight\">{[card.year,card.brand_set,card.player_character,card.card_description||card.variation,card.card_number?`#${card.card_number}`:null].filter(Boolean).join(' · ')||`Card #${card.sequence_number}`}</div><div className=\"mt-1 text-[10px] text-white/30\">{card.cert_number||'Cert pending'}</div></div></button>})}</div>:<div className=\"mt-6\">{empty('The vault is empty','Cert records appear here as grading records are completed.')}</div>}</section>:null}\n{tab==='collectors'?<section><div className=\"border-b border-white/[0.08] pb-5\"><div className=\"text-[10px] font-black uppercase tracking-[.20em] text-[#d0ae61]\">Collectors</div><h1 className=\"mt-2 text-4xl font-black sm:text-5xl\">Collector Book</h1></div>{subs.some(item=>item.customer_name)?<div className=\"mt-6 border-y border-white/[0.08]\">{Array.from(new Map(subs.filter(item=>item.customer_name).map(item=>[item.customer_name,item])).values()).map(sub=>{const related=subs.filter(item=>item.customer_name===sub.customer_name);const relatedCards=cards.filter(card=>related.some(item=>item.id===card.submission_id));return <button key={sub.customer_name!} onClick={()=>openSubmission(related[0])} className=\"grid w-full grid-cols-[1fr_auto_auto] items-center gap-4 border-b border-white/[0.07] px-1 py-4 text-left\"><div><div className=\"font-black\">{sub.customer_name}</div><div className=\"mt-1 text-xs text-white/32\">{sub.customer_email||sub.customer_phone||'Contact info not captured'}</div></div><div className=\"text-right\"><div className=\"text-lg font-black\">{related.length}</div><div className=\"text-[9px] text-white/25\">SUBMISSIONS</div></div><div className=\"text-right\"><div className=\"text-lg font-black text-[#d8bb78]\">{relatedCards.length}</div><div className=\"text-[9px] text-white/25\">CARDS</div></div></button>})}</div>:empty('No collectors yet','Collectors appear automatically when a grading submission is received.',()=>setShowNew(true),'Start first intake')}</section>:null}\n{tab==='inventory'?<section><div className=\"border-b border-white/[0.08] pb-5\"><div className=\"text-[10px] font-black uppercase tracking-[.20em] text-[#d0ae61]\">Retail floor</div><h1 className=\"mt-2 text-4xl font-black sm:text-5xl\">Card Shop</h1></div><div className=\"relative mt-6 min-h-[420px] overflow-hidden border border-white/[0.08] bg-[#09090a]\"><img src={PCG_STORE_IMAGE} alt=\"PCG card shop\" className=\"absolute inset-0 h-full w-full object-cover opacity-24\"/><div className=\"absolute inset-0 bg-[linear-gradient(90deg,#070708_0%,rgba(7,7,8,.95)_48%,rgba(7,7,8,.50)_100%)]\"/><div className=\"relative max-w-2xl p-7 sm:p-10\"><div className=\"text-[10px] font-black uppercase tracking-[.20em] text-[#d0ae61]\">Sebastian storefront</div><h2 className=\"mt-3 text-3xl font-black sm:text-5xl\">Sports. Pokémon. Graded cards.</h2><p className=\"mt-4 text-sm leading-6 text-white/42\">Marketplace inventory sync is not connected, so KnockLaunch will not invent stock or balances.</p><div className=\"mt-6 flex gap-2\"><a href=\"https://www.whatnot.com/user/theslabguys\" target=\"_blank\" rel=\"noreferrer\" className=\"inline-flex items-center gap-2 bg-white px-5 py-3 text-sm font-black text-black\">Whatnot <ExternalLink className=\"h-4 w-4\"/></a><a href=\"https://www.ebay.com/sch/i.html?_ssn=theslabguys\" target=\"_blank\" rel=\"noreferrer\" className=\"inline-flex items-center gap-2 border border-white/10 bg-black/45 px-5 py-3 text-sm font-black\">eBay <ExternalLink className=\"h-4 w-4\"/></a></div></div></div></section>:null}\n{tab==='settings'?<TenantSettingsPage/>:null}\n{tab==='money'?<section><div className=\"border-b border-white/[0.08] pb-5\"><div className=\"text-[10px] font-black uppercase tracking-[.20em] text-[#d0ae61]\">Payments</div><h1 className=\"mt-2 text-4xl font-black sm:text-5xl\">Stripe Desk</h1></div><div className=\"mt-6 grid gap-8 xl:grid-cols-[1.15fr_.85fr]\"><section><div className=\"flex items-center justify-between border-b border-white/[0.08] pb-4\"><div className=\"flex items-center gap-3\"><CreditCard className=\"h-5 w-5 text-[#635bff]\"/><div><div className=\"text-sm font-black\">Stripe hosted checkout</div><div className=\"text-xs text-white/30\">PCG grading payments</div></div></div><span className={stripeSyncConnected?'text-xs font-black text-emerald-300':'text-xs font-black text-amber-200'}>{stripeSyncConnected?'Data sync connected':'Data sync not connected'}</span></div><div className=\"mt-8 text-[10px] font-black uppercase tracking-[.18em] text-white/30\">Recorded grading service value</div><div className=\"mt-2 text-5xl font-black sm:text-6xl\">${serviceValue.toFixed(2)}</div><p className=\"mt-3 text-sm leading-6 text-white/38\">This is grading work recorded in KnockLaunch, not a claimed Stripe balance unless sync is authenticated.</p><button onClick={openStripe} className=\"mt-7 inline-flex items-center gap-2 bg-white px-5 py-3 text-sm font-black text-black\">Open PCG Stripe checkout <ExternalLink className=\"h-4 w-4\"/></button></section><section className=\"border-l border-white/[0.08] xl:pl-7\"><div className=\"text-[10px] font-black uppercase tracking-[.18em] text-[#d0ae61]\">Grading menu</div><div className=\"mt-5 divide-y divide-white/[0.07]\">{Object.entries(tiers).map(([id,tier])=><div key={id} className=\"flex items-center justify-between py-4\"><div><div className=\"font-black\">{tier.label}</div><div className=\"text-xs text-white/28\">Per card · no up-charges</div></div><div className=\"text-2xl font-black text-[#d8bb78]\">${tier.price}</div></div>)}</div></section></div></section>:null}</>}</main>\n<nav className=\"fixed inset-x-3 bottom-3 z-50 grid grid-cols-5 border border-white/[0.09] bg-[#09090a]/95 p-1.5 shadow-2xl backdrop-blur-xl lg:hidden\">{mobilePrimary.map(([id,label,Icon])=><button key={id} onClick={()=>{setTab(id);setShowMore(false)}} className={`flex flex-col items-center gap-1 px-1 py-2 text-[9px] font-black ${tab===id?'bg-white/[0.07] text-white':'text-white/38'}`}><Icon className={`h-[18px] w-[18px] ${tab===id?'text-[#d8bb78]':'text-white/28'}`}/><span>{label}</span></button>)}<button onClick={()=>setShowMore(true)} className=\"flex flex-col items-center gap-1 px-1 py-2 text-[9px] font-black text-white/38\"><Menu className=\"h-[18px] w-[18px] text-white/28\"/>More</button></nav>\n{showMore?<div className=\"fixed inset-0 z-[70] bg-black/74 lg:hidden\" onMouseDown={event=>{if(event.currentTarget===event.target)setShowMore(false)}}><div className=\"absolute inset-x-0 bottom-0 border-t border-white/[0.10] bg-[#0b0b0c] p-4\"><div className=\"mb-4 text-[9px] font-black uppercase tracking-[.18em] text-[#d0ae61]\">More PCG tools</div><div className=\"grid grid-cols-2 gap-px border border-white/[0.08] bg-white/[0.08]\">{tabs.filter(([id])=>!mobilePrimary.some(([primary])=>primary===id)).map(([id,label,Icon])=><button key={id} onClick={()=>{setTab(id);setShowMore(false)}} className=\"flex items-center gap-3 bg-[#09090a] px-4 py-3 text-sm font-bold\"><Icon className=\"h-4 w-4 text-[#d8bb78]\"/>{label}</button>)}</div><button onClick={()=>setShowMore(false)} className=\"mt-3 w-full border border-white/[0.08] py-3 text-sm font-bold text-white/45\">Close</button></div></div>:null}\n{showNew?<div className=\"fixed inset-0 z-[80] grid place-items-center overflow-y-auto bg-black/82 p-4 backdrop-blur-md\" onMouseDown={event=>{if(event.currentTarget===event.target)setShowNew(false)}}><div className=\"w-full max-w-2xl border border-white/[0.10] bg-[#09090a]\"><div className=\"flex items-center justify-between border-b border-white/[0.08] p-5\"><div><div className=\"text-[9px] font-black uppercase tracking-[.18em] text-[#d0ae61]\">Grading intake</div><h2 className=\"mt-1 text-2xl font-black\">Receive cards into PCG</h2></div><button onClick={()=>setShowNew(false)} className=\"border border-white/10 p-2 text-white/35\"><X className=\"h-5 w-5\"/></button></div><div className=\"p-5\"><div className=\"grid gap-3 sm:grid-cols-2\"><input value={form.name} onChange={event=>setForm({...form,name:event.target.value})} placeholder=\"Collector name\" className={inputClass}/><input value={form.email} onChange={event=>setForm({...form,email:event.target.value})} placeholder=\"Email\" className={inputClass}/><input value={form.phone} onChange={event=>setForm({...form,phone:event.target.value})} placeholder=\"Phone\" className={inputClass}/><input value={form.cardCount} onChange={event=>setForm({...form,cardCount:event.target.value})} type=\"number\" min=\"1\" max=\"100\" placeholder=\"Card count\" className={inputClass}/><select value={form.tier} onChange={event=>setForm({...form,tier:event.target.value})} className={inputClass}>{Object.entries(tiers).map(([id,tier])=><option key={id} value={id}>{tier.label} · ${tier.price}/card</option>)}</select><select value={form.delivery} onChange={event=>setForm({...form,delivery:event.target.value})} className={inputClass}><option value=\"walk_in\">Walk-in</option><option value=\"mail_in\">Mail-in</option><option value=\"ship_back\">Ship back</option><option value=\"pickup\">Pickup</option></select><textarea value={form.notes} onChange={event=>setForm({...form,notes:event.target.value})} placeholder=\"Submission notes\" className={`${inputClass} min-h-24 sm:col-span-2`}/></div><div className=\"mt-4 flex items-end justify-between border-t border-white/[0.08] pt-4\"><div><div className=\"text-[9px] font-black uppercase tracking-[.15em] text-[#d0ae61]\">Expected grading total</div><div className=\"mt-1 text-3xl font-black\">${expectedTotal.toFixed(2)}</div></div><div className=\"text-right text-xs text-white/30\">{selectedCardCount} card{selectedCardCount===1?'':'s'} × ${selectedTier.price}</div></div><div className=\"mt-5 grid gap-2 sm:grid-cols-2\"><button onClick={openStripe} className=\"inline-flex items-center justify-center gap-2 border border-white/10 px-4 py-3 font-black\"><CreditCard className=\"h-4 w-4\"/>Collect in Stripe</button><button disabled={busy} onClick={()=>void createSubmission()} className=\"bg-[#d8bb78] px-4 py-3 font-black text-black disabled:opacity-50\">{busy?'Creating…':'Create submission'}</button></div><p className=\"mt-3 text-center text-xs text-white/28\">Creating the submission never marks it paid.</p></div></div></div>:null}\n{selected?<div className=\"fixed inset-0 z-[80] bg-black/72\" onMouseDown={event=>{if(event.currentTarget===event.target)setSelectedId(null)}}><aside className=\"absolute inset-y-0 right-0 w-full max-w-3xl overflow-y-auto border-l border-white/10 bg-[#09090a] p-4 pb-24 sm:p-6\"><div className=\"flex items-start justify-between gap-4 border-b border-white/[0.08] pb-4\"><div><div className=\"text-[9px] font-black uppercase tracking-[.17em] text-[#d0ae61]\">Submission workbench</div><h2 className=\"mt-1 text-2xl font-black\">{selected.submission_number}</h2><div className=\"mt-1 text-sm text-white/34\">{selected.customer_name||'Collector not named'} · {selectedCards.length} card{selectedCards.length===1?'':'s'} · ${selectedTotal.toFixed(2)}</div></div><button onClick={()=>setSelectedId(null)} className=\"border border-white/10 p-2 text-white/35\"><X className=\"h-5 w-5\"/></button></div><section className={`${panelClass} mt-4 p-4`}><div className=\"text-[9px] font-black uppercase tracking-[.16em] text-[#d0ae61]\">Grading stage</div><div className=\"mt-4 flex flex-wrap gap-2\">{statuses.map(status=><div key={status} className={`border px-2.5 py-1 text-[9px] font-black ${selected.status===status?'border-[#d8bb78]/45 text-[#e8cc8d]':'border-white/10 text-white/28'}`}>{pretty(status)}</div>)}</div><div className=\"mt-4\">{(()=>{const index=statuses.indexOf(selected.status as any);const next=index>=0&&index<statuses.length-1?statuses[index+1]:null;const issue=next?transitionIssue(selected,next,selectedCards):'';return <>{terminalStatuses.has(selected.status)?<div className=\"mb-3 text-xs font-black text-emerald-300\"><Check className=\"mr-1 inline h-3.5 w-3.5\"/>Lifecycle complete</div>:next?<div className={'mb-3 text-xs leading-5 '+(issue?'text-amber-200':'text-emerald-300')}>{issue||<>Ready to advance to {pretty(next)}.</>}</div>:null}{next&&!terminalStatuses.has(selected.status)&&selected.status!=='ready'?<button disabled={busy||Boolean(issue)} onClick={()=>void advanceBatch(next)} className=\"inline-flex items-center gap-2 bg-[#d8bb78] px-4 py-2.5 text-sm font-black text-black\">Advance to {pretty(next)} <ChevronRight className=\"h-4 w-4\"/></button>:null}{selected.status==='ready'?<><button disabled={busy||Boolean(transitionIssue(selected,'shipped',selectedCards))} onClick={()=>void advanceBatch('shipped')} className=\"bg-[#d8bb78] px-4 py-2.5 text-sm font-black text-black disabled:cursor-not-allowed disabled:opacity-35\">Mark shipped</button><button disabled={busy} onClick={()=>void advanceBatch('picked_up')} className=\"ml-2 border border-white/10 px-4 py-2.5 text-sm font-black\">Mark picked up</button></>:null}</>})()}</div></section><section className={`${panelClass} mt-4 p-4`}><div className=\"flex items-center justify-between\"><div className=\"text-[9px] font-black uppercase tracking-[.16em] text-[#d0ae61]\">Collector & payment</div><BadgeDollarSign className=\"h-5 w-5 text-[#d8bb78]\"/></div><div className=\"mt-4 grid gap-3 sm:grid-cols-2\"><select value={detailDraft.payment_status} onChange={event=>setDetailDraft({...detailDraft,payment_status:event.target.value})} className={inputClass}><option value=\"unverified\">Payment not verified</option><option value=\"manually_verified\">Manually verified paid</option><option value=\"waived\">Waived</option><option value=\"refunded\">Refunded</option></select><input value={detailDraft.payment_reference} onChange={event=>setDetailDraft({...detailDraft,payment_reference:event.target.value})} placeholder=\"Reference / Stripe receipt ID\" className={inputClass}/></div><button onClick={openStripe} className=\"mt-3 inline-flex items-center gap-2 text-sm font-black text-[#d8bb78]\"><ExternalLink className=\"h-4 w-4\"/>Open PCG Stripe checkout</button></section><section className={`${panelClass} mt-4 p-4`}><div className=\"text-[9px] font-black uppercase tracking-[.16em] text-[#d0ae61]\">Shipping & notes</div><div className=\"mt-4 grid gap-3 sm:grid-cols-2\"><input value={detailDraft.tracking_in} onChange={event=>setDetailDraft({...detailDraft,tracking_in:event.target.value})} placeholder=\"Inbound tracking\" className={inputClass}/><input value={detailDraft.tracking_out} onChange={event=>setDetailDraft({...detailDraft,tracking_out:event.target.value})} placeholder=\"Outbound tracking\" className={inputClass}/><textarea value={detailDraft.notes} onChange={event=>setDetailDraft({...detailDraft,notes:event.target.value})} placeholder=\"Submission notes\" className={`${inputClass} min-h-24 sm:col-span-2`}/></div><button disabled={busy} onClick={()=>void saveSubmissionDetails()} className=\"mt-3 bg-white px-4 py-2.5 text-sm font-black text-black\">Save submission details</button></section><section className=\"mt-6\"><div className=\"border-b border-white/[0.08] pb-3\"><div className=\"text-[9px] font-black uppercase tracking-[.16em] text-[#d0ae61]\">Cards in batch</div><h3 className=\"mt-1 text-xl font-black\">Card workbench</h3></div>{selectedCards.map(card=>{const draft=cardDrafts[card.id]||cardToDraft(card);return <div key={card.id} className=\"border-b border-white/[0.07] py-5\"><div className=\"flex items-center justify-between\"><div><div className=\"text-sm font-black\">Card #{card.sequence_number}</div><div className=\"mt-1 text-xs text-white/28\">{draft.cert_number||'Cert not assigned'} · {pretty(card.status)}</div></div>{draft.cert_number&&draft.grade?<span className=\"inline-flex items-center gap-1 text-[10px] font-black text-emerald-300\"><Check className=\"h-3 w-3\"/>Graded</span>:null}</div><div className=\"mt-4 grid gap-2 sm:grid-cols-2\"><input value={draft.category} onChange={event=>setCardDrafts({...cardDrafts,[card.id]:{...draft,category:event.target.value}})} placeholder=\"Category\" className={inputClass}/><input value={draft.year} onChange={event=>setCardDrafts({...cardDrafts,[card.id]:{...draft,year:event.target.value}})} placeholder=\"Year\" className={inputClass}/><input value={draft.brand_set} onChange={event=>setCardDrafts({...cardDrafts,[card.id]:{...draft,brand_set:event.target.value}})} placeholder=\"Set Name\" className={inputClass}/><input value={draft.player_character} onChange={event=>setCardDrafts({...cardDrafts,[card.id]:{...draft,player_character:event.target.value}})} placeholder=\"Player Name(s)\" className={inputClass}/><input value={draft.card_number} onChange={event=>setCardDrafts({...cardDrafts,[card.id]:{...draft,card_number:event.target.value}})} placeholder=\"Card #\" className={inputClass}/><input value={draft.card_description} onChange={event=>setCardDrafts({...cardDrafts,[card.id]:{...draft,card_description:event.target.value}})} placeholder=\"Card Description\" className={inputClass}/><select value={draft.autograph_present} onChange={event=>setCardDrafts({...cardDrafts,[card.id]:{...draft,autograph_present:event.target.value as CardDraft['autograph_present']}})} className={inputClass}><option value=\"\">Auto Y/N</option><option value=\"yes\">Auto Yes</option><option value=\"no\">Auto No</option></select><input value={draft.declared_value} onChange={event=>setCardDrafts({...cardDrafts,[card.id]:{...draft,declared_value:event.target.value}})} type=\"number\" placeholder=\"Declared Value\" className={inputClass}/><input value={draft.cert_number} onChange={event=>setCardDrafts({...cardDrafts,[card.id]:{...draft,cert_number:event.target.value}})} placeholder=\"PCG#/CERT#\" className={inputClass}/><input value={draft.grade} onChange={event=>setCardDrafts({...cardDrafts,[card.id]:{...draft,grade:event.target.value}})} type=\"number\" min=\"0\" max=\"10\" step=\"0.5\" placeholder=\"Grade 0–10\" className={inputClass}/><input value={draft.grade_label} onChange={event=>setCardDrafts({...cardDrafts,[card.id]:{...draft,grade_label:event.target.value}})} placeholder=\"Grade label\" className={inputClass}/><textarea value={draft.grader_notes} onChange={event=>setCardDrafts({...cardDrafts,[card.id]:{...draft,grader_notes:event.target.value}})} placeholder=\"Grader notes\" className={`${inputClass} min-h-20 sm:col-span-2`}/></div><button disabled={busy} onClick={()=>void saveCard(card)} className=\"mt-3 bg-[#d8bb78] px-4 py-2.5 text-sm font-black text-black\">Save card</button></div>})}</section></aside></div>:null}</div>}\n","expectedSha":"3a2fa991ea7a0c3bd6f720cc62091b55bb0b00e3"},{"path":"src/pages/card-grading/PCGWorkspace.tsx","content":"import React,{useEffect,useRef,useState} from 'react';\nimport {Archive,ArrowUpRight,CheckCircle2,Database,FileSpreadsheet,ImagePlus,Layers3,Loader2,PackageCheck,PauseCircle,Radar,RefreshCw,ScanLine,ShieldCheck,UploadCloud,XCircle} from 'lucide-react';\nimport {supabase} from '@/integrations/supabase/client';\nimport {useMultiTenant} from '@/contexts/MultiTenantContext';\nimport {useToast} from '@/hooks/use-toast';\nimport {CRMShell} from '@/components/crm/CRMShell';\nimport {cn} from '@/lib/utils';\nimport PCGGrowthLab,{PCGGrowthPulse} from '@/pages/card-grading/PCGGrowthLab';\nconst DRIVE_MEDIA_FN=`${import.meta.env.VITE_SUPABASE_URL}/functions/v1/pcg-google-drive-media`;const CONCURRENCY=4;type DriveMedia={url:string;fileId:string};\ntype CsvRow=Record<string,string>;type BatchItem={key:string;front?:File;back?:File;row?:CsvRow;status:'queued'|'uploading'|'done'|'failed';error?:string};type CardForm={title:string;player:string;year:string;set:string;number:string;category:string;grader:string;grade:string;cert:string;condition:string;qty:string;cost:string;value:string;tags:string;notes:string};type StoredCard={id:string;player_character?:string|null;brand_set?:string|null;year?:string|null;card_number?:string|null;front_image_url?:string|null;grade?:number|null;cert_number?:string|null;metadata?:Record<string,unknown>|null};type SubmissionOption={id:string;submission_number:string;customer_name:string|null;status:string};type DriveState='checking'|'ready'|'missing'|'reconnect';type ExistingBatchCard={id:string;sequence_number:number;import_key:string|null;front_image_url:string|null;back_image_url:string|null};\nconst EMPTY_FORM:CardForm={title:'',player:'',year:'',set:'',number:'',category:'',grader:'',grade:'',cert:'',condition:'',qty:'1',cost:'',value:'',tags:'',notes:''};\nconst fileStem=(name:string)=>name.replace(/\\.[^.]+$/,'').replace(/[-_ ](?:front|back|obverse|reverse)$/i,'');const isBack=(name:string)=>/[-_ ](?:back|reverse)\\.[^.]+$/i.test(name);const rowValue=(row:CsvRow|undefined,...keys:string[])=>keys.map(key=>row?.[key]).find(Boolean)||'';const money=(value:string)=>{const parsed=Number((value||'').replace(/[$,]/g,''));return Number.isFinite(parsed)?parsed:null};\nfunction parseCsv(text:string){const lines=text.replace(/\\r/g,'').split('\\n').filter(Boolean);const headers=(lines.shift()||'').split(',').map(item=>item.trim().toLowerCase().replace(/[^a-z0-9]+/g,'_'));return lines.map(line=>Object.fromEntries(line.split(',').map((item,index)=>[headers[index],item.trim()]))) as CsvRow[]}\nfunction pairFiles(files:File[],rows:CsvRow[]){const map=new Map<string,BatchItem>();for(const file of files.filter(item=>item.type.startsWith('image/'))){const key=fileStem(file.name);const item=map.get(key)||{key,status:'queued' as const};if(isBack(file.name))item.back=file;else if(!item.front)item.front=file;else map.set(`${key}-${map.size+1}`,{key:`${key}-${map.size+1}`,front:file,status:'queued'});map.set(key,item)}for(const item of map.values())item.row=rows.find(row=>fileStem(rowValue(row,'filename','file','front','image')).toLowerCase()===item.key.toLowerCase());return[...map.values()]}\nfunction ModeButton({active,children,onClick}:{active:boolean;children:React.ReactNode;onClick:()=>void}){return <button onClick={onClick} className={cn('rounded-full px-4 py-2 text-xs font-bold transition sm:text-sm',active?'bg-[#d8bb78] text-[#0b0b0c]':'text-white/48 hover:bg-white/[0.05] hover:text-white')}>{children}</button>}\nfunction Stat({label,value,detail,icon:Icon}:{label:string;value:string;detail:string;icon:React.ComponentType<{className?:string}>}){return <div className=\"min-w-0 py-3 sm:border-l sm:border-white/[0.08] sm:px-5 first:sm:border-l-0 first:sm:pl-0\"><div className=\"flex items-center gap-2 text-[10px] font-bold uppercase tracking-[.16em] text-white/32\"><Icon className=\"h-3.5 w-3.5 text-[#d8bb78]\"/>{label}</div><div className=\"mt-2 text-2xl font-black tracking-tight text-white\">{value}</div><div className=\"mt-1 truncate text-xs text-white/35\">{detail}</div></div>}\nfunction Field({label,value,onChange,placeholder}:{label:string;value:string;onChange:(value:string)=>void;placeholder?:string}){return <label className=\"block\"><span className=\"text-[10px] font-bold uppercase tracking-[.13em] text-white/34\">{label}</span><input value={value} onChange={event=>onChange(event.target.value)} placeholder={placeholder} className=\"mt-2 h-11 w-full border-b border-white/[0.12] bg-transparent text-sm text-white outline-none transition placeholder:text-white/18 focus:border-[#d8bb78]/65\"/></label>}\nfunction ImageTile({label,file,onFile}:{label:string;file:File|null;onFile:(file:File|null)=>void}){return <label className=\"group flex min-h-36 cursor-pointer flex-col justify-between border border-white/[0.09] bg-black/28 p-4 transition hover:border-[#d8bb78]/30 hover:bg-[#d8bb78]/[0.035]\"><input type=\"file\" accept=\"image/*\" className=\"hidden\" onChange={event=>onFile(event.target.files?.[0]||null)}/><div className=\"flex items-center justify-between\"><span className=\"text-[10px] font-black uppercase tracking-[.16em] text-white/35\">{label}</span>{file?<CheckCircle2 className=\"h-5 w-5 text-emerald-400\"/>:<ImagePlus className=\"h-5 w-5 text-[#d8bb78]\"/>}</div><div><div className=\"truncate text-sm font-bold text-white/82\">{file?.name||`Choose ${label.toLowerCase()} image`}</div><div className=\"mt-1 text-xs text-white/28\">Private PCG card photography.</div></div></label>}\nfunction DemoCardFace({card}:{card:StoredCard}){const subject=String(card.player_character||card.brand_set||'Trading Card').replace(/^DEMO\\s*[—-]\\s*/i,'');const detail=[card.year,card.brand_set,card.card_number&&`#${card.card_number}`].filter(Boolean).join(' · ');return <div className=\"absolute inset-1.5 flex flex-col overflow-hidden rounded-[14px] border border-[#d8bb78]/45 bg-[radial-gradient(circle_at_72%_18%,rgba(216,187,120,.26),transparent_38%),linear-gradient(145deg,rgba(30,27,20,.98),rgba(7,7,8,.98)_58%,rgba(27,23,15,.98))] p-2.5 shadow-[inset_0_0_0_1px_rgba(255,255,255,.06),0_14px_32px_rgba(0,0,0,.26)]\"><div className=\"flex items-center justify-between gap-1\"><div className=\"flex items-center gap-1.5 text-[8px] font-black uppercase tracking-[.14em] text-[#ecd797]\"><ScanLine className=\"h-3 w-3\"/>PCG Demo</div><div className=\"rounded-full border border-white/10 bg-black/35 px-1.5 py-0.5 text-[7px] font-black uppercase tracking-[.08em] text-white/46\">Trading card</div></div><div className=\"my-auto grid place-items-center\"><div className=\"grid h-14 w-14 place-items-center rounded-[16px] border border-[#d8bb78]/25 bg-[#d8bb78]/[0.08] shadow-[0_0_36px_rgba(216,187,120,.10)]\"><Archive className=\"h-6 w-6 text-[#d8bb78]\"/></div></div><div><div className=\"line-clamp-2 text-sm font-black leading-tight text-white\">{subject}</div><div className=\"mt-1.5 line-clamp-2 text-[9px] font-bold uppercase tracking-[.06em] text-white/42\">{detail||card.cert_number||'PCG sample record'}</div></div></div>}\nexport function PCGCardVaultContent({initialMode='overview'}:{initialMode?:'overview'|'single'|'batch'|'growth'}={}){const{activeTenant}=useMultiTenant();const{toast}=useToast();const tenantId=activeTenant?.id||'';const[mode,setMode]=useState<'overview'|'single'|'batch'|'growth'>(initialMode);useEffect(()=>{setMode(initialMode)},[initialMode]);const[form,setForm]=useState<CardForm>(EMPTY_FORM);const[front,setFront]=useState<File|null>(null);const[reverse,setReverse]=useState<File|null>(null);const[saving,setSaving]=useState(false);const[rows,setRows]=useState<CsvRow[]>([]);const[items,setItems]=useState<BatchItem[]>([]);const[session,setSession]=useState('');const[running,setRunning]=useState(false);const[recent,setRecent]=useState<StoredCard[]>([]);const[total,setTotal]=useState(0);const[submissionOptions,setSubmissionOptions]=useState<SubmissionOption[]>([]);const[selectedSubmissionId,setSelectedSubmissionId]=useState('');const[driveState,setDriveState]=useState<DriveState>('checking');const stop=useRef(false);const done=items.filter(item=>item.status==='done').length;const failed=items.filter(item=>item.status==='failed').length;const remaining=items.filter(item=>item.status==='queued'||item.status==='failed');const progress=items.length?Math.round(((done+failed)/items.length)*100):0;const selectedSubmission=submissionOptions.find(item=>item.id===selectedSubmissionId)||null;const driveReady=driveState==='ready';\nasync function load(){if(!tenantId)return;setDriveState('checking');const[cardsResult,submissionResult,googleResult]=await Promise.all([(supabase as any).from('card_grading_cards').select('id,player_character,brand_set,year,card_number,front_image_url,grade,cert_number,metadata',{count:'exact'}).eq('tenant_id',tenantId).order('created_at',{ascending:false}).limit(12),(supabase as any).from('card_grading_submissions').select('id,submission_number,customer_name,status').eq('tenant_id',tenantId).order('created_at',{ascending:false}).limit(50),(supabase as any).from('tenant_provider_credentials').select('credential_status,metadata').eq('tenant_id',tenantId).eq('provider','google_workspace').maybeSingle()]);setRecent(cardsResult.data||[]);setTotal(Number(cardsResult.count||0));const eligible=((submissionResult.data||[]) as SubmissionOption[]).filter(item=>['received','intake_imaging','authentication','grading','encapsulation','qa'].includes(String(item.status||'')));setSubmissionOptions(eligible);setSelectedSubmissionId(current=>eligible.some(item=>item.id===current)?current:(eligible[0]?.id||''));const google=googleResult.data as any;const scopes=Array.isArray(google?.metadata?.granted_scopes)?google.metadata.granted_scopes.map((value:unknown)=>String(value)):[];setDriveState(google?.credential_status==='active'?(scopes.includes('https://www.googleapis.com/auth/drive.file')?'ready':'reconnect'):'missing')}useEffect(()=>{void load()},[tenantId]);\nasync function createSubmission(label:string){const{data,error}=await(supabase as any).from('card_grading_submissions').insert({tenant_id:tenantId,submission_number:`VAULT-${Date.now()}-${crypto.randomUUID().slice(0,6)}`,customer_name:'PCG Card Vault',service_tier:'inventory',service_price:0,status:'received',notes:label,payment_status:'unverified'}).select('id').single();if(error)throw error;return data.id}\nasync function upload(file:File,sessionKey:string,key:string,side:string,importKey:string):Promise<DriveMedia>{const{data}=await supabase.auth.getSession();if(!data.session?.access_token)throw new Error('Please sign in again.');const params=new URLSearchParams({tenant_id:tenantId,session_key:sessionKey,import_key:importKey,key,side,name:file.name,content_type:file.type||'application/octet-stream'});const response=await fetch(DRIVE_MEDIA_FN+'/upload?'+params.toString(),{method:'POST',headers:{Authorization:'Bearer '+data.session.access_token,'Content-Type':file.type||'application/octet-stream'},body:file});const payload=await response.json().catch(()=>null);if(!response.ok||!payload?.ok)throw new Error(payload?.error||'Google Drive upload failed');return{url:String(payload.url||''),fileId:String(payload.file_id||'')}}\nasync function storeCard(submissionId:string,importKey:string,frontMedia:DriveMedia|null,backMedia:DriveMedia|null,row?:CsvRow,values:Partial<CardForm>={},target?:{id?:string;sequenceNumber?:number}){const metadata={title:values.title||rowValue(row,'title','name'),grading_company:values.grader||rowValue(row,'grading_company','grader'),condition:values.condition||rowValue(row,'condition'),quantity:Number(values.qty||rowValue(row,'quantity')||1)||1,acquisition_cost:money(values.cost||rowValue(row,'acquisition_cost','cost')),estimated_value:money(values.value||rowValue(row,'estimated_value','value')),tags:String(values.tags||rowValue(row,'tags')).split(/[;,]/).map(item=>item.trim()).filter(Boolean),notes:values.notes||rowValue(row,'notes'),...(frontMedia?.fileId||backMedia?.fileId?{image_storage:'google_workspace_drive',drive_media:{provider:'google_workspace',front_file_id:frontMedia?.fileId||null,back_file_id:backMedia?.fileId||null}}:{})};const payload={tenant_id:tenantId,submission_id:submissionId,sequence_number:target?.sequenceNumber||1,category:values.category||rowValue(row,'category','sport'),year:values.year||rowValue(row,'year'),brand_set:values.set||rowValue(row,'brand_set','set','brand'),player_character:values.player||rowValue(row,'player','subject'),card_number:values.number||rowValue(row,'card_number','card_no'),declared_value:money(values.value||rowValue(row,'estimated_value','value')),grade:money(values.grade||rowValue(row,'grade')),grade_label:values.condition||rowValue(row,'condition'),cert_number:values.cert||rowValue(row,'cert_number','cert','serial'),front_image_url:frontMedia?.url||null,back_image_url:backMedia?.url||null,grader_notes:values.notes||rowValue(row,'notes')||null,status:'received',import_key:importKey,metadata};if(target?.id){const{error}=await(supabase as any).from('card_grading_cards').update(payload).eq('tenant_id',tenantId).eq('id',target.id);if(error)throw error;return}const{error}=await(supabase as any).from('card_grading_cards').upsert(payload,{onConflict:'tenant_id,import_key',ignoreDuplicates:true});if(error)throw error}\nasync function saveSingle(){if(!front&&!reverse)return toast({title:'Add at least one card image'});if(!driveReady)return toast({title:'Google Workspace Drive required',description:driveState==='reconnect'?'Reconnect Google Workspace so PCG has Drive file access.':'Connect Google Workspace before storing new PCG card images.',variant:'destructive'});setSaving(true);try{const sessionKey='single-'+crypto.randomUUID();const submissionId=await createSubmission('Single Card Vault upload');const frontMedia=front?await upload(front,sessionKey,'card','front',sessionKey):null;const backMedia=reverse?await upload(reverse,sessionKey,'card','back',sessionKey):null;await storeCard(submissionId,sessionKey,frontMedia,backMedia,undefined,form);setForm(EMPTY_FORM);setFront(null);setReverse(null);toast({title:'Card stored in PCG',description:'Master imagery is stored in the connected PCG Google Drive.'});await load()}catch(error){toast({title:'Could not save card',description:error instanceof Error?error.message:String(error),variant:'destructive'})}finally{setSaving(false)}}\nasync function runBatch(batch:BatchItem[]){if(!session||!batch.length)return;if(!selectedSubmissionId)return toast({title:'Select a grading order first',description:'Mass Intake attaches images to an existing collector order.',variant:'destructive'});if(!driveReady)return toast({title:'Google Workspace Drive required',description:driveState==='reconnect'?'Reconnect Google Workspace so PCG has Drive file access.':'Connect Google Workspace before starting image intake.',variant:'destructive'});const selected=submissionOptions.find(item=>item.id===selectedSubmissionId);if(!selected)return toast({title:'That grading order is no longer available',description:'Choose another open PCG order.',variant:'destructive'});setRunning(true);stop.current=false;let failedCount=0;try{const existingResult=await(supabase as any).from('card_grading_cards').select('id,sequence_number,import_key,front_image_url,back_image_url').eq('tenant_id',tenantId).eq('submission_id',selectedSubmissionId).order('sequence_number',{ascending:true});if(existingResult.error)throw existingResult.error;const existingCards=(existingResult.data||[]) as ExistingBatchCard[];const byImport=new Map(existingCards.filter(card=>card.import_key).map(card=>[String(card.import_key),card]));const blankSlots=existingCards.filter(card=>!card.import_key&&!card.front_image_url&&!card.back_image_url).sort((a,b)=>a.sequence_number-b.sequence_number);let nextSequence=Math.max(0,...existingCards.map(card=>Number(card.sequence_number)||0))+1;const plans=batch.map(item=>{const importKey=('pcg:'+selectedSubmissionId+':'+item.key).toLowerCase().replace(/[^a-z0-9:._-]+/g,'-');const existing=byImport.get(importKey);if(existing)return{item,importKey,existing:true,targetId:existing.id,sequenceNumber:existing.sequence_number};const slot=blankSlots.shift();return{item,importKey,existing:false,targetId:slot?.id,sequenceNumber:slot?.sequence_number||nextSequence++}});let cursor=0;const worker=async()=>{while(!stop.current){const index=cursor++;if(index>=plans.length)return;const plan=plans[index];const item=plan.item;try{setItems(current=>current.map(row=>row.key===item.key?{...row,status:'uploading',error:undefined}:row));if(!plan.existing){const frontMedia=item.front?await upload(item.front,session,item.key,'front',plan.importKey):null;const backMedia=item.back?await upload(item.back,session,item.key,'back',plan.importKey):null;await storeCard(selectedSubmissionId,plan.importKey,frontMedia,backMedia,item.row,undefined,{id:plan.targetId,sequenceNumber:plan.sequenceNumber})}setItems(current=>current.map(row=>row.key===item.key?{...row,status:'done'}:row))}catch(error){failedCount+=1;setItems(current=>current.map(row=>row.key===item.key?{...row,status:'failed',error:error instanceof Error?error.message:String(error)}:row))}}};await Promise.all(Array.from({length:Math.min(CONCURRENCY,plans.length)},worker));if(!stop.current&&failedCount===0&&selected.status==='received'){const advanced=await(supabase as any).rpc('advance_pcg_grading_submission',{p_tenant_id:tenantId,p_submission_id:selectedSubmissionId,p_status:'intake_imaging'});if(advanced.error)throw advanced.error}toast({title:stop.current?'Batch paused':failedCount?'Batch needs attention':'Order intake complete',description:failedCount?failedCount+' card'+(failedCount===1?'':'s')+' can be retried safely.':selected.submission_number+' now owns these canonical card records and Drive images.'});await load()}catch(error){toast({title:'Mass intake could not finish',description:error instanceof Error?error.message:String(error),variant:'destructive'})}finally{setRunning(false)}}const update=(key:keyof CardForm,value:string)=>setForm(current=>({...current,[key]:value}));\nreturn <div className=\"pcg-card-vault w-full text-white\"><style>{`.pcg-card-vault .text-white\\\\/18,.pcg-card-vault .text-white\\\\/24,.pcg-card-vault .text-white\\\\/28,.pcg-card-vault .text-white\\\\/30,.pcg-card-vault .text-white\\\\/32,.pcg-card-vault .text-white\\\\/34,.pcg-card-vault .text-white\\\\/35,.pcg-card-vault .text-white\\\\/36,.pcg-card-vault .text-white\\\\/38,.pcg-card-vault .text-white\\\\/42,.pcg-card-vault .text-white\\\\/44,.pcg-card-vault .text-white\\\\/48{color:rgba(255,255,255,.72)!important}`}</style><section className=\"border-b border-white/[0.08] pb-6\"><div className=\"flex flex-col gap-5 xl:flex-row xl:items-end xl:justify-between\"><div><div className=\"flex items-center gap-2 text-[10px] font-black uppercase tracking-[.19em] text-[#d8bb78]\"><ScanLine className=\"h-4 w-4\"/>PCG Card Vault</div><h1 className=\"mt-3 text-[34px] font-black leading-none tracking-[-0.045em] sm:text-[46px]\">Card Vault</h1><p className=\"mt-3 max-w-2xl text-sm leading-6 text-white/44\">Capture one card or move an entire collection into PCG. Master imagery stays in the connected PCG Google Drive.</p></div><div className=\"flex w-fit items-center rounded-full border border-white/[0.08] bg-black/28 p-1\"><ModeButton active={mode==='overview'} onClick={()=>setMode('overview')}>Overview</ModeButton><ModeButton active={mode==='single'} onClick={()=>setMode('single')}>Single intake</ModeButton><ModeButton active={mode==='batch'} onClick={()=>setMode('batch')}>Mass intake</ModeButton><ModeButton active={mode==='growth'} onClick={()=>setMode('growth')}>Growth Lab</ModeButton></div></div><div className=\"mt-7 grid sm:grid-cols-4\"><Stat icon={Archive} label=\"Cards on file\" value={total.toLocaleString()} detail=\"Canonical PCG records\"/><Stat icon={Layers3} label=\"Current batch\" value={items.length.toLocaleString()} detail={items.length?`${done} stored so far`:'No intake running'}/><Stat icon={PackageCheck} label=\"Exceptions\" value={failed.toLocaleString()} detail={failed?'Ready to retry safely':'No failed uploads'}/><Stat icon={ShieldCheck} label=\"Storage\" value=\"Google Drive\" detail=\"PCG-owned master imagery\"/></div></section>{mode==='overview'?<PCGGrowthPulse tenantId={tenantId} onOpen={()=>setMode('growth')}/>:null}\n{mode==='overview'?<div className=\"mt-7 grid gap-7 xl:grid-cols-[minmax(0,1.15fr)_minmax(350px,.85fr)]\"><section><div className=\"mb-3 text-[10px] font-black uppercase tracking-[.17em] text-white/30\">Start an intake</div><div className=\"grid gap-px overflow-hidden border border-white/[0.08] bg-white/[0.08] sm:grid-cols-2\"><button onClick={()=>setMode('single')} className=\"group min-h-[210px] bg-[#09090a]/94 p-5 text-left transition hover:bg-[#0d0d0f]\"><div className=\"flex items-start justify-between\"><ImagePlus className=\"h-6 w-6 text-[#d8bb78]\"/><ArrowUpRight className=\"h-5 w-5 text-white/18 transition group-hover:text-[#d8bb78]\"/></div><div className=\"mt-14\"><h2 className=\"text-xl font-black tracking-tight\">Single card intake</h2><p className=\"mt-2 text-sm leading-6 text-white/38\">Front/back imagery, identity, grade, cert, value, cost, tags and notes.</p></div></button><button onClick={()=>setMode('batch')} className=\"group min-h-[210px] bg-[#09090a]/94 p-5 text-left transition hover:bg-[#0d0d0f]\"><div className=\"flex items-start justify-between\"><UploadCloud className=\"h-6 w-6 text-[#d8bb78]\"/><ArrowUpRight className=\"h-5 w-5 text-white/18 transition group-hover:text-[#d8bb78]\"/></div><div className=\"mt-14\"><h2 className=\"text-xl font-black tracking-tight\">Mass card intake</h2><p className=\"mt-2 text-sm leading-6 text-white/38\">Hundreds or thousands, front/back pairing, optional CSV, pause and safe retry.</p></div></button></div></section><section className=\"border-l border-white/[0.08] xl:pl-7\"><div className=\"flex items-center justify-between\"><div><div className=\"text-[10px] font-black uppercase tracking-[.16em] text-white/28\">Storage contract</div><h2 className=\"mt-2 text-lg font-black\">Built for volume</h2></div><Database className=\"h-5 w-5 text-[#d8bb78]\"/></div><div className=\"mt-5 divide-y divide-white/[0.07]\">{[['Google Drive masters','New originals live in the connected PCG Google Workspace, not KnockLaunch storage.'],['Safe retry','Completed imports keep a stable identity.'],['Canonical records','Single and batch intake write to the same card records.']].map(([title,copy])=><div key={title} className=\"py-4 first:pt-0\"><div className=\"flex items-center gap-2 text-sm font-bold text-white/80\"><CheckCircle2 className=\"h-4 w-4 text-emerald-400\"/>{title}</div><p className=\"mt-1.5 pl-6 text-xs leading-5 text-white/32\">{copy}</p></div>)}</div></section></div>:null}\n{mode==='growth'?<div className=\"mt-7\"><PCGGrowthLab tenantId={tenantId}/></div>:null}\n{mode==='single'?<section className=\"mt-7 grid gap-7 xl:grid-cols-[minmax(0,1.35fr)_minmax(320px,.65fr)]\"><div><div className=\"border-b border-white/[0.08] pb-4\"><div className=\"text-[10px] font-black uppercase tracking-[.16em] text-white/28\">Card record</div><h2 className=\"mt-2 text-xl font-black\">Identification & grading</h2></div><div className=\"mt-6 grid gap-x-7 gap-y-5 sm:grid-cols-2\"><Field label=\"Title\" value={form.title} onChange={value=>update('title',value)}/><Field label=\"Player / subject\" value={form.player} onChange={value=>update('player',value)}/><Field label=\"Year\" value={form.year} onChange={value=>update('year',value)}/><Field label=\"Set / brand\" value={form.set} onChange={value=>update('set',value)}/><Field label=\"Card number\" value={form.number} onChange={value=>update('number',value)}/><Field label=\"Sport / category\" value={form.category} onChange={value=>update('category',value)}/><Field label=\"Grading company\" value={form.grader} onChange={value=>update('grader',value)}/><Field label=\"Grade\" value={form.grade} onChange={value=>update('grade',value)}/><Field label=\"Certification / serial\" value={form.cert} onChange={value=>update('cert',value)}/><Field label=\"Condition\" value={form.condition} onChange={value=>update('condition',value)}/><Field label=\"Quantity\" value={form.qty} onChange={value=>update('qty',value)}/><Field label=\"Acquisition cost\" value={form.cost} onChange={value=>update('cost',value)} placeholder=\"$0.00\"/><Field label=\"Estimated value\" value={form.value} onChange={value=>update('value',value)} placeholder=\"$0.00\"/><Field label=\"Tags\" value={form.tags} onChange={value=>update('tags',value)} placeholder=\"rookie, refractor, auto\"/></div><label className=\"mt-6 block\"><span className=\"text-[10px] font-bold uppercase tracking-[.13em] text-white/34\">Internal notes</span><textarea value={form.notes} onChange={event=>update('notes',event.target.value)} rows={4} className=\"mt-2 w-full border border-white/[0.09] bg-black/24 p-4 text-sm leading-6 text-white outline-none focus:border-[#d8bb78]/40\"/></label></div><div className=\"self-start border-l border-white/[0.08] xl:pl-7\"><div className=\"text-[10px] font-black uppercase tracking-[.16em] text-white/28\">Card imagery</div><div className=\"mt-4 grid gap-px overflow-hidden border border-white/[0.08] bg-white/[0.08]\"><ImageTile label=\"Front\" file={front} onFile={setFront}/><ImageTile label=\"Back\" file={reverse} onFile={setReverse}/></div><button onClick={()=>void saveSingle()} disabled={saving} className=\"mt-4 flex h-12 w-full items-center justify-center gap-2 bg-[#d8bb78] text-sm font-black text-[#09090a] transition hover:bg-[#e3c886] disabled:opacity-50\">{saving?<Loader2 className=\"h-4 w-4 animate-spin\"/>:<Archive className=\"h-4 w-4\"/>}{saving?'Storing card…':'Store in PCG'}</button></div></section>:null}\n{mode==='batch'?<section className=\"mt-7 space-y-5\"><div className=\"border border-white/[0.08] bg-[#09090a]/90 p-5\"><div className=\"flex flex-col gap-4 lg:flex-row lg:items-end\"><label className=\"min-w-0 flex-1\"><span className=\"text-[10px] font-black uppercase tracking-[.16em] text-[#d8bb78]\">1 · Choose the collector order</span><select value={selectedSubmissionId} onChange={event=>{setSelectedSubmissionId(event.target.value);setSession('');setRows([]);setItems([])}} disabled={running} className=\"mt-2 h-12 w-full border border-white/[0.10] bg-black/45 px-3 text-sm font-bold text-white outline-none focus:border-[#d8bb78]/55\"><option value=\"\">Select an open PCG order</option>{submissionOptions.map(option=><option key={option.id} value={option.id}>{option.submission_number} · {option.customer_name||'Collector'} · {option.status.replaceAll('_',' ')}</option>)}</select></label><div className=\"flex flex-wrap items-center gap-2 lg:justify-end\"><span className={cn('inline-flex h-10 items-center gap-2 border px-3 text-xs font-black',driveReady?'border-emerald-400/25 bg-emerald-400/[.07] text-emerald-200':'border-amber-400/25 bg-amber-400/[.07] text-amber-100')}><ShieldCheck className=\"h-4 w-4\"/>{driveState==='checking'?'Checking Drive…':driveReady?'Google Drive ready':driveState==='reconnect'?'Reconnect Google Workspace':'Google Workspace required'}</span><a href=\"?mode=received&tool=submissions\" className=\"inline-flex h-10 items-center border border-white/[0.10] px-3 text-xs font-black text-white/65\">Orders</a>{!driveReady&&driveState!=='checking'?<a href=\"?mode=received&tool=settings\" className=\"inline-flex h-10 items-center border border-[#d8bb78]/25 px-3 text-xs font-black text-[#ead49d]\">Open settings</a>:null}</div></div><p className=\"mt-3 text-xs leading-5 text-white/42\">{selectedSubmission?'Images and CSV details will become the canonical cards for '+selectedSubmission.submission_number+' · '+(selectedSubmission.customer_name||'Collector')+'. No second submission is created.':'Create or choose the customer’s grading order before loading card images.'}</p></div>{!submissionOptions.length?<div className=\"border border-dashed border-amber-300/20 bg-amber-300/[.04] p-5 text-sm text-amber-100/80\">No open PCG grading orders are available. Create the collector order from <a href=\"?mode=received&tool=submissions\" className=\"font-black text-[#ead49d] underline underline-offset-4\">Orders</a>, then return to Mass Intake.</div>:null}{driveState==='missing'||driveState==='reconnect'?<div className=\"border border-dashed border-amber-300/20 bg-amber-300/[.04] p-5\"><div className=\"text-sm font-black text-amber-100\">{driveState==='reconnect'?'Google Workspace needs Drive permission':'Connect PCG Google Workspace before image intake'}</div><p className=\"mt-1 text-xs leading-5 text-white/45\">New PCG master images are stored in Anthony’s Google Drive. Intake stays locked until that private Drive connection is ready.</p></div>:null}<div className=\"grid gap-px overflow-hidden border border-white/[0.08] bg-white/[0.08] lg:grid-cols-2\"><label className={cn('group flex min-h-[180px] flex-col justify-between bg-[#09090a]/94 p-5',selectedSubmissionId&&driveReady&&!running?'cursor-pointer':'cursor-not-allowed opacity-45')}><input type=\"file\" multiple accept=\"image/*\" disabled={!selectedSubmissionId||!driveReady||running} className=\"hidden\" onChange={event=>{if(!event.target.files)return;setSession('batch-'+crypto.randomUUID());setRows([]);setItems(pairFiles(Array.from(event.target.files),[]))}}/><UploadCloud className=\"h-6 w-6 text-[#d8bb78]\"/><div><h2 className=\"text-xl font-black\">2 · Choose the card image batch</h2><p className=\"mt-2 text-sm leading-6 text-white/36\">Front/back filenames pair automatically. The selected order owns every imported card.</p></div></label><label className={cn('group flex min-h-[180px] flex-col justify-between bg-[#09090a]/94 p-5',items.length&&!running?'cursor-pointer':'cursor-not-allowed opacity-45')}><input type=\"file\" accept=\".csv,text/csv\" disabled={!items.length||running} className=\"hidden\" onChange={event=>event.target.files?.[0]?.text().then(text=>{const parsed=parseCsv(text);setRows(parsed);setItems(current=>current.map(item=>({...item,row:parsed.find(row=>fileStem(rowValue(row,'filename','file','front','image')).toLowerCase()===item.key.toLowerCase())})))})}/><FileSpreadsheet className=\"h-6 w-6 text-[#d8bb78]\"/><div><h2 className=\"text-xl font-black\">3 · Attach CSV details <span className=\"text-white/30\">(optional)</span></h2><p className=\"mt-2 text-sm leading-6 text-white/36\">Map filenames, player, set, year and card number into those same canonical order records.</p></div></label></div><div className=\"border border-white/[0.08] bg-[#09090a]/82\"><div className=\"flex flex-col gap-4 border-b border-white/[0.07] p-5 sm:flex-row sm:items-center\"><div className=\"mr-auto\"><div className=\"text-[10px] font-black uppercase tracking-[.16em] text-white/28\">Mass intake queue</div><div className=\"mt-1 text-lg font-black\">{items.length.toLocaleString()} cards <span className=\"font-medium text-white/30\">· {done} stored · {failed} failed</span></div>{selectedSubmission?<div className=\"mt-1 text-xs font-bold text-[#d8bb78]/80\">{selectedSubmission.submission_number} · {selectedSubmission.customer_name||'Collector'}</div>:null}</div>{running?<button onClick={()=>{stop.current=true}} className=\"inline-flex h-10 items-center gap-2 border border-white/[0.10] px-4 text-xs font-bold\"><PauseCircle className=\"h-4 w-4\"/>Pause intake</button>:<button disabled={!remaining.length||!selectedSubmissionId||!driveReady} onClick={()=>void runBatch(remaining)} className=\"inline-flex h-10 items-center gap-2 bg-[#d8bb78] px-4 text-xs font-black text-black disabled:opacity-35\"><UploadCloud className=\"h-4 w-4\"/>{!driveReady?'Google Drive required':!selectedSubmissionId?'Select an order':failed?'Retry remaining':'Start mass intake'}</button>}</div><div className=\"h-1 bg-white/[0.05]\"><div className=\"h-full bg-[#d8bb78]\" style={{width:`${progress}%`}}/></div><div className=\"max-h-[360px] overflow-auto p-2\">{!items.length?<div className=\"grid min-h-44 place-items-center text-center\"><div><Layers3 className=\"mx-auto h-7 w-7 text-white/16\"/><div className=\"mt-3 text-sm font-bold text-white/48\">No card batch loaded</div><div className=\"mt-1 text-xs text-white/28\">Choose an order, then load its card images.</div></div></div>:items.slice(0,2000).map((item,index)=><div key={`${item.key}-${index}`} className=\"grid grid-cols-[1fr_auto] items-center gap-3 px-3 py-2.5 text-sm\"><div className=\"min-w-0\"><div className=\"truncate font-semibold text-white/72\">{item.key}</div><div className=\"truncate text-[10px] text-white/24\">{item.front?.name}{item.back?' + back':''}</div></div>{item.status==='done'?<CheckCircle2 className=\"h-4 w-4 text-emerald-400\"/>:item.status==='failed'?<XCircle className=\"h-4 w-4 text-rose-400\"/>:item.status==='uploading'?<Loader2 className=\"h-4 w-4 animate-spin text-[#d8bb78]\"/>:<span className=\"text-[10px] text-white/24\">Queued</span>}</div>)}</div></div></section>:null}\n<section className=\"mt-8 border-t border-white/[0.08] pt-6\"><div className=\"flex items-end justify-between\"><div><div className=\"text-[10px] font-black uppercase tracking-[.16em] text-white/28\">Card Vault</div><h2 className=\"mt-1 text-lg font-black\">Recently stored</h2></div><button onClick={()=>void load()} className=\"grid h-9 w-9 place-items-center border border-white/[0.08] text-white/36\"><RefreshCw className=\"h-4 w-4\"/></button></div>{recent.length?<div className=\"mt-4 grid grid-cols-2 gap-px overflow-hidden border border-white/[0.07] bg-white/[0.07] sm:grid-cols-4 md:grid-cols-5 lg:grid-cols-6 xl:grid-cols-8 2xl:grid-cols-9\">{recent.map(card=><article key={card.id} className=\"bg-black/48\"><div className=\"relative aspect-[3/4] overflow-hidden bg-[#080809]\">{card.metadata?.demo?<DemoCardFace card={card}/>:card.front_image_url?<img src={card.front_image_url} alt=\"\" className=\"h-full w-full object-contain p-2\"/>:<div className=\"grid h-full place-items-center\"><Archive className=\"h-7 w-7 text-white/12\"/></div>}{card.grade?<div className=\"absolute right-2 top-2 z-10 bg-black/78 px-2 py-1 text-[10px] font-black text-[#e5cd93]\">{card.grade}</div>:null}</div><div className=\"p-2.5\"><div className=\"truncate text-xs font-bold\">{card.player_character||card.brand_set||'Card'}</div><div className=\"mt-1 truncate text-[10px] text-white/30\">{[card.year,card.brand_set,card.card_number&&`#${card.card_number}`].filter(Boolean).join(' · ')||card.cert_number||'PCG record'}</div></div></article>)}</div>:<div className=\"mt-4 grid min-h-36 place-items-center border border-dashed border-white/[0.08] bg-black/20 text-center\"><div><Archive className=\"mx-auto h-7 w-7 text-white/12\"/><div className=\"mt-2 text-sm font-bold text-white/42\">The vault is ready.</div></div></div>}</section></div>}\nexport default function PCGWorkspace(){return <CRMShell><div className=\"mx-auto w-full max-w-[1500px] px-4 py-5 sm:px-6 sm:py-7 xl:px-9 xl:py-8\"><PCGCardVaultContent/></div></CRMShell>}\n","expectedSha":"0350d33f3817731e576cdea62d5337767598c08d"},{"path":"supabase/migrations/20260929013200_pcg_grading_transition_readiness.sql","content":"-- PCG-specific grading lifecycle readiness.\n-- Preserve the generic grading transition RPC for all other card-grading surfaces.\ncreate or replace function public.advance_pcg_grading_submission(\n  p_tenant_id uuid,\n  p_submission_id uuid,\n  p_status text\n)\nreturns void\nlanguage plpgsql\nsecurity invoker\nset search_path = 'public', 'auth', 'pg_temp'\nas $function$\ndeclare\n  v_current_status text;\n  v_is_pcg boolean := false;\n  v_card_count integer := 0;\n  v_missing_count integer := 0;\n  v_tracking_out text;\n  v_allowed boolean := false;\nbegin\n  if current_user <> 'service_role' then\n    if auth.uid() is null or not public.is_tenant_member(p_tenant_id::text) then\n      raise exception 'PCG workspace access required' using errcode = '42501';\n    end if;\n  end if;\n\n  select coalesce(t.company_slug, '') = 'pcg'\n    into v_is_pcg\n  from public.tenants t\n  where t.id = p_tenant_id;\n\n  if not coalesce(v_is_pcg, false) then\n    raise exception 'PCG workspace required' using errcode = '42501';\n  end if;\n\n  select s.status, s.tracking_out\n    into v_current_status, v_tracking_out\n  from public.card_grading_submissions s\n  where s.id = p_submission_id\n    and s.tenant_id = p_tenant_id;\n\n  if v_current_status is null then\n    raise exception 'Submission unavailable';\n  end if;\n\n  if p_status = v_current_status then\n    return;\n  end if;\n\n  if p_status not in ('received','intake_imaging','authentication','grading','encapsulation','qa','ready','shipped','picked_up') then\n    raise exception 'Invalid grading status';\n  end if;\n\n  v_allowed := case v_current_status\n    when 'received' then p_status = 'intake_imaging'\n    when 'intake_imaging' then p_status = 'authentication'\n    when 'authentication' then p_status = 'grading'\n    when 'grading' then p_status = 'encapsulation'\n    when 'encapsulation' then p_status = 'qa'\n    when 'qa' then p_status = 'ready'\n    when 'ready' then p_status in ('shipped','picked_up')\n    else false\n  end;\n\n  if not v_allowed then\n    raise exception 'PCG grading stages must advance in canonical order';\n  end if;\n\n  select count(*)::integer\n    into v_card_count\n  from public.card_grading_cards c\n  where c.tenant_id = p_tenant_id\n    and c.submission_id = p_submission_id;\n\n  if p_status in ('authentication','encapsulation','qa','ready') and v_card_count = 0 then\n    raise exception 'Add cards before advancing this PCG order';\n  end if;\n\n  if p_status = 'authentication' then\n    select count(*)::integer\n      into v_missing_count\n    from public.card_grading_cards c\n    where c.tenant_id = p_tenant_id\n      and c.submission_id = p_submission_id\n      and coalesce(\n        nullif(btrim(c.slab_image_url),''),\n        nullif(btrim(c.front_image_url),''),\n        nullif(btrim(c.back_image_url),'')\n      ) is null;\n    if v_missing_count > 0 then\n      raise exception '% card(s) need saved intake imagery before authentication', v_missing_count;\n    end if;\n  elsif p_status = 'encapsulation' then\n    select count(*)::integer\n      into v_missing_count\n    from public.card_grading_cards c\n    where c.tenant_id = p_tenant_id\n      and c.submission_id = p_submission_id\n      and c.grade is null;\n    if v_missing_count > 0 then\n      raise exception '% card(s) need a saved grade before encapsulation', v_missing_count;\n    end if;\n  elsif p_status = 'qa' then\n    select count(*)::integer\n      into v_missing_count\n    from public.card_grading_cards c\n    where c.tenant_id = p_tenant_id\n      and c.submission_id = p_submission_id\n      and (c.grade is null or nullif(btrim(coalesce(c.cert_number,'')),'') is null);\n    if v_missing_count > 0 then\n      raise exception '% card(s) need a saved grade and certification number before QA', v_missing_count;\n    end if;\n  elsif p_status = 'ready' then\n    select count(*)::integer\n      into v_missing_count\n    from public.card_grading_cards c\n    where c.tenant_id = p_tenant_id\n      and c.submission_id = p_submission_id\n      and (\n        c.grade is null\n        or nullif(btrim(coalesce(c.cert_number,'')),'') is null\n        or coalesce(\n          nullif(btrim(c.slab_image_url),''),\n          nullif(btrim(c.front_image_url),''),\n          nullif(btrim(c.back_image_url),'')\n        ) is null\n      );\n    if v_missing_count > 0 then\n      raise exception '% card(s) need saved grade, certification number, and customer-visible imagery before Ready', v_missing_count;\n    end if;\n  elsif p_status = 'shipped' then\n    if nullif(btrim(coalesce(v_tracking_out,'')),'') is null then\n      raise exception 'Save outbound tracking before marking this PCG order shipped';\n    end if;\n  end if;\n\n  update public.card_grading_submissions\n     set status = p_status,\n         completed_at = case when p_status in ('shipped','picked_up') then now() else completed_at end,\n         updated_at = now()\n   where id = p_submission_id\n     and tenant_id = p_tenant_id;\n\n  if not found then\n    raise exception 'Submission unavailable';\n  end if;\n\n  update public.card_grading_cards\n     set status = p_status,\n         updated_at = now()\n   where submission_id = p_submission_id\n     and tenant_id = p_tenant_id;\nend;\n$function$;\n\nrevoke all on function public.advance_pcg_grading_submission(uuid,uuid,text) from public;\nrevoke all on function public.advance_pcg_grading_submission(uuid,uuid,text) from anon;\ngrant execute on function public.advance_pcg_grading_submission(uuid,uuid,text) to authenticated;\ngrant execute on function public.advance_pcg_grading_submission(uuid,uuid,text) to service_role;\n"}],"branch":"ai/objective-first-repair-1e0f3e5448b7","writes":[],"patches":[],"version":1,"approved":true,"missionId":"1e0f3e54-48b7-43ee-8430-d2c67fb525d2","repository":"noel/KnockLaunchOS","commitMessage":"PCG: enforce grading transition readiness","ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/pages/crm/PcgWorkspace.tsx","src/pages/card-grading/PCGWorkspace.tsx","supabase/migrations/20260929013200_pcg_grading_transition_readiness.sql"],"implementation":{"files":[],"writes":[]},"requestContract":null,"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":"1e0f3e54-48b7-43ee-8430-d2c67fb525d2","ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/pages/crm/PcgWorkspace.tsx","src/pages/card-grading/PCGWorkspace.tsx","supabase/migrations/20260929013200_pcg_grading_transition_readiness.sql"],"requestContract":null,"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":false,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"proofRequirements":null,"controlPlaneUnfreeze":false,"durableMutationResume":true,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"recovery":false,"fingerprint":"e28a8a9bf56c33a29db61b9a1bc717b7c045b313825f9c759c873e90a3f58353","replayCount":0,"serializedBytes":88353},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T01:30:22.326743+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:1e0f3e54-48b7-43ee-8430-d2c67fb525d2:repository-mutation-intent:e28a8a9bf56c33a29db61b9a1bc717b7c045b313825f9c759c873e90a3f58353:0","mission_step_id":"0b2b5dd2-a16c-440c-a9d5-1fece8668528","command_center_event_id":"1e0f3e54-48b7-43ee-8430-d2c67fb525d2"},{"id":"a05f2151-105f-46f4-ba03-808f6bf3984f","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/fast-ui-rebase-revalidation","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.210-platform-source-resolution","prNumber":3400,"terminal":false,"missionId":"f63eea8e-19d0-4bc5-910c-1715b1f0e961","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":6227,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":2656,"missionSetupMs":367,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":367,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":367,"repositoryMutationMs":3571,"repositoryProviderMs":3571,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2117,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":367,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1454},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"f63eea8e-19d0-4bc5-910c-1715b1f0e961"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3893,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:09:23.419161+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3400","receipt_type":"execute_mission","idempotency_key":"mission:f63eea8e-19d0-4bc5-910c-1715b1f0e961:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"7a3cffe6-f639-4b00-8bfc-45be8876d3b4","command_center_event_id":"f63eea8e-19d0-4bc5-910c-1715b1f0e961"},{"id":"9f17d43a-7203-4e9b-9cc2-9976ad8d4b56","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/fast-ui-rebase-revalidation","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3400,"terminal":false,"missionId":"f63eea8e-19d0-4bc5-910c-1715b1f0e961","operation":"automatic_mission_resume","proofGate":"canonical_release_dispatched","sourceSha":"0db554b55ece0c08c38e67133572fcf188871e7a","timingsMs":{"prReadinessMs":436,"approvedPlanMs":0,"shipAndProveMs":2837,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"f63eea8e-19d0-4bc5-910c-1715b1f0e961"},"performance":null,"deploymentId":"forgejo-main-0db554b55ece","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":2008,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:09:49.47138+00:00","proof_gate":"canonical_release_dispatched","source_sha":null,"external_id":"3400","receipt_type":"automatic_mission_resume","idempotency_key":"mission:f63eea8e-19d0-4bc5-910c-1715b1f0e961:automatic-mission-resume:3400:canonical_release_dispatched","mission_step_id":"c9c1c33d-14d8-4a37-a089-ad5bb49f1a3f","command_center_event_id":"f63eea8e-19d0-4bc5-910c-1715b1f0e961"},{"id":"e429503e-abb0-43f9-a5bf-ef5e7bc9b38d","source":"cc-execution","status":"cancelled","payload":{"cancelled":true,"missionId":"5bc6055a-2954-43d2-8509-02bdd0065617"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:46:03.708104+00:00","proof_gate":"durable_mission_cancelled","source_sha":null,"external_id":null,"receipt_type":"owner_mission_cancelled","idempotency_key":"mission:5bc6055a-2954-43d2-8509-02bdd0065617:mission-cancel:5bc6055a-2954-43d2-8509-02bdd0065617","mission_step_id":"9640baa8-d8ac-4c6c-9351-42f36be68b19","command_center_event_id":"5bc6055a-2954-43d2-8509-02bdd0065617"},{"id":"b67461e6-fb26-4cbb-8244-1fbfde2e8645","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/sign-agreement-continuous-pdf-scroll","reason":"pull_request_checks_pending","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3399,"terminal":false,"missionId":"c3099ee9-3d4b-4114-879a-d6ff0aeb63f0","operation":"automatic_mission_resume","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"prReadinessMs":663,"approvedPlanMs":0,"shipAndProveMs":0,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request after the exact-head KnockLaunch Gate changes state.","receiptRef":{"mode":"full","missionId":"c3099ee9-3d4b-4114-879a-d6ff0aeb63f0"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1286,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:07:10.014904+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"3399","receipt_type":"automatic_mission_resume","idempotency_key":"mission:c3099ee9-3d4b-4114-879a-d6ff0aeb63f0:automatic-mission-resume:3399:repair_mission_waiting_for_gate","mission_step_id":"24a3bfc2-5084-40e9-84bc-1b8787108e3b","command_center_event_id":"c3099ee9-3d4b-4114-879a-d6ff0aeb63f0"},{"id":"a441c563-3119-4185-8028-a2fedc210d6f","source":"forgejo-exact-source","status":"verified","payload":{"sourceSha":"ac45cf27721df31df37ecedcc73af3413bfa33e7","repository":"noel/KnockLaunchOS","repositoryProofs":[{"id":"restore","path":null,"proof":"forgejo_merged_pr_exact_head_gate","headSha":"3e1cd90804956d84426fba5d81337ca15c0c2a98","prNumber":3735,"gateRunId":11812,"gateContext":"KnockLaunch Gate / KnockLaunch Gate (pull_request)","expectedText":"KNOCKLAUNCH Golden Restore Point — 2026-09-25 Witness Lane Affinity + PAUL Stable","gateTargetUrl":"/noel/KnockLaunchOS/actions/runs/11812/jobs/1","mergeCommitSha":"ac45cf27721df31df37ecedcc73af3413bfa33e7"},{"id":"validator","path":null,"proof":"forgejo_merged_pr_exact_head_gate","headSha":"3e1cd90804956d84426fba5d81337ca15c0c2a98","prNumber":3735,"gateRunId":11812,"gateContext":"KnockLaunch Gate / KnockLaunch Gate (pull_request)","expectedText":"HOSTED_WITNESS_TARGET","gateTargetUrl":"/noel/KnockLaunchOS/actions/runs/11812/jobs/1","mergeCommitSha":"ac45cf27721df31df37ecedcc73af3413bfa33e7"},{"id":"contract","path":null,"proof":"forgejo_merged_pr_exact_head_gate","headSha":"3e1cd90804956d84426fba5d81337ca15c0c2a98","prNumber":3735,"gateRunId":11812,"gateContext":"KnockLaunch Gate / KnockLaunch Gate (pull_request)","expectedText":"GOLDEN_ARCHITECTURE_SHA","gateTargetUrl":"/noel/KnockLaunchOS/actions/runs/11812/jobs/1","mergeCommitSha":"ac45cf27721df31df37ecedcc73af3413bfa33e7"}],"requestContractHash":"754bc460ccbb0e030450a5917c8cffb263bcbb9cff75fd720147fe7dc0358853","namedGateEvidenceReceiptVersion":null},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T13:55:06.310631+00:00","proof_gate":"request_contract_repository_verified","source_sha":"ac45cf27721df31df37ecedcc73af3413bfa33e7","external_id":null,"receipt_type":"request_contract_repository_status","idempotency_key":"mission:538a9c14-718a-4b3e-87fa-1c98217b29e5:request-contract-repository:754bc460ccbb0e030450a5917c8cffb263bcbb9cff75fd720147fe7dc0358853:ac45cf27721df31df37ecedcc73af3413bfa33e7","mission_step_id":"7da7d22d-0b70-4e2a-97f8-9221dcd13f64","command_center_event_id":"538a9c14-718a-4b3e-87fa-1c98217b29e5"},{"id":"06f75abf-2094-44c4-a85d-1932c7fdc7b3","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"7fed9cc44c92b49870b5b787fdc25daa427d33b8","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-1","satisfied":true,"statement":"Ship the Big Papi proposal one-click recipient fix using the smallest safe change. Make the proposal signing page open the full proposal immediately instead of behind the extra gateway, and change the e-sign email primary CTA from the generic review/sign wording to 'Open Proposal'. Preserve existing e-sign evidence and signing controls. Complete PR, Gate, merge, deploy, and runtime proof.","proofConditionIds":["proof-production"]}],"satisfied":true,"constraints":[{"id":"capability-completeness","satisfied":true,"statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["proof-production"]},{"id":"atomic-capability-lifecycle","satisfied":true,"statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["proof-production"]}],"contractHash":"2a7e252dcad6c90f2887949bca1fd8d496d18976566fb0443642320c2806c014","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"proof-production","kind":"runtime","evidence":{"reason":null,"satisfied":true,"releaseState":"verified","missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{"frontend":"success","supabaseEdge":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["frontend","supabaseEdge"],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"migrationReleaseVerified":null,"releaseRequestContractHash":"2a7e252dcad6c90f2887949bca1fd8d496d18976566fb0443642320c2806c014"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["frontend","supabaseEdge"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T21:16:09.785337+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"7fed9cc44c92b49870b5b787fdc25daa427d33b8","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:66e23008-19b2-4374-a02f-d718db6747ed:request-contract:2a7e252dcad6c90f2887949bca1fd8d496d18976566fb0443642320c2806c014:7fed9cc44c92b49870b5b787fdc25daa427d33b8:verified:","mission_step_id":"8ba0a43b-74fb-4973-8eec-66fef4a0b52f","command_center_event_id":"66e23008-19b2-4374-a02f-d718db6747ed"},{"id":"6623edd0-06bd-497b-abba-87580307cdf6","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","cc-execution/runtime-proof":"pending"},"mainSha":"0db554b55ece0c08c38e67133572fcf188871e7a","missing":[],"pending":["forgejo-release/workflow","cc-execution/runtime-proof"],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof"],"sourceSha":"0db554b55ece0c08c38e67133572fcf188871e7a","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"ccExecution":"pending"},"requestContractHash":"498705d446e8b891c10f258f72158abf911eaf4925144e25f49c67dc5d2804ef","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/10683","runId":10683,"status":"waiting","sourceSha":"0db554b55ece0c08c38e67133572fcf188871e7a","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true,"targetStates":{"ccExecution":"pending"},"targetJobCount":7,"observedTargetStates":{"ccExecution":"pending"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"78a806ab82720cdc837dca6a72c29b0b5473c130","deploymentId":"forgejo-main-78a806ab82720cdc837dca6a72c29b0b5473c130","compareStatus":null,"identitySource":"local_build_metadata","runtimeVersion":"1.58.210-platform-source-resolution","containsSourceSha":false},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:09:50.816333+00:00","proof_gate":"canonical_release_pending","source_sha":"0db554b55ece0c08c38e67133572fcf188871e7a","external_id":"forgejo-main-0db554b55ece","receipt_type":"canonical_release_status","idempotency_key":"mission:f63eea8e-19d0-4bc5-910c-1715b1f0e961:forgejo-release-status:0db554b55ece0c08c38e67133572fcf188871e7a:pending:forgejo-main/source=success|forgejo-release/workflow=pending|cc-execution/runtime-proof=pending","mission_step_id":"c9c1c33d-14d8-4a37-a089-ad5bb49f1a3f","command_center_event_id":"f63eea8e-19d0-4bc5-910c-1715b1f0e961"},{"id":"b8649f96-ef60-495c-b689-5f781d86a1e7","source":"cc-execution","status":"source_resolution_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-5f3605bbd227","reason":null,"status":"source_resolution_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.210-platform-source-resolution","prNumber":null,"terminal":false,"missionId":"5f3605bb-d227-4474-bd84-6566e0d719c4","operation":"execute_mission","proofGate":"repair_mission_source_resolution_required","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":123,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":437,"providerAuthMs":0,"ledgerPrepareMs":437,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":437,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":437,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Resolve bounded authoritative Forgejo source targets, then call /mission/execute again with this same missionId and exact files or anchored_edits. Do not switch workflows.","receiptRef":{"mode":"full","missionId":"5f3605bb-d227-4474-bd84-6566e0d719c4"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":2692,"likelyAffectedFiles":[],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:16:36.479938+00:00","proof_gate":"repair_mission_source_resolution_required","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:5f3605bb-d227-4474-bd84-6566e0d719c4:execute_mission:repair_mission_source_resolution_required:current-generation","mission_step_id":"645daace-3df9-4308-bf2b-4f6d7ee40160","command_center_event_id":"5f3605bb-d227-4474-bd84-6566e0d719c4"},{"id":"0a850d04-f2bf-4cd5-bde4-50527f9c7186","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-5f3605bbd227","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.210-platform-source-resolution","prNumber":null,"terminal":false,"missionId":"5f3605bb-d227-4474-bd84-6566e0d719c4","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":7,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":269,"providerAuthMs":0,"ledgerPrepareMs":269,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":269,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":269,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Inspect the bounded repository paths, synthesize exact files or anchored_edits, and call /mission/execute again automatically with this same missionId without another owner prompt or workflow switch.","receiptRef":{"mode":"full","missionId":"5f3605bb-d227-4474-bd84-6566e0d719c4"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3698,"likelyAffectedFiles":["workers/cc-execution/src/index-release-fast-lane.js","workers/cc-execution/test/platform-source-resolution.test.js","workers/cc-execution/src/version.js"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:16:49.21236+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:5f3605bb-d227-4474-bd84-6566e0d719c4:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"645daace-3df9-4308-bf2b-4f6d7ee40160","command_center_event_id":"5f3605bb-d227-4474-bd84-6566e0d719c4"},{"id":"7c75e1a5-e75d-46bc-afd1-04efe76b932b","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-5f3605bbd227","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.210-platform-source-resolution","prNumber":3401,"terminal":false,"missionId":"5f3605bb-d227-4474-bd84-6566e0d719c4","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":8472,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":2970,"missionSetupMs":297,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":297,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":297,"repositoryMutationMs":5502,"repositoryProviderMs":5502,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":3243,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":297,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":2259},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"5f3605bb-d227-4474-bd84-6566e0d719c4"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3836,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:17:40.02481+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3401","receipt_type":"execute_mission","idempotency_key":"mission:5f3605bb-d227-4474-bd84-6566e0d719c4:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"f0d72da2-7358-4cc6-8128-33153f83dd98","command_center_event_id":"5f3605bb-d227-4474-bd84-6566e0d719c4"},{"id":"0658dc4e-ece9-4d24-b7a1-e7a41aa5e307","source":"cc-execution","status":"cancelled","payload":{"cancelled":true,"missionId":"3d2ccf96-f444-4094-a9f9-46d64a26205d"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:46:07.872656+00:00","proof_gate":"durable_mission_cancelled","source_sha":null,"external_id":null,"receipt_type":"owner_mission_cancelled","idempotency_key":"mission:3d2ccf96-f444-4094-a9f9-46d64a26205d:mission-cancel:3d2ccf96-f444-4094-a9f9-46d64a26205d","mission_step_id":"ffc3b3d2-5650-4025-b17d-3042914d0b76","command_center_event_id":"3d2ccf96-f444-4094-a9f9-46d64a26205d"},{"id":"f38b3219-9ef1-40bc-b60d-a2659d03554d","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"ac45cf27721df31df37ecedcc73af3413bfa33e7","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"golden-current","satisfied":true,"statement":"Canonical restore state is the current fully proven September 25 lane-affinity and PAUL-stable architecture.","proofConditionIds":["restore","validator","contract"]}],"satisfied":true,"constraints":[{"id":"preserve-layered-truth","satisfied":true,"statement":"Preserve affected-target runtime identities and all prior restore safety; do not force unrelated runtime redeploys or mutate tenant/product/data state.","proofConditionIds":["restore","validator","contract"]},{"id":"capability-completeness","satisfied":true,"statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["restore","validator","contract"]},{"id":"atomic-capability-lifecycle","satisfied":true,"statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["restore","validator","contract"]}],"contractHash":"754bc460ccbb0e030450a5917c8cffb263bcbb9cff75fd720147fe7dc0358853","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"restore","kind":"repository","evidence":{"reason":null,"gateRunId":11812,"satisfied":true,"gateTestProof":null,"gateTestPassed":false,"missingTargets":[],"gateTestExecuted":false,"disallowedTargets":[],"migrationRequired":false,"namedGateTestPath":null,"releaseTargetStates":{},"repositoryProofGate":"request_contract_repository_verified","repositoryProofPath":null,"requestContractHash":"754bc460ccbb0e030450a5917c8cffb263bcbb9cff75fd720147fe7dc0358853","unsuccessfulTargets":[],"activeReleaseTargets":[],"allowedReleaseTargets":[],"repositoryProofStatus":"verified","expectedRepositoryPath":null,"namedGateTestSatisfied":true,"requiredReleaseTargets":[],"migrationReleaseVerified":null,"repositoryConditionBound":true,"repositoryProofSourceSha":"ac45cf27721df31df37ecedcc73af3413bfa33e7"},"required":true,"satisfied":true},{"id":"validator","kind":"repository","evidence":{"reason":null,"gateRunId":11812,"satisfied":true,"gateTestProof":null,"gateTestPassed":false,"missingTargets":[],"gateTestExecuted":false,"disallowedTargets":[],"migrationRequired":false,"namedGateTestPath":null,"releaseTargetStates":{},"repositoryProofGate":"request_contract_repository_verified","repositoryProofPath":null,"requestContractHash":"754bc460ccbb0e030450a5917c8cffb263bcbb9cff75fd720147fe7dc0358853","unsuccessfulTargets":[],"activeReleaseTargets":[],"allowedReleaseTargets":[],"repositoryProofStatus":"verified","expectedRepositoryPath":null,"namedGateTestSatisfied":true,"requiredReleaseTargets":[],"migrationReleaseVerified":null,"repositoryConditionBound":true,"repositoryProofSourceSha":"ac45cf27721df31df37ecedcc73af3413bfa33e7"},"required":true,"satisfied":true},{"id":"contract","kind":"repository","evidence":{"reason":null,"gateRunId":11812,"satisfied":true,"gateTestProof":null,"gateTestPassed":false,"missingTargets":[],"gateTestExecuted":false,"disallowedTargets":[],"migrationRequired":false,"namedGateTestPath":null,"releaseTargetStates":{},"repositoryProofGate":"request_contract_repository_verified","repositoryProofPath":null,"requestContractHash":"754bc460ccbb0e030450a5917c8cffb263bcbb9cff75fd720147fe7dc0358853","unsuccessfulTargets":[],"activeReleaseTargets":[],"allowedReleaseTargets":[],"repositoryProofStatus":"verified","expectedRepositoryPath":null,"namedGateTestSatisfied":true,"requiredReleaseTargets":[],"migrationReleaseVerified":null,"repositoryConditionBound":true,"repositoryProofSourceSha":"ac45cf27721df31df37ecedcc73af3413bfa33e7"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":[]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T13:55:07.860073+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"ac45cf27721df31df37ecedcc73af3413bfa33e7","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:538a9c14-718a-4b3e-87fa-1c98217b29e5:request-contract:754bc460ccbb0e030450a5917c8cffb263bcbb9cff75fd720147fe7dc0358853:ac45cf27721df31df37ecedcc73af3413bfa33e7:verified:","mission_step_id":"7da7d22d-0b70-4e2a-97f8-9221dcd13f64","command_center_event_id":"538a9c14-718a-4b3e-87fa-1c98217b29e5"},{"id":"9546e050-7def-4ddd-81f8-d1b6d2f3f7a6","source":"durable-mission-ledger","status":"pending","payload":{"sourceSha":"9abc17d09ebc78221099ec2489ce1c0289575ae7","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"hosted-pairing-persists","satisfied":false,"statement":"Hosted GodMode Console saves and restores the MSI pairing from localStorage across reloads/browser restarts.","proofConditionIds":["proof-repository","proof-test","proof-live"]}],"satisfied":false,"constraints":[{"id":"scope","satisfied":false,"statement":"Only public/console/console.js, scripts/knocklaunch-console/console.test.mjs, and scripts/knocklaunch-console/README.md may change.","proofConditionIds":["proof-repository"]},{"id":"security","satisfied":false,"statement":"Do not change loopback server trust/origin checks or persist provider credentials in browser storage.","proofConditionIds":["proof-repository","proof-test"]},{"id":"capability-completeness","satisfied":false,"statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["proof-repository","proof-test","proof-live"]},{"id":"atomic-capability-lifecycle","satisfied":false,"statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["proof-repository","proof-test","proof-live"]}],"contractHash":"8bb428f1887871c1afce7bbd8ec29763cba5562c90b60b6355d0dba061b4c396","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"proof-repository","kind":"repository","evidence":{"reason":null,"gateRunId":null,"satisfied":true,"gateTestProof":null,"gateTestPassed":false,"missingTargets":[],"gateTestExecuted":false,"disallowedTargets":[],"migrationRequired":false,"namedGateTestPath":null,"releaseTargetStates":{"frontend":"success"},"repositoryProofGate":null,"repositoryProofPath":null,"requestContractHash":"8bb428f1887871c1afce7bbd8ec29763cba5562c90b60b6355d0dba061b4c396","unsuccessfulTargets":[],"activeReleaseTargets":["frontend"],"allowedReleaseTargets":[],"repositoryProofStatus":"required","expectedRepositoryPath":null,"namedGateTestSatisfied":true,"requiredReleaseTargets":[],"migrationReleaseVerified":null,"repositoryConditionBound":false,"repositoryProofSourceSha":null},"required":true,"satisfied":false},{"id":"proof-test","kind":"repository","evidence":{"reason":null,"gateRunId":null,"satisfied":true,"gateTestProof":null,"gateTestPassed":false,"missingTargets":[],"gateTestExecuted":false,"disallowedTargets":[],"migrationRequired":false,"namedGateTestPath":null,"releaseTargetStates":{"frontend":"success"},"repositoryProofGate":null,"repositoryProofPath":null,"requestContractHash":"8bb428f1887871c1afce7bbd8ec29763cba5562c90b60b6355d0dba061b4c396","unsuccessfulTargets":[],"activeReleaseTargets":["frontend"],"allowedReleaseTargets":[],"repositoryProofStatus":"required","expectedRepositoryPath":null,"namedGateTestSatisfied":true,"requiredReleaseTargets":[],"migrationReleaseVerified":null,"repositoryConditionBound":false,"repositoryProofSourceSha":null},"required":true,"satisfied":false},{"id":"proof-live","kind":"runtime","evidence":{"reason":null,"satisfied":true,"releaseState":"verified","missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{"frontend":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["frontend"],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"migrationReleaseVerified":null,"releaseRequestContractHash":"8bb428f1887871c1afce7bbd8ec29763cba5562c90b60b6355d0dba061b4c396"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":["repository"],"activeReleaseTargets":["frontend"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-26T15:11:51.82292+00:00","proof_gate":"request_contract_pending","source_sha":"9abc17d09ebc78221099ec2489ce1c0289575ae7","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:be43a1e0-2a9d-40b3-a847-c74116e05a65:request-contract:8bb428f1887871c1afce7bbd8ec29763cba5562c90b60b6355d0dba061b4c396:9abc17d09ebc78221099ec2489ce1c0289575ae7:pending:repository","mission_step_id":"55563ad4-272a-4471-9c4e-2ed861a66e99","command_center_event_id":"be43a1e0-2a9d-40b3-a847-c74116e05a65"},{"id":"9bc522fd-4062-42ed-9048-053b390ef0f2","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-5f3605bbd227","reason":"pull_request_checks_pending","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3401,"terminal":false,"missionId":"5f3605bb-d227-4474-bd84-6566e0d719c4","operation":"automatic_mission_resume","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"prReadinessMs":1434,"approvedPlanMs":0,"shipAndProveMs":0,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request after the exact-head KnockLaunch Gate changes state.","receiptRef":{"mode":"full","missionId":"5f3605bb-d227-4474-bd84-6566e0d719c4"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1286,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:17:47.429795+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"3401","receipt_type":"automatic_mission_resume","idempotency_key":"mission:5f3605bb-d227-4474-bd84-6566e0d719c4:automatic-mission-resume:3401:repair_mission_waiting_for_gate","mission_step_id":"e413b330-3c9b-45cf-877a-d15600e4cf71","command_center_event_id":"5f3605bb-d227-4474-bd84-6566e0d719c4"},{"id":"e836c6d2-b5a6-4f38-b424-5e6949d0fe70","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-5f3605bbd227","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3401,"terminal":false,"missionId":"5f3605bb-d227-4474-bd84-6566e0d719c4","operation":"automatic_mission_resume","proofGate":"canonical_release_dispatched","sourceSha":"2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","timingsMs":{"prReadinessMs":984,"approvedPlanMs":0,"shipAndProveMs":8595,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"5f3605bb-d227-4474-bd84-6566e0d719c4"},"performance":null,"deploymentId":"forgejo-main-2bbfbaa84c76","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1974,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:18:11.367769+00:00","proof_gate":"canonical_release_dispatched","source_sha":null,"external_id":"3401","receipt_type":"automatic_mission_resume","idempotency_key":"mission:5f3605bb-d227-4474-bd84-6566e0d719c4:automatic-mission-resume:3401:canonical_release_dispatched","mission_step_id":"82a1c96e-3c52-4798-af82-6b9873b9d045","command_center_event_id":"5f3605bb-d227-4474-bd84-6566e0d719c4"},{"id":"7b4fff1c-e047-456c-9e5c-f81e049f79ba","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-5f3605bbd227","prNumber":3401,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:18:28.325849+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","external_id":"3401","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:5f3605bb-d227-4474-bd84-6566e0d719c4:merged-pr:3401:2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","mission_step_id":"82a1c96e-3c52-4798-af82-6b9873b9d045","command_center_event_id":"5f3605bb-d227-4474-bd84-6566e0d719c4"},{"id":"ebc8935c-8fb9-4d8a-914a-2b800e81fda8","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","cc-execution/runtime-proof":"success"},"mainSha":"2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof"],"sourceSha":"2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","releaseState":"verified","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"ccExecution":"success"},"requestContractHash":"0b0494d30699ea48bf21e7b16ae34a0a99028a9a309d167095213394ab9df46e","forgejoWorkflowProof":{"runId":10686,"source":"signed_push_receipt","status":"success","results":{},"conclusion":"success","targetStates":{"ccExecution":"success"},"targetJobCount":7,"observedTargetStates":{"ccExecution":"success"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","proofGate":"cc_execution_target_aware_runtime_identity_verified","deploymentId":"forgejo-main-2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","compareStatus":"target_job_success_runtime_verified","workflowRunId":10686,"identitySource":"canonical_release_target_job","runtimeVersion":"1.58.211-source-role-classification","workflowFailed":false,"containsSourceSha":true},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:19:41.879407+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","external_id":"forgejo-main-2bbfbaa84c76","receipt_type":"canonical_release_status","idempotency_key":"mission:5f3605bb-d227-4474-bd84-6566e0d719c4:forgejo-release-status:2bbfbaa84c76bbc4625a814c1445f06c2b7941a1:verified:forgejo-main/source=success|forgejo-release/workflow=success|cc-execution/runtime-proof=success","mission_step_id":"830c7d75-9ca9-4518-acc9-1c36b49c8b0c","command_center_event_id":"5f3605bb-d227-4474-bd84-6566e0d719c4"},{"id":"405d5b0d-0eb1-4840-ae4b-bc71f1aac529","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-28af7fa0fd8a","prNumber":4070,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"5c3db564ef99d9889ce507b5df9c24c5da721e7f","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T01:30:29.367032+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"5c3db564ef99d9889ce507b5df9c24c5da721e7f","external_id":"4070","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:28af7fa0-fd8a-4404-b45b-6081b520a294:merged-pr:4070:5c3db564ef99d9889ce507b5df9c24c5da721e7f","mission_step_id":"7f8feaaf-b90c-4d73-9ff9-28e40ecef83f","command_center_event_id":"28af7fa0-fd8a-4404-b45b-6081b520a294"},{"id":"aa619448-cc75-44e5-9937-5b77e4f90d61","source":"cc-execution","status":"verified","payload":{"ownerWaitSloMs":{"merge_to_live_ms":null,"owner_action_to_pr_ms":null,"green_gate_to_merge_ms":null,"owner_action_to_useful_response_ms":null},"ownerWaitLiveAt":"2026-09-29T02:30:06.139Z"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T02:17:35.29691+00:00","proof_gate":"owner_wait_live_milestone_recorded","source_sha":null,"external_id":null,"receipt_type":"owner_wait_live_milestone","idempotency_key":"mission:b5ecb59b-331d-4157-8c98-ead58048fd7c:owner-wait-live","mission_step_id":"6f970439-427c-4820-bff0-5cf19b3a1712","command_center_event_id":"b5ecb59b-331d-4157-8c98-ead58048fd7c"},{"id":"375366db-92db-4b4b-a214-1198bf25049d","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-e3478acfa504","writes":[],"patches":[],"pr_body":"<!-- knocklaunch:auto-progress -->\n\nFresh delivery from the preserved decruft branch with resumed-PR lifecycle safety.","version":1,"approved":true,"pr_title":"Finish Forgejo authority decruft and resumed-PR lifecycle safety","missionId":"57ebcdf7-7caa-434f-83ca-cf7c3815d6bf","objective":"Fresh delivery from the preserved repository-authority decruft branch after PR #4073 was terminal-mission parked. Recover the unique orphan branch with its complete 142-path preserved scope against protected main 0eff641fb3b2ab7ba8a55b650bd7154d744ff19c, add only resumed-PR lifecycle safety plus its regression test and version bump, arm the fresh PR for canonical auto-progress, then Gate, squash merge, release affected owners, and verify live.","sourceSha":"0eff641fb3b2ab7ba8a55b650bd7154d744ff19c","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":[".forgejo/workflows/knocklaunch.yml",".github/dependabot.yml",".github/pull_request_template.md",".github/workflows/canonical-pull-request-gate.yml",".github/workflows/cc-deploy-edge-function.yml",".github/workflows/cc-execution-worker-deploy.yml",".github/workflows/cc-read-proxy-deploy.yml",".github/workflows/cloudflare-worker-rollback.yml",".github/workflows/onrunner-service-release.yml",".github/workflows/operator-reliability-canary.yml",".github/workflows/paul-sentinel-release.yml",".github/workflows/production-release-conductor.yml",".github/workflows/supabase-migration-deploy.yml","config/control-plane-capabilities.json","config/onrunner-canary-trigger.json","docs/gpt-actions/COMMAND_CENTER_GPT_ACTION_UI_SETUP.md","docs/gpt-actions/COMMAND_CENTER_READONLY_ACTION_SETUP.md","docs/gpt-actions/COMMAND_CENTER_READ_PROXY_SETUP.md","docs/gpt-actions/KNOCKLAUNCH_AI_CONNECTION.md","docs/gpt-actions/KNOCKLAUNCH_DEPLOYMENT_SYSTEM.md","docs/gpt-actions/autonomous-release-canary.md","docs/gpt-actions/autonomous-release-proof-2.md","docs/gpt-actions/autonomy-control-plane-repair-lane.md","docs/gpt-actions/branch-cleanup-audit-phase1-20260710.md","docs/gpt-actions/canonical_delivery_canary_20260718.json","docs/gpt-actions/canonical_web_preflight_20260712.mjs","docs/gpt-actions/cc-execution-cloudflare-deployments.openapi.yaml","docs/gpt-actions/cc-execution-frontend-lanes-exposure-attempt-20260710.md","docs/gpt-actions/cc-execution-frontend-lanes-patcher-20260710.md","docs/gpt-actions/cc-execution-lane-status-20260710.md","docs/gpt-actions/cc-execution-merge-queue.openapi.yaml","docs/gpt-actions/cc-execution.openapi.yaml","docs/gpt-actions/cc-operator-live-only.openapi.yaml","docs/gpt-actions/cc-tools-function-state-snippets-20260710.md","docs/gpt-actions/cc-tools-redeploy-touch-trigger-20260710.md","docs/gpt-actions/cc-tools-worker-state-patch-trigger-20260710.md","docs/gpt-actions/ccdeploy-supabase-automation.openapi.json","docs/gpt-actions/command-center-autonomous-control-plane-status.md","docs/gpt-actions/command-center-cloudflare-worker-inventory-report-20260710.md","docs/gpt-actions/command-center-cloudflare-worker-inventory.openapi.json","docs/gpt-actions/command-center-event-cleanup.openapi.json","docs/gpt-actions/command-center-pr-inventory.openapi.json","docs/gpt-actions/command-center-readonly.openapi.json","docs/gpt-actions/command-center-response-protocol.md","docs/gpt-actions/command-center-sql-ops.openapi.json","docs/gpt-actions/command-center-visual-witness.openapi.json","docs/gpt-actions/deprecate-broken-frontend-production-deploy-20260710.md","docs/gpt-actions/deprecate-select-tenant-branding-prebuild-20260710.md","docs/gpt-actions/fix_visible_auth_deploy_guard_20260710.py","docs/gpt-actions/frontend-deploy-guard-changed-files-20260710.md","docs/gpt-actions/frontend-deploy-guard-fix-20260710.md","docs/gpt-actions/frontend-deploy-lane-guard-20260710.md","docs/gpt-actions/frontend-emergency-lane-deprecation-20260710.md","docs/gpt-actions/frontend-production-stabilization-20260710.md","docs/gpt-actions/frontend-stabilization-state-20260710.md","docs/gpt-actions/frontend-stable-visual-containment-guard-hardening-20260710.md","docs/gpt-actions/knocklaunch-ai-connection.json","docs/gpt-actions/knocklaunch-concierge-action.openapi.json","docs/gpt-actions/patch_auth_background_tenant_logos_20260710.py","docs/gpt-actions/patch_premium_login_visuals_20260710.py","docs/gpt-actions/patch_select_tenant_visual_repair_20260710.py","docs/gpt-actions/platform-cleanup-ledger-20260710.md","docs/gpt-actions/restore_select_tenant_branding.mjs","docs/gpt-actions/run_canonical_web_production_20260710.mjs","docs/gpt-actions/runtime-receipts/cc-execution-system-restore-point-2026-07-14.json","docs/gpt-actions/runtime-receipts/cc-execution-system-restore-point-2026-07-14.md","docs/gpt-actions/runtime-receipts/command-center-golden-restore-point-20260723.md","docs/gpt-actions/runtime-receipts/knocklaunch-operational-restore-point-2026-07-18.json","docs/gpt-actions/runtime-receipts/knocklaunch-operational-restore-point-2026-07-18.md","docs/gpt-actions/stabilization-cache-kill-branding-lane-20260710.md","docs/gpt-actions/stabilization-frontend-branding-lanes-20260710.md","docs/gpt-actions/stabilization-global-safe-background-deploy-20260710.md","docs/gpt-actions/stabilization-remaining-blockers-20260710.md","docs/gpt-actions/supabase-automation.openapi.json","docs/gpt-actions/supabase-command-center-combined.openapi.json","docs/gpt-actions/trigger-auth-background-tenant-logos-20260710.txt","docs/gpt-actions/trigger-canonical-web-production-v2.txt","docs/gpt-actions/trigger-cc-execution-visual-witness-lanes-20260710.txt","docs/gpt-actions/trigger-cc-execution-web-lanes-patch-20260710.txt","docs/gpt-actions/trigger-fix-visible-auth-deploy-guard-20260710.txt","docs/gpt-actions/trigger-frontend-canonical-dispatch.txt","docs/gpt-actions/trigger-premium-login-visuals-20260710.txt","docs/gpt-actions/trigger-select-tenant-visual-repair-20260710.txt","docs/gpt-actions/trigger-source-fix-space-background-20260710.txt","docs/gpt-actions/ui-review-command-center-action.openapi.json","docs/gpt-actions/validator-external-worker-patch-trigger-20260710.md","docs/gpt-actions/workflow-cleanup-phase1-20260710.md","public/gpt-actions/cc-execution-cloudflare-deployments.openapi.yaml","public/gpt-actions/cc-execution-frontend-source.openapi.json","public/gpt-actions/cc-execution-github-actions-run-inspector.openapi.json","public/gpt-actions/cc-execution.openapi.json","public/gpt-actions/cc-execution.openapi.yaml","public/gpt-actions/cc-operator.openapi.yaml","public/gpt-actions/ccdeploy-supabase-automation.openapi.json","public/gpt-actions/command-center-pr-inventory.openapi.json","public/gpt-actions/supabase-automation.openapi.json","scripts/production-release-targets.json","scripts/release-event-native-plan.test.mjs","scripts/release-target-ownership.mjs","scripts/release-target-ownership.test.mjs","scripts/resolve-autonomous-change-plan.mjs","scripts/validate-release-architecture.mjs","scripts/visual-witness-hosted-runner/Dockerfile","scripts/visual-witness-hosted-runner/RELEASE_TRIGGER.md","scripts/visual-witness-hosted-runner/src/__tests__/mission-supervisor.test.mjs","scripts/visual-witness-hosted-runner/src/mission-gateway.mjs","scripts/visual-witness-hosted-runner/src/universal-witness.mjs","scripts/visual-witness-hosted-runner/test/interaction-headless-launch.contract.test.mjs","scripts/visual-witness-hosted-runner/test/mission-supervisor-durability.test.mjs","scripts/visual-witness-hosted-runner/test/supervisor-active-progress-projection.test.mjs","src/__tests__/contracts/cc-execution-onrunner-deploy-lane.contract.test.ts","src/__tests__/contracts/render-onrunner-deploy-lane.test.ts","src/__tests__/contracts/render-onrunner-entrypoint-dispatch.test.ts","src/__tests__/contracts/render-onrunner-runtime-verifier.test.ts","src/config/platformCapabilityMatrix.ts","src/pages/admin/AdminCloudflareOps.tsx","src/pages/admin/GptJsonConsole.tsx","src/pages/godmode/components/RestorePointCard.tsx","supabase/functions/cloudflare-ops/index.ts","supabase/functions/command-center-autopilot/missionLedger.ts","supabase/functions/command-center-autopilot/missionSupervisor.ts","workers/cc-execution/src/command-center-contracts.js","workers/cc-execution/src/entrypoint-routed.js","workers/cc-execution/src/index-autonomous-release.js","workers/cc-execution/src/index-canonical-edge-deploy.js","workers/cc-execution/src/index-controlled-deploy-gate.js","workers/cc-execution/src/index-mcp.js","workers/cc-execution/src/index-merge-queue-openapi.js","workers/cc-execution/src/index-minimal-ship-pr.js","workers/cc-execution/src/index-mission-control.js","workers/cc-execution/src/index-runtime-verify-gate.js","workers/cc-execution/src/mission-ledger.js","workers/cc-execution/src/release-target-ownership.js","workers/cc-execution/src/version.js","workers/cc-execution/test/capability-release-reconciliation.test.js","workers/cc-execution/test/release-orchestration-invariants.test.js","workers/cc-execution/test/visual-witness-lane-affinity.test.js","workers/cc-execution/test/visual-witness-runner-env-threading.test.js","workers/cc-read-proxy/src/ownerDefaultWorker.ts","workers/cc-read-proxy/src/worker.ts","wrangler.cc-read-proxy.toml","config/capabilities/knocklaunch-console.json"],"workstreamKey":"repo-decruft-fullscope-0eff641fb3b2","anchored_edits":[{"path":"workers/cc-execution/src/entrypoint-owner-status.js","edits":[{"new_content":"  return {\n    park: true,\n    reason: \"terminal_mission_pr_should_park\",\n    missionId: String(mission?.missionId || mission?.id || \"\").trim() || null,\n    missionStatus: missionStatus || \"terminal\",\n    prNumber,\n    branch,\n  };\n}\n\nexport function terminalMissionByLatestPrMission(missionItems = []) {\n  const latestMissionByPr = new Map();\n  for (const mission of Array.isArray(missionItems) ? missionItems : []) {\n    const prNumber = Number(mission?.prNumber || 0) || null;\n    if (!prNumber || latestMissionByPr.has(prNumber)) continue;\n    latestMissionByPr.set(prNumber, mission);\n  }\n  const terminalMissionByPr = new Map();\n  for (const [prNumber, mission] of latestMissionByPr.entries()) {\n    const status = String(mission?.status || \"\").trim().toLowerCase();\n    const terminal = mission?.terminal === true || TERMINAL_MISSION_QUEUE_STATES.has(status);\n    if (terminal) terminalMissionByPr.set(prNumber, mission);\n  }\n  return terminalMissionByPr;\n}\n\nfunction forgejoContentPath(path) {","old_content":"  return {\n    park: true,\n    reason: \"terminal_mission_pr_should_park\",\n    missionId: String(mission?.missionId || mission?.id || \"\").trim() || null,\n    missionStatus: missionStatus || \"terminal\",\n    prNumber,\n    branch,\n  };\n}\n\nfunction forgejoContentPath(path) {"},{"new_content":"  const missionItems = missionIndex?.ok && Array.isArray(missionIndex.data?.items) ? missionIndex.data.items : [];\n  const terminalMissionByPr = terminalMissionByLatestPrMission(missionItems);","old_content":"  const missionItems = missionIndex?.ok && Array.isArray(missionIndex.data?.items) ? missionIndex.data.items : [];\n  const terminalMissionByPr = new Map();\n  for (const mission of missionItems) {\n    const prNumber = Number(mission?.prNumber || 0) || null;\n    const status = String(mission?.status || \"\").trim().toLowerCase();\n    const terminal = mission?.terminal === true || TERMINAL_MISSION_QUEUE_STATES.has(status);\n    if (prNumber && terminal && !terminalMissionByPr.has(prNumber)) terminalMissionByPr.set(prNumber, mission);\n  }"}]},{"path":"workers/cc-execution/test/release-orchestration-invariants.test.js","edits":[{"new_content":"import { deterministicGateHeadDecision, terminalMissionByLatestPrMission, zombieGateRecoveryDecision } from \"../src/entrypoint-owner-status.js\";","old_content":"import { deterministicGateHeadDecision, zombieGateRecoveryDecision } from \"../src/entrypoint-owner-status.js\";"},{"new_content":"test(\"deterministic Gate quarantine is bound to the exact PR head\", () => {\n  const first = deterministicGateHeadDecision({ prNumber: 4040, headSha: SOURCE_SHA, failureClass: \"code_validation\" });\n  const changed = deterministicGateHeadDecision({ prNumber: 4040, headSha: COMMIT_SHA, failureClass: \"code_validation\" });\n  assert.equal(first.quarantine, true);\n  assert.equal(first.sourceChangeRequired, true);\n  assert.notEqual(first.quarantineKey, changed.quarantineKey);\n  assert.equal(deterministicGateHeadDecision({ prNumber: 4040, headSha: SOURCE_SHA, failureClass: \"infrastructure_transient\" }).quarantine, false);\n});\n\ntest(\"newer resumed mission supersedes older terminal mission for the same PR\", () => {\n  const terminal = terminalMissionByLatestPrMission([\n    { missionId: \"resumed\", prNumber: 4073, status: \"running\", terminal: false },\n    { missionId: \"cancelled\", prNumber: 4073, status: \"cancelled\", terminal: true },\n    { missionId: \"terminal-only\", prNumber: 4040, status: \"blocked\", terminal: true },\n  ]);\n  assert.equal(terminal.has(4073), false);\n  assert.equal(terminal.get(4040)?.missionId, \"terminal-only\");\n});\n\ntest(\"blocked PR backlog stays separate from runnable Gate work\", () => {","old_content":"test(\"deterministic Gate quarantine is bound to the exact PR head\", () => {\n  const first = deterministicGateHeadDecision({ prNumber: 4040, headSha: SOURCE_SHA, failureClass: \"code_validation\" });\n  const changed = deterministicGateHeadDecision({ prNumber: 4040, headSha: COMMIT_SHA, failureClass: \"code_validation\" });\n  assert.equal(first.quarantine, true);\n  assert.equal(first.sourceChangeRequired, true);\n  assert.notEqual(first.quarantineKey, changed.quarantineKey);\n  assert.equal(deterministicGateHeadDecision({ prNumber: 4040, headSha: SOURCE_SHA, failureClass: \"infrastructure_transient\" }).quarantine, false);\n});\n\ntest(\"blocked PR backlog stays separate from runnable Gate work\", () => {"}]},{"path":"workers/cc-execution/src/version.js","edits":[{"new_content":"// Release marker: Forgejo is the canonical repository and self-hosted Actions control plane.\nexport const CC_EXECUTION_VERSION = \"1.63.2-resumed-pr-delivery-safe\";","old_content":"// Release marker: Forgejo is the canonical repository and self-hosted Actions control plane.\nexport const CC_EXECUTION_VERSION = \"1.63.1-forgejo-authority-decruft\";"}]}],"implementation":{"files":[],"writes":[]},"updateStrategy":"push_to_branch","requestContract":{"source":"explicit","version":1,"outcomes":[{"id":"o1","statement":"Preserved decruft source is delivered through one fresh PR and resumed PRs are no longer poisoned by older terminal missions.","proofConditionIds":["p1"]}],"objective":"Fresh delivery from the preserved repository-authority decruft branch after PR #4073 was terminal-mission parked. Recover the unique orphan branch with its complete 142-path preserved scope against protected main 0eff641fb3b2ab7ba8a55b650bd7154d744ff19c, add only resumed-PR lifecycle safety plus its regression test and version bump, arm the fresh PR for canonical auto-progress, then Gate, squash merge, release affected owners, and verify live.","constraints":[{"id":"c1","statement":"Recover ai/objective-first-repair-e3478acfa504; do not create another branch.","proofConditionIds":["p1"]},{"id":"c2","statement":"Preserve all 142 orphan-branch changed paths.","proofConditionIds":["p1"]},{"id":"c3","statement":"Modify only the three anchored lifecycle-fix files beyond preserved source.","proofConditionIds":["p1"]},{"id":"c4","statement":"Fresh PR must be armed with knocklaunch:auto-progress.","proofConditionIds":["p1"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"p1","kind":"runtime","claim":"Fresh PR passes Gate, squash merges, affected production releases succeed, and live cc-execution reports 1.63.2-resumed-pr-delivery-safe.","route":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}]},"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":null,"ownerApproved":true,"releaseIntent":null,"sourceTargets":[".forgejo/workflows/knocklaunch.yml",".github/dependabot.yml",".github/pull_request_template.md",".github/workflows/canonical-pull-request-gate.yml",".github/workflows/cc-deploy-edge-function.yml",".github/workflows/cc-execution-worker-deploy.yml",".github/workflows/cc-read-proxy-deploy.yml",".github/workflows/cloudflare-worker-rollback.yml",".github/workflows/onrunner-service-release.yml",".github/workflows/operator-reliability-canary.yml",".github/workflows/paul-sentinel-release.yml",".github/workflows/production-release-conductor.yml",".github/workflows/supabase-migration-deploy.yml","config/control-plane-capabilities.json","config/onrunner-canary-trigger.json","docs/gpt-actions/COMMAND_CENTER_GPT_ACTION_UI_SETUP.md","docs/gpt-actions/COMMAND_CENTER_READONLY_ACTION_SETUP.md","docs/gpt-actions/COMMAND_CENTER_READ_PROXY_SETUP.md","docs/gpt-actions/KNOCKLAUNCH_AI_CONNECTION.md","docs/gpt-actions/KNOCKLAUNCH_DEPLOYMENT_SYSTEM.md","docs/gpt-actions/autonomous-release-canary.md","docs/gpt-actions/autonomous-release-proof-2.md","docs/gpt-actions/autonomy-control-plane-repair-lane.md","docs/gpt-actions/branch-cleanup-audit-phase1-20260710.md","docs/gpt-actions/canonical_delivery_canary_20260718.json","docs/gpt-actions/canonical_web_preflight_20260712.mjs","docs/gpt-actions/cc-execution-cloudflare-deployments.openapi.yaml","docs/gpt-actions/cc-execution-frontend-lanes-exposure-attempt-20260710.md","docs/gpt-actions/cc-execution-frontend-lanes-patcher-20260710.md","docs/gpt-actions/cc-execution-lane-status-20260710.md","docs/gpt-actions/cc-execution-merge-queue.openapi.yaml","docs/gpt-actions/cc-execution.openapi.yaml","docs/gpt-actions/cc-operator-live-only.openapi.yaml","docs/gpt-actions/cc-tools-function-state-snippets-20260710.md","docs/gpt-actions/cc-tools-redeploy-touch-trigger-20260710.md","docs/gpt-actions/cc-tools-worker-state-patch-trigger-20260710.md","docs/gpt-actions/ccdeploy-supabase-automation.openapi.json","docs/gpt-actions/command-center-autonomous-control-plane-status.md","docs/gpt-actions/command-center-cloudflare-worker-inventory-report-20260710.md","docs/gpt-actions/command-center-cloudflare-worker-inventory.openapi.json"],"requestContract":{"source":"explicit","version":1,"outcomes":[{"id":"o1","statement":"Preserved decruft source is delivered through one fresh PR and resumed PRs are no longer poisoned by older terminal missions.","proofConditionIds":["p1"]}],"objective":"Fresh delivery from the preserved repository-authority decruft branch after PR #4073 was terminal-mission parked. Recover the unique orphan branch with its complete 142-path preserved scope against protected main 0eff641fb3b2ab7ba8a55b650bd7154d744ff19c, add only resumed-PR lifecycle safety plus its regression test and version bump, arm the fresh PR for canonical auto-progress, then Gate, squash merge, release affected owners, and verify live.","constraints":[{"id":"c1","statement":"Recover ai/objective-first-repair-e3478acfa504; do not create another branch.","proofConditionIds":["p1"]},{"id":"c2","statement":"Preserve all 142 orphan-branch changed paths.","proofConditionIds":["p1"]},{"id":"c3","statement":"Modify only the three anchored lifecycle-fix files beyond preserved source.","proofConditionIds":["p1"]},{"id":"c4","statement":"Fresh PR must be armed with knocklaunch:auto-progress.","proofConditionIds":["p1"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"p1","kind":"runtime","claim":"Fresh PR passes Gate, squash merges, affected production releases succeed, and live cc-execution reports 1.63.2-resumed-pr-delivery-safe.","route":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}]},"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":["workers/cc-execution/src/entrypoint-owner-status.js","workers/cc-execution/test/release-orchestration-invariants.test.js","workers/cc-execution/src/version.js"],"controlPlaneMaintenanceReason":"Owner-authorized full-scope unique-orphan decruft recovery plus resumed-PR lifecycle safety."},"proofRequirements":null,"controlPlaneUnfreeze":true,"durableMutationResume":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":["workers/cc-execution/src/entrypoint-owner-status.js","workers/cc-execution/test/release-orchestration-invariants.test.js","workers/cc-execution/src/version.js"],"recover_orphan_unique_branch":true,"controlPlaneMaintenanceReason":"Owner-authorized full-scope unique-orphan decruft recovery plus resumed-PR lifecycle safety."},"recovery":false,"fingerprint":"7a112d8054f4951c5fcba2063a121f5273c8c441c3390a05ab8034140fd67795","replayCount":0,"serializedBytes":20964},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T03:09:39.264245+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:57ebcdf7-7caa-434f-83ca-cf7c3815d6bf:repository-mutation-intent:7a112d8054f4951c5fcba2063a121f5273c8c441c3390a05ab8034140fd67795:0","mission_step_id":"86eb64e4-87b8-4baa-af03-dfc7fa462952","command_center_event_id":"57ebcdf7-7caa-434f-83ca-cf7c3815d6bf"},{"id":"e418311e-adeb-4455-9f67-dd8e5bee918d","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","cc-execution/runtime-proof":"pending"},"mainSha":"2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","missing":[],"pending":["forgejo-release/workflow","cc-execution/runtime-proof"],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof"],"sourceSha":"2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"ccExecution":"pending"},"requestContractHash":"0b0494d30699ea48bf21e7b16ae34a0a99028a9a309d167095213394ab9df46e","forgejoWorkflowProof":{"runId":10686,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"ccExecution":"pending"},"targetJobCount":7,"observedTargetStates":{"ccExecution":"pending"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"0db554b55ece0c08c38e67133572fcf188871e7a","deploymentId":"forgejo-main-0db554b55ece0c08c38e67133572fcf188871e7a","compareStatus":null,"identitySource":"local_build_metadata","runtimeVersion":"1.58.210-platform-source-resolution","containsSourceSha":false},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:18:15.078324+00:00","proof_gate":"canonical_release_pending","source_sha":"2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","external_id":"forgejo-main-2bbfbaa84c76","receipt_type":"canonical_release_status","idempotency_key":"mission:5f3605bb-d227-4474-bd84-6566e0d719c4:forgejo-release-status:2bbfbaa84c76bbc4625a814c1445f06c2b7941a1:pending:forgejo-main/source=success|forgejo-release/workflow=pending|cc-execution/runtime-proof=pending","mission_step_id":"82a1c96e-3c52-4798-af82-6b9873b9d045","command_center_event_id":"5f3605bb-d227-4474-bd84-6566e0d719c4"},{"id":"ec0d9841-24f3-4b8c-9f3f-35e908879fce","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-classification","satisfied":true,"statement":"Broad platform intent returns a small mutationOwnerTargets set separately from validationCompanionTargets; tests/config/policy witnesses are not mutation owners merely because they match intent.","proofConditionIds":["proof-runtime"]}],"satisfied":true,"constraints":[{"id":"preserve-safety","satisfied":true,"statement":"Preserve fail-closed source resolution and backwards-compatible sourceTargets union; mutation synthesis must prefer authoritative mutation owners.","proofConditionIds":["proof-runtime"]},{"id":"capability-completeness","satisfied":true,"statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["proof-runtime"]},{"id":"atomic-capability-lifecycle","satisfied":true,"statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["proof-runtime"]}],"contractHash":"0b0494d30699ea48bf21e7b16ae34a0a99028a9a309d167095213394ab9df46e","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"proof-runtime","kind":"runtime","evidence":{"reason":null,"satisfied":true,"releaseState":"verified","missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{"ccExecution":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["ccExecution"],"allowedReleaseTargets":["ccExecution"],"requiredReleaseTargets":["ccExecution"],"migrationReleaseVerified":null,"releaseRequestContractHash":"0b0494d30699ea48bf21e7b16ae34a0a99028a9a309d167095213394ab9df46e"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["ccExecution"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:19:43.256964+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:5f3605bb-d227-4474-bd84-6566e0d719c4:request-contract:0b0494d30699ea48bf21e7b16ae34a0a99028a9a309d167095213394ab9df46e:2bbfbaa84c76bbc4625a814c1445f06c2b7941a1:verified:","mission_step_id":"830c7d75-9ca9-4518-acc9-1c36b49c8b0c","command_center_event_id":"5f3605bb-d227-4474-bd84-6566e0d719c4"},{"id":"fa2f146f-f212-4af1-b031-8c9e3f36cf7d","source":"cc-execution","status":"source_resolution_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-64887c216ac0","reason":null,"status":"source_resolution_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.211-source-role-classification","prNumber":null,"terminal":false,"missionId":"64887c21-6ac0-4d97-8c93-ab164575f540","operation":"execute_mission","proofGate":"repair_mission_source_resolution_required","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":162,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":477,"providerAuthMs":0,"ledgerPrepareMs":477,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":477,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":477,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Resolve bounded authoritative Forgejo source targets, then call /mission/execute again with this same missionId and exact files or anchored_edits. Do not switch workflows.","receiptRef":{"mode":"full","missionId":"64887c21-6ac0-4d97-8c93-ab164575f540"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":2748,"likelyAffectedFiles":[],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:21:55.038783+00:00","proof_gate":"repair_mission_source_resolution_required","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:64887c21-6ac0-4d97-8c93-ab164575f540:execute_mission:repair_mission_source_resolution_required:current-generation","mission_step_id":"970b86ac-a995-42cd-9a4d-89cadd085ef0","command_center_event_id":"64887c21-6ac0-4d97-8c93-ab164575f540"},{"id":"205b7395-e0ec-4d7d-b466-ff85ca2ab06a","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-64887c216ac0","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.211-source-role-classification","prNumber":null,"terminal":false,"missionId":"64887c21-6ac0-4d97-8c93-ab164575f540","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":6,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":264,"providerAuthMs":0,"ledgerPrepareMs":264,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":264,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":264,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Inspect the bounded repository paths, synthesize exact files or anchored_edits, and call /mission/execute again automatically with this same missionId without another owner prompt or workflow switch.","receiptRef":{"mode":"full","missionId":"64887c21-6ac0-4d97-8c93-ab164575f540"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3509,"likelyAffectedFiles":["workers/cc-execution/src/index-scoped-repo-patch.js","workers/cc-execution/src/version.js"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:22:04.59136+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:64887c21-6ac0-4d97-8c93-ab164575f540:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"970b86ac-a995-42cd-9a4d-89cadd085ef0","command_center_event_id":"64887c21-6ac0-4d97-8c93-ab164575f540"},{"id":"2b14d229-3c8e-449f-8b71-47274852060c","source":"cc-execution","status":"authorized","payload":{"paths":["workers/cc-execution/src/index-scoped-repo-patch.js","workers/cc-execution/src/version.js"],"reason":"Correct the deterministic syntax defect in the already-authorized latency hardening PR while preserving the exact intended parallel-read behavior and all existing mutation/release safety semantics.","baseSha":"2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","issuedAt":1790047417250,"expiresAt":1790047597250,"missionId":"64887c21-6ac0-4d97-8c93-ab164575f540","authorizationId":"e73da04f-b337-4912-825f-edc1e48a34b2","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:23:37.575164+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:e73da04f-b337-4912-825f-edc1e48a34b2","mission_step_id":"970b86ac-a995-42cd-9a4d-89cadd085ef0","command_center_event_id":"64887c21-6ac0-4d97-8c93-ab164575f540"},{"id":"425ac073-2068-4ea0-a950-93840b3d336a","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-f5d0dd500891","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":null,"recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.281-witness-lane-affinity","prNumber":null,"terminal":false,"missionId":"f5d0dd50-0891-4b75-8b77-9cb2ec694962","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1259,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":446,"providerAuthMs":0,"ledgerPrepareMs":446,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":446,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":446,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Inspect the bounded repository paths, synthesize exact files or anchored_edits, and call /mission/execute again automatically with this same missionId without another owner prompt or workflow switch.","receiptRef":{"mode":"full","missionId":"f5d0dd50-0891-4b75-8b77-9cb2ec694962"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":4023,"likelyAffectedFiles":["src/pages/mobile-vendor/BigPapisOwnerShell.tsx","src/pages/mobile-vendor/BigPapisToday.tsx","src/pages/mobile-vendor/BigPapisEventsHub.tsx","src/pages/mobile-vendor/BigPapisEventDay.tsx"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T14:01:05.479776+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:f5d0dd50-0891-4b75-8b77-9cb2ec694962:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"28bef4f8-2f12-4700-b634-23c8a0ac9896","command_center_event_id":"f5d0dd50-0891-4b75-8b77-9cb2ec694962"},{"id":"3952b5dd-398a-433d-91a7-2ce49b05f095","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-64887c216ac0","reason":"pull_request_checks_failed","status":"retryable","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3402,"terminal":false,"missionId":"64887c21-6ac0-4d97-8c93-ab164575f540","operation":"automatic_mission_resume","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"prReadinessMs":740,"approvedPlanMs":0,"shipAndProveMs":0,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"64887c21-6ac0-4d97-8c93-ab164575f540"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1359,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:22:37.855063+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"3402","receipt_type":"automatic_mission_resume","idempotency_key":"mission:64887c21-6ac0-4d97-8c93-ab164575f540:automatic-mission-resume:3402:repair_mission_pr_ready_retryable","mission_step_id":"cb483c76-f62f-47af-8456-6c82d2d9560a","command_center_event_id":"64887c21-6ac0-4d97-8c93-ab164575f540"},{"id":"76ae00e5-ff1a-4453-8c97-62fe61a2be83","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[{"path":"scripts/visual-witness-hosted-runner/test/route-diagnostic-contract.test.mjs","content":"import test from 'node:test';\nimport assert from 'node:assert/strict';\nimport { classifyRouteDiagnostic } from '../src/route-diagnostic-contract.mjs';\n\nconst appOrigin = 'https://app.knocklaunch.app';\nconst projectionSnapshot = {\n  projectionInvariantFailures: [],\n};\n\ntest('direct /select-tenant inspection is not a tenant selector escape', () => {\n  const result = classifyRouteDiagnostic({\n    requestedRoute: '/select-tenant',\n    finalUrl: 'https://app.knocklaunch.app/select-tenant',\n    appOrigin,\n    projectionSnapshot,\n  });\n  assert.equal(result, null);\n});\n\ntest('private route redirected to /select-tenant remains a tenant selector escape', () => {\n  const result = classifyRouteDiagnostic({\n    requestedRoute: '/big-papis/owner',\n    finalUrl: 'https://app.knocklaunch.app/select-tenant',\n    appOrigin,\n    projectionSnapshot,\n  });\n  assert.equal(result?.code, 'tenant_selector_escape');\n  assert.equal(result?.likelyOwningLayer, 'tenant_selection_guard');\n});\n\ntest('selector next contract remains tenant active context missing', () => {\n  const result = classifyRouteDiagnostic({\n    requestedRoute: '/big-papis/owner',\n    finalUrl: 'https://app.knocklaunch.app/select-tenant?next=%2Fbig-papis%2Fowner',\n    appOrigin,\n    projectionSnapshot,\n  });\n  assert.equal(result?.code, 'tenant_active_context_missing');\n});\n"}],"branch":"ai/objective-first-repair-e0cf6a8a969a","writes":[],"patches":[],"version":1,"approved":true,"missionId":"e0cf6a8a-969a-45bd-9bf1-a35f2d3cc564","objective":"Fix the Visual Witness tenant_selector_escape false positive proven by live PAUL inspection. In route-diagnostic-contract.mjs, a final pathname of /select-tenant is currently classified as tenant_selector_escape even when the requested route is exactly /select-tenant. Change the selector-escape diagnostic so /select-tenant is only considered an escape when the requested pathname is not /select-tenant. Preserve existing next/workspace selector diagnostics for genuine redirects into the selector. Add focused hosted-runner regression tests proving direct /select-tenant is clean while a private route redirected to /select-tenant still reports tenant_selector_escape. Do not change application routing, tenant selection behavior, PAUL architecture, or unrelated witness rules.","sourceSha":"ac45cf27721df31df37ecedcc73af3413bfa33e7","repository":"noel/KnockLaunchOS","visualProof":false,"autoProgress":true,"verifyVisual":false,"ownerApproved":true,"releaseIntent":null,"sourceTargets":["scripts/visual-witness-hosted-runner/src/route-diagnostic-contract.mjs","scripts/visual-witness-hosted-runner/test/route-diagnostic-contract.test.mjs"],"anchored_edits":[{"path":"scripts/visual-witness-hosted-runner/src/route-diagnostic-contract.mjs","edits":[{"new_content":"  if (requested.pathname !== '/select-tenant' && !sameTenantCanonicalRedirect && final.pathname === '/select-tenant') {","old_content":"  if (!sameTenantCanonicalRedirect && final.pathname === '/select-tenant') {"}]}],"implementation":{"files":[],"writes":[]},"requestContract":{"valid":true,"intent":{"evidence":["live PAUL job 33eff1b8-9759-459e-a651-ee42611bd856 requested /select-tenant and ended at /select-tenant with projection invariants true","route-diagnostic-contract.mjs currently classifies any final /select-tenant as tenant_selector_escape unless sameTenantCanonicalRedirect"],"confidence":1,"rawUtterance":"Fix the Visual Witness tenant_selector_escape false positive proven by live PAUL inspection. In route-diagnostic-contract.mjs, a final pathname of /select-tenant is currently classified as tenant_selector_escape even when the requested route is exactly /select-tenant. Change the selector-escape diagnostic so /select-tenant is only considered an escape when the requested pathname is not /select-tenant. Preserve existing next/workspace selector diagnostics for genuine redirects into the selector. Add focused hosted-runner regression tests proving direct /select-tenant is clean while a private route redirected to /select-tenant still reports tenant_selector_escape. Do not change application routing, tenant selection behavior, PAUL architecture, or unrelated witness rules.","wordingChanged":false,"canonicalIntent":"Fix the Visual Witness tenant_selector_escape false positive proven by live PAUL inspection. In route-diagnostic-contract.mjs, a final pathname of /select-tenant is currently classified as tenant_selector_escape even when the requested route is exactly /select-tenant. Change the selector-escape diagnostic so /select-tenant is only considered an escape when the requested pathname is not /select-tenant. Preserve existing next/workspace selector diagnostics for genuine redirects into the selector. Add focused hosted-runner regression tests proving direct /select-tenant is clean while a private route redirected to /select-tenant still reports tenant_selector_escape. Do not change application routing, tenant selection behavior, PAUL architecture, or unrelated witness rules.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"current_request_explicit","version":1,"outcomes":[{"id":"outcome-selector-diagnostic","statement":"Direct inspection of /select-tenant no longer produces tenant_selector_escape, while genuine redirects from another private route to /select-tenant still do.","provenance":{"reason":"owner demanded completion of PAUL Hybrid witness proof","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-test","proof-paul"]}],"objective":"Fix the Visual Witness tenant_selector_escape false positive proven by live PAUL inspection. In route-diagnostic-contract.mjs, a final pathname of /select-tenant is currently classified as tenant_selector_escape even when the requested route is exactly /select-tenant. Change the selector-escape diagnostic so /select-tenant is only considered an escape when the requested pathname is not /select-tenant. Preserve existing next/workspace selector diagnostics for genuine redirects into the selector. Add focused hosted-runner regression tests proving direct /select-tenant is clean while a private route redirected to /select-tenant still reports tenant_selector_escape. Do not change application routing, tenant selection behavior, PAUL architecture, or unrelated witness rules.","constraints":[{"id":"diagnostic-only","statement":"Change only Visual Witness diagnostic classification and its focused tests; do not alter application routing or tenant selection.","provenance":{"reason":"smallest causal repair","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-test","proof-paul"]},{"id":"preserve-genuine-escape","statement":"A requested route other than /select-tenant that ends at /select-tenant without next/workspace must still report tenant_selector_escape.","provenance":{"reason":"preserve genuine defect detection","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-test"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-test","kind":"runtime","claim":"Hosted-runner tests prove direct /select-tenant is clean and genuine private-route selector escape remains classified.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false},{"id":"proof-paul","kind":"runtime","claim":"After same-source release convergence, a fresh /select-tenant inspection on runnerLane=paul terminates without tenant_selector_escape and without infrastructure replay/failover.","route":"/select-tenant","roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}],"validationErrors":[],"capabilityManifest":{"id":"visual-witness-select-tenant-direct-route-diagnostic","driftPolicy":"unexpected route diagnostic behavior blocks completion","proofLedger":"command_center_mission_ledger_request_contract_hash_bound","schemaVersion":1,"releaseTargets":["cc-execution","onrunner"],"lifecycleStates":["prepare","deploy","verify"],"activationPolicy":"focused_diagnostic_test_then_same_source_runtime_proof","dependencyDomains":["backend_runtime","release_ownership","live_production_proof"],"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_required_not_runtime_failures","compatibilityWindow":["N","N-1"],"failureIsolationPolicy":"diagnostic_change_only; existing witness lanes remain available","canaryProofConditionIds":["proof-test","proof-paul"]},"capabilityCompleteness":{"domains":["backend_runtime","release_ownership","live_production_proof"],"required":true,"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_states_not_runtime_failures"}},"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":null,"ownerApproved":true,"releaseIntent":null,"sourceTargets":["scripts/visual-witness-hosted-runner/src/route-diagnostic-contract.mjs","scripts/visual-witness-hosted-runner/test/route-diagnostic-contract.test.mjs"],"requestContract":{"valid":true,"intent":{"evidence":["live PAUL job 33eff1b8-9759-459e-a651-ee42611bd856 requested /select-tenant and ended at /select-tenant with projection invariants true","route-diagnostic-contract.mjs currently classifies any final /select-tenant as tenant_selector_escape unless sameTenantCanonicalRedirect"],"confidence":1,"rawUtterance":"Fix the Visual Witness tenant_selector_escape false positive proven by live PAUL inspection. In route-diagnostic-contract.mjs, a final pathname of /select-tenant is currently classified as tenant_selector_escape even when the requested route is exactly /select-tenant. Change the selector-escape diagnostic so /select-tenant is only considered an escape when the requested pathname is not /select-tenant. Preserve existing next/workspace selector diagnostics for genuine redirects into the selector. Add focused hosted-runner regression tests proving direct /select-tenant is clean while a private route redirected to /select-tenant still reports tenant_selector_escape. Do not change application routing, tenant selection behavior, PAUL architecture, or unrelated witness rules.","wordingChanged":false,"canonicalIntent":"Fix the Visual Witness tenant_selector_escape false positive proven by live PAUL inspection. In route-diagnostic-contract.mjs, a final pathname of /select-tenant is currently classified as tenant_selector_escape even when the requested route is exactly /select-tenant. Change the selector-escape diagnostic so /select-tenant is only considered an escape when the requested pathname is not /select-tenant. Preserve existing next/workspace selector diagnostics for genuine redirects into the selector. Add focused hosted-runner regression tests proving direct /select-tenant is clean while a private route redirected to /select-tenant still reports tenant_selector_escape. Do not change application routing, tenant selection behavior, PAUL architecture, or unrelated witness rules.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"current_request_explicit","version":1,"outcomes":[{"id":"outcome-selector-diagnostic","statement":"Direct inspection of /select-tenant no longer produces tenant_selector_escape, while genuine redirects from another private route to /select-tenant still do.","provenance":{"reason":"owner demanded completion of PAUL Hybrid witness proof","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-test","proof-paul"]}],"objective":"Fix the Visual Witness tenant_selector_escape false positive proven by live PAUL inspection. In route-diagnostic-contract.mjs, a final pathname of /select-tenant is currently classified as tenant_selector_escape even when the requested route is exactly /select-tenant. Change the selector-escape diagnostic so /select-tenant is only considered an escape when the requested pathname is not /select-tenant. Preserve existing next/workspace selector diagnostics for genuine redirects into the selector. Add focused hosted-runner regression tests proving direct /select-tenant is clean while a private route redirected to /select-tenant still reports tenant_selector_escape. Do not change application routing, tenant selection behavior, PAUL architecture, or unrelated witness rules.","constraints":[{"id":"diagnostic-only","statement":"Change only Visual Witness diagnostic classification and its focused tests; do not alter application routing or tenant selection.","provenance":{"reason":"smallest causal repair","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-test","proof-paul"]},{"id":"preserve-genuine-escape","statement":"A requested route other than /select-tenant that ends at /select-tenant without next/workspace must still report tenant_selector_escape.","provenance":{"reason":"preserve genuine defect detection","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-test"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-test","kind":"runtime","claim":"Hosted-runner tests prove direct /select-tenant is clean and genuine private-route selector escape remains classified.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false},{"id":"proof-paul","kind":"runtime","claim":"After same-source release convergence, a fresh /select-tenant inspection on runnerLane=paul terminates without tenant_selector_escape and without infrastructure replay/failover.","route":"/select-tenant","roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}],"validationErrors":[],"capabilityManifest":{"id":"visual-witness-select-tenant-direct-route-diagnostic","driftPolicy":"unexpected route diagnostic behavior blocks completion","proofLedger":"command_center_mission_ledger_request_contract_hash_bound","schemaVersion":1,"releaseTargets":["cc-execution","onrunner"],"lifecycleStates":["prepare","deploy","verify"],"activationPolicy":"focused_diagnostic_test_then_same_source_runtime_proof","dependencyDomains":["backend_runtime","release_ownership","live_production_proof"],"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_required_not_runtime_failures","compatibilityWindow":["N","N-1"],"failureIsolationPolicy":"diagnostic_change_only; existing witness lanes remain available","canaryProofConditionIds":["proof-test","proof-paul"]},"capabilityCompleteness":{"domains":["backend_runtime","release_ownership","live_production_proof"],"required":true,"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_states_not_runtime_failures"}},"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":"Owner demanded completion of PAUL Hybrid reliability; repair only the proven Visual Witness direct-selector false positive and release through canonical machinery."},"proofRequirements":null,"controlPlaneUnfreeze":true,"durableMutationResume":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":"Owner demanded completion of PAUL Hybrid reliability; repair only the proven Visual Witness direct-selector false positive and release through canonical machinery."},"recovery":false,"fingerprint":"adec7ecf5f063f3a925a54d9bf0e4d6cb817f4d8cc31e056cf453f072ee8861b","replayCount":0,"serializedBytes":16711},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T14:04:04.373151+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:e0cf6a8a-969a-45bd-9bf1-a35f2d3cc564:repository-mutation-intent:adec7ecf5f063f3a925a54d9bf0e4d6cb817f4d8cc31e056cf453f072ee8861b:0","mission_step_id":"e3a98b07-903a-406d-ac76-b720e7da47b5","command_center_event_id":"e0cf6a8a-969a-45bd-9bf1-a35f2d3cc564"},{"id":"14d88a35-be04-47fa-9b80-e5d15e25d06c","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Update the stale cc-execution invariant on the current repair generation so it requires the approved concurrent immutable planning-read shape instead of the superseded serial loop.","wordingChanged":false,"canonicalIntent":"Update the stale cc-execution invariant on the current repair generation so it requires the approved concurrent immutable planning-read shape instead of the superseded serial loop.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"test","statement":"Invariant requires concurrent Promise.all planning reads and rejects the serial loop.","proofConditionIds":["live"]}],"objective":"Update the stale cc-execution invariant on the current repair generation so it requires the approved concurrent immutable planning-read shape instead of the superseded serial loop.","constraints":[{"id":"safe","statement":"Test-only correction; runtime behavior and release semantics remain unchanged.","proofConditionIds":["live"]},{"id":"capability-completeness","statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["live"]},{"id":"atomic-capability-lifecycle","statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["live"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"live","kind":"runtime","claim":"Released cc-execution runtime passes the updated invariant suite and contains concurrent immutable planning reads.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":["ccExecution"],"requiredReleaseTargets":["ccExecution"],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}],"validationErrors":[],"capabilityManifest":{"id":"Update-the-stale-cc-execution-invariant-on-the-current-repair-generation-so-it-requires-the-approved","driftPolicy":"exact_manifest_source_release_dependency_or_runtime_identity_mismatch_is_nonterminal","proofLedger":"command_center_mission_ledger_request_contract_hash_bound","schemaVersion":1,"releaseTargets":["ccExecution"],"lifecycleStates":["prepare","deploy","verify","activate"],"activationPolicy":"dependencies_and_claim_matched_live_proof_before_exposure","dependencyDomains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_required_not_runtime_failures","compatibilityWindow":["N","N-1"],"failureIsolationPolicy":"quarantine_or_rollback_affected_capability_only_preserve_unrelated_working_capabilities","canaryProofConditionIds":["live"]},"capabilityCompleteness":{"domains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"required":true,"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_states_not_runtime_failures"}},"requestContractHash":"3e9834eaa781c0f8c6f9ae3615e39fb284f0c794bd07ffac23481d1955dded33","requestContractRevision":6,"previousRequestContractHash":"f08d4b5175a3497b6f1e9cea309c7cbeef034154101290e09f0d1cdac650d46f"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:25:44.869815+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:64887c21-6ac0-4d97-8c93-ab164575f540:request-contract:3e9834eaa781c0f8c6f9ae3615e39fb284f0c794bd07ffac23481d1955dded33","mission_step_id":"7441bbec-ccd3-4d2e-a945-630bdabbe400","command_center_event_id":"64887c21-6ac0-4d97-8c93-ab164575f540"},{"id":"d2878471-085c-491c-800b-e81af157cc6f","source":"cc-execution","status":"authorized","payload":{"paths":["workers/cc-execution/src/index-scoped-repo-patch.js","workers/cc-execution/src/version.js"],"reason":"Deterministic corrective generation for Gate-caught syntax defect; production was never changed.","baseSha":"2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","issuedAt":1790047468926,"expiresAt":1790047648926,"missionId":"64887c21-6ac0-4d97-8c93-ab164575f540","authorizationId":"94798b66-a033-426c-a94f-391d8b7de28d","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:24:29.226123+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:94798b66-a033-426c-a94f-391d8b7de28d","mission_step_id":"970b86ac-a995-42cd-9a4d-89cadd085ef0","command_center_event_id":"64887c21-6ac0-4d97-8c93-ab164575f540"},{"id":"0d4f3150-51a7-49fe-b9b7-35488d9ca6ba","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Complete the remaining KNOCKLAUNCH latency reductions in the authoritative execution and release machinery: persist bounded-path classification end-to-end, suppress unnecessary durable mission/physical runner escalation, reuse exact-head state on transient retries, prevent duplicate release/proof work, deploy only affected owners, skip topology work when topology is unchanged, enforce one production build maximum per exact frontend merge SHA, reuse an exact deployable artifact when available, and record stage timings. Add regression contracts. Preserve protected-main safety and canonical Gate.","wordingChanged":false,"canonicalIntent":"Complete the remaining KNOCKLAUNCH latency reductions in the authoritative execution and release machinery: persist bounded-path classification end-to-end, suppress unnecessary durable mission/physical runner escalation, reuse exact-head state on transient retries, prevent duplicate release/proof work, deploy only affected owners, skip topology work when topology is unchanged, enforce one production build maximum per exact frontend merge SHA, reuse an exact deployable artifact when available, and record stage timings. Add regression contracts. Preserve protected-main safety and canonical Gate.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"outcome-1","statement":"Complete the remaining KNOCKLAUNCH latency reductions in the authoritative execution and release machinery: persist bounded-path classification end-to-end, suppress unnecessary durable mission/physical runner escalation, reuse exact-head state on transient retries, prevent duplicate release/proof work, deploy only affected owners, skip topology work when topology is unchanged, enforce one production build maximum per exact frontend merge SHA, reuse an exact deployable artifact when available, and record stage timings. Add regression contracts. Preserve protected-main safety and canonical Gate.","proofConditionIds":["proof-production"]}],"objective":"Complete the remaining KNOCKLAUNCH latency reductions in the authoritative execution and release machinery: persist bounded-path classification end-to-end, suppress unnecessary durable mission/physical runner escalation, reuse exact-head state on transient retries, prevent duplicate release/proof work, deploy only affected owners, skip topology work when topology is unchanged, enforce one production build maximum per exact frontend merge SHA, reuse an exact deployable artifact when available, and record stage timings. Add regression contracts. Preserve protected-main safety and canonical Gate.","constraints":[{"id":"protected-main","statement":"Preserve protected-main safety and canonical Gate.","proofConditionIds":["proof-production"]},{"id":"capability-completeness","statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["proof-production"]},{"id":"atomic-capability-lifecycle","statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["proof-production"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"runtime","claim":"Updated execution and release machinery is merged, deployed to affected owners, and live.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}],"validationErrors":[],"capabilityManifest":{"id":"Complete-the-remaining-KNOCKLAUNCH-latency-reductions-in-the-authoritative-execution-and-release-mac","driftPolicy":"exact_manifest_source_release_dependency_or_runtime_identity_mismatch_is_nonterminal","proofLedger":"command_center_mission_ledger_request_contract_hash_bound","schemaVersion":1,"releaseTargets":[],"lifecycleStates":["prepare","deploy","verify","activate"],"activationPolicy":"dependencies_and_claim_matched_live_proof_before_exposure","dependencyDomains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_required_not_runtime_failures","compatibilityWindow":["N","N-1"],"failureIsolationPolicy":"quarantine_or_rollback_affected_capability_only_preserve_unrelated_working_capabilities","canaryProofConditionIds":["proof-production"]},"capabilityCompleteness":{"domains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"required":true,"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_states_not_runtime_failures"}},"requestContractHash":"f656cee91480751dafec1fa392bec5f7dc34c97238287fc0eae38d792e6599f5","requestContractRevision":2,"previousRequestContractHash":"73b432cc1d4d6173a96dce113a3ef447da0f2b902cd72284fefeae94ef489f7e"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:24:30.339148+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:09a9e05d-d017-4ca5-ac45-0a6b4f6d4801:request-contract:f656cee91480751dafec1fa392bec5f7dc34c97238287fc0eae38d792e6599f5","mission_step_id":"538b4fe8-673a-441e-b561-42bfdf1bbf30","command_center_event_id":"09a9e05d-d017-4ca5-ac45-0a6b4f6d4801"},{"id":"9e2c247c-d52b-4619-a71e-48893427e913","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Update the stale cc-execution invariant on the reopened existing latency-hardening PR so it requires the approved concurrent immutable planning-read shape instead of the superseded serial loop.","wordingChanged":false,"canonicalIntent":"Update the stale cc-execution invariant on the reopened existing latency-hardening PR so it requires the approved concurrent immutable planning-read shape instead of the superseded serial loop.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"test","statement":"Invariant requires concurrent Promise.all planning reads and rejects the serial loop.","proofConditionIds":["live"]}],"objective":"Update the stale cc-execution invariant on the reopened existing latency-hardening PR so it requires the approved concurrent immutable planning-read shape instead of the superseded serial loop.","constraints":[{"id":"safe","statement":"Test-only correction; runtime behavior and release semantics remain unchanged.","proofConditionIds":["live"]},{"id":"capability-completeness","statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["live"]},{"id":"atomic-capability-lifecycle","statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["live"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"live","kind":"runtime","claim":"Released cc-execution runtime passes the updated invariant suite and contains concurrent immutable planning reads.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":["ccExecution"],"requiredReleaseTargets":["ccExecution"],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}],"validationErrors":[],"capabilityManifest":{"id":"Update-the-stale-cc-execution-invariant-on-the-reopened-existing-latency-hardening-PR-so-it-requires","driftPolicy":"exact_manifest_source_release_dependency_or_runtime_identity_mismatch_is_nonterminal","proofLedger":"command_center_mission_ledger_request_contract_hash_bound","schemaVersion":1,"releaseTargets":["ccExecution"],"lifecycleStates":["prepare","deploy","verify","activate"],"activationPolicy":"dependencies_and_claim_matched_live_proof_before_exposure","dependencyDomains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_required_not_runtime_failures","compatibilityWindow":["N","N-1"],"failureIsolationPolicy":"quarantine_or_rollback_affected_capability_only_preserve_unrelated_working_capabilities","canaryProofConditionIds":["live"]},"capabilityCompleteness":{"domains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"required":true,"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_states_not_runtime_failures"}},"requestContractHash":"ad58252f65d2b64c1447cde19cc6347475a1a9ab6b47a67dce0eda622ff8ba87","requestContractRevision":8,"previousRequestContractHash":"018735c4529374f86cfe3f0f10bbb1f462c18e5a36dbf9ed9440acca51dacec9"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:26:26.195278+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:64887c21-6ac0-4d97-8c93-ab164575f540:request-contract:ad58252f65d2b64c1447cde19cc6347475a1a9ab6b47a67dce0eda622ff8ba87","mission_step_id":"7441bbec-ccd3-4d2e-a945-630bdabbe400","command_center_event_id":"64887c21-6ac0-4d97-8c93-ab164575f540"},{"id":"8c7d7a92-0516-432a-98a1-a4a8df35d4d6","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Tighten live executor provider/read latency budgets and ship the change.","wordingChanged":false,"canonicalIntent":"Tighten live executor provider/read latency budgets and ship the change.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"outcome-1","statement":"Routine executor reads use shorter bounded waits.","proofConditionIds":["proof-production"]}],"objective":"Tighten live executor provider/read latency budgets and ship the change.","constraints":[{"id":"safety","statement":"Preserve exact-head retry and protected-main safety.","proofConditionIds":["proof-production"]},{"id":"capability-completeness","statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["proof-production"]},{"id":"atomic-capability-lifecycle","statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["proof-production"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"runtime","claim":"Updated cc-execution is live and healthy.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}],"validationErrors":[],"capabilityManifest":{"id":"Tighten-live-executor-provider-read-latency-budgets-and-ship-the-change.","driftPolicy":"exact_manifest_source_release_dependency_or_runtime_identity_mismatch_is_nonterminal","proofLedger":"command_center_mission_ledger_request_contract_hash_bound","schemaVersion":1,"releaseTargets":[],"lifecycleStates":["prepare","deploy","verify","activate"],"activationPolicy":"dependencies_and_claim_matched_live_proof_before_exposure","dependencyDomains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_required_not_runtime_failures","compatibilityWindow":["N","N-1"],"failureIsolationPolicy":"quarantine_or_rollback_affected_capability_only_preserve_unrelated_working_capabilities","canaryProofConditionIds":["proof-production"]},"capabilityCompleteness":{"domains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"required":true,"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_states_not_runtime_failures"}},"requestContractHash":"468f607b71cd5a8362175bb85238b2a9c17333fe4dbbf04755b3d17d0e62a650","requestContractRevision":4,"previousRequestContractHash":"ab9f851975ba20d0aefdfc999619c109be1c095e5749bbcba89b5235b8e4a2fb"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:25:20.1074+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:09a9e05d-d017-4ca5-ac45-0a6b4f6d4801:request-contract:468f607b71cd5a8362175bb85238b2a9c17333fe4dbbf04755b3d17d0e62a650","mission_step_id":"538b4fe8-673a-441e-b561-42bfdf1bbf30","command_center_event_id":"09a9e05d-d017-4ca5-ac45-0a6b4f6d4801"},{"id":"74e9398d-2ac8-4b7e-b1cf-a149d3d3a127","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Update the existing cc-execution invariant test to require the new safe concurrent immutable planning-read shape instead of requiring the superseded serial loop.","wordingChanged":false,"canonicalIntent":"Update the existing cc-execution invariant test to require the new safe concurrent immutable planning-read shape instead of requiring the superseded serial loop.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"test","statement":"Regression contract requires Promise.all with targetPaths.map arrow loadPlan and rejects the old serial loop.","proofConditionIds":["live"]}],"objective":"Update the existing cc-execution invariant test to require the new safe concurrent immutable planning-read shape instead of requiring the superseded serial loop.","constraints":[{"id":"safe","statement":"Test-only correction; runtime behavior remains the already syntax-validated concurrency change.","proofConditionIds":["live"]},{"id":"capability-completeness","statement":"Every dependency the implementation declares or relies on must be wired and proven across applicable frontend, backend/runtime, schema/data/storage, authentication/authorization, provider configuration, prerequisite/loading/empty/error states, release ownership, and live production behavior; owner-authorized unavailable dependencies must become explicit prerequisite states rather than runtime failures.","proofConditionIds":["live"]},{"id":"atomic-capability-lifecycle","statement":"Changed capabilities remain non-active until dependency readiness, N/N-1 compatibility, affected-target release, and claim-matched production canary proof are satisfied; missing optional dependencies become prerequisite_required, and runtime drift or health-contract violation quarantines only the affected capability instead of breaking unrelated working capability.","proofConditionIds":["live"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"live","kind":"runtime","claim":"Released cc-execution runtime passes the updated invariant suite and contains concurrent immutable planning reads.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":["ccExecution"],"requiredReleaseTargets":["ccExecution"],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}],"validationErrors":[],"capabilityManifest":{"id":"Update-the-existing-cc-execution-invariant-test-to-require-the-new-safe-concurrent-immutable-plannin","driftPolicy":"exact_manifest_source_release_dependency_or_runtime_identity_mismatch_is_nonterminal","proofLedger":"command_center_mission_ledger_request_contract_hash_bound","schemaVersion":1,"releaseTargets":["ccExecution"],"lifecycleStates":["prepare","deploy","verify","activate"],"activationPolicy":"dependencies_and_claim_matched_live_proof_before_exposure","dependencyDomains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_required_not_runtime_failures","compatibilityWindow":["N","N-1"],"failureIsolationPolicy":"quarantine_or_rollback_affected_capability_only_preserve_unrelated_working_capabilities","canaryProofConditionIds":["live"]},"capabilityCompleteness":{"domains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"required":true,"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_states_not_runtime_failures"}},"requestContractHash":"f08d4b5175a3497b6f1e9cea309c7cbeef034154101290e09f0d1cdac650d46f","requestContractRevision":5,"previousRequestContractHash":"9975398657e84b420faf7862570d0182c23d6739911349e89417c6e42287663b"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:25:31.114032+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:64887c21-6ac0-4d97-8c93-ab164575f540:request-contract:f08d4b5175a3497b6f1e9cea309c7cbeef034154101290e09f0d1cdac650d46f","mission_step_id":"7441bbec-ccd3-4d2e-a945-630bdabbe400","command_center_event_id":"64887c21-6ac0-4d97-8c93-ab164575f540"},{"id":"8e7ed071-6457-4696-9756-dd50cb334b42","source":"forgejo","status":"retryable","payload":{"branch":"ai/objective-first-repair-64887c216ac0","merged":false,"prNumber":3402,"remediationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:23:36.823292+00:00","proof_gate":"forgejo_closed_pr_is_authoritative_source_lineage","source_sha":null,"external_id":"3402","receipt_type":"source_lineage_pr_closed_without_merge","idempotency_key":"mission:64887c21-6ac0-4d97-8c93-ab164575f540:closed-pr:3402:unmerged","mission_step_id":"cb483c76-f62f-47af-8456-6c82d2d9560a","command_center_event_id":"64887c21-6ac0-4d97-8c93-ab164575f540"},{"id":"7c5a5bbe-9882-4e81-b716-790396251796","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-09a9e05dd017","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.211-source-role-classification","prNumber":3403,"terminal":false,"missionId":"09a9e05d-d017-4ca5-ac45-0a6b4f6d4801","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":13396,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":2428,"missionSetupMs":657,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":657,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":657,"repositoryMutationMs":10968,"repositoryProviderMs":10968,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":5279,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":657,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":5689},"nextAction":"Canonical KnockLaunch Gate notifier and durable mission supervisor own Gate, merge, release, and proof progression from this exact PR head outside the owner response path.","receiptRef":{"mode":"full","missionId":"09a9e05d-d017-4ca5-ac45-0a6b4f6d4801"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3449,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:25:34.152617+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3403","receipt_type":"execute_mission","idempotency_key":"mission:09a9e05d-d017-4ca5-ac45-0a6b4f6d4801:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"538b4fe8-673a-441e-b561-42bfdf1bbf30","command_center_event_id":"09a9e05d-d017-4ca5-ac45-0a6b4f6d4801"},{"id":"4134ba5d-a97a-48c2-9467-1dbd3b216b2c","source":"cc-execution","status":"authorized","payload":{"paths":["workers/cc-execution/test/release-orchestration-invariants.test.js"],"reason":"Update only the stale architecture invariant that required serial planning reads.","baseSha":"2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","issuedAt":1790047546100,"expiresAt":1790047726100,"missionId":"64887c21-6ac0-4d97-8c93-ab164575f540","authorizationId":"dc2ebffa-45a3-416d-a42d-8d452e8a7910","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:25:46.38919+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"2bbfbaa84c76bbc4625a814c1445f06c2b7941a1","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:dc2ebffa-45a3-416d-a42d-8d452e8a7910","mission_step_id":"970b86ac-a995-42cd-9a4d-89cadd085ef0","command_center_event_id":"64887c21-6ac0-4d97-8c93-ab164575f540"},{"id":"7f663a81-a4a6-4af8-8024-29d8072f445f","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-64887c216ac0","reason":"pull_request_checks_pending","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3402,"terminal":false,"missionId":"64887c21-6ac0-4d97-8c93-ab164575f540","operation":"automatic_mission_resume","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"prReadinessMs":604,"approvedPlanMs":0,"shipAndProveMs":0,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request after the exact-head KnockLaunch Gate changes state.","receiptRef":{"mode":"full","missionId":"64887c21-6ac0-4d97-8c93-ab164575f540"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1285,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:23:52.342939+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"3402","receipt_type":"automatic_mission_resume","idempotency_key":"mission:64887c21-6ac0-4d97-8c93-ab164575f540:automatic-mission-resume:3402:repair_mission_waiting_for_gate","mission_step_id":"cb483c76-f62f-47af-8456-6c82d2d9560a","command_center_event_id":"64887c21-6ac0-4d97-8c93-ab164575f540"},{"id":"aac2520f-8c9e-41c1-8bd5-c08f8a4f2093","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-64887c216ac0","reason":"pull_request_checks_failed","status":"retryable","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.211-source-role-classification","prNumber":3402,"terminal":false,"missionId":"64887c21-6ac0-4d97-8c93-ab164575f540","operation":"execute_mission","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1172,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":1007,"approvedPlanMs":0,"missionSetupMs":817,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":636,"ledgerReconcileMs":0,"lineageReconcileMs":181,"resolvePreflightMs":817,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":636,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"64887c21-6ac0-4d97-8c93-ab164575f540"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":2070,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:24:08.077617+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"3402","receipt_type":"execute_mission","idempotency_key":"mission:64887c21-6ac0-4d97-8c93-ab164575f540:execute_mission:repair_mission_pr_ready_retryable:current-generation","mission_step_id":"7441bbec-ccd3-4d2e-a945-630bdabbe400","command_center_event_id":"64887c21-6ac0-4d97-8c93-ab164575f540"},{"id":"b2cddb99-ea7a-499c-9aa2-9056563f9877","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-1443ad08dd3c","reason":"retryable_provider_transport:forgejo_provider_read_timeout","status":"retryable","metrics":{"receiptBytes":20793,"releaseCount":0,"toolCallCount":6,"repeatedCallCount":1,"executorlessWaitMs":77973,"firstUsefulResultAt":"2026-09-25T00:48:52.527Z","recoveryAttemptCount":3,"ownerInterruptionCount":0},"version":null,"prNumber":3694,"terminal":false,"missionId":"1443ad08-dd3c-4cf3-9679-c93fe1d26c3f","operation":"automatic_mission_resume","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"prReadinessMs":3127,"approvedPlanMs":0,"shipAndProveMs":0,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"1443ad08-dd3c-4cf3-9679-c93fe1d26c3f"},"performance":null,"deploymentId":null,"releaseState":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":819,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:50:10.548856+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"3694","receipt_type":"automatic_mission_resume","idempotency_key":"mission:1443ad08-dd3c-4cf3-9679-c93fe1d26c3f:automatic-mission-resume:3694:repair_mission_pr_ready_retryable","mission_step_id":"ab4915d0-8536-4a48-a274-561ca1710ce2","command_center_event_id":"1443ad08-dd3c-4cf3-9679-c93fe1d26c3f"},{"id":"d9d17db4-32a8-4340-98e9-b2cb213d53ee","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success"},"mainSha":"f83495396eaeb60875574d4adc13764516761d69","missing":[],"pending":[],"required":["forgejo-main/source"],"sourceSha":"f83495396eaeb60875574d4adc13764516761d69","releaseState":"verified","sourceInMain":true,"compareStatus":"identical","releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{},"requestContractHash":"2724e73a2278c8fc7a1023105d83038933920bc2f9c50c38659f8618e483ba5c","forgejoWorkflowProof":null,"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T03:34:47.482763+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"f83495396eaeb60875574d4adc13764516761d69","external_id":"forgejo-main-f83495396eae","receipt_type":"canonical_release_status","idempotency_key":"mission:70c455ff-70bd-43aa-bb5b-d8ac0f34af9b:forgejo-release-status:f83495396eaeb60875574d4adc13764516761d69:verified:forgejo-main/source=success","mission_step_id":"123dc23a-fc45-4f3a-bdac-0a68b27c8497","command_center_event_id":"70c455ff-70bd-43aa-bb5b-d8ac0f34af9b"}],"rows":200,"limit":200,"table":"command_center_receipts","format":"knocklaunch-table-chunk-v1","offset":24800,"schema":"public"}