{"data":[{"id":"1143434a-4da4-4d47-990a-f28ad37546a6","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":null,"reason":"anchored_edit_invalid","status":"blocked","metrics":{"receiptBytes":4265,"releaseCount":0,"toolCallCount":2,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.56.2-queue-readiness-budget","prNumber":null,"terminal":false,"missionId":"43ab38ae-c996-49e1-a179-0adb989b9911","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"handlerMs":239,"prReadinessMs":0,"approvedPlanMs":239,"missionSetupMs":307,"shipAndProveMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"43ab38ae-c996-49e1-a179-0adb989b9911"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5064,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"71b397ba-b9ad-496b-914c-985d97dbb12e","created_at":"2026-08-29T17:31:24.190128+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:43ab38ae-c996-49e1-a179-0adb989b9911:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"a9ce1a1c-faf8-46b7-9d86-203d417d05a1","command_center_event_id":"43ab38ae-c996-49e1-a179-0adb989b9911"},{"id":"1143c098-fbe0-4514-bbd1-378c659fab8f","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","supabase-migrations/live":"success"},"mainSha":"e1126a9ed2633789641c643e92ceab9fd789da94","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","supabase-migrations/live"],"sourceSha":"e1126a9ed2633789641c643e92ceab9fd789da94","releaseState":"verified","sourceInMain":true,"compareStatus":"identical","releaseTargets":{"frontend":false,"onrunner":false,"migrations":true,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"migrations":"success"},"requestContractHash":"e4b4a29047e020b0da0004a89c165a0174efc97f3211b3148b54f60fdae977d4","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/5789","runId":5789,"status":"success","sourceSha":"e1126a9ed2633789641c643e92ceab9fd789da94","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true,"targetStates":{"migrations":"success"},"targetJobCount":7,"observedTargetStates":{"migrations":"success"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"766cfaa7-ac42-46c8-bbef-69d13268a29d","created_at":"2026-09-06T03:39:30.606148+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"e1126a9ed2633789641c643e92ceab9fd789da94","external_id":"forgejo-main-e1126a9ed263","receipt_type":"canonical_release_status","idempotency_key":"mission:3d44f71b-44cc-4262-a792-39b65e4cead3:forgejo-release-status:e1126a9ed2633789641c643e92ceab9fd789da94:verified:forgejo-main/source=success|forgejo-release/workflow=success|supabase-migrations/live=success","mission_step_id":"b1952bfb-07be-4834-b534-4dca061b18a0","command_center_event_id":"3d44f71b-44cc-4262-a792-39b65e4cead3"},{"id":"11441c6d-8fa4-4892-b8de-a574d6792c3d","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-mtqhb50h","prNumber":2012,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"06a8b283033241e0568b1fa3faa9dd2cbc156577","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"60911b66-2940-4f68-9b88-cd17d1bdf5b6","created_at":"2026-09-07T00:14:04.148231+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"06a8b283033241e0568b1fa3faa9dd2cbc156577","external_id":"2012","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:035a6503-b36a-4d77-b27b-2c87d213cb8f:merged-pr:2012:06a8b283033241e0568b1fa3faa9dd2cbc156577","mission_step_id":"4d8998b9-4098-47bc-9c25-f7ad4fcbbaeb","command_center_event_id":"035a6503-b36a-4d77-b27b-2c87d213cb8f"},{"id":"1144545d-d159-4d6e-8368-7cf89204cb10","source":"cc-execution","status":"complete","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/restore-forgejo-pr-merge-budgets-20260821","reason":null,"status":"complete","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.50.11-bounded-provider-control-plane","prNumber":574,"terminal":false,"missionId":"3afd055f-21d6-4a7c-85ee-daf7de375e54","operation":"execute_mission","proofGate":"repair_mission_prepared","sourceSha":null,"timingsMs":null,"nextAction":"continue_batch_or_ship_and_prove","receiptRef":{"mode":"full","missionId":"3afd055f-21d6-4a7c-85ee-daf7de375e54"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5531,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-21T18:12:14.307588+00:00","proof_gate":"repair_mission_prepared","source_sha":null,"external_id":"574","receipt_type":"execute_mission","idempotency_key":"mission:3afd055f-21d6-4a7c-85ee-daf7de375e54:execute_mission:repair_mission_prepared","mission_step_id":"225eeaf9-ef36-4711-989f-524d54a82100","command_center_event_id":"3afd055f-21d6-4a7c-85ee-daf7de375e54"},{"id":"1145faa6-8c7b-4fd3-af3a-0ef5355154d9","source":"forgejo","status":"waiting","payload":{"branch":"ai/messages-cinematic-push-aa51cc48","prNumber":3448,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"dbae7fd88a75242e229155e0d05b517835338e5e","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T17:15:52.81799+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"dbae7fd88a75242e229155e0d05b517835338e5e","external_id":"3448","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:aa51cc48-fb70-45c5-a4d2-3fec38854ac4:merged-pr:3448:dbae7fd88a75242e229155e0d05b517835338e5e","mission_step_id":"6254768a-94b7-4a37-8f16-777c6ecd95b5","command_center_event_id":"aa51cc48-fb70-45c5-a4d2-3fec38854ac4"},{"id":"114669f7-fd2c-4118-b874-79a4117dc4fd","source":"cc-execution","status":"authorized","payload":{"paths":["workers/cc-execution/test/release-orchestration-invariants.test.js"],"reason":"Owner-authorized exact test-harness correction for the existing orphan-branch lifecycle repair on PR #2247.","baseSha":"673a9fa76e000d0a81f70e33731597d8a27e7a82","issuedAt":1788975898027,"expiresAt":1788976078027,"missionId":"df2024ae-a7cb-4df9-98f1-336e1c691cbd","authorizationId":"98252ff4-cf15-46cf-a9da-74f6c73de7ef","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-09T17:44:58.386134+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"673a9fa76e000d0a81f70e33731597d8a27e7a82","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:98252ff4-cf15-46cf-a9da-74f6c73de7ef","mission_step_id":"a7366768-77bc-47d6-a2f2-90854f5ddaa1","command_center_event_id":"df2024ae-a7cb-4df9-98f1-336e1c691cbd"},{"id":"11486850-93dc-4e58-863e-ec574d7d296d","source":"cc-execution","status":"release_verification_pending","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/pcg-header-viewport-width","reason":null,"status":"release_verification_pending","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.185-generation-proof-isolation","prNumber":3266,"terminal":false,"missionId":"45e508fb-7168-4481-9e80-c823b74c6bbf","operation":"execute_mission","proofGate":"ship_and_prove_release_pending","sourceSha":"396514eb78c673331835a6c88fb1270451812968","timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":3970,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":549,"approvedPlanMs":0,"missionSetupMs":416,"providerAuthMs":0,"shipAndProveMs":3167,"ledgerPrepareMs":275,"ledgerReconcileMs":0,"lineageReconcileMs":141,"resolvePreflightMs":416,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":275,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"45e508fb-7168-4481-9e80-c823b74c6bbf"},"performance":null,"deploymentId":"forgejo-main-396514eb78c6","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":2661,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"9602e177-0cbb-496c-bdf5-2fbc93f1b859","created_at":"2026-09-20T04:48:23.99084+00:00","proof_gate":"ship_and_prove_release_pending","source_sha":"396514eb78c673331835a6c88fb1270451812968","external_id":"forgejo-main-396514eb78c6","receipt_type":"execute_mission","idempotency_key":"mission:45e508fb-7168-4481-9e80-c823b74c6bbf:execute_mission:ship_and_prove_release_pending:current-generation","mission_step_id":"379a7264-0d65-47cb-b83c-67b55e1fb4b4","command_center_event_id":"45e508fb-7168-4481-9e80-c823b74c6bbf"},{"id":"11495df2-17b3-4ff0-841e-99021f0fdc84","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-980653b3107d","reason":"fresh_pr_provider_receipt_already_proves_auto_progress_gate_notifier_owns_next_state","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.156-platform-resilience-hardening","prNumber":2873,"terminal":false,"missionId":"980653b3-107d-48d5-9aae-6049df3ffe77","operation":"execute_mission","proofGate":"repair_mission_fresh_pr_handed_off_to_gate","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":7247,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":0,"missionSetupMs":353,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":353,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":353,"repositoryMutationMs":7247,"repositoryProviderMs":6283,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":3180,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":353,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":3103},"nextAction":"Canonical KnockLaunch Gate notifier and mission supervisor own progression from this exact PR head; do not synchronously poll Forgejo from the owner request.","receiptRef":{"mode":"full","missionId":"980653b3-107d-48d5-9aae-6049df3ffe77"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3306,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-16T03:14:14.094504+00:00","proof_gate":"repair_mission_fresh_pr_handed_off_to_gate","source_sha":null,"external_id":"2873","receipt_type":"execute_mission","idempotency_key":"mission:980653b3-107d-48d5-9aae-6049df3ffe77:execute_mission:repair_mission_fresh_pr_handed_off_to_gate:current-generation","mission_step_id":"6b022df9-23ef-4714-81e2-ce04fe7a898b","command_center_event_id":"980653b3-107d-48d5-9aae-6049df3ffe77"},{"id":"114a1a32-7a3e-499e-95b8-a958024246e6","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/fix-big-papis-proposal-template-leak-20260830","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":5287,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.56.3-source-scope-boundary","prNumber":1104,"terminal":false,"missionId":"4f362295-6eb7-4ef2-8a4e-be86a0d979a9","operation":"execute_mission","proofGate":"canonical_release_dispatched","sourceSha":"90d35237fa41e4683e2d69505ef3147781704eec","timingsMs":{"handlerMs":16259,"prReadinessMs":1488,"approvedPlanMs":5652,"missionSetupMs":3498,"shipAndProveMs":9100},"nextAction":null,"receiptRef":{"mode":"full","missionId":"4f362295-6eb7-4ef2-8a4e-be86a0d979a9"},"performance":null,"deploymentId":"forgejo-main-90d35237fa41","workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":8114,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"766cfaa7-ac42-46c8-bbef-69d13268a29d","created_at":"2026-08-30T14:39:22.71763+00:00","proof_gate":"canonical_release_dispatched","source_sha":"90d35237fa41e4683e2d69505ef3147781704eec","external_id":"forgejo-main-90d35237fa41","receipt_type":"execute_mission","idempotency_key":"mission:4f362295-6eb7-4ef2-8a4e-be86a0d979a9:execute_mission:canonical_release_dispatched:current-generation","mission_step_id":"c0eed695-51c4-41a8-9a52-d551cfe57687","command_center_event_id":"4f362295-6eb7-4ef2-8a4e-be86a0d979a9"},{"id":"114a9a99-8ade-40db-a271-64c87f81edef","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"release","branch":"ai/redfish-scope-resolver-lifecycle-20260911","reason":"forgejo_release_source_not_contained_in_current_main","status":"blocked","metrics":{"receiptBytes":0,"releaseCount":1,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":2381,"terminal":false,"missionId":"58728edd-bbfa-465d-bf9a-3507a4a36313","operation":"automatic_mission_resume","proofGate":"canonical_release_blocked","sourceSha":"ff579be95ce4a6201ed24f99cd6d1c957d98c62e","timingsMs":{"prReadinessMs":1081,"approvedPlanMs":0,"shipAndProveMs":9248,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"58728edd-bbfa-465d-bf9a-3507a4a36313"},"performance":null,"deploymentId":"forgejo-main-ff579be95ce4","workflowRunId":7033,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":719,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"de8369b6-a78f-40bb-ae1f-28ffca62bc7e","created_at":"2026-09-11T05:41:05.441317+00:00","proof_gate":"canonical_release_blocked","source_sha":null,"external_id":"2381","receipt_type":"automatic_mission_resume","idempotency_key":"mission:58728edd-bbfa-465d-bf9a-3507a4a36313:automatic-mission-resume:2381:canonical_release_blocked","mission_step_id":"8705aadc-ab39-4e01-9e0b-00a258dc399e","command_center_event_id":"58728edd-bbfa-465d-bf9a-3507a4a36313"},{"id":"114ae3f7-a1e1-4427-9d5a-cf2bf1dad563","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-0345759c13bf","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.140-known-run-branch-aliases","prNumber":null,"terminal":false,"missionId":"0345759c-13bf-45d7-813f-022c515f103c","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":23,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":824,"providerAuthMs":0,"ledgerPrepareMs":824,"ledgerReconcileMs":221,"lineageReconcileMs":0,"resolvePreflightMs":824,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":1045,"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":"0345759c-13bf-45d7-813f-022c515f103c"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5948,"likelyAffectedFiles":["src/components/TenantRouter.tsx","src/routes/crmRoutes.tsx"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-13T20:20:50.725644+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:0345759c-13bf-45d7-813f-022c515f103c:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"7df168b6-d826-45db-a566-e23a3263be32","command_center_event_id":"0345759c-13bf-45d7-813f-022c515f103c"},{"id":"114b5d26-52c9-43ed-aa85-e3ba75712e9f","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-5952a823665e","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":3304,"releaseCount":0,"toolCallCount":2,"repeatedCallCount":0,"executorlessWaitMs":1789,"firstUsefulResultAt":"2026-10-04T00:40:06.598Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.89-paul-continuation-receipt-scope","prNumber":null,"terminal":false,"missionId":"5952a823-665e-4cc4-8fa8-8afafb5283e3","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":4417,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":1569,"providerAuthMs":0,"ledgerPrepareMs":1569,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":1569,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":1569,"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":"5952a823-665e-4cc4-8fa8-8afafb5283e3"},"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":4175,"likelyAffectedFiles":["scripts/windows/install-knocklaunch-autoconnect.ps1",".forgejo/workflows/knocklaunch-local-host-autoconnect.yml","workers/cc-execution/src/index-mcp.js","config/capabilities/platform-health.json"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-04T00:40:08.569071+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:5952a823-665e-4cc4-8fa8-8afafb5283e3:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"7725f8ce-86f9-4a8a-a6fb-4ff82b5f9fcd","command_center_event_id":"5952a823-665e-4cc4-8fa8-8afafb5283e3"},{"id":"114dc014-f409-41d1-aa67-4a6285e95a57","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Unfreeze the control plane for the Command Center PR-readiness timeout repair. Apply the prepared bounded maintenance change so healthy Forgejo exact-PR readiness reads slower than 1200ms no longer strand missions, while preserving bounded retries, exact-head Gate checks, ancestry/current-main safety, protected-main safety, and never retrying writes. Keep scope limited to the exact readiness timeout contract and required regression coverage. Ship only cc-execution through one fresh ai/* branch, one PR, KnockLaunch Gate, squash merge, deploy cc-execution only, verify live runtime identity, then resume the existing standalone-app mission/PR #2240.","wordingChanged":false,"canonicalIntent":"Unfreeze the control plane for the Command Center PR-readiness timeout repair. Apply the prepared bounded maintenance change so healthy Forgejo exact-PR readiness reads slower than 1200ms no longer strand missions, while preserving bounded retries, exact-head Gate checks, ancestry/current-main safety, protected-main safety, and never retrying writes. Keep scope limited to the exact readiness timeout contract and required regression coverage. Ship only cc-execution through one fresh ai/* branch, one PR, KnockLaunch Gate, squash merge, deploy cc-execution only, verify live runtime identity, then resume the existing standalone-app mission/PR #2240.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"o1","statement":"Healthy exact PR reads slower than 1200ms no longer strand mission readiness solely due to the old timeout.","proofConditionIds":["p1","p2"]},{"id":"o2","statement":"Gate, ancestry, exact-head, protected-main and fail-closed safety remain unchanged.","proofConditionIds":["p1"]}],"objective":"Unfreeze the control plane for the Command Center PR-readiness timeout repair. Apply the prepared bounded maintenance change so healthy Forgejo exact-PR readiness reads slower than 1200ms no longer strand missions, while preserving bounded retries, exact-head Gate checks, ancestry/current-main safety, protected-main safety, and never retrying writes. Keep scope limited to the exact readiness timeout contract and required regression coverage. Ship only cc-execution through one fresh ai/* branch, one PR, KnockLaunch Gate, squash merge, deploy cc-execution only, verify live runtime identity, then resume the existing standalone-app mission/PR #2240.","constraints":[{"id":"c1","statement":"Retries remain bounded and Forgejo writes are never retried.","proofConditionIds":["p1"]},{"id":"c2","statement":"One fresh ai/* branch, one PR, one Gate, squash merge, deploy only cc-execution.","proofConditionIds":["p2"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"p1","kind":"repository","claim":"Current Forgejo diff and regression coverage prove the PR-readiness budget repair without safety weakening.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"p2","kind":"release","claim":"Exact control-plane PR head passes Gate, squash merges, cc-execution deploy succeeds and live runtime identity matches.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}],"validationErrors":[]},"requestContractHash":"b9cbf7a55cdce59b58340d21acb7f7b4d38ddb6626bdca44ab4d64cb262edc41","requestContractRevision":2,"previousRequestContractHash":"0fa74727c516193b4ca3c025ac201d3f85d59612f794dc00822d3df400a8572f"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-09T17:42:33.510314+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:bce076d3-6621-40ad-90b1-150376cfa5e4:request-contract:b9cbf7a55cdce59b58340d21acb7f7b4d38ddb6626bdca44ab4d64cb262edc41","mission_step_id":"11f0332a-b01b-48ed-acf0-8be0ba8d93de","command_center_event_id":"bce076d3-6621-40ad-90b1-150376cfa5e4"},{"id":"114e0447-6c71-4305-b523-13621b4991bd","source":"cc-execution","status":"source_resolution_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":null,"reason":null,"status":"source_resolution_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":null,"recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.59.2-component-runtime-alignment","prNumber":null,"terminal":false,"missionId":"bfeaadd3-7ce1-4079-9275-7565b59cf7b7","operation":"execute_mission","proofGate":"repair_mission_source_resolution_required","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1679,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":431,"providerAuthMs":0,"ledgerPrepareMs":431,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":431,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":431,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Supply exact sourceTargets on the same mission; planner guesses cannot replace missing mission scope.","receiptRef":{"mode":"full","missionId":"bfeaadd3-7ce1-4079-9275-7565b59cf7b7"},"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":1177,"likelyAffectedFiles":[],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T19:24:39.566685+00:00","proof_gate":"repair_mission_source_resolution_required","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:bfeaadd3-7ce1-4079-9275-7565b59cf7b7:execute_mission:repair_mission_source_resolution_required:current-generation","mission_step_id":"607ff0ee-d561-4c3c-aa01-d003c68e1dbe","command_center_event_id":"bfeaadd3-7ce1-4079-9275-7565b59cf7b7"},{"id":"115060f6-56aa-43d7-88c5-4f9c562a1838","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"compilation":{"stages":["owner_intent","conversation_context","scope","live_state","mutation_authority","affected_systems","dependencies","risk_and_blast_radius","execution_tactics","required_proof","release_plan","recovery_plan"],"version":2,"explicit":true,"objective":"CONTINUE EXISTING PR #5238 ONLY. Do not create another branch or PR. Remove the one obsolete assertion in scripts/release-event-native-plan.test.mjs whose message is `validator must retain full-tree fallback when changed-path proof is absent`; preserve the actual validator and all other tests. Then rerun Gate. If green, squash merge, deploy cc-execution, verify live runtime sourceSha.","proofKinds":["repository"],"adaptiveDomains":["intent","tenant_route_role_viewport","urgency_deadline","dependency_scope","risk_blast_radius","runner_capacity","queue_active_work","provider_failure_circuits","qa_scope","retry_recovery","release_ownership","proof_depth"],"expansionPolicy":"later_stages_may_only_narrow_or_expand_with_machine_readable_dependency_evidence","dynamicStatePolicy":"live_state_may_change_execution_tactics_but_never_owner_outcome_or_explicit_constraints","dynamicRefreshStages":["preflight","gate","release","runtime_proof"],"adaptiveCompilerVersion":"paul-adaptive-objective-v1","inheritedContextBlockingAuthority":false},"rawUtterance":"CONTINUE EXISTING PR #5238 ONLY. Do not create another branch or PR. Remove the one obsolete assertion in scripts/release-event-native-plan.test.mjs whose message is `validator must retain full-tree fallback when changed-path proof is absent`; preserve the actual validator and all other tests. Then rerun Gate. If green, squash merge, deploy cc-execution, verify live runtime sourceSha.","wordingChanged":false,"canonicalIntent":"CONTINUE EXISTING PR #5238 ONLY. Do not create another branch or PR. Remove the one obsolete assertion in scripts/release-event-native-plan.test.mjs whose message is `validator must retain full-tree fallback when changed-path proof is absent`; preserve the actual validator and all other tests. Then rerun Gate. If green, squash merge, deploy cc-execution, verify live runtime sourceSha.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"outcome-1","statement":"CONTINUE EXISTING PR #5238 ONLY. Do not create another branch or PR. Remove the one obsolete assertion in scripts/release-event-native-plan.test.mjs whose message is `validator must retain full-tree fallback when changed-path proof is absent`; preserve the actual validator and all other tests. Then rerun Gate. If green, squash merge, deploy cc-execution, verify live runtime sourceSha.","provenance":{"reason":null,"source":"current_request_inference","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"objective":"CONTINUE EXISTING PR #5238 ONLY. Do not create another branch or PR. Remove the one obsolete assertion in scripts/release-event-native-plan.test.mjs whose message is `validator must retain full-tree fallback when changed-path proof is absent`; preserve the actual validator and all other tests. Then rerun Gate. If green, squash merge, deploy cc-execution, verify live runtime sourceSha.","constraints":[{"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":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"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.","provenance":{"reason":null,"source":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"adaptivePolicy":{"risk":{"tier":"high","blastRadius":"sensitive"},"proof":{"requiredKinds":["repository"],"visualProofScope":"none","interactionRequired":false,"runtimeProofRequired":true},"scope":{"route":null,"roleRef":null,"tenantRef":null,"sourceTargets":[]},"dynamic":{"variables":["main_and_runtime_lineage","runner_capacity","queue_and_active_work","provider_health","failure_clusters_and_circuits","release_target_state","current_pr_and_gate_state"],"refreshStages":["preflight","gate","release","runtime_proof"],"refreshMayChange":["runner_selection","parallelism","retry_path","qa_depth","release_recovery","proof_timing"],"refreshMayNotChange":["owner_outcome","explicit_no_go_constraints","tenant_identity","credential_boundary","hard_safety_invariants"]},"urgency":{"priority":"normal","deadlineSignals":[],"deadlineExplicit":false},"version":"paul-adaptive-objective-v1","recovery":{"transient":"one_bounded_retry_then_alternate_eligible_pool_or_provider_path","deterministic":"repair_source_or_contract_do_not_blind_rerun","mutationDependencyFailure":"prerequisite_required_or_targeted_recovery_never_invent","readOnlyDependencyFailure":"degrade_to_available_grounded_context_and_keep_conversation_alive"},"unknowns":["tenant","route","source_targets_until_repository_resolution","release_targets_until_changed_paths","deadline"],"authority":{"outcome":"current_explicit_owner_request","tactics":"live_prime_truth","unknownPolicy":"preserve_unknown_never_invent","historicalContext":"advisory_unless_current_request_confirms"},"execution":{"mutation":true,"concurrency":"serialize_overlapping_mutations","scopePolicy":"start_bounded_expand_only_with_machine_readable_dependency_evidence","staleStatePolicy":"refresh_dynamic_state_before_irreversible_or_acceptance_stage","conversationIsolation":true,"ownerOutcomeMayBeChangedByAdaptation":false},"experience":{"visual":false,"viewports":["desktop","mobile"],"behavioral":false,"visualProofScope":"none"},"dependencies":{"requiredDomains":["backend_runtime","release_ownership","live_production_proof"],"capabilityDomains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"releaseTargetHints":[]},"inputSignals":{"rawUtterance":"CONTINUE EXISTING PR #5238 ONLY. Do not create another branch or PR. Remove the one obsolete assertion in scripts/release-event-native-plan.test.mjs whose message is `validator must retain full-tree fallback when changed-path proof is absent`; preserve the actual validator and all other tests. Then rerun Gate. If green, squash merge, deploy cc-execution, verify live runtime sourceSha.","canonicalIntent":"CONTINUE EXISTING PR #5238 ONLY. Do not create another branch or PR. Remove the one obsolete assertion in scripts/release-event-native-plan.test.mjs whose message is `validator must retain full-tree fallback when changed-path proof is absent`; preserve the actual validator and all other tests. Then rerun Gate. If green, squash merge, deploy cc-execution, verify live runtime sourceSha.","conversationContextPresent":false}},"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"repository","claim":"CONTINUE EXISTING PR #5238 ONLY. Do not create another branch or PR. Remove the one obsolete assertion in scripts/release-event-native-plan.test.mjs whose message is `validator must retain full-tree fallback when changed-path proof is absent`; preserve the actual validator and all other tests. Then rerun Gate. If green, squash merge, deploy cc-execution, verify live runtime sourceSha.","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":"CONTINUE-EXISTING-PR-5238-ONLY.-Do-not-create-another-branch-or-PR.-Remove-the-one-obsolete-assertio","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":"58a9a6940c6f6ac1a5f6e6c67c92ec90b7202ae434e84d2a9e7fb2d52832c5fb","requestContractRevision":2,"previousRequestContractHash":"f8dac222f6a3ae0fca4126208d29c06b9ee92981c51974ebb6318c2159ebe296"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T20:01:57.217536+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:ecb47455-25d5-4ba2-b044-0d050aeb1b5d:request-contract:58a9a6940c6f6ac1a5f6e6c67c92ec90b7202ae434e84d2a9e7fb2d52832c5fb","mission_step_id":"eaafeaa7-9f70-4263-92bf-4bbf1a350d07","command_center_event_id":"ecb47455-25d5-4ba2-b044-0d050aeb1b5d"},{"id":"115126bc-98c0-4c08-a400-a708eabc5edc","source":"cc-execution","status":"complete","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/frontend-build-swc-benchmark","reason":null,"status":"complete","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.209-visual-certification-hardening","prNumber":3396,"terminal":false,"missionId":"56099382-79ea-4a27-99fc-7b464aee2c19","operation":"execute_mission","proofGate":"repair_mission_prepared","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":4185,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":406,"providerAuthMs":0,"ledgerPrepareMs":406,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":406,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":406,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"continue_batch_or_ship_and_prove","receiptRef":{"mode":"full","missionId":"56099382-79ea-4a27-99fc-7b464aee2c19"},"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":2454,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T03:00:50.45728+00:00","proof_gate":"repair_mission_prepared","source_sha":null,"external_id":"3396","receipt_type":"execute_mission","idempotency_key":"mission:56099382-79ea-4a27-99fc-7b464aee2c19:execute_mission:repair_mission_prepared:current-generation","mission_step_id":"bcaf4283-347c-40cf-bae6-ec37dca2c927","command_center_event_id":"56099382-79ea-4a27-99fc-7b464aee2c19"},{"id":"11517f56-972c-494e-bb21-cbd9111f9ded","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success"},"mainSha":"36e37fcc0f8822cdc849f7b3509a7fca1c094d67","missing":[],"pending":[],"required":["forgejo-main/source"],"sourceSha":"36e37fcc0f8822cdc849f7b3509a7fca1c094d67","releaseState":"verified","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{},"requestContractHash":"50bf4a57d3a9871be78bcc528c71aeb19db74ef34a000028507495f8fd54e795","forgejoWorkflowProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-04T11:42:42.659547+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"36e37fcc0f8822cdc849f7b3509a7fca1c094d67","external_id":"forgejo-main-36e37fcc0f88","receipt_type":"canonical_release_status","idempotency_key":"mission:da7a2347-2ec7-4a94-af3e-833e1a6eed5b:forgejo-release-status:36e37fcc0f8822cdc849f7b3509a7fca1c094d67:verified:forgejo-main/source=success","mission_step_id":"8f098b25-b3a3-48ee-b40d-f6749841cf83","command_center_event_id":"da7a2347-2ec7-4a94-af3e-833e1a6eed5b"},{"id":"1151c2aa-a68e-4b0f-8520-715efda73b35","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-2e59bcafa7cb","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.179-terminal-receipt-guard","prNumber":3029,"terminal":false,"missionId":"2e59bcaf-a7cb-454a-a797-3ad6ca302f1c","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":9605,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":2157,"missionSetupMs":2915,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":2915,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":2915,"repositoryMutationMs":7448,"repositoryProviderMs":7448,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":3408,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":2915,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":4040},"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":"2e59bcaf-a7cb-454a-a797-3ad6ca302f1c"},"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":3335,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-17T19:18:43.558605+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3029","receipt_type":"execute_mission","idempotency_key":"mission:2e59bcaf-a7cb-454a-a797-3ad6ca302f1c:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"f0f6488b-bf0e-42b8-94cf-3c03ca58fd7a","command_center_event_id":"2e59bcaf-a7cb-454a-a797-3ad6ca302f1c"},{"id":"115389e0-56df-4dfe-8dd7-ae6140da0d3d","source":"cc-execution","status":"authorized","payload":{"paths":["workers/cc-execution/test/release-orchestration-invariants.test.js"],"reason":"Update exact regression fixtures for mandatory durable mission read-back.","baseSha":"00cd19a88af19e045c7e229cb9a7cf4c544d4cd7","issuedAt":1789137799415,"expiresAt":1789137979415,"missionId":"a59dadee-dd58-415b-85ec-53fc492c7011","authorizationId":"06980543-4298-432d-9152-a22d8c58a7f6","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-11T14:43:19.983024+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"00cd19a88af19e045c7e229cb9a7cf4c544d4cd7","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:06980543-4298-432d-9152-a22d8c58a7f6","mission_step_id":"971167a5-41b9-488f-b6aa-fc4bef6db8a8","command_center_event_id":"a59dadee-dd58-415b-85ec-53fc492c7011"},{"id":"1154e7ce-92fc-4f7f-8978-5d9c25e66cfd","source":"cc-execution","status":"no_change","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/tenant-search-f4df93da","reason":null,"status":"complete","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.151-mission-create-single-rpc","prNumber":2845,"terminal":false,"missionId":"f4df93da-ef0f-448e-b349-ef81dc9e5f66","operation":"execute_mission","proofGate":"repair_mission_prepared","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":4996,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":584,"providerAuthMs":0,"ledgerPrepareMs":584,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":584,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":584,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"continue_batch_or_ship_and_prove","receiptRef":{"mode":"full","missionId":"f4df93da-ef0f-448e-b349-ef81dc9e5f66"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":2671,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-15T18:18:03.032331+00:00","proof_gate":"repair_mission_prepared","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:f4df93da-ef0f-448e-b349-ef81dc9e5f66:execute_mission:repair_mission_prepared:current-generation","mission_step_id":"c02ac82a-d3f6-4303-ad4d-c1fbfe1be1f8","command_center_event_id":"f4df93da-ef0f-448e-b349-ef81dc9e5f66"},{"id":"11554ddb-3638-4319-8c1b-6f5013310631","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},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_release\",\"recoveryOwner\":\"production-release-conductor\"},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"release\",\"deadlineAt\":\"2026-10-04T15:11:23.922136+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/objective-first-repair-937a4f8d9d01\",\"prNumber\":4762,\"sourceSha\":\"01ce9105dfd656a7717d9790a70dfbb8226fa083\",\"deploymentId\":\"forgejo-main-01ce9105dfd6\"}"},"tenant_id":"9602e177-0cbb-496c-bdf5-2fbc93f1b859","created_at":"2026-10-04T12:12:24.396025+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:937a4f8d-9d01-423c-bb0d-8ce7136488a0:owner-progress-heartbeat:119407729","mission_step_id":"1eabadb4-2e6e-4092-b00c-6349980b6e00","command_center_event_id":"937a4f8d-9d01-423c-bb0d-8ce7136488a0"},{"id":"1155517d-74fd-4a13-b5b6-87ef11d32521","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/fix-supersession-content-proof-g2","reason":"pull_request_not_open","status":"retryable","metrics":{"receiptBytes":1074,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.50.5-release-queue-freshness","prNumber":545,"terminal":false,"missionId":"528ef8b5-ae12-41b0-adb3-46a009a88d4d","operation":"execute_mission","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":null,"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"528ef8b5-ae12-41b0-adb3-46a009a88d4d"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5312,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-21T04:15:02.993976+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"545","receipt_type":"execute_mission","idempotency_key":"mission:528ef8b5-ae12-41b0-adb3-46a009a88d4d:execute_mission:repair_mission_pr_ready_retryable","mission_step_id":"911cc842-1ebc-422d-bbc5-376bc0f0251a","command_center_event_id":"528ef8b5-ae12-41b0-adb3-46a009a88d4d"},{"id":"11558ae3-e781-4b26-b536-5769a847cde1","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/forgejo-permanent-hardening-0908","reason":"retryable_provider_transport:POST:The operation was aborted due to timeout","status":"retryable","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.77-mcp-oauth-es256","prNumber":null,"terminal":false,"missionId":"a78a1407-c466-450c-b0bd-a05990918dff","operation":"execute_mission","proofGate":"repair_mission_execution_retryable","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":7508,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":0,"missionSetupMs":1431,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":1183,"ledgerReconcileMs":0,"lineageReconcileMs":248,"resolvePreflightMs":1431,"repositoryMutationMs":7508,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":1183,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"a78a1407-c466-450c-b0bd-a05990918dff"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1556,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-08T19:24:29.859478+00:00","proof_gate":"repair_mission_execution_retryable","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:a78a1407-c466-450c-b0bd-a05990918dff:execute_mission:repair_mission_execution_retryable:current-generation","mission_step_id":"6e32841f-32ab-4c5c-b520-863d6d0724e2","command_center_event_id":"a78a1407-c466-450c-b0bd-a05990918dff"},{"id":"11572a76-e696-44d1-bb7a-4c4695e95ed6","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-mtgp8zax","reason":"existing_branch_refresh_failed:1184:200","status":"blocked","metrics":{"receiptBytes":130200,"releaseCount":0,"toolCallCount":48,"repeatedCallCount":23,"ownerInterruptionCount":0},"version":"1.56.5-premium-motion-source-targets","prNumber":1184,"terminal":false,"missionId":"fbe3597e-9f43-4b0b-a3b3-02a9f3096a96","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"handlerMs":5758,"prReadinessMs":0,"approvedPlanMs":5758,"missionSetupMs":603,"shipAndProveMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"fbe3597e-9f43-4b0b-a3b3-02a9f3096a96"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":993,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"de8369b6-a78f-40bb-ae1f-28ffca62bc7e","created_at":"2026-08-31T03:57:04.312382+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":"1184","receipt_type":"execute_mission","idempotency_key":"mission:fbe3597e-9f43-4b0b-a3b3-02a9f3096a96:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"9b458f83-1309-4938-8413-dbd04f4a98e1","command_center_event_id":"fbe3597e-9f43-4b0b-a3b3-02a9f3096a96"},{"id":"11573a08-75e8-4b31-8af5-c7197635d613","source":"cc-execution","status":"source_resolution_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":null,"reason":null,"status":"source_resolution_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":null,"recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.293-scheduler-v2","prNumber":null,"terminal":false,"missionId":"47ff2c1c-f054-4fec-88a3-ea2f282cbcad","operation":"execute_mission","proofGate":"repair_mission_source_resolution_required","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1119,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":377,"providerAuthMs":0,"ledgerPrepareMs":377,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":377,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":377,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Supply exact sourceTargets on the same mission; planner guesses cannot replace missing mission scope.","receiptRef":{"mode":"full","missionId":"47ff2c1c-f054-4fec-88a3-ea2f282cbcad"},"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":1176,"likelyAffectedFiles":[],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-27T20:16:46.076649+00:00","proof_gate":"repair_mission_source_resolution_required","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:47ff2c1c-f054-4fec-88a3-ea2f282cbcad:execute_mission:repair_mission_source_resolution_required:current-generation","mission_step_id":"a002b2d3-2e5a-4b76-b7ad-6e68177b194d","command_center_event_id":"47ff2c1c-f054-4fec-88a3-ea2f282cbcad"},{"id":"1157aef7-d801-4960-a05f-968c8a029cd8","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/forgejo-provider-transport-reliability-20260906","reason":"retryable_provider_transport:PUT:The operation was aborted due to timeout","status":"retryable","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.68-visual-witness-self-heal-proof","prNumber":2002,"terminal":false,"missionId":"bbe450ac-8efa-4745-8a8f-c98149163993","operation":"execute_mission","proofGate":"repair_mission_execution_retryable","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":25202,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":0,"missionSetupMs":2692,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":239,"ledgerReconcileMs":0,"lineageReconcileMs":2453,"resolvePreflightMs":2692,"repositoryMutationMs":25202,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":239,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"bbe450ac-8efa-4745-8a8f-c98149163993"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1557,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-06T21:01:56.533395+00:00","proof_gate":"repair_mission_execution_retryable","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:bbe450ac-8efa-4745-8a8f-c98149163993:execute_mission:repair_mission_execution_retryable:current-generation","mission_step_id":"eb17651d-209c-4823-ac83-3ebd9e78f5d5","command_center_event_id":"bbe450ac-8efa-4745-8a8f-c98149163993"},{"id":"1157b72c-e7e8-4e1b-8d99-50f18b0b024a","source":"cc-execution","status":"source_resolution_required","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-29c22296399b","reason":null,"status":"source_resolution_required","metrics":{"receiptBytes":5579,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":1,"executorlessWaitMs":88448,"firstUsefulResultAt":"2026-09-30T21:07:06.468Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.26-paul-owner-cognition-v5","prNumber":null,"terminal":false,"missionId":"29c22296-399b-4db6-abb5-9ae9975d5740","operation":"execute_mission","proofGate":"repair_mission_source_resolution_required","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1423,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":338,"providerAuthMs":0,"ledgerPrepareMs":338,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":338,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":338,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Supply exact sourceTargets on the same mission; planner guesses cannot replace missing mission scope.","receiptRef":{"mode":"full","missionId":"29c22296-399b-4db6-abb5-9ae9975d5740"},"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":1177,"likelyAffectedFiles":[],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-30T21:07:06.50493+00:00","proof_gate":"repair_mission_source_resolution_required","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:29c22296-399b-4db6-abb5-9ae9975d5740:execute_mission:repair_mission_source_resolution_required:current-generation","mission_step_id":"78622675-70bb-4b73-8490-bff348c3cb32","command_center_event_id":"29c22296-399b-4db6-abb5-9ae9975d5740"},{"id":"115854a5-5fae-4571-815f-03726f63b9e1","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-88a610bb4f4a","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":2487,"terminal":false,"missionId":"88a610bb-4f4a-45cb-939b-a23fb58fc1d0","operation":"automatic_mission_resume","proofGate":"canonical_release_dispatched","sourceSha":"5d4c23039331561968e1d8951cb58a9ed1ed9fca","timingsMs":{"prReadinessMs":2259,"approvedPlanMs":0,"shipAndProveMs":11391,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"88a610bb-4f4a-45cb-939b-a23fb58fc1d0"},"performance":null,"deploymentId":"forgejo-main-5d4c23039331","workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1822,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-12T14:20:59.072873+00:00","proof_gate":"canonical_release_dispatched","source_sha":null,"external_id":"2487","receipt_type":"automatic_mission_resume","idempotency_key":"mission:88a610bb-4f4a-45cb-939b-a23fb58fc1d0:automatic-mission-resume:2487:canonical_release_dispatched","mission_step_id":"4c5f549c-3f67-431c-839a-86e323d9353a","command_center_event_id":"88a610bb-4f4a-45cb-939b-a23fb58fc1d0"},{"id":"1159fe8b-9654-4618-97af-f46c5ce760ac","source":"cc-execution","status":"release_reconciliation_pending","payload":{"ok":true,"jobId":"c3189e43-3122-4d3f-a130-3285fa0820bf","phase":"pull_request","branch":"ai/objective-first-repair-88715ace54dc","reason":null,"status":"release_reconciliation_pending","metrics":{"receiptBytes":168612,"releaseCount":0,"toolCallCount":28,"repeatedCallCount":15,"executorlessWaitMs":351779,"firstUsefulResultAt":"2026-09-29T19:30:03.738Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":4170,"terminal":false,"missionId":"88715ace-54dc-4957-a3cc-b4f76e98b1bf","operation":"automatic_mission_resume","proofGate":"canonical_release_reconciliation_pending","sourceSha":"c2ca31e10110f4888944ec96bff2c894acc89ac6","timingsMs":{"prReadinessMs":657,"approvedPlanMs":0,"shipAndProveMs":2797,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"reconcile_release","receiptRef":{"mode":"full","missionId":"88715ace-54dc-4957-a3cc-b4f76e98b1bf"},"performance":null,"deploymentId":"forgejo-main-c2ca31e10110","releaseState":null,"visualWitness":{"role":null,"jobId":"c3189e43-3122-4d3f-a130-3285fa0820bf","tenant":null,"runnerUrl":null,"runnerLane":null,"attemptsUsed":null,"supervisorId":null,"failureReason":null,"observedRoute":null,"runnerVersion":null,"attemptLineage":[],"missionOutcome":null,"requestedRoute":null,"runnerSourceSha":null,"selectedViewports":[],"checkpointAccounting":null,"correctiveGeneration":0,"restartReplayHistory":[]},"workflowRunId":null,"releaseTargets":{"frontend":true,"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":1802,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"9602e177-0cbb-496c-bdf5-2fbc93f1b859","created_at":"2026-09-29T19:36:01.028561+00:00","proof_gate":"canonical_release_reconciliation_pending","source_sha":null,"external_id":"4170","receipt_type":"automatic_mission_resume","idempotency_key":"mission:88715ace-54dc-4957-a3cc-b4f76e98b1bf:automatic-mission-resume:4170:canonical_release_reconciliation_pending","mission_step_id":"86452bc1-6087-4372-ba65-9b1bd19216e3","command_center_event_id":"88715ace-54dc-4957-a3cc-b4f76e98b1bf"},{"id":"115ccd79-0f12-441e-a72a-f2bdbdc2426c","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"CONTROL-PLANE OWNER VELOCITY + REQUEST FIDELITY REPAIR ONLY. Keep explicit owner requests literal and bounded, prevent source-planner domain drift, and route safe bounded frontend work away from the single heavy runner without weakening protected-main or Gate safety.","wordingChanged":false,"canonicalIntent":"CONTROL-PLANE OWNER VELOCITY + REQUEST FIDELITY REPAIR ONLY. Keep explicit owner requests literal and bounded, prevent source-planner domain drift, and route safe bounded frontend work away from the single heavy runner without weakening protected-main or Gate safety.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"literal-owner-intent","statement":"Specific explicit owner requests remain the authoritative implementation and acceptance contract; derived context may enrich but may not substitute, generalize, invent, or expand unrelated scope.","proofConditionIds":["proof-source","proof-runtime"]},{"id":"bounded-work-fast","statement":"Safe bounded frontend leaf work up to 12 files, including deterministically validated CSS presentation leaves, uses the existing serverless fast-gate path instead of waiting for the single heavy docker runner.","proofConditionIds":["proof-source","proof-runtime"]},{"id":"heavy-work-safe","statement":"Genuinely heavy or cross-system work continues to use the canonical physical KnockLaunch Gate and heavyJobsParallel remains 1.","proofConditionIds":["proof-source"]}],"objective":"CONTROL-PLANE OWNER VELOCITY + REQUEST FIDELITY REPAIR ONLY. Keep explicit owner requests literal and bounded, prevent source-planner domain drift, and route safe bounded frontend work away from the single heavy runner without weakening protected-main or Gate safety.","constraints":[{"id":"protected-main","statement":"Protected main, exact-head Gate, explicit auto-progress authorization, and greenGateAloneAuthorizesMerge=false remain intact.","proofConditionIds":["proof-source"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-source","kind":"repository","claim":"Merged main contains tested control-plane repair-intent source discovery, explicit mutation-target authority with no heuristic companion expansion, widened 12-file CSS-capable bounded serverless fast-gate eligibility, and unchanged heavy safety invariants.","route":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":["ccExecution"],"requiredReleaseTargets":[]},{"id":"proof-runtime","kind":"runtime","claim":"Live cc-execution is running the exact merged source SHA containing the owner-velocity/request-fidelity repair.","route":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":["ccExecution"],"requiredReleaseTargets":["ccExecution"]}],"validationErrors":[]},"requestContractHash":"76da9afcc91fc3739d9395586f2485309bd88478617d1617607471453e5a7e66","requestContractRevision":2,"previousRequestContractHash":"1cf083ff0c2ea0a62c71b4bd9abf673c6ce43b3678172848cafc5f09b42827d6"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-31T17:42:52.521543+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:84b2cdbb-ccd5-4983-b220-cda55e96088a:request-contract-revision:2:76da9afcc91fc3739d9395586f2485309bd88478617d1617607471453e5a7e66","mission_step_id":"54fce739-1fb4-4e9c-8c73-c36edaeb8fff","command_center_event_id":"84b2cdbb-ccd5-4983-b220-cda55e96088a"},{"id":"115df1cb-958a-470b-9cea-0d91e957637b","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-6673ff0caa04","writes":[],"patches":[],"version":1,"approved":true,"missionId":"6673ff0c-aa04-4b6a-a194-fe3cf5532c03","objective":"Continue the same platform-wide canonical MODES naming primitive repair using the exact shared MODE registry and PCG source already inspected.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":[],"anchored_edits":[{"path":"src/shells/modesTenantShell.ts","after":"export interface TenantModeCardConfig {\n  key: string;\n  title: string;\n  canonical_key?: string;\n  canonical_title?: string;\n  subtitle?: string;","before":"export interface TenantModeCardConfig {\n  key: string;\n  title: string;\n  subtitle?: string;"},{"path":"src/shells/modesTenantShell.ts","after":"export function modeToken(value: unknown): string {\n  return String(value || '').trim().toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '').slice(0, 80);\n}\n\nexport const MODE_NAME_CANONICAL_CONTRACT = 'MODE_NAME_CANONICAL_V1' as const;\n\nexport function canonicalizeTenantModeCards(cards: readonly TenantModeCardConfig[]): TenantModeCardConfig[] {\n  const seenKeys = new Set<string>();\n  const seenTitles = new Set<string>();\n  const canonical: TenantModeCardConfig[] = [];\n  for (const card of cards) {\n    const key = modeToken(card.canonical_key || card.key || card.title);\n    const title = String(card.canonical_title || card.title || '').trim();\n    const titleIdentity = modeToken(title);\n    if (!key || !title || !titleIdentity || seenKeys.has(key) || seenTitles.has(titleIdentity)) return [];\n    seenKeys.add(key);\n    seenTitles.add(titleIdentity);\n    canonical.push({ ...card, key, title, canonical_key: key, canonical_title: title, storage_slug: modeToken(card.storage_slug || key) || key });\n  }\n  return canonical;\n}\n\ntype TenantTypeModePreset","before":"export function modeToken(value: unknown): string {\n  return String(value || '').trim().toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '').slice(0, 80);\n}\n\ntype TenantTypeModePreset"},{"path":"src/shells/modesTenantShell.ts","after":"    const key = modeToken(card.canonical_key || card.key || card.id || card.title);\n    const title = String(card.canonical_title || card.title || card.label || '').trim();","before":"    const key = modeToken(card.key || card.id || card.title);\n    const title = String(card.title || card.label || '').trim();"},{"path":"src/shells/modesTenantShell.ts","after":"export function getTenantModeCards(tenant: any): TenantModeCardConfig[] {\n  if (!isModesTenant(tenant)) return [];\n  const configured = configuredModeCards(tenant);\n  const tenantTypePreset = applyHandymanModeShellPreset(tenant, applyEntertainmentModeShellPreset(tenant, applyEventRentalModeShellPreset(tenant, configured)));\n  return canonicalizeTenantModeCards(applyCurriModeShellPreset(tenant, tenantTypePreset)).map((card) => applyModeDefaultImage(tenant, card));\n}","before":"export function getTenantModeCards(tenant: any): TenantModeCardConfig[] {\n  if (!isModesTenant(tenant)) return [];\n  const configured = configuredModeCards(tenant);\n  const tenantTypePreset = applyHandymanModeShellPreset(tenant, applyEntertainmentModeShellPreset(tenant, applyEventRentalModeShellPreset(tenant, configured)));\n  return applyCurriModeShellPreset(tenant, tenantTypePreset).map((card) => applyModeDefaultImage(tenant, card));\n}"},{"path":"src/shells/modesTenantShell.ts","after":"  return canonicalizeTenantModeCards(selected);\n}\n\nexport function modeCardStoragePrefix","before":"  return selected;\n}\n\nexport function modeCardStoragePrefix"},{"path":"src/shells/modesTenantShell.ts","after":"  const normalizedCards = canonicalizeTenantModeCards(cards);","before":"  const normalizedCards = cards.map((card) => ({ ...card, key: modeToken(card.key), storage_slug: modeToken(card.storage_slug || card.key) || modeToken(card.key) }));"},{"path":"src/shells/modesTenantShell.ts","after":"  return { ...current, shell_template: MODES_TENANT_SHELL_KEY, modes: { ...currentModes, version: 4, capability_contract: MODES_TENANT_CAPABILITY_CONTRACT, canonical_name_contract: MODE_NAME_CANONICAL_CONTRACT, default_media_contract: MODE_DEFAULT_MEDIA_CONTRACT, activation_state: 'prepare', storage_namespaces: storageNamespaces, cards: normalizedCards } };","before":"  return { ...current, shell_template: MODES_TENANT_SHELL_KEY, modes: { ...currentModes, version: 3, capability_contract: MODES_TENANT_CAPABILITY_CONTRACT, default_media_contract: MODE_DEFAULT_MEDIA_CONTRACT, activation_state: 'prepare', storage_namespaces: storageNamespaces, cards: normalizedCards } };"},{"path":"src/pages/card-grading/PCGModesWorkspace.tsx","after":"  {id:'grading' as ModeId,assetKey:'grading',title:'Grading',short:'Grading',copy:'Run the grading queue, inspection, grades, slab and label work, and QA.',icon:Clock3,accent:'#a83cff',image:PCG_WORKSPACE_BACKGROUND,position:'68% 52%'},","before":"  {id:'grading' as ModeId,assetKey:'grading',title:'Grading',short:'In Grading',copy:'Run the grading queue, inspection, grades, slab and label work, and QA.',icon:Clock3,accent:'#a83cff',image:PCG_WORKSPACE_BACKGROUND,position:'68% 52%'},"},{"path":"src/pages/card-grading/PCGModesWorkspace.tsx","after":"  {id:'listings' as ModeId,assetKey:'completed',title:'Listings',short:'Listings',copy:'Manage website and eBay listings, pricing, sold state and channel sync.',icon:CheckCircle2,accent:'#00e676',image:PCG_CARD_IMAGE,position:'62% 48%'},","before":"  {id:'listings' as ModeId,assetKey:'completed',title:'Listings',short:'Ready to List',copy:'Manage website and eBay listings, pricing, sold state and channel sync.',icon:CheckCircle2,accent:'#00e676',image:PCG_CARD_IMAGE,position:'62% 48%'},"},{"path":"src/pages/card-grading/PCGModesWorkspace.tsx","after":"        {modes.map(({id,title,icon:Icon,accent})=><button","before":"        {modes.map(({id,short,icon:Icon,accent})=><button"},{"path":"src/pages/card-grading/PCGModesWorkspace.tsx","after":"<div className=\"mt-1 truncate text-[8px] font-black uppercase tracking-[.08em] text-white/35 sm:text-[9px]\">{title}</div>","before":"<div className=\"mt-1 truncate text-[8px] font-black uppercase tracking-[.08em] text-white/35 sm:text-[9px]\">{short}</div>"}],"implementation":{"files":[],"writes":[]},"requestContract":null,"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":"6673ff0c-aa04-4b6a-a194-fe3cf5532c03","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":"4b679a014d1a8ee7e5367cd53e46625553caa8873f488ba5d1e75ed9fc5f1f36","replayCount":0,"serializedBytes":6990},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T04:12:42.755354+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:6673ff0c-aa04-4b6a-a194-fe3cf5532c03:repository-mutation-intent:4b679a014d1a8ee7e5367cd53e46625553caa8873f488ba5d1e75ed9fc5f1f36:0","mission_step_id":"0c5d2c83-e511-42cb-80e6-e1948fc4e3f2","command_center_event_id":"6673ff0c-aa04-4b6a-a194-fe3cf5532c03"},{"id":"115ed7a5-7c68-41ba-ac8c-1ad4f5806cd2","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"d4b2db0be2ef7626e4592ce173519923aa0fd7dc","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"safe-engine","satisfied":true,"statement":"PCG has a tenant-owner-only staged migration engine with create, stage, analyze, commit, and reconciliation phases.","proofConditionIds":["runtime"]},{"id":"idempotent-import","satisfied":true,"statement":"The engine uses stable import keys and cert-number rechecks so repeated legacy imports classify duplicates instead of duplicating canonical cards.","proofConditionIds":["runtime"]},{"id":"archive-behavior","satisfied":true,"statement":"Committed historical legacy cards land in terminal archived PCG submissions and retain source/image provenance without entering active grading work.","proofConditionIds":["runtime"]}],"satisfied":true,"constraints":[{"id":"no-delete","satisfied":true,"statement":"The engine never deletes existing PCG cards/submissions during migration.","proofConditionIds":["runtime"]},{"id":"explicit-commit","satisfied":true,"statement":"Canonical writes require explicit IMPORT confirmation after analysis.","proofConditionIds":["runtime"]},{"id":"pcg-owner-only","satisfied":true,"statement":"Migration actions require an authenticated PCG tenant owner or platform admin; health may remain public.","proofConditionIds":["runtime"]},{"id":"scope","satisfied":true,"statement":"Only supabase/functions/pcg-legacy-import/index.ts and supabase/config.toml may change.","proofConditionIds":["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":["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":["runtime"]}],"contractHash":"2437d519393d3cb10abffad249fe6e346f32090611cf64b5a2b3f070d266309a","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"runtime","kind":"runtime","evidence":{"reason":null,"satisfied":true,"releaseState":"verified","missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{"supabaseEdge":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["supabaseEdge"],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"migrationReleaseVerified":null,"releaseRequestContractHash":"2437d519393d3cb10abffad249fe6e346f32090611cf64b5a2b3f070d266309a"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["supabaseEdge"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T02:19:37.069875+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"d4b2db0be2ef7626e4592ce173519923aa0fd7dc","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:677188ce-7da4-4ef0-9a08-05fac5bf238f:request-contract:2437d519393d3cb10abffad249fe6e346f32090611cf64b5a2b3f070d266309a:d4b2db0be2ef7626e4592ce173519923aa0fd7dc:verified:","mission_step_id":"8a67cdcb-60e9-4c8f-8678-63e80d415626","command_center_event_id":"677188ce-7da4-4ef0-9a08-05fac5bf238f"},{"id":"11606e1f-df1c-40b0-9b99-b5d65ee5b1cb","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/cancelled-release-ancestry-fallback","reason":"fresh_pr_provider_receipt_already_proves_auto_progress_gate_notifier_owns_next_state","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.152-cancelled-release-current-main","prNumber":2854,"terminal":false,"missionId":"3e74ccfd-4a3b-4ce9-b1a1-a5c7ca44ef77","operation":"execute_mission","proofGate":"repair_mission_fresh_pr_handed_off_to_gate","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":16734,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":0,"missionSetupMs":1988,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":1988,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":1988,"repositoryMutationMs":16734,"repositoryProviderMs":12953,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":5722,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":1988,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":7231},"nextAction":"Canonical KnockLaunch Gate notifier and mission supervisor own progression from this exact PR head; do not synchronously poll Forgejo from the owner request.","receiptRef":{"mode":"full","missionId":"3e74ccfd-4a3b-4ce9-b1a1-a5c7ca44ef77"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3845,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-15T19:23:20.236578+00:00","proof_gate":"repair_mission_fresh_pr_handed_off_to_gate","source_sha":null,"external_id":"2854","receipt_type":"execute_mission","idempotency_key":"mission:3e74ccfd-4a3b-4ce9-b1a1-a5c7ca44ef77:execute_mission:repair_mission_fresh_pr_handed_off_to_gate:current-generation","mission_step_id":"45387026-62de-4b0a-b204-afffabcf528a","command_center_event_id":"3e74ccfd-4a3b-4ce9-b1a1-a5c7ca44ef77"},{"id":"116158ef-d011-4c97-b003-2cb0d6a57467","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/fix-forgejo-host-control-mcp-dispatch-20260826","reason":"The operation was aborted due to timeout","status":"retryable","metrics":{"receiptBytes":6830,"releaseCount":0,"toolCallCount":5,"repeatedCallCount":2,"ownerInterruptionCount":0},"version":"1.51.4-forgejo-host-control","prNumber":782,"terminal":false,"missionId":"5893202c-fea6-4595-9922-20db9a65b744","operation":"execute_mission","proofGate":"canonical_release_transport_retryable","sourceSha":null,"timingsMs":{"handlerMs":34930,"prReadinessMs":2943,"approvedPlanMs":0,"missionSetupMs":319,"shipAndProveMs":30873},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"5893202c-fea6-4595-9922-20db9a65b744"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5125,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-26T18:07:47.853708+00:00","proof_gate":"canonical_release_transport_retryable","source_sha":null,"external_id":"782","receipt_type":"execute_mission","idempotency_key":"mission:5893202c-fea6-4595-9922-20db9a65b744:execute_mission:canonical_release_transport_retryable","mission_step_id":"7544ff6e-2668-407b-92c8-6d36cd551532","command_center_event_id":"5893202c-fea6-4595-9922-20db9a65b744"},{"id":"1162a769-e49a-472d-bbfb-eae8c29b7a64","source":"cc-execution","status":"waiting","payload":{"kind":"heartbeat","message":"Still active in release.","nextAction":{"lane":"cc-execution","action":"reconcile_pull_request","reason":"pull_request_exists_without_merged_source","automationAllowed":true,"ownerActionRequired":false},"silenceBudgetMs":15000,"semanticCheckpointSignature":"{\"stateMachineVersion\":1,\"phase\":\"release\",\"ownerFacingState\":null,\"latest\":{\"kind\":\"receipt\",\"key\":\"owner_progress_heartbeat\",\"status\":\"waiting\",\"proofGate\":\"owner_progress_heartbeat\"},\"activeStep\":{\"key\":\"preflight\",\"status\":\"ready\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"implementation\",\"status\":\"pending\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"reconcile_pull_request\",\"lane\":\"cc-execution\",\"reason\":\"pull_request_exists_without_merged_source\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_pull_request\",\"recoveryOwner\":\"cc-execution\"},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-pcg-mobile-vault-controls\"]},\"stall\":{\"stalled\":true,\"reason\":\"step_deadline_exceeded\",\"step\":\"release\",\"deadlineAt\":\"2026-10-06T05:55:56.623616+00:00\",\"recoveryAction\":\"reconcile_pull_request\"},\"blocker\":null,\"terminal\":false,\"branch\":null,\"prNumber\":5147,\"sourceSha\":null,\"deploymentId\":null}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T06:20:04.059802+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:b78054b5-ff74-493d-9d49-b3305dbc800c:owner-progress-heartbeat:119417840","mission_step_id":"986497ca-c7bb-469a-819a-206da30cca37","command_center_event_id":"b78054b5-ff74-493d-9d49-b3305dbc800c"},{"id":"11634fde-bf3c-4040-b0e3-4d1565b2e3f2","source":"cc-execution","status":"release_verification_pending","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":null,"reason":null,"status":"release_verification_pending","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.31.27-tenant-scope-security","prNumber":4528,"terminal":false,"missionId":"70577105-2484-480e-a6b7-4fa60fede228","operation":"ship_and_prove","proofGate":"ship_and_prove_release_pending","sourceSha":"7e726011db011f131631722e06d39f6845f7ced9","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"70577105-2484-480e-a6b7-4fa60fede228"},"performance":null,"deploymentId":"canonical-release-7e726011db01","workflowRunId":31397841828,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1342,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"c55998b4-82a3-467e-8d35-177bb4785f6e","created_at":"2026-08-10T14:23:04.972228+00:00","proof_gate":"ship_and_prove_release_pending","source_sha":"7e726011db011f131631722e06d39f6845f7ced9","external_id":"canonical-release-7e726011db01","receipt_type":"ship_and_prove","idempotency_key":"mission:70577105-2484-480e-a6b7-4fa60fede228:ship_and_prove:ship_and_prove_release_pending:7e726011db011f131631722e06d39f6845f7ced9:31397841828","mission_step_id":"5e6cd532-f669-450a-a8fe-37a1dd2516bb","command_center_event_id":"70577105-2484-480e-a6b7-4fa60fede228"},{"id":"1166adf3-b0b5-454d-bf81-b234b71d3616","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-7791ad07591c","writes":[],"patches":[],"version":1,"approved":true,"missionId":"7791ad07-591c-40c5-9b55-60767bb92a7b","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/pages/settings/TenantSettingsPageWithWebsiteAssets.tsx"],"anchored_edits":[{"path":"src/pages/settings/TenantSettingsPageWithWebsiteAssets.tsx","anchor":"  const activePage=builderPages.find(page=>page.label===selectedPage)||builderPages[0];\n  React.useEffect(()=>{const next=asRecord(asRecord(activeTenant?.settings).public_site_builder);setDraft(normalizeBuilder(next.draft||next.published))},[activeTenant?.id]);","replacement":"  const activePage=builderPages.find(page=>page.label===selectedPage)||builderPages[0];\n  const previewHostRef=React.useRef<HTMLDivElement|null>(null);const[desktopHostWidth,setDesktopHostWidth]=React.useState(1440);const[analysis,setAnalysis]=React.useState<{assets:number;images:number;videos:number;visibleSections:number;missingSlots:string[]}|null>(null);\n  React.useEffect(()=>{const next=asRecord(asRecord(activeTenant?.settings).public_site_builder);setDraft(normalizeBuilder(next.draft||next.published))},[activeTenant?.id]);\n  React.useLayoutEffect(()=>{if(device!=='desktop'||previewMode!=='live')return;const node=previewHostRef.current;if(!node)return;const sync=()=>setDesktopHostWidth(Math.max(1,node.clientWidth));sync();const observer=new ResizeObserver(sync);observer.observe(node);return()=>observer.disconnect()},[device,previewMode,selectedPage]);\n  const analyzeSite=async()=>{if(!tenantId||busy)return;setBusy('analyze');try{const{data,error}=await supabase.functions.invoke('tenant-media-library',{body:{action:'list',tenantId}});if(error||!data?.ok)throw new Error(data?.error||'Could not analyze website media.');const siteAssets=(Array.isArray(data.assets)?data.assets:[]).filter((asset:MediaAsset)=>String(asset.collection_key||'').startsWith('public-site'));const missingSlots=WEBSITE_ASSET_SLOTS.filter(slot=>slot.replace&&!siteAssets.some((asset:MediaAsset)=>asset.collection_key===slot.collection)).map(slot=>slot.label);setAnalysis({assets:siteAssets.length,images:siteAssets.filter((asset:MediaAsset)=>String(asset.mime_type||'').startsWith('image/')).length,videos:siteAssets.filter((asset:MediaAsset)=>String(asset.mime_type||'').startsWith('video/')).length,visibleSections:draft.order.filter(key=>draft.sections[key].visible).length,missingSlots});toast.success('Site and imagery analyzed.')}catch(error:any){toast.error(error?.message||'Website analysis failed.')}finally{setBusy('')}};"},{"path":"src/pages/settings/TenantSettingsPageWithWebsiteAssets.tsx","anchor":"<div className=\"flex flex-wrap gap-2\"><button type=\"button\" disabled={!!busy} onClick={()=>void persist('discard')} className=\"min-h-10 rounded-xl border border-white/12 px-3 text-xs font-black\">Discard</button>","replacement":"<div className=\"flex flex-wrap gap-2\"><button type=\"button\" disabled={!!busy} onClick={()=>void analyzeSite()} className=\"min-h-10 rounded-xl border border-[#e4c77f]/35 bg-[#e4c77f]/10 px-3 text-xs font-black text-[#f0d38b]\">{busy==='analyze'?'Analyzing…':'Analyze Site & Imagery'}</button><button type=\"button\" disabled={!!busy} onClick={()=>void persist('discard')} className=\"min-h-10 rounded-xl border border-white/12 px-3 text-xs font-black\">Discard</button>"},{"path":"src/pages/settings/TenantSettingsPageWithWebsiteAssets.tsx","anchor":"    <div className=\"mt-4 grid gap-3 xl:grid-cols-[220px_minmax(0,1fr)_300px]\">","replacement":"    {analysis?<div className=\"mt-3 rounded-xl border border-[#e4c77f]/20 bg-[#e4c77f]/[.06] px-4 py-3 text-xs text-white/70\" data-website-analysis=\"ready\"><span className=\"font-black text-[#f0d38b]\">Site analysis:</span> {analysis.assets} website assets ({analysis.images} images · {analysis.videos} videos) · {analysis.visibleSections} visible Home sections{analysis.missingSlots.length?` · Missing assigned media: ${analysis.missingSlots.join(', ')}`:' · All assigned media slots populated'}.</div>:null}\n    <div className=\"mt-4 grid gap-3 xl:grid-cols-[220px_minmax(0,1fr)_300px]\">"},{"path":"src/pages/settings/TenantSettingsPageWithWebsiteAssets.tsx","anchor":"<div className=\"mx-auto w-full overflow-hidden rounded-2xl border border-white/10 bg-black shadow-2xl\" data-builder-live-preview={activePage.path} data-builder-desktop-viewport=\"1440\"><div className=\"relative h-[540px] w-full overflow-hidden\"><iframe key={activePage.path+'-desktop'} src={activePage.path} title={'Live desktop preview — '+activePage.label} className=\"absolute left-0 top-0 block h-[920px] w-[1440px] origin-top-left scale-[0.58] border-0 bg-black\" /></div></div>","replacement":"<div ref={previewHostRef} className=\"mx-auto w-full overflow-hidden rounded-2xl border border-white/10 bg-black shadow-2xl\" data-builder-live-preview={activePage.path} data-builder-desktop-viewport=\"1440\"><div className=\"relative w-full overflow-hidden\" style={{height:Math.round(920*Math.min(1,desktopHostWidth/1440))}}><iframe key={activePage.path+'-desktop'} src={activePage.path} title={'Live desktop preview — '+activePage.label} className=\"absolute left-0 top-0 block border-0 bg-black\" style={{width:1440,height:920,transform:`scale(${Math.min(1,desktopHostWidth/1440)})`,transformOrigin:'top left'}} /></div></div>"}],"implementation":{"files":[],"writes":[]},"requestContract":null,"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":"7791ad07-591c-40c5-9b55-60767bb92a7b","ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/pages/settings/TenantSettingsPageWithWebsiteAssets.tsx"],"requestContract":null,"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":"Prime structured exact mutation continuation"},"proofRequirements":null,"controlPlaneUnfreeze":true,"durableMutationResume":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":"Prime structured exact mutation continuation"},"recovery":false,"fingerprint":"dd195c8a6d2b4d59caa2470f1c19a2325785eca67df2e34378fa6f57714486b8","replayCount":0,"serializedBytes":6223},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-05T19:48:46.373432+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:7791ad07-591c-40c5-9b55-60767bb92a7b:repository-mutation-intent:dd195c8a6d2b4d59caa2470f1c19a2325785eca67df2e34378fa6f57714486b8:0","mission_step_id":"068bbcd6-4863-4023-8996-962b72674990","command_center_event_id":"7791ad07-591c-40c5-9b55-60767bb92a7b"},{"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":"11686bab-f889-43b3-869f-6b20a03c9d59","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\":\"canonical_release_status\",\"status\":\"pending\",\"proofGate\":\"canonical_release_pending\"},\"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},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_release\",\"recoveryOwner\":\"production-release-conductor\"},\"acceptance\":{\"total\":2,\"verified\":0,\"pending\":2,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-repo\",\"proof-runtime\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"visual_proof\",\"deadlineAt\":\"2026-10-04T14:22:26.574255+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/objective-first-repair-e703a527270e\",\"prNumber\":4733,\"sourceSha\":\"fb31bc0fbb2e841a260533c1d13dfad607c85da8\",\"deploymentId\":\"forgejo-main-fb31bc0fbb2e\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-04T10:28:37.252711+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:e703a527-270e-4265-a49f-42123a642293:owner-progress-heartbeat:119407314","mission_step_id":"6049476b-32d2-4dc0-9e8c-93e2f0019b0e","command_center_event_id":"e703a527-270e-4265-a49f-42123a642293"},{"id":"1168b39a-44ec-41e0-bd2a-a1e3a07b5ef8","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-cc47304f3c0b","reason":"fresh_pr_provider_receipt_already_proves_auto_progress_gate_notifier_owns_next_state","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.161-forgejo-repository-file-pagination","prNumber":2905,"terminal":false,"missionId":"cc47304f-3c0b-46b1-a0d4-49c13454a945","operation":"execute_mission","proofGate":"repair_mission_fresh_pr_handed_off_to_gate","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":6747,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":0,"missionSetupMs":466,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":347,"ledgerReconcileMs":0,"lineageReconcileMs":119,"resolvePreflightMs":466,"repositoryMutationMs":6747,"repositoryProviderMs":5388,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2598,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":347,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":2790},"nextAction":"Canonical KnockLaunch Gate notifier and mission supervisor own progression from this exact PR head; do not synchronously poll Forgejo from the owner request.","receiptRef":{"mode":"full","missionId":"cc47304f-3c0b-46b1-a0d4-49c13454a945"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3808,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-16T14:45:54.596803+00:00","proof_gate":"repair_mission_fresh_pr_handed_off_to_gate","source_sha":null,"external_id":"2905","receipt_type":"execute_mission","idempotency_key":"mission:cc47304f-3c0b-46b1-a0d4-49c13454a945:execute_mission:repair_mission_fresh_pr_handed_off_to_gate:current-generation","mission_step_id":"5a77bacb-62ed-438c-8557-5b2f23e5d7cd","command_center_event_id":"cc47304f-3c0b-46b1-a0d4-49c13454a945"},{"id":"116b0170-b17b-4beb-b057-436816b7af47","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-5a628af5a0ed","reason":"anchored_edit_invalid","status":"blocked","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.113-orphan-cache-absence-proof","prNumber":null,"terminal":false,"missionId":"5a628af5-a0ed-4d0d-b6cc-6ad4776ccff7","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":2685,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":0,"missionSetupMs":885,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":542,"ledgerReconcileMs":0,"lineageReconcileMs":343,"resolvePreflightMs":885,"repositoryMutationMs":2685,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":542,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"5a628af5-a0ed-4d0d-b6cc-6ad4776ccff7"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1425,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-12T00:26:53.316247+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:5a628af5-a0ed-4d0d-b6cc-6ad4776ccff7:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"2bf56756-02ba-425e-8848-763cd1edec77","command_center_event_id":"5a628af5-a0ed-4d0d-b6cc-6ad4776ccff7"},{"id":"116bc085-89bc-4e48-9195-24464a675893","source":"cc-execution","status":"blocked","payload":{"reason":"anchored_edit_anchor_not_unique:supabase/functions/send-email/index.ts","fingerprint":"780947c20a1e35c12de012d22b1509da8a326014c89d85a5b2e7c63bf5acb851"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T17:49:18.863969+00:00","proof_gate":"repository_mutation_intent_deterministic_failure","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent_blocked","idempotency_key":"mission:0bf4339b-9602-4efe-bd74-795c8e9d6282:repository-mutation-intent-blocked:780947c20a1e35c12de012d22b1509da8a326014c89d85a5b2e7c63bf5acb851","mission_step_id":"bf5cf33a-34ac-4bb5-b32a-848abe361f58","command_center_event_id":"0bf4339b-9602-4efe-bd74-795c8e9d6282"},{"id":"116c57f7-8f5c-44e8-8446-ae343ace9697","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-181f544ef91a","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":1905,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":"2026-09-27T15:32:16.804Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.293-scheduler-v2","prNumber":3882,"terminal":false,"missionId":"181f544e-f91a-4eec-9b78-1f5b27d7bf09","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":3233,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":560,"missionSetupMs":213,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":213,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":213,"repositoryMutationMs":2673,"repositoryProviderMs":2673,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":1690,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":213,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":983},"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":"181f544e-f91a-4eec-9b78-1f5b27d7bf09"},"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":3290,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-27T15:34:01.619687+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3882","receipt_type":"execute_mission","idempotency_key":"mission:181f544e-f91a-4eec-9b78-1f5b27d7bf09:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"759d024c-4314-4746-90b3-42ed60d796a0","command_center_event_id":"181f544e-f91a-4eec-9b78-1f5b27d7bf09"},{"id":"116caa3d-00ba-438a-bb68-4e5d366422ba","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":null,"reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":2187,"releaseCount":0,"toolCallCount":2,"repeatedCallCount":1,"ownerInterruptionCount":0},"version":"1.50.16-onrunner-release-ownership","prNumber":649,"terminal":false,"missionId":"0b59a575-bc10-45f1-a71a-3785e4cef73b","operation":"execute_mission","proofGate":"canonical_release_dispatched","sourceSha":"c5fffa9304388f96d4a44eea9d14a9bc5cc644a6","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"0b59a575-bc10-45f1-a71a-3785e4cef73b"},"performance":null,"deploymentId":"forgejo-main-c5fffa930438","workflowRunId":null,"releaseTargets":{"frontend":false,"onrunner":true,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":6125,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-24T01:14:52.442663+00:00","proof_gate":"canonical_release_dispatched","source_sha":"c5fffa9304388f96d4a44eea9d14a9bc5cc644a6","external_id":"forgejo-main-c5fffa930438","receipt_type":"execute_mission","idempotency_key":"mission:0b59a575-bc10-45f1-a71a-3785e4cef73b:execute_mission:canonical_release_dispatched","mission_step_id":"f32484a7-8189-462f-bbd0-4a2efd2ee68d","command_center_event_id":"0b59a575-bc10-45f1-a71a-3785e4cef73b"},{"id":"116f4f8f-f597-40cc-a704-82f5688b3b36","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/support-projection-owner-guard","reason":"pull_request_checks_pending","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.182-witness-render-cold-start-aware","prNumber":3078,"terminal":false,"missionId":"b51444be-87c3-4055-ba5d-6a8dc589cdbd","operation":"execute_mission","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":2348,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":1662,"approvedPlanMs":0,"missionSetupMs":607,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":279,"ledgerReconcileMs":0,"lineageReconcileMs":328,"resolvePreflightMs":607,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":279,"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":"b51444be-87c3-4055-ba5d-6a8dc589cdbd"},"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":1966,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-18T04:09:33.257799+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"3078","receipt_type":"execute_mission","idempotency_key":"mission:b51444be-87c3-4055-ba5d-6a8dc589cdbd:execute_mission:repair_mission_waiting_for_gate:current-generation","mission_step_id":"ef2b733d-3c0c-433f-928b-2f85d7cfcfd6","command_center_event_id":"b51444be-87c3-4055-ba5d-6a8dc589cdbd"},{"id":"116fc8a2-6f94-4510-a6da-9a55465c83bb","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-81967229bd6a","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.215-zero-target-proof-reconciliation","prNumber":null,"terminal":false,"missionId":"81967229-bd6a-4221-9ad5-df3f705c1930","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":109,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":415,"providerAuthMs":0,"ledgerPrepareMs":415,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":415,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":415,"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":"81967229-bd6a-4221-9ad5-df3f705c1930"},"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":7144,"likelyAffectedFiles":["scripts/resolve-production-workflow-run.mjs","scripts/visual-witness-hosted-runner/src/mission-supervisor.mjs","config/capabilities/big-papis-proposal-workflow.json","scripts/visual-witness-hosted-runner/RELEASE_TRIGGER.md"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-23T00:05:31.755199+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:81967229-bd6a-4221-9ad5-df3f705c1930:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"6257f72c-7e12-4d1a-8801-2ff45dc315b6","command_center_event_id":"81967229-bd6a-4221-9ad5-df3f705c1930"},{"id":"117111f8-c4aa-45f8-8a05-f240f1165278","source":"cc-execution","status":"authorized","payload":{"paths":["config/capabilities/platform-sidekick-intelligence.json","config/paul-owner-profile.json","config/platform-sidekick-intelligence.json","workers/cc-execution/src/platform-sidekick-intelligence.js","workers/cc-execution/src/version.js"],"reason":"Propagate the owner-approved readiness-lockdown/self-healing doctrine into PAUL's canonical shared intelligence, durable policy/evaluation contracts, and cc-execution runtime identity.","baseSha":"b688914aaab7832af5886b912dbb6f3cb6131c9f","issuedAt":1790698789272,"expiresAt":1790698969272,"missionId":"c35ec075-e42e-4529-890d-b8e10159e3c6","authorizationId":"e3c1e2f3-a84f-4f47-93e3-f08cde17857a","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T16:19:49.579724+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"b688914aaab7832af5886b912dbb6f3cb6131c9f","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:e3c1e2f3-a84f-4f47-93e3-f08cde17857a","mission_step_id":"c1733b94-e020-4827-a00a-d5dd35b7de03","command_center_event_id":"c35ec075-e42e-4529-890d-b8e10159e3c6"},{"id":"1171143e-e7a6-40f2-b488-005fe491b87a","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-bedc932abf93","reason":"pull_request_closed_requires_explicit_reopen","status":"retryable","metrics":{"receiptBytes":92082,"releaseCount":0,"toolCallCount":64,"repeatedCallCount":54,"executorlessWaitMs":1748205,"firstUsefulResultAt":"2026-10-06T19:43:47.587Z","recoveryAttemptCount":26,"ownerInterruptionCount":0},"version":null,"prNumber":5232,"terminal":false,"missionId":"bedc932a-bf93-42f9-93c5-aeaf11edd9a6","operation":"automatic_mission_resume","proofGate":"repair_mission_auto_progress_authorization_retryable","sourceSha":"9c87f44929d08fc40b16d7328e44697386893b98","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":"bedc932a-bf93-42f9-93c5-aeaf11edd9a6"},"performance":null,"deploymentId":null,"releaseState":"pending","workflowRunId":null,"releaseTargets":{"frontend":false,"migrations":false,"ccExecution":true,"supabaseEdge":false},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["repository"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":735,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T19:53:43.291311+00:00","proof_gate":"repair_mission_auto_progress_authorization_retryable","source_sha":null,"external_id":"5232","receipt_type":"automatic_mission_resume","idempotency_key":"mission:bedc932a-bf93-42f9-93c5-aeaf11edd9a6:automatic-mission-resume:5232:repair_mission_auto_progress_authorization_retryable","mission_step_id":"55f4fd3e-7236-4967-9690-3483c263d1cf","command_center_event_id":"bedc932a-bf93-42f9-93c5-aeaf11edd9a6"},{"id":"11728e45-4d69-45df-8def-a0a3af481516","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Continue the existing repair generation for PR #1291 on branch ai/objective-first-repair-mtj13kkb. Fix only the missing false branch in the pathname ternary in src/components/TenantRouter.tsx, preserve all other PR changes, then regate and ship.","wordingChanged":false,"canonicalIntent":"Continue the existing repair generation for PR #1291 on branch ai/objective-first-repair-mtj13kkb. Fix only the missing false branch in the pathname ternary in src/components/TenantRouter.tsx, preserve all other PR changes, then regate and ship.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"outcome-media","statement":"Existing media is copied into canonical generated-media/<company_slug>/ folders based on current tenant/routing truth and verified before cleanup.","proofConditionIds":["proof-storage"]},{"id":"outcome-source","statement":"Future tenant provisioning includes Logo, Advertisements, Backgrounds, Videos plus trade-specific folders, and Redfish uses the canonical Backgrounds object path.","proofConditionIds":["proof-source","proof-gate","proof-release"]}],"objective":"Continue the existing repair generation for PR #1291 on branch ai/objective-first-repair-mtj13kkb. Fix only the missing false branch in the pathname ternary in src/components/TenantRouter.tsx, preserve all other PR changes, then regate and ship.","constraints":[{"id":"constraint-routing","statement":"Use current canonical company_slug and route ownership; do not create storage roots from legacy route aliases.","proofConditionIds":["proof-storage","proof-source"]},{"id":"constraint-safety","statement":"Do not overwrite newer media; preserve originals until destination and active references are verified.","proofConditionIds":["proof-storage"]},{"id":"constraint-scope","statement":"Do not change route behavior or unrelated UI.","proofConditionIds":["proof-source","proof-gate"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-storage","kind":"runtime","claim":"Canonical generated-media destination objects exist for migrated media and routing aliases are not used as canonical storage roots.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"proof-source","kind":"repository","claim":"Current Forgejo main contains the four universal media folders and Redfish canonical Backgrounds URL.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"proof-gate","kind":"repository","claim":"KnockLaunch Gate passes on the exact PR head before merge.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"proof-release","kind":"runtime","claim":"Affected production targets are released from the merged source.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}],"validationErrors":[]},"requestContractHash":"4b3b9a608117f3b71fea4c7998718eefccfd6dc68cf5359f663b27ea9db05e2a","requestContractRevision":2,"previousRequestContractHash":"7e1b9c77c22698b1af34cf010b9a81afc47bca09a52a816cd744c946ad14e2b6"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-01T19:01:38.544197+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:fc4a55dc-de27-4185-ae35-1c4dfe06f587:request-contract-revision:2:4b3b9a608117f3b71fea4c7998718eefccfd6dc68cf5359f663b27ea9db05e2a","mission_step_id":"b4423cc5-1b76-46f8-b1e9-19d7d3034269","command_center_event_id":"fc4a55dc-de27-4185-ae35-1c4dfe06f587"},{"id":"1173310a-ed5b-4bc5-bc6b-6e8c051642b2","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","cc-execution/runtime-proof":"pending","supabase-edge-production/live":"pending"},"mainSha":"eb344d36922c3078aeb08a4685e1004ecb99db25","missing":[],"pending":["forgejo-release/workflow","cc-execution/runtime-proof","supabase-edge-production/live"],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof","supabase-edge-production/live"],"sourceSha":"eb344d36922c3078aeb08a4685e1004ecb99db25","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":false,"migrations":false,"ccExecution":true,"supabaseEdge":true,"edgeFunctionSlugs":["ai-respond","operator-respond"]},"releaseTargetStates":{"ccExecution":"pending","supabaseEdge":"pending"},"requestContractHash":"e4021c3d6ac5397015019d80e93e7c0d053dd0576b64049365c80ee3f7626a51","forgejoWorkflowProof":{"runId":13121,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"ccExecution":"pending","supabaseEdge":"pending"},"targetJobCount":6,"observedTargetStates":{"ccExecution":"pending","supabaseEdge":"pending"}},"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"ffdf4b31f58de81c4cc9b643eefecaa36f2c7563","deploymentId":"forgejo-main-ffdf4b31f58de81c4cc9b643eefecaa36f2c7563","compareStatus":null,"identitySource":"local_build_metadata","runtimeVersion":"1.64.6-paul-foreground-readiness-budget","containsSourceSha":false},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T17:37:41.987675+00:00","proof_gate":"canonical_release_pending","source_sha":"eb344d36922c3078aeb08a4685e1004ecb99db25","external_id":"forgejo-main-eb344d36922c","receipt_type":"canonical_release_status","idempotency_key":"mission:8d4f9482-dd6f-46ec-99eb-bb10fc341d37:forgejo-release-status:eb344d36922c3078aeb08a4685e1004ecb99db25:pending:forgejo-main/source=success|forgejo-release/workflow=pending|cc-execution/runtime-proof=pending|supabase-edge-production/live=pending","mission_step_id":"0bfa1983-ebfa-4dec-822d-4d601b3c45b4","command_center_event_id":"8d4f9482-dd6f-46ec-99eb-bb10fc341d37"},{"id":"1174fd7a-f820-4455-8b2f-41cc284762dd","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"6b66cb5270a16341072b212fc2c9891b61e7168a","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"6b66cb5270a16341072b212fc2c9891b61e7168a","releaseState":"pending","sourceInMain":true,"compareStatus":"identical","releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"requestContractHash":"9a1dc3eb099734249e7cde32d9099918da426d11afde512848b6e14e98077589","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/3663","runId":3663,"status":"running","sourceSha":"6b66cb5270a16341072b212fc2c9891b61e7168a","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-30T18:53:23.23895+00:00","proof_gate":"canonical_release_pending","source_sha":"6b66cb5270a16341072b212fc2c9891b61e7168a","external_id":"forgejo-main-6b66cb5270a1","receipt_type":"canonical_release_status","idempotency_key":"mission:a059c0e6-2b2d-408d-9cec-6cba0531c3fd:forgejo-release-status:6b66cb5270a16341072b212fc2c9891b61e7168a:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"a002d5d6-1141-44f5-b825-aad803ba21a3","command_center_event_id":"a059c0e6-2b2d-408d-9cec-6cba0531c3fd"},{"id":"1178edcc-8fd1-4d48-acc9-8e91729cc1a1","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"af64aea56fa1ada869af4fe940267afe113292b6","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-1","satisfied":true,"statement":"On current Forgejo main, update Big Papi's Coquito Iceys Start Pop-Up flow so Will must enter a Start Time and End Time for a pop-up, persist those values as the canonical event schedule, and have the existing public calendar and any existing scheduled-event/publication surfaces consume and display that same start/end schedule. Preserve the existing event date and tenant timezone behavior; do not create a parallel calendar system. Validate that end time is after start time for same-day pop-ups and present a clear owner-facing validation message. Existing saved pop-ups without times must remain readable and must not crash calendar rendering. Keep the UI compact and consistent with the existing strong Start Pop-Up app. Use the smallest safe source/data-contract change required. Ship through one fresh ai/* branch, one Forgejo PR, KnockLaunch Gate, squash merge, deploy only affected production targets, and verify the live Big Papi Start Pop-Up flow plus the public calendar schedule behavior. Do not run Visual Witness unless required for interaction proof by the request contract.","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":"cd0b9b0b870127737505535993659b23c41b65f321cebc247052a53e4208d01f","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":"cd0b9b0b870127737505535993659b23c41b65f321cebc247052a53e4208d01f"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["frontend","supabaseEdge"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-15T13:40:39.630737+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"af64aea56fa1ada869af4fe940267afe113292b6","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:f6b28067-7c2b-4084-a80d-49b14a704f32:request-contract:cd0b9b0b870127737505535993659b23c41b65f321cebc247052a53e4208d01f:af64aea56fa1ada869af4fe940267afe113292b6:verified:","mission_step_id":"209bc8bf-095d-4705-9b8d-0d4c577da700","command_center_event_id":"f6b28067-7c2b-4084-a80d-49b14a704f32"},{"id":"11857e2a-abee-4bf0-93f9-37f12972c2b5","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"objective_received","branch":"ai/visual-infrastructure-proof-retry-20260921","reason":"control_plane_maintenance_authorization_required","status":"blocked","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.200-durable-chat-resume-relevance","prNumber":null,"terminal":false,"missionId":"2ddc548e-45c0-46fe-8fc1-1c8ac160e732","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":516,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":516,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":516,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":516,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"2ddc548e-45c0-46fe-8fc1-1c8ac160e732"},"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":1519,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-21T04:25:38.182948+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:2ddc548e-45c0-46fe-8fc1-1c8ac160e732:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"91ed8672-6439-4779-ab5f-425c6a9ec87c","command_center_event_id":"2ddc548e-45c0-46fe-8fc1-1c8ac160e732"},{"id":"1185abcc-dd90-4af7-b66d-e01499603d2c","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"compilation":{"stages":["owner_intent","conversation_context","scope","live_state","mutation_authority","affected_systems","dependencies","risk_and_blast_radius","execution_tactics","required_proof","release_plan","recovery_plan"],"version":2,"explicit":true,"objective":"MUTATE AND SHIP NOW. Continue existing PR #5231 only. Fix the four just-added validator fallback assertions in scripts/release-event-native-plan.test.mjs so they verify the four fallback directory literals regardless of whitespace/formatting. Do not create another PR. Then rerun Gate, squash merge when green, deploy cc-execution, and verify live runtime sourceSha equals merged main.","proofKinds":["repository"],"adaptiveDomains":["intent","tenant_route_role_viewport","urgency_deadline","dependency_scope","risk_blast_radius","runner_capacity","queue_active_work","provider_failure_circuits","qa_scope","retry_recovery","release_ownership","proof_depth"],"expansionPolicy":"later_stages_may_only_narrow_or_expand_with_machine_readable_dependency_evidence","dynamicStatePolicy":"live_state_may_change_execution_tactics_but_never_owner_outcome_or_explicit_constraints","dynamicRefreshStages":["preflight","gate","release","runtime_proof"],"adaptiveCompilerVersion":"paul-adaptive-objective-v1","inheritedContextBlockingAuthority":false},"rawUtterance":"MUTATE AND SHIP NOW. Continue existing PR #5231 only. Fix the four just-added validator fallback assertions in scripts/release-event-native-plan.test.mjs so they verify the four fallback directory literals regardless of whitespace/formatting. Do not create another PR. Then rerun Gate, squash merge when green, deploy cc-execution, and verify live runtime sourceSha equals merged main.","wordingChanged":false,"canonicalIntent":"MUTATE AND SHIP NOW. Continue existing PR #5231 only. Fix the four just-added validator fallback assertions in scripts/release-event-native-plan.test.mjs so they verify the four fallback directory literals regardless of whitespace/formatting. Do not create another PR. Then rerun Gate, squash merge when green, deploy cc-execution, and verify live runtime sourceSha equals merged main.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"outcome-1","statement":"MUTATE AND SHIP NOW. Continue existing PR #5231 only. Fix the four just-added validator fallback assertions in scripts/release-event-native-plan.test.mjs so they verify the four fallback directory literals regardless of whitespace/formatting. Do not create another PR. Then rerun Gate, squash merge when green, deploy cc-execution, and verify live runtime sourceSha equals merged main.","provenance":{"reason":null,"source":"current_request_inference","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"objective":"MUTATE AND SHIP NOW. Continue existing PR #5231 only. Fix the four just-added validator fallback assertions in scripts/release-event-native-plan.test.mjs so they verify the four fallback directory literals regardless of whitespace/formatting. Do not create another PR. Then rerun Gate, squash merge when green, deploy cc-execution, and verify live runtime sourceSha equals merged main.","constraints":[{"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":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"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.","provenance":{"reason":null,"source":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"adaptivePolicy":{"risk":{"tier":"high","blastRadius":"sensitive"},"proof":{"requiredKinds":["repository"],"visualProofScope":"none","interactionRequired":false,"runtimeProofRequired":true},"scope":{"route":null,"roleRef":null,"tenantRef":null,"sourceTargets":[]},"dynamic":{"variables":["main_and_runtime_lineage","runner_capacity","queue_and_active_work","provider_health","failure_clusters_and_circuits","release_target_state","current_pr_and_gate_state"],"refreshStages":["preflight","gate","release","runtime_proof"],"refreshMayChange":["runner_selection","parallelism","retry_path","qa_depth","release_recovery","proof_timing"],"refreshMayNotChange":["owner_outcome","explicit_no_go_constraints","tenant_identity","credential_boundary","hard_safety_invariants"]},"urgency":{"priority":"normal","deadlineSignals":[],"deadlineExplicit":false},"version":"paul-adaptive-objective-v1","recovery":{"transient":"one_bounded_retry_then_alternate_eligible_pool_or_provider_path","deterministic":"repair_source_or_contract_do_not_blind_rerun","mutationDependencyFailure":"prerequisite_required_or_targeted_recovery_never_invent","readOnlyDependencyFailure":"degrade_to_available_grounded_context_and_keep_conversation_alive"},"unknowns":["tenant","route","source_targets_until_repository_resolution","release_targets_until_changed_paths","deadline"],"authority":{"outcome":"current_explicit_owner_request","tactics":"live_prime_truth","unknownPolicy":"preserve_unknown_never_invent","historicalContext":"advisory_unless_current_request_confirms"},"execution":{"mutation":true,"concurrency":"serialize_overlapping_mutations","scopePolicy":"start_bounded_expand_only_with_machine_readable_dependency_evidence","staleStatePolicy":"refresh_dynamic_state_before_irreversible_or_acceptance_stage","conversationIsolation":true,"ownerOutcomeMayBeChangedByAdaptation":false},"experience":{"visual":false,"viewports":["desktop","mobile"],"behavioral":false,"visualProofScope":"none"},"dependencies":{"requiredDomains":["backend_runtime","release_ownership","live_production_proof"],"capabilityDomains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"releaseTargetHints":[]},"inputSignals":{"rawUtterance":"MUTATE AND SHIP NOW. Continue existing PR #5231 only. Fix the four just-added validator fallback assertions in scripts/release-event-native-plan.test.mjs so they verify the four fallback directory literals regardless of whitespace/formatting. Do not create another PR. Then rerun Gate, squash merge when green, deploy cc-execution, and verify live runtime sourceSha equals merged main.","canonicalIntent":"MUTATE AND SHIP NOW. Continue existing PR #5231 only. Fix the four just-added validator fallback assertions in scripts/release-event-native-plan.test.mjs so they verify the four fallback directory literals regardless of whitespace/formatting. Do not create another PR. Then rerun Gate, squash merge when green, deploy cc-execution, and verify live runtime sourceSha equals merged main.","conversationContextPresent":false}},"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"repository","claim":"MUTATE AND SHIP NOW. Continue existing PR #5231 only. Fix the four just-added validator fallback assertions in scripts/release-event-native-plan.test.mjs so they verify the four fallback directory literals regardless of whitespace/formatting. Do not create another PR. Then rerun Gate, squash merge when green, deploy cc-execution, and verify live runtime sourceSha equals merged main.","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":"MUTATE-AND-SHIP-NOW.-Continue-existing-PR-5231-only.-Fix-the-four-just-added-validator-fallback-asse","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":"d48c9bbf814f251f122165ac38fa3f8c7a4dc924f28159f240c5a91c9869efbd","requestContractRevision":2,"previousRequestContractHash":"7f3af95f04360118a88df720a04c36cccc86a46106b77eb084cf779b907624e1"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T19:42:43.05826+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:8c28f7ae-5a64-4017-9354-46f808125c42:request-contract:d48c9bbf814f251f122165ac38fa3f8c7a4dc924f28159f240c5a91c9869efbd","mission_step_id":"5c3579f2-f692-4fd8-aafe-41c4deaeb884","command_center_event_id":"8c28f7ae-5a64-4017-9354-46f808125c42"},{"id":"1185fa97-2e4b-416b-aa2e-6797f414737e","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"compilation":{"stages":["owner_intent","conversation_context","scope","live_state","mutation_authority","affected_systems","dependencies","risk_and_blast_radius","execution_tactics","required_proof","release_plan","recovery_plan"],"version":2,"explicit":true,"objective":"Continue this mission and implement the first-party KNOCKLAUNCH owner-host agent now. Extend the existing cc-execution host control/event pattern, add an outbound-only Windows owner-host agent for msi-local and laptop-local, expose host_offline vs host_online_runner_offline and attention-required owner capacity, keep fixed allowlisted lifecycle/diagnostic actions only, preserve cloud fallback, add targeted contract coverage, bump the cc-execution release marker, then Gate, squash merge, release and live-proof the new capability.","proofKinds":["runtime"],"adaptiveDomains":["intent","tenant_route_role_viewport","urgency_deadline","dependency_scope","risk_blast_radius","runner_capacity","queue_active_work","provider_failure_circuits","qa_scope","retry_recovery","release_ownership","proof_depth"],"expansionPolicy":"later_stages_may_only_narrow_or_expand_with_machine_readable_dependency_evidence","dynamicStatePolicy":"live_state_may_change_execution_tactics_but_never_owner_outcome_or_explicit_constraints","dynamicRefreshStages":["preflight","gate","release","runtime_proof"],"adaptiveCompilerVersion":"paul-adaptive-objective-v1","inheritedContextBlockingAuthority":false},"rawUtterance":"Continue this mission and implement the first-party KNOCKLAUNCH owner-host agent now. Extend the existing cc-execution host control/event pattern, add an outbound-only Windows owner-host agent for msi-local and laptop-local, expose host_offline vs host_online_runner_offline and attention-required owner capacity, keep fixed allowlisted lifecycle/diagnostic actions only, preserve cloud fallback, add targeted contract coverage, bump the cc-execution release marker, then Gate, squash merge, release and live-proof the new capability.","wordingChanged":false,"canonicalIntent":"Continue this mission and implement the first-party KNOCKLAUNCH owner-host agent now. Extend the existing cc-execution host control/event pattern, add an outbound-only Windows owner-host agent for msi-local and laptop-local, expose host_offline vs host_online_runner_offline and attention-required owner capacity, keep fixed allowlisted lifecycle/diagnostic actions only, preserve cloud fallback, add targeted contract coverage, bump the cc-execution release marker, then Gate, squash merge, release and live-proof the new capability.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"outcome-1","statement":"Continue this mission and implement the first-party KNOCKLAUNCH owner-host agent now. Extend the existing cc-execution host control/event pattern, add an outbound-only Windows owner-host agent for msi-local and laptop-local, expose host_offline vs host_online_runner_offline and attention-required owner capacity, keep fixed allowlisted lifecycle/diagnostic actions only, preserve cloud fallback, add targeted contract coverage, bump the cc-execution release marker, then Gate, squash merge, release and live-proof the new capability.","provenance":{"reason":null,"source":"current_request_inference","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"objective":"Continue this mission and implement the first-party KNOCKLAUNCH owner-host agent now. Extend the existing cc-execution host control/event pattern, add an outbound-only Windows owner-host agent for msi-local and laptop-local, expose host_offline vs host_online_runner_offline and attention-required owner capacity, keep fixed allowlisted lifecycle/diagnostic actions only, preserve cloud fallback, add targeted contract coverage, bump the cc-execution release marker, then Gate, squash merge, release and live-proof the new capability.","constraints":[{"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":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"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.","provenance":{"reason":null,"source":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"adaptivePolicy":{"risk":{"tier":"high","blastRadius":"sensitive"},"proof":{"requiredKinds":["runtime"],"visualProofScope":"none","interactionRequired":false,"runtimeProofRequired":true},"scope":{"route":null,"roleRef":null,"tenantRef":null,"sourceTargets":["workers/cc-execution/src/index-mission-control.js","workers/cc-execution/src/version.js"]},"dynamic":{"variables":["main_and_runtime_lineage","runner_capacity","queue_and_active_work","provider_health","failure_clusters_and_circuits","release_target_state","current_pr_and_gate_state"],"refreshStages":["preflight","gate","release","runtime_proof"],"refreshMayChange":["runner_selection","parallelism","retry_path","qa_depth","release_recovery","proof_timing"],"refreshMayNotChange":["owner_outcome","explicit_no_go_constraints","tenant_identity","credential_boundary","hard_safety_invariants"]},"urgency":{"priority":"normal","deadlineSignals":[],"deadlineExplicit":false},"version":"paul-adaptive-objective-v1","recovery":{"transient":"one_bounded_retry_then_alternate_eligible_pool_or_provider_path","deterministic":"repair_source_or_contract_do_not_blind_rerun","mutationDependencyFailure":"prerequisite_required_or_targeted_recovery_never_invent","readOnlyDependencyFailure":"degrade_to_available_grounded_context_and_keep_conversation_alive"},"unknowns":["tenant","route","deadline"],"authority":{"outcome":"current_explicit_owner_request","tactics":"live_prime_truth","unknownPolicy":"preserve_unknown_never_invent","historicalContext":"advisory_unless_current_request_confirms"},"execution":{"mutation":true,"concurrency":"serialize_overlapping_mutations","scopePolicy":"start_bounded_expand_only_with_machine_readable_dependency_evidence","staleStatePolicy":"refresh_dynamic_state_before_irreversible_or_acceptance_stage","conversationIsolation":true,"ownerOutcomeMayBeChangedByAdaptation":false},"experience":{"visual":false,"viewports":["desktop","mobile"],"behavioral":false,"visualProofScope":"none"},"dependencies":{"requiredDomains":["backend_runtime","release_ownership","live_production_proof"],"capabilityDomains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"releaseTargetHints":["ccExecution"]},"inputSignals":{"rawUtterance":"Continue this mission and implement the first-party KNOCKLAUNCH owner-host agent now. Extend the existing cc-execution host control/event pattern, add an outbound-only Windows owner-host agent for msi-local and laptop-local, expose host_offline vs host_online_runner_offline and attention-required owner capacity, keep fixed allowlisted lifecycle/diagnostic actions only, preserve cloud fallback, add targeted contract coverage, bump the cc-execution release marker, then Gate, squash merge, release and live-proof the new capability.","canonicalIntent":"Continue this mission and implement the first-party KNOCKLAUNCH owner-host agent now. Extend the existing cc-execution host control/event pattern, add an outbound-only Windows owner-host agent for msi-local and laptop-local, expose host_offline vs host_online_runner_offline and attention-required owner capacity, keep fixed allowlisted lifecycle/diagnostic actions only, preserve cloud fallback, add targeted contract coverage, bump the cc-execution release marker, then Gate, squash merge, release and live-proof the new capability.","conversationContextPresent":false}},"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"runtime","claim":"Continue this mission and implement the first-party KNOCKLAUNCH owner-host agent now. Extend the existing cc-execution host control/event pattern, add an outbound-only Windows owner-host agent for msi-local and laptop-local, expose host_offline vs host_online_runner_offline and attention-required owner capacity, keep fixed allowlisted lifecycle/diagnostic actions only, preserve cloud fallback, add targeted contract coverage, bump the cc-execution release marker, then Gate, squash merge, release and live-proof the new capability.","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":"Continue-this-mission-and-implement-the-first-party-KNOCKLAUNCH-owner-host-agent-now.-Extend-the-exi","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":"718fe3bb12430508eb3c2c8dcef8461b75a119d6e601251bd729b095ce31ac79","requestContractRevision":3,"previousRequestContractHash":"2dca6efebb40c34e7b4f74e87065c3b43e89d1d9cdfec38a004d3f06faee460b"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T03:01:11.410764+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:10b94cd1-90ad-46bd-a864-548ea1c53b2a:request-contract:718fe3bb12430508eb3c2c8dcef8461b75a119d6e601251bd729b095ce31ac79","mission_step_id":"7316b578-0997-4070-949c-19ba3ebf666f","command_center_event_id":"10b94cd1-90ad-46bd-a864-548ea1c53b2a"},{"id":"1186c444-eb3e-4567-b18d-ac314b3e7635","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"e4c5fcfed527091fd7bdf7ac90af6dff1b37af99","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"e4c5fcfed527091fd7bdf7ac90af6dff1b37af99","releaseState":"pending","sourceInMain":true,"compareStatus":"identical","releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"requestContractHash":null,"forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/3309","runId":3309,"status":"running","sourceSha":"e4c5fcfed527091fd7bdf7ac90af6dff1b37af99","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"de8369b6-a78f-40bb-ae1f-28ffca62bc7e","created_at":"2026-08-29T03:13:06.104988+00:00","proof_gate":"canonical_release_pending","source_sha":"e4c5fcfed527091fd7bdf7ac90af6dff1b37af99","external_id":null,"receipt_type":"canonical_release_status","idempotency_key":"mission:a9de83cd-fbda-4570-a745-a733dfed41b9:forgejo-release-status:e4c5fcfed527091fd7bdf7ac90af6dff1b37af99:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"6780b966-4bfe-4c9b-bd90-3b44e846f3e7","command_center_event_id":"a9de83cd-fbda-4570-a745-a733dfed41b9"},{"id":"11875b0d-b6c5-4abb-b783-8d0f077309fc","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/execute-mission-hot-path-latency-20260903","reason":"pull_request_gate_missing","status":"waiting_for_gate","metrics":{"receiptBytes":13415,"releaseCount":0,"toolCallCount":5,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.21-objective-source-planner-refreeze","prNumber":1660,"terminal":false,"missionId":"0b7c3739-0b51-43bd-a7a7-df1ad9e0ee0e","operation":"execute_mission","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"handlerMs":11110,"prReadinessMs":3383,"approvedPlanMs":7353,"missionSetupMs":2411,"shipAndProveMs":0},"nextAction":"Reconcile this same mission and pull request after the exact-head KnockLaunch Gate changes state.","receiptRef":{"mode":"full","missionId":"0b7c3739-0b51-43bd-a7a7-df1ad9e0ee0e"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1036,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-04T03:11:32.089914+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"1660","receipt_type":"execute_mission","idempotency_key":"mission:0b7c3739-0b51-43bd-a7a7-df1ad9e0ee0e:execute_mission:repair_mission_waiting_for_gate:current-generation","mission_step_id":"6b6d18a4-38e6-4530-9924-655be3231b90","command_center_event_id":"0b7c3739-0b51-43bd-a7a7-df1ad9e0ee0e"},{"id":"11879ee2-2c56-40cb-9782-171c055b97bd","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-99972102bba3","reason":"retryable_provider_transport:forgejo_provider_read_timeout","status":"retryable","metrics":{"receiptBytes":20279,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":0,"executorlessWaitMs":40438,"firstUsefulResultAt":"2026-10-05T19:54:30.055Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.65.2-direct-pull-queue-scan","prNumber":5043,"terminal":false,"missionId":"99972102-bba3-4f83-96be-bf96f09744f8","operation":"execute_mission","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":7557,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":2069,"approvedPlanMs":1900,"missionSetupMs":377,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":377,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":377,"repositoryMutationMs":3572,"repositoryProviderMs":3572,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2274,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":377,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1298},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"99972102-bba3-4f83-96be-bf96f09744f8"},"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":1535,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-05T19:55:19.571665+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"5043","receipt_type":"execute_mission","idempotency_key":"mission:99972102-bba3-4f83-96be-bf96f09744f8:execute_mission:repair_mission_pr_ready_retryable:current-generation","mission_step_id":"9c8853f0-f182-4377-8a6e-99d1d64d66d5","command_center_event_id":"99972102-bba3-4f83-96be-bf96f09744f8"},{"id":"1187add2-af08-4190-82f7-24d9b54191a4","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-b377524eaeaa","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":null,"recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.10-paul-eval-precision","prNumber":null,"terminal":false,"missionId":"b377524e-aeaa-4432-95c2-6676054ffd50","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1106,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":436,"providerAuthMs":0,"ledgerPrepareMs":436,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":436,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":436,"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":"b377524e-aeaa-4432-95c2-6676054ffd50"},"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":4667,"likelyAffectedFiles":["workers/cc-execution/src/index-release-fast-lane.js","workers/cc-execution/src/platform-sidekick-intelligence.js","workers/cc-execution/src/index-mcp.js","workers/cc-execution/test/event-driven-auto-merge-invariants.test.js"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-30T12:48:40.819428+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:b377524e-aeaa-4432-95c2-6676054ffd50:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"593d3b35-3fb5-41b8-9e90-c7e06f0c121f","command_center_event_id":"b377524e-aeaa-4432-95c2-6676054ffd50"},{"id":"11882fc9-c161-45f4-9179-248142ac4f52","source":"forgejo-runtime","status":"pending","payload":{"mainSha":"ec028021c257c3436381810b833a96dda2501edc","sourceSha":"496698709a601459f0ffa4434eeea72aa25620a2","sourceInMain":false,"compareStatus":"ancestry_read_retryable","ancestryProofResolved":false},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-09-20T21:41:58.343892+00:00","proof_gate":"canonical_release_ancestry_pending","source_sha":"496698709a601459f0ffa4434eeea72aa25620a2","external_id":"canonical-release-496698709a60","receipt_type":"canonical_release_status","idempotency_key":"mission:0d1a5438-0b59-461d-8879-bf0499f78190:forgejo-release-ancestry:496698709a601459f0ffa4434eeea72aa25620a2:ec028021c257c3436381810b833a96dda2501edc:ancestry_read_retryable","mission_step_id":"178a0f7b-efcc-4c96-9f1b-34f215587530","command_center_event_id":"0d1a5438-0b59-461d-8879-bf0499f78190"},{"id":"1188ced2-a022-4855-a30b-805d449333b3","source":"forgejo-exact-source","status":"verified","payload":{"sourceSha":"148b96be7a83a21849a727c963f39e9be608486e","repository":"noel/KnockLaunchOS","repositoryProofs":[{"id":"proof-production","path":null,"proof":"forgejo_merged_pr_exact_head_gate","headSha":"596b7817609a9ed8236417d8caddcff18d1da4e9","prNumber":5174,"gateRunId":16294,"gateContext":"KnockLaunch Gate / KnockLaunch Gate (pull_request)","expectedText":null,"gateTargetUrl":"/noel/KnockLaunchOS/actions/runs/16294/jobs/1","mergeCommitSha":"148b96be7a83a21849a727c963f39e9be608486e"}],"requestContractHash":"a6f0f039f390cdc068c7137d489705c7b80e7c6ed6353a94b5c146dcdb145f4c","namedGateEvidenceReceiptVersion":null},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T13:17:19.399444+00:00","proof_gate":"request_contract_repository_verified","source_sha":"148b96be7a83a21849a727c963f39e9be608486e","external_id":null,"receipt_type":"request_contract_repository_status","idempotency_key":"mission:0ec7b127-4d92-459b-8839-1c652cdc89bc:request-contract-repository:a6f0f039f390cdc068c7137d489705c7b80e7c6ed6353a94b5c146dcdb145f4c:148b96be7a83a21849a727c963f39e9be608486e","mission_step_id":"f7f10980-1191-4f79-b454-aedf26bb582b","command_center_event_id":"0ec7b127-4d92-459b-8839-1c652cdc89bc"},{"id":"118aaade-6272-41c7-b1c1-dd5d6178012f","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-52ac1fafca13","reason":"retryable_provider_transport:forgejo_provider_read_timeout","status":"retryable","metrics":{"receiptBytes":14431,"releaseCount":0,"toolCallCount":5,"repeatedCallCount":0,"executorlessWaitMs":40260,"firstUsefulResultAt":"2026-09-26T10:21:35.612Z","recoveryAttemptCount":1,"ownerInterruptionCount":0},"version":null,"prNumber":3793,"terminal":false,"missionId":"52ac1faf-ca13-46ca-88eb-4c876681f35e","operation":"automatic_mission_resume","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"prReadinessMs":5421,"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":"52ac1faf-ca13-46ca-88eb-4c876681f35e"},"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-26T10:22:15.890801+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"3793","receipt_type":"automatic_mission_resume","idempotency_key":"mission:52ac1faf-ca13-46ca-88eb-4c876681f35e:automatic-mission-resume:3793:repair_mission_pr_ready_retryable","mission_step_id":"295e75c8-ce8a-437f-be2a-d7a246c406b0","command_center_event_id":"52ac1faf-ca13-46ca-88eb-4c876681f35e"},{"id":"118be945-7b9a-4c8f-9482-566c7dd376e1","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Continue PR #1993. Replace the Curri More overlay with a dedicated Curri route inside the existing RealtorShell. Preserve all current Curri padding and crop fixes. No unrelated changes.","wordingChanged":false,"canonicalIntent":"Continue PR #1993. Replace the Curri More overlay with a dedicated Curri route inside the existing RealtorShell. Preserve all current Curri padding and crop fixes. No unrelated changes.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"curri-more-route","statement":"Curri More navigates to a dedicated clean route rendered inside RealtorShell, with no modal, backdrop, or bottom-sheet overlay.","proofConditionIds":["proof-curri-more-route"]}],"objective":"Continue PR #1993. Replace the Curri More overlay with a dedicated Curri route inside the existing RealtorShell. Preserve all current Curri padding and crop fixes. No unrelated changes.","constraints":[{"id":"preserve-existing-fixes","statement":"Preserve the current Properties/Campaigns bottom-spacing fix and scroll-reset crop fix already on PR #1993.","proofConditionIds":["proof-curri-more-route"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-curri-more-route","kind":"runtime","claim":"On production, clicking Curri More navigates to /curri-properties/more and renders grouped brokerage navigation inside RealtorShell with no overlay.","route":"/curri-properties/more","roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":["frontend"],"requiredReleaseTargets":["frontend"]}],"validationErrors":[]},"requestContractHash":"10ec03f6dcd6f7121b62beab3f98730baf8599301d9e35e017868d1331e0a0a6","requestContractRevision":2,"previousRequestContractHash":"46ac7e65df0ca29f6c9150681bb23e0809a9ecf14b0691a9ead3a93aac927947"},"tenant_id":"90ed5bf4-8abd-4d3a-af7c-024664b5b99d","created_at":"2026-09-06T20:10:02.137679+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:cb47d6f5-946b-49b1-99a1-f0e0bf0443e5:request-contract:10ec03f6dcd6f7121b62beab3f98730baf8599301d9e35e017868d1331e0a0a6","mission_step_id":"17b847d5-300f-46b6-a46a-8c589f1439ba","command_center_event_id":"cb47d6f5-946b-49b1-99a1-f0e0bf0443e5"},{"id":"118d7262-50c8-4aae-bf45-86be5a03d119","source":"cc-execution","status":"complete","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/zoho-mail-direct-oauth","reason":null,"status":"complete","metrics":{"receiptBytes":7914,"releaseCount":0,"toolCallCount":6,"repeatedCallCount":3,"ownerInterruptionCount":0},"version":"1.47.6-live-release-idempotency","prNumber":424,"terminal":false,"missionId":"14e089c7-7d43-4289-8e77-32cb9a1198a6","operation":"execute_mission","proofGate":"repair_mission_prepared","sourceSha":null,"timingsMs":null,"nextAction":"continue_batch_or_ship_and_prove","receiptRef":{"mode":"full","missionId":"14e089c7-7d43-4289-8e77-32cb9a1198a6"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5502,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-19T14:33:10.233531+00:00","proof_gate":"repair_mission_prepared","source_sha":null,"external_id":"424","receipt_type":"execute_mission","idempotency_key":"mission:14e089c7-7d43-4289-8e77-32cb9a1198a6:execute_mission:repair_mission_prepared","mission_step_id":"41adb798-cb6b-4cc1-989e-802b233821df","command_center_event_id":"14e089c7-7d43-4289-8e77-32cb9a1198a6"},{"id":"118db7d3-b4ac-41ee-96cb-312480236b28","source":"cc-execution","status":"authorized","payload":{"paths":["workers/cc-execution/test/release-orchestration-invariants.test.js"],"reason":"Same owner-authorized release-machinery hardening corrective generation; deterministic test-only repair on existing PR #2314.","baseSha":"8eafee1f92fea6dc81f6f9d49e8eed8c8ad408a2","issuedAt":1789069033116,"expiresAt":1789069213116,"missionId":"ccaf5826-e23a-490f-8208-f46ad705b40b","authorizationId":"7f73ffe9-3771-4817-b7c7-ec20163fa597","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-10T19:37:13.876091+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"8eafee1f92fea6dc81f6f9d49e8eed8c8ad408a2","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:7f73ffe9-3771-4817-b7c7-ec20163fa597","mission_step_id":"3214f9ef-277b-47d6-bbee-24fa15f66469","command_center_event_id":"ccaf5826-e23a-490f-8208-f46ad705b40b"},{"id":"118e57a3-fc8d-4cab-a25f-c91850320954","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-1b0cf5780f66","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3190,"terminal":false,"missionId":"1b0cf578-0f66-4e08-8286-b55df0808b5c","operation":"automatic_mission_resume","proofGate":"canonical_release_dispatched","sourceSha":"f21ff068b0cdfbd58a36659b24fde25728140c8d","timingsMs":{"prReadinessMs":562,"approvedPlanMs":0,"shipAndProveMs":2689,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"1b0cf578-0f66-4e08-8286-b55df0808b5c"},"performance":null,"deploymentId":"forgejo-main-f21ff068b0cd","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":1828,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-19T11:43:14.485141+00:00","proof_gate":"canonical_release_dispatched","source_sha":null,"external_id":"3190","receipt_type":"automatic_mission_resume","idempotency_key":"mission:1b0cf578-0f66-4e08-8286-b55df0808b5c:automatic-mission-resume:3190:canonical_release_dispatched","mission_step_id":"e907f19f-5cd1-4862-9aa4-6ac16f71e37b","command_center_event_id":"1b0cf578-0f66-4e08-8286-b55df0808b5c"},{"id":"1193af19-1e5d-453c-a377-8ca17228a838","source":"cc-execution","status":"authorized","payload":{"paths":["config/control-plane-capabilities.json","src/__tests__/contracts/command-center-forgejo-transport-reliability.contract.test.ts","workers/cc-execution/src/entrypoint-owner-status.js","workers/cc-execution/src/version.js"],"reason":"Owner instructed to fix all remaining orchestration bottlenecks. The queue still performs recurring work for a cached merged-release mission that is absent from the authoritative ledger. This repair is limited to self-retiring that orphan cache state while preserving existing release recovery for real missions.","baseSha":"c0c302538292da84cf82e9ae41a140b2cda0f548","issuedAt":1789163715437,"expiresAt":1789163895437,"missionId":"96df8399-ea05-4017-adf5-b8f5cbc1e960","authorizationId":"31e1f1aa-9e69-4fff-9238-ca5cfe963497","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-11T21:55:15.897467+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"c0c302538292da84cf82e9ae41a140b2cda0f548","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:31e1f1aa-9e69-4fff-9238-ca5cfe963497","mission_step_id":"e3a1e134-e0c0-47be-8e10-b064b5058612","command_center_event_id":"96df8399-ea05-4017-adf5-b8f5cbc1e960"},{"id":"11943354-3605-4dc6-9173-e1a3e5c29a72","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-06a762d20a5b","reason":"pull_request_gate_missing","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.144-request-contract-inference","prNumber":2722,"terminal":false,"missionId":"06a762d2-0a5b-467d-b21f-6be2731a1907","operation":"execute_mission","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":8390,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":1982,"approvedPlanMs":0,"missionSetupMs":854,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":315,"ledgerReconcileMs":0,"lineageReconcileMs":539,"resolvePreflightMs":854,"repositoryMutationMs":6085,"repositoryProviderMs":4058,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":3528,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":315,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":530},"nextAction":"Reconcile this same mission and pull request after the exact-head KnockLaunch Gate changes state.","receiptRef":{"mode":"full","missionId":"06a762d2-0a5b-467d-b21f-6be2731a1907"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1512,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-14T04:10:52.840432+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"2722","receipt_type":"execute_mission","idempotency_key":"mission:06a762d2-0a5b-467d-b21f-6be2731a1907:execute_mission:repair_mission_waiting_for_gate:current-generation","mission_step_id":"de30418e-e17d-454e-8b94-62713001a536","command_center_event_id":"06a762d2-0a5b-467d-b21f-6be2731a1907"},{"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":"119804de-a7bc-4e3a-94f7-69b4ad468a56","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Repair the exact post-merge release failure for the existing long-running job notification mission. Production migration version 20260906013000 is already owned by book_me_directly_public_profile_and_provisioning_reconciliation, so the #1912 background-jobs migration could not apply. Create one corrective generation from current Forgejo main that deletes only supabase/migrations/20260906013000_universal_background_jobs.sql, recreates the identical SQL byte-for-byte as supabase/migrations/20260906014800_universal_background_jobs.sql (an unused version already verified against production), and updates only the regression test's migration path to the new filename. Do not change notification behavior, job behavior, Roof Estimator wiring, frontend product code, existing migration ledger rows, or the roof-estimator Edge Function. Pass KnockLaunch Gate, squash merge, release only targets selected by the canonical planner, and prove the app_background_jobs migration live. No Visual Witness.","wordingChanged":false,"canonicalIntent":"Repair the exact post-merge release failure for the existing long-running job notification mission. Production migration version 20260906013000 is already owned by book_me_directly_public_profile_and_provisioning_reconciliation, so the #1912 background-jobs migration could not apply. Create one corrective generation from current Forgejo main that deletes only supabase/migrations/20260906013000_universal_background_jobs.sql, recreates the identical SQL byte-for-byte as supabase/migrations/20260906014800_universal_background_jobs.sql (an unused version already verified against production), and updates only the regression test's migration path to the new filename. Do not change notification behavior, job behavior, Roof Estimator wiring, frontend product code, existing migration ledger rows, or the roof-estimator Edge Function. Pass KnockLaunch Gate, squash merge, release only targets selected by the canonical planner, and prove the app_background_jobs migration live. No Visual Witness.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"long-running-jobs","statement":"Long-running app work has durable progress, active-work UI, and deduped terminal notifications, with Roof Estimator wired as the first producer.","proofConditionIds":["repo-ui","repo-estimator","repo-bell","repo-migration","release","database"]}],"objective":"Repair the exact post-merge release failure for the existing long-running job notification mission. Production migration version 20260906013000 is already owned by book_me_directly_public_profile_and_provisioning_reconciliation, so the #1912 background-jobs migration could not apply. Create one corrective generation from current Forgejo main that deletes only supabase/migrations/20260906013000_universal_background_jobs.sql, recreates the identical SQL byte-for-byte as supabase/migrations/20260906014800_universal_background_jobs.sql (an unused version already verified against production), and updates only the regression test's migration path to the new filename. Do not change notification behavior, job behavior, Roof Estimator wiring, frontend product code, existing migration ledger rows, or the roof-estimator Edge Function. Pass KnockLaunch Gate, squash merge, release only targets selected by the canonical planner, and prove the app_background_jobs migration live. No Visual Witness.","constraints":[{"id":"preserve","statement":"Preserve all #1912 product behavior, existing notification/preferences data, existing migration ledger rows, and Roof Estimator result behavior; do not modify the roof-estimator Edge Function.","proofConditionIds":["repo-estimator","repo-migration","database"]},{"id":"resequence-only","statement":"The corrective source change only resequences the background-jobs migration from the collided 20260906013000 version to unused 20260906014800 and updates its contract-test reference.","proofConditionIds":["repo-migration"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"repo-ui","kind":"repository","claim":"Notifications center shows Active work.","route":"src/pages/crm/UnifiedNotifications.tsx","roleRef":null,"userRef":null,"required":true,"expectedText":"Active work","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"repo-estimator","kind":"repository","claim":"Roof Estimator uses roof.measurement background jobs.","route":"src/pages/roof-estimator/RoofTracingPage.tsx","roleRef":null,"userRef":null,"required":true,"expectedText":"jobType: 'roof.measurement'","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"repo-bell","kind":"repository","claim":"Notification bell exposes active background jobs.","route":"src/components/notifications/NotificationBell.tsx","roleRef":null,"userRef":null,"required":true,"expectedText":"active background job","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"repo-migration","kind":"repository","claim":"Current Forgejo source contains the resequenced universal background-jobs migration.","route":"supabase/migrations/20260906014800_universal_background_jobs.sql","roleRef":null,"userRef":null,"required":true,"expectedText":"create table if not exists public.app_background_jobs","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"release","kind":"release","claim":"Affected production targets complete from the exact corrective merged source.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"database","kind":"runtime","claim":"Production contains app_background_jobs with tenant/user isolation and terminal notification transition behavior.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}],"validationErrors":[]},"requestContractHash":"fd6396eb5e905d7cd3c82ffe418aeeb42f92c321eafe0ca7aa27d97dbee57569","requestContractRevision":5,"previousRequestContractHash":"3fcab3fcc91e825d339586f1313bf5ffe0de4478810d927177ee206db67fd6f7"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-06T01:51:07.95699+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:b8f0e488-cb62-41a3-9d2e-48f214fe07c4:request-contract:fd6396eb5e905d7cd3c82ffe418aeeb42f92c321eafe0ca7aa27d97dbee57569","mission_step_id":"ab888721-f04c-4a62-b9fd-40986e53c32f","command_center_event_id":"b8f0e488-cb62-41a3-9d2e-48f214fe07c4"},{"id":"11985243-7238-4d56-bcf1-66633ee28ac3","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"release","branch":null,"reason":"forgejo_release_source_not_contained_in_current_main","status":"blocked","metrics":{"receiptBytes":17535,"releaseCount":0,"toolCallCount":13,"repeatedCallCount":9,"ownerInterruptionCount":0},"version":null,"prNumber":273,"terminal":false,"missionId":"6edeedc2-1979-421e-a3f3-967e122841b6","operation":"automatic_mission_resume","proofGate":"canonical_release_blocked","sourceSha":"0629e779004766e554ab030478198cd0d86e4edb","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"6edeedc2-1979-421e-a3f3-967e122841b6"},"performance":null,"deploymentId":"forgejo-main-0629e7790047","workflowRunId":886,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":true,"ccExecution":true,"supabaseEdge":true,"edgeFunctionSlugs":["finance-reports"]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":331,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"6f522f13-31f4-41af-a806-bcdfbc927a9e","created_at":"2026-08-16T18:09:48.283884+00:00","proof_gate":"canonical_release_blocked","source_sha":null,"external_id":"273","receipt_type":"automatic_mission_resume","idempotency_key":"mission:6edeedc2-1979-421e-a3f3-967e122841b6:automatic-mission-resume:273:canonical_release_blocked","mission_step_id":"27964f22-0120-4b10-a74c-6eb44b81a524","command_center_event_id":"6edeedc2-1979-421e-a3f3-967e122841b6"},{"id":"1198d3e5-9d40-4144-94ec-e57b877b3130","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-mtp6kmtl","reason":"pull_request_gate_missing","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.66-repair-generation-continuation","prNumber":1922,"terminal":false,"missionId":"4dda9bb5-48fe-4d02-a339-d7002dde4533","operation":"execute_mission","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":7579,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":4918,"approvedPlanMs":0,"missionSetupMs":460,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":326,"ledgerReconcileMs":0,"lineageReconcileMs":134,"resolvePreflightMs":460,"repositoryMutationMs":2495,"repositoryProviderMs":2009,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":1870,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":326,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":139},"nextAction":"Reconcile this same mission and pull request after the exact-head KnockLaunch Gate changes state.","receiptRef":{"mode":"full","missionId":"4dda9bb5-48fe-4d02-a339-d7002dde4533"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1512,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"b6cd1709-089e-423d-b09a-31d3181d0021","created_at":"2026-09-06T02:28:51.843559+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"1922","receipt_type":"execute_mission","idempotency_key":"mission:4dda9bb5-48fe-4d02-a339-d7002dde4533:execute_mission:repair_mission_waiting_for_gate:current-generation","mission_step_id":"5976a9b2-ba20-4355-a4b9-e9ff4acfad6b","command_center_event_id":"4dda9bb5-48fe-4d02-a339-d7002dde4533"},{"id":"119c5089-e747-4792-a7eb-f775a5f3d5d1","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"release","branch":"ai/objective-first-repair-f5fc7c0bc7e9","reason":"explicit_pull_request_identity_mismatch:3072","status":"blocked","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.182-witness-render-cold-start-aware","prNumber":3072,"terminal":false,"missionId":"f5fc7c0b-c7e9-452f-bb56-c1203e79c53d","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":"cc94c31dd7f3efa0d98b47da854d95afa4ae25bd","timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":14527,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":14527,"missionSetupMs":2532,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":439,"ledgerReconcileMs":0,"lineageReconcileMs":2093,"resolvePreflightMs":2532,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":439,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"f5fc7c0b-c7e9-452f-bb56-c1203e79c53d"},"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":1502,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-18T03:30:28.477491+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":"cc94c31dd7f3efa0d98b47da854d95afa4ae25bd","external_id":"3072","receipt_type":"execute_mission","idempotency_key":"mission:f5fc7c0b-c7e9-452f-bb56-c1203e79c53d:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"e55c5e37-2809-42d5-8970-a9338065de2d","command_center_event_id":"f5fc7c0b-c7e9-452f-bb56-c1203e79c53d"},{"id":"119edcb0-acc2-4c99-ac3e-e566ab289cff","source":"cc-execution","status":"in_progress","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/321-auto-unlock-zone-release-trigger-20260901","reason":null,"status":"in_progress","metrics":{"receiptBytes":9450,"releaseCount":0,"toolCallCount":4,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.2-visual-witness-proof-projection","prNumber":1258,"terminal":false,"missionId":"d2bbaee5-8d55-492a-a648-b3bbf25b9e3e","operation":"execute_mission","proofGate":"canonical_release_reconciliation_pending","sourceSha":null,"timingsMs":{"handlerMs":7216,"prReadinessMs":530,"approvedPlanMs":0,"missionSetupMs":1588,"shipAndProveMs":5676},"nextAction":"Reconcile this same mission and pull request automatically; do not create replacement work.","receiptRef":{"mode":"full","missionId":"d2bbaee5-8d55-492a-a648-b3bbf25b9e3e"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1010,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"d60e3c27-73ed-4a5f-a49b-c37636455daf","created_at":"2026-09-01T13:49:25.108576+00:00","proof_gate":"canonical_release_reconciliation_pending","source_sha":null,"external_id":"1258","receipt_type":"execute_mission","idempotency_key":"mission:d2bbaee5-8d55-492a-a648-b3bbf25b9e3e:execute_mission:canonical_release_reconciliation_pending:current-generation","mission_step_id":"bed855ac-b4b2-4d1d-a18c-00a3adf4f3da","command_center_event_id":"d2bbaee5-8d55-492a-a648-b3bbf25b9e3e"},{"id":"11a0e2ed-09cd-456f-972c-e31c476d1721","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\":\"canonical_release_status\",\"status\":\"pending\",\"proofGate\":\"canonical_release_pending\"},\"activeStep\":{\"key\":\"preflight\",\"status\":\"ready\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"implementation\",\"status\":\"pending\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"reconcile_release\",\"lane\":\"production-release-conductor\",\"reason\":\"merged_source_requires_release_proof\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_release\",\"recoveryOwner\":\"production-release-conductor\"},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"runtime\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"release\",\"deadlineAt\":\"2026-10-05T18:08:31.82575+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":null,\"prNumber\":null,\"sourceSha\":\"e22d2ca83ac4da16d3b310e5daf14418855ad685\",\"deploymentId\":\"forgejo-main-e22d2ca83ac4\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-05T15:09:09.092622+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:b5f40e57-9642-4f3e-bc7b-5f34b65bff18:owner-progress-heartbeat:119414196","mission_step_id":"ed70486e-b037-424d-8b41-29b2ede93bb8","command_center_event_id":"b5f40e57-9642-4f3e-bc7b-5f34b65bff18"},{"id":"11a6b994-dc39-470d-8a7a-3dfb8246e7e7","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-4af9ebb3208c","reason":"retryable_provider_transport:pr_ready_timeout_budget_exhausted","status":"retryable","metrics":{"receiptBytes":34988,"releaseCount":0,"toolCallCount":16,"repeatedCallCount":12,"executorlessWaitMs":284604,"firstUsefulResultAt":"2026-10-01T03:15:03.051Z","recoveryAttemptCount":14,"ownerInterruptionCount":0},"version":null,"prNumber":4315,"terminal":false,"missionId":"4af9ebb3-208c-4b0b-beda-3d081f7c5ed7","operation":"automatic_mission_resume","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"prReadinessMs":3000,"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":"4af9ebb3-208c-4b0b-beda-3d081f7c5ed7"},"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":827,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"766cfaa7-ac42-46c8-bbef-69d13268a29d","created_at":"2026-10-01T03:15:15.515113+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"4315","receipt_type":"automatic_mission_resume","idempotency_key":"mission:4af9ebb3-208c-4b0b-beda-3d081f7c5ed7:automatic-mission-resume:4315:repair_mission_pr_ready_retryable","mission_step_id":"8c20404a-6dee-46f4-8ec9-978f38254b92","command_center_event_id":"4af9ebb3-208c-4b0b-beda-3d081f7c5ed7"},{"id":"11ab57c1-1918-4986-895a-84a68cd43b7e","source":"visual-sandbox","status":"waiting","payload":{"ok":false,"jobId":"08fe372b-8d05-4f5a-b216-6a4cd2c0a64c","phase":"universal_visual_witness_status","branch":"ai/objective-first-repair-3f38f89df562","reason":null,"status":"completed_unverified","metrics":{"receiptBytes":132861,"releaseCount":0,"toolCallCount":39,"repeatedCallCount":20,"executorlessWaitMs":1310205,"firstUsefulResultAt":"2026-09-29T18:27:16.029Z","recoveryAttemptCount":7,"ownerInterruptionCount":0},"version":null,"prNumber":4162,"terminal":true,"missionId":"3f38f89d-f562-44d5-80ee-ba4a718879b7","operation":"visual_proof_status","proofGate":"visual_witness_objective_acceptance_unproven","sourceSha":"49eddf35a4bc9954b138e033a32c5b3199738b17","timingsMs":{"queue":1182,"total":13582,"execution":12400},"nextAction":null,"receiptRef":{"mode":"full","missionId":"3f38f89d-f562-44d5-80ee-ba4a718879b7"},"performance":null,"deploymentId":"forgejo-main-49eddf35a4bc","releaseState":"verified","visualWitness":{"role":"GodMode","jobId":"08fe372b-8d05-4f5a-b216-6a4cd2c0a64c","tenant":"9602e177-0cbb-496c-bdf5-2fbc93f1b859","runnerUrl":"https://laptop-witness.knocklaunch.app","runnerLane":"laptop","attemptsUsed":1,"supervisorId":"08fe372b-8d05-4f5a-b216-6a4cd2c0a64c","failureReason":null,"observedRoute":"https://whatsmyprogress.com/pcg","runnerVersion":"laptop-bb1e9c24fd5d","attemptLineage":[{"jobId":"38c20370-e336-4868-9671-12764a300242","attempt":1,"category":"completed_with_findings","sourceSha":"bb1e9c24fd5d6d6526aafb737dbeb2f9755ca0f4","startedAt":"2026-09-29T18:47:54.197Z","completedAt":"2026-09-29T18:48:08.076Z","runtimeLane":"cc-execution -> Local Laptop -> universal-witness.mjs","browserEngine":"chromium","failureReason":null,"retryRecovery":null,"runnerVersion":"laptop-bb1e9c24fd5d","browserLaunchReason":"display_unavailable_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":"completed_with_findings","requestedRoute":"https://whatsmyprogress.com/pcg","runnerSourceSha":"bb1e9c24fd5d6d6526aafb737dbeb2f9755ca0f4","selectedViewports":["desktop"],"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":13138,"releaseTargets":{"frontend":true,"migrations":false,"ccExecution":false,"supabaseEdge":true,"edgeFunctionSlugs":["customer-portal"]},"detailsAvailable":true,"ownerFacingState":"ENDED","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":22222,"ownerActionRequired":false,"ownerFacingTerminal":true,"requestContractHash":"e7f0dfc00671da771f588efd980a991d493d541e927eeddec3dcc99da8a64b9b","continuationRequired":false,"requestContractState":"pending"},"tenant_id":"9602e177-0cbb-496c-bdf5-2fbc93f1b859","created_at":"2026-09-29T18:49:08.236057+00:00","proof_gate":"visual_witness_infrastructure_retry_required","source_sha":"laptop-bb1e9c24fd5d","external_id":"08fe372b-8d05-4f5a-b216-6a4cd2c0a64c","receipt_type":"visual_proof_status","idempotency_key":"mission:3f38f89d-f562-44d5-80ee-ba4a718879b7:visual:08fe372b-8d05-4f5a-b216-6a4cd2c0a64c:waiting","mission_step_id":"ad2daee5-ddb1-4a22-9d1b-a240c31a4e30","command_center_event_id":"3f38f89d-f562-44d5-80ee-ba4a718879b7"},{"id":"11abface-49a2-435a-9597-559b388647a8","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"compilation":{"stages":["owner_intent","conversation_context","scope","live_state","mutation_authority","affected_systems","dependencies","risk_and_blast_radius","execution_tactics","required_proof","release_plan","recovery_plan"],"version":2,"explicit":true,"objective":"Add and deploy a platform-wide KNOCKLAUNCH tenant media primitive so every canonical tenant has WMP profile/photo and BMD profile/photo uploader options in the shared Universal Profile/Settings experience. Reuse the existing tenant-scoped media/storage and authorization model; add preview, upload/replace, remove/reset; fall back to existing tenant avatar/logo when empty without overwriting custom media; persist with strict tenant isolation; expose on desktop/mobile for MODES and route-based tenants without CRM bleed; wire WMP consumers and any canonical BMD consumer to the shared slots; if no canonical BMD app exists, do not invent one, only expose the BMD slot through the shared media contract; extend bootstrap/health/self-heal non-destructively; add contract coverage for inheritance, isolation, authorization, fallback and non-destructive bootstrap; preserve existing branding, uploads and routing; one focused PR, canonical Gate, squash merge, deploy affected targets, and verify production on /pcg/settings?section=profile for desktop and mobile.","proofKinds":["runtime","visual"],"adaptiveDomains":["intent","tenant_route_role_viewport","urgency_deadline","dependency_scope","risk_blast_radius","runner_capacity","queue_active_work","provider_failure_circuits","qa_scope","retry_recovery","release_ownership","proof_depth"],"expansionPolicy":"later_stages_may_only_narrow_or_expand_with_machine_readable_dependency_evidence","dynamicStatePolicy":"live_state_may_change_execution_tactics_but_never_owner_outcome_or_explicit_constraints","dynamicRefreshStages":["preflight","gate","release","runtime_proof"],"adaptiveCompilerVersion":"paul-adaptive-objective-v1","inheritedContextBlockingAuthority":false},"rawUtterance":"Add and deploy a platform-wide KNOCKLAUNCH tenant media primitive so every canonical tenant has WMP profile/photo and BMD profile/photo uploader options in the shared Universal Profile/Settings experience. Reuse the existing tenant-scoped media/storage and authorization model; add preview, upload/replace, remove/reset; fall back to existing tenant avatar/logo when empty without overwriting custom media; persist with strict tenant isolation; expose on desktop/mobile for MODES and route-based tenants without CRM bleed; wire WMP consumers and any canonical BMD consumer to the shared slots; if no canonical BMD app exists, do not invent one, only expose the BMD slot through the shared media contract; extend bootstrap/health/self-heal non-destructively; add contract coverage for inheritance, isolation, authorization, fallback and non-destructive bootstrap; preserve existing branding, uploads and routing; one focused PR, canonical Gate, squash merge, deploy affected targets, and verify production on /pcg/settings?section=profile for desktop and mobile.","wordingChanged":false,"canonicalIntent":"Add and deploy a platform-wide KNOCKLAUNCH tenant media primitive so every canonical tenant has WMP profile/photo and BMD profile/photo uploader options in the shared Universal Profile/Settings experience. Reuse the existing tenant-scoped media/storage and authorization model; add preview, upload/replace, remove/reset; fall back to existing tenant avatar/logo when empty without overwriting custom media; persist with strict tenant isolation; expose on desktop/mobile for MODES and route-based tenants without CRM bleed; wire WMP consumers and any canonical BMD consumer to the shared slots; if no canonical BMD app exists, do not invent one, only expose the BMD slot through the shared media contract; extend bootstrap/health/self-heal non-destructively; add contract coverage for inheritance, isolation, authorization, fallback and non-destructive bootstrap; preserve existing branding, uploads and routing; one focused PR, canonical Gate, squash merge, deploy affected targets, and verify production on /pcg/settings?section=profile for desktop and mobile.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"outcome-1","statement":"Add and deploy a platform-wide KNOCKLAUNCH tenant media primitive so every canonical tenant has WMP profile/photo and BMD profile/photo uploader options in the shared Universal Profile/Settings experience. Reuse the existing tenant-scoped media/storage and authorization model; add preview, upload/replace, remove/reset; fall back to existing tenant avatar/logo when empty without overwriting custom media; persist with strict tenant isolation; expose on desktop/mobile for MODES and route-based tenants without CRM bleed; wire WMP consumers and any canonical BMD consumer to the shared slots; if no canonical BMD app exists, do not invent one, only expose the BMD slot through the shared media contract; extend bootstrap/health/self-heal non-destructively; add contract coverage for inheritance, isolation, authorization, fallback and non-destructive bootstrap; preserve existing branding, uploads and routing; one focused PR, canonical Gate, squash merge, deploy affected targets, and verify production on /pcg/settings?section=profile for desktop and mobile.","provenance":{"reason":null,"source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production","proof-visual"]}],"objective":"Add and deploy a platform-wide KNOCKLAUNCH tenant media primitive so every canonical tenant has WMP profile/photo and BMD profile/photo uploader options in the shared Universal Profile/Settings experience. Reuse the existing tenant-scoped media/storage and authorization model; add preview, upload/replace, remove/reset; fall back to existing tenant avatar/logo when empty without overwriting custom media; persist with strict tenant isolation; expose on desktop/mobile for MODES and route-based tenants without CRM bleed; wire WMP consumers and any canonical BMD consumer to the shared slots; if no canonical BMD app exists, do not invent one, only expose the BMD slot through the shared media contract; extend bootstrap/health/self-heal non-destructively; add contract coverage for inheritance, isolation, authorization, fallback and non-destructive bootstrap; preserve existing branding, uploads and routing; one focused PR, canonical Gate, squash merge, deploy affected targets, and verify production on /pcg/settings?section=profile for desktop and mobile.","constraints":[{"id":"shared-primitive-only","statement":"Implement through the existing shared tenant media/profile primitive; do not create tenant-specific hacks or a second media library.","provenance":{"reason":null,"source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]},{"id":"non-destructive-bootstrap","statement":"Existing tenant branding and custom media must be preserved; empty WMP/BMD slots may fall back but bootstrap must not overwrite custom values.","provenance":{"reason":null,"source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]},{"id":"no-new-bmd-route","statement":"If there is no canonical BMD application in current main, do not invent a new BMD route or product surface.","provenance":{"reason":null,"source":"current_request_explicit","inherited":false,"blockingAuthority":true},"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.","provenance":{"reason":null,"source":"hard_safety_invariant","inherited":false,"blockingAuthority":true},"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.","provenance":{"reason":null,"source":"hard_safety_invariant","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"adaptivePolicy":{"risk":{"tier":"high","blastRadius":"sensitive"},"proof":{"requiredKinds":["runtime","visual"],"visualProofScope":"broad","interactionRequired":true,"runtimeProofRequired":true},"scope":{"route":"/pcg/settings?section=profile","roleRef":null,"tenantRef":null,"sourceTargets":["src/PrivateAppShell.tsx","config/contracts/PREHISTORIC-001-TENANT-MEDIA.json","src/__tests__/contracts/prehistoric-001-tenant-media.contract.test.ts","config/capabilities/tenant-brand-character.json","config/capabilities/tenant-type-platform-primitive.json","config/capabilities/tenant-workspace-experience.json","config/capabilities/tenant-workspace-ui-contract-v2.json","config/capabilities/tenant-bootstrap.json","config/capabilities/tenant-activation-certification.json","config/capabilities/tenant-website-assets-settings.json","config/capabilities/wmp-mission-control.json"]},"dynamic":{"variables":["main_and_runtime_lineage","runner_capacity","queue_and_active_work","provider_health","failure_clusters_and_circuits","release_target_state","current_pr_and_gate_state"],"refreshStages":["preflight","gate","release","runtime_proof"],"refreshMayChange":["runner_selection","parallelism","retry_path","qa_depth","release_recovery","proof_timing"],"refreshMayNotChange":["owner_outcome","explicit_no_go_constraints","tenant_identity","credential_boundary","hard_safety_invariants"]},"urgency":{"priority":"normal","deadlineSignals":[],"deadlineExplicit":false},"version":"paul-adaptive-objective-v1","recovery":{"transient":"one_bounded_retry_then_alternate_eligible_pool_or_provider_path","deterministic":"repair_source_or_contract_do_not_blind_rerun","mutationDependencyFailure":"prerequisite_required_or_targeted_recovery_never_invent","readOnlyDependencyFailure":"degrade_to_available_grounded_context_and_keep_conversation_alive"},"unknowns":["tenant","deadline"],"authority":{"outcome":"current_explicit_owner_request","tactics":"live_prime_truth","unknownPolicy":"preserve_unknown_never_invent","historicalContext":"advisory_unless_current_request_confirms"},"execution":{"mutation":true,"concurrency":"serialize_overlapping_mutations","scopePolicy":"start_bounded_expand_only_with_machine_readable_dependency_evidence","staleStatePolicy":"refresh_dynamic_state_before_irreversible_or_acceptance_stage","conversationIsolation":true,"ownerOutcomeMayBeChangedByAdaptation":false},"experience":{"visual":true,"viewports":["desktop","mobile"],"behavioral":true,"visualProofScope":"broad"},"dependencies":{"requiredDomains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","release_ownership","live_production_proof"],"capabilityDomains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"releaseTargetHints":["frontend"]},"inputSignals":{"rawUtterance":"Add and deploy a platform-wide KNOCKLAUNCH tenant media primitive so every canonical tenant has WMP profile/photo and BMD profile/photo uploader options in the shared Universal Profile/Settings experience. Reuse the existing tenant-scoped media/storage and authorization model; add preview, upload/replace, remove/reset; fall back to existing tenant avatar/logo when empty without overwriting custom media; persist with strict tenant isolation; expose on desktop/mobile for MODES and route-based tenants without CRM bleed; wire WMP consumers and any canonical BMD consumer to the shared slots; if no canonical BMD app exists, do not invent one, only expose the BMD slot through the shared media contract; extend bootstrap/health/self-heal non-destructively; add contract coverage for inheritance, isolation, authorization, fallback and non-destructive bootstrap; preserve existing branding, uploads and routing; one focused PR, canonical Gate, squash merge, deploy affected targets, and verify production on /pcg/settings?section=profile for desktop and mobile.","canonicalIntent":"Add and deploy a platform-wide KNOCKLAUNCH tenant media primitive so every canonical tenant has WMP profile/photo and BMD profile/photo uploader options in the shared Universal Profile/Settings experience. Reuse the existing tenant-scoped media/storage and authorization model; add preview, upload/replace, remove/reset; fall back to existing tenant avatar/logo when empty without overwriting custom media; persist with strict tenant isolation; expose on desktop/mobile for MODES and route-based tenants without CRM bleed; wire WMP consumers and any canonical BMD consumer to the shared slots; if no canonical BMD app exists, do not invent one, only expose the BMD slot through the shared media contract; extend bootstrap/health/self-heal non-destructively; add contract coverage for inheritance, isolation, authorization, fallback and non-destructive bootstrap; preserve existing branding, uploads and routing; one focused PR, canonical Gate, squash merge, deploy affected targets, and verify production on /pcg/settings?section=profile for desktop and mobile.","conversationContextPresent":false}},"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"runtime","claim":"The shared WMP/BMD tenant media slots are deployed and available through the canonical tenant Profile/Settings system with tenant isolation, fallback, and non-destructive bootstrap.","route":"/pcg/settings?section=profile","roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false},{"id":"proof-visual","kind":"visual","claim":"The WMP profile/photo and BMD profile/photo controls render and are usable on the representative PCG tenant Profile/Settings surface on desktop and mobile.","route":"/pcg/settings?section=profile","roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}],"validationErrors":[],"capabilityManifest":{"id":"Add-and-deploy-a-platform-wide-KNOCKLAUNCH-tenant-media-primitive-so-every-canonical-tenant-has-WMP-","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":"b896d59bbce2a5af08f0932844b8a4dbb4cb43fcc1f6ce825f8c741a693a45ea","requestContractRevision":2,"previousRequestContractHash":"af0d6be3e8cb6b2d4237ca7ed2bb14842e4ad50c3afcf81b9eab5251038d34a1"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T02:20:52.967394+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:0c9214ae-d67b-4116-b34f-105594135791:request-contract:b896d59bbce2a5af08f0932844b8a4dbb4cb43fcc1f6ce825f8c741a693a45ea","mission_step_id":"3740dfcc-522f-4099-9fed-68a313ef527c","command_center_event_id":"0c9214ae-d67b-4116-b34f-105594135791"},{"id":"11aca74d-1701-4c8f-91f5-7fd129201ee5","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"release","branch":null,"reason":"canonical_release_queue_busy:14487","status":"blocked","metrics":{"receiptBytes":4324,"releaseCount":0,"toolCallCount":4,"repeatedCallCount":1,"executorlessWaitMs":8460,"firstUsefulResultAt":"2026-10-02T19:24:13.227Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.50-onepath-source-domain","prNumber":4518,"terminal":false,"missionId":"ba3c59dd-4db3-4a85-8dfa-3f03e7b8a000","operation":"execute_mission","proofGate":"canonical_release_blocked","sourceSha":"10082963afc4a7c31379ef19d30b9294d7bfda9b","timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1020,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":47,"approvedPlanMs":0,"missionSetupMs":1109,"providerAuthMs":0,"shipAndProveMs":319,"ledgerPrepareMs":285,"ledgerReconcileMs":0,"lineageReconcileMs":824,"resolvePreflightMs":1109,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":285,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"ba3c59dd-4db3-4a85-8dfa-3f03e7b8a000"},"performance":null,"deploymentId":"forgejo-main-10082963afc4","releaseState":"pending","workflowRunId":14487,"releaseTargets":{"frontend":true,"migrations":false,"ccExecution":false,"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":1407,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T19:24:23.708983+00:00","proof_gate":"canonical_release_blocked","source_sha":"10082963afc4a7c31379ef19d30b9294d7bfda9b","external_id":"forgejo-main-10082963afc4","receipt_type":"execute_mission","idempotency_key":"mission:ba3c59dd-4db3-4a85-8dfa-3f03e7b8a000:execute_mission:canonical_release_blocked:current-generation","mission_step_id":"f0436893-50bf-41b1-8b52-5911bd30bfd4","command_center_event_id":"ba3c59dd-4db3-4a85-8dfa-3f03e7b8a000"},{"id":"11ad8398-12fe-42fd-bb1d-9dfd2f690e0f","source":"cc-execution","status":"verified","payload":{"paths":["supabase/functions/admin-manage/index.ts","workers/cc-execution/src/index-mission-control.js","workers/cc-execution/src/version.js"],"baseSha":"3c98ad4d996f8a03e3728e472d11a685bf0689c2","consumedAt":1787881460157,"consumerToken":"8eb89228-c668-46c2-86ca-465be97f4a72","authorizationId":"131d8d60-a3b8-4b0c-8c4a-5b425d5746a4"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-28T01:44:21.802131+00:00","proof_gate":"control_plane_maintenance_single_use_consumed","source_sha":"3c98ad4d996f8a03e3728e472d11a685bf0689c2","external_id":null,"receipt_type":"control_plane_maintenance_consumed","idempotency_key":"control-plane-maintenance-consume:131d8d60-a3b8-4b0c-8c4a-5b425d5746a4","mission_step_id":"a7e25907-d5d6-4f77-ba20-050c87a69b94","command_center_event_id":"12723b5f-39a7-424b-b604-44bc8d00b26d"},{"id":"11aeb014-fce7-4967-abd0-40e183faec60","source":"cc-execution","status":"release_verification_pending","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":null,"reason":null,"status":"release_verification_pending","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.30.2-deferred-visual-proof","prNumber":3899,"terminal":false,"missionId":"1461cfae-66aa-4861-a2dd-bb81bd47c56e","operation":"ship_and_prove","proofGate":"ship_and_prove_release_pending","sourceSha":"805fbc9a58f08d2a47cf2d5d048c1f70bab0682f","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"1461cfae-66aa-4861-a2dd-bb81bd47c56e"},"performance":null,"deploymentId":"canonical-release-805fbc9a58f0","workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"ccExecution":false,"supabaseEdge":false},"detailsAvailable":true,"sourceReceiptBytes":1108,"ownerActionRequired":false},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-03T18:17:13.429482+00:00","proof_gate":"ship_and_prove_release_pending","source_sha":"805fbc9a58f08d2a47cf2d5d048c1f70bab0682f","external_id":"canonical-release-805fbc9a58f0","receipt_type":"ship_and_prove","idempotency_key":"mission:1461cfae-66aa-4861-a2dd-bb81bd47c56e:ship_and_prove:ship_and_prove_release_pending","mission_step_id":"561a087d-24d7-4251-aa7b-4d3c9a4b83f2","command_center_event_id":"1461cfae-66aa-4861-a2dd-bb81bd47c56e"},{"id":"11afa0fd-a4d6-4fc0-81d7-2fcb28faef0a","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/realtor-showing-feedback-persistence-v2-20260906","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.70-forgejo-source-discovery-retry-window","prNumber":2040,"terminal":false,"missionId":"07cfdb12-6800-4f6e-ad8b-277f9afa93ab","operation":"execute_mission","proofGate":"canonical_release_dispatched","sourceSha":"82d29cd1472efbf543a90973c8402cc1b3b31c0f","timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":17391,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":2802,"approvedPlanMs":0,"missionSetupMs":1313,"providerAuthMs":0,"shipAndProveMs":12998,"ledgerPrepareMs":432,"ledgerReconcileMs":0,"lineageReconcileMs":881,"resolvePreflightMs":1313,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":432,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"07cfdb12-6800-4f6e-ad8b-277f9afa93ab"},"performance":null,"deploymentId":"forgejo-main-82d29cd1472e","workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":2666,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"90ed5bf4-8abd-4d3a-af7c-024664b5b99d","created_at":"2026-09-07T03:32:45.147119+00:00","proof_gate":"canonical_release_dispatched","source_sha":"82d29cd1472efbf543a90973c8402cc1b3b31c0f","external_id":"forgejo-main-82d29cd1472e","receipt_type":"execute_mission","idempotency_key":"mission:07cfdb12-6800-4f6e-ad8b-277f9afa93ab:execute_mission:canonical_release_dispatched:current-generation","mission_step_id":"1d3fc5fc-eb36-47e3-b0e5-e82d246532ed","command_center_event_id":"07cfdb12-6800-4f6e-ad8b-277f9afa93ab"},{"id":"11b0eb71-0447-45ec-8f77-da61fa5ed7f5","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/fix-proof-only-queue-cleanup-20260826","reason":"orphaned_branch_recovery_requires_exact_applied_state:ai/fix-proof-only-queue-cleanup-20260826","status":"blocked","metrics":{"receiptBytes":2331,"releaseCount":0,"toolCallCount":2,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.51.1-forgejo-queue-hygiene","prNumber":null,"terminal":false,"missionId":"9e970ddd-17db-4615-8a35-99ded660d043","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"handlerMs":2845,"prReadinessMs":0,"approvedPlanMs":2845,"missionSetupMs":450,"shipAndProveMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"9e970ddd-17db-4615-8a35-99ded660d043"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5115,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-26T16:14:41.834468+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:9e970ddd-17db-4615-8a35-99ded660d043:execute_mission:repair_mission_execution_blocked","mission_step_id":"5ff57481-8d9c-433f-ac15-7fd0358877ed","command_center_event_id":"9e970ddd-17db-4615-8a35-99ded660d043"},{"id":"11b1d7ea-8e18-444b-a2c4-0c13f6b64f68","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-75240aea1142","writes":[],"patches":[],"version":1,"approved":true,"missionId":"75240aea-1142-4223-aaeb-8ffa58309468","objective":"Corrective PAUL conversational-intelligence implementation after blocked mission 1118f58b-b5c7-426f-ab73-cab3ff54774b. Apply the bounded production reasoning-routing upgrade in workers/cc-execution/src/platform-sidekick-intelligence.js: promote correction-heavy, referent-dependent, multi-turn, ambiguous, architectural, diagnostic, design, and context-synthesis conversations to deep reasoning while reserving fast routing for genuinely simple retrieval/formatting/status. Preserve provider-neutral routing, tenant safety, tool authorization, and execution semantics. Owner explicitly authorizes control-plane maintenance and unfreeze for this PAUL intelligence change. Continue through canonical Forgejo PR, Gate, squash merge, required cc-execution release identity handling, production deploy, and live paul_intelligence_eval proof.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["workers/cc-execution/src/platform-sidekick-intelligence.js"],"anchored_edits":[{"path":"workers/cc-execution/src/platform-sidekick-intelligence.js","anchor":"export const PLATFORM_SIDEKICK_INTELLIGENCE_VERSION=\"platform-sidekick-intelligence-v8-owner-answer-quality\";","replacement":"export const PLATFORM_SIDEKICK_INTELLIGENCE_VERSION=\"platform-sidekick-intelligence-v9-conversational-depth\";"},{"path":"workers/cc-execution/src/platform-sidekick-intelligence.js","anchor":"  const deepComplex=/\\b(root cause|architect|audit|tradeoff|contradict|ambiguous|multi[- ]stage|cross[- ]system|deep(?:ly)?|continue improving|make .* smarter)\\b/i.test(prompt);","replacement":"  const deepComplex=/\\b(root cause|architect|audit|tradeoff|contradict|ambiguous|multi[- ]stage|multi[- ]turn|cross[- ]system|deep(?:ly)?|continue improving|make .* smarter|referent|context(?:ual)? synthesis|correction|you missed|not what i asked|didn't answer|did not answer|redesign|diagnos|design decision)\\b/i.test(prompt);"},{"path":"workers/cc-execution/src/platform-sidekick-intelligence.js","anchor":"  if(iterative||recentOwnerProgress)return\"deep\";","replacement":"  const conversationDepthSignals=/\\b(?:that|this|it|they|those|same|again|continue|previous|earlier|we already|you already|as i said|as we said)\\b/i.test(prompt)&&messages.length>=4;\\n  const correctionHeavy=/\\b(?:you missed|not what i asked|didn't answer|did not answer|wrong|no[,! ]|i meant|that's not|that isn't)\\b/i.test(prompt);\\n  if(iterative||recentOwnerProgress||correctionHeavy||conversationDepthSignals)return\"deep\";"}],"implementation":{"files":[],"writes":[]},"requestContract":{"valid":true,"intent":{"compilation":{"stages":["owner_intent","conversation_context","scope","live_state","mutation_authority","affected_systems","dependencies","risk_and_blast_radius","execution_tactics","required_proof","release_plan","recovery_plan"],"version":2,"explicit":true,"objective":"Corrective PAUL conversational-intelligence implementation after blocked mission 1118f58b-b5c7-426f-ab73-cab3ff54774b. Apply the bounded production reasoning-routing upgrade in workers/cc-execution/src/platform-sidekick-intelligence.js: promote correction-heavy, referent-dependent, multi-turn, ambiguous, architectural, diagnostic, design, and context-synthesis conversations to deep reasoning while reserving fast routing for genuinely simple retrieval/formatting/status. Preserve provider-neutral routing, tenant safety, tool authorization, and execution semantics. Owner explicitly authorizes control-plane maintenance and unfreeze for this PAUL intelligence change. Continue through canonical Forgejo PR, Gate, squash merge, required cc-execution release identity handling, production deploy, and live paul_intelligence_eval proof.","proofKinds":["runtime"]},"rawUtterance":"Corrective PAUL conversational-intelligence implementation after blocked mission 1118f58b-b5c7-426f-ab73-cab3ff54774b. Apply the bounded production reasoning-routing upgrade in workers/cc-execution/src/platform-sidekick-intelligence.js: promote correction-heavy, referent-dependent, multi-turn, ambiguous, architectural, diagnostic, design, and context-synthesis conversations to deep reasoning while reserving fast routing for genuinely simple retrieval/formatting/status. Preserve provider-neutral routing, tenant safety, tool authorization, and execution semantics. Owner explicitly authorizes control-plane maintenance and unfreeze for this PAUL intelligence change. Continue through canonical Forgejo PR, Gate, squash merge, required cc-execution release identity handling, production deploy, and live paul_intelligence_eval proof.","wordingChanged":false,"canonicalIntent":"Corrective PAUL conversational-intelligence implementation after blocked mission 1118f58b-b5c7-426f-ab73-cab3ff54774b. Apply the bounded production reasoning-routing upgrade in workers/cc-execution/src/platform-sidekick-intelligence.js: promote correction-heavy, referent-dependent, multi-turn, ambiguous, architectural, diagnostic, design, and context-synthesis conversations to deep reasoning while reserving fast routing for genuinely simple retrieval/formatting/status. Preserve provider-neutral routing, tenant safety, tool authorization, and execution semantics. Owner explicitly authorizes control-plane maintenance and unfreeze for this PAUL intelligence change. Continue through canonical Forgejo PR, Gate, squash merge, required cc-execution release identity handling, production deploy, and live paul_intelligence_eval proof.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"paul-conversational-depth","statement":"Corrective PAUL conversational-intelligence implementation after blocked mission 1118f58b-b5c7-426f-ab73-cab3ff54774b. Apply the bounded production reasoning-routing upgrade in workers/cc-execution/src/platform-sidekick-intelligence.js: promote correction-heavy, referent-dependent, multi-turn, ambiguous, architectural, diagnostic, design, and context-synthesis conversations to deep reasoning while reserving fast routing for genuinely simple retrieval/formatting/status. Preserve provider-neutral routing, tenant safety, tool authorization, and execution semantics. Owner explicitly authorizes control-plane maintenance and unfreeze for this PAUL intelligence change. Continue through canonical Forgejo PR, Gate, squash merge, required cc-execution release identity handling, production deploy, and live paul_intelligence_eval proof.","provenance":{"reason":"Owner instructed continued PAUL improvement in the same manner.","source":"owner_explicit_request","inherited":false,"blockingAuthority":true},"proofConditionIds":["paul-runtime-proof"]}],"objective":"Corrective PAUL conversational-intelligence implementation after blocked mission 1118f58b-b5c7-426f-ab73-cab3ff54774b. Apply the bounded production reasoning-routing upgrade in workers/cc-execution/src/platform-sidekick-intelligence.js: promote correction-heavy, referent-dependent, multi-turn, ambiguous, architectural, diagnostic, design, and context-synthesis conversations to deep reasoning while reserving fast routing for genuinely simple retrieval/formatting/status. Preserve provider-neutral routing, tenant safety, tool authorization, and execution semantics. Owner explicitly authorizes control-plane maintenance and unfreeze for this PAUL intelligence change. Continue through canonical Forgejo PR, Gate, squash merge, required cc-execution release identity handling, production deploy, and live paul_intelligence_eval proof.","constraints":[{"id":"canonical-execution","statement":"Use canonical Prime/Forgejo/Gate/release path and preserve tenant/security invariants.","provenance":{"reason":"Platform execution contract.","source":"hard_safety_invariant","inherited":false,"blockingAuthority":true},"proofConditionIds":["paul-runtime-proof"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"paul-runtime-proof","kind":"runtime","claim":"The PAUL conversational-depth upgrade is live in production and the PAUL intelligence evaluation is healthy for the repaired behavior."}]},"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":null,"ownerApproved":true,"releaseIntent":null,"sourceTargets":["workers/cc-execution/src/platform-sidekick-intelligence.js"],"requestContract":{"valid":true,"intent":{"compilation":{"stages":["owner_intent","conversation_context","scope","live_state","mutation_authority","affected_systems","dependencies","risk_and_blast_radius","execution_tactics","required_proof","release_plan","recovery_plan"],"version":2,"explicit":true,"objective":"Corrective PAUL conversational-intelligence implementation after blocked mission 1118f58b-b5c7-426f-ab73-cab3ff54774b. Apply the bounded production reasoning-routing upgrade in workers/cc-execution/src/platform-sidekick-intelligence.js: promote correction-heavy, referent-dependent, multi-turn, ambiguous, architectural, diagnostic, design, and context-synthesis conversations to deep reasoning while reserving fast routing for genuinely simple retrieval/formatting/status. Preserve provider-neutral routing, tenant safety, tool authorization, and execution semantics. Owner explicitly authorizes control-plane maintenance and unfreeze for this PAUL intelligence change. Continue through canonical Forgejo PR, Gate, squash merge, required cc-execution release identity handling, production deploy, and live paul_intelligence_eval proof.","proofKinds":["runtime"]},"rawUtterance":"Corrective PAUL conversational-intelligence implementation after blocked mission 1118f58b-b5c7-426f-ab73-cab3ff54774b. Apply the bounded production reasoning-routing upgrade in workers/cc-execution/src/platform-sidekick-intelligence.js: promote correction-heavy, referent-dependent, multi-turn, ambiguous, architectural, diagnostic, design, and context-synthesis conversations to deep reasoning while reserving fast routing for genuinely simple retrieval/formatting/status. Preserve provider-neutral routing, tenant safety, tool authorization, and execution semantics. Owner explicitly authorizes control-plane maintenance and unfreeze for this PAUL intelligence change. Continue through canonical Forgejo PR, Gate, squash merge, required cc-execution release identity handling, production deploy, and live paul_intelligence_eval proof.","wordingChanged":false,"canonicalIntent":"Corrective PAUL conversational-intelligence implementation after blocked mission 1118f58b-b5c7-426f-ab73-cab3ff54774b. Apply the bounded production reasoning-routing upgrade in workers/cc-execution/src/platform-sidekick-intelligence.js: promote correction-heavy, referent-dependent, multi-turn, ambiguous, architectural, diagnostic, design, and context-synthesis conversations to deep reasoning while reserving fast routing for genuinely simple retrieval/formatting/status. Preserve provider-neutral routing, tenant safety, tool authorization, and execution semantics. Owner explicitly authorizes control-plane maintenance and unfreeze for this PAUL intelligence change. Continue through canonical Forgejo PR, Gate, squash merge, required cc-execution release identity handling, production deploy, and live paul_intelligence_eval proof.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"paul-conversational-depth","statement":"Corrective PAUL conversational-intelligence implementation after blocked mission 1118f58b-b5c7-426f-ab73-cab3ff54774b. Apply the bounded production reasoning-routing upgrade in workers/cc-execution/src/platform-sidekick-intelligence.js: promote correction-heavy, referent-dependent, multi-turn, ambiguous, architectural, diagnostic, design, and context-synthesis conversations to deep reasoning while reserving fast routing for genuinely simple retrieval/formatting/status. Preserve provider-neutral routing, tenant safety, tool authorization, and execution semantics. Owner explicitly authorizes control-plane maintenance and unfreeze for this PAUL intelligence change. Continue through canonical Forgejo PR, Gate, squash merge, required cc-execution release identity handling, production deploy, and live paul_intelligence_eval proof.","provenance":{"reason":"Owner instructed continued PAUL improvement in the same manner.","source":"owner_explicit_request","inherited":false,"blockingAuthority":true},"proofConditionIds":["paul-runtime-proof"]}],"objective":"Corrective PAUL conversational-intelligence implementation after blocked mission 1118f58b-b5c7-426f-ab73-cab3ff54774b. Apply the bounded production reasoning-routing upgrade in workers/cc-execution/src/platform-sidekick-intelligence.js: promote correction-heavy, referent-dependent, multi-turn, ambiguous, architectural, diagnostic, design, and context-synthesis conversations to deep reasoning while reserving fast routing for genuinely simple retrieval/formatting/status. Preserve provider-neutral routing, tenant safety, tool authorization, and execution semantics. Owner explicitly authorizes control-plane maintenance and unfreeze for this PAUL intelligence change. Continue through canonical Forgejo PR, Gate, squash merge, required cc-execution release identity handling, production deploy, and live paul_intelligence_eval proof.","constraints":[{"id":"canonical-execution","statement":"Use canonical Prime/Forgejo/Gate/release path and preserve tenant/security invariants.","provenance":{"reason":"Platform execution contract.","source":"hard_safety_invariant","inherited":false,"blockingAuthority":true},"proofConditionIds":["paul-runtime-proof"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"paul-runtime-proof","kind":"runtime","claim":"The PAUL conversational-depth upgrade is live in production and the PAUL intelligence evaluation is healthy for the repaired behavior."}]},"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":["workers/cc-execution/src/platform-sidekick-intelligence.js"],"controlPlaneMaintenanceReason":"Owner-authorized corrective PAUL conversational intelligence maintenance."},"proofRequirements":null,"controlPlaneUnfreeze":true,"durableMutationResume":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":["workers/cc-execution/src/platform-sidekick-intelligence.js"],"controlPlaneMaintenanceReason":"Owner-authorized corrective PAUL conversational intelligence maintenance."},"recovery":false,"fingerprint":"9ef72263fd7b75607af798b5829e7b25efbb783e1c406bff46ec8b17f18df802","replayCount":0,"serializedBytes":14799},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T21:09:17.396536+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:75240aea-1142-4223-aaeb-8ffa58309468:repository-mutation-intent:9ef72263fd7b75607af798b5829e7b25efbb783e1c406bff46ec8b17f18df802:0","mission_step_id":"e060af96-10fb-4f75-85a7-bb89b01e36f0","command_center_event_id":"75240aea-1142-4223-aaeb-8ffa58309468"},{"id":"11b203da-8213-49ac-951b-ebd3242f5f62","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Recover the owner-authorized shared private-workspace background policy despite the orphaned PR #1957 lineage mismatch. Use the control plane's corrective generation policy: supersede the orphaned PR if required, preserve the exact owner directive and edits, create only one active corrective PR for this generation, then Gate, squash merge, frontend-only release, and prove the live repository/runtime invariant. Do not create duplicate releases or leave multiple active repair PRs for this outcome.","wordingChanged":false,"canonicalIntent":"Recover the owner-authorized shared private-workspace background policy despite the orphaned PR #1957 lineage mismatch. Use the control plane's corrective generation policy: supersede the orphaned PR if required, preserve the exact owner directive and edits, create only one active corrective PR for this generation, then Gate, squash merge, frontend-only release, and prove the live repository/runtime invariant. Do not create duplicate releases or leave multiple active repair PRs for this outcome.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"private-workspace-background-policy","statement":"All private tenant operational workspaces reject route-specific background-image injection from published experiences while customer-facing/public theming remains available.","proofConditionIds":["repo-policy","production-live"]},{"id":"curri-fixed-under-shared-policy","statement":"Curri uses only its canonical tenant background; route changes cannot inject a duplicate background image into the owner shell.","proofConditionIds":["repo-policy","production-live"]}],"objective":"Recover the owner-authorized shared private-workspace background policy despite the orphaned PR #1957 lineage mismatch. Use the control plane's corrective generation policy: supersede the orphaned PR if required, preserve the exact owner directive and edits, create only one active corrective PR for this generation, then Gate, squash merge, frontend-only release, and prove the live repository/runtime invariant. Do not create duplicate releases or leave multiple active repair PRs for this outcome.","constraints":[{"id":"preserve-component-styling","statement":"Preserve non-background published component styling and preserve customer-facing/public background theming.","proofConditionIds":["repo-policy","production-live"]},{"id":"frontend-only","statement":"Release frontend only.","proofConditionIds":["production-live"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"repo-policy","kind":"repository","claim":"PrivateAppShell marks private operational workspace scope and usePublishedExperience rejects background-image or URL-bearing background injection inside that scope while preserving other styling.","route":"/crm/realtor/curri-properties/realtor-dashboard","roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"production-live","kind":"runtime","claim":"The exact merged frontend artifact containing the shared private-workspace background policy is live in production.","route":"/crm/realtor/curri-properties/realtor-dashboard","roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":["frontend"],"requiredReleaseTargets":["frontend"]}],"validationErrors":[]},"requestContractHash":"43640a67d94e077a120a187443f1d1bd8ab37667ddf23ab7db857fecc9010322","requestContractRevision":2,"previousRequestContractHash":"29165eed61d4608fe939948b0cae455878aa82cd1f20654bd8f8906b2f43608b"},"tenant_id":"90ed5bf4-8abd-4d3a-af7c-024664b5b99d","created_at":"2026-09-06T15:27:52.56951+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:e8beb180-d010-4083-b437-8285c951bf74:request-contract:43640a67d94e077a120a187443f1d1bd8ab37667ddf23ab7db857fecc9010322","mission_step_id":"d84be533-f0ae-4247-9aa5-6415597c5f8e","command_center_event_id":"e8beb180-d010-4083-b437-8285c951bf74"},{"id":"11b358a0-69c6-405b-9c5f-194cfd884420","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"objective_received","branch":null,"reason":"pull_request_not_merge_eligible:pr_not_merge_eligible","status":"blocked","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.31.24-exact-release-classification","prNumber":4437,"terminal":false,"missionId":"89ad218a-8c4c-4ae3-90a0-fa2c267aa78f","operation":"ship_and_prove","proofGate":"canonical_release_blocked","sourceSha":null,"timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"89ad218a-8c4c-4ae3-90a0-fa2c267aa78f"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":186,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-09T11:32:46.95749+00:00","proof_gate":"canonical_release_blocked","source_sha":null,"external_id":"4437","receipt_type":"ship_and_prove","idempotency_key":"mission:89ad218a-8c4c-4ae3-90a0-fa2c267aa78f:ship_and_prove:canonical_release_blocked:no-source:no-run","mission_step_id":"502e8d69-5958-4743-8066-3a562d52cec5","command_center_event_id":"89ad218a-8c4c-4ae3-90a0-fa2c267aa78f"},{"id":"11b6a33f-4cdf-4ff8-8a7b-a82c6ffb2761","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-6cebe5456b72","reason":"file_write_content_or_explicit_delete_required","status":"blocked","metrics":{"receiptBytes":12126,"releaseCount":0,"toolCallCount":6,"repeatedCallCount":1,"executorlessWaitMs":57622,"firstUsefulResultAt":"2026-09-24T17:48:30.568Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.260-release-actions-query-parity","prNumber":null,"terminal":false,"missionId":"6cebe545-6b72-468c-9a0c-d8a2c0936755","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":288,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":288,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":288,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":288,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"6cebe545-6b72-468c-9a0c-d8a2c0936755"},"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-24T17:49:07.093862+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:6cebe545-6b72-468c-9a0c-d8a2c0936755:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"05204441-5588-461e-896e-fe66778c8a84","command_center_event_id":"6cebe545-6b72-468c-9a0c-d8a2c0936755"},{"id":"11b97fb8-10d9-4816-aede-ded675970352","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/speedy-panda-public-site-route","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.182-witness-render-cold-start-aware","prNumber":3222,"terminal":false,"missionId":"88270c97-2772-4707-82ae-773c69a5b3db","operation":"execute_mission","proofGate":"canonical_release_dispatched","sourceSha":"6c3e5389a654860c53dce4378206dcdf28b89ae1","timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":6086,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":472,"approvedPlanMs":2355,"missionSetupMs":429,"providerAuthMs":0,"shipAndProveMs":3016,"ledgerPrepareMs":284,"ledgerReconcileMs":0,"lineageReconcileMs":145,"resolvePreflightMs":429,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":284,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"88270c97-2772-4707-82ae-773c69a5b3db"},"performance":null,"deploymentId":"forgejo-main-6c3e5389a654","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"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":2843,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"f72c9e82-e623-42a4-99f9-eb36752e622b","created_at":"2026-09-19T14:36:27.481834+00:00","proof_gate":"canonical_release_dispatched","source_sha":"6c3e5389a654860c53dce4378206dcdf28b89ae1","external_id":"forgejo-main-6c3e5389a654","receipt_type":"execute_mission","idempotency_key":"mission:88270c97-2772-4707-82ae-773c69a5b3db:execute_mission:canonical_release_dispatched:current-generation","mission_step_id":"46c4532d-c5a0-4014-9c05-3dd4068ef30a","command_center_event_id":"88270c97-2772-4707-82ae-773c69a5b3db"},{"id":"11b9e6bf-fcc5-4882-b3c5-c737fe66cfa8","source":"durable-mission-ledger","status":"pending","payload":{"sourceSha":"b2ae41397be7d85048a5d94d328f31556072c731","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"curri-visual-repair","satisfied":false,"statement":"The live Curri dashboard shows the wanted fixed tenant background stationary while scrolling, with no unwanted continuous background sheet moving from Home through Brokerage Radar and no wrong full-screen background.","proofConditionIds":["production-live","visual-scroll"]}],"satisfied":false,"constraints":[{"id":"same-pr","satisfied":true,"statement":"Use existing PR #1953 and exact green head 0cbca5bbd25c2a7c642d1cf51cae05c285da11a5 only; do not create another PR or modify source.","proofConditionIds":["production-live"]},{"id":"frontend-only","satisfied":false,"statement":"Release frontend only and preserve unrelated behavior.","proofConditionIds":["production-live","visual-scroll"]}],"contractHash":"0c4a1d1b6e10b6fae090c36d6a78ecb51548a8e82adff41e6ad9f2d975896e90","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"production-live","kind":"runtime","evidence":{"releaseState":"verified","activeReleaseTargets":["frontend"],"releaseRequestContractHash":"0c4a1d1b6e10b6fae090c36d6a78ecb51548a8e82adff41e6ad9f2d975896e90"},"required":true,"satisfied":true},{"id":"visual-scroll","kind":"visual","evidence":{"verificationState":null,"witnessRequestContractHash":null},"required":true,"satisfied":false}],"validationErrors":[],"pendingProofKinds":["visual"],"activeReleaseTargets":["frontend"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":2},"tenant_id":"90ed5bf4-8abd-4d3a-af7c-024664b5b99d","created_at":"2026-09-06T15:18:06.93012+00:00","proof_gate":"request_contract_pending","source_sha":"b2ae41397be7d85048a5d94d328f31556072c731","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:84923a89-929e-4712-9b72-6f1994e7a592:request-contract:0c4a1d1b6e10b6fae090c36d6a78ecb51548a8e82adff41e6ad9f2d975896e90:b2ae41397be7d85048a5d94d328f31556072c731:pending:visual","mission_step_id":"d672a1cc-e368-401b-bb57-3a3accc8f3c8","command_center_event_id":"84923a89-929e-4712-9b72-6f1994e7a592"},{"id":"11ba4bf7-fb19-469c-b892-739207586c4e","source":"cc-execution","status":"authorized","payload":{"paths":["workers/cc-execution/src/index-mission-control.js","workers/cc-execution/src/mission-ledger.js","workers/cc-execution/src/version.js","workers/cc-execution/test/release-orchestration-invariants.test.js"],"reason":"Routine main refresh for same bounded authorized repair.","baseSha":"0c4fdc3b653d6ccf3fb8b437a37a6ff1f3fe30e3","issuedAt":1790131003113,"expiresAt":1790131183113,"missionId":"2a4864e8-5503-4795-bc35-3fc0a2428e4a","authorizationId":"8363178f-b592-4ea8-a0c4-3556fdf7248a","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-23T02:36:43.378063+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"0c4fdc3b653d6ccf3fb8b437a37a6ff1f3fe30e3","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:8363178f-b592-4ea8-a0c4-3556fdf7248a","mission_step_id":"25c05bf5-139f-49f1-94d8-204373727476","command_center_event_id":"2a4864e8-5503-4795-bc35-3fc0a2428e4a"},{"id":"11bb9f37-9298-4d5d-ad8e-d765ef8ed9fc","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/visual-witness-dual-runner-failover","reason":"pull_request_checks_pending","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":1739,"terminal":false,"missionId":"b16d69ed-3a11-430b-846b-d0828c9b20b9","operation":"automatic_mission_resume","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"prReadinessMs":1414,"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":"b16d69ed-3a11-430b-846b-d0828c9b20b9"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1284,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-04T19:05:15.564371+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"1739","receipt_type":"automatic_mission_resume","idempotency_key":"mission:b16d69ed-3a11-430b-846b-d0828c9b20b9:automatic-mission-resume:1739:repair_mission_waiting_for_gate","mission_step_id":"bc77c479-9091-445b-8a6d-ab41ae2e6bc1","command_center_event_id":"b16d69ed-3a11-430b-846b-d0828c9b20b9"},{"id":"11bc23e0-d0ae-4e9b-bc88-2e5e17b32379","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":null,"reason":"pull_request_stale_refresh_required","status":"retryable","metrics":{"receiptBytes":7843,"releaseCount":0,"toolCallCount":7,"repeatedCallCount":4,"ownerInterruptionCount":0},"version":null,"prNumber":373,"terminal":false,"missionId":"59300e64-7b31-4a68-9d47-e7f599483fae","operation":"automatic_mission_resume","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":null,"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"59300e64-7b31-4a68-9d47-e7f599483fae"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1099,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-18T15:18:01.464207+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"373","receipt_type":"automatic_mission_resume","idempotency_key":"mission:59300e64-7b31-4a68-9d47-e7f599483fae:automatic-mission-resume:373:repair_mission_pr_ready_retryable","mission_step_id":"d1485f31-12ba-45ac-8974-7cdff8d5461d","command_center_event_id":"59300e64-7b31-4a68-9d47-e7f599483fae"},{"id":"11bf96f7-cb0e-4317-ab91-e27f8adb85fa","source":"cc-execution","status":"waiting","payload":{"model":"@cf/openai/gpt-oss-120b","reason":"inference_returned_no_edits","provider":"cloudflare-workers-ai","latencyMs":6022,"structuredKeys":["edits"]},"tenant_id":"9602e177-0cbb-496c-bdf5-2fbc93f1b859","created_at":"2026-10-04T15:18:39.233394+00:00","proof_gate":"paul_synthesis_no_edits","source_sha":null,"external_id":null,"receipt_type":"paul_synthesis_diagnostic","idempotency_key":"mission:a750fb22-e66f-4eb8-af50-e9da49464879:paul_synthesis_diagnostic:paul_synthesis_no_edits:waiting","mission_step_id":"56257432-f65e-4731-a77e-34be9893ac59","command_center_event_id":"a750fb22-e66f-4eb8-af50-e9da49464879"},{"id":"11c1b7bf-fcc5-42b1-a75d-98ea57234a32","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"release","branch":"ai/objective-first-repair-bb059f332349","reason":"canonical_release_queue_busy:15413","status":"blocked","metrics":{"receiptBytes":138205,"releaseCount":0,"toolCallCount":9,"repeatedCallCount":2,"executorlessWaitMs":29500,"firstUsefulResultAt":"2026-10-04T19:38:18.001Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.94-terminal-completion-supervisor","prNumber":4838,"terminal":false,"missionId":"bb059f33-2349-44f4-b2d5-5fe7ecf99906","operation":"execute_mission","proofGate":"canonical_release_blocked","sourceSha":"163044d538ca530e6cf2beeb29b030491c19310c","timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1130,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":98,"approvedPlanMs":0,"missionSetupMs":5809,"providerAuthMs":0,"shipAndProveMs":579,"ledgerPrepareMs":297,"ledgerReconcileMs":0,"lineageReconcileMs":5512,"resolvePreflightMs":5809,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":297,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"bb059f33-2349-44f4-b2d5-5fe7ecf99906"},"performance":null,"deploymentId":"forgejo-main-163044d538ca","releaseState":"pending","workflowRunId":15413,"releaseTargets":{"frontend":true,"migrations":false,"ccExecution":false,"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":1408,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-04T19:38:50.257274+00:00","proof_gate":"canonical_release_blocked","source_sha":"163044d538ca530e6cf2beeb29b030491c19310c","external_id":"forgejo-main-163044d538ca","receipt_type":"execute_mission","idempotency_key":"mission:bb059f33-2349-44f4-b2d5-5fe7ecf99906:execute_mission:canonical_release_blocked:current-generation","mission_step_id":"598595b5-fcc3-4aaa-b968-232ece28d321","command_center_event_id":"bb059f33-2349-44f4-b2d5-5fe7ecf99906"},{"id":"11c25afb-8ceb-44be-97b5-534a922868dd","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","frontend-cloudflare/live":"success"},"mainSha":"fec8e4ba9759574c74b564b02b449d129c37825b","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"fec8e4ba9759574c74b564b02b449d129c37825b","releaseState":"verified","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"success"},"requestContractHash":"31d8b1c98a16765dec655909e743f892ef5586bece107e294818677540a559bc","forgejoWorkflowProof":{"runId":13744,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"frontend":"success"},"targetJobCount":7,"observedTargetStates":{"frontend":"success"}},"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-01T10:36:57.556443+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"fec8e4ba9759574c74b564b02b449d129c37825b","external_id":"forgejo-main-fec8e4ba9759","receipt_type":"canonical_release_status","idempotency_key":"mission:b103393b-9f11-447a-92bc-4795cc646b13:forgejo-release-status:fec8e4ba9759574c74b564b02b449d129c37825b:verified:forgejo-main/source=success|forgejo-release/workflow=success|frontend-cloudflare/live=success","mission_step_id":"478171d1-0aff-417e-83c5-86e7e4db3fbe","command_center_event_id":"b103393b-9f11-447a-92bc-4795cc646b13"},{"id":"11c25dca-6d61-46a0-93f7-b3fefbaac5cf","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-8e07811d6361","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.118-architecture-exclusivity","prNumber":2514,"terminal":false,"missionId":"8e07811d-6361-4d73-a07e-dbd609b9c76e","operation":"execute_mission","proofGate":"canonical_release_dispatched","sourceSha":"cebdf4456280220a1b1dcb72727b699785308b7f","timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":3133,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":350,"approvedPlanMs":0,"missionSetupMs":684,"providerAuthMs":0,"shipAndProveMs":2536,"ledgerPrepareMs":367,"ledgerReconcileMs":0,"lineageReconcileMs":317,"resolvePreflightMs":684,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":367,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"8e07811d-6361-4d73-a07e-dbd609b9c76e"},"performance":null,"deploymentId":"forgejo-main-cebdf4456280","workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":true,"ccExecution":false,"supabaseEdge":true,"edgeFunctionSlugs":["agreement-sign","proposal-engine"]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":2822,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-12T17:38:36.297414+00:00","proof_gate":"canonical_release_dispatched","source_sha":"cebdf4456280220a1b1dcb72727b699785308b7f","external_id":"forgejo-main-cebdf4456280","receipt_type":"execute_mission","idempotency_key":"mission:8e07811d-6361-4d73-a07e-dbd609b9c76e:execute_mission:canonical_release_dispatched:current-generation","mission_step_id":"22b47253-a58c-42f2-be34-7f855f934a24","command_center_event_id":"8e07811d-6361-4d73-a07e-dbd609b9c76e"},{"id":"11c2ceae-6866-4150-aa5a-fc9a38878ca9","source":"cc-execution","status":"waiting","payload":{"model":"@cf/openai/gpt-oss-120b","reason":"inference_returned_no_edits","provider":"cloudflare-workers-ai","latencyMs":7368,"structuredKeys":["edits"]},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-04T01:34:34.838714+00:00","proof_gate":"paul_synthesis_no_edits","source_sha":null,"external_id":null,"receipt_type":"paul_synthesis_diagnostic","idempotency_key":"mission:124aeda7-c37f-4e89-9896-733cbb045084:paul_synthesis_diagnostic:paul_synthesis_no_edits:waiting","mission_step_id":"e878f665-f74b-44b5-bba4-c04689b87320","command_center_event_id":"124aeda7-c37f-4e89-9896-733cbb045084"},{"id":"11c503f3-01fd-4ceb-b434-d05eeb2828bc","source":"cc-execution","status":"release_verification_pending","payload":{"ok":true,"jobId":null,"phase":"release","branch":null,"reason":null,"status":"release_verification_pending","metrics":{"receiptBytes":3100,"releaseCount":0,"toolCallCount":5,"repeatedCallCount":2,"ownerInterruptionCount":0},"version":"1.47.4-pr-native-freshness","prNumber":383,"terminal":false,"missionId":"2160a187-5b83-4e34-b43d-4e0539f21745","operation":"ship_and_prove","proofGate":"ship_and_prove_release_pending","sourceSha":"05274c14d77b4729b1f8a5f3a28bd128bda68bb3","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"2160a187-5b83-4e34-b43d-4e0539f21745"},"performance":null,"deploymentId":"forgejo-main-05274c14d77b","workflowRunId":1333,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5989,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-18T23:57:36.043218+00:00","proof_gate":"ship_and_prove_release_pending","source_sha":"05274c14d77b4729b1f8a5f3a28bd128bda68bb3","external_id":"forgejo-main-05274c14d77b","receipt_type":"ship_and_prove","idempotency_key":"mission:2160a187-5b83-4e34-b43d-4e0539f21745:ship_and_prove:ship_and_prove_release_pending:05274c14d77b4729b1f8a5f3a28bd128bda68bb3:1333","mission_step_id":"47b2bdb5-f4b5-45dc-98aa-e740e32e419b","command_center_event_id":"2160a187-5b83-4e34-b43d-4e0539f21745"},{"id":"11c62f30-ae3e-4171-9f6c-4e671f0b4d41","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.46.17-release-orchestration-guardrails","prNumber":null,"terminal":false,"missionId":"9b50099a-fe6e-4538-9b4d-8213b2fa2ee8","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":null,"nextAction":"Inspect the bounded repository paths, synthesize exact files or anchored_edits, and call /repair/continue-mission automatically with this missionId without another owner prompt.","receiptRef":{"mode":"full","missionId":"9b50099a-fe6e-4538-9b4d-8213b2fa2ee8"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":11197,"likelyAffectedFiles":["src/components/admin/TenantUserCommandCenters.tsx","src/components/TenantRouter.tsx","src/__tests__/contracts/thirsty-panda-route-security.contract.test.ts","src/components/admin/config/TenantOverviewPanel.tsx","src/components/admin/EnhancedTenantManagement.tsx","src/components/admin/LeadManagement/LeadDashboardStats.tsx","src/components/TenantGuard.tsx","src/components/TenantRedirect.tsx","src/components/TenantSelectorModal.tsx","src/components/TenantSwitcher.tsx","src/__tests__/contracts/tenant-template-registry.contract.test.ts","src/__tests__/contracts/unified-protected-route-tenant-scope.contract.test.ts"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"69c86c8d-c737-439a-8f30-3246af0b3ad1","created_at":"2026-08-17T14:31:13.28101+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:9b50099a-fe6e-4538-9b4d-8213b2fa2ee8:execute_mission:repair_mission_synthesis_ready","mission_step_id":"1c52e1a5-b53b-4626-816f-fe3f6f19c521","command_center_event_id":"9b50099a-fe6e-4538-9b4d-8213b2fa2ee8"},{"id":"11c7d58d-8521-4252-8431-d4cc788911f5","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"release","branch":null,"reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":1154,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.46.8-intent-aware-objectives","prNumber":238,"terminal":false,"missionId":"a9c4687f-d257-4522-bce4-8780e429bea8","operation":"ship_and_prove","proofGate":"canonical_release_dispatched","sourceSha":"d9ca03ebf51573a5e5e955865658a251349996ce","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"a9c4687f-d257-4522-bce4-8780e429bea8"},"performance":null,"deploymentId":"forgejo-main-d9ca03ebf515","workflowRunId":696,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":2814,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-16T12:34:44.428812+00:00","proof_gate":"canonical_release_dispatched","source_sha":"d9ca03ebf51573a5e5e955865658a251349996ce","external_id":"forgejo-main-d9ca03ebf515","receipt_type":"ship_and_prove","idempotency_key":"mission:a9c4687f-d257-4522-bce4-8780e429bea8:ship_and_prove:canonical_release_dispatched:d9ca03ebf51573a5e5e955865658a251349996ce:696","mission_step_id":"7b3e5773-da4d-45f0-b978-92886ab64919","command_center_event_id":"a9c4687f-d257-4522-bce4-8780e429bea8"},{"id":"11c8ae8d-2579-4510-ba88-d01e915b5aa8","source":"cc-execution","status":"recorded","payload":{"objective":"Create the PCG public construction state on prestigiouscardgrading.com using the existing tenant website/settings system. Public visitors should see a premium mobile-safe Under Construction page. Keep the owner-side draft site editable so unfinished content remains private until later publication. Reuse existing domain and website primitives; do not create a parallel site system. Ship and verify live.","tenantRef":"PCG","receivedAt":"2026-10-04T09:24:42.199Z","fingerprint":"6ab48612f67becf6de9a1ffba23c8ded7e4099f3c65554d4c4c498d9cdd9d4a2","workstreamRef":"pcg","conversationId":null,"canonicalBranch":null,"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"compilation":{"stages":["owner_intent","conversation_context","scope","live_state","mutation_authority","affected_systems","dependencies","risk_and_blast_radius","execution_tactics","required_proof","release_plan","recovery_plan"],"version":2,"explicit":false,"objective":"Create the PCG public construction state on prestigiouscardgrading.com using the existing tenant website/settings system. Public visitors should see a premium mobile-safe Under Construction page. Keep the owner-side draft site editable so unfinished content remains private until later publication. Reuse existing domain and website primitives; do not create a parallel site system. Ship and verify live.","proofKinds":[],"adaptiveDomains":["intent","tenant_route_role_viewport","urgency_deadline","dependency_scope","risk_blast_radius","runner_capacity","queue_active_work","provider_failure_circuits","qa_scope","retry_recovery","release_ownership","proof_depth"],"expansionPolicy":"later_stages_may_only_narrow_or_expand_with_machine_readable_dependency_evidence","dynamicStatePolicy":"live_state_may_change_execution_tactics_but_never_owner_outcome_or_explicit_constraints","dynamicRefreshStages":["preflight","gate","release","runtime_proof"],"adaptiveCompilerVersion":"paul-adaptive-objective-v1","inheritedContextBlockingAuthority":false},"rawUtterance":"Create the PCG public construction state on prestigiouscardgrading.com using the existing tenant website/settings system. Public visitors should see a premium mobile-safe Under Construction page. Keep the owner-side draft site editable so unfinished content remains private until later publication. Reuse existing domain and website primitives; do not create a parallel site system. Ship and verify live.","wordingChanged":false,"canonicalIntent":"Create the PCG public construction state on prestigiouscardgrading.com using the existing tenant website/settings system. Public visitors should see a premium mobile-safe Under Construction page. Keep the owner-side draft site editable so unfinished content remains private until later publication. Reuse existing domain and website primitives; do not create a parallel site system. Ship and verify live.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"legacy_derived","version":1,"outcomes":[{"id":"outcome-1","statement":"Create the PCG public construction state on prestigiouscardgrading.com using the existing tenant website/settings system. Public visitors should see a premium mobile-safe Under Construction page. Keep the owner-side draft site editable so unfinished content remains private until later publication. Reuse existing domain and website primitives; do not create a parallel site system. Ship and verify live.","provenance":{"reason":null,"source":"current_request_inference","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"objective":"Create the PCG public construction state on prestigiouscardgrading.com using the existing tenant website/settings system. Public visitors should see a premium mobile-safe Under Construction page. Keep the owner-side draft site editable so unfinished content remains private until later publication. Reuse existing domain and website primitives; do not create a parallel site system. Ship and verify live.","constraints":[{"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":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"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.","provenance":{"reason":null,"source":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"adaptivePolicy":{"risk":{"tier":"standard","blastRadius":"scoped"},"proof":{"requiredKinds":["runtime"],"visualProofScope":"targeted","interactionRequired":false,"runtimeProofRequired":true},"scope":{"route":null,"roleRef":null,"tenantRef":"PCG","sourceTargets":["config/capabilities/tenant-website-assets-settings.json"]},"dynamic":{"variables":["main_and_runtime_lineage","runner_capacity","queue_and_active_work","provider_health","failure_clusters_and_circuits","release_target_state","current_pr_and_gate_state"],"refreshStages":["preflight","gate","release","runtime_proof"],"refreshMayChange":["runner_selection","parallelism","retry_path","qa_depth","release_recovery","proof_timing"],"refreshMayNotChange":["owner_outcome","explicit_no_go_constraints","tenant_identity","credential_boundary","hard_safety_invariants"]},"urgency":{"priority":"normal","deadlineSignals":[],"deadlineExplicit":false},"version":"paul-adaptive-objective-v1","recovery":{"transient":"one_bounded_retry_then_alternate_eligible_pool_or_provider_path","deterministic":"repair_source_or_contract_do_not_blind_rerun","mutationDependencyFailure":"prerequisite_required_or_targeted_recovery_never_invent","readOnlyDependencyFailure":"degrade_to_available_grounded_context_and_keep_conversation_alive"},"unknowns":["route","release_targets_until_changed_paths","deadline"],"authority":{"outcome":"current_explicit_owner_request","tactics":"live_prime_truth","unknownPolicy":"preserve_unknown_never_invent","historicalContext":"advisory_unless_current_request_confirms"},"execution":{"mutation":true,"concurrency":"parallel_non_overlapping_tenant_work","scopePolicy":"start_bounded_expand_only_with_machine_readable_dependency_evidence","staleStatePolicy":"refresh_dynamic_state_before_irreversible_or_acceptance_stage","conversationIsolation":true,"ownerOutcomeMayBeChangedByAdaptation":false},"experience":{"visual":true,"viewports":["mobile"],"behavioral":false,"visualProofScope":"targeted"},"dependencies":{"requiredDomains":["frontend","release_ownership","live_production_proof"],"capabilityDomains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"releaseTargetHints":[]},"inputSignals":{"rawUtterance":"Create the PCG public construction state on prestigiouscardgrading.com using the existing tenant website/settings system. Public visitors should see a premium mobile-safe Under Construction page. Keep the owner-side draft site editable so unfinished content remains private until later publication. Reuse existing domain and website primitives; do not create a parallel site system. Ship and verify live.","canonicalIntent":"Create the PCG public construction state on prestigiouscardgrading.com using the existing tenant website/settings system. Public visitors should see a premium mobile-safe Under Construction page. Keep the owner-side draft site editable so unfinished content remains private until later publication. Reuse existing domain and website primitives; do not create a parallel site system. Ship and verify live.","conversationContextPresent":false}},"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"runtime","claim":"Create the PCG public construction state on prestigiouscardgrading.com using the existing tenant website/settings system. Public visitors should see a premium mobile-safe Under Construction page. Keep the owner-side draft site editable so unfinished content remains private until later publication. Reuse existing domain and website primitives; do not create a parallel site system. Ship and verify 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":"Create-the-PCG-public-construction-state-on-prestigiouscardgrading.com-using-the-existing-tenant-web","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"}},"requestedBranch":null,"conversationContext":null,"requestContractHash":"05e5f838df1a7dce974713dfa2d082b6d5227782bb4e66eef043886187aef737","requestContractRevision":1},"tenant_id":"9602e177-0cbb-496c-bdf5-2fbc93f1b859","created_at":"2026-10-04T09:24:42.655534+00:00","proof_gate":"tenant_workstream_contribution_recorded","source_sha":null,"external_id":null,"receipt_type":"tenant_workstream_contribution","idempotency_key":"mission:49d0f6ca-786e-4667-ae20-1b26f91c834a:tenant-workstream-contribution:6ab48612f67becf6de9a1ffba23c8ded7e4099f3c65554d4c4c498d9cdd9d4a2","mission_step_id":null,"command_center_event_id":"49d0f6ca-786e-4667-ae20-1b26f91c834a"},{"id":"11ca0c77-f740-4082-8a86-c6a7d4470383","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-ccfe408a9cff","prNumber":4236,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"dc02b4ec4dbbfb2a12822fd482e82378a80b8347","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-30T13:22:56.130541+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"dc02b4ec4dbbfb2a12822fd482e82378a80b8347","external_id":"4236","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:ccfe408a-9cff-4164-b956-a51691563931:merged-pr:4236:dc02b4ec4dbbfb2a12822fd482e82378a80b8347","mission_step_id":"c5361fb3-dc47-43e9-8235-bbda0c34ece6","command_center_event_id":"ccfe408a-9cff-4164-b956-a51691563931"},{"id":"11ca27dd-2433-4693-a73b-6093ad23bb9a","source":"cc-execution","status":"release_verification_pending","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":null,"reason":null,"status":"release_verification_pending","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.46.8-intent-aware-objectives","prNumber":269,"terminal":false,"missionId":"29ba9153-584b-4bc8-9f05-14795fb5e9a2","operation":"ship_and_prove","proofGate":"ship_and_prove_release_pending","sourceSha":"5dd7758fda4af65d714350dc62750af603343b38","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"29ba9153-584b-4bc8-9f05-14795fb5e9a2"},"performance":null,"deploymentId":"forgejo-main-5dd7758fda4a","workflowRunId":876,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":true,"ccExecution":true,"supabaseEdge":true,"edgeFunctionSlugs":["finance-reports"]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":7207,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"6f522f13-31f4-41af-a806-bcdfbc927a9e","created_at":"2026-08-16T17:55:47.387381+00:00","proof_gate":"ship_and_prove_release_pending","source_sha":"5dd7758fda4af65d714350dc62750af603343b38","external_id":"forgejo-main-5dd7758fda4a","receipt_type":"ship_and_prove","idempotency_key":"mission:29ba9153-584b-4bc8-9f05-14795fb5e9a2:ship_and_prove:ship_and_prove_release_pending:5dd7758fda4af65d714350dc62750af603343b38:876","mission_step_id":"d3fc53bd-f4e7-4d81-87f7-82c8d570bb3b","command_center_event_id":"29ba9153-584b-4bc8-9f05-14795fb5e9a2"},{"id":"11ca27ef-7670-4ba3-84c5-272890a92689","source":"github-status","status":"verified","payload":{"failed":[],"states":{"canonical-production-release/verified":"success"},"missing":[],"pending":[],"required":["canonical-production-release/verified"],"sourceSha":"9e22f74b928f756385e3d3dec141006dff319ebd","releaseState":"verified","exactConductorRun":{"id":31626449918,"status":"completed","headSha":"9e22f74b928f756385e3d3dec141006dff319ebd","conclusion":"success","compareStatus":"identical","sourceMatches":true,"containsSourceSha":true,"reconciliationMode":null},"ccExecutionRuntimeProof":null},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-12T18:16:25.507321+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"9e22f74b928f756385e3d3dec141006dff319ebd","external_id":"canonical-release-9e22f74b928f","receipt_type":"canonical_release_status","idempotency_key":"mission:4c08d34f-4d82-439a-a6af-f28daab293ab:release-status:9e22f74b928f756385e3d3dec141006dff319ebd:31626449918:verified:canonical-production-release/verified=success","mission_step_id":"6a0fb3e4-8c6a-463a-975f-064899d878a3","command_center_event_id":"4c08d34f-4d82-439a-a6af-f28daab293ab"},{"id":"11ca578b-8ac7-4c95-8229-74e263383ada","source":"cc-execution","status":"source_resolution_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-c3baff2e7105","reason":null,"status":"source_resolution_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.182-witness-render-cold-start-aware","prNumber":null,"terminal":false,"missionId":"c3baff2e-7105-46c3-9a0c-9a015999ea32","operation":"execute_mission","proofGate":"repair_mission_source_resolution_required","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":12,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":374,"providerAuthMs":0,"ledgerPrepareMs":374,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":374,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":374,"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":"c3baff2e-7105-46c3-9a0c-9a015999ea32"},"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":4093,"likelyAffectedFiles":[],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-18T15:42:52.373305+00:00","proof_gate":"repair_mission_source_resolution_required","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:c3baff2e-7105-46c3-9a0c-9a015999ea32:execute_mission:repair_mission_source_resolution_required:current-generation","mission_step_id":"6fdc10aa-8f95-43bc-aa39-8042af312672","command_center_event_id":"c3baff2e-7105-46c3-9a0c-9a015999ea32"},{"id":"11cf4231-a1a2-444c-90d5-6ee47bd838bc","source":"cc-execution","status":"waiting","payload":{"sourceTargets":["src/pages/card-grading/PCGWorkspace.tsx"],"continuationObjective":"P0 PCG mobile Card Vault compact sticky controls, truncation-safe. Mutate only src/pages/card-grading/PCGWorkspace.tsx using tiny exact anchored class/text edits; do not replace or synthesize the full file. Hide the Card Vault explanatory intro on phones, make filter controls a compact 2-column mobile grid with search spanning both columns, compress result/paging row, shorten mobile paging labels, and make inline fallback non-sticky on phones. Preserve tablet/desktop and all behavior. No Visual Witness. Gate, squash merge, frontend release, runtime proof."},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-04T21:12:52.823106+00:00","proof_gate":"mission_continuation_scope_persisted","source_sha":null,"external_id":null,"receipt_type":"mission_continuation_scope_updated","idempotency_key":"mission:3140f197-b7ae-4ee1-b38c-37780256a76d:mission_continuation_scope_updated:mission_continuation_scope_persisted:waiting","mission_step_id":"278f20f1-0bd2-4048-b814-efcf151a465c","command_center_event_id":"3140f197-b7ae-4ee1-b38c-37780256a76d"},{"id":"11cf6f5a-1147-4fb8-b08b-483333c6d0a6","source":"cc-execution","status":"waiting","payload":{"kind":"heartbeat","message":"Still active in release.","nextAction":{"lane":"cc-execution","action":"reconcile_pull_request","reason":"pull_request_exists_without_merged_source","automationAllowed":true,"ownerActionRequired":false},"silenceBudgetMs":15000,"semanticCheckpointSignature":"{\"stateMachineVersion\":1,\"phase\":\"release\",\"ownerFacingState\":null,\"latest\":{\"kind\":\"receipt\",\"key\":\"owner_progress_heartbeat\",\"status\":\"waiting\",\"proofGate\":\"owner_progress_heartbeat\"},\"activeStep\":{\"key\":\"preflight\",\"status\":\"ready\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"implementation\",\"status\":\"pending\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"reconcile_pull_request\",\"lane\":\"cc-execution\",\"reason\":\"pull_request_exists_without_merged_source\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_pull_request\",\"recoveryOwner\":\"cc-execution\"},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-pcg-mobile-vault-controls\"]},\"stall\":{\"stalled\":true,\"reason\":\"step_deadline_exceeded\",\"step\":\"release\",\"deadlineAt\":\"2026-10-06T05:55:56.623616+00:00\",\"recoveryAction\":\"reconcile_pull_request\"},\"blocker\":null,\"terminal\":false,\"branch\":null,\"prNumber\":5147,\"sourceSha\":null,\"deploymentId\":null}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T06:32:08.208182+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:b78054b5-ff74-493d-9d49-b3305dbc800c:owner-progress-heartbeat:119417888","mission_step_id":"986497ca-c7bb-469a-819a-206da30cca37","command_center_event_id":"b78054b5-ff74-493d-9d49-b3305dbc800c"},{"id":"11cfb140-a2aa-4bc7-a109-af0210e5483c","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/cafe-qsr-first-class-20260818","reason":"pull_request_stale_refresh_required","status":"retryable","metrics":{"receiptBytes":6136,"releaseCount":0,"toolCallCount":4,"repeatedCallCount":2,"ownerInterruptionCount":0},"version":"1.47.2-release-lineage-compare","prNumber":364,"terminal":false,"missionId":"75c7fea2-44f6-4cb4-b5f3-820a186e6885","operation":"execute_mission","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":null,"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"75c7fea2-44f6-4cb4-b5f3-820a186e6885"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5919,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-18T12:37:19.807814+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"364","receipt_type":"execute_mission","idempotency_key":"mission:75c7fea2-44f6-4cb4-b5f3-820a186e6885:execute_mission:repair_mission_pr_ready_retryable","mission_step_id":"cdd49fc3-3245-4d1f-ac0b-bb5cfdaf2da5","command_center_event_id":"75c7fea2-44f6-4cb4-b5f3-820a186e6885"},{"id":"11d042cb-636a-49aa-b1e3-084c0fce7fea","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"release","branch":null,"reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":38212,"releaseCount":0,"toolCallCount":29,"repeatedCallCount":24,"executorlessWaitMs":147103,"firstUsefulResultAt":"2026-10-04T01:29:42.952Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.89-paul-continuation-receipt-scope","prNumber":4696,"terminal":false,"missionId":"7885e8ef-2225-4511-bbad-af7852cfcdd1","operation":"execute_mission","proofGate":"canonical_release_dispatched","sourceSha":"8b75d4ea5290755e92513299921260ac2739f50c","timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1283,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":84,"approvedPlanMs":0,"missionSetupMs":242,"providerAuthMs":0,"shipAndProveMs":878,"ledgerPrepareMs":242,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":242,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":242,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"7885e8ef-2225-4511-bbad-af7852cfcdd1"},"performance":null,"deploymentId":"forgejo-main-8b75d4ea5290","releaseState":"pending","workflowRunId":14994,"releaseTargets":{"frontend":true,"migrations":false,"ccExecution":false,"supabaseEdge":true,"edgeFunctionSlugs":["tenant-media-library"]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","pendingProofKinds":["release","runtime"],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3072,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-04T01:32:54.72526+00:00","proof_gate":"canonical_release_dispatched","source_sha":"8b75d4ea5290755e92513299921260ac2739f50c","external_id":"forgejo-main-8b75d4ea5290","receipt_type":"execute_mission","idempotency_key":"mission:7885e8ef-2225-4511-bbad-af7852cfcdd1:execute_mission:canonical_release_dispatched:current-generation","mission_step_id":"a9a0ff86-f204-4cd4-84d5-c678afa259b3","command_center_event_id":"7885e8ef-2225-4511-bbad-af7852cfcdd1"},{"id":"11d0a490-ba2d-4a0a-9e28-be50fd796918","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-6c15e4c25b43","reason":"anchored_edit_invalid","status":"blocked","metrics":{"receiptBytes":6952,"releaseCount":0,"toolCallCount":4,"repeatedCallCount":1,"executorlessWaitMs":65062,"firstUsefulResultAt":"2026-09-27T23:43:32.842Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.296-universal-stop","prNumber":null,"terminal":false,"missionId":"6c15e4c2-5b43-4345-8c64-dbf66fff7bf3","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":566,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":566,"missionSetupMs":271,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":271,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":271,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":271,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"6c15e4c2-5b43-4345-8c64-dbf66fff7bf3"},"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":1422,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-27T23:44:39.414317+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:6c15e4c2-5b43-4345-8c64-dbf66fff7bf3:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"5af267d9-2a7c-41d4-8be8-e42cd2107a5c","command_center_event_id":"6c15e4c2-5b43-4345-8c64-dbf66fff7bf3"},{"id":"11d2d578-e8de-413c-9d4b-28ed80aee976","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/fix-bounded-forgejo-action-scans-20260825","reason":"retryable_provider_transport:GET:The operation was aborted due to timeout","status":"retryable","metrics":{"receiptBytes":2300,"releaseCount":0,"toolCallCount":2,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.50.48-visual-proof-intent-routing","prNumber":null,"terminal":false,"missionId":"28a158c6-0a99-4a12-9a22-d803cea127f1","operation":"execute_mission","proofGate":"repair_mission_execution_retryable","sourceSha":null,"timingsMs":{"handlerMs":4995,"prReadinessMs":0,"approvedPlanMs":4995,"missionSetupMs":615,"shipAndProveMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"28a158c6-0a99-4a12-9a22-d803cea127f1"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":4931,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-25T20:32:16.434176+00:00","proof_gate":"repair_mission_execution_retryable","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:28a158c6-0a99-4a12-9a22-d803cea127f1:execute_mission:repair_mission_execution_retryable","mission_step_id":"c250ade0-05c0-4247-a160-7fab92089623","command_center_event_id":"28a158c6-0a99-4a12-9a22-d803cea127f1"},{"id":"11d5b08c-5683-4353-8a95-eab3c5db773e","source":"cc-execution","status":"waiting","payload":{"kind":"heartbeat","message":"Still active in implementation.","nextAction":{"lane":"cc-execution","action":"reconcile_pull_request","reason":"durable_state:pull_request","handoff":null,"capability":"light-control-plane","automationAllowed":true,"ownerActionRequired":false,"resumeFromCheckpoint":"preflight"},"silenceBudgetMs":15000,"semanticCheckpointSignature":"{\"stateMachineVersion\":1,\"phase\":\"implementation\",\"ownerFacingState\":null,\"latest\":{\"kind\":\"receipt\",\"key\":\"request_contract_revision\",\"status\":\"recorded\",\"proofGate\":\"request_contract_revision_recorded\"},\"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,\"capability\":\"light-control-plane\",\"resumeFromCheckpoint\":\"preflight\",\"handoff\":null},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_pull_request\",\"recoveryOwner\":\"cc-execution\",\"capability\":\"light-control-plane\",\"resumeFromCheckpoint\":\"preflight\",\"handoff\":null},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"visual_proof\",\"deadlineAt\":\"2026-10-06T19:50:38.159976+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/objective-first-repair-dbcdd5155b02\",\"prNumber\":null,\"sourceSha\":null,\"deploymentId\":null}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T16:54:10.988533+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:dbcdd515-5b02-4805-9d7f-aaf2e66c4fe4:owner-progress-heartbeat:119420376","mission_step_id":"7caebc0f-3f43-4271-90b0-639962c3f05c","command_center_event_id":"dbcdd515-5b02-4805-9d7f-aaf2e66c4fe4"},{"id":"11d65ad0-a8ae-4080-8053-e2a1843a47c1","source":"cc-execution","status":"recorded","payload":{"objective":"Ship the reusable KNOCKLAUNCH tenant photo studio with La Vista del Mar as the first enabled tenant. Use the existing long-term-rental dashboard and Supabase/Cloudflare primitives. The Nest showcase source is R2 bucket la-vista-del-mar prefix the-nest/, with lead object `the-nest/ChatGPT Image Aug 27, 2026, 04_52_59 PM.png`; all existing image objects under that prefix are showcase photos. The Vista backend login background is the R2 object identified by `la-vista-del-mar/7bc08a3e-7a0e-4cf1-b9a3-8a47954292f1.png` (normalize bucket/key notation server-side). Add batch photo upload to the rental dashboard. Before uploaded photos receive AI edits, present a clear yes/no consent choice; yes automatically processes the batch, no preserves originals without AI. Originals are immutable. AI output is always a separate derivative. Use current OpenAI GPT-Image-2 image edits with a strict real-estate fidelity prompt: no invented, removed, moved, enlarged, or materially altered architecture, rooms, windows, doors, furniture, landscaping, views, amenities, people, objects, geometry, dimensions, or framing. Only presentation-safe exposure, white balance, dynamic range, clarity, denoise, natural sharpness, and lens/color correction. Provide per-photo status, original/enhanced comparison, approve-and-publish, reject, retry, approve all, and seed-photo enhancement. Only approved uploaded/derived assets publish; existing owner-designated Nest showcase originals remain public showcase until an approved derivative replaces them. Tenant access and private previews must be isolated/auditable. Wire the Vista login background through a narrow public asset resolver, not a hard-coded public R2 URL. Use one PR, KnockLaunch Gate, squash merge, affected frontend + Supabase Edge + migration releases only, then prove live health/gallery/login-asset resolution without Visual Witness.","tenantRef":"71b397ba-b9ad-496b-914c-985d97dbb12e","receivedAt":"2026-08-27T21:34:11.667Z","fingerprint":"15e6f0b289bb32c64f965698559d61ea67576859b962d38c102db2f0c85ef08f","workstreamRef":"71b397bab9ad496b914c985d97dbb12e","conversationId":null,"canonicalBranch":"ai/vista-photo-studio-20260827","requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Ship the reusable KNOCKLAUNCH tenant photo studio with La Vista del Mar as the first enabled tenant. Use the existing long-term-rental dashboard and Supabase/Cloudflare primitives. The Nest showcase source is R2 bucket la-vista-del-mar prefix the-nest/, with lead object `the-nest/ChatGPT Image Aug 27, 2026, 04_52_59 PM.png`; all existing image objects under that prefix are showcase photos. The Vista backend login background is the R2 object identified by `la-vista-del-mar/7bc08a3e-7a0e-4cf1-b9a3-8a47954292f1.png` (normalize bucket/key notation server-side). Add batch photo upload to the rental dashboard. Before uploaded photos receive AI edits, present a clear yes/no consent choice; yes automatically processes the batch, no preserves originals without AI. Originals are immutable. AI output is always a separate derivative. Use current OpenAI GPT-Image-2 image edits with a strict real-estate fidelity prompt: no invented, removed, moved, enlarged, or materially altered architecture, rooms, windows, doors, furniture, landscaping, views, amenities, people, objects, geometry, dimensions, or framing. Only presentation-safe exposure, white balance, dynamic range, clarity, denoise, natural sharpness, and lens/color correction. Provide per-photo status, original/enhanced comparison, approve-and-publish, reject, retry, approve all, and seed-photo enhancement. Only approved uploaded/derived assets publish; existing owner-designated Nest showcase originals remain public showcase until an approved derivative replaces them. Tenant access and private previews must be isolated/auditable. Wire the Vista login background through a narrow public asset resolver, not a hard-coded public R2 URL. Use one PR, KnockLaunch Gate, squash merge, affected frontend + Supabase Edge + migration releases only, then prove live health/gallery/login-asset resolution without Visual Witness.","wordingChanged":false,"canonicalIntent":"Ship the reusable KNOCKLAUNCH tenant photo studio with La Vista del Mar as the first enabled tenant. Use the existing long-term-rental dashboard and Supabase/Cloudflare primitives. The Nest showcase source is R2 bucket la-vista-del-mar prefix the-nest/, with lead object `the-nest/ChatGPT Image Aug 27, 2026, 04_52_59 PM.png`; all existing image objects under that prefix are showcase photos. The Vista backend login background is the R2 object identified by `la-vista-del-mar/7bc08a3e-7a0e-4cf1-b9a3-8a47954292f1.png` (normalize bucket/key notation server-side). Add batch photo upload to the rental dashboard. Before uploaded photos receive AI edits, present a clear yes/no consent choice; yes automatically processes the batch, no preserves originals without AI. Originals are immutable. AI output is always a separate derivative. Use current OpenAI GPT-Image-2 image edits with a strict real-estate fidelity prompt: no invented, removed, moved, enlarged, or materially altered architecture, rooms, windows, doors, furniture, landscaping, views, amenities, people, objects, geometry, dimensions, or framing. Only presentation-safe exposure, white balance, dynamic range, clarity, denoise, natural sharpness, and lens/color correction. Provide per-photo status, original/enhanced comparison, approve-and-publish, reject, retry, approve all, and seed-photo enhancement. Only approved uploaded/derived assets publish; existing owner-designated Nest showcase originals remain public showcase until an approved derivative replaces them. Tenant access and private previews must be isolated/auditable. Wire the Vista login background through a narrow public asset resolver, not a hard-coded public R2 URL. Use one PR, KnockLaunch Gate, squash merge, affected frontend + Supabase Edge + migration releases only, then prove live health/gallery/login-asset resolution without Visual Witness.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"photo-studio","statement":"La Vista del Mar has a reusable batch photo studio in the long-term-rental workspace with upload, consent choice, automatic enhancement when consented, review, retry, approve-all, and publish gating.","proofConditionIds":["repo-contract","runtime-release"]},{"id":"nest-showcase","statement":"The Nest resolves its showcase gallery from R2 bucket la-vista-del-mar prefix the-nest/, with the named ChatGPT Image lead object first and all existing image objects in that prefix eligible as showcase photos.","proofConditionIds":["repo-contract","runtime-release"]},{"id":"vista-login","statement":"The Vista tenant login can resolve the configured R2 background through the tenant media service without exposing an arbitrary R2 object or Cloudflare credential.","proofConditionIds":["repo-contract","runtime-release"]}],"objective":"Ship the reusable KNOCKLAUNCH tenant photo studio with La Vista del Mar as the first enabled tenant. Use the existing long-term-rental dashboard and Supabase/Cloudflare primitives. The Nest showcase source is R2 bucket la-vista-del-mar prefix the-nest/, with lead object `the-nest/ChatGPT Image Aug 27, 2026, 04_52_59 PM.png`; all existing image objects under that prefix are showcase photos. The Vista backend login background is the R2 object identified by `la-vista-del-mar/7bc08a3e-7a0e-4cf1-b9a3-8a47954292f1.png` (normalize bucket/key notation server-side). Add batch photo upload to the rental dashboard. Before uploaded photos receive AI edits, present a clear yes/no consent choice; yes automatically processes the batch, no preserves originals without AI. Originals are immutable. AI output is always a separate derivative. Use current OpenAI GPT-Image-2 image edits with a strict real-estate fidelity prompt: no invented, removed, moved, enlarged, or materially altered architecture, rooms, windows, doors, furniture, landscaping, views, amenities, people, objects, geometry, dimensions, or framing. Only presentation-safe exposure, white balance, dynamic range, clarity, denoise, natural sharpness, and lens/color correction. Provide per-photo status, original/enhanced comparison, approve-and-publish, reject, retry, approve all, and seed-photo enhancement. Only approved uploaded/derived assets publish; existing owner-designated Nest showcase originals remain public showcase until an approved derivative replaces them. Tenant access and private previews must be isolated/auditable. Wire the Vista login background through a narrow public asset resolver, not a hard-coded public R2 URL. Use one PR, KnockLaunch Gate, squash merge, affected frontend + Supabase Edge + migration releases only, then prove live health/gallery/login-asset resolution without Visual Witness.","constraints":[{"id":"immutable-originals","statement":"Original uploads are never overwritten; AI edits always write a separate derived object and publishing cannot expose an unapproved new upload.","proofConditionIds":["repo-contract"]},{"id":"fidelity","statement":"AI enhancement is consent-gated and explicitly forbids inventing/removing/moving property content or changing real-estate geometry, dimensions, framing, views, amenities, people, furniture, landscaping, doors, windows, or architecture.","proofConditionIds":["repo-contract"]},{"id":"tenant-isolation","statement":"Authenticated media mutation is tenant-membership scoped; private image previews use short-lived signed asset URLs; public access is restricted to configured login assets, configured existing showcase objects, or approved published media rows.","proofConditionIds":["repo-contract","runtime-release"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"repo-contract","kind":"repository","claim":"Exact Forgejo diff and regression contract prove the tenant photo studio data/access/fidelity and Vista R2 mappings.","route":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"runtime-release","kind":"runtime","claim":"Canonical release proves affected frontend, tenant-photo-studio Edge Function, and migration are live from the merged source.","route":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":["frontend","migrations"]}],"validationErrors":[]},"requestedBranch":"ai/vista-photo-studio-20260827","conversationContext":null,"requestContractHash":"a183cbe179de2c4096db388e7f509d3dac0ddfcd703c2078f1eb79e3c1d36241","requestContractRevision":1},"tenant_id":"71b397ba-b9ad-496b-914c-985d97dbb12e","created_at":"2026-08-27T21:34:12.307617+00:00","proof_gate":"tenant_workstream_contribution_recorded","source_sha":null,"external_id":null,"receipt_type":"tenant_workstream_contribution","idempotency_key":"mission:d0a519a7-a785-46e4-b845-13565be64739:tenant-workstream-contribution:15e6f0b289bb32c64f965698559d61ea67576859b962d38c102db2f0c85ef08f","mission_step_id":null,"command_center_event_id":"d0a519a7-a785-46e4-b845-13565be64739"},{"id":"11d81eb1-de7a-4d4d-a5d0-cc5bad1e3181","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","frontend-cloudflare/live":"success"},"mainSha":"aef41d8b26b5035887b6e9dd25e4cc86032a2454","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"aef41d8b26b5035887b6e9dd25e4cc86032a2454","releaseState":"verified","sourceInMain":true,"compareStatus":"identical","releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"success"},"requestContractHash":"e20f9cbd8134786ffff9989b74f14794a03d0e59630c512bde0757c3b2a0d291","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/5336","runId":5336,"status":"success","sourceSha":"aef41d8b26b5035887b6e9dd25e4cc86032a2454","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":"b565f644-6d3c-4b61-97d6-f91a06dae0ec","created_at":"2026-09-04T22:13:13.310431+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"aef41d8b26b5035887b6e9dd25e4cc86032a2454","external_id":"forgejo-main-aef41d8b26b5","receipt_type":"canonical_release_status","idempotency_key":"mission:a52190ee-a183-4013-95c5-31610dcc529d:forgejo-release-status:aef41d8b26b5035887b6e9dd25e4cc86032a2454:verified:forgejo-main/source=success|forgejo-release/workflow=success|frontend-cloudflare/live=success","mission_step_id":"8acae1f5-0427-43e2-b6ee-78abe48a5cf5","command_center_event_id":"a52190ee-a183-4013-95c5-31610dcc529d"},{"id":"11d946e5-cc2b-4078-a6a0-e81090d93404","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair","reason":"file_write_content_required_use_source_targets","status":"blocked","metrics":{"receiptBytes":1232,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.47.4-pr-native-freshness","prNumber":null,"terminal":false,"missionId":"3e75a67e-79fc-4a49-9782-f97a890243a3","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"3e75a67e-79fc-4a49-9782-f97a890243a3"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5322,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-19T01:24:10.575658+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:3e75a67e-79fc-4a49-9782-f97a890243a3:execute_mission:repair_mission_execution_blocked","mission_step_id":"50d7922a-a464-44d0-a6bb-6796d94c4032","command_center_event_id":"3e75a67e-79fc-4a49-9782-f97a890243a3"},{"id":"11dbab3b-4452-482e-865a-835e529775d4","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"e2ec5f00865ca08be700da93bae6943e3ef79002","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-1","satisfied":true,"statement":"Begin the 2026-11-01 PAUL-native control-center cutover. Preserve MCP/Prime only as an optional external adapter for ChatGPT or other outside clients, not as a dependency of PAUL or the KNOCKLAUNCH Console. Make the canonical architecture contract explicit: owner -> PAUL -> native KNOCKLAUNCH capability/mission services -> Forgejo/Gate/runners/providers/production; external assistants may use MCP to reach the same canonical services. Update the existing Mission Freedom / Console capability contracts rather than creating a second orchestration layer. The KNOCKLAUNCH Console and PAUL must remain usable when Prime/MCP or ChatGPT is unavailable, while still using the same authoritative live-truth, Gate, release, receipt, tenant-scope, and fail-closed primitives internally. Set 2026-11-01 as the cutoff target for Prime/MCP being non-required for owner operation. Add explicit acceptance language that no PAUL-native owner action may require an MCP round-trip. Do not remove the MCP adapter yet; this phase is a safe compatibility migration contract and should not break current external ChatGPT supervision. No Visual Witness. Ship through canonical Gate, squash merge, deploy/runtime proof.","proofConditionIds":["proof-production"]}],"satisfied":true,"constraints":[{"id":"preserve-external-adapter","satisfied":true,"statement":"Do not remove MCP/Prime external adapter in this phase; current ChatGPT supervision must continue to work.","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":"57f78a7c407a2e205109486e9eee9102dc066b90284fbb37d989b892f0eb8857","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":"57f78a7c407a2e205109486e9eee9102dc066b90284fbb37d989b892f0eb8857"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":[]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-03T02:30:17.302017+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"e2ec5f00865ca08be700da93bae6943e3ef79002","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:1d3671ae-d612-4e84-bdb7-efd5885196fd:request-contract:57f78a7c407a2e205109486e9eee9102dc066b90284fbb37d989b892f0eb8857:e2ec5f00865ca08be700da93bae6943e3ef79002:verified:","mission_step_id":"fd06df0e-dbfb-4018-9255-369871c0d355","command_center_event_id":"1d3671ae-d612-4e84-bdb7-efd5885196fd"},{"id":"11dcbc36-0d99-4e64-99de-67a9d2288ced","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/build-canonical-tenant-onboarding-20260827","reason":"file_write_content_required_use_source_targets","status":"blocked","metrics":{"receiptBytes":3271,"releaseCount":0,"toolCallCount":2,"repeatedCallCount":1,"ownerInterruptionCount":0},"version":"1.52.9-exact-open-pr-green-merge","prNumber":null,"terminal":false,"missionId":"d5d2ca02-6e52-4297-9e39-2868e7f12846","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"handlerMs":0,"prReadinessMs":0,"approvedPlanMs":0,"missionSetupMs":417,"shipAndProveMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"d5d2ca02-6e52-4297-9e39-2868e7f12846"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5177,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-27T04:27:20.363802+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:d5d2ca02-6e52-4297-9e39-2868e7f12846:execute_mission:repair_mission_execution_blocked","mission_step_id":"87f778bf-0f17-47b3-bfe1-9c9e7177799d","command_center_event_id":"d5d2ca02-6e52-4297-9e39-2868e7f12846"},{"id":"11e18ab7-99c6-4bbd-a28e-4380c615e33d","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending","cc-execution/runtime-proof":"success","render-onrunner/runtime-proof":"pending"},"mainSha":"1048fa75e380e9aeb00a048936ff3f336557dd5b","missing":[],"pending":["forgejo-release/workflow","render-onrunner/runtime-proof","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof","render-onrunner/runtime-proof","frontend-cloudflare/live"],"sourceSha":"1048fa75e380e9aeb00a048936ff3f336557dd5b","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"onrunner":true,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"pending","onrunner":"pending","ccExecution":"success"},"requestContractHash":"979b48766acc92e3fdf00bfd1dd7a32e730f9d1323767084501f6806d4c19329","forgejoWorkflowProof":{"runId":12154,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"frontend":"pending","onrunner":"pending","ccExecution":"success"},"targetJobCount":7,"observedTargetStates":{"frontend":"pending","onrunner":"pending","ccExecution":"success"}},"onrunnerRuntimeProof":{"reason":"render_onrunner_source_mismatch","hostedUrl":"https://knocklaunchcrm.onrender.com","brokerReady":true,"exactSource":false,"healthStatus":200,"runtimeReady":true,"liveSourceSha":"9dc4fd1c93c0834eec199a0147375ceaaaba8457","runnerVersion":"onrunner-9dc4fd1c93c0","expectedSourceSha":"1048fa75e380e9aeb00a048936ff3f336557dd5b"},"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"1048fa75e380e9aeb00a048936ff3f336557dd5b","proofGate":"cc_execution_target_aware_runtime_identity_verified","deploymentId":"forgejo-main-1048fa75e380e9aeb00a048936ff3f336557dd5b","compareStatus":"target_job_success_runtime_verified","workflowRunId":12154,"identitySource":"canonical_release_target_job","runtimeVersion":"1.58.292-release-target-parity","workflowFailed":false,"containsSourceSha":true},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-27T04:38:29.973741+00:00","proof_gate":"canonical_release_pending","source_sha":"1048fa75e380e9aeb00a048936ff3f336557dd5b","external_id":"forgejo-main-1048fa75e380","receipt_type":"canonical_release_status","idempotency_key":"mission:96c224c3-9adb-40b3-8a67-c8908e874587:forgejo-release-status:1048fa75e380e9aeb00a048936ff3f336557dd5b:pending:forgejo-main/source=success|forgejo-release/workflow=pending|cc-execution/runtime-proof=success|render-onrunner/runtime-proof=pending|frontend-cloudflare/live=pending","mission_step_id":"f5cc6ddf-b260-4a49-8138-3d2dfd6839e2","command_center_event_id":"96c224c3-9adb-40b3-8a67-c8908e874587"},{"id":"11ea9ee6-faac-4587-be66-b8331b848cd5","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-14T06:26:22.777Z"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-14T06:26:23.179399+00:00","proof_gate":"owner_wait_live_milestone_recorded","source_sha":null,"external_id":null,"receipt_type":"owner_wait_live_milestone","idempotency_key":"mission:bc6b7ace-3335-40d9-b595-24e150309eab:owner-wait-live","mission_step_id":"32fd0c97-5b5b-4c48-939d-a46c37ba8495","command_center_event_id":"bc6b7ace-3335-40d9-b595-24e150309eab"},{"id":"11ead3c6-c31d-43be-9b33-b422aedd49d7","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","handoff":{"reason":"merged_source_requires_release_proof","toLane":"production-release-conductor","fromLane":"cc-execution","resumeFromCheckpoint":"preflight"},"capability":"production-release","automationAllowed":true,"ownerActionRequired":false,"resumeFromCheckpoint":"preflight"},"silenceBudgetMs":15000,"semanticCheckpointSignature":"{\"stateMachineVersion\":1,\"phase\":\"release\",\"ownerFacingState\":null,\"latest\":{\"kind\":\"receipt\",\"key\":\"canonical_release_status\",\"status\":\"pending\",\"proofGate\":\"canonical_release_pending\"},\"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,\"capability\":\"production-release\",\"resumeFromCheckpoint\":\"preflight\",\"handoff\":{\"fromLane\":\"cc-execution\",\"toLane\":\"production-release-conductor\",\"reason\":\"merged_source_requires_release_proof\",\"resumeFromCheckpoint\":\"preflight\"}},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_release\",\"recoveryOwner\":\"production-release-conductor\",\"capability\":\"production-release\",\"resumeFromCheckpoint\":\"preflight\",\"handoff\":{\"fromLane\":\"cc-execution\",\"toLane\":\"production-release-conductor\",\"reason\":\"merged_source_requires_release_proof\",\"resumeFromCheckpoint\":\"preflight\"}},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"runtime_proof\",\"deadlineAt\":\"2026-10-06T19:25:10.812281+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/objective-first-repair-bbfb22638737\",\"prNumber\":5199,\"sourceSha\":\"d71417cbdb79488af8aa8011d4594d7a8c3184cc\",\"deploymentId\":\"forgejo-main-d71417cbdb79\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T15:56:23.905872+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:bbfb2263-8737-4431-81b9-932610510767:owner-progress-heartbeat:119420145","mission_step_id":"68f7ebd2-2b42-4e7f-b23f-f175315a5b0f","command_center_event_id":"bbfb2263-8737-4431-81b9-932610510767"},{"id":"11ec5797-6aa3-422b-bce8-7769526a7a81","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\":\"waiting\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"reconcile_release\",\"lane\":\"production-release-conductor\",\"reason\":\"merged_source_requires_release_proof\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_release\",\"recoveryOwner\":\"production-release-conductor\"},\"acceptance\":{\"total\":2,\"verified\":0,\"pending\":2,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\",\"proof-visual\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"release\",\"deadlineAt\":\"2026-09-28T06:48:53.86009+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/objective-first-repair-50ec83471149\",\"prNumber\":3965,\"sourceSha\":\"3fadf344a4168b7b576337f19da3b2624a28379d\",\"deploymentId\":\"forgejo-main-3fadf344a416\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T03:50:15.145306+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:50ec8347-1149-4ae4-81e0-6373c1a477ad:owner-progress-heartbeat:119371160","mission_step_id":"f75fb2d0-e1bd-4b57-947a-626b3444fb88","command_center_event_id":"50ec8347-1149-4ae4-81e0-6373c1a477ad"},{"id":"11ed0214-152c-4103-9940-6a99cdae6287","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"2a9e1dea21b6356c9318820cb9e46a16f91f206c","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"2a9e1dea21b6356c9318820cb9e46a16f91f206c","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"pending"},"requestContractHash":"6cd3a3c50973ef0b1b26bbcc2cb756163b32ad05406a3ffdb975cad5f76bfbf4","forgejoWorkflowProof":{"runId":15290,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"frontend":"pending"},"targetJobCount":7,"observedTargetStates":{"frontend":"pending"}},"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"9602e177-0cbb-496c-bdf5-2fbc93f1b859","created_at":"2026-10-04T13:43:41.914334+00:00","proof_gate":"canonical_release_pending","source_sha":"2a9e1dea21b6356c9318820cb9e46a16f91f206c","external_id":"forgejo-main-2a9e1dea21b6","receipt_type":"canonical_release_status","idempotency_key":"mission:fd8d56bf-ed6e-40d4-9e58-2fa77ae6b048:forgejo-release-status:2a9e1dea21b6356c9318820cb9e46a16f91f206c:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"9e9d344c-8272-4a77-8946-2c90df8aa641","command_center_event_id":"fd8d56bf-ed6e-40d4-9e58-2fa77ae6b048"},{"id":"11ef8b73-7a9c-4fb5-b8f4-a6db57330e4d","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"fe30f2ca65920709b5fb0c9f476b5f095f4d3480","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"fe30f2ca65920709b5fb0c9f476b5f095f4d3480","releaseState":"pending","sourceInMain":true,"compareStatus":"identical","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/414","runId":414,"status":"running","conclusion":null,"failedJobs":[]},"ccExecutionRuntimeProof":null},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-15T17:10:43.643155+00:00","proof_gate":"canonical_release_pending","source_sha":"fe30f2ca65920709b5fb0c9f476b5f095f4d3480","external_id":"forgejo-main-fe30f2ca6592","receipt_type":"canonical_release_status","idempotency_key":"mission:298035f3-cb64-4536-9a73-d1616c3b5cf8:forgejo-release-status:fe30f2ca65920709b5fb0c9f476b5f095f4d3480:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"e67b0893-d3b5-4e35-a8b3-a1a320c6cb53","command_center_event_id":"298035f3-cb64-4536-9a73-d1616c3b5cf8"},{"id":"11f0758f-faea-4bfa-9382-263c3844a7ca","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[{"path":"src/pages/card-grading/PCGReceiveCardsGallery.tsx","content":"import {useEffect,useMemo,useRef,useState} from 'react';\nimport {Archive,CheckCircle2,CheckSquare,ImagePlus,Loader2,Pencil,RefreshCw,ScanLine,Square,Trash2,UploadCloud,UserRoundCheck,WandSparkles,XCircle} from 'lucide-react';\nimport {supabase} from '@/integrations/supabase/client';\nimport {useToast} from '@/hooks/use-toast';\nimport {cn} from '@/lib/utils';\n\nconst STORAGE_MEDIA_FN=`${import.meta.env.VITE_SUPABASE_URL}/functions/v1/pcg-r2-media`;\nconst ANALYSIS_FN=`${import.meta.env.VITE_SUPABASE_URL}/functions/v1/pcg-google-drive-media`;\nconst previewMediaUrl=(value:string|null|undefined)=>{const url=String(value||'').trim();if(!url||!url.includes('/pcg-google-drive-media/media?')||url.includes('variant='))return url;return url+'&variant=preview';};\n\ntype Submission={id:string;submission_number:string;customer_contact_id:string|null;customer_name:string|null;customer_email:string|null;expected_card_count:number;status:string};\ntype Card={id:string;submission_id:string;sequence_number:number;player_character:string|null;year:string|null;brand_set:string|null;card_number:string|null;category:string|null;card_description:string|null;variation:string|null;autograph_present:boolean|null;front_image_url:string|null;back_image_url:string|null;status:string;grade:number|null;grade_label:string|null;cert_number:string|null;metadata:Record<string,any>|null};\ntype IntakeDraft={id:string;front?:File;back?:File;status:'queued'|'uploading'|'done'|'failed';error?:string};\ntype EditDraft={player:string;year:string;set:string;number:string;category:string;description:string;autograph:''|'yes'|'no';tags:string};\ntype MediaResult={url:string;fileId:string};\n\nfunction DraftCard({item,index}:{item:IntakeDraft;index:number}){const[frontSrc,setFrontSrc]=useState('');const[backSrc,setBackSrc]=useState('');useEffect(()=>{if(!item.front){setFrontSrc('');return}const url=URL.createObjectURL(item.front);setFrontSrc(url);return()=>URL.revokeObjectURL(url)},[item.front]);useEffect(()=>{if(!item.back){setBackSrc('');return}const url=URL.createObjectURL(item.back);setBackSrc(url);return()=>URL.revokeObjectURL(url)},[item.back]);const complete=Boolean(item.front&&item.back);const side=(label:string,src:string,ready:boolean)=><div className={`overflow-hidden rounded-xl border ${ready?'border-emerald-300/20':'border-amber-300/25'} bg-[#070708]`}><div className=\"flex min-h-8 items-center justify-between px-2 text-[9px] font-black uppercase tracking-[.10em]\"><span className=\"text-white/55\">{label}</span><span className={ready?'text-emerald-300':'text-amber-200'}>{ready?'Ready':'Missing'}</span></div><div className=\"aspect-[5/7] border-t border-white/[0.06]\">{src?<img src={src} alt={`Card ${index+1} ${label.toLowerCase()}`} className=\"h-full w-full object-contain p-1.5\"/>:<div className=\"grid h-full place-items-center\"><ImagePlus className=\"h-6 w-6 text-white/14\"/></div>}</div></div>;return <article className={`overflow-hidden rounded-2xl border ${complete?'border-emerald-300/18':'border-amber-300/20'} bg-black/35 p-2.5`}><div className=\"mb-2 flex min-h-9 items-center justify-between gap-2\"><div><div className=\"text-xs font-black text-white\">Card {index+1}</div><div className={`mt-0.5 text-[10px] font-bold ${complete?'text-emerald-300':'text-amber-200'}`}>{complete?'Pair complete':!item.front?'Needs front photo':'Needs back photo'}</div></div>{item.status==='done'?<CheckCircle2 className=\"h-5 w-5 text-emerald-400\"/>:item.status==='failed'?<XCircle className=\"h-5 w-5 text-rose-400\"/>:item.status==='uploading'?<Loader2 className=\"h-5 w-5 animate-spin text-[#d8bb78]\"/>:null}</div><div className=\"grid grid-cols-2 gap-2\">{side('Front',frontSrc,Boolean(item.front))}{side('Back',backSrc,Boolean(item.back))}</div>{item.error?<div className=\"mt-2 rounded-lg border border-rose-400/20 bg-rose-400/[0.05] px-2 py-1.5 text-[10px] text-rose-300\">{item.error}</div>:null}</article>}\n\nfunction Field({label,value,onChange,placeholder=''}:{label:string;value:string;onChange:(value:string)=>void;placeholder?:string}){return <label className=\"block\"><span className=\"text-[9px] font-black uppercase tracking-[.14em] text-white/45\">{label}</span><input value={value} onChange={event=>onChange(event.target.value)} placeholder={placeholder} className=\"mt-1.5 h-11 w-full rounded-xl border border-white/[0.10] bg-black/30 px-3 text-sm text-white outline-none placeholder:text-white/25 focus:border-[#d8bb78]/55\"/></label>}\nfunction errorMessage(value:unknown):string{if(value instanceof Error)return value.message;if(typeof value==='string')return value;if(value&&typeof value==='object'){const record=value as Record<string,unknown>;for(const key of ['message','error','details','hint','code']){const nested=record[key];if(typeof nested==='string'&&nested.trim())return nested;if(nested&&typeof nested==='object'){const message=errorMessage(nested);if(message)return message}}try{return JSON.stringify(value)}catch{return 'PCG action failed'}}return String(value??'PCG action failed')}\n\nexport default function PCGReceiveCardsGallery({tenantId,initialSubmissionId='',onRequestCreateOrder,onRequestGradeCards}:{tenantId:string;initialSubmissionId?:string;onRequestCreateOrder?:()=>void;onRequestGradeCards?:(submissionId:string)=>void}){\n  const{toast}=useToast();\n  const[submissions,setSubmissions]=useState<Submission[]>([]);\n  const[cards,setCards]=useState<Card[]>([]);\n  const[selectedSubmissionId,setSelectedSubmissionId]=useState(initialSubmissionId);\n  const[drafts,setDrafts]=useState<IntakeDraft[]>([]);\n  const[selectedIds,setSelectedIds]=useState<Set<string>>(()=>new Set());\n  const[lastStoredIds,setLastStoredIds]=useState<string[]>([]);\n  const[moveTarget,setMoveTarget]=useState('');\n  const[busy,setBusy]=useState(false);\n  const[loading,setLoading]=useState(true);\n  const[editingId,setEditingId]=useState<string|null>(null);\n  const[edit,setEdit]=useState<EditDraft>({player:'',year:'',set:'',number:'',category:'',description:'',autograph:'',tags:''});\n  const loadErrorToastRef=useRef<Record<string,number>>({});\n\n  const selectedSubmission=submissions.find(item=>item.id===selectedSubmissionId)||null;\n  const gallery=useMemo(()=>selectedSubmissionId?cards.filter(card=>card.submission_id===selectedSubmissionId):[],[cards,selectedSubmissionId]);\n  const selectedCards=useMemo(()=>gallery.filter(card=>selectedIds.has(card.id)),[gallery,selectedIds]);\n  const storedCards=useMemo(()=>cards.filter(card=>lastStoredIds.includes(card.id)),[cards,lastStoredIds]);\n  const editingCard=editingId?cards.find(card=>card.id===editingId)||null:null;\n\n  async function load(){\n    if(!tenantId)return;\n    setLoading(true);\n    const fetchWorkspace=()=>Promise.all([\n      (supabase as any).from('card_grading_submissions').select('id,submission_number,customer_contact_id,customer_name,customer_email,expected_card_count,status').eq('tenant_id',tenantId).eq('is_demo',false).order('created_at',{ascending:false}).limit(150),\n      (supabase as any).from('card_grading_cards').select('id,submission_id,sequence_number,player_character,year,brand_set,card_number,category,card_description,variation,autograph_present,front_image_url,back_image_url,status,grade,grade_label,cert_number,metadata').eq('tenant_id',tenantId).eq('is_demo',false).order('created_at',{ascending:false}).limit(600)\n    ]);\n    let[s,c]=await fetchWorkspace();\n    if(s.error||c.error){\n      await new Promise(resolve=>window.setTimeout(resolve,350));\n      [s,c]=await fetchWorkspace();\n    }\n    const notifyLoadError=(title:string,error:unknown)=>{\n      if(!error)return;\n      const message=errorMessage(error);\n      const key=title+'|'+message;\n      const now=Date.now();\n      if(now-(loadErrorToastRef.current[key]||0)<10000)return;\n      loadErrorToastRef.current[key]=now;\n      toast({title,description:message,variant:'destructive'});\n    };\n    if(s.error)notifyLoadError('Could not load PCG customer orders',s.error);\n    if(c.error)notifyLoadError('Could not load PCG cards',c.error);\n    const open=((s.data||[]) as Submission[]).filter(row=>!['shipped','picked_up','delivered','closed'].includes(String(row.status||'')));\n    setSubmissions(open);setCards((c.data||[]) as Card[]);\n    setSelectedSubmissionId(current=>open.some(row=>row.id===initialSubmissionId)?initialSubmissionId:(open.some(row=>row.id===current)?current:''));\n    setLoading(false);\n  }\n  useEffect(()=>{void load()},[tenantId,initialSubmissionId]);\n  useEffect(()=>{setSelectedIds(new Set());setDrafts([]);setEditingId(null);setLastStoredIds([])},[selectedSubmissionId]);\n\n  async function post(base:string,path:string,body:Record<string,unknown>){\n    const{data}=await supabase.auth.getSession();if(!data.session?.access_token)throw new Error('Please sign in again.');\n    const response=await fetch(base+path,{method:'POST',headers:{Authorization:'Bearer '+data.session.access_token,'Content-Type':'application/json'},body:JSON.stringify({tenant_id:tenantId,...body})});\n    const payload=await response.json().catch(()=>null);\n    if(!response.ok||payload?.ok!==true){const error=new Error(errorMessage(payload?.error??payload?.message??payload)||'PCG action failed') as Error&{code?:string};error.code=payload?.code;throw error}\n    return payload;\n  }\n  async function analyze(ids:string[],purpose:'metadata'|'grade',silent=false){\n    if(!ids.length)return;\n    try{\n      await post(ANALYSIS_FN,'/analyze-card',{card_ids:ids,purpose});\n      if(!silent)toast({title:purpose==='grade'?'Grading recommendation ready':'Card details ready',description:purpose==='grade'?'Review the recommendation before approving the official grade.':'High-confidence fields were filled. Anything uncertain is marked for review.'});\n    }catch(error){\n      const coded=error as Error&{code?:string};\n      const message=coded.code==='vision_provider_unconfigured'\n        ?'Automatic PCG analysis is not configured. The card images are safe, but card details and grades were not generated.'\n        :errorMessage(error);\n      if(!silent)toast({title:purpose==='grade'?'Automatic grading could not finish':'Card identification could not finish',description:message,variant:'destructive'});\n      throw new Error(message);\n    }\n  }\n  function addFronts(files:File[]){setDrafts(current=>{const next=[...current];for(const file of files){const empty=next.findIndex(item=>!item.front);if(empty>=0)next[empty]={...next[empty],front:file,status:'queued',error:undefined};else next.push({id:crypto.randomUUID(),front:file,status:'queued'})}return next})}\n  function addBacks(files:File[]){setDrafts(current=>{const next=[...current];for(const file of files){const empty=next.findIndex(item=>!item.back);if(empty>=0)next[empty]={...next[empty],back:file,status:'queued',error:undefined};else next.push({id:crypto.randomUUID(),back:file,status:'queued'})}return next})}\n  async function uploadMedia(file:File,draft:IntakeDraft,side:'front'|'back',importKey:string):Promise<MediaResult>{\n    if(!selectedSubmissionId)throw new Error('Choose the customer/order first.');\n    const{data}=await supabase.auth.getSession();if(!data.session?.access_token)throw new Error('Please sign in again.');\n    const params=new URLSearchParams({tenant_id:tenantId,submission_id:selectedSubmissionId,session_key:'pcg-receive-'+selectedSubmissionId,import_key:importKey,key:draft.id,side,name:file.name,content_type:file.type||'application/octet-stream'});\n    let lastError:unknown=null;\n    for(let attempt=0;attempt<3;attempt+=1){\n      try{\n        const response=await fetch(STORAGE_MEDIA_FN+'/upload?'+params.toString(),{method:'POST',headers:{Authorization:'Bearer '+data.session.access_token,'Content-Type':file.type||'application/octet-stream'},body:file});\n        const payload=await response.json().catch(()=>null);if(!response.ok||!payload?.ok)throw new Error(errorMessage(payload?.error??payload?.message??payload)||'PCG storage upload failed');\n        return{url:String(payload.url||''),fileId:String(payload.file_id||'')};\n      }catch(error){\n        lastError=error;\n        if(attempt<2)await new Promise(resolve=>setTimeout(resolve,attempt===0?350:900));\n      }\n    }\n    throw lastError instanceof Error?lastError:new Error('PCG storage upload failed');\n  }\n  async function uploadBatch(){\n    if(!selectedSubmission)return toast({title:'Choose who these cards are for',description:'Pick or add the customer before uploading photos.',variant:'destructive'});\n    const ready=drafts.filter(item=>item.front&&item.back&&item.status!=='done');if(!ready.length)return toast({title:'Nothing waiting to store',description:'Each card needs one front and one back. Cards already stored will not be uploaded again.'});\n    setBusy(true);\n    const existing=cards.filter(card=>card.submission_id===selectedSubmission.id);let nextSequence=Math.max(0,...existing.map(card=>Number(card.sequence_number)||0))+1;const storedIds:string[]=[];\n    for(const item of ready){\n      const sequence=nextSequence++,importKey=('pcg:'+selectedSubmission.id+':'+item.id).toLowerCase();\n      try{\n        setDrafts(current=>current.map(row=>row.id===item.id?{...row,status:'uploading',error:undefined}:row));\n        const[front,back]=await Promise.all([item.front?uploadMedia(item.front,item,'front',importKey):Promise.resolve(null),item.back?uploadMedia(item.back,item,'back',importKey):Promise.resolve(null)]);\n        const metadata={pcg_ai:{status:'pending',requested_purpose:'metadata',field_confidence:{},human_review_required:true},image_storage:'cloudflare_r2',r2_media:{provider:'cloudflare_r2',front_object_key:front?.fileId||null,back_object_key:back?.fileId||null}};\n        const{data,error}=await(supabase as any).from('card_grading_cards').upsert({tenant_id:tenantId,submission_id:selectedSubmission.id,sequence_number:sequence,status:'received',import_key:importKey,front_image_url:front?.url||null,back_image_url:back?.url||null,metadata},{onConflict:'tenant_id,import_key'}).select('id').single();\n        if(error)throw error;const{data:submissionNumber,error:submissionNumberError}=await(supabase as any).rpc('allocate_pcg_submission_number',{_tenant_id:tenantId,_card_id:data.id});if(submissionNumberError)throw submissionNumberError;storedIds.push(String(data.id));setDrafts(current=>current.map(row=>row.id===item.id?{...row,status:'done'}:row));toast({title:'Card stored · Submission #'+String(submissionNumber),description:'Original front + back uploaded. AI identification and grading will start automatically.',variant:'default'});\n      }catch(error){setDrafts(current=>current.map(row=>row.id===item.id?{...row,status:'failed',error:errorMessage(error)}:row))}\n    }\n    await load();setBusy(false);\n    toast({title:storedIds.length+' card'+(storedIds.length===1?'':'s')+' stored for '+(selectedSubmission.customer_name||selectedSubmission.submission_number),description:'Front + back are saved. PCG is identifying and grading them automatically; review the result before approving an official grade.'});\n      // Clear the batch drafts after successful upload to keep the UI tidy\n      setDrafts([]);\n    if(storedIds.length){\n      setLastStoredIds(Array.from(new Set(storedIds)));setSelectedIds(new Set(storedIds));\n      window.requestAnimationFrame(()=>document.getElementById('pcg-stored-cards')?.scrollIntoView({behavior:'smooth',block:'start'}));\n      // Keep intake linear and truthful: process in place, then leave the completed cards visible for review.\n      toast({title:'Processing cards…',description:'Identifying card details and running automatic grading.',variant:'default'});\n      try {\n        await analyze(storedIds,'metadata',true);\n        await analyze(storedIds,'grade',true);\n        await load();\n        toast({title:'Cards ready for review',description:'Card details and grading recommendations are ready. Review them before approving the official PCG grade.'});\n      } catch (e) {\n        toast({title:'Cards stored, but automatic processing needs attention',description:errorMessage(e),variant:'destructive'});\n      }\n    }\n  }\n  function toggle(id:string){setSelectedIds(current=>{const next=new Set(current);next.has(id)?next.delete(id):next.add(id);return next})}\n  function selectAll(){setSelectedIds(current=>current.size===gallery.length?new Set():new Set(gallery.map(card=>card.id)))}\n  function startEdit(){if(selectedCards.length!==1)return toast({title:'Select exactly one card to edit'});const card=selectedCards[0],meta=card.metadata||{};setEditingId(card.id);setEdit({player:card.player_character||'',year:card.year||'',set:card.brand_set||'',number:card.card_number||'',category:card.category||'',description:card.card_description||card.variation||'',autograph:card.autograph_present==null?'':card.autograph_present?'yes':'no',tags:Array.isArray(meta.tags)?meta.tags.join(', '):''})}\n  async function saveEdit(){if(!editingCard)return;setBusy(true);const meta=editingCard.metadata||{};const{error}=await(supabase as any).from('card_grading_cards').update({player_character:edit.player.trim()||null,year:edit.year.trim()||null,brand_set:edit.set.trim()||null,card_number:edit.number.trim()||null,category:edit.category.trim()||null,card_description:edit.description.trim()||null,variation:edit.description.trim()||null,autograph_present:edit.autograph===''?null:edit.autograph==='yes',metadata:{...meta,tags:edit.tags.split(/[;,]/).map(v=>v.trim()).filter(Boolean),manual_reviewed_at:new Date().toISOString()},updated_at:new Date().toISOString()}).eq('tenant_id',tenantId).eq('id',editingCard.id);setBusy(false);if(error)return toast({title:'Could not save card details',description:error.message,variant:'destructive'});toast({title:'Card details saved'});setEditingId(null);await load()}\n  async function moveToGrade(){if(!selectedSubmission||!selectedCards.length)return;setBusy(true);try{const order=['received','intake_imaging','authentication','grading'];let index=order.indexOf(selectedSubmission.status);if(index<0)throw new Error('This customer order is not in an intake stage.');for(let next=index+1;next<order.length;next++){const{error}=await(supabase as any).rpc('advance_pcg_grading_submission',{p_tenant_id:tenantId,p_submission_id:selectedSubmission.id,p_status:order[next]});if(error)throw error}toast({title:'Moved to Grade Cards',description:selectedSubmission.submission_number+' is now in Grade Cards.'});setSelectedIds(new Set());await load()}catch(error){toast({title:'Could not move to Grade Cards',description:errorMessage(error),variant:'destructive'})}finally{setBusy(false)}}\n  async function rehome(){if(!selectedCards.length||!moveTarget)return;const target=submissions.find(row=>row.id===moveTarget);if(!target)return;if(!window.confirm('Move '+selectedCards.length+' selected card'+(selectedCards.length===1?'':'s')+' to '+(target.customer_name||target.submission_number)+'?'))return;setBusy(true);try{await post(STORAGE_MEDIA_FN,'/rehome-cards',{card_ids:selectedCards.map(card=>card.id),target_submission_id:moveTarget});toast({title:'Customer assignment updated',description:'The card records and managed masters stayed together.'});setSelectedIds(new Set());await load()}catch(error){toast({title:'Could not move cards',description:errorMessage(error),variant:'destructive'})}finally{setBusy(false)}}\n  async function removeSelected(){if(!selectedCards.length)return;if(!window.confirm('Remove '+selectedCards.length+' selected card'+(selectedCards.length===1?'':'s')+' and their managed PCG master images? This cannot be undone.'))return;setBusy(true);try{await post(STORAGE_MEDIA_FN,'/delete-cards',{card_ids:selectedCards.map(card=>card.id)});toast({title:'Selected cards removed'});setSelectedIds(new Set());await load()}catch(error){toast({title:'Could not remove cards',description:errorMessage(error),variant:'destructive'})}finally{setBusy(false)}}\n\n  return <div data-pcg-receive-cards-gallery=\"true\" className=\"w-full text-white\">\n    <section className=\"border-b border-white/[0.08] pb-3\"><div className=\"flex flex-wrap items-center gap-3\"><div className=\"mr-auto\"><div className=\"flex items-center gap-2 text-[9px] font-black uppercase tracking-[.16em] text-[#d8bb78]\"><ScanLine className=\"h-4 w-4\"/>Receive Cards</div><h1 className=\"mt-1 text-2xl font-black tracking-[-.03em]\">Card Intake</h1></div><button onClick={()=>void load()} className=\"grid h-11 w-11 place-items-center rounded-xl border border-white/[0.10]\"><RefreshCw className={cn('h-4 w-4',loading&&'animate-spin')}/></button></div></section>\n    <section className=\"mt-3 rounded-xl border border-white/[0.09] bg-black/28 p-3\"><div className=\"flex flex-col gap-3 lg:flex-row lg:items-end\"><label className=\"min-w-0 flex-1\"><span className=\"text-[10px] font-black uppercase tracking-[.15em] text-[#d8bb78]\">1 · Who are these cards for?</span><select value={selectedSubmissionId} onChange={event=>setSelectedSubmissionId(event.target.value)} disabled={busy} className=\"mt-1.5 h-11 min-h-11 w-full rounded-lg border border-white/[0.10] bg-[#09090a] px-3 text-sm font-bold text-white outline-none\"><option value=\"\">Choose or add a customer</option>{submissions.map(row=><option key={row.id} value={row.id}>{row.customer_name||'Customer'} · {row.submission_number} · {row.status.replaceAll('_',' ')}</option>)}</select></label><button onClick={onRequestCreateOrder} className=\"min-h-11 rounded-lg border border-[#d8bb78]/30 px-3 text-xs font-black text-[#e8cc8d]\">+ Add customer</button></div>{selectedSubmission?<div className=\"mt-3 flex flex-wrap gap-2 text-[10px] font-bold text-white/55\"><span className=\"rounded-full border border-white/[0.08] px-2.5 py-1\">{selectedSubmission.customer_name||'Customer'}</span><span className=\"rounded-full border border-white/[0.08] px-2.5 py-1\">{gallery.length} cards on file</span><span className=\"rounded-full border border-white/[0.08] px-2.5 py-1\">Expected {Number(selectedSubmission.expected_card_count||0)}</span></div>:<p className=\"mt-3 text-xs text-amber-100/75\">Choose or add the customer, then add the card photos.</p>}</section>\n    <section className={cn('mt-3 rounded-xl border border-white/[0.09] bg-black/22 p-3',!selectedSubmission&&'pointer-events-none opacity-40')}><div><div className=\"text-[10px] font-black uppercase tracking-[.15em] text-[#d8bb78]\">2 · Add card photos</div><h2 className=\"mt-1 text-lg font-black\">Add card photos</h2><p className=\"mt-1 text-xs leading-5 text-white/55\"><span className=\"font-black text-white/75\">Phone workflow:</span> use Photos for almost every intake. Select all card fronts in order, then select the matching backs in the same order. PCG pairs them for you and flags anything unmatched before upload. Camera is optional for one side at a time.</p></div><div className=\"mt-3 grid grid-cols-1 gap-2 sm:grid-cols-2\"><div className=\"rounded-lg border border-white/[0.08] bg-black/20 p-2.5\"><div className=\"mb-1.5 text-[10px] font-black uppercase tracking-[.12em] text-white/55\">Fronts</div><div className=\"grid grid-cols-2 gap-2\"><label className=\"inline-flex min-h-11 cursor-pointer items-center justify-center gap-2 rounded-xl bg-[#d8bb78] px-3 text-xs font-black text-black\"><UploadCloud className=\"h-4 w-4\"/>Photos<input type=\"file\" multiple accept=\"image/*\" className=\"hidden\" onChange={event=>{addFronts(Array.from(event.target.files||[]));event.currentTarget.value=''}}/></label><label className=\"inline-flex min-h-11 cursor-pointer items-center justify-center rounded-xl border border-white/[0.12] px-3 text-xs font-black\">Camera<input type=\"file\" accept=\"image/*\" capture=\"environment\" className=\"hidden\" onChange={event=>{addFronts(Array.from(event.target.files||[]));event.currentTarget.value=''}}/></label></div></div><div className=\"rounded-lg border border-white/[0.08] bg-black/20 p-2.5\"><div className=\"mb-1.5 text-[10px] font-black uppercase tracking-[.12em] text-white/55\">Backs</div><div className=\"grid grid-cols-2 gap-2\"><label className=\"inline-flex min-h-11 cursor-pointer items-center justify-center gap-2 rounded-xl bg-[#d8bb78] px-3 text-xs font-black text-black\"><UploadCloud className=\"h-4 w-4\"/>Photos<input type=\"file\" multiple accept=\"image/*\" className=\"hidden\" onChange={event=>{addBacks(Array.from(event.target.files||[]));event.currentTarget.value=''}}/></label><label className=\"inline-flex min-h-11 cursor-pointer items-center justify-center rounded-xl border border-white/[0.12] px-3 text-xs font-black\">Camera<input type=\"file\" accept=\"image/*\" capture=\"environment\" className=\"hidden\" onChange={event=>{addBacks(Array.from(event.target.files||[]));event.currentTarget.value=''}}/></label></div></div></div>{drafts.length?<><div className=\"mt-4 grid grid-cols-3 gap-2 sm:grid-cols-4 md:grid-cols-5 lg:grid-cols-7 xl:grid-cols-10 2xl:grid-cols-12\">{drafts.map((item,index)=><DraftCard key={item.id} item={item} index={index}/>)}</div><div className=\"mt-4 flex flex-wrap gap-2\"><button disabled={busy} onClick={()=>void uploadBatch()} className=\"h-11 rounded-xl bg-[#d8bb78] px-5 text-xs font-black text-black disabled:opacity-50\">{busy?'Working…':(()=>{const pending=drafts.filter(item=>item.front&&item.back&&item.status!=='done'),failed=pending.filter(item=>item.status==='failed').length,count=pending.length;return (failed?'Retry ':'Upload ')+count+' card'+(count===1?'':'s')})()}</button><button disabled={busy} onClick={()=>setDrafts([])} className=\"h-11 rounded-xl border border-white/[0.10] px-4 text-xs font-black text-white/65\">Clear batch</button></div></>:<div className=\"mt-3 grid min-h-20 place-items-center rounded-xl border border-dashed border-white/[0.08] text-center\"><div><ImagePlus className=\"mx-auto h-7 w-7 text-white/16\"/><div className=\"mt-2 text-sm font-black text-white/48\">No photos loaded yet</div></div></div>}</section>\n    {lastStoredIds.length&&selectedSubmission?<section id=\"pcg-stored-cards\" className=\"mt-5 rounded-2xl border border-emerald-300/20 bg-emerald-300/[0.05] p-4\"><div className=\"flex flex-col gap-3 sm:flex-row sm:items-end\"><div className=\"mr-auto\"><div className=\"text-[10px] font-black uppercase tracking-[.15em] text-emerald-300\">Stored in PCG</div><h2 className=\"mt-1 text-lg font-black\">{lastStoredIds.length} card{lastStoredIds.length===1?'':'s'} ready for review</h2><p className=\"mt-1 max-w-2xl text-xs leading-5 text-white/55\">Front + back are saved. PCG is identifying the card and running a preliminary grade automatically. The official grade still requires human approval.</p></div><button type=\"button\" onClick={()=>onRequestGradeCards?.(selectedSubmission.id)} disabled={!onRequestGradeCards} className=\"min-h-12 w-full rounded-xl bg-[#d8bb78] px-5 text-sm font-black text-black disabled:opacity-40 sm:w-auto\">Review & approve grades</button></div>{storedCards.length?<div className=\"mt-4 grid grid-cols-1 gap-2 sm:grid-cols-2 lg:grid-cols-3\">{storedCards.map(card=><article key={card.id} className=\"grid min-w-0 grid-cols-[64px_64px_1fr] gap-2 rounded-xl border border-white/[0.08] bg-black/25 p-2\"><div className=\"aspect-[3/4] overflow-hidden rounded-lg bg-black/40\">{card.front_image_url?<img src={previewMediaUrl(card.front_image_url)} alt=\"Card front\" className=\"h-full w-full object-contain\"/>:<div className=\"grid h-full place-items-center text-[9px] text-white/25\">Front</div>}</div><div className=\"aspect-[3/4] overflow-hidden rounded-lg bg-black/40\">{card.back_image_url?<img src={previewMediaUrl(card.back_image_url)} alt=\"Card back\" className=\"h-full w-full object-contain\"/>:<div className=\"grid h-full place-items-center text-[9px] text-white/25\">Back</div>}</div><div className=\"min-w-0 self-center\"><div className=\"truncate text-xs font-black\">{card.player_character||card.brand_set||('Card #'+card.sequence_number)}</div><div className=\"mt-1 text-[10px] font-bold uppercase tracking-[.08em] text-emerald-300\">{card.grade_label?'Grade ready to review':'Analyzing'}</div><div className=\"mt-1 truncate text-[10px] text-white/38\">{card.front_image_url&&card.back_image_url?'Front + back stored':'Image review needed'}</div></div></article>)}</div>:<div className=\"mt-3 text-xs text-white/45\">Refreshing stored card records…</div>}</section>:null}\n    <section className=\"mt-4 border-t border-white/[0.08] pt-3\"><div className=\"flex flex-wrap items-end gap-3\"><div className=\"mr-auto\"><div className=\"text-[10px] font-black uppercase tracking-[.15em] text-white/40\">3 · Review</div><h2 className=\"mt-1 text-xl font-black\">Card gallery</h2><p className=\"mt-1 text-xs text-white/48\">Cards are identified and graded automatically after upload. Select cards only when you need to correct details, reassign, or remove them.</p></div>{gallery.length?<button onClick={selectAll} className=\"inline-flex h-10 items-center gap-2 rounded-xl border border-white/[0.10] px-3 text-xs font-black\">{selectedIds.size===gallery.length?<CheckSquare className=\"h-4 w-4\"/>:<Square className=\"h-4 w-4\"/>}{selectedIds.size===gallery.length?'Clear all':'Select all'}</button>:null}</div>\n      {selectedCards.length?<div className=\"sticky bottom-24 z-30 mt-4 rounded-2xl border border-[#d8bb78]/25 bg-[#080809]/95 p-3 shadow-2xl backdrop-blur-xl\"><div className=\"mb-3 flex items-center gap-3\"><span className=\"mr-auto text-xs font-black text-[#e8cc8d]\">{selectedCards.length} selected</span><button onClick={()=>setSelectedIds(new Set())} className=\"text-[10px] font-black uppercase tracking-[.12em] text-white/50\">Clear</button></div><div className=\"grid gap-2 sm:grid-cols-2\"><button disabled={busy||selectedCards.length!==1} onClick={startEdit} className=\"inline-flex h-11 items-center justify-center gap-2 rounded-xl border border-white/[0.10] px-3 text-xs font-black disabled:opacity-40\"><Pencil className=\"h-4 w-4\"/>Edit Card Details</button><button disabled={busy} onClick={()=>void removeSelected()} className=\"inline-flex h-11 items-center justify-center gap-2 rounded-xl border border-rose-300/20 bg-rose-400/[.06] px-3 text-xs font-black text-rose-200\"><Trash2 className=\"h-4 w-4\"/>Delete / Remove</button></div><div className=\"mt-2 grid gap-2 sm:grid-cols-[1fr_auto]\"><select value={moveTarget} onChange={event=>setMoveTarget(event.target.value)} className=\"h-11 rounded-xl border border-white/[0.10] bg-black/40 px-3 text-xs font-bold text-white\"><option value=\"\">Move/assign to another customer order</option>{submissions.filter(row=>row.id!==selectedSubmissionId).map(row=><option key={row.id} value={row.id}>{row.customer_name||'Customer'} · {row.submission_number}</option>)}</select><button disabled={busy||!moveTarget} onClick={()=>void rehome()} className=\"inline-flex h-11 items-center justify-center gap-2 rounded-xl border border-[#d8bb78]/25 px-4 text-xs font-black text-[#e8cc8d] disabled:opacity-40\"><UserRoundCheck className=\"h-4 w-4\"/>Move/Assign Customer</button></div></div>:null}\n      {editingCard?<div className=\"mt-4 rounded-2xl border border-white/[0.10] bg-black/35 p-4\"><div className=\"flex items-center gap-3\"><div className=\"mr-auto\"><div className=\"text-[10px] font-black uppercase tracking-[.15em] text-[#d8bb78]\">Card details</div><div className=\"mt-1 text-sm font-black\">{editingCard.player_character||editingCard.brand_set||'Selected card'}</div></div><button onClick={()=>setEditingId(null)} className=\"text-xs font-black text-white/50\">Close</button></div><div className=\"mt-4 grid gap-3 sm:grid-cols-2 lg:grid-cols-4\"><Field label=\"Player\" value={edit.player} onChange={player=>setEdit(v=>({...v,player}))}/><Field label=\"Year\" value={edit.year} onChange={year=>setEdit(v=>({...v,year}))}/><Field label=\"Brand / set\" value={edit.set} onChange={set=>setEdit(v=>({...v,set}))}/><Field label=\"Card #\" value={edit.number} onChange={number=>setEdit(v=>({...v,number}))}/><Field label=\"Sport / category\" value={edit.category} onChange={category=>setEdit(v=>({...v,category}))}/><Field label=\"Variation / parallel\" value={edit.description} onChange={description=>setEdit(v=>({...v,description}))}/><Field label=\"Tags\" value={edit.tags} onChange={tags=>setEdit(v=>({...v,tags}))}/><Field label=\"Autograph\" value={edit.autograph} onChange={value=>setEdit(v=>({...v,autograph:value==='yes'?'yes':value==='no'?'no':''}))} placeholder=\"yes / no\"/></div><button disabled={busy} onClick={()=>void saveEdit()} className=\"mt-4 h-11 rounded-xl bg-[#d8bb78] px-5 text-xs font-black text-black\">Save reviewed details</button></div>:null}\n      {!selectedSubmission?<div className=\"mt-4 grid min-h-40 place-items-center rounded-2xl border border-dashed border-white/[0.08] bg-black/15 text-center\"><div><Archive className=\"mx-auto h-7 w-7 text-white/15\"/><div className=\"mt-2 text-sm font-black text-white/52\">Choose a customer to open their card folder.</div></div></div>:gallery.length?<div className=\"mt-4 grid grid-cols-2 gap-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-6 xl:grid-cols-8\">{gallery.map(card=>{const ai=card.metadata?.pcg_ai||{},auto=card.metadata?.auto_grader||{},selected=selectedIds.has(card.id);const review=ai.status==='ready'?'Details ready':ai.status==='review_needed'?'Review needed':ai.status==='pending'?'Analyzing':'Not analyzed';return <button type=\"button\" key={card.id} onClick={()=>toggle(card.id)} className={cn('overflow-hidden rounded-2xl border bg-black/45 text-left transition',selected?'border-[#d8bb78]/70 ring-2 ring-[#d8bb78]/20':'border-white/[0.08] hover:border-white/[0.18]')}><div className=\"relative aspect-[3/4] overflow-hidden bg-[#080809]\">{card.front_image_url?<img src={previewMediaUrl(card.front_image_url)} alt=\"\" loading=\"lazy\" decoding=\"async\" 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>}<span className=\"absolute left-2 top-2 rounded-full bg-black/75 p-1.5\">{selected?<CheckSquare className=\"h-4 w-4 text-[#e8cc8d]\"/>:<Square className=\"h-4 w-4 text-white/55\"/>}</span>{auto.suggested_grade!=null?<div className=\"absolute bottom-2 right-2 rounded-lg bg-violet-950/90 px-2 py-1 text-[9px] font-black text-violet-100\">AI {String(auto.suggested_grade)}</div>:null}</div><div className=\"p-2.5\"><div className=\"truncate text-xs font-black\">{card.player_character||card.brand_set||('Card #'+card.sequence_number)}</div><div className=\"mt-1 truncate text-[10px] text-white/42\">{[card.year,card.brand_set,card.card_number&&('#'+card.card_number)].filter(Boolean).join(' · ')||'Details pending'}</div><div className={cn('mt-2 text-[9px] font-black uppercase tracking-[.08em]',review==='Review needed'?'text-amber-200':review==='Details ready'?'text-emerald-300':'text-white/35')}>{review}</div></div></button>})}</div>:<div className=\"mt-4 grid min-h-40 place-items-center rounded-2xl border border-dashed border-white/[0.08] bg-black/15 text-center\"><div><Archive className=\"mx-auto h-7 w-7 text-white/15\"/><div className=\"mt-2 text-sm font-black text-white/52\">This customer folder is ready for its first card.</div></div></div>}\n    </section>\n  </div>\n}\n","expectedSha":"cba1c41ed6c2bd569e0758a2e5acbddfcf726d4e"}],"branch":"ai/objective-first-repair-e972f636ee12","writes":[],"patches":[],"version":1,"approved":true,"missionId":"e972f636-ee12-4fce-8ba0-6b156b3a2584","objective":"Continue the same exact-source PCG Card Intake P0 mission with the synthesized current-main file write, then Gate, merge, deploy, and verify live.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"shipRequested":true,"sourceTargets":["src/pages/card-grading/PCGReceiveCardsGallery.tsx"],"implementation":{"files":[],"writes":[]},"requestContract":{"intent":{"evidence":[],"confidence":null,"compilation":{"stages":["owner_intent","conversation_context","scope","live_state","mutation_authority","affected_systems","dependencies","risk_and_blast_radius","execution_tactics","required_proof","release_plan","recovery_plan"],"version":2,"explicit":false,"objective":"Continue the same exact-source PCG Card Intake P0 mission with the synthesized current-main file write, then Gate, merge, deploy, and verify live.","proofKinds":[],"adaptiveDomains":["intent","tenant_route_role_viewport","urgency_deadline","dependency_scope","risk_blast_radius","runner_capacity","queue_active_work","provider_failure_circuits","qa_scope","retry_recovery","release_ownership","proof_depth"],"expansionPolicy":"later_stages_may_only_narrow_or_expand_with_machine_readable_dependency_evidence","dynamicStatePolicy":"live_state_may_change_execution_tactics_but_never_owner_outcome_or_explicit_constraints","dynamicRefreshStages":["preflight","gate","release","runtime_proof"],"adaptiveCompilerVersion":"paul-adaptive-objective-v1","inheritedContextBlockingAuthority":false},"rawUtterance":"Continue the same exact-source PCG Card Intake P0 mission with the synthesized current-main file write, then Gate, merge, deploy, and verify live.","wordingChanged":false,"canonicalIntent":"Continue the same exact-source PCG Card Intake P0 mission with the synthesized current-main file write, then Gate, merge, deploy, and verify live.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"outcome-1","statement":"Continue the same exact-source PCG Card Intake P0 mission with the synthesized current-main file write, then Gate, merge, deploy, and verify live.","provenance":{"reason":null,"source":"current_request_inference","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"objective":"Continue the same exact-source PCG Card Intake P0 mission with the synthesized current-main file write, then Gate, merge, deploy, and verify live.","constraints":[{"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":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"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.","provenance":{"reason":null,"source":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"repository","claim":"Continue the same exact-source PCG Card Intake P0 mission with the synthesized current-main file write, then Gate, merge, deploy, and verify live.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}]},"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":"e972f636-ee12-4fce-8ba0-6b156b3a2584","ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/pages/card-grading/PCGReceiveCardsGallery.tsx"],"requestContract":{"intent":{"evidence":[],"confidence":null,"compilation":{"stages":["owner_intent","conversation_context","scope","live_state","mutation_authority","affected_systems","dependencies","risk_and_blast_radius","execution_tactics","required_proof","release_plan","recovery_plan"],"version":2,"explicit":false,"objective":"Continue the same exact-source PCG Card Intake P0 mission with the synthesized current-main file write, then Gate, merge, deploy, and verify live.","proofKinds":[],"adaptiveDomains":["intent","tenant_route_role_viewport","urgency_deadline","dependency_scope","risk_blast_radius","runner_capacity","queue_active_work","provider_failure_circuits","qa_scope","retry_recovery","release_ownership","proof_depth"],"expansionPolicy":"later_stages_may_only_narrow_or_expand_with_machine_readable_dependency_evidence","dynamicStatePolicy":"live_state_may_change_execution_tactics_but_never_owner_outcome_or_explicit_constraints","dynamicRefreshStages":["preflight","gate","release","runtime_proof"],"adaptiveCompilerVersion":"paul-adaptive-objective-v1","inheritedContextBlockingAuthority":false},"rawUtterance":"Continue the same exact-source PCG Card Intake P0 mission with the synthesized current-main file write, then Gate, merge, deploy, and verify live.","wordingChanged":false,"canonicalIntent":"Continue the same exact-source PCG Card Intake P0 mission with the synthesized current-main file write, then Gate, merge, deploy, and verify live.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"outcome-1","statement":"Continue the same exact-source PCG Card Intake P0 mission with the synthesized current-main file write, then Gate, merge, deploy, and verify live.","provenance":{"reason":null,"source":"current_request_inference","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"objective":"Continue the same exact-source PCG Card Intake P0 mission with the synthesized current-main file write, then Gate, merge, deploy, and verify live.","constraints":[{"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":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"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.","provenance":{"reason":null,"source":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"repository","claim":"Continue the same exact-source PCG Card Intake P0 mission with the synthesized current-main file write, then Gate, merge, deploy, and verify live.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}]},"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":"ca12818238a59d1902af43626c156b00e2b05b776f370752c6d5c3a96290db53","replayCount":0,"serializedBytes":44526},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T14:32:12.575873+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:e972f636-ee12-4fce-8ba0-6b156b3a2584:repository-mutation-intent:ca12818238a59d1902af43626c156b00e2b05b776f370752c6d5c3a96290db53:0","mission_step_id":"3ee65265-1ffb-4895-bce5-f2bdb5a9d7ca","command_center_event_id":"e972f636-ee12-4fce-8ba0-6b156b3a2584"},{"id":"11f0bbd1-e31d-4adf-83da-81a9d08e45b8","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"release","branch":null,"reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":1003,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.31.3-direct-scoped-patch","prNumber":4222,"terminal":false,"missionId":"fa00f8bf-0f73-4647-a4a2-950b31efc76e","operation":"ship_and_prove","proofGate":"canonical_release_dispatched","sourceSha":"adfed32fe4ee816be1dde45d7184c2595e143f3f","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"fa00f8bf-0f73-4647-a4a2-950b31efc76e"},"performance":null,"deploymentId":"canonical-release-adfed32fe4ee","workflowRunId":31200568090,"releaseTargets":{"frontend":true,"onrunner":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1141,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-07T17:04:17.8923+00:00","proof_gate":"canonical_release_dispatched","source_sha":"adfed32fe4ee816be1dde45d7184c2595e143f3f","external_id":"canonical-release-adfed32fe4ee","receipt_type":"ship_and_prove","idempotency_key":"mission:fa00f8bf-0f73-4647-a4a2-950b31efc76e:ship_and_prove:canonical_release_dispatched","mission_step_id":"24d9c0e5-0e42-4b0d-bc69-d6a0446fe904","command_center_event_id":"fa00f8bf-0f73-4647-a4a2-950b31efc76e"},{"id":"11f26c02-732b-41d1-a5f3-bbb9f514ef61","source":"cc-execution","status":"recorded","payload":{"objective":"Ship and prove noel/KnockLaunchOS PR #404","tenantRef":"big-papis","receivedAt":"2026-08-19T03:10:36.921Z","fingerprint":"22839750e0518ed97a6ad915d8b3e290be4279e95610cd4df71d5ecd8b77c2f9","workstreamRef":"bigpapis","conversationId":null,"canonicalBranch":"ai/big-papis-premium-ops-20260818","requestedBranch":null,"conversationContext":null},"tenant_id":"766cfaa7-ac42-46c8-bbef-69d13268a29d","created_at":"2026-08-19T03:10:37.475133+00:00","proof_gate":"tenant_workstream_contribution_recorded","source_sha":null,"external_id":null,"receipt_type":"tenant_workstream_contribution","idempotency_key":"mission:e3ce05a6-7c59-4211-9158-5ee5f40c794e:tenant-workstream-contribution:22839750e0518ed97a6ad915d8b3e290be4279e95610cd4df71d5ecd8b77c2f9","mission_step_id":"f10144c1-a8f5-4efd-8bca-9f449a1ce2cc","command_center_event_id":"e3ce05a6-7c59-4211-9158-5ee5f40c794e"},{"id":"11f41b67-bbd2-48d5-ad88-21146b0fbe9a","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","frontend-cloudflare/live":"success"},"mainSha":"ae426a08ecf432c0ad37b93f05db296f7c5bf26b","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"ae426a08ecf432c0ad37b93f05db296f7c5bf26b","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":"45aa4039530ea088038c168d2ad7ed438601041cf4df141eaf20a650424e7d86","forgejoWorkflowProof":{"runId":9386,"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-18T00:30:21.382409+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"ae426a08ecf432c0ad37b93f05db296f7c5bf26b","external_id":"forgejo-main-ae426a08ecf4","receipt_type":"canonical_release_status","idempotency_key":"mission:c87149c2-4b19-4c58-a8e5-61a665a60ec9:forgejo-release-status:ae426a08ecf432c0ad37b93f05db296f7c5bf26b:verified:forgejo-main/source=success|forgejo-release/workflow=success|frontend-cloudflare/live=success","mission_step_id":"211e0146-0f96-409f-b4cd-a3c048dc8af7","command_center_event_id":"c87149c2-4b19-4c58-a8e5-61a665a60ec9"},{"id":"11f45a46-2691-41d6-9842-8b77e8144870","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","frontend-cloudflare/live":"success"},"mainSha":"1f7a0c644bf924d9b349e24881d9ee5f9757702b","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"1f7a0c644bf924d9b349e24881d9ee5f9757702b","releaseState":"verified","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"success"},"requestContractHash":"46c9dae7f1b0c37b866bb90fa6a7a37a1acf3406cb6f8022a16f224a7baedd70","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/14206","runId":14206,"status":"running","sourceSha":"1f7a0c644bf924d9b349e24881d9ee5f9757702b","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true,"targetStates":{"frontend":"success"},"targetJobCount":7,"observedTargetStates":{"frontend":"success"}},"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T01:38:17.265643+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"1f7a0c644bf924d9b349e24881d9ee5f9757702b","external_id":"forgejo-main-1f7a0c644bf9","receipt_type":"canonical_release_status","idempotency_key":"mission:6464a9c7-033f-4ab3-9a6d-a3838a8e8f1f:forgejo-release-status:1f7a0c644bf924d9b349e24881d9ee5f9757702b:verified:forgejo-main/source=success|forgejo-release/workflow=success|frontend-cloudflare/live=success","mission_step_id":"646e35f2-de38-4a8a-b843-7701b69ff848","command_center_event_id":"6464a9c7-033f-4ab3-9a6d-a3838a8e8f1f"},{"id":"11f6eb43-33ba-42ec-8312-147de173e786","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"a4c6f109ea61e3457056f0da4b39874dcac832da","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"a4c6f109ea61e3457056f0da4b39874dcac832da","releaseState":"pending","sourceInMain":true,"compareStatus":"identical","releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"requestContractHash":"e32169fed3489f1534e6d32203e1b58662701d67c6c425541472d2929c33cee8","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/3471","runId":3471,"status":"running","sourceSha":"a4c6f109ea61e3457056f0da4b39874dcac832da","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"71b397ba-b9ad-496b-914c-985d97dbb12e","created_at":"2026-08-29T22:21:19.53202+00:00","proof_gate":"canonical_release_pending","source_sha":"a4c6f109ea61e3457056f0da4b39874dcac832da","external_id":"forgejo-main-a4c6f109ea61","receipt_type":"canonical_release_status","idempotency_key":"mission:3cfb7ead-7e0c-41af-b7de-fffdf0a8c6fa:forgejo-release-status:a4c6f109ea61e3457056f0da4b39874dcac832da:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"165ee6f1-c4b3-48eb-af57-0571d4640222","command_center_event_id":"3cfb7ead-7e0c-41af-b7de-fffdf0a8c6fa"},{"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":"11fc3c79-8f05-4e94-ad44-24f7b55f84d0","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","frontend-cloudflare/live":"success"},"mainSha":"ddc091e0e2e4e5ac32a90843749342cd2ad43115","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"ddc091e0e2e4e5ac32a90843749342cd2ad43115","releaseState":"verified","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"success"},"requestContractHash":"f30ab5fe5365179eb2f927677611cc53e4d40c1871cefadd550b79953071c4fd","forgejoWorkflowProof":{"runId":15094,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"frontend":"success"},"targetJobCount":7,"observedTargetStates":{"frontend":"success"}},"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-04T10:11:42.004389+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"ddc091e0e2e4e5ac32a90843749342cd2ad43115","external_id":"forgejo-main-ddc091e0e2e4","receipt_type":"canonical_release_status","idempotency_key":"mission:695431d3-459e-434c-bf9e-ba302beffcfb:forgejo-release-status:ddc091e0e2e4e5ac32a90843749342cd2ad43115:verified:forgejo-main/source=success|forgejo-release/workflow=success|frontend-cloudflare/live=success","mission_step_id":"9aaa4ba5-e058-4a8e-bfbd-51a9959b2d1c","command_center_event_id":"695431d3-459e-434c-bf9e-ba302beffcfb"},{"id":"11fd037d-10b3-44d5-9d35-ba3710c426a1","source":"cc-execution","status":"complete","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-mtinpods","reason":null,"status":"complete","metrics":{"receiptBytes":8220,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.2-visual-witness-proof-projection","prNumber":1248,"terminal":false,"missionId":"a7b4c95f-06df-454d-a03c-26c9b5f74175","operation":"execute_mission","proofGate":"repair_mission_prepared","sourceSha":null,"timingsMs":{"handlerMs":2807,"missionSetupMs":824},"nextAction":"continue_batch_or_ship_and_prove","receiptRef":{"mode":"full","missionId":"a7b4c95f-06df-454d-a03c-26c9b5f74175"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1822,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"de8369b6-a78f-40bb-ae1f-28ffca62bc7e","created_at":"2026-09-01T12:46:27.415391+00:00","proof_gate":"repair_mission_prepared","source_sha":null,"external_id":"1248","receipt_type":"execute_mission","idempotency_key":"mission:a7b4c95f-06df-454d-a03c-26c9b5f74175:execute_mission:repair_mission_prepared:current-generation","mission_step_id":"50c316bc-929e-4bff-8c2e-ecf68ea5bff6","command_center_event_id":"a7b4c95f-06df-454d-a03c-26c9b5f74175"},{"id":"12001051-74eb-4c52-9303-b6daf533fe4c","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-cd1f1f992051","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":3271,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":"2026-10-01T18:28:24.893Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.38-paul-owner-velocity","prNumber":4379,"terminal":false,"missionId":"cd1f1f99-2051-49d8-9d3f-e11f8c64a603","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":675,"missionSetupMs":293,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":293,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":293,"repositoryMutationMs":3795,"repositoryProviderMs":3795,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2269,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":293,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1526},"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":"cd1f1f99-2051-49d8-9d3f-e11f8c64a603"},"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":3199,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"766cfaa7-ac42-46c8-bbef-69d13268a29d","created_at":"2026-10-01T18:28:30.356133+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"4379","receipt_type":"execute_mission","idempotency_key":"mission:cd1f1f99-2051-49d8-9d3f-e11f8c64a603:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"05e9af62-ef1f-4296-998f-e4e7376cbb86","command_center_event_id":"cd1f1f99-2051-49d8-9d3f-e11f8c64a603"},{"id":"12004eb0-3274-4a18-ac76-fea92d753ad4","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-420a51733ef7","reason":"retryable_provider_transport:forgejo_provider_read_timeout","status":"retryable","metrics":{"receiptBytes":39872,"releaseCount":0,"toolCallCount":19,"repeatedCallCount":13,"executorlessWaitMs":98131,"firstUsefulResultAt":"2026-10-01T00:36:01.072Z","recoveryAttemptCount":13,"ownerInterruptionCount":0},"version":null,"prNumber":4293,"terminal":false,"missionId":"420a5173-3ef7-4b50-a111-6c74ce121fd9","operation":"automatic_mission_resume","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"prReadinessMs":2190,"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":"420a5173-3ef7-4b50-a111-6c74ce121fd9"},"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-10-01T00:36:11.970453+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"4293","receipt_type":"automatic_mission_resume","idempotency_key":"mission:420a5173-3ef7-4b50-a111-6c74ce121fd9:automatic-mission-resume:4293:repair_mission_pr_ready_retryable","mission_step_id":"f7a677de-211a-4d1e-8767-1f196af78986","command_center_event_id":"420a5173-3ef7-4b50-a111-6c74ce121fd9"},{"id":"120224f8-2b48-4f2e-819c-466bb1e3c9d8","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"3792c7a1f7be999caf57836dd6702c85b5580105","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"repo-fix","satisfied":true,"statement":"Current Forgejo main contains the three workflowRunId propagation points, cc-execution version 1.58.137-release-reentry-run-id-propagation, and deterministic regression assertions.","proofConditionIds":["repo-proof"]},{"id":"runtime-fix","satisfied":true,"statement":"cc-execution production is live on the exact merged source SHA at version 1.58.137-release-reentry-run-id-propagation.","proofConditionIds":["runtime-proof"]}],"satisfied":true,"constraints":[{"id":"release-safety","satisfied":true,"statement":"Do not add a release lane, do not weaken one-corrective-retry or per-target reconciliation, and do not change Supabase release ownership.","proofConditionIds":["repo-proof","runtime-proof"]},{"id":"delivery","satisfied":true,"statement":"Use the already-created ai/release-reentry-run-id-propagation branch, one PR, KnockLaunch Gate, squash merge, deploy only cc-execution, and no Visual Witness.","proofConditionIds":["repo-proof","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":["repo-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":["repo-proof","runtime-proof"]}],"contractHash":"931ff076fe36846d1128b71e345a77ea70724ee470b7eed3c5b4c0aa6f32c6d7","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"repo-proof","kind":"repository","evidence":{"reason":null,"satisfied":true,"missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{"ccExecution":"success"},"repositoryProofGate":"request_contract_repository_verified","repositoryProofPath":null,"requestContractHash":"931ff076fe36846d1128b71e345a77ea70724ee470b7eed3c5b4c0aa6f32c6d7","unsuccessfulTargets":[],"activeReleaseTargets":["ccExecution"],"allowedReleaseTargets":["ccExecution"],"repositoryProofStatus":"verified","expectedRepositoryPath":null,"requiredReleaseTargets":["ccExecution"],"migrationReleaseVerified":null,"repositoryConditionBound":true,"repositoryProofSourceSha":"3792c7a1f7be999caf57836dd6702c85b5580105"},"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":["ccExecution"],"requiredReleaseTargets":["ccExecution"],"migrationReleaseVerified":null,"releaseRequestContractHash":"931ff076fe36846d1128b71e345a77ea70724ee470b7eed3c5b4c0aa6f32c6d7"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["ccExecution"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":3},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-13T19:37:20.745152+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"3792c7a1f7be999caf57836dd6702c85b5580105","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:4bac03cb-d6c3-4447-b54f-1917e64d0d4a:request-contract:931ff076fe36846d1128b71e345a77ea70724ee470b7eed3c5b4c0aa6f32c6d7:3792c7a1f7be999caf57836dd6702c85b5580105:verified:","mission_step_id":"4dfaa20f-1ad2-493a-a1f4-d18135dac6ad","command_center_event_id":"4bac03cb-d6c3-4447-b54f-1917e64d0d4a"},{"id":"120271cd-2e0d-472e-a4e2-a51ba42e8e3c","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"release","branch":"ai/tenant-media-oauth-userinfo-fallback","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":1,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":2597,"terminal":false,"missionId":"aae66f73-cc61-44f7-9bc5-ad6adccee5fc","operation":"automatic_mission_resume","proofGate":"canonical_release_dispatched","sourceSha":"35dd483fb2bcc95c55acf60e2597b3b9aa1622a9","timingsMs":{"prReadinessMs":515,"approvedPlanMs":0,"shipAndProveMs":1958,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"aae66f73-cc61-44f7-9bc5-ad6adccee5fc"},"performance":null,"deploymentId":"forgejo-main-35dd483fb2bc","workflowRunId":7690,"releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":true,"edgeFunctionSlugs":["tenant-media-library"]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1953,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-13T01:48:27.964594+00:00","proof_gate":"canonical_release_dispatched","source_sha":null,"external_id":"2597","receipt_type":"automatic_mission_resume","idempotency_key":"mission:aae66f73-cc61-44f7-9bc5-ad6adccee5fc:automatic-mission-resume:2597:canonical_release_dispatched","mission_step_id":"94b739b2-2ca6-4b09-8ca3-e7642f6449c6","command_center_event_id":"aae66f73-cc61-44f7-9bc5-ad6adccee5fc"},{"id":"1202a86d-7f2a-48c6-9079-a8292bde57a4","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"objective_received","branch":"ai/block-empty-source-mutations-20260827","reason":"pull_request_checks_failed","status":"retryable","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.52.9-exact-open-pr-green-merge","prNumber":818,"terminal":false,"missionId":"91591187-102a-435d-b06a-42cb7cd101b0","operation":"execute_mission","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"handlerMs":603,"prReadinessMs":508,"approvedPlanMs":0,"missionSetupMs":2062,"shipAndProveMs":0},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"91591187-102a-435d-b06a-42cb7cd101b0"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5758,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-27T12:34:16.382017+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"818","receipt_type":"execute_mission","idempotency_key":"mission:91591187-102a-435d-b06a-42cb7cd101b0:execute_mission:repair_mission_pr_ready_retryable","mission_step_id":"4c20a20b-3d3d-4411-a463-706b8ea6ff22","command_center_event_id":"91591187-102a-435d-b06a-42cb7cd101b0"},{"id":"1203e1bf-1985-4ace-bd2d-18ef54e200bb","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-37de4bd527ee","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":6748,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":1,"executorlessWaitMs":343831,"firstUsefulResultAt":"2026-10-01T15:22:51.838Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.38-paul-owner-velocity","prNumber":4372,"terminal":false,"missionId":"37de4bd5-27ee-45b9-9250-60bb16bb3127","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":4255,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":626,"missionSetupMs":359,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":359,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":359,"repositoryMutationMs":3629,"repositoryProviderMs":3629,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2276,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":359,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1353},"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":"37de4bd5-27ee-45b9-9250-60bb16bb3127"},"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":3199,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-01T15:28:41.372538+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"4372","receipt_type":"execute_mission","idempotency_key":"mission:37de4bd5-27ee-45b9-9250-60bb16bb3127:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"a4179674-901c-4615-a7d9-3a56d567dde2","command_center_event_id":"37de4bd5-27ee-45b9-9250-60bb16bb3127"},{"id":"1204cfcf-dc72-41f7-8d09-14213734c495","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Continue the authorized Command Center terminalization maintenance. Temporarily UNFREEZE the control plane only for this exact worker edit. Restore the durable exact-release short-circuit from preserved commit 5adc7dab43a16d26759dd71adaf1d8c5923e1377. Prepare only; do not release yet.","wordingChanged":false,"canonicalIntent":"Continue the authorized Command Center terminalization maintenance. Temporarily UNFREEZE the control plane only for this exact worker edit. Restore the durable exact-release short-circuit from preserved commit 5adc7dab43a16d26759dd71adaf1d8c5923e1377. Prepare only; do not release yet.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"terminalization","statement":"Completed Command Center missions reconcile from exact canonical release evidence without requiring moving-main ancestry.","proofConditionIds":["runtime-proof"]}],"objective":"Continue the authorized Command Center terminalization maintenance. Temporarily UNFREEZE the control plane only for this exact worker edit. Restore the durable exact-release short-circuit from preserved commit 5adc7dab43a16d26759dd71adaf1d8c5923e1377. Prepare only; do not release yet.","constraints":[{"id":"release-safety","statement":"Preserve protected main, one branch, one PR, one Gate, one release, and unrelated behavior.","proofConditionIds":["runtime-proof"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"runtime-proof","kind":"runtime","claim":"The exact repair passes KnockLaunch Gate, squash-merges, releases only ccExecution, proves live runtime identity, and the original stuck mission terminalizes.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}],"validationErrors":[]},"requestContractHash":"e2ea6e03201a8007c63f1e13ef6bafc229d0454d409cf06746838dcc56464b9e","requestContractRevision":3,"previousRequestContractHash":"399e0aefbe1a1aa96dab1b261f3b7aa5014a08122e9656a582872bac0580d25a"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-10T05:29:04.537713+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:20aae700-7266-447e-844c-b0d60ddea665:request-contract:e2ea6e03201a8007c63f1e13ef6bafc229d0454d409cf06746838dcc56464b9e","mission_step_id":"fcc4502e-7930-43dc-91dc-49f9dc193586","command_center_event_id":"20aae700-7266-447e-844c-b0d60ddea665"},{"id":"120534d4-4431-4800-a659-0e8f0a844eaa","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","cc-execution/runtime-proof":"pending","supabase-edge-production/live":"pending"},"mainSha":"0d73748473ce376232fafcb400fd7e8fba573d14","missing":[],"pending":["forgejo-release/workflow","cc-execution/runtime-proof","supabase-edge-production/live"],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof","supabase-edge-production/live"],"sourceSha":"0d73748473ce376232fafcb400fd7e8fba573d14","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":true,"edgeFunctionSlugs":["visual-witness-container-bootstrap"]},"releaseTargetStates":{"ccExecution":"pending","supabaseEdge":"pending"},"requestContractHash":"8973c9e952a9299b392aa344f7860980fe6d64998931c9f1aaebf390b1923e1b","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/5498","runId":5498,"status":"running","sourceSha":"0d73748473ce376232fafcb400fd7e8fba573d14","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true,"targetStates":{"ccExecution":"pending","supabaseEdge":"pending"},"targetJobCount":7,"observedTargetStates":{"ccExecution":"pending","supabaseEdge":"pending"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"d730200cf160c9b35cab4e46e75c73f747c04d63","deploymentId":"forgejo-main-d730200cf160c9b35cab4e46e75c73f747c04d63","compareStatus":null,"identitySource":"local_build_metadata","runtimeVersion":"1.58.64-mutation-ledger-handoff","containsSourceSha":false},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-05T13:17:50.265745+00:00","proof_gate":"canonical_release_pending","source_sha":"0d73748473ce376232fafcb400fd7e8fba573d14","external_id":"forgejo-main-0d73748473ce","receipt_type":"canonical_release_status","idempotency_key":"mission:6adc83f0-2c6a-4d1f-bba0-d0a01753ce67:forgejo-release-status:0d73748473ce376232fafcb400fd7e8fba573d14:pending:forgejo-main/source=success|forgejo-release/workflow=pending|cc-execution/runtime-proof=pending|supabase-edge-production/live=pending","mission_step_id":"06fa0fd1-5d08-4d4e-a7e8-3aead3e5e34c","command_center_event_id":"6adc83f0-2c6a-4d1f-bba0-d0a01753ce67"},{"id":"1205f8c8-4b3c-4fc7-a3b6-679048a0e249","source":"forgejo","status":"waiting","payload":{"branch":"ai/curri-premium-route-family-20260905","prNumber":1802,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"8b47213df4eaa53990dc6080605a4b57430afb52","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"90ed5bf4-8abd-4d3a-af7c-024664b5b99d","created_at":"2026-09-05T10:00:25.817055+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"8b47213df4eaa53990dc6080605a4b57430afb52","external_id":"1802","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:231be83c-3e79-40d0-86aa-760235496b6b:merged-pr:1802:8b47213df4eaa53990dc6080605a4b57430afb52","mission_step_id":"a2156061-0f7f-4490-933e-0399e200e8d8","command_center_event_id":"231be83c-3e79-40d0-86aa-760235496b6b"},{"id":"1205fb21-1936-496f-b17e-fbdd1b647d94","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"pending","forgejo-release/workflow":"success","frontend-cloudflare/live":"success"},"mainSha":"8e3a47d7cde8a16cbf17ba106182c356d688f151","missing":[],"pending":["forgejo-main/source"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"620fc2fc2293c9b9c8ae55c737d40c65fed9fcf4","releaseState":"pending","sourceInMain":false,"compareStatus":null,"forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/422","runId":422,"status":"success","conclusion":null,"failedJobs":[]},"ccExecutionRuntimeProof":null},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-15T17:28:38.736833+00:00","proof_gate":"canonical_release_pending","source_sha":"620fc2fc2293c9b9c8ae55c737d40c65fed9fcf4","external_id":"forgejo-main-620fc2fc2293","receipt_type":"canonical_release_status","idempotency_key":"mission:f387f211-1531-4ed9-a56a-7255d2321566:forgejo-release-status:620fc2fc2293c9b9c8ae55c737d40c65fed9fcf4:pending:forgejo-main/source=pending|forgejo-release/workflow=success|frontend-cloudflare/live=success","mission_step_id":"e9a4e687-ec0a-4ff1-a2c0-cfa53c190c36","command_center_event_id":"f387f211-1531-4ed9-a56a-7255d2321566"},{"id":"1207030e-b78c-4234-a1f7-4232214dbfda","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":"bf1001f2166a3aae411cc592e8509a4cf575e56f","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","supabase-edge-production/live","frontend-cloudflare/live"],"sourceSha":"bf1001f2166a3aae411cc592e8509a4cf575e56f","releaseState":"verified","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"migrations":false,"ccExecution":false,"supabaseEdge":true,"edgeFunctionSlugs":["tenant-provider-connections"]},"releaseTargetStates":{"frontend":"success","supabaseEdge":"success"},"requestContractHash":"6900196588f110031a6f4ba273253c8e829284bbd4e6d4c899f9f34dc837e685","forgejoWorkflowProof":{"runId":14331,"source":"signed_push_receipt","status":"success","results":{},"conclusion":"success","targetStates":{"frontend":"success","supabaseEdge":"success"},"targetJobCount":7,"observedTargetStates":{"frontend":"success","supabaseEdge":"success"}},"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T14:44:39.74068+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"bf1001f2166a3aae411cc592e8509a4cf575e56f","external_id":"forgejo-main-bf1001f2166a","receipt_type":"canonical_release_status","idempotency_key":"mission:c57271a2-40ac-4ba4-8938-54b7d36abed6:forgejo-release-status:bf1001f2166a3aae411cc592e8509a4cf575e56f:verified:forgejo-main/source=success|forgejo-release/workflow=success|supabase-edge-production/live=success|frontend-cloudflare/live=success","mission_step_id":"dd581724-9b5d-48e2-9e76-def01717e90a","command_center_event_id":"c57271a2-40ac-4ba4-8938-54b7d36abed6"},{"id":"1207c75a-84c9-486c-a58d-a48d73428f64","source":"cc-execution","status":"no_change","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/harden-control-plane-idempotency-reconciliation-20260824","reason":null,"status":"no_change","metrics":{"receiptBytes":15805,"releaseCount":1,"toolCallCount":14,"repeatedCallCount":5,"ownerInterruptionCount":0},"version":"1.50.20-idempotent-reconciliation-hygiene","prNumber":675,"terminal":true,"missionId":"34b7ef02-dcaf-42c1-bcb7-38cc3baab0dc","operation":"execute_mission","proofGate":"repair_mission_no_change_verified","sourceSha":"29e6b34f82286cb434cfef8cbfda67b35d16900a","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"34b7ef02-dcaf-42c1-bcb7-38cc3baab0dc"},"performance":null,"deploymentId":"forgejo-main-29e6b34f8228","workflowRunId":2399,"releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":4890,"ownerActionRequired":false,"ownerFacingTerminal":true,"continuationRequired":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-24T17:51:59.570386+00:00","proof_gate":"repair_mission_no_change_verified","source_sha":"29e6b34f82286cb434cfef8cbfda67b35d16900a","external_id":"forgejo-main-29e6b34f8228","receipt_type":"execute_mission","idempotency_key":"mission:34b7ef02-dcaf-42c1-bcb7-38cc3baab0dc:execute_mission:repair_mission_no_change_verified","mission_step_id":"e84ec207-7463-4d38-8a7d-0ef701d5b8ab","command_center_event_id":"34b7ef02-dcaf-42c1-bcb7-38cc3baab0dc"},{"id":"120ab4a8-707f-49a9-8b5a-86d61fcfbdde","source":"github-status","status":"failed","payload":{"failed":["canonical-production-release/verified"],"states":{"canonical-production-release/verified":"failure"},"missing":["supabase-edge-production/live"],"pending":[],"required":["canonical-production-release/verified","supabase-edge-production/live"],"sourceSha":"0a735d08f6865c4353420156ede9b28a948f0823","releaseState":"failed","exactConductorRun":{"id":31348415771,"status":"completed","headSha":"0a735d08f6865c4353420156ede9b28a948f0823","conclusion":"failure","compareStatus":"identical","sourceMatches":true,"containsSourceSha":true,"reconciliationMode":null},"ccExecutionRuntimeProof":null},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-10T01:58:40.47182+00:00","proof_gate":"canonical_release_terminal_failed","source_sha":"0a735d08f6865c4353420156ede9b28a948f0823","external_id":"canonical-release-0a735d08f686","receipt_type":"canonical_release_status","idempotency_key":"mission:e33d87a9-6a95-4811-a01c-090ab48faf09:release-status:0a735d08f6865c4353420156ede9b28a948f0823:31348415771:failed:canonical-production-release/verified=failure|supabase-edge-production/live=missing","mission_step_id":"eee19cf8-380b-4203-9909-084cd7fc4321","command_center_event_id":"e33d87a9-6a95-4811-a01c-090ab48faf09"},{"id":"120b1ec3-d79e-4d94-a836-d4e6e592f851","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[{"path":"scripts/cloudflare-native-version-deploy.test.mjs","content":"import assert from 'node:assert/strict';\nimport test from 'node:test';\nimport { wranglerEnvironment } from './cloudflare-native-version-deploy.mjs';\n\ntest('wrangler environment strips Sentry credentials but preserves Cloudflare release env', () => {\n  const previous = { ...process.env };\n  try {\n    process.env.SENTRY_AUTH_TOKEN = 'invalid-token';\n    process.env.SENTRY_ORG = 'example-org';\n    process.env.SENTRY_PROJECT = 'example-project';\n    process.env.CLOUDFLARE_API_TOKEN = 'cf-token';\n    process.env.REQUESTED_SOURCE_SHA = 'a'.repeat(40);\n    const env = wranglerEnvironment({ EXTRA_RELEASE_FLAG: '1' });\n    assert.equal(env.SENTRY_AUTH_TOKEN, undefined);\n    assert.equal(env.SENTRY_ORG, undefined);\n    assert.equal(env.SENTRY_PROJECT, undefined);\n    assert.equal(env.CLOUDFLARE_API_TOKEN, 'cf-token');\n    assert.equal(env.REQUESTED_SOURCE_SHA, 'a'.repeat(40));\n    assert.equal(env.EXTRA_RELEASE_FLAG, '1');\n  } finally {\n    process.env = previous;\n  }\n});\n"}],"branch":"ai/objective-first-repair-73f945fb57c6","writes":[],"patches":[],"version":1,"approved":true,"missionId":"73f945fb-57c6-46fe-8eb5-3e243fc863f8","objective":"Repair the canonical frontend deploy helper so optional Sentry observability can never fail production deployment. Strip Sentry credential/config environment variables from every Wrangler subprocess while preserving all Cloudflare and release variables. This prevents invalid SENTRY_AUTH_TOKEN/SENTRY_ORG/SENTRY_PROJECT values from causing Wrangler/Sentry HTTP 401 failures. Emit a deterministic proof/warning receipt that Sentry env was isolated from Wrangler. Do not change application UI/content. Continue the existing mission/branch, open one PR, Gate, squash merge, and release current main.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["scripts/cloudflare-native-version-deploy.mjs"],"anchored_edits":[{"path":"scripts/cloudflare-native-version-deploy.mjs","edits":[{"new_content":"let resolvedWrangler = '';\n\nexport function wranglerEnvironment(extraEnv = {}) {\n  const env = { ...process.env, ...extraEnv };\n  for (const key of Object.keys(env)) {\n    if (/^SENTRY(?:_|$)/i.test(key)) delete env[key];\n  }\n  return env;\n}\n\nfunction sleepSync(milliseconds) {","old_content":"let resolvedWrangler = '';\n\nfunction sleepSync(milliseconds) {"},{"new_content":"    env: wranglerEnvironment(extraEnv),\n    timeout: WRANGLER_COMMAND_TIMEOUT_MS,","old_content":"    env: { ...process.env, ...extraEnv },\n    timeout: WRANGLER_COMMAND_TIMEOUT_MS,"},{"new_content":"    env: wranglerEnvironment(extraEnv),\n    timeout: WRANGLER_COMMAND_TIMEOUT_MS,\n    killSignal: 'SIGTERM',\n  });\n  exitOnTimeout(result, command, args);\n  if (result.error) throw result.error;\n  if (result.status !== 0) throw new Error(`wrangler_command_failed:${result.status ?? 1}:${args.join(' ')}`);","old_content":"    env: { ...process.env, ...extraEnv },\n    timeout: WRANGLER_COMMAND_TIMEOUT_MS,\n    killSignal: 'SIGTERM',\n  });\n  exitOnTimeout(result, command, args);\n  if (result.error) throw result.error;\n  if (result.status !== 0) throw new Error(`wrangler_command_failed:${result.status ?? 1}:${args.join(' ')}`);"},{"new_content":"async function releaseCandidate() {\n  console.log(JSON.stringify({ ok: true, proofGate: 'frontend_wrangler_sentry_env_isolated', strippedPrefixes: ['SENTRY'] }));\n  const expectedSourceSha = String(process.env.REQUESTED_SOURCE_SHA || process.env.GITHUB_SHA || '').trim().toLowerCase();","old_content":"async function releaseCandidate() {\n  const expectedSourceSha = String(process.env.REQUESTED_SOURCE_SHA || process.env.GITHUB_SHA || '').trim().toLowerCase();"}]}],"implementation":{"files":[],"writes":[]},"requestContract":null,"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":"73f945fb-57c6-46fe-8eb5-3e243fc863f8","ownerApproved":true,"releaseIntent":null,"sourceTargets":["scripts/cloudflare-native-version-deploy.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":"a69d69b35104873c3547432f4b0d43a36e832ede94a9e8b4f7d9dfaedc581645","replayCount":0,"serializedBytes":4518},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-24T17:01:33.874316+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:73f945fb-57c6-46fe-8eb5-3e243fc863f8:repository-mutation-intent:a69d69b35104873c3547432f4b0d43a36e832ede94a9e8b4f7d9dfaedc581645:0","mission_step_id":"4a0871a6-7710-48ed-8b6d-1fb1102ba787","command_center_event_id":"73f945fb-57c6-46fe-8eb5-3e243fc863f8"},{"id":"120c316a-600d-47ae-afdd-621585beaba0","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-b86d3a46eed0","reason":"anchored_edit_anchor_missing:config/paul-owner-profile.json","status":"blocked","metrics":{"receiptBytes":12277,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":0,"executorlessWaitMs":23876,"firstUsefulResultAt":"2026-10-02T21:39:13.631Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.52-paul-deep-critic","prNumber":null,"terminal":false,"missionId":"b86d3a46-eed0-4c7f-b7d3-503f87eb2191","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1295,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":1295,"missionSetupMs":250,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":250,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":250,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":250,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"b86d3a46-eed0-4c7f-b7d3-503f87eb2191"},"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":1500,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T21:39:14.715445+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:b86d3a46-eed0-4c7f-b7d3-503f87eb2191:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"bff2ec19-346c-48d2-bb34-99a6581eb2a9","command_center_event_id":"b86d3a46-eed0-4c7f-b7d3-503f87eb2191"},{"id":"120e7754-3999-4713-913b-feb2c9bd6a65","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/revert-wrong-experience-studio-polish-20260805","reason":"path/file validation failed","status":"blocked","metrics":{"receiptBytes":1135,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.30.16-controlled-merge-fallback-fix","prNumber":null,"terminal":false,"missionId":"a5bb4438-16c4-424a-ac94-80f663e17f38","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"a5bb4438-16c4-424a-ac94-80f663e17f38"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"onePullRequest":true,"terminalProofRequired":true},"sourceReceiptBytes":341,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-05T15:17:50.038868+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:a5bb4438-16c4-424a-ac94-80f663e17f38:execute_mission:repair_mission_execution_blocked","mission_step_id":"9b26feba-e911-48f9-8b05-b9d2e950071c","command_center_event_id":"a5bb4438-16c4-424a-ac94-80f663e17f38"},{"id":"120f39a5-175d-4b6c-820d-808f13eb8ac7","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"5f6a5b1ddcc48bebe6375b6c695917830ad79a89","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"merge","satisfied":true,"statement":"Squash merge exact green PR #2156 through protected main.","proofConditionIds":["release"]},{"id":"runtime","satisfied":true,"statement":"Release ccExecution and verify live runtime identity contains the merged repair.","proofConditionIds":["release","runtime"]}],"satisfied":true,"constraints":[{"id":"identity","satisfied":true,"statement":"Do not change source, branch, or PR identity.","proofConditionIds":["release"]}],"contractHash":"8845491274efd1639a1ad4d4c873d12d5f95fbcfd84537fc851150ee34e6c8f3","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"release","kind":"release","evidence":{"releaseState":"verified","activeReleaseTargets":["ccExecution"],"releaseRequestContractHash":"8845491274efd1639a1ad4d4c873d12d5f95fbcfd84537fc851150ee34e6c8f3"},"required":true,"satisfied":true},{"id":"runtime","kind":"runtime","evidence":{"releaseState":"verified","activeReleaseTargets":["ccExecution"],"releaseRequestContractHash":"8845491274efd1639a1ad4d4c873d12d5f95fbcfd84537fc851150ee34e6c8f3"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["ccExecution"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":4},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-08T19:11:08.030903+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"5f6a5b1ddcc48bebe6375b6c695917830ad79a89","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:d042c33f-a800-4242-9ac7-360e74f3c126:request-contract:8845491274efd1639a1ad4d4c873d12d5f95fbcfd84537fc851150ee34e6c8f3:5f6a5b1ddcc48bebe6375b6c695917830ad79a89:verified:","mission_step_id":"25b2660d-c6ae-4990-9e7c-94893f30bcbe","command_center_event_id":"d042c33f-a800-4242-9ac7-360e74f3c126"},{"id":"120f971f-0a35-418d-a180-9250dfa580a0","source":"cc-execution","status":"recorded","payload":{"objective":"From current Forgejo main, change only src/pages/RoofHelpLandingPage.tsx. Use the exact owner-supplied video https://pub-dff1261603f24e1cb9f9c24801e4a94b.r2.dev/ElevenLabs_Untitled_project.mp4 as a prominent cinematic hero video panel. Keep the current forest/mint/off-white colors unchanged. Make the layout more premium by separating the hero media from the intake form, adding a strong GET ROOF HELP hero CTA, and moving the existing request card into a polished follow-on section. Preserve all form fields, submission behavior, referral/UTM/IP flow, SEO routes, disclosures, logo, and backend endpoint. One fresh branch, one PR, KnockLaunch Gate, squash merge, frontend-only Cloudflare release, then claim-matched desktop/mobile visual proof. Do not modify any other file or system.","tenantRef":"c3f09b56-5ff5-4521-8a0a-39cbeb4b5275","receivedAt":"2026-08-28T04:58:49.685Z","fingerprint":"805f6c5e9e84ba497c6e95774937f5b56d40853f833ea204a8245be85285f891","workstreamRef":"c3f09b565ff545218a0a39cbeb4b5275","conversationId":null,"canonicalBranch":"ai/roofhelpfinder-video-premium-layout-20260828","requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"From current Forgejo main, change only src/pages/RoofHelpLandingPage.tsx. Use the exact owner-supplied video https://pub-dff1261603f24e1cb9f9c24801e4a94b.r2.dev/ElevenLabs_Untitled_project.mp4 as a prominent cinematic hero video panel. Keep the current forest/mint/off-white colors unchanged. Make the layout more premium by separating the hero media from the intake form, adding a strong GET ROOF HELP hero CTA, and moving the existing request card into a polished follow-on section. Preserve all form fields, submission behavior, referral/UTM/IP flow, SEO routes, disclosures, logo, and backend endpoint. One fresh branch, one PR, KnockLaunch Gate, squash merge, frontend-only Cloudflare release, then claim-matched desktop/mobile visual proof. Do not modify any other file or system.","wordingChanged":false,"canonicalIntent":"From current Forgejo main, change only src/pages/RoofHelpLandingPage.tsx. Use the exact owner-supplied video https://pub-dff1261603f24e1cb9f9c24801e4a94b.r2.dev/ElevenLabs_Untitled_project.mp4 as a prominent cinematic hero video panel. Keep the current forest/mint/off-white colors unchanged. Make the layout more premium by separating the hero media from the intake form, adding a strong GET ROOF HELP hero CTA, and moving the existing request card into a polished follow-on section. Preserve all form fields, submission behavior, referral/UTM/IP flow, SEO routes, disclosures, logo, and backend endpoint. One fresh branch, one PR, KnockLaunch Gate, squash merge, frontend-only Cloudflare release, then claim-matched desktop/mobile visual proof. Do not modify any other file or system.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"video","statement":"The supplied ElevenLabs MP4 is visibly integrated as a prominent cinematic hero video panel.","proofConditionIds":["source","runtime"]},{"id":"layout","statement":"The hero and intake are separated into a more premium hierarchy with a clear GET ROOF HELP CTA while preserving the existing forest/mint/off-white palette.","proofConditionIds":["source","runtime"]},{"id":"behavior","statement":"Existing Roof Help Finder intake, referral, attribution, SEO, logo, disclosures, and backend submission behavior remain intact.","proofConditionIds":["source","runtime"]}],"objective":"From current Forgejo main, change only src/pages/RoofHelpLandingPage.tsx. Use the exact owner-supplied video https://pub-dff1261603f24e1cb9f9c24801e4a94b.r2.dev/ElevenLabs_Untitled_project.mp4 as a prominent cinematic hero video panel. Keep the current forest/mint/off-white colors unchanged. Make the layout more premium by separating the hero media from the intake form, adding a strong GET ROOF HELP hero CTA, and moving the existing request card into a polished follow-on section. Preserve all form fields, submission behavior, referral/UTM/IP flow, SEO routes, disclosures, logo, and backend endpoint. One fresh branch, one PR, KnockLaunch Gate, squash merge, frontend-only Cloudflare release, then claim-matched desktop/mobile visual proof. Do not modify any other file or system.","constraints":[{"id":"one-file","statement":"Only src/pages/RoofHelpLandingPage.tsx changes.","proofConditionIds":["source"]},{"id":"palette","statement":"Do not replace the established dark forest, mint, and off-white palette with another color system.","proofConditionIds":["source","runtime"]},{"id":"no-backend","statement":"Do not modify backend, database, auth, routing infrastructure, QR engine, or control-plane code.","proofConditionIds":["source"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"source","kind":"repository","claim":"The exact PR diff changes only src/pages/RoofHelpLandingPage.tsx, includes the supplied MP4 URL, and preserves the existing form endpoint and payload fields.","route":"/palm-bay","required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"runtime","kind":"runtime","claim":"The released production /palm-bay page renders GET ROOF HELP and the existing request form after the video-layout change.","route":"/palm-bay","required":true,"expectedText":"GET ROOF HELP","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}],"validationErrors":[]},"requestedBranch":"ai/roofhelpfinder-video-premium-layout-20260828","conversationContext":null,"requestContractHash":"3952302e5610129b2fe5e9a9247c3de39f5c16ff4357c07ff25eb87c472389f4","requestContractRevision":1},"tenant_id":"c3f09b56-5ff5-4521-8a0a-39cbeb4b5275","created_at":"2026-08-28T04:58:50.450577+00:00","proof_gate":"tenant_workstream_contribution_recorded","source_sha":null,"external_id":null,"receipt_type":"tenant_workstream_contribution","idempotency_key":"mission:2b5d789a-516c-496a-8b37-bffc3fb0deee:tenant-workstream-contribution:805f6c5e9e84ba497c6e95774937f5b56d40853f833ea204a8245be85285f891","mission_step_id":null,"command_center_event_id":"2b5d789a-516c-496a-8b37-bffc3fb0deee"},{"id":"120fc8a9-7b56-41be-91b6-fae86c5b8ae7","source":"cc-execution","status":"authorized","payload":{"paths":[".forgejo/workflows/knocklaunch.yml",".forgejo/workflows/paul-hybrid-bootstrap.yml","scripts/visual-witness-hosted-runner/README.md","scripts/visual-witness-hosted-runner/virtual-witness-operating-contract.json","workers/cc-execution/src/index-visual-witness-resumable.js","workers/cc-execution/src/version.js","workers/cc-execution/test/release-orchestration-invariants.test.js"],"reason":"Owner explicitly authorized control-plane unfreeze and OnRunner removal; this fresh-main mutation includes all Gate companion contracts discovered from the failed conflicted PR.","baseSha":"c202059ce25993b281f38e92bd1b07d707e86673","issuedAt":1790459987743,"expiresAt":1790460167743,"missionId":"5ee3971f-3d22-47a8-8092-00408d14815e","authorizationId":"cd18924e-12f0-4ea4-bac4-874fbe2a75d4","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-26T21:59:48.035157+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"c202059ce25993b281f38e92bd1b07d707e86673","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:cd18924e-12f0-4ea4-bac4-874fbe2a75d4","mission_step_id":"7842c1bc-55e2-41be-808c-4e403cdfbb4c","command_center_event_id":"5ee3971f-3d22-47a8-8092-00408d14815e"},{"id":"12101c0b-cf64-4624-b0cf-4c66aef34e9e","source":"cc-execution","status":"source_resolution_required","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-156259ff7301","reason":null,"status":"source_resolution_required","metrics":{"receiptBytes":16935,"releaseCount":0,"toolCallCount":9,"repeatedCallCount":8,"executorlessWaitMs":369933,"firstUsefulResultAt":"2026-09-26T02:12:42.780Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.284-control-plane-source-fast-path","prNumber":null,"terminal":false,"missionId":"156259ff-7301-4e9b-be6f-cd290f63dd7d","operation":"execute_mission","proofGate":"repair_mission_source_resolution_required","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1130,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":276,"providerAuthMs":0,"ledgerPrepareMs":276,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":276,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":276,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Supply exact sourceTargets on the same mission; planner guesses cannot replace missing mission scope.","receiptRef":{"mode":"full","missionId":"156259ff-7301-4e9b-be6f-cd290f63dd7d"},"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":1176,"likelyAffectedFiles":[],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"766cfaa7-ac42-46c8-bbef-69d13268a29d","created_at":"2026-09-26T02:19:10.04567+00:00","proof_gate":"repair_mission_source_resolution_required","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:156259ff-7301-4e9b-be6f-cd290f63dd7d:execute_mission:repair_mission_source_resolution_required:current-generation","mission_step_id":"a737b463-f77c-47c9-bad7-4dca284cdfde","command_center_event_id":"156259ff-7301-4e9b-be6f-cd290f63dd7d"},{"id":"12103b59-c6c2-4920-b3d1-ae35ae56259a","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-e318e078d06c","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.182-witness-render-cold-start-aware","prNumber":null,"terminal":false,"missionId":"e318e078-d06c-4615-b595-d0245e558bd4","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":8,"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":"e318e078-d06c-4615-b595-d0245e558bd4"},"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":4866,"likelyAffectedFiles":["src/components/admin/AdminPage.tsx","src/pages/admin/AdminUsersPage.tsx","src/pages/admin/AdminTenantsPage.tsx","src/components/admin/IdentityAccessOperationsCenter.tsx","src/components/admin/TenantUserCommandCenters.tsx"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-18T15:15:17.744732+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:e318e078-d06c-4615-b595-d0245e558bd4:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"556dccbf-823a-4129-bf58-48a7aba8393f","command_center_event_id":"e318e078-d06c-4615-b595-d0245e558bd4"},{"id":"1210ae8a-c88c-4da7-b195-c3fd62ca8e4e","source":"onrunner","status":"failed","payload":{"ok":false,"jobId":"c71f9411-5561-44b6-9bdc-f45c2ab85e51","phase":"universal_visual_witness_poll_failed","branch":"ai/objective-first-repair-0a680ea028cd","reason":"application_shell_readiness_timeout:43500","status":"blocked","metrics":{"receiptBytes":199618,"releaseCount":0,"toolCallCount":31,"repeatedCallCount":12,"executorlessWaitMs":1082050,"firstUsefulResultAt":"2026-09-24T05:29:25.812Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3598,"terminal":true,"missionId":"0a680ea0-28cd-4751-b264-c7ac0f65951b","operation":"visual_proof_status","proofGate":"interactive_visual_witness_failed","sourceSha":"73e6e462c7a9cba64327b0c32c4926a3176a30da","timingsMs":{"queue":111152,"total":176556,"execution":65404},"nextAction":null,"receiptRef":{"mode":"full","missionId":"0a680ea0-28cd-4751-b264-c7ac0f65951b"},"performance":null,"deploymentId":"forgejo-main-73e6e462c7a9","releaseState":"verified","visualWitness":{"role":"GodMode","jobId":"c71f9411-5561-44b6-9bdc-f45c2ab85e51","tenant":null,"runnerUrl":"https://knocklaunchcrm.onrender.com","runnerLane":"primary","attemptsUsed":3,"supervisorId":"c71f9411-5561-44b6-9bdc-f45c2ab85e51","failureReason":"application_shell_readiness_timeout:43500","observedRoute":"/big-papis/owner","runnerVersion":"onrunner-666a1bc23410","attemptLineage":[{"jobId":"1379decb-c3fa-4c7a-8d65-d10717d3c6b5","attempt":1,"category":"transient_infrastructure","sourceSha":"666a1bc23410865196d34a9fca1b1a916365b964","startedAt":"2026-09-24T05:36:49.437Z","completedAt":"2026-09-24T05:38:02.228Z","runtimeLane":"cc-execution -> Render OnRunner -> universal-witness.mjs","browserEngine":"chromium","failureReason":"application_shell_readiness_timeout:43500","retryRecovery":{"completed":true,"fromEngine":"chromium","nextEngine":"firefox","recoveryMode":"engine_ladder","failureReason":"application_shell_readiness_timeout:43500","browserRecycled":true,"browserRestartScheduled":true},"runnerVersion":"onrunner-666a1bc23410","browserLaunchReason":"managed_display","checkpointAccounting":{"route":{"required":2,"completed":0,"missingIds":["desktop::/big-papis/owner","mobile::/big-papis/owner"]},"action":{"required":0,"completed":0,"missingIds":[]},"missing":4,"resumed":0,"complete":false,"evidence":{"required":2,"completed":0,"missingIds":["desktop::/big-papis/owner::evidence::preflight","mobile::/big-papis/owner::evidence::preflight"]},"completed":0,"remaining":4,"duplicates":0,"duplicateIds":[],"expectedTotal":4}},{"jobId":"3a0d2d5e-8fcc-4405-9208-c956a763c408","attempt":2,"category":"transient_infrastructure","sourceSha":"666a1bc23410865196d34a9fca1b1a916365b964","startedAt":"2026-09-24T05:38:07.336Z","completedAt":"2026-09-24T05:38:35.974Z","runtimeLane":"cc-execution -> Render OnRunner -> universal-witness.mjs","browserEngine":"firefox","failureReason":"browser_context_create_timeout:20000","retryRecovery":{"completed":true,"fromEngine":"firefox","nextEngine":"chromium","recoveryMode":"canonical_chromium_fresh_browser","failureReason":"browser_context_create_timeout:20000","browserRecycled":true,"browserRestartScheduled":true},"runnerVersion":"onrunner-666a1bc23410","browserLaunchReason":"transient_renderer_firefox_retry","checkpointAccounting":{"route":{"required":2,"completed":0,"missingIds":["desktop::/big-papis/owner","mobile::/big-papis/owner"]},"action":{"required":0,"completed":0,"missingIds":[]},"missing":4,"resumed":0,"complete":false,"evidence":{"required":2,"completed":0,"missingIds":["desktop::/big-papis/owner::evidence::preflight","mobile::/big-papis/owner::evidence::preflight"]},"completed":0,"remaining":4,"duplicates":0,"duplicateIds":[],"expectedTotal":4}},{"jobId":"c82a70a4-359a-43b7-93b2-134ab5d08c3b","attempt":3,"category":"transient_infrastructure","sourceSha":"666a1bc23410865196d34a9fca1b1a916365b964","startedAt":"2026-09-24T05:38:39.924Z","completedAt":"2026-09-24T05:39:46.520Z","runtimeLane":"cc-execution -> Render OnRunner -> universal-witness.mjs","browserEngine":"webkit","failureReason":"application_shell_readiness_timeout:43500","retryRecovery":null,"runnerVersion":"onrunner-666a1bc23410","browserLaunchReason":"transient_renderer_webkit_retry","checkpointAccounting":{"route":{"required":2,"completed":0,"missingIds":["desktop::/big-papis/owner","mobile::/big-papis/owner"]},"action":{"required":0,"completed":0,"missingIds":[]},"missing":4,"resumed":0,"complete":false,"evidence":{"required":2,"completed":0,"missingIds":["desktop::/big-papis/owner::evidence::preflight","mobile::/big-papis/owner::evidence::preflight"]},"completed":0,"remaining":4,"duplicates":0,"duplicateIds":[],"expectedTotal":4}}],"missionOutcome":"transient_infrastructure","requestedRoute":"/big-papis/owner","runnerSourceSha":"666a1bc23410865196d34a9fca1b1a916365b964","selectedViewports":["desktop","mobile"],"checkpointAccounting":{"route":{"required":2,"completed":0,"missingIds":["desktop::/big-papis/owner","mobile::/big-papis/owner"]},"action":{"required":0,"completed":0,"missingIds":[]},"missing":4,"resumed":0,"complete":false,"evidence":{"required":2,"completed":0,"missingIds":["desktop::/big-papis/owner::evidence::preflight","mobile::/big-papis/owner::evidence::preflight"]},"completed":0,"remaining":4,"duplicates":0,"duplicateIds":[],"expectedTotal":4},"correctiveGeneration":0,"restartReplayHistory":[]},"workflowRunId":11438,"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":6518,"ownerActionRequired":false,"ownerFacingTerminal":false,"requestContractHash":"767ffeda39cbbd7026179b97e8fe00a8855624f34e7d1bf6a63a1b782c7860ac","continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-24T05:47:29.105135+00:00","proof_gate":"interactive_visual_witness_failed","source_sha":"onrunner-666a1bc23410","external_id":"c71f9411-5561-44b6-9bdc-f45c2ab85e51","receipt_type":"visual_proof_status","idempotency_key":"mission:0a680ea0-28cd-4751-b264-c7ac0f65951b:visual:c71f9411-5561-44b6-9bdc-f45c2ab85e51:failed","mission_step_id":"bc1c9699-c3b7-4421-8408-5db65a339b97","command_center_event_id":"0a680ea0-28cd-4751-b264-c7ac0f65951b"},{"id":"12145b5a-abf5-4ee5-9631-f9f6f26a5fbe","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"9007a6ba7e3d19e704ee649aa8d44be91008c521","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"9007a6ba7e3d19e704ee649aa8d44be91008c521","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":"8e241fadd696a2d236ca19aac8793b5baed160b5399925aea69a5cd56ed526af","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/8122","runId":8122,"status":"running","sourceSha":"9007a6ba7e3d19e704ee649aa8d44be91008c521","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-14T13:54:53.661923+00:00","proof_gate":"canonical_release_pending","source_sha":"9007a6ba7e3d19e704ee649aa8d44be91008c521","external_id":"forgejo-main-9007a6ba7e3d","receipt_type":"canonical_release_status","idempotency_key":"mission:2bbb1c80-379d-46d3-a9a4-231f09f109af:forgejo-release-status:9007a6ba7e3d19e704ee649aa8d44be91008c521:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"c5db4568-3761-42a8-ba59-9c71423c092b","command_center_event_id":"2bbb1c80-379d-46d3-a9a4-231f09f109af"},{"id":"12165536-977d-439f-90a5-6e89fa23b5ce","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\":\"canonical_release_status\",\"status\":\"pending\",\"proofGate\":\"canonical_release_pending\"},\"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},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_release\",\"recoveryOwner\":\"production-release-conductor\"},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"release\",\"deadlineAt\":\"2026-10-04T13:08:49.474171+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/objective-first-repair-695431d3459e\",\"prNumber\":4727,\"sourceSha\":\"ddc091e0e2e4e5ac32a90843749342cd2ad43115\",\"deploymentId\":\"forgejo-main-ddc091e0e2e4\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-04T10:11:24.380835+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:695431d3-459e-434c-bf9e-ba302beffcfb:owner-progress-heartbeat:119407245","mission_step_id":"c2fd380a-9545-4603-9a61-31375d3c3632","command_center_event_id":"695431d3-459e-434c-bf9e-ba302beffcfb"},{"id":"12171b07-09be-4e08-96a9-529ba507e38a","source":"cc-execution","status":"verified","payload":{"paths":["workers/cc-execution/src/index-mcp.js","workers/cc-execution/test/release-orchestration-invariants.test.js"],"baseSha":"2bb83a045d621f5821eb580ec887769d2ef9166b","consumedAt":1788477655962,"consumerToken":"1816bd95-9efc-4a4b-9d2c-b33af2a0fdbd","authorizationId":"1dcc1599-9fc6-4174-a663-ae6035bb1a37"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-03T23:20:56.935899+00:00","proof_gate":"control_plane_maintenance_single_use_consumed","source_sha":"2bb83a045d621f5821eb580ec887769d2ef9166b","external_id":null,"receipt_type":"control_plane_maintenance_consumed","idempotency_key":"control-plane-maintenance-consume:1dcc1599-9fc6-4174-a663-ae6035bb1a37","mission_step_id":"be4f1e6f-bc3a-4d53-840c-beccf5b6ec1e","command_center_event_id":"ea00d215-89e5-472b-a482-a39753c72582"},{"id":"1217e78d-c762-4291-b281-0b2f7d5233cb","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"19be021c797ba45a03462836c81823c28b09ba7c","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"19be021c797ba45a03462836c81823c28b09ba7c","releaseState":"pending","sourceInMain":true,"compareStatus":"identical","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/1240","runId":1240,"status":"running","conclusion":null,"failedJobs":[],"diagnostics":null},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-18T15:12:57.310506+00:00","proof_gate":"canonical_release_pending","source_sha":"19be021c797ba45a03462836c81823c28b09ba7c","external_id":"forgejo-main-19be021c797b","receipt_type":"canonical_release_status","idempotency_key":"mission:656e0251-0449-426d-bada-68478d9eb00a:forgejo-release-status:19be021c797ba45a03462836c81823c28b09ba7c:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"03c9692f-6b7c-4b71-830a-63848d0ab008","command_center_event_id":"656e0251-0449-426d-bada-68478d9eb00a"},{"id":"12185323-441b-4319-bbeb-a30a95895595","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-b3b2f94edb9c","writes":[],"patches":[],"version":1,"approved":true,"missionId":"b3b2f94e-db9c-4526-8575-aea80e200751","objective":"Follow-up PAUL connection-research receipt cleanup on current main 9a0eae2764a1f2a9828d388b36444b878cff2991. Humanize structured unknowns, de-duplicate the targeted regression, bump to 1.64.46, ship only cc-execution, and verify live output remains fail-closed.","sourceSha":"9a0eae2764a1f2a9828d388b36444b878cff2991","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":[],"anchored_edits":[{"path":"workers/cc-execution/src/paul-connection-research.js","new_content":"function cleanListValue(value, max = 2000) {\n  if (value === null || value === undefined) return \"\";\n  if (typeof value !== \"object\") return clean(value, max);\n  if (Array.isArray(value)) return clean(value.map((item) => cleanListValue(item, 500)).filter(Boolean).join(\"; \"), max);\n  const subject = cleanListValue(value.parameter ?? value.field ?? value.key ?? value.name ?? value.capability ?? value.topic, 240);\n  const explanation = cleanListValue(value.explanation ?? value.reason ?? value.detail ?? value.message ?? value.note ?? value.description, 900);\n  if (subject && explanation) return clean(`${subject} — ${explanation}`, max);\n  if (subject) return clean(subject, max);\n  if (explanation) return clean(explanation, max);\n  if (Object.prototype.hasOwnProperty.call(value, \"value\")) return cleanListValue(value.value, max);\n  const pairs = Object.entries(value).sort(([left], [right]) => left.localeCompare(right)).map(([key, item]) => {\n    const text = cleanListValue(item, 500);\n    return text ? `${key}: ${text}` : \"\";\n  }).filter(Boolean);\n  return clean(pairs.join(\" | \"), max);\n}","old_content":"function cleanListValue(value, max = 2000) {\n  if (value === null || value === undefined) return \"\";\n  if (typeof value !== \"object\") return clean(value, max);\n  if (Array.isArray(value)) {\n    return clean(value.map((item) => cleanListValue(item, 500)).filter(Boolean).join(\"; \"), max);\n  }\n  const preferredKeys = [\"field\", \"key\", \"name\", \"capability\", \"topic\", \"reason\", \"detail\", \"message\", \"note\", \"description\", \"value\"];\n  const preferred = preferredKeys\n    .filter((key) => Object.prototype.hasOwnProperty.call(value, key))\n    .map((key) => {\n      const text = cleanListValue(value[key], 500);\n      return text ? `${key}: ${text}` : \"\";\n    })\n    .filter(Boolean);\n  if (preferred.length) return clean(preferred.join(\" | \"), max);\n  try {\n    const ordered = Object.fromEntries(Object.entries(value).sort(([left], [right]) => left.localeCompare(right)));\n    return clean(JSON.stringify(ordered), max);\n  } catch {\n    return \"\";\n  }\n}"},{"path":"workers/cc-execution/test/paul-connection-research.test.js","new_content":"test(\"structured unknowns are normalized to concise human-readable text\", () => {\n  const candidate = draft({\n    unknowns: [\n      { field: \"writeObjects\", reason: \"No explicit write permission evidence\" },\n      { capability: \"oauthScopes\", detail: \"Scope list remains incomplete\" },\n      { parameter: \"rate_limits\", explanation: \"No API quota evidence was found\" },\n    ],\n  });\n  const contract = compileProviderConnectionContract({ provider: \"Example CRM\", websiteHint: \"https://developers.example.com/\", sources, draft: candidate, observedAt });\n  const serialized = JSON.stringify(contract);\n  assert.equal(serialized.includes(\"[object Object]\"), false);\n  assert.equal(serialized.includes('{\\\"parameter\\\"'), false);\n  assert.ok(contract.unknowns.includes(\"writeObjects — No explicit write permission evidence\"));\n  assert.ok(contract.unknowns.includes(\"oauthScopes — Scope list remains incomplete\"));\n  assert.ok(contract.unknowns.includes(\"rate_limits — No API quota evidence was found\"));\n  assert.equal(contract.activation.writeActivation, \"blocked\");\n  assert.ok(contract.activation.blockingReasons.some((reason) => reason.includes(\"writeObjects\")));\n});","old_content":"test(\"structured unknowns are normalized to readable text instead of object coercion\", () => {\n  const candidate = draft({\n    unknowns: [\n      { field: \"writeObjects\", reason: \"No explicit write permission evidence\" },\n      { capability: \"oauthScopes\", detail: \"Scope list remains incomplete\" },\n    ],\n  });\n  const contract = compileProviderConnectionContract({ provider: \"Example CRM\", websiteHint: \"https://developers.example.com/\", sources, draft: candidate, observedAt });\n  assert.equal(JSON.stringify(contract).includes(\"[object Object]\"), false);\n  assert.ok(contract.unknowns.includes(\"field: writeObjects | reason: No explicit write permission evidence\"));\n  assert.ok(contract.unknowns.includes(\"capability: oauthScopes | detail: Scope list remains incomplete\"));\n  assert.equal(contract.activation.writeActivation, \"blocked\");\n  assert.ok(contract.activation.blockingReasons.some((reason) => reason.includes(\"writeObjects\")));\n});\n\ntest(\"structured unknowns are normalized to readable text instead of object coercion\", () => {\n  const candidate = draft({\n    unknowns: [\n      { field: \"writeObjects\", reason: \"No explicit write permission evidence\" },\n      { capability: \"oauthScopes\", detail: \"Scope list remains incomplete\" },\n    ],\n  });\n  const contract = compileProviderConnectionContract({ provider: \"Example CRM\", websiteHint: \"https://developers.example.com/\", sources, draft: candidate, observedAt });\n  assert.equal(JSON.stringify(contract).includes(\"[object Object]\"), false);\n  assert.ok(contract.unknowns.includes(\"field: writeObjects | reason: No explicit write permission evidence\"));\n  assert.ok(contract.unknowns.includes(\"capability: oauthScopes | detail: Scope list remains incomplete\"));\n  assert.equal(contract.activation.writeActivation, \"blocked\");\n  assert.ok(contract.activation.blockingReasons.some((reason) => reason.includes(\"writeObjects\")));\n});"},{"path":"workers/cc-execution/src/version.js","new_content":"export const CC_EXECUTION_VERSION = \"1.64.46-connection-research-human-readable-unknowns\";","old_content":"export const CC_EXECUTION_VERSION = \"1.64.45-connection-research-readable-normalization\";"}],"implementation":{"files":[],"writes":[]},"requestContract":null,"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":"b3b2f94e-db9c-4526-8575-aea80e200751","ownerApproved":true,"releaseIntent":null,"sourceTargets":[],"requestContract":null,"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":["workers/cc-execution/src/paul-connection-research.js","workers/cc-execution/src/version.js","workers/cc-execution/test/paul-connection-research.test.js"],"controlPlaneMaintenanceReason":"Owner requested final human-readable cleanup of PAUL connection-research receipts; limit maintenance to the formatter, targeted test, and version marker."},"proofRequirements":null,"controlPlaneUnfreeze":true,"durableMutationResume":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":["workers/cc-execution/src/paul-connection-research.js","workers/cc-execution/src/version.js","workers/cc-execution/test/paul-connection-research.test.js"],"controlPlaneMaintenanceReason":"Owner requested final human-readable cleanup of PAUL connection-research receipts; limit maintenance to the formatter, targeted test, and version marker."},"recovery":false,"fingerprint":"2b491c13ddddf771fa80f57ab4cac0d63f6b514e76d636e15a62b55b63bf4387","replayCount":0,"serializedBytes":7671},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T00:51:49.638945+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:b3b2f94e-db9c-4526-8575-aea80e200751:repository-mutation-intent:2b491c13ddddf771fa80f57ab4cac0d63f6b514e76d636e15a62b55b63bf4387:0","mission_step_id":"9763d553-d167-4b7c-823a-2fcbe36821ce","command_center_event_id":"b3b2f94e-db9c-4526-8575-aea80e200751"},{"id":"12193d2e-15a1-47b9-a812-efd997f88ddd","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\":\"owner_progress_heartbeat\",\"status\":\"waiting\",\"proofGate\":\"owner_progress_heartbeat\"},\"activeStep\":{\"key\":\"implementation\",\"status\":\"waiting\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"pull_request\",\"status\":\"waiting\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"reconcile_release\",\"lane\":\"production-release-conductor\",\"reason\":\"merged_source_requires_release_proof\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_release\",\"recoveryOwner\":\"production-release-conductor\"},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"visual_proof\",\"deadlineAt\":\"2026-10-06T08:33:13.056202+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":null,\"prNumber\":5163,\"sourceSha\":\"d059e784c8fb33ceeb0e36baec00e818ef3753e8\",\"deploymentId\":\"forgejo-main-d059e784c8fb\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T07:02:24.584251+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:6cd825d0-ddfe-4532-8e8e-5f72704f5be5:owner-progress-heartbeat:119418009","mission_step_id":"8f1c0a7d-df5b-4529-9b5e-b41c824b98db","command_center_event_id":"6cd825d0-ddfe-4532-8e8e-5f72704f5be5"},{"id":"1219e54d-0239-4afe-bd0c-40e2839c408e","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"release","branch":null,"reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":1156,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.46.8-intent-aware-objectives","prNumber":145,"terminal":false,"missionId":"7bf66c94-f306-402f-9b62-f29727054c5d","operation":"ship_and_prove","proofGate":"canonical_release_dispatched","sourceSha":"8c14f5cc400fa76e36ee0b1a0487931ea41f5d86","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"7bf66c94-f306-402f-9b62-f29727054c5d"},"performance":null,"deploymentId":"forgejo-main-8c14f5cc400f","workflowRunId":null,"releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3729,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-15T17:17:45.617922+00:00","proof_gate":"canonical_release_dispatched","source_sha":"8c14f5cc400fa76e36ee0b1a0487931ea41f5d86","external_id":"forgejo-main-8c14f5cc400f","receipt_type":"ship_and_prove","idempotency_key":"mission:7bf66c94-f306-402f-9b62-f29727054c5d:ship_and_prove:canonical_release_dispatched:8c14f5cc400fa76e36ee0b1a0487931ea41f5d86:no-run","mission_step_id":"770dc1e2-e3f1-4e21-8698-4cbc265da811","command_center_event_id":"7bf66c94-f306-402f-9b62-f29727054c5d"},{"id":"121c2ebe-fbb8-483f-b17f-e811ffb69563","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[{"path":"src/pages/card-grading/PCGModesWorkspace.tsx","content":"import React from 'react';\n// PCG owner-requested MODES restore anchor: preserves the known-good pre-redesign presentation.\nimport {ArrowLeft,ArrowRight,Boxes,CheckCircle2,ClipboardCheck,Clock3,CreditCard,Database,Images,Settings,Truck,Users} from 'lucide-react';\nimport {useLocation,useNavigate} from 'react-router-dom';\nimport PcgWorkspace from '@/pages/crm/PcgWorkspace';\nimport {useMultiTenant} from '@/contexts/MultiTenantContext';\nimport PCGCompletionCenter from '@/pages/card-grading/PCGCompletionCenter';\nimport TenantLogo from '@/components/branding/TenantLogo';\nimport MiscAwareAccountMenu from '@/components/MiscAwareAccountMenu';\nimport {CanonicalWorkspaceSidebarTrigger} from '@/components/layout/TenantLayoutControl';\nimport {supabase} from '@/integrations/supabase/client';\nimport {PCG_WORKSPACE_BACKGROUND} from '@/assets/pcgWorkspaceBackground';\nimport {resolveTenantMediaBranding} from '@/lib/tenants/tenantMediaBranding';\nimport {tenantMediaAssetUrl} from '@/lib/tenantMedia';\nimport {getTenantModeCards} from '@/shells/modesTenantShell';\n\ntype ModeId='submissions'|'grading'|'listings'|'orders';\ntype WorkspaceTab='today'|'vault'|'queue'|'submissions'|'certs'|'collectors'|'inventory'|'shipping'|'money'|'migration'|'readiness'|'settings';\ntype VaultMode='overview'|'single'|'batch'|'growth';\ntype ModeCounts={submissions:number;grading:number;listings:number;orders:number};\ntype UnknownRecord=Record<string,any>;\n\nfunction record(value:unknown):UnknownRecord{return value&&typeof value==='object'&&!Array.isArray(value)?value as UnknownRecord:{}}\nfunction resolvePcgHeroImage(tenant:any):string{\n  const settings=record(tenant?.settings);\n  const media=record(settings.media_branding);\n  const direct=String(media.hero_background_url||'').trim();\n  const assetId=String(media.resolved_hero_asset_id||media.hero_background_asset_id||'').trim();\n  const version=String(media.resolved_hero_version||media.hero_background_version||media.updated_at||'').trim();\n  return assetId?tenantMediaAssetUrl(assetId,version||null):direct;\n}\n\nconst MODE_TAB:Record<ModeId,WorkspaceTab>={submissions:'submissions',grading:'queue',listings:'inventory',orders:'shipping'};\nconst MODE_TOOLS:Record<ModeId,readonly {id:WorkspaceTab;label:string;vault?:VaultMode}[]>={\n  submissions:[{id:'submissions',label:'Receive Cards'},{id:'vault',label:'Capture Cards'},{id:'collectors',label:'Customers'}],\n  grading:[{id:'queue',label:'Grade Cards'},{id:'certs',label:'Certificates'}],\n  listings:[],\n  orders:[{id:'shipping',label:'Fulfill & Ship'}]\n};\nconst ADMIN_TOOLS=[{id:'settings' as WorkspaceTab,label:'Settings',icon:Settings},{id:'money' as WorkspaceTab,label:'Payments',icon:CreditCard},{id:'readiness' as WorkspaceTab,label:'Readiness',icon:ClipboardCheck},{id:'migration' as WorkspaceTab,label:'Migration',icon:Database}] as const;\nconst ADMIN_TOOL_IDS=new Set<WorkspaceTab>(ADMIN_TOOLS.map(item=>item.id));\nconst TOOL_LABEL:Record<WorkspaceTab,string>={today:'Work Queue',vault:'Capture Cards',queue:'Grade Cards',submissions:'Receive Cards',certs:'Certificates',collectors:'Customers',inventory:'Publish & Sell',shipping:'Fulfill & Ship',money:'Payments',migration:'Migration',readiness:'Readiness',settings:'Settings'};\nconst PCG_CARD_IMAGE='https://images.squarespace-cdn.com/content/v1/6853034cd711cc2240276cf3/7fd5d898-1ff3-4bc2-9f7d-c7f2f2d6ee07/IMG_8111.jpg';\nconst PCG_STORE_IMAGE='https://images.squarespace-cdn.com/content/v1/6853034cd711cc2240276cf3/83d3ec70-169f-4d22-8916-15e422fb0e52/IMG_8156%2B%281%29.jpeg';\nconst MODES=[\n  {id:'submissions' as ModeId,assetKey:'received',title:'Receive Cards',short:'To Receive',copy:'Start here when cards arrive. Add the customer, capture the cards and begin the submission.',icon:Images,accent:'#168cff',image:PCG_CARD_IMAGE,position:'38% 45%'},\n  {id:'grading' as ModeId,assetKey:'grading',title:'Grade Cards',short:'To Grade',copy:'Open the grading queue, score cards, assign certificates and clear QA.',icon:Clock3,accent:'#a83cff',image:PCG_WORKSPACE_BACKGROUND,position:'68% 52%'},\n  {id:'listings' as ModeId,assetKey:'completed',title:'Publish & Sell',short:'Ready to Publish',copy:'Finish completed cards, approve sale pricing and publish to the PCG website and eBay.',icon:CheckCircle2,accent:'#00e676',image:PCG_CARD_IMAGE,position:'62% 48%'},\n  {id:'orders' as ModeId,assetKey:'mailed',title:'Fulfill & Ship',short:'To Fulfill',copy:'Handle completed returns, pickups, tracking and customer shipment updates.',icon:Truck,accent:'#ffd740',image:PCG_STORE_IMAGE,position:'76% 58%'},\n] as const;\n\nconst PCGBatchPublishingCenter=React.lazy(()=>import('@/pages/card-grading/PCGBatchPublishingCenter'));\n\nfunction isModeId(value:string|null):value is ModeId{return MODES.some(item=>item.id===value)}\nfunction isWorkspaceTab(value:string|null):value is WorkspaceTab{return Boolean(value)&&['today','vault','queue','submissions','certs','collectors','inventory','shipping','money','migration','readiness','settings'].includes(value as WorkspaceTab)}\nfunction bucket(status:string):ModeId|null{\n  if(['received','intake_imaging','authentication'].includes(status))return'submissions';\n  if(['grading','encapsulation','qa'].includes(status))return'grading';\n  if(status==='ready')return'listings';\n  if(['shipped','picked_up','delivered','closed'].includes(status))return'orders';\n  return null;\n}\n\nexport default function PCGModesWorkspace(){\n  const{activeTenant}=useMultiTenant();\n  const location=useLocation();\n  const navigate=useNavigate();\n  const tenantId=activeTenant?.id||'';\n  const slug=String(activeTenant?.company_slug||'pcg').trim().toLowerCase()||'pcg';\n  const wmpUrl='https://whatsmyprogress.com/'+encodeURIComponent(slug)+'/';\n  const branding=React.useMemo(()=>resolveTenantMediaBranding(activeTenant as any),[activeTenant]);\n  const workspaceBackground=branding.backgroundUrl||PCG_WORKSPACE_BACKGROUND;\n  const heroImage=React.useMemo(()=>resolvePcgHeroImage(activeTenant)||workspaceBackground,[activeTenant,workspaceBackground]);\n  const configuredModeCards=React.useMemo(()=>getTenantModeCards(activeTenant as any),[activeTenant]);\n  const modes=React.useMemo(()=>MODES.map((entry)=>{\n    const configured=configuredModeCards.find((card)=>card.key===entry.assetKey);\n    const x=configured?.image_position_x;\n    const y=configured?.image_position_y;\n    const assetId=String(configured?.image_asset_id||'').trim();\n    const image=assetId?tenantMediaAssetUrl(assetId):String(configured?.image_url||configured?.fallback_image_url||entry.image);\n    return {...entry,image,position:typeof x==='number'&&typeof y==='number'?`${x}% ${y}%`:entry.position};\n  }),[configuredModeCards]);\n  const searchParams=new URLSearchParams(location.search);\n  const requestedMode=searchParams.get('mode');\n  const requestedTool=searchParams.get('tool');\n  const requestedVault=searchParams.get('vault');\n  const requestedSubmissionId=searchParams.get('submissionId')||'';\n  const mode=isModeId(requestedMode)?requestedMode:null;\n  const tool=isWorkspaceTab(requestedTool)?requestedTool:null;\n  const adminTool=!mode&&tool&&ADMIN_TOOL_IDS.has(tool)?tool:null;\n  const vaultMode:VaultMode=requestedVault==='batch'?'batch':requestedVault==='single'?'single':requestedVault==='growth'?'growth':'overview';\n  const[counts,setCounts]=React.useState<ModeCounts>({submissions:0,grading:0,listings:0,orders:0});\n\n  React.useEffect(()=>{\n    let cancelled=false;\n    if(!tenantId)return;\n    void (supabase as any).from('card_grading_submissions').select('status').eq('tenant_id',tenantId).then(({data}:any)=>{\n      if(cancelled)return;\n      const next:ModeCounts={submissions:0,grading:0,listings:0,orders:0};\n      for(const row of data||[]){const id=bucket(String(row?.status||''));if(id)next[id]+=1}\n      setCounts(next);\n    }).catch(()=>{});\n    return()=>{cancelled=true};\n  },[tenantId]);\n\n  const setMode=React.useCallback((next:ModeId|null)=>{\n    const params=new URLSearchParams(location.search);\n    if(next){params.set('mode',next);params.delete('tool');params.delete('vault');params.delete('submissionId');params.delete('cardId')}else{params.delete('mode');params.delete('tool');params.delete('vault');params.delete('submissionId');params.delete('cardId')}\n    const search=params.toString();\n    navigate({pathname:location.pathname,search:search?'?'+search:'',hash:location.hash},{replace:false});\n  },[location.hash,location.pathname,location.search,navigate]);\n  const openTool=React.useCallback((nextMode:ModeId,nextTool:WorkspaceTab,nextVault?:VaultMode)=>{\n    const params=new URLSearchParams(location.search);\n    params.set('mode',nextMode);params.set('tool',nextTool);\n    if(nextVault)params.set('vault',nextVault);else params.delete('vault');\n    params.delete('submissionId');params.delete('cardId');\n    const search=params.toString();\n    navigate({pathname:location.pathname,search:search?'?'+search:'',hash:location.hash},{replace:false});\n  },[location.hash,location.pathname,location.search,navigate]);\n  const openCaptureForSubmission=React.useCallback((submissionId:string)=>{\n    const params=new URLSearchParams(location.search);\n    params.set('mode','submissions');params.set('tool','vault');params.set('vault','batch');params.set('submissionId',submissionId);params.delete('cardId');\n    const search=params.toString();\n    navigate({pathname:location.pathname,search:search?'?'+search:'',hash:location.hash},{replace:false});\n  },[location.hash,location.pathname,location.search,navigate]);\n  const openAdminTool=React.useCallback((nextTool:WorkspaceTab)=>{\n    const params=new URLSearchParams(location.search);\n    params.delete('mode');params.delete('vault');params.set('tool',nextTool);params.delete('submissionId');params.delete('cardId');\n    const search=params.toString();\n    navigate({pathname:location.pathname,search:search?'?'+search:'',hash:location.hash},{replace:false});\n  },[location.hash,location.pathname,location.search,navigate]);\n  const closeAdminTool=React.useCallback(()=>{const params=new URLSearchParams(location.search);params.delete('tool');params.delete('vault');params.delete('submissionId');params.delete('cardId');const search=params.toString();navigate({pathname:location.pathname,search:search?'?'+search:'',hash:location.hash},{replace:false})},[location.hash,location.pathname,location.search,navigate]);\n\n  if(mode){\n    const current=modes.find(item=>item.id===mode)!;\n    const modeTools=MODE_TOOLS[mode];\n    const allowedTabs=modeTools.map(item=>item.id);\n    const scopedTool=tool&&allowedTabs.includes(tool)?tool:null;\n    const activeTab=scopedTool||MODE_TAB[mode];\n    const headerLabel=scopedTool?TOOL_LABEL[scopedTool]:current.title;\n    return <div data-tenant-modes-shell=\"true\" data-tenant-id={tenantId||undefined} data-tenant-experience-family=\"modes\" data-pcg-active-mode={mode} data-pcg-mode-target={activeTab} className=\"min-h-screen bg-[#f3f4f6] text-[#1d1b18]\">\n      <div data-pcg-mode-header=\"true\" className=\"sticky left-0 right-0 top-0 z-[65] box-border w-screen max-w-none border-b border-black/[.08] bg-[#ffffff]/95 px-3 py-2.5 shadow-[0_8px_28px_rgba(15,23,42,.05)] backdrop-blur-xl sm:px-5 lg:px-7\">\n        <div className=\"flex w-full items-center gap-3\">\n          <button type=\"button\" onClick={()=>setMode(null)} aria-label=\"Back to PCG work queue\" className=\"grid h-11 w-11 shrink-0 place-items-center rounded-xl border border-black/[.10] bg-white text-black/65 shadow-sm\"><ArrowLeft className=\"h-4 w-4\"/></button>\n          <div className=\"grid h-10 w-10 shrink-0 place-items-center overflow-hidden rounded-xl border border-[#b08a36]/30 bg-white shadow-sm\"><TenantLogo tenant={activeTenant as any} size={40} rounded=\"lg\" fallbackVariant=\"initial\" className=\"border-0 bg-transparent\"/></div>\n          <div className=\"min-w-0\"><div className=\"truncate text-[9px] font-black uppercase tracking-[.18em] text-[#8b6926]\">PCG Workflow</div><div className=\"truncate text-sm font-black\">{headerLabel}</div></div>\n          <div className=\"ml-auto hidden min-w-0 items-center gap-2 lg:flex\"><CanonicalWorkspaceSidebarTrigger className=\"h-10 w-[clamp(14rem,28vw,24rem)] border-black/[.10] bg-white text-black/55 hover:bg-[#f4f0e7] hover:text-black/80\"/></div><div className=\"ml-auto lg:ml-0\"><MiscAwareAccountMenu placement=\"inline\" avatarMode=\"tenant\" singletonKey={`pcg-mode-avatar:${tenantId||'workspace'}`} tenantShellOwner/></div>\n        </div>\n        {modeTools.length>1?<div className=\"mt-2 flex flex-wrap gap-1 pb-0.5\">{modeTools.map(item=><button key={item.id} type=\"button\" onClick={()=>openTool(mode,item.id,item.vault)} className={`whitespace-nowrap rounded-xl border px-3 py-2 text-[10px] font-black uppercase tracking-[.08em] ${activeTab===item.id?'border-[#b08a36]/35 bg-[#f2e7ce] text-[#72561a] shadow-sm':'border-black/[.08] bg-white text-black/48 hover:bg-[#f6f2ea]'}`}>{item.label}</button>)}</div>:null}\n      </div>\n      {mode==='listings'?<><PCGCompletionCenter mode=\"completed\"/><React.Suspense fallback={null}><PCGBatchPublishingCenter tenantId={tenantId}/></React.Suspense></>:null}\n      {mode==='orders'?<><PCGCompletionCenter mode=\"mailed\"/><PcgWorkspace initialTab=\"shipping\" embedded navigationScope={['shipping']}/></>:null}\n      {mode==='submissions'||mode==='grading'?<PcgWorkspace initialTab={activeTab} initialVaultMode={vaultMode} initialVaultSubmissionId={requestedSubmissionId} onSubmissionCreated={mode==='submissions'?({id})=>openCaptureForSubmission(id):undefined} embedded navigationScope={allowedTabs}/>:null}\n    </div>\n  }\n\n  if(adminTool){\n    return <div data-tenant-modes-shell=\"true\" data-tenant-id={tenantId||undefined} data-tenant-experience-family=\"modes\" data-pcg-admin-tool={adminTool} className=\"min-h-screen bg-[#f3f4f6] text-[#1d1b18]\">\n      <div className=\"sticky left-0 right-0 top-0 z-[65] border-b border-black/[.08] bg-[#ffffff]/95 px-3 py-2.5 shadow-[0_8px_28px_rgba(15,23,42,.05)] backdrop-blur-xl sm:px-5 lg:px-7\"><div className=\"flex items-center gap-3\"><button type=\"button\" onClick={closeAdminTool} aria-label=\"Back to PCG work queue\" className=\"grid h-11 w-11 place-items-center rounded-xl border border-black/[.10] bg-white text-black/65 shadow-sm\"><ArrowLeft className=\"h-4 w-4\"/></button><div className=\"grid h-10 w-10 place-items-center overflow-hidden rounded-xl border border-[#b08a36]/30 bg-white shadow-sm\"><TenantLogo tenant={activeTenant as any} size={40} rounded=\"lg\" fallbackVariant=\"initial\" className=\"border-0 bg-transparent\"/></div><div><div className=\"text-[9px] font-black uppercase tracking-[.18em] text-[#8b6926]\">PCG Admin</div><div className=\"text-sm font-black\">{TOOL_LABEL[adminTool]}</div></div><div className=\"ml-auto\"><MiscAwareAccountMenu placement=\"inline\" avatarMode=\"tenant\" singletonKey={`pcg-admin-avatar:${tenantId||'workspace'}`} tenantShellOwner/></div></div></div>\n      <PcgWorkspace initialTab={adminTool} embedded navigationScope={[adminTool]}/>\n    </div>\n  }\n\n\n\n  return <main data-tenant-modes-shell=\"true\" data-tenant-id={tenantId||undefined} data-tenant-experience-family=\"modes\" data-pcg-modes-workspace=\"true\" className=\"relative min-h-dvh overflow-x-hidden bg-[#f3f4f6] pb-8 text-[#17191c]\">\n    <header className=\"sticky left-0 right-0 top-0 z-[70] border-b border-black/[.08] bg-white/95 backdrop-blur-xl\">\n      <div className=\"flex min-h-[64px] items-center gap-3 px-3 sm:px-5 lg:px-7\">\n        <CanonicalWorkspaceSidebarTrigger className=\"h-11 w-[clamp(13rem,34vw,28rem)] border-black/[.10] bg-white text-black/55 hover:bg-[#f5f6f8] hover:text-black/80 max-sm:w-11 max-sm:px-0 max-sm:[&>span]:hidden\"/>\n        <div className=\"flex min-w-0 items-center gap-2.5\">\n          <div className=\"grid h-10 w-10 shrink-0 place-items-center overflow-hidden rounded-xl border border-black/[.10] bg-white\"><TenantLogo tenant={activeTenant as any} size={38} rounded=\"lg\" fallbackVariant=\"initial\" className=\"border-0 bg-transparent\"/></div>\n          <div className=\"min-w-0\"><div className=\"truncate text-[9px] font-black uppercase tracking-[.18em] text-[#8a6a20]\">Prestigious Card Grading</div><div className=\"truncate text-sm font-black\">Workspace</div></div>\n        </div>\n        <div className=\"ml-auto\"><MiscAwareAccountMenu placement=\"inline\" avatarMode=\"tenant\" singletonKey={'pcg-dashboard-avatar:'+(tenantId||'workspace')} tenantShellOwner/></div>\n      </div>\n    </header>\n\n    <div className=\"relative z-10 mx-auto max-w-[1480px] px-3 pb-7 pt-4 sm:px-5 lg:px-7 lg:pt-6\">\n      <section className=\"flex flex-col gap-4 rounded-[22px] border border-black/[.08] bg-white p-4 shadow-[0_10px_30px_rgba(15,23,42,.06)] sm:p-5 lg:flex-row lg:items-center\">\n        <div className=\"min-w-0 flex-1\">\n          <div className=\"text-[10px] font-black uppercase tracking-[.18em] text-[#8a6a20]\">PCG workflow</div>\n          <h1 className=\"mt-1 text-2xl font-black tracking-[-.035em] sm:text-3xl\">Run the shop from here.</h1>\n          <p className=\"mt-1.5 max-w-2xl text-sm leading-6 text-black/48\">Receive the cards, grade them, publish what is for sale, then fulfill the order.</p>\n        </div>\n        <button type=\"button\" onClick={()=>setMode('submissions')} className=\"inline-flex min-h-12 shrink-0 items-center justify-center gap-2 rounded-xl bg-[#17191c] px-5 text-sm font-black text-white shadow-sm transition hover:bg-black\">\n          <Boxes className=\"h-4 w-4\"/>Receive new cards\n        </button>\n      </section>\n\n      <section className=\"mt-4 rounded-[22px] border border-black/[.08] bg-white p-3 shadow-[0_10px_30px_rgba(15,23,42,.05)] sm:p-4\">\n        <div className=\"grid gap-2 lg:grid-cols-4\">{modes.map(({id,title,copy,icon:Icon,accent},index)=><button key={id} type=\"button\" data-pcg-mode-id={id} aria-label={'Open '+title} onClick={()=>setMode(id)} className=\"group flex min-h-[132px] items-start gap-3 rounded-[16px] border border-black/[.08] bg-[#f8f9fb] p-4 text-left transition hover:border-black/[.16] hover:bg-white\">\n          <div className=\"grid h-9 w-9 shrink-0 place-items-center rounded-full bg-[#17191c] text-sm font-black text-white\">{index+1}</div>\n          <div className=\"min-w-0 flex-1\">\n            <div className=\"flex items-center justify-between gap-3\"><div className=\"flex items-center gap-2\"><Icon className=\"h-4 w-4\" style={{color:accent}}/><h2 className=\"text-base font-black\">{title}</h2></div><span className=\"text-xl font-black text-[#8a6a20]\">{counts[id]}</span></div>\n            <p className=\"mt-2 text-xs leading-5 text-black/45\">{copy}</p>\n            <div className=\"mt-3 flex items-center gap-1 text-[10px] font-black uppercase tracking-[.10em] text-black/35\">Open <ArrowRight className=\"h-3.5 w-3.5 transition group-hover:translate-x-0.5\"/></div>\n          </div>\n        </button>)}</div>\n      </section>\n\n      <section className=\"mt-3 flex flex-wrap items-center gap-2 px-1\">\n        <span className=\"mr-1 text-[9px] font-black uppercase tracking-[.16em] text-black/30\">Setup</span>\n        {ADMIN_TOOLS.map(({id,label,icon:Icon})=><button key={id} type=\"button\" onClick={()=>openAdminTool(id)} className=\"inline-flex min-h-10 items-center gap-2 rounded-lg border border-black/[.08] bg-white px-3 text-[10px] font-black text-black/52 transition hover:bg-[#f8f9fb]\"><Icon className=\"h-3.5 w-3.5 text-[#8a6a20]\"/>{label}</button>)}\n      </section>\n    </div>\n  </main>\n}\n"},{"path":"src/pages/crm/PcgWorkspace.tsx","content":"import {useEffect,useMemo,useState,type ComponentType} from 'react';\nimport {useLocation} from 'react-router-dom';\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';import PCGLegacyMigrationCenter from '@/pages/card-grading/PCGLegacyMigrationCenter';import PCGOnboardingReadiness from '@/pages/card-grading/PCGOnboardingReadiness';\nimport {Award,BadgeDollarSign,Boxes,Check,ChevronRight,CircleDollarSign,ClipboardCheck,CreditCard,Database,ExternalLink,FileCheck2,Menu,PackageCheck,Plus,Search,Settings,ShieldCheck,Truck,UploadCloud,Users,X} from 'lucide-react';\nimport {PCG_GRADING_SCALE,findPCGGrade,formatPCGGrade} from '@/pages/card-grading/pcgGradingScale';\nimport TenantSettingsPage from '@/pages/settings/TenantSettingsPage';\nimport PCGBatchPublishingCenter from '@/pages/card-grading/PCGBatchPublishingCenter';\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;expected_card_count: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'|'migration'|'readiness'|'settings';type IconType=ComponentType<{className?:string}>;\nconst tabs:[Tab,string,IconType][]=[['today','Work Queue',Award],['vault','Capture Cards',UploadCloud],['queue','Grade Cards',Award],['submissions','Receive Cards',Boxes],['certs','Certificates',ShieldCheck],['collectors','Customers',Users],['shipping','Fulfill & Ship',Truck],['inventory','Publish & Sell',PackageCheck],['money','Payments',CircleDollarSign],['migration','Migration',Database],['readiness','Readiness',ClipboardCheck],['settings','Settings',Settings]];const mobilePrimary:[Tab,string,IconType][]=[['today','Queue',Award],['vault','Capture',UploadCloud],['queue','Grade',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 pretty=(value:string)=>value.replaceAll('_',' ').replace(/\\b\\w/g,char=>char.toUpperCase());const inputClass='w-full rounded-xl border border-black/[0.10] bg-white px-3.5 py-3 text-sm text-[#1d1b18] shadow-sm outline-none transition placeholder:text-black/28 focus:border-[#b08a36]/55 focus:ring-2 focus:ring-[#b08a36]/10';const panelClass='rounded-2xl border border-black/[0.08] bg-[#ffffff] shadow-[0_8px_24px_rgba(15,23,42,.05)]';\nconst hasCanonicalGrade=(card:Pick<Card,'grade_label'>)=>Boolean(findPCGGrade(card.grade_label));\nfunction PCGGradeSelect({draft,onChange}:{draft:CardDraft;onChange:(next:CardDraft)=>void}){const selected=findPCGGrade(draft.grade_label);const legacyLabel=String(draft.grade_label||'').trim();const legacyNumeric=!legacyLabel&&draft.grade.trim()?draft.grade.trim():'';return <div className=\"sm:col-span-2\"><label className=\"block\"><span className=\"text-[9px] font-black uppercase tracking-[.14em] text-[#8b6926]\">Official PCG grade</span><select value={draft.grade_label} onChange={event=>{const option=findPCGGrade(event.target.value);onChange({...draft,grade:option?.numeric==null?'':String(option.numeric),grade_label:option?.designation||event.target.value})}} className={inputClass}><option value=\"\">Select official PCG designation</option>{legacyLabel&&!selected?<option value={legacyLabel}>Legacy · {legacyLabel}</option>:null}{PCG_GRADING_SCALE.map(option=><option key={option.id} value={option.designation}>{option.designation}</option>)}</select></label>{selected?<div className=\"mt-2 border border-black/[0.08] bg-black/28 px-3 py-2\"><div className=\"text-[10px] font-black text-[#76581f]\">{selected.designation}</div><div className=\"mt-1 text-[11px] leading-5 text-black/45\">{selected.criteria||'PCG’s published page does not currently provide usable criteria text for this designation.'}</div></div>:legacyLabel?<div className=\"mt-2 text-[11px] leading-5 text-amber-200/75\">Legacy grade label. Choose an official PCG designation before advancing this card.</div>:legacyNumeric?<div className=\"mt-2 text-[11px] leading-5 text-amber-200/75\">Legacy numeric grade {legacyNumeric}. Choose the exact official PCG designation before advancing this card.</div>:null}</div>}\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-black/42 border-black/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-black/46 border-black/10'}}\nexport default function PcgWorkspace({initialTab='today',embedded=false,initialVaultMode='overview',initialVaultSubmissionId='',onSubmissionCreated,navigationScope}:{initialTab?:Tab;embedded?:boolean;initialVaultMode?:'overview'|'single'|'batch'|'growth';initialVaultSubmissionId?:string;onSubmissionCreated?:(submission:{id:string;submission_number:string})=>void;navigationScope?:Tab[]}={}){const location=useLocation();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);const visibleTabs=useMemo(()=>navigationScope?.length?tabs.filter(([id])=>navigationScope.includes(id)):tabs,[navigationScope]);useEffect(()=>{setTab(initialTab)},[initialTab]);useEffect(()=>{if(navigationScope?.length&&!navigationScope.includes(tab))setTab(navigationScope.includes(initialTab)?initialTab:navigationScope[0])},[initialTab,navigationScope,tab]);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 settingsSection=String(new URLSearchParams(location.search).get('section')||'').trim().toLowerCase();const selectedTier=tiers[form.tier as keyof typeof tiers]||tiers.two_weeks;const selectedCardCount=Math.max(1,Math.min(100000,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 orderCardCount=(sub:Submission)=>Math.max(Number(sub.expected_card_count||0),cards.filter(card=>card.submission_id===sub.id).length);const 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)*orderCardCount(item),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?orderCardCount(selected)*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,expected_card_count:count,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}toast.success(`${submissionNumber} created for ${count.toLocaleString()} card${count===1?'':'s'}. Opening Capture Cards for this order.`);setShowNew(false);setForm({name:'',email:'',phone:'',tier:'two_weeks',cardCount:'1',delivery:'walk_in',notes:''});await load();setBusy(false);onSubmissionCreated?.({id:String(data.id),submission_number:String(data.submission_number||submissionNumber)})}\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=>!hasCanonicalGrade(card)).length;return missing?(missing+' card'+(missing===1?' needs':'s need')+' an official PCG grade before encapsulation.'):''}if(nextStatus==='qa'){const missingGrade=ownCards.filter(card=>!hasCanonicalGrade(card)).length,missingCert=ownCards.filter(card=>!String(card.cert_number||'').trim()).length;return missingGrade||missingCert?('Save '+(missingGrade?(missingGrade+' missing official PCG 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=>!hasCanonicalGrade(card)||!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 official PCG 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 gradeDefinition=findPCGGrade(draft.grade_label);const grade=gradeDefinition?gradeDefinition.numeric:(draft.grade.trim()===''?null:Number(draft.grade));const gradeLabel=gradeDefinition?.designation||draft.grade_label.trim()||null;const declared=draft.declared_value.trim()===''?null:Number(draft.declared_value);if(grade!=null&&(Number.isNaN(grade)||grade<0||grade>10)){toast.error('Legacy numeric grade is invalid. Choose an official PCG grade.');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:gradeLabel,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-black/[0.08] sm:px-5 first:sm:border-l-0 first:sm:pl-0\"><div className=\"text-[9px] font-black uppercase tracking-[.18em] text-[#8b6926]\">{label}</div><div className=\"mt-1 text-3xl font-black tracking-[-.04em]\">{value}</div><div className=\"mt-1 text-[11px] text-black/36\">{sub}</div></div>;\nconst empty=(title:string,copy:string,action?:()=>void,actionLabel?:string)=><div className=\"border border-dashed border-black/[0.10] bg-white p-9 text-center\"><FileCheck2 className=\"mx-auto h-6 w-6 text-[#8b6926]\"/><div className=\"mt-4 text-lg font-black\">{title}</div><p className=\"mx-auto mt-2 max-w-md text-sm leading-6 text-black/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 expected=Math.max(Number(sub.expected_card_count||0),cardCount);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-3 border-b border-black/[0.07] px-2 py-2.5 text-left transition last:border-b-0 hover:bg-black/[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-black/32\">{pretty(sub.status)}</span></div><div className=\"mt-1 truncate text-sm font-black sm:text-[15px]\">{sub.customer_name||'Collector not named'}</div><div className=\"mt-0.5 flex flex-wrap gap-x-3 text-[10px] text-black/34 sm:text-[11px]\"><span>{expected>cardCount?`${cardCount.toLocaleString()} / ${expected.toLocaleString()} cards ingested`:`${cardCount.toLocaleString()} 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-black/18\"/></div></button>};\nconst renderList=(heading:string,eyebrow:string,source:Submission[])=><section><div className=\"mb-6 flex flex-col gap-4 border-b border-black/[0.08] pb-5 xl:flex-row xl:items-end xl:justify-between\"><div><div className=\"text-[10px] font-black uppercase tracking-[.20em] text-[#8b6926]\">{eyebrow}</div><h1 className=\"mt-1.5 text-2xl font-black tracking-[-.035em] sm:text-3xl\">{heading}</h1><p className=\"mt-2 text-sm text-black/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\"/>Receive cards</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-black/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-black/[0.08]\">{source.map(row)}</div>:empty('Nothing needs attention','Receive a new card submission when work arrives.',()=>setShowNew(true),'Receive cards')}</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-[#f3f4f6] text-[#1d1b18]\" style={{backgroundImage:workspaceBackground?`linear-gradient(108deg,rgba(246,243,236,.96) 0%,rgba(246,243,236,.91) 55%,rgba(246,243,236,.95) 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(176,138,54,.12),transparent_28rem)]\"/>\n{!embedded?<header className=\"fixed inset-x-0 top-0 z-50 h-16 border-b border-black/[0.07] bg-[#ffffff]/95 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-black/30 sm:block\">PCG daily work</div></div><div className=\"ml-auto flex items-center gap-3\"><span className=\"hidden text-xs font-semibold text-black/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\"/>Receive cards</button></div></div></header>:null}\n{!embedded?<aside className=\"fixed bottom-0 left-0 top-16 z-40 hidden w-[230px] border-r border-black/[0.07] bg-[#ffffff]/95 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-[#8b6926]\">PCG Work Queue</div><div className=\"mt-2 text-sm leading-5 text-black/40\">Receive, grade, publish, and fulfill cards.</div></div><nav className=\"mt-7 space-y-1\">{visibleTabs.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-black/[0.07] text-[#1d1b18] shadow-[inset_2px_0_0_#d8bb78]':'text-black/40 hover:bg-black/[0.035] hover:text-black/80'}`}><Icon className={`h-[17px] w-[17px] ${tab===id?'text-[#8b6926]':'text-black/30'}`}/><span className=\"flex-1\">{label}</span>{id==='queue'&&openSubs.length?<span className=\"text-[10px] font-black text-[#8b6926]\">{openSubs.length}</span>:null}</button>)}</nav><div className=\"mt-auto border-t border-black/[0.07] px-2 pt-4\"><div className=\"text-[9px] font-black uppercase tracking-[.17em] text-black/25\">Prestigious Card Grading</div><div className=\"mt-2 text-xs leading-5 text-black/36\">14170 US Highway 1<br/>Sebastian, FL 32958</div></div></aside>:null}\n<main className={`relative z-10 min-h-screen px-4 pb-24 sm:px-6 lg:px-8 lg:pb-10 xl:px-10 ${embedded?'pt-4 sm:pt-6':'pt-20 lg:ml-[230px]'}`}>{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-[#8b6926]\">Opening PCG…</div></div></div>:<>\n{tab==='today'?<><section className=\"border-b border-black/[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-[#8b6926]\">Daily work</div><h1 className=\"mt-2 text-3xl font-black leading-none tracking-[-.045em] sm:text-4xl\">PCG Work Queue</h1><p className=\"mt-2 max-w-2xl text-sm leading-5 text-black/42\">See what needs attention and move each submission through the next clear step.</p></div><div className=\"grid w-full max-w-xl grid-cols-2 gap-px border border-black/[0.08] bg-black/[0.08] sm:grid-cols-3\"><button onClick={()=>setShowNew(true)} className=\"bg-white p-4 text-left\"><Plus className=\"h-5 w-5 text-[#8b6926]\"/><div className=\"mt-3 text-sm font-black\">Receive Cards</div><div className=\"mt-1 text-[11px] text-black/30\">Start a submission</div></button><button onClick={()=>setTab('vault')} className=\"bg-white p-4 text-left\"><UploadCloud className=\"h-5 w-5 text-[#8b6926]\"/><div className=\"mt-3 text-sm font-black\">Capture Cards</div><div className=\"mt-1 text-[11px] text-black/30\">Single or batch intake</div></button><button onClick={()=>setTab('queue')} className=\"col-span-2 bg-white p-4 text-left sm:col-span-1\"><Award className=\"h-5 w-5 text-[#8b6926]\"/><div className=\"mt-3 text-sm font-black\">Grade Cards</div><div className=\"mt-1 text-[11px] text-black/30\">Work the grading 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-[#8b6926]\">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-[#8b6926]\">Grade cards →</button></div><div className=\"border-y border-black/[0.08]\">{prioritySubs.length?prioritySubs.map(row):empty('Nothing needs grading','No grading batches need attention right now.',()=>setShowNew(true),'Receive cards')}</div></section><section className=\"border-l border-black/[0.08] xl:pl-7\"><div className=\"text-[9px] font-black uppercase tracking-[.19em] text-[#8b6926]\">Stage pressure</div><h2 className=\"mt-1 text-2xl font-black\">Where the cards are</h2><div className=\"mt-5 divide-y divide-black/[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-black/18\">{String(index+1).padStart(2,'0')}</span><span className=\"text-xs font-bold text-black/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} initialSubmissionId={initialVaultSubmissionId}/>:null}{tab==='queue'?renderList('Grade Cards','Active grading work',filteredSubs.filter(item=>!terminalStatuses.has(item.status))):null}{tab==='submissions'?renderList('Receive Cards','All submissions',filteredSubs):null}{tab==='shipping'?renderList('Fulfill & Ship','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-black/[0.08] pb-3\"><div className=\"text-[10px] font-black uppercase tracking-[.20em] text-[#8b6926]\">Card lookup</div><h1 className=\"mt-1 text-2xl font-black sm:text-3xl\">Certificates</h1></div><div className=\"relative mt-3 max-w-2xl\"><Search className=\"absolute left-4 top-3.5 h-4 w-4 text-black/28\"/><input value={certQuery} onChange={event=>setCertQuery(event.target.value)} placeholder=\"Search certificate, card, player, or set\" className={`${inputClass} pl-11`}/></div>{filteredCards.length?<div className=\"mt-3 overflow-hidden border border-black/[0.08] bg-black/20\">{filteredCards.map(card=>{const image=card.slab_image_url||card.front_image_url;const title=[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}`;const grade=hasCanonicalGrade(card)?formatPCGGrade(card.grade,card.grade_label):'';return <button key={card.id} onClick={()=>{const sub=subs.find(item=>item.id===card.submission_id);if(sub)openSubmission(sub)}} className=\"grid min-h-[68px] w-full grid-cols-[44px_minmax(0,1fr)_auto] items-center gap-3 border-b border-black/[0.07] px-3 py-2 text-left transition last:border-b-0 hover:bg-black/[0.025]\"><div className=\"grid h-14 w-11 shrink-0 place-items-center overflow-hidden border border-black/[0.08] bg-white\">{image?<img src={image} alt=\"Graded card\" className=\"h-full w-full object-cover\"/>:<ShieldCheck className=\"h-5 w-5 text-[#8b6926]/55\"/>}</div><div className=\"min-w-0\"><div className=\"truncate text-sm font-black leading-tight\">{title}</div><div className=\"mt-1 flex flex-wrap items-center gap-x-3 gap-y-1 text-[10px] text-black/35\"><span>{card.cert_number||'Cert pending'}</span>{grade?<span className=\"font-black text-[#76581f]/75\">{grade}</span>:null}</div></div><ChevronRight className=\"h-4 w-4 shrink-0 text-black/20\"/></button>})}</div>:<div className=\"mt-4\">{empty('No certificates yet','Certificate records appear here as grading is completed.')}</div>}</section>:null}\n{tab==='collectors'?<section><div className=\"border-b border-black/[0.08] pb-5\"><div className=\"text-[10px] font-black uppercase tracking-[.20em] text-[#8b6926]\">Customer records</div><h1 className=\"mt-1.5 text-2xl font-black sm:text-3xl\">Customers</h1></div>{subs.some(item=>item.customer_name)?<div className=\"mt-6 border-y border-black/[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-black/[0.07] px-1 py-4 text-left\"><div><div className=\"font-black\">{sub.customer_name}</div><div className=\"mt-1 text-xs text-black/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-black/25\">SUBMISSIONS</div></div><div className=\"text-right\"><div className=\"text-lg font-black text-[#8b6926]\">{relatedCards.length}</div><div className=\"text-[9px] text-black/25\">CARDS</div></div></button>})}</div>:empty('No customers yet','Customers appear automatically when a card submission is received.',()=>setShowNew(true),'Receive cards')}</section>:null}\n{tab==='inventory'?<PCGBatchPublishingCenter tenantId={tenantId||''}/>:null}\n{tab==='migration'?<PCGLegacyMigrationCenter/>:null}\n{tab==='readiness'?<PCGOnboardingReadiness/>:null}\n{tab==='settings'?<section>\n    <div className=\"border-b border-black/[0.08] pb-4\"><div className=\"text-[10px] font-black uppercase tracking-[.18em] text-[#8a6a20]\">PCG setup</div><h1 className=\"mt-1 text-2xl font-black sm:text-3xl\">Settings</h1><p className=\"mt-1.5 max-w-2xl text-sm leading-6 text-black/45\">Only the controls Anthony needs to run PCG. Pick a category instead of digging through platform settings.</p></div>\n    {!settingsSection?<div className=\"mt-4 grid gap-2 sm:grid-cols-2 xl:grid-cols-3\">\n      {[\n        ['business','Brand & workspace','Logo, backgrounds, public-facing identity and workspace presentation.'],\n        ['connections','Google & connections','Google Drive, eBay and other connected services.'],\n        ['mail','Email & customers','Business email continuity and customer-facing channels.'],\n        ['notifications','Notifications','What PCG alerts you about and where they go.'],\n        ['profile','Profile & staff','Owner profile and people using this workspace.'],\n        ['workspace','Workspace behavior','Layout, experience and workspace health.']\n      ].map(([section,title,copy])=><a key={section} href={'?tool=settings&section='+section} className=\"group flex min-h-[112px] items-start justify-between gap-4 rounded-2xl border border-black/[0.08] bg-white p-4 shadow-sm transition hover:border-black/[0.16] hover:bg-[#f8f9fb]\"><span><span className=\"block text-sm font-black\">{title}</span><span className=\"mt-1 block text-xs leading-5 text-black/42\">{copy}</span></span><ChevronRight className=\"mt-1 h-4 w-4 shrink-0 text-black/28 transition group-hover:translate-x-0.5\"/></a>)}\n    </div>:<div className=\"mt-4\"><a href=\"?tool=settings\" className=\"mb-3 inline-flex min-h-10 items-center gap-2 rounded-lg border border-black/[0.08] bg-white px-3 text-xs font-black text-black/55\">← All PCG settings</a><TenantSettingsPage/></div>}\n  </section>:null}\n{tab==='money'?<section><div className=\"border-b border-black/[0.08] pb-5\"><div className=\"text-[10px] font-black uppercase tracking-[.20em] text-[#8b6926]\">Admin · payments</div><h1 className=\"mt-1.5 text-2xl font-black sm:text-3xl\">Payments</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-black/[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-black/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-6 text-[10px] font-black uppercase tracking-[.18em] text-black/30\">Recorded grading service value</div><div className=\"mt-2 text-3xl font-black sm:text-4xl\">${serviceValue.toFixed(2)}</div><p className=\"mt-3 text-sm leading-6 text-black/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-black/[0.08] xl:pl-7\"><div className=\"text-[10px] font-black uppercase tracking-[.18em] text-[#8b6926]\">Grading menu</div><div className=\"mt-5 divide-y divide-black/[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-black/28\">Per card · no up-charges</div></div><div className=\"text-2xl font-black text-[#8b6926]\">${tier.price}</div></div>)}</div></section></div></section>:null}</>}</main>\n{!embedded?<nav className=\"fixed inset-x-3 bottom-3 z-50 grid grid-cols-5 border border-black/[0.09] bg-[#ffffff]/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-black/[0.07] text-[#1d1b18]':'text-black/38'}`}><Icon className={`h-[18px] w-[18px] ${tab===id?'text-[#8b6926]':'text-black/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-black/38\"><Menu className=\"h-[18px] w-[18px] text-black/28\"/>More</button></nav>:null}\n{!embedded&&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-black/[0.10] bg-white p-4\"><div className=\"mb-4 text-[9px] font-black uppercase tracking-[.18em] text-[#8b6926]\">More PCG tools</div><div className=\"grid grid-cols-2 gap-px border border-black/[0.08] bg-black/[0.08]\">{visibleTabs.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-white px-4 py-3 text-sm font-bold\"><Icon className=\"h-4 w-4 text-[#8b6926]\"/>{label}</button>)}</div><button onClick={()=>setShowMore(false)} className=\"mt-3 w-full border border-black/[0.08] py-3 text-sm font-bold text-black/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-black/[0.10] bg-white\"><div className=\"flex items-center justify-between border-b border-black/[0.08] p-5\"><div><div className=\"text-[9px] font-black uppercase tracking-[.18em] text-[#8b6926]\">Grading intake</div><h2 className=\"mt-1 text-2xl font-black\">Receive cards into PCG</h2></div><button onClick={()=>setShowNew(false)} className=\"border border-black/10 p-2 text-black/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=\"100000\" placeholder=\"Expected 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-black/[0.08] pt-4\"><div><div className=\"text-[9px] font-black uppercase tracking-[.15em] text-[#8b6926]\">Expected grading total</div><div className=\"mt-1 text-3xl font-black\">${expectedTotal.toFixed(2)}</div></div><div className=\"text-right text-xs text-black/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-black/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-black/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-black/10 bg-white p-4 pb-24 sm:p-6\"><div className=\"flex items-start justify-between gap-4 border-b border-black/[0.08] pb-4\"><div><div className=\"text-[9px] font-black uppercase tracking-[.17em] text-[#8b6926]\">Submission workbench</div><h2 className=\"mt-1 text-2xl font-black\">{selected.submission_number}</h2><div className=\"mt-1 text-sm text-black/34\">{selected.customer_name||'Collector not named'} · {selectedCards.length.toLocaleString()} ingested / {orderCardCount(selected).toLocaleString()} expected · ${selectedTotal.toFixed(2)}</div></div><button onClick={()=>setSelectedId(null)} className=\"border border-black/10 p-2 text-black/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-[#8b6926]\">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-[#76581f]':'border-black/10 text-black/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-black/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-[#8b6926]\">Collector & payment</div><BadgeDollarSign className=\"h-5 w-5 text-[#8b6926]\"/></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-[#8b6926]\"><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-[#8b6926]\">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-black/[0.08] pb-3\"><div className=\"text-[9px] font-black uppercase tracking-[.16em] text-[#8b6926]\">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-black/[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-black/28\">{draft.cert_number||'Cert not assigned'} · {pretty(card.status)}</div></div>{draft.cert_number&&findPCGGrade(draft.grade_label)?<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}/><PCGGradeSelect draft={draft} onChange={next=>setCardDrafts({...cardDrafts,[card.id]:next})}/><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>}"},{"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';\nimport {PCG_AUTOGRAPH_NOTE,PCG_CARD_THICKNESSES,PCG_GRADING_SCALE,findPCGGrade} from '@/pages/card-grading/pcgGradingScale';\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};type VaultMode='overview'|'single'|'batch'|'growth';\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};\nconst normalizeHeader=(value:string)=>String(value||'').trim().toLowerCase().replace(/[^a-z0-9]+/g,'_').replace(/^_+|_+$/g,'');\nfunction parseDelimited(text:string){const sample=String(text||'').split(/\\r?\\n/,1)[0]||'';const delimiter=(sample.match(/\\t/g)||[]).length>(sample.match(/,/g)||[]).length?'\\t':',';const matrix:string[][]=[];let row:string[]=[];let value='';let quoted=false;for(let index=0;index<text.length;index+=1){const char=text[index];if(quoted){if(char==='\"'&&text[index+1]==='\"'){value+='\"';index+=1}else if(char==='\"'){quoted=false}else{value+=char}continue}if(char==='\"'){quoted=true;continue}if(char===delimiter){row.push(value);value='';continue}if(char==='\\n'){row.push(value);if(row.some(cell=>cell.trim()))matrix.push(row);row=[];value='';continue}if(char!=='\\r')value+=char}row.push(value);if(row.some(cell=>cell.trim()))matrix.push(row);const headerRow=matrix.shift()||[];const seen=new Map<string,number>();const headers=headerRow.map((cell,index)=>{const base=normalizeHeader(cell)||'column_'+(index+1);const count=(seen.get(base)||0)+1;seen.set(base,count);return count===1?base:base+'_'+count});const rows=matrix.map(cells=>Object.fromEntries(headers.map((header,index)=>[header,String(cells[index]??'').trim()]))) as CsvRow[];return{headers,rows,delimiter}}\nfunction parseCsv(text:string){return parseDelimited(text).rows}\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-black/48 hover:bg-black/[0.05] hover:text-[#1d1b18]')}>{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-black/[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-black/32\"><Icon className=\"h-3.5 w-3.5 text-[#8a6a20]\"/>{label}</div><div className=\"mt-2 text-2xl font-black tracking-tight text-[#1d1b18]\">{value}</div><div className=\"mt-1 truncate text-xs text-black/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-black/34\">{label}</span><input value={value} onChange={event=>onChange(event.target.value)} placeholder={placeholder} className=\"mt-2 h-11 w-full border-b border-black/[0.12] bg-transparent text-sm text-[#1d1b18] outline-none transition placeholder:text-black/18 focus:border-[#d8bb78]/65\"/></label>}\nfunction PCGGradeField({grade:_grade,designation,onChange}:{grade:string;designation:string;onChange:(grade:string,designation:string)=>void}){const selected=findPCGGrade(designation);return <div className=\"sm:col-span-2\"><label className=\"block\"><span className=\"text-[10px] font-bold uppercase tracking-[.13em] text-black/34\">PCG grade</span><select value={designation} onChange={event=>{const option=findPCGGrade(event.target.value);onChange(option?.numeric==null?'':String(option.numeric),option?.designation||'')}} className=\"mt-2 h-11 w-full border border-black/[0.12] bg-white px-3 text-sm font-bold text-[#1d1b18] outline-none focus:border-[#d8bb78]/65\"><option value=\"\">Select official PCG designation</option>{PCG_GRADING_SCALE.map(option=><option key={option.id} value={option.designation}>{option.designation}</option>)}</select></label>{selected?<details className=\"mt-2 border border-black/[0.08] bg-[#f8f9fb] px-3 py-2\"><summary className=\"cursor-pointer text-[10px] font-black uppercase tracking-[.13em] text-[#8a6a20]\">Official criteria</summary><p className=\"mt-2 text-xs leading-5 text-black/55\">{selected.criteria||'PCG’s published page does not currently provide usable criteria text for this designation.'}</p><div className=\"mt-2 text-[10px] text-black/35\">Card sizes: {PCG_CARD_THICKNESSES.join(' · ')} · {PCG_AUTOGRAPH_NOTE}</div></details>:null}</div>}\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-black/[0.09] bg-[#f8f9fb] 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-black/35\">{label}</span>{file?<CheckCircle2 className=\"h-5 w-5 text-emerald-400\"/>:<ImagePlus className=\"h-5 w-5 text-[#8a6a20]\"/>}</div><div><div className=\"truncate text-sm font-bold text-black/82\">{file?.name||`Choose ${label.toLowerCase()} image`}</div><div className=\"mt-1 text-xs text-black/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>}\n\nexport function PCGCardVaultContent({initialMode='overview',initialSubmissionId=''}:{initialMode?:VaultMode;initialSubmissionId?:string}={}){const{activeTenant}=useMultiTenant();const{toast}=useToast();const tenantId=activeTenant?.id||'';const[mode,setMode]=useState<VaultMode>(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===initialSubmissionId)?initialSubmissionId:(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,initialSubmissionId]);\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 Internal Inventory',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('Internal inventory card 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-[#1d1b18]\"><style>{`.pcg-card-vault .text-[#1d1b18]\\\\/18,.pcg-card-vault .text-[#1d1b18]\\\\/24,.pcg-card-vault .text-[#1d1b18]\\\\/28,.pcg-card-vault .text-[#1d1b18]\\\\/30,.pcg-card-vault .text-[#1d1b18]\\\\/32,.pcg-card-vault .text-[#1d1b18]\\\\/34,.pcg-card-vault .text-[#1d1b18]\\\\/35,.pcg-card-vault .text-[#1d1b18]\\\\/36,.pcg-card-vault .text-[#1d1b18]\\\\/38,.pcg-card-vault .text-[#1d1b18]\\\\/42,.pcg-card-vault .text-[#1d1b18]\\\\/44,.pcg-card-vault .text-[#1d1b18]\\\\/48{color:rgba(29,27,24,.68)!important}`}</style><section className=\"border-b border-black/[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-[#8a6a20]\"><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-black/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 max-w-full flex-wrap items-center rounded-2xl border border-black/[0.08] bg-[#f8f9fb] p-1\"><ModeButton active={mode==='overview'} onClick={()=>setMode('overview')}>Overview</ModeButton><ModeButton active={mode==='single'} onClick={()=>setMode('single')}>Internal inventory</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-black/30\">Start an intake</div><div className=\"grid gap-px overflow-hidden border border-black/[0.08] bg-black/[0.08] sm:grid-cols-2\"><button onClick={()=>setMode('single')} className=\"group min-h-[210px] bg-white p-5 text-left transition hover:bg-[#f5f6f8]\"><div className=\"flex items-start justify-between\"><ImagePlus className=\"h-6 w-6 text-[#8a6a20]\"/><ArrowUpRight className=\"h-5 w-5 text-black/18 transition group-hover:text-[#8a6a20]\"/></div><div className=\"mt-14\"><h2 className=\"text-xl font-black tracking-tight\">Internal inventory card</h2><p className=\"mt-2 text-sm leading-6 text-black/38\">Create a standalone PCG-owned inventory record. This is not a collector grading submission.</p></div></button><button onClick={()=>setMode('batch')} className=\"group min-h-[210px] bg-white p-5 text-left transition hover:bg-[#f5f6f8]\"><div className=\"flex items-start justify-between\"><UploadCloud className=\"h-6 w-6 text-[#8a6a20]\"/><ArrowUpRight className=\"h-5 w-5 text-black/18 transition group-hover:text-[#8a6a20]\"/></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-black/38\">Hundreds or thousands, front/back pairing, optional CSV, pause and safe retry.</p></div></button></div></section><section className=\"border-l border-black/[0.08] xl:pl-7\"><div className=\"flex items-center justify-between\"><div><div className=\"text-[10px] font-black uppercase tracking-[.16em] text-black/28\">Storage contract</div><h2 className=\"mt-2 text-lg font-black\">Built for volume</h2></div><Database className=\"h-5 w-5 text-[#8a6a20]\"/></div><div className=\"mt-5 divide-y divide-black/[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-black/80\"><CheckCircle2 className=\"h-4 w-4 text-emerald-400\"/>{title}</div><p className=\"mt-1.5 pl-6 text-xs leading-5 text-black/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-black/[0.08] pb-4\"><div className=\"text-[10px] font-black uppercase tracking-[.16em] text-black/28\">Internal inventory</div><h2 className=\"mt-2 text-xl font-black\">Inventory card details</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=\"Certification / serial\" value={form.cert} onChange={value=>update('cert',value)}/><PCGGradeField grade={form.grade} designation={form.condition} onChange={(grade,designation)=>setForm(current=>({...current,grade,condition:designation}))}/><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-black/34\">Internal notes</span><textarea value={form.notes} onChange={event=>update('notes',event.target.value)} rows={4} className=\"mt-2 w-full border border-black/[0.09] bg-[#f8f9fb] p-4 text-sm leading-6 text-[#1d1b18] outline-none focus:border-[#d8bb78]/40\"/></label></div><div className=\"self-start border-l border-black/[0.08] xl:pl-7\"><div className=\"text-[10px] font-black uppercase tracking-[.16em] text-black/28\">Card imagery</div><div className=\"mt-4 grid gap-px overflow-hidden border border-black/[0.08] bg-black/[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 inventory card'}</button></div></section>:null}\n{mode==='batch'?<section className=\"mt-7 space-y-5\"><div className=\"border border-black/[0.08] bg-white 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-[#8a6a20]\">1 · 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-black/[0.10] bg-white px-3 text-sm font-bold text-[#1d1b18] 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=submissions&tool=submissions\" className=\"inline-flex min-h-11 items-center border border-black/[0.10] px-3 py-2 text-xs font-black text-black/65\">Receive Cards</a>{!driveReady&&driveState!=='checking'?<a href=\"?tool=settings\" className=\"inline-flex min-h-11 items-center border border-[#d8bb78]/25 px-3 py-2 text-xs font-black text-[#8a6a20]\">Open settings</a>:null}</div></div><p className=\"mt-3 text-xs leading-5 text-black/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=submissions&tool=submissions\" className=\"font-black text-[#8a6a20] underline underline-offset-4\">Receive Cards</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-black/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-black/[0.08] bg-black/[0.08] lg:grid-cols-2\"><label className={cn('group flex min-h-[180px] flex-col justify-between bg-white 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-[#8a6a20]\"/><div><h2 className=\"text-xl font-black\">2 · Choose the card image batch</h2><p className=\"mt-2 text-sm leading-6 text-black/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-white 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-[#8a6a20]\"/><div><h2 className=\"text-xl font-black\">3 · Attach CSV details <span className=\"text-black/30\">(optional)</span></h2><p className=\"mt-2 text-sm leading-6 text-black/36\">Map filenames, player, set, year and card number into those same canonical order records.</p></div></label></div><div className=\"border border-black/[0.08] bg-white\"><div className=\"flex flex-col gap-4 border-b border-black/[0.07] p-5 sm:flex-row sm:items-center\"><div className=\"mr-auto\"><div className=\"text-[10px] font-black uppercase tracking-[.16em] text-black/28\">Mass intake queue</div><div className=\"mt-1 text-lg font-black\">{items.length.toLocaleString()} cards <span className=\"font-medium text-black/30\">· {done} stored · {failed} failed</span></div>{selectedSubmission?<div className=\"mt-1 text-xs font-bold text-[#8a6a20]/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-black/[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-black/[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-black/16\"/><div className=\"mt-3 text-sm font-bold text-black/48\">No card batch loaded</div><div className=\"mt-1 text-xs text-black/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-black/72\">{item.key}</div><div className=\"truncate text-[10px] text-black/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-[#8a6a20]\"/>:<span className=\"text-[10px] text-black/24\">Queued</span>}</div>)}</div></div></section>:null}\n<section className=\"mt-8 border-t border-black/[0.08] pt-6\"><div className=\"flex items-end justify-between\"><div><div className=\"text-[10px] font-black uppercase tracking-[.16em] text-black/28\">Card Vault</div><h2 className=\"mt-1 text-lg font-black\">Recently stored</h2></div><button onClick={()=>void load()} aria-label=\"Refresh stored cards\" className=\"grid h-11 w-11 place-items-center border border-black/[0.08] text-black/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-black/[0.07] bg-black/[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-black/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-black/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-black/[0.08] bg-black/20 text-center\"><div><Archive className=\"mx-auto h-7 w-7 text-black/12\"/><div className=\"mt-2 text-sm font-bold text-black/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"},{"path":"src/pages/card-grading/PCGCompletionCenter.tsx","content":"import React from 'react';\nimport {AlertTriangle,CheckCircle2,Mail,Truck} from 'lucide-react';\nimport {useMultiTenant} from '@/contexts/MultiTenantContext';\nimport {supabase} from '@/integrations/supabase/client';\nimport {formatPCGGrade} from '@/pages/card-grading/pcgGradingScale';\n\ntype Sub={id:string;submission_number:string;customer_name:string|null;customer_email:string|null;status:string;tracking_out:string|null};\ntype Card={id:string;submission_id:string;sequence_number:number;player_character:string|null;year:string|null;brand_set:string|null;grade:number|null;grade_label:string|null;cert_number:string|null;front_image_url:string|null;slab_image_url:string|null};\ntype HandoffStats={total:number;graded:number;certified:number;imaged:number};\nconst esc=(v:unknown)=>String(v??'').replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/\"/g,'&quot;');\n\nexport default function PCGCompletionCenter({mode}:{mode:'completed'|'mailed'}){\n  const{activeTenant}=useMultiTenant();const tenantId=activeTenant?.id||'';const slug=String(activeTenant?.company_slug||'pcg').trim().toLowerCase()||'pcg';const wmpUrl='https://whatsmyprogress.com/'+encodeURIComponent(slug)+'/';\n  const[subs,setSubs]=React.useState<Sub[]>([]);const[cards,setCards]=React.useState<Card[]>([]);const[loading,setLoading]=React.useState(true);const[sending,setSending]=React.useState<string|null>(null);const[armed,setArmed]=React.useState<string|null>(null);const[message,setMessage]=React.useState('');\n  const load=React.useCallback(async()=>{if(!tenantId)return;setLoading(true);const statuses=mode==='completed'?['ready']:['shipped','picked_up'];const s=await(supabase as any).from('card_grading_submissions').select('id,submission_number,customer_name,customer_email,status,tracking_out').eq('tenant_id',tenantId).in('status',statuses).order('updated_at',{ascending:false}).limit(30);const ids=(s.data||[]).map((x:any)=>x.id);let c:any={data:[]};if(ids.length)c=await(supabase as any).from('card_grading_cards').select('id,submission_id,sequence_number,player_character,year,brand_set,grade,grade_label,cert_number,front_image_url,slab_image_url').eq('tenant_id',tenantId).in('submission_id',ids).order('sequence_number',{ascending:true});setSubs(s.data||[]);setCards(c.data||[]);setArmed(null);setLoading(false)},[mode,tenantId]);\n  React.useEffect(()=>{void load()},[load]);\n  const ownCards=(sub:Sub)=>cards.filter(card=>card.submission_id===sub.id);\n  const stats=(sub:Sub):HandoffStats=>{const own=ownCards(sub);return{total:own.length,graded:own.filter(card=>card.grade!=null||Boolean(card.grade_label)).length,certified:own.filter(card=>Boolean(card.cert_number)).length,imaged:own.filter(card=>Boolean(card.slab_image_url||card.front_image_url)).length}};\n  const issues=(sub:Sub)=>{const value:string[]=[];const s=stats(sub);if(mode==='completed'){if(!s.total)value.push('no cards are attached');else{if(s.graded<s.total)value.push(`${s.total-s.graded} card${s.total-s.graded===1?' is':'s are'} missing a grade`);if(s.certified<s.total)value.push(`${s.total-s.certified} card${s.total-s.certified===1?' is':'s are'} missing a cert number`);if(s.imaged<s.total)value.push(`${s.total-s.imaged} card${s.total-s.imaged===1?' is':'s are'} missing a customer-visible image`)}}if(mode==='mailed'&&!sub.tracking_out)value.push('outbound tracking is missing');return value};\n  const send=async(sub:Sub)=>{if(!sub.customer_email||sending)return;setSending(sub.id);setMessage('');const own=ownCards(sub);const images=own.map(card=>card.slab_image_url||card.front_image_url).filter(Boolean) as string[];const shipped=mode==='mailed';const summary=own.length?`<h2 style=\"margin:24px 0 10px\">Your cards</h2><table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" style=\"width:100%;border-collapse:collapse\">${own.map(card=>{const name=[card.year,card.brand_set,card.player_character].filter(Boolean).join(' · ')||`Card #${card.sequence_number}`;const grade=formatPCGGrade(card.grade,card.grade_label);const cert=card.cert_number?`PCG#/CERT# ${card.cert_number}`:'Cert pending';return`<tr><td style=\"padding:10px 0;border-bottom:1px solid #e6e2d9\"><strong>${esc(name)}</strong><br><span style=\"color:#68645b;font-size:13px\">${esc(grade)} · ${esc(cert)}</span></td></tr>`}).join('')}</table>`:'';const body=`<!doctype html><html><body data-knocklaunch-email=\"pcg-order-update\" style=\"font-family:Arial,sans-serif;color:#171614;line-height:1.5\"><h1 style=\"margin:0 0 12px\">${shipped?'Your PCG order is on the way':'Your PCG grading order is complete'}</h1><p>Hi ${esc(sub.customer_name||'there')},</p><p>${shipped?'Your graded cards have been mailed back to you.':'Your cards have completed grading and are being prepared for return.'}</p><p><strong>Order:</strong> ${esc(sub.submission_number)}</p>${sub.tracking_out?`<p><strong>Tracking:</strong> ${esc(sub.tracking_out)}</p>`:''}<p><a href=\"${wmpUrl}\">View your live grading progress</a></p>${summary}${images.length?`<h2 style=\"margin:24px 0 10px\">Card images</h2><div>${images.slice(0,20).map((url,index)=>`<img src=\"${esc(url)}\" alt=\"Graded card ${index+1}\" style=\"width:150px;max-width:45%;height:auto;margin:6px;border:1px solid #ddd\"/>`).join('')}</div>`:''}<p style=\"margin-top:24px\">Thank you for choosing Prestigious Card Grading.</p></body></html>`;\n    const result=await supabase.functions.invoke('send-email',{body:{tenantId,to:sub.customer_email,subject:shipped?`Your PCG order ${sub.submission_number} has shipped`:`Your PCG order ${sub.submission_number} is complete`,body,idempotencyKey:`pcg-${mode}:${sub.id}:${sub.status}`,eventType:shipped?'pcg_order_shipped':'pcg_grading_completed',fromName:'Prestigious Card Grading'}});\n    if(result.error||!result.data?.ok)setMessage(result.data?.error||result.error?.message||'Email could not be sent. Check the PCG business mailbox connection.');else setMessage(result.data?.deduped?'This customer update was already sent.':'Customer update sent.');setArmed(null);setSending(null)};\n  const requestSend=(sub:Sub)=>{const warnings=issues(sub);if(warnings.length&&armed!==sub.id){setArmed(sub.id);setMessage(`${sub.submission_number} needs review: ${warnings.join('; ')}. Fix the record, or click Send anyway if this is intentional.`);return}void send(sub)};\n  return <section className=\"mx-auto max-w-[1600px] px-4 pt-4 sm:px-6 lg:px-8\"><div className=\"border border-black/10 bg-[#ffffff] p-4\"><div className=\"flex items-center gap-3\">{mode==='mailed'?<Truck className=\"h-5 w-5 text-[#8a6a20]\"/>:<CheckCircle2 className=\"h-5 w-5 text-[#8a6a20]\"/>}<div><div className=\"text-[10px] font-black uppercase tracking-[.17em] text-[#8a6a20]\">{mode==='mailed'?'Shipment handoff':'Completion handoff'}</div><h2 className=\"mt-1 text-xl font-black\">{mode==='mailed'?'Tracking + customer update':'Review & notify customer'}</h2></div></div>{message?<div className=\"mt-4 border border-black/10 bg-black/[.04] p-3 text-sm text-black/65\">{message}</div>:null}{loading?<div className=\"mt-5 text-sm text-black/35\">Loading customer handoffs…</div>:subs.length?<div className=\"mt-5 divide-y divide-black/8\">{subs.map(sub=>{const s=stats(sub);const warnings=issues(sub);const isArmed=armed===sub.id;return <div key={sub.id} className=\"py-3\"><div className=\"flex flex-col gap-4 xl:flex-row xl:items-center\"><div className=\"min-w-0 flex-1\"><div className=\"font-black\">{sub.submission_number} · {sub.customer_name||'Collector'}</div><div className=\"mt-1 truncate text-xs text-black/35\">{sub.customer_email||'Customer email missing'}{sub.tracking_out?` · Tracking ${sub.tracking_out}`:''}</div><div className=\"mt-3 grid max-w-xl grid-cols-4 gap-px overflow-hidden border border-black/[.07] bg-black/[.07]\"><div className=\"bg-[#f5f6f8] p-2.5\"><div className=\"text-[9px] font-black uppercase text-black/30\">Cards</div><div className=\"mt-1 font-black\">{s.total}</div></div><div className=\"bg-[#f5f6f8] p-2.5\"><div className=\"text-[9px] font-black uppercase text-black/30\">Graded</div><div className=\"mt-1 font-black\">{s.graded}/{s.total}</div></div><div className=\"bg-[#f5f6f8] p-2.5\"><div className=\"text-[9px] font-black uppercase text-black/30\">Certs</div><div className=\"mt-1 font-black\">{s.certified}/{s.total}</div></div><div className=\"bg-[#f5f6f8] p-2.5\"><div className=\"text-[9px] font-black uppercase text-black/30\">Images</div><div className=\"mt-1 font-black\">{s.imaged}/{s.total}</div></div></div>{warnings.length?<div className=\"mt-3 flex max-w-2xl items-start gap-2 text-xs leading-5 text-amber-800\"><AlertTriangle className=\"mt-0.5 h-4 w-4 shrink-0 text-amber-300\"/><span>{warnings.join(' · ')}</span></div>:<div className=\"mt-3 inline-flex items-center gap-2 text-xs font-black text-emerald-700\"><CheckCircle2 className=\"h-4 w-4\"/>Customer handoff ready</div>}</div><button disabled={!sub.customer_email||sending===sub.id} onClick={()=>requestSend(sub)} className={`inline-flex min-h-11 shrink-0 items-center justify-center gap-2 px-4 text-xs font-black disabled:opacity-35 ${isArmed&&warnings.length?'border border-amber-300/30 bg-amber-300/[.08] text-amber-900':'bg-[#d8bb78] text-black'}`}><Mail className=\"h-4 w-4\"/>{sending===sub.id?'Sending…':isArmed&&warnings.length?'Send anyway':mode==='mailed'?'Send shipment update':'Send completion email'}</button></div></div>})}</div>:<div className=\"mt-5 border border-dashed border-black/10 p-5 text-sm text-black/35\">No orders are currently in this stage.</div>}</div></section>\n}\n"},{"path":"src/pages/card-grading/PCGBatchPublishingCenter.tsx","content":"import React from 'react';\nimport {supabase} from '@/integrations/supabase/client';\n\ntype Row={id:string;card_id:string;sku:string;title:string;price:number;quantity:number;website_status:string;website_url?:string|null;ebay_status:string;ebay_url?:string|null;error_message?:string|null;card?:any};\nconst label=(v:string)=>v==='live'?'Live':v==='prerequisite_required'?'Setup required':v==='needs_attention'?'Needs attention':v==='sold'?'Sold':v==='uploaded'?'Not listed':v||'Not listed';\n\nexport default function PCGBatchPublishingCenter({tenantId}:{tenantId:string}){\n  const[rows,setRows]=React.useState<Row[]>([]);\n  const[prices,setPrices]=React.useState<Record<string,string>>({});\n  const[busy,setBusy]=React.useState<string[]>([]);\n  const[message,setMessage]=React.useState('');\n\n  const load=React.useCallback(async()=>{\n    if(!tenantId)return;\n    const {data}=await supabase.functions.invoke('pcg-commerce-publisher',{body:{action:'list',tenant_id:tenantId}});\n    if(data?.ok){\n      const items=Array.isArray(data.items)?data.items:[];\n      setRows(items);\n      setPrices(prev=>{\n        const next={...prev};\n        for(const row of items) if(!next[row.card_id]&&Number(row.price)>0) next[row.card_id]=String(row.price);\n        return next;\n      });\n    }\n  },[tenantId]);\n\n  const publish=React.useCallback(async(cardIds:string[])=>{\n    if(!cardIds.length)return;\n    setBusy(v=>Array.from(new Set([...v,...cardIds])));\n    const entries=cardIds.map(id=>[id,Number(prices[id]||0)] as const).filter(([,value])=>value>0);\n    const priceByCard=Object.fromEntries(entries);\n    const {data,error}=await supabase.functions.invoke('pcg-commerce-publisher',{body:{action:'publish_batch',tenant_id:tenantId,card_ids:cardIds,price_by_card:priceByCard}});\n    setBusy(v=>v.filter(id=>!cardIds.includes(id)));\n    if(error||!data?.ok)setMessage(data?.error||'Publishing could not start. Try again.');\n    else setMessage('Publishing pass complete. Any item that needs attention is isolated below.');\n    await load();\n  },[load,prices,tenantId]);\n\n  React.useEffect(()=>{void load()},[load]);\n  React.useEffect(()=>{\n    if(!tenantId)return;\n    const channel=supabase.channel('pcg-commerce-'+tenantId)\n      .on('postgres_changes',{event:'*',schema:'public',table:'card_grading_cards',filter:'tenant_id=eq.'+tenantId},()=>void load())\n      .subscribe();\n    const timer=window.setInterval(()=>void load(),10000);\n    return()=>{window.clearInterval(timer);void supabase.removeChannel(channel)};\n  },[load,tenantId]);\n\n  return <section data-pcg-batch-publishing=\"true\" className=\"relative z-10 mx-auto mb-5 w-full max-w-[1500px] px-3 sm:px-5 lg:px-7\">\n    <div className=\"rounded-3xl border border-black/10 bg-[#ffffff] p-4 shadow-[0_10px_28px_rgba(15,23,42,.06)] backdrop-blur-xl sm:p-5\">\n      <div className=\"flex flex-wrap items-center gap-3\">\n        <div className=\"min-w-0 flex-1\"><div className=\"text-[10px] font-black uppercase tracking-[.2em] text-[#8a6a20]/70\">Publishing command center</div><h2 className=\"mt-1 text-xl font-black text-[#1d1b18]\">Website + eBay</h2><p className=\"mt-1 text-sm text-black/55\">Completed cards are candidates only. Nothing is listed until you enter an explicit sale price and press Publish.</p><p className=\"mt-1 text-xs font-semibold text-amber-800\">A card’s declared or grading value is never treated as permission to sell it.</p></div>\n        <div className=\"rounded-full border border-[#d8bb78]/25 bg-[#d8bb78]/10 px-3 py-1.5 text-[11px] font-black uppercase tracking-[.12em] text-[#8a6a20]\">Owner approval required</div>\n      </div>\n      {message?<div className=\"mt-3 rounded-xl border border-black/10 bg-black/[.05] px-3 py-2 text-sm text-black/70\">{message}</div>:null}\n      <div className=\"mt-4 grid gap-2\">\n        {!rows.length?<div className=\"rounded-2xl border border-black/8 bg-black/[.03] p-4 text-sm text-black/55\">Completed graded cards appear here as sale candidates. Set an explicit sale price and press Publish only for cards PCG is actually authorized to sell.</div>:rows.map(row=>{\n          const working=busy.includes(row.card_id);\n          const price=prices[row.card_id]??String(row.price||'');\n          return <article key={row.id||row.card_id} className=\"grid gap-3 rounded-2xl border border-black/8 bg-black/[.035] p-3 lg:grid-cols-[minmax(0,1fr)_140px_auto] lg:items-center\">\n            <div className=\"min-w-0\"><div className=\"truncate text-sm font-black text-[#1d1b18]\">{row.title||row.sku}</div><div className=\"mt-1 flex flex-wrap gap-2 text-[11px] font-bold\"><span className=\"rounded-full bg-black/[.06] px-2 py-1 text-black/65\">{row.sku}</span><span className=\"rounded-full bg-black/[.06] px-2 py-1 text-black/65\">Website: {label(row.website_status)}</span><span className=\"rounded-full bg-black/[.06] px-2 py-1 text-black/65\">eBay: {label(row.ebay_status)}</span></div>{row.error_message?<div className=\"mt-2 text-xs font-semibold text-amber-800\">{row.error_message}</div>:null}</div>\n            <label className=\"grid gap-1 text-[10px] font-black uppercase tracking-[.12em] text-black/45\">Explicit sale price<input inputMode=\"decimal\" value={price} onChange={e=>setPrices(v=>({...v,[row.card_id]:e.target.value}))} className=\"h-10 min-w-0 rounded-xl border border-black/10 bg-white px-3 text-sm font-bold text-[#1d1b18] outline-none focus:border-[#d8bb78]/60\" placeholder=\"0.00\"/></label>\n            <div className=\"flex flex-wrap gap-2 lg:justify-end\">{row.website_url?<a className=\"rounded-lg border border-black/10 px-2.5 py-2 text-xs font-black text-black/75\" href={row.website_url} target=\"_blank\" rel=\"noreferrer\">Website</a>:null}{row.ebay_url?<a className=\"rounded-lg border border-black/10 px-2.5 py-2 text-xs font-black text-black/75\" href={row.ebay_url} target=\"_blank\" rel=\"noreferrer\">eBay</a>:null}<button type=\"button\" disabled={working||!(Number(price)>0)} onClick={()=>void publish([row.card_id])} className=\"rounded-lg border border-[#d8bb78]/30 bg-[#d8bb78]/10 px-2.5 py-2 text-xs font-black text-[#8a6a20] disabled:opacity-40\">{working?'Publishing…':row.website_status==='live'||row.ebay_status==='live'?'Update listing':row.website_status==='uploaded'&&row.ebay_status==='uploaded'?'Publish website + eBay':'Retry'}</button></div>\n          </article>\n        })}\n      </div>\n    </div>\n  </section>;\n}\n"}],"route":"/pcg/workspace","branch":"ai/objective-first-repair-2e723a9ab751","writes":[],"patches":[],"pr_body":"Forces a fresh frontend artifact from the known-good post-workflow-fix MODES source because production continued serving the superseded simplified PCG layout.","version":1,"approved":true,"pr_title":"PCG: force restore MODES presentation","missionId":"2e723a9a-b751-493e-964f-7054b87ea906","objective":"Force production back to the exact known-good PCG MODES presentation from 0dfaa46df8c3a8ea656e49a54765071b4b21d8cb. Live production is still rendering the superseded simplified white 'Run the shop from here' numbered 1-4 layout even though repository inspection reports the pre-redesign MODES source, so create a real frontend mutation by restoring the five exact historical PCG files and adding only the attached harmless restore-anchor comment in PCGModesWorkspace.tsx. This must trigger a fresh frontend build/release. Preserve the functional workflow/mobile fixes included in 0dfaa46. Do not redesign anything. Completion requires live /pcg/workspace to stop showing 'Run the shop from here' and instead render the prior MODES dashboard presentation on desktop and mobile.","tenantRef":"pcg","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/pages/card-grading/PCGModesWorkspace.tsx","src/pages/crm/PcgWorkspace.tsx","src/pages/card-grading/PCGWorkspace.tsx","src/pages/card-grading/PCGCompletionCenter.tsx","src/pages/card-grading/PCGBatchPublishingCenter.tsx"],"commit_message":"Force restore PCG MODES presentation","implementation":{"files":[],"writes":[]},"requestContract":null,"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":null,"ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/pages/card-grading/PCGModesWorkspace.tsx","src/pages/crm/PcgWorkspace.tsx","src/pages/card-grading/PCGWorkspace.tsx","src/pages/card-grading/PCGCompletionCenter.tsx","src/pages/card-grading/PCGBatchPublishingCenter.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":"512828b8386a06dc6e754d2629f2ba2e306884c091025a56b5b57c88eb63975a","replayCount":0,"serializedBytes":126507},"tenant_id":"9602e177-0cbb-496c-bdf5-2fbc93f1b859","created_at":"2026-09-29T19:45:13.526253+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:2e723a9a-b751-493e-964f-7054b87ea906:repository-mutation-intent:512828b8386a06dc6e754d2629f2ba2e306884c091025a56b5b57c88eb63975a:0","mission_step_id":"44ee6cf4-b992-4983-a8a1-61ebcdc52850","command_center_event_id":"2e723a9a-b751-493e-964f-7054b87ea906"},{"id":"121cfa18-13b7-4a2b-af0e-bf80593423e3","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-8face4c243b3","reason":"retryable_provider_transport:pr_ready_timeout_budget_exhausted","status":"retryable","metrics":{"receiptBytes":74181,"releaseCount":0,"toolCallCount":44,"repeatedCallCount":37,"executorlessWaitMs":1159737,"firstUsefulResultAt":"2026-10-03T12:35:01.667Z","recoveryAttemptCount":35,"ownerInterruptionCount":0},"version":null,"prNumber":4629,"terminal":false,"missionId":"8face4c2-43b3-407d-aae8-c5976a49bd6f","operation":"automatic_mission_resume","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"prReadinessMs":3000,"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":"8face4c2-43b3-407d-aae8-c5976a49bd6f"},"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":827,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-03T12:37:31.649839+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"4629","receipt_type":"automatic_mission_resume","idempotency_key":"mission:8face4c2-43b3-407d-aae8-c5976a49bd6f:automatic-mission-resume:4629:repair_mission_pr_ready_retryable","mission_step_id":"75ae7c3a-0a78-4e11-ab60-13cc0207d5fd","command_center_event_id":"8face4c2-43b3-407d-aae8-c5976a49bd6f"},{"id":"121d528d-ea43-488b-b303-9f59d8724f1f","source":"cc-execution","status":"pending","payload":{"ok":true,"jobId":"b86df6f6-87d3-4404-9ccc-40dd1ece79a8","phase":"universal_visual_witness_supervised","branch":"ai/objective-first-repair-e329c2cf399f","reason":null,"status":"pending","metrics":{"receiptBytes":40004,"releaseCount":0,"toolCallCount":33,"repeatedCallCount":19,"executorlessWaitMs":325780,"firstUsefulResultAt":"2026-09-28T12:03:13.992Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3979,"terminal":false,"missionId":"e329c2cf-399f-4c64-924d-2c496c09ddc7","operation":"visual_proof_started","proofGate":"universal_visual_witness_pending","sourceSha":"4f70a39ed17809e512c4737c6c1c8f5dcc6c2591","timingsMs":{"queue":230,"total":230,"execution":0},"nextAction":"Execution is pending; poll inspect_route_status only when fresh progress is expected, or cancel with inspect_route_cancel.","receiptRef":{"mode":"full","missionId":"e329c2cf-399f-4c64-924d-2c496c09ddc7"},"performance":null,"deploymentId":"forgejo-main-4f70a39ed178","releaseState":"verified","visualWitness":{"role":"GodMode","jobId":"b86df6f6-87d3-4404-9ccc-40dd1ece79a8","tenant":null,"runnerUrl":"https://laptop-witness.knocklaunch.app","runnerLane":"laptop","attemptsUsed":0,"supervisorId":"b86df6f6-87d3-4404-9ccc-40dd1ece79a8","failureReason":null,"observedRoute":null,"runnerVersion":null,"attemptLineage":[],"missionOutcome":null,"requestedRoute":"/admin/godmode/restore-points","runnerSourceSha":null,"selectedViewports":["desktop"],"checkpointAccounting":null,"correctiveGeneration":0,"restartReplayHistory":[]},"workflowRunId":12512,"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":1769,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T12:08:41.104452+00:00","proof_gate":"post_release_visual_proof_started","source_sha":"4f70a39ed17809e512c4737c6c1c8f5dcc6c2591","external_id":"b86df6f6-87d3-4404-9ccc-40dd1ece79a8","receipt_type":"visual_proof_started","idempotency_key":"mission:e329c2cf-399f-4c64-924d-2c496c09ddc7:visual-start:b86df6f6-87d3-4404-9ccc-40dd1ece79a8","mission_step_id":"c9940780-e417-4711-a524-ee3773b06208","command_center_event_id":"e329c2cf-399f-4c64-924d-2c496c09ddc7"},{"id":"121de758-ffa5-4a31-a35e-055322a2897c","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"objective_received","branch":null,"reason":"path/file validation failed","status":"blocked","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.30.7-controlled-merge-release-readback","prNumber":null,"terminal":true,"missionId":"f0636302-0c04-46b2-bd19-b902bb2dec44","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"f0636302-0c04-46b2-bd19-b902bb2dec44"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"sourceReceiptBytes":636,"ownerActionRequired":false},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-04T15:28:41.871519+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:f0636302-0c04-46b2-bd19-b902bb2dec44:execute_mission:repair_mission_execution_blocked","mission_step_id":"979823d0-78d4-4297-9a85-17cc4ddba1a0","command_center_event_id":"f0636302-0c04-46b2-bd19-b902bb2dec44"},{"id":"121e34f2-0c81-4a8e-ad81-d3330a1e4387","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-177869c171b0","reason":"retryable_provider_transport:GET:The operation was aborted due to timeout","status":"retryable","metrics":{"receiptBytes":4297,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.50.48-visual-proof-intent-routing","prNumber":null,"terminal":false,"missionId":"177869c1-71b0-4480-a9f7-4f36503d5556","operation":"execute_mission","proofGate":"repair_mission_execution_retryable","sourceSha":null,"timingsMs":{"handlerMs":10572,"prReadinessMs":0,"approvedPlanMs":10572,"missionSetupMs":828,"shipAndProveMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"177869c1-71b0-4480-a9f7-4f36503d5556"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5247,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-25T17:18:58.678052+00:00","proof_gate":"repair_mission_execution_retryable","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:177869c1-71b0-4480-a9f7-4f36503d5556:execute_mission:repair_mission_execution_retryable","mission_step_id":"d0d01bb7-6ad9-4cc7-af4f-27e670f4f4cf","command_center_event_id":"177869c1-71b0-4480-a9f7-4f36503d5556"},{"id":"121f5cb4-a80b-40b2-a953-f0c1b2ac7722","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-b28e18e3120a","reason":"anchored_edit_anchor_missing:src/PrivateAppShell.tsx","status":"blocked","metrics":{"receiptBytes":13334,"releaseCount":0,"toolCallCount":5,"repeatedCallCount":0,"executorlessWaitMs":62287,"firstUsefulResultAt":"2026-09-28T22:57:13.684Z","recoveryAttemptCount":1,"ownerInterruptionCount":0},"version":"1.59.3-direct-commit-ancestry","prNumber":4048,"terminal":false,"missionId":"b28e18e3-120a-4033-844b-61c50c79df0d","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":749,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":749,"missionSetupMs":436,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":327,"ledgerReconcileMs":0,"lineageReconcileMs":109,"resolvePreflightMs":436,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":327,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"b28e18e3-120a-4033-844b-61c50c79df0d"},"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":1486,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T22:58:16.019963+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":"4048","receipt_type":"execute_mission","idempotency_key":"mission:b28e18e3-120a-4033-844b-61c50c79df0d:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"b39dde40-8d62-49d3-9288-7707148f2038","command_center_event_id":"b28e18e3-120a-4033-844b-61c50c79df0d"},{"id":"1222c705-7665-41d2-a524-8ed9ea4a98bd","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Ship PR #945 through KnockLaunch Gate, squash merge, release only the affected frontend, RoofHelpFinder Supabase Edge Function and migration targets, then prove RoofHelpFinder production is live.","wordingChanged":false,"canonicalIntent":"Ship PR #945 through KnockLaunch Gate, squash merge, release only the affected frontend, RoofHelpFinder Supabase Edge Function and migration targets, then prove RoofHelpFinder production is live.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"live-match-flow","statement":"The production RoofHelpFinder experience uses verified address ZIP, mandatory homeowners insurance Yes/No, branded analyzing/locating states, and only shows a successful licensed-professional handoff after the server confirms forwarding.","proofConditionIds":["production-root"]},{"id":"live-private-routing","statement":"The production RoofHelpFinder lead function routes configured Brevard ZIPs to an active licensed Florida roofing professional and creates the forwarded CRM contact without exposing professional identity publicly.","proofConditionIds":["production-root"]},{"id":"live-organic-layer","statement":"The production site includes substantive roof leak, storm damage, emergency tarp, and Brevard roof-help resources plus RoofHelpFinder metadata/schema and sitemap entries.","proofConditionIds":["production-root"]}],"objective":"Ship PR #945 through KnockLaunch Gate, squash merge, release only the affected frontend, RoofHelpFinder Supabase Edge Function and migration targets, then prove RoofHelpFinder production is live.","constraints":[{"id":"no-paid","statement":"No paid traffic dependency, fake profile/review, purchased backlink, or public professional identity.","proofConditionIds":["production-root"]},{"id":"preserve-homepage","statement":"Preserve the existing premium RoofHelpFinder colors, logo, autoplay background video, and simple primary CTA.","proofConditionIds":["production-root"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"production-root","kind":"runtime","claim":"RoofHelpFinder production root serves the live homeowner experience after the exact merged release.","route":"https://roofhelpfinder.com/","required":true,"expectedText":"Need help with your roof?","targetedActions":[],"allowedReleaseTargets":["frontend","supabaseEdge","migrations"],"requiredReleaseTargets":["frontend","supabaseEdge","migrations"]}],"validationErrors":[]},"requestContractHash":"9d900d81eb8feaecd5b0356c75f7e11984f85b68ebc03885e63fe6baa2aef90c","requestContractRevision":5,"previousRequestContractHash":"6da326cd64353de741a735b3d6f6f2662863a1119a394e2a07b3d550729ce551"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-28T18:33:13.56072+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:47918e9d-8812-404b-976f-192ac581372a:request-contract-revision:5:9d900d81eb8feaecd5b0356c75f7e11984f85b68ebc03885e63fe6baa2aef90c","mission_step_id":"50c6e1c8-e654-4542-b880-a1bc0988832c","command_center_event_id":"47918e9d-8812-404b-976f-192ac581372a"},{"id":"1223e3b0-3526-448b-8856-f25692f965c6","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","cc-execution/runtime-proof":"success"},"mainSha":"b415a30abebc9f61f066a630a95a019ceb59cfc3","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof"],"sourceSha":"b415a30abebc9f61f066a630a95a019ceb59cfc3","releaseState":"verified","sourceInMain":true,"compareStatus":"identical","releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false},"releaseTargetStates":{"ccExecution":"success"},"requestContractHash":"374ce1902f635f91be29acb1a80f7641ddea81f4e5d803c57533a6ce0276f3c1","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/6361","runId":6361,"status":"success","sourceSha":"b415a30abebc9f61f066a630a95a019ceb59cfc3","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true,"targetStates":{"ccExecution":"success"},"targetJobCount":7,"observedTargetStates":{"ccExecution":"success"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"b415a30abebc9f61f066a630a95a019ceb59cfc3","proofGate":"cc_execution_historical_runtime_identity_verified","deploymentId":"forgejo-main-b415a30abebc9f61f066a630a95a019ceb59cfc3","compareStatus":"exact_release_workflow_runtime_verified","workflowRunId":6361,"identitySource":"canonical_release_workflow_exact_runtime_identity","runtimeVersion":"1.58.77-mcp-oauth-es256","containsSourceSha":true,"historicalExactSourceProof":true},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-08T18:36:09.783398+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"b415a30abebc9f61f066a630a95a019ceb59cfc3","external_id":null,"receipt_type":"canonical_release_status","idempotency_key":"mission:533967b3-3120-45c1-9076-b46ae519bb75:forgejo-release-status:b415a30abebc9f61f066a630a95a019ceb59cfc3:verified:forgejo-main/source=success|forgejo-release/workflow=success|cc-execution/runtime-proof=success","mission_step_id":"efb173f4-dbd4-4218-911d-a72b5a91d52e","command_center_event_id":"533967b3-3120-45c1-9076-b46ae519bb75"},{"id":"1225be0e-4132-4813-8a48-c889c26990ae","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-ae05ed91b4ca","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":null,"recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.99-positive-mutation-admission","prNumber":null,"terminal":false,"missionId":"ae05ed91-b4ca-4496-b44d-817894c15a94","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":3104,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":454,"providerAuthMs":0,"ledgerPrepareMs":454,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":454,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":454,"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":"ae05ed91-b4ca-4496-b44d-817894c15a94"},"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":3449,"likelyAffectedFiles":["src/PrivateAppShell.tsx"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-05T18:01:34.50673+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:ae05ed91-b4ca-4496-b44d-817894c15a94:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"c92e572e-3721-450e-b970-d2c006fa3010","command_center_event_id":"ae05ed91-b4ca-4496-b44d-817894c15a94"},{"id":"122691f7-6a3e-4bb4-9965-e6277d670f75","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-a50aaee3c45c","reason":"fresh_pr_provider_receipt_already_proves_auto_progress_gate_notifier_owns_next_state","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.151-mission-create-single-rpc","prNumber":2827,"terminal":false,"missionId":"a50aaee3-c45c-48f4-b190-ead1f4bc704d","operation":"execute_mission","proofGate":"repair_mission_fresh_pr_handed_off_to_gate","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":4216,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":0,"missionSetupMs":320,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":320,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":320,"repositoryMutationMs":4216,"repositoryProviderMs":3399,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":1956,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":320,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1443},"nextAction":"Canonical KnockLaunch Gate notifier and mission supervisor own progression from this exact PR head; do not synchronously poll Forgejo from the owner request.","receiptRef":{"mode":"full","missionId":"a50aaee3-c45c-48f4-b190-ead1f4bc704d"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3056,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-15T15:14:37.343175+00:00","proof_gate":"repair_mission_fresh_pr_handed_off_to_gate","source_sha":null,"external_id":"2827","receipt_type":"execute_mission","idempotency_key":"mission:a50aaee3-c45c-48f4-b190-ead1f4bc704d:execute_mission:repair_mission_fresh_pr_handed_off_to_gate:current-generation","mission_step_id":"27fc7d87-abcd-4b52-9443-7fb57f3ca39b","command_center_event_id":"a50aaee3-c45c-48f4-b190-ead1f4bc704d"},{"id":"12273ce3-636a-44de-8356-1ab428ec517f","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\":\"owner_progress_heartbeat\",\"status\":\"waiting\",\"proofGate\":\"owner_progress_heartbeat\"},\"activeStep\":{\"key\":\"implementation\",\"status\":\"waiting\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"pull_request\",\"status\":\"waiting\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"reconcile_release\",\"lane\":\"production-release-conductor\",\"reason\":\"merged_source_requires_release_proof\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_release\",\"recoveryOwner\":\"production-release-conductor\"},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"visual_proof\",\"deadlineAt\":\"2026-10-06T08:33:13.056202+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":null,\"prNumber\":5163,\"sourceSha\":\"d059e784c8fb33ceeb0e36baec00e818ef3753e8\",\"deploymentId\":\"forgejo-main-d059e784c8fb\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T08:15:37.288542+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:6cd825d0-ddfe-4532-8e8e-5f72704f5be5:owner-progress-heartbeat:119418302","mission_step_id":"8f1c0a7d-df5b-4529-9b5e-b41c824b98db","command_center_event_id":"6cd825d0-ddfe-4532-8e8e-5f72704f5be5"},{"id":"122c59f8-3c3c-4ea2-be12-9a46a45470d9","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-5296af7648d5","reason":"pull_request_gate_missing","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.151-mission-create-single-rpc","prNumber":2833,"terminal":false,"missionId":"5296af76-48d5-465a-ba28-f77eb9c78f5c","operation":"execute_mission","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":10234,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":2652,"approvedPlanMs":0,"missionSetupMs":1286,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":1155,"ledgerReconcileMs":0,"lineageReconcileMs":131,"resolvePreflightMs":1286,"repositoryMutationMs":7575,"repositoryProviderMs":3850,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":3454,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":1155,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":396},"nextAction":"Reconcile this same mission and pull request after the exact-head KnockLaunch Gate changes state.","receiptRef":{"mode":"full","missionId":"5296af76-48d5-465a-ba28-f77eb9c78f5c"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1517,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-15T16:10:05.058624+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"2833","receipt_type":"execute_mission","idempotency_key":"mission:5296af76-48d5-465a-ba28-f77eb9c78f5c:execute_mission:repair_mission_waiting_for_gate:current-generation","mission_step_id":"4b934784-272b-48ce-83f7-733610a07571","command_center_event_id":"5296af76-48d5-465a-ba28-f77eb9c78f5c"},{"id":"122e61f0-6be7-4d82-9528-4347be72fa53","source":"durable-mission-ledger","status":"pending","payload":{"sourceSha":"ee2bed51ee56746831d4275b356702b0f4142535","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-live-edit-godmode-auth","satisfied":false,"statement":"Canonical GodMode users who can open GodMode Live Edit can successfully invoke live_edit_plan without weakening unrelated operator-respond authorization.","proofConditionIds":["proof-production","proof-interaction"]}],"satisfied":false,"constraints":[{"id":"capability-completeness","satisfied":true,"statement":"Every dependency used by the Live Edit Sidekick authorization repair must be wired and proven through the applicable backend runtime, authentication/authorization, release ownership, and live production behavior.","proofConditionIds":["proof-production"]},{"id":"atomic-capability-lifecycle","satisfied":false,"statement":"The authorization repair is not accepted until Gate passes, affected targets release, and claim-matched production interaction succeeds; unrelated operator-respond capabilities must remain unchanged.","proofConditionIds":["proof-production","proof-interaction"]},{"id":"authorization-scope","satisfied":false,"statement":"Broaden authorization only for action live_edit_plan to canonical GodMode plus the existing tenant owner/admin path. Do not broaden mission control, history, console answer, repository, or other operator-respond actions.","proofConditionIds":["proof-production","proof-interaction"]},{"id":"visual-artifact-scope","satisfied":false,"statement":"Acceptance is limited to the PCG dashboard Live Edit interaction; do not redesign the dashboard or introduce unrelated visual surfaces.","proofConditionIds":["proof-interaction"]},{"id":"visual-content-truth","satisfied":false,"statement":"Do not invent business content, metrics, customer data, or visual facts during the acceptance interaction.","proofConditionIds":["proof-interaction"]},{"id":"tenant-visual-isolation","satisfied":false,"statement":"Acceptance work is isolated to PCG and must not import or mutate another tenant's identity, content, or state.","proofConditionIds":["proof-interaction"]},{"id":"visual-viewport-authority","satisfied":false,"statement":"Desktop is the authoritative viewport for this targeted corrective interaction proof.","proofConditionIds":["proof-interaction"]}],"contractHash":"ed6761f5f47a33b86671823ef6ea2200d19c1817ab34788a539030fd4caf1d57","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":{"supabaseEdge":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["supabaseEdge"],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"migrationReleaseVerified":null,"releaseRequestContractHash":"ed6761f5f47a33b86671823ef6ea2200d19c1817ab34788a539030fd4caf1d57"},"required":true,"satisfied":true},{"id":"proof-interaction","kind":"visual","evidence":{"modeBound":true,"claimBound":true,"routeBound":true,"witnessMode":"observe","witnessRoute":"/pcg/DASHBOARD","currentSourceSha":"ee2bed51ee56746831d4275b356702b0f4142535","witnessSourceSha":"ee2bed51ee56746831d4275b356702b0f4142535","verificationState":null,"witnessRequestContractHash":"ed6761f5f47a33b86671823ef6ea2200d19c1817ab34788a539030fd4caf1d57"},"required":true,"satisfied":false}],"validationErrors":[],"pendingProofKinds":["visual"],"activeReleaseTargets":["supabaseEdge"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"9602e177-0cbb-496c-bdf5-2fbc93f1b859","created_at":"2026-09-29T04:43:51.718955+00:00","proof_gate":"request_contract_pending","source_sha":"ee2bed51ee56746831d4275b356702b0f4142535","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:2a3a900f-81fb-4a47-bf0e-5b942206cce3:request-contract:ed6761f5f47a33b86671823ef6ea2200d19c1817ab34788a539030fd4caf1d57:ee2bed51ee56746831d4275b356702b0f4142535:pending:visual","mission_step_id":"a17a4a89-a290-4559-a7eb-688704152d83","command_center_event_id":"2a3a900f-81fb-4a47-bf0e-5b942206cce3"},{"id":"12329126-f171-460f-be3c-047358640c25","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":null,"reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.46.4-pr-head-integrity","prNumber":120,"terminal":false,"missionId":"68e017e3-1ec8-474b-92cb-062a65edf50e","operation":"ship_and_prove","proofGate":"canonical_release_dispatched","sourceSha":"a9f4697ff72ed7701a5b5b411f1bd508caca8e9e","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"68e017e3-1ec8-474b-92cb-062a65edf50e"},"performance":null,"deploymentId":"forgejo-main-a9f4697ff72e","workflowRunId":360,"releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":2064,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-15T14:01:04.075194+00:00","proof_gate":"canonical_release_dispatched","source_sha":"a9f4697ff72ed7701a5b5b411f1bd508caca8e9e","external_id":"forgejo-main-a9f4697ff72e","receipt_type":"ship_and_prove","idempotency_key":"mission:68e017e3-1ec8-474b-92cb-062a65edf50e:ship_and_prove:canonical_release_dispatched:a9f4697ff72ed7701a5b5b411f1bd508caca8e9e:360","mission_step_id":"64f28b1c-5f78-45a4-a33e-c90cdd9cdcc1","command_center_event_id":"68e017e3-1ec8-474b-92cb-062a65edf50e"},{"id":"12334f50-77bf-4436-a80f-667a4ce8bc93","source":"cc-execution","status":"authorized","payload":{"paths":["workers/cc-execution/test/release-orchestration-invariants.test.js"],"reason":"Owner authorized systemic control-plane reliability repair; this is the deterministic same-PR test-contract correction proven by gate run 5061.","baseSha":"8016b62feeb85876167c2145e8f6e081b549fddb","issuedAt":1788489265107,"expiresAt":1788489445107,"missionId":"cd88e721-f570-406b-b194-53230b2acb03","singleUse":true,"authorizationId":"a983cae0-df7e-4d61-a6c4-64e7ffd793dc"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-04T02:34:26.003644+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"8016b62feeb85876167c2145e8f6e081b549fddb","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:a983cae0-df7e-4d61-a6c4-64e7ffd793dc","mission_step_id":"0a7f4f42-1fa1-48f7-9092-fe224b15af88","command_center_event_id":"cd88e721-f570-406b-b194-53230b2acb03"},{"id":"12335e25-4d6e-43fe-a785-18b22e3d9065","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-mtre8wjw","prNumber":2072,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"7bab444b7d8e7223da9347125c70d9bf19ae3580","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"766cfaa7-ac42-46c8-bbef-69d13268a29d","created_at":"2026-09-07T15:39:25.005222+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"7bab444b7d8e7223da9347125c70d9bf19ae3580","external_id":"2072","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:93895101-067f-4898-bbe5-e9844a68c6b0:merged-pr:2072:7bab444b7d8e7223da9347125c70d9bf19ae3580","mission_step_id":"4856342c-d183-4f76-8e17-bf6f9c2719e7","command_center_event_id":"93895101-067f-4898-bbe5-e9844a68c6b0"},{"id":"12376e09-2857-456f-9617-351276b27f5f","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","frontend-cloudflare/live":"success"},"mainSha":"928a22219303ff2f4818d96afabfcdf4c2da099d","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"928a22219303ff2f4818d96afabfcdf4c2da099d","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":"2137d3d3019ab7cc41edef13e61fb8503c14070c0b21698bcca533aaa2786c37","forgejoWorkflowProof":{"runId":10291,"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-20T07:22:14.627583+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"928a22219303ff2f4818d96afabfcdf4c2da099d","external_id":"forgejo-main-928a22219303","receipt_type":"canonical_release_status","idempotency_key":"mission:804a8bbe-2187-480e-9f5c-f514c1f38ac5:forgejo-release-status:928a22219303ff2f4818d96afabfcdf4c2da099d:verified:forgejo-main/source=success|forgejo-release/workflow=success|frontend-cloudflare/live=success","mission_step_id":"b9fbb883-9791-434b-9458-3ea29af5a610","command_center_event_id":"804a8bbe-2187-480e-9f5c-f514c1f38ac5"},{"id":"1238c900-9640-4015-a334-aa6a12dc13d5","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-7925930cbb58","prNumber":2355,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"fc96d367aa91254549c3672ac57ca171dd115a44","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-11T02:10:27.950859+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"fc96d367aa91254549c3672ac57ca171dd115a44","external_id":"2355","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:7925930c-bb58-4253-b732-62f89ffd0525:merged-pr:2355:fc96d367aa91254549c3672ac57ca171dd115a44","mission_step_id":"ec9d937a-44d8-4793-b4d7-9d2eb371c261","command_center_event_id":"7925930c-bb58-4253-b732-62f89ffd0525"},{"id":"123a0dfe-9c4c-4c6f-b45f-afe3c5e0e2bc","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":null,"reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.31.27-tenant-scope-security","prNumber":4532,"terminal":false,"missionId":"defdf862-c972-416d-8e54-b161042ac343","operation":"ship_and_prove","proofGate":"canonical_release_dispatched","sourceSha":"c1df8d56fa871081f618904475cb6a2cfd97f08c","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"defdf862-c972-416d-8e54-b161042ac343"},"performance":null,"deploymentId":"canonical-release-c1df8d56fa87","workflowRunId":31401866839,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1190,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-10T15:07:23.129308+00:00","proof_gate":"canonical_release_dispatched","source_sha":"c1df8d56fa871081f618904475cb6a2cfd97f08c","external_id":"canonical-release-c1df8d56fa87","receipt_type":"ship_and_prove","idempotency_key":"mission:defdf862-c972-416d-8e54-b161042ac343:ship_and_prove:canonical_release_dispatched:c1df8d56fa871081f618904475cb6a2cfd97f08c:31401866839","mission_step_id":"455d4729-a961-4052-91e6-04c7b0909e4c","command_center_event_id":"defdf862-c972-416d-8e54-b161042ac343"},{"id":"123bb52c-698a-4c9d-bd08-e837caa48b1d","source":"cc-execution","status":"complete","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/vista-readability-navigation-20260829","reason":null,"status":"complete","metrics":{"receiptBytes":8864,"releaseCount":0,"toolCallCount":6,"repeatedCallCount":2,"ownerInterruptionCount":0},"version":"1.56.2-queue-readiness-budget","prNumber":1040,"terminal":false,"missionId":"61158ee4-e07e-4547-98fe-0b1411d18059","operation":"execute_mission","proofGate":"repair_mission_prepared","sourceSha":null,"timingsMs":{"handlerMs":21429,"missionSetupMs":1060},"nextAction":"continue_batch_or_ship_and_prove","receiptRef":{"mode":"full","missionId":"61158ee4-e07e-4547-98fe-0b1411d18059"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":6220,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"71b397ba-b9ad-496b-914c-985d97dbb12e","created_at":"2026-08-29T18:07:41.438162+00:00","proof_gate":"repair_mission_prepared","source_sha":null,"external_id":"1040","receipt_type":"execute_mission","idempotency_key":"mission:61158ee4-e07e-4547-98fe-0b1411d18059:execute_mission:repair_mission_prepared:current-generation","mission_step_id":"fbac0b22-7f86-4cb9-be8f-08a45b135a38","command_center_event_id":"61158ee4-e07e-4547-98fe-0b1411d18059"},{"id":"123e930f-c1be-4c05-b4f3-ac869498b719","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"a6bcd9b0eb089e83a77526728edff6dee4d7bfec","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"a6bcd9b0eb089e83a77526728edff6dee4d7bfec","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":"07ce40e2c08414f1f145f5d8d635eb9e4561f4c12cf179a94d140908d1ace4a9","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/7220","runId":7220,"status":"running","sourceSha":"a6bcd9b0eb089e83a77526728edff6dee4d7bfec","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":"766cfaa7-ac42-46c8-bbef-69d13268a29d","created_at":"2026-09-11T22:04:37.068936+00:00","proof_gate":"canonical_release_pending","source_sha":"a6bcd9b0eb089e83a77526728edff6dee4d7bfec","external_id":"forgejo-main-a6bcd9b0eb08","receipt_type":"canonical_release_status","idempotency_key":"mission:6acf6026-2379-4faa-831e-78c4c7016cf4:forgejo-release-status:a6bcd9b0eb089e83a77526728edff6dee4d7bfec:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"6dc31b3f-ed6e-43a2-8b61-1c4056d55ef0","command_center_event_id":"6acf6026-2379-4faa-831e-78c4c7016cf4"},{"id":"1240d5cd-74e1-4248-b25e-9a5ea955f8f4","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\":\"canonical_release_status\",\"status\":\"pending\",\"proofGate\":\"canonical_release_ancestry_pending\"},\"activeStep\":{\"key\":\"preflight\",\"status\":\"ready\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"implementation\",\"status\":\"pending\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"reconcile_release\",\"lane\":\"production-release-conductor\",\"reason\":\"merged_source_requires_release_proof\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_release\",\"recoveryOwner\":\"production-release-conductor\"},\"acceptance\":{\"total\":6,\"verified\":0,\"pending\":6,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"preflight\",\"implementation\",\"pull_request\",\"release\",\"runtime_proof\",\"visual_proof\"]},\"stall\":{\"stalled\":true,\"reason\":\"step_deadline_exceeded\",\"step\":\"release\",\"deadlineAt\":\"2026-08-05T17:42:21.009266+00:00\",\"recoveryAction\":\"reconcile_release\"},\"blocker\":null,\"terminal\":false,\"branch\":null,\"prNumber\":4056,\"sourceSha\":\"f00f2d49a3acbc26dd20e41ca1f18812b83c4601\",\"deploymentId\":\"canonical-release-f00f2d49a3ac\"}"},"tenant_id":"fe5cc9d9-c2fe-4062-84c7-a334663cd63c","created_at":"2026-10-03T21:38:33.582283+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:c77be0e4-5ba1-45ef-9ec8-6484714e4246:owner-progress-heartbeat:119404234","mission_step_id":"7a61d550-95d9-4228-b525-464ca69bea88","command_center_event_id":"c77be0e4-5ba1-45ef-9ec8-6484714e4246"},{"id":"12420bf0-d9d5-4785-9a1c-7ba475982714","source":"cc-execution","status":"blocked","payload":{"reason":"control_plane_maintenance_authorization_required","fingerprint":"cf9db2661bcf08393b33f22ec1e216b8bea5234950919ab88c749d9ce3b5942d"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T01:15:42.90243+00:00","proof_gate":"repository_mutation_intent_deterministic_failure","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent_blocked","idempotency_key":"mission:e204ac97-e3d4-4a98-8956-2addf314a98d:repository-mutation-intent-blocked:cf9db2661bcf08393b33f22ec1e216b8bea5234950919ab88c749d9ce3b5942d","mission_step_id":"4ada48c6-d066-4e38-bc43-6fdf624d14e5","command_center_event_id":"e204ac97-e3d4-4a98-8956-2addf314a98d"},{"id":"12424eb9-0f25-433e-b9e9-ea13b7d7459f","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":null,"reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":null,"recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.48-guarded-legacy-pr-retirement","prNumber":null,"terminal":false,"missionId":"180d76ac-53b8-4aed-b2f1-7e7ca157c355","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1339,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":482,"providerAuthMs":0,"ledgerPrepareMs":482,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":482,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":482,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Synthesize exact mutation from the resolved authoritative source targets and continue this same mission.","receiptRef":{"mode":"full","missionId":"180d76ac-53b8-4aed-b2f1-7e7ca157c355"},"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":1918,"likelyAffectedFiles":["src/pages/tennex/TennexGuidedDialer.tsx"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T13:48:59.676369+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:180d76ac-53b8-4aed-b2f1-7e7ca157c355:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"cdcce8d2-0394-44d5-960c-e78cffa6d096","command_center_event_id":"180d76ac-53b8-4aed-b2f1-7e7ca157c355"},{"id":"12431a48-ec8c-41cb-9d3b-2e01e0ed8c07","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/redfish-global-background","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":5102,"releaseCount":0,"toolCallCount":2,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.2-visual-witness-proof-projection","prNumber":1272,"terminal":false,"missionId":"c86d7559-cb6c-400d-9587-d1fb1bfb6ddd","operation":"execute_mission","proofGate":"canonical_release_dispatched","sourceSha":"d09477b0e95696b2b9c9af6a5e31e831cb89393f","timingsMs":{"handlerMs":15703,"prReadinessMs":1842,"approvedPlanMs":5771,"missionSetupMs":362,"shipAndProveMs":7714},"nextAction":null,"receiptRef":{"mode":"full","missionId":"c86d7559-cb6c-400d-9587-d1fb1bfb6ddd"},"performance":null,"deploymentId":"forgejo-main-d09477b0e956","workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3704,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"de8369b6-a78f-40bb-ae1f-28ffca62bc7e","created_at":"2026-09-01T15:56:28.907237+00:00","proof_gate":"canonical_release_dispatched","source_sha":"d09477b0e95696b2b9c9af6a5e31e831cb89393f","external_id":"forgejo-main-d09477b0e956","receipt_type":"execute_mission","idempotency_key":"mission:c86d7559-cb6c-400d-9587-d1fb1bfb6ddd:execute_mission:canonical_release_dispatched:current-generation","mission_step_id":"7b512286-4991-4e00-9b00-a2dfa3b72b86","command_center_event_id":"c86d7559-cb6c-400d-9587-d1fb1bfb6ddd"},{"id":"1243f769-07b2-4081-88db-221803b33841","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"da05395ba22fa53af4a5a6a2603ebb36df4b6cff","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"da05395ba22fa53af4a5a6a2603ebb36df4b6cff","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"pending"},"requestContractHash":"77e09371c0ff3121962ad2d27966df1168780622affb09f51a164449b4b8d4c1","forgejoWorkflowProof":{"runId":13156,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"frontend":"pending"},"targetJobCount":6,"observedTargetStates":{"frontend":"pending"}},"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"9602e177-0cbb-496c-bdf5-2fbc93f1b859","created_at":"2026-09-29T19:11:08.333871+00:00","proof_gate":"canonical_release_pending","source_sha":"da05395ba22fa53af4a5a6a2603ebb36df4b6cff","external_id":"forgejo-main-da05395ba22f","receipt_type":"canonical_release_status","idempotency_key":"mission:cbe6b4ff-532a-4188-97d0-6f53900b0ad9:forgejo-release-status:da05395ba22fa53af4a5a6a2603ebb36df4b6cff:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"d63b9153-a265-4da5-b785-d4ccfc615da3","command_center_event_id":"cbe6b4ff-532a-4188-97d0-6f53900b0ad9"},{"id":"1245a8b3-5123-44a0-b3e5-e81dbca5539f","source":"cc-execution","status":"authorized","payload":{"paths":["workers/cc-execution/test/event-driven-auto-merge-invariants.test.js"],"reason":"Complete the same paul-light Gate proof after authoritative PR readback proved the stale refresh already landed; only add the missing node:path test import.","baseSha":"d26c4e14435a33a72981dc674b6127f472fc9646","issuedAt":1788530639968,"expiresAt":1788530819968,"missionId":"f15718c8-e8a7-4f81-bb96-083fe4d341b8","authorizationId":"a4ae9bd0-7a74-4a40-98fe-b4c02841d770","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-04T14:04:00.343572+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"d26c4e14435a33a72981dc674b6127f472fc9646","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:a4ae9bd0-7a74-4a40-98fe-b4c02841d770","mission_step_id":"b0f72895-d16a-49e0-b986-2a385bdd680f","command_center_event_id":"f15718c8-e8a7-4f81-bb96-083fe4d341b8"},{"id":"124b58af-65cd-48d2-be1b-ffb40c3df99e","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-6c10d0b5485c","reason":"retryable_provider_transport:GET:The operation was aborted due to timeout","status":"retryable","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.182-witness-render-cold-start-aware","prNumber":null,"terminal":false,"missionId":"6c10d0b5-485c-4ea6-a507-e3484caca23a","operation":"execute_mission","proofGate":"repair_mission_execution_retryable","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":24215,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":24215,"missionSetupMs":264,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":264,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":264,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":264,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"6c10d0b5-485c-4ea6-a507-e3484caca23a"},"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-18T12:30:58.801879+00:00","proof_gate":"repair_mission_execution_retryable","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:6c10d0b5-485c-4ea6-a507-e3484caca23a:execute_mission:repair_mission_execution_retryable:current-generation","mission_step_id":"aa09e0d8-9035-4de5-9adf-d349d9d25922","command_center_event_id":"6c10d0b5-485c-4ea6-a507-e3484caca23a"},{"id":"125150f2-163d-46a2-86cd-6dd51cd4e539","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Unfreeze the control plane for the Forgejo Actions watchdog repair. Correct the live-proof failure from the first generation: do not use the Forgejo host's public Cloudflare hairpin as an Actions health signal. Restore the host watchdog to its proven base `/api/healthz` probe and existing bounded restart safeguards. Move the Actions brownout probe into the independent cc-execution Cloudflare observer, where `/api/healthz` and an authenticated `noel/KnockLaunchOS` Actions-runs API read run in parallel under the existing probe timeout and are combined for hard-failure, slow, and recovery thresholds. If that external combined observer becomes degraded while the fresh signed host watchdog still proves Forgejo base health, queue the existing allowlisted `forgejo_recover` command through the durable host queue, at most once per five minutes, with the host's existing operator cooldown/hourly budget remaining authoritative. This must detect and recover the exact Actions-only 502 class without false host restarts. Ship the corrective generation through one fresh ai/* branch, one PR, KnockLaunch Gate, squash merge, only affected cc-execution plus host-agent refresh, then prove cloud observer health, signed host heartbeat health, and a live Actions read.","wordingChanged":false,"canonicalIntent":"Unfreeze the control plane for the Forgejo Actions watchdog repair. Correct the live-proof failure from the first generation: do not use the Forgejo host's public Cloudflare hairpin as an Actions health signal. Restore the host watchdog to its proven base `/api/healthz` probe and existing bounded restart safeguards. Move the Actions brownout probe into the independent cc-execution Cloudflare observer, where `/api/healthz` and an authenticated `noel/KnockLaunchOS` Actions-runs API read run in parallel under the existing probe timeout and are combined for hard-failure, slow, and recovery thresholds. If that external combined observer becomes degraded while the fresh signed host watchdog still proves Forgejo base health, queue the existing allowlisted `forgejo_recover` command through the durable host queue, at most once per five minutes, with the host's existing operator cooldown/hourly budget remaining authoritative. This must detect and recover the exact Actions-only 502 class without false host restarts. Ship the corrective generation through one fresh ai/* branch, one PR, KnockLaunch Gate, squash merge, only affected cc-execution plus host-agent refresh, then prove cloud observer health, signed host heartbeat health, and a live Actions read.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"outcome-actions-detection","statement":"The Forgejo control plane must not report healthy when the externally reachable KnockLaunchOS Actions-runs API is returning 5xx, timing out, or failing authentication while `/api/healthz` still passes.","proofConditionIds":["proof-repository","proof-control-plane-runtime"]},{"id":"outcome-self-heal","statement":"After the existing consecutive degradation threshold, an external Actions-only brownout queues the existing allowlisted Forgejo recovery path when the signed host watchdog still proves base health; existing host restart cooldown and hourly budgets remain authoritative.","proofConditionIds":["proof-repository","proof-control-plane-runtime","proof-host-runtime"]},{"id":"outcome-no-false-hairpin","statement":"The host-local watchdog does not use the host-to-public-Cloudflare Actions hairpin as a restart signal and retains its proven bounded base-health probe.","proofConditionIds":["proof-repository","proof-host-runtime"]},{"id":"outcome-live","statement":"After release and host refresh, cc-execution self-heal is healthy, the signed host heartbeat is healthy, and a live authenticated KnockLaunchOS Actions-runs read succeeds.","proofConditionIds":["proof-control-plane-runtime","proof-host-runtime","proof-actions-runtime"]}],"objective":"Unfreeze the control plane for the Forgejo Actions watchdog repair. Correct the live-proof failure from the first generation: do not use the Forgejo host's public Cloudflare hairpin as an Actions health signal. Restore the host watchdog to its proven base `/api/healthz` probe and existing bounded restart safeguards. Move the Actions brownout probe into the independent cc-execution Cloudflare observer, where `/api/healthz` and an authenticated `noel/KnockLaunchOS` Actions-runs API read run in parallel under the existing probe timeout and are combined for hard-failure, slow, and recovery thresholds. If that external combined observer becomes degraded while the fresh signed host watchdog still proves Forgejo base health, queue the existing allowlisted `forgejo_recover` command through the durable host queue, at most once per five minutes, with the host's existing operator cooldown/hourly budget remaining authoritative. This must detect and recover the exact Actions-only 502 class without false host restarts. Ship the corrective generation through one fresh ai/* branch, one PR, KnockLaunch Gate, squash merge, only affected cc-execution plus host-agent refresh, then prove cloud observer health, signed host heartbeat health, and a live Actions read.","constraints":[{"id":"constraint-budgets","statement":"Preserve the existing automatic, emergency, and operator Forgejo restart cooldown/hourly budgets and do not add a second restart mechanism.","proofConditionIds":["proof-repository"]},{"id":"constraint-scope","statement":"Use the same repair mission corrective generation and deploy only cc-execution plus the Forgejo host-agent refresh affected by this repair.","proofConditionIds":["proof-repository"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-repository","kind":"repository","claim":"Current Forgejo main contains the parallel external health plus authenticated Actions observer, bounded durable recovery queue policy, restored host base probe, and updated authoritative capability contract.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"proof-control-plane-runtime","kind":"runtime","claim":"Live cc-execution reports Forgejo self-heal healthy using both external base health and authenticated Actions probe after the corrective release.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"proof-host-runtime","kind":"runtime","claim":"The live signed Forgejo host watchdog heartbeat is fresh, verified, timer-active, and base-health passing after the corrected host agent is installed.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"proof-actions-runtime","kind":"runtime","claim":"A live authenticated KnockLaunchOS Actions-runs read succeeds after the corrective release.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}],"validationErrors":[]},"requestContractHash":"7042bcffe001ffb92db181389e5fd22674220b1fc1f484941a9800a82f8d9ff2","requestContractRevision":2,"previousRequestContractHash":"b00ecd3a9cf9e83c591c784f2f11db70e13b4cc26f37de927f06734de72c3912"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-06T18:24:58.908881+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:eefb30a0-f136-4476-a59c-0e23c11e6147:request-contract:7042bcffe001ffb92db181389e5fd22674220b1fc1f484941a9800a82f8d9ff2","mission_step_id":"6bf0ef62-3567-47c1-98e5-b545dc2a6f21","command_center_event_id":"eefb30a0-f136-4476-a59c-0e23c11e6147"},{"id":"1252c305-d961-4d76-95cd-bb0148a6d790","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-mtion5zt","reason":"existing_branch_refresh_failed:1251:200","status":"blocked","metrics":{"receiptBytes":11483,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.2-visual-witness-proof-projection","prNumber":null,"terminal":false,"missionId":"778724fb-6968-4c05-b313-f04f09fb202d","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"handlerMs":4323,"prReadinessMs":0,"approvedPlanMs":4323,"missionSetupMs":3855,"shipAndProveMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"778724fb-6968-4c05-b313-f04f09fb202d"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":995,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"de8369b6-a78f-40bb-ae1f-28ffca62bc7e","created_at":"2026-09-01T13:14:29.880868+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:778724fb-6968-4c05-b313-f04f09fb202d:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"6f961f76-3fa2-4293-9da9-2dd8057473d9","command_center_event_id":"778724fb-6968-4c05-b313-f04f09fb202d"},{"id":"1252de9c-a1d8-4884-8f58-5805662930c7","source":"durable-mission-ledger","status":"pending","payload":{"sourceSha":"d77f4139e894eec82e2b7895f84318943f4c7b94","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-pcg-workspace","satisfied":false,"statement":"PCG workspace and card vault present the real four-mode grading lifecycle and truthful record information without replacing real imported data.","proofConditionIds":["proof-repository","proof-runtime"]},{"id":"outcome-pcg-routing","satisfied":false,"statement":"The dedicated PCG shell continues to own /pcg/workspace and /pcg/card-vault and both routes load the canonical PCG workspace experience.","proofConditionIds":["proof-repository","proof-runtime"]}],"satisfied":false,"constraints":[{"id":"constraint-real-data","satisfied":false,"statement":"Preserve existing real imported cards and tenant isolation; do not substitute demo data or invent provider success.","proofConditionIds":["proof-repository","proof-runtime"]},{"id":"constraint-no-backend-schema","satisfied":false,"statement":"Do not add or modify backend database schema in this bounded workspace alignment pass.","proofConditionIds":["proof-repository"]},{"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-runtime"]},{"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-runtime"]}],"contractHash":"65bdbbe23b869c76e68755bcb72f965bc0ec1db467465fe18d6d663463b507a3","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":"65bdbbe23b869c76e68755bcb72f965bc0ec1db467465fe18d6d663463b507a3","unsuccessfulTargets":[],"activeReleaseTargets":["frontend"],"allowedReleaseTargets":["frontend"],"repositoryProofStatus":"required","expectedRepositoryPath":null,"namedGateTestSatisfied":true,"requiredReleaseTargets":["frontend"],"migrationReleaseVerified":null,"repositoryConditionBound":false,"repositoryProofSourceSha":null},"required":true,"satisfied":false},{"id":"proof-runtime","kind":"runtime","evidence":{"reason":null,"satisfied":true,"releaseState":"verified","missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{"frontend":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["frontend"],"allowedReleaseTargets":["frontend"],"requiredReleaseTargets":["frontend"],"migrationReleaseVerified":null,"releaseRequestContractHash":"65bdbbe23b869c76e68755bcb72f965bc0ec1db467465fe18d6d663463b507a3"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":["repository"],"activeReleaseTargets":["frontend"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":2},"tenant_id":"9602e177-0cbb-496c-bdf5-2fbc93f1b859","created_at":"2026-10-04T09:47:32.660533+00:00","proof_gate":"request_contract_pending","source_sha":"d77f4139e894eec82e2b7895f84318943f4c7b94","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:ba9db0b6-f1ca-4c4e-87e2-026c5adbc27d:request-contract:65bdbbe23b869c76e68755bcb72f965bc0ec1db467465fe18d6d663463b507a3:d77f4139e894eec82e2b7895f84318943f4c7b94:pending:repository","mission_step_id":"91c2f47f-8a9d-4962-bf86-716b002b8e7f","command_center_event_id":"ba9db0b6-f1ca-4c4e-87e2-026c5adbc27d"},{"id":"12565a0d-b299-452f-aacf-8d4315938fe7","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-403bc3959d19","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":1,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.199-durable-chat-recovery-index","prNumber":3327,"terminal":false,"missionId":"403bc395-9d19-486a-9409-06e51cc91573","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":8343,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":2572,"missionSetupMs":1318,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":1161,"ledgerReconcileMs":0,"lineageReconcileMs":157,"resolvePreflightMs":1318,"repositoryMutationMs":5771,"repositoryProviderMs":5771,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":3380,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":1161,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":2391},"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":"403bc395-9d19-486a-9409-06e51cc91573"},"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":4404,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-21T00:27:16.238577+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3323","receipt_type":"execute_mission","idempotency_key":"mission:403bc395-9d19-486a-9409-06e51cc91573:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"1f5df87c-5bd9-4d2a-8515-afdd357d4e19","command_center_event_id":"403bc395-9d19-486a-9409-06e51cc91573"},{"id":"12572554-edca-430d-a273-385f8674b4f7","source":"cc-execution","status":"recorded","payload":{"objective":"Adopt existing green PR #913 exactly as-is with no further source mutation, squash merge it, and release frontend only. Then prove the large La Vista navigation/scale shell is live on Calendar, Messages, Documents and prove dashboard photos still render. This is the first live batch of the senior-accessibility request; calendar density and guest empty-state follow immediately from the new main because the existing-branch updater is broken.","tenantRef":"la-vista-del-mar","receivedAt":"2026-08-28T03:55:21.058Z","fingerprint":"30b9e91c1804ccd16db0c435b0292b7ad7e43bc1cd5577683b82e84bebf90965","workstreamRef":"lavistadelmar","conversationId":null,"canonicalBranch":"ai/vista-senior-accessibility-pass-20260828","requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Adopt existing green PR #913 exactly as-is with no further source mutation, squash merge it, and release frontend only. Then prove the large La Vista navigation/scale shell is live on Calendar, Messages, Documents and prove dashboard photos still render. This is the first live batch of the senior-accessibility request; calendar density and guest empty-state follow immediately from the new main because the existing-branch updater is broken.","wordingChanged":false,"canonicalIntent":"Adopt existing green PR #913 exactly as-is with no further source mutation, squash merge it, and release frontend only. Then prove the large La Vista navigation/scale shell is live on Calendar, Messages, Documents and prove dashboard photos still render. This is the first live batch of the senior-accessibility request; calendar density and guest empty-state follow immediately from the new main because the existing-branch updater is broken.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"outcome-app-shell","statement":"La Vista Calendar, Messages, and Documents have large persistent labeled navigation and larger senior-friendly UI controls live in production.","proofConditionIds":["proof-calendar","proof-messages","proof-documents"]},{"id":"outcome-photo-guard","statement":"The View and The Nest photos remain intact after this frontend-only release.","proofConditionIds":["proof-dashboard"]}],"objective":"Adopt existing green PR #913 exactly as-is with no further source mutation, squash merge it, and release frontend only. Then prove the large La Vista navigation/scale shell is live on Calendar, Messages, Documents and prove dashboard photos still render. This is the first live batch of the senior-accessibility request; calendar density and guest empty-state follow immediately from the new main because the existing-branch updater is broken.","constraints":[{"id":"constraint-existing-pr","statement":"No source changes beyond existing PR #913 are introduced in this batch.","proofConditionIds":["proof-production-release"]},{"id":"constraint-frontend-only","statement":"Release frontend only; no backend, Supabase, database, auth, or Edge Function target is deployed.","proofConditionIds":["proof-production-release"]},{"id":"constraint-media-frozen","statement":"No photo, media, R2, tenant-photo-studio, gallery, cover, or background binding is changed.","proofConditionIds":["proof-production-release","proof-dashboard"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production-release","kind":"runtime","claim":"Production is running the exact merged source from PR #913 and the release target is frontend only.","route":"/la-vista-del-mar/calendar","required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"proof-calendar","kind":"visual","claim":"On production, La Vista Calendar visibly has large persistent navigation and larger controls on desktop and mobile.","route":"/la-vista-del-mar/calendar","required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"proof-messages","kind":"visual","claim":"On production, La Vista Messages visibly has large persistent navigation, larger tabs and controls on desktop and mobile.","route":"/la-vista-del-mar/communications","required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"proof-documents","kind":"visual","claim":"On production, La Vista Documents visibly has large persistent navigation and larger controls on desktop and mobile.","route":"/la-vista-del-mar/documents","required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"proof-dashboard","kind":"visual","claim":"On production, The View and The Nest property photos still render on the La Vista dashboard on desktop and mobile.","route":"/la-vista-del-mar/dashboard","required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}],"validationErrors":[]},"requestedBranch":"ai/vista-senior-accessibility-pass-20260828","conversationContext":"{\"existingPrNumber\":913,\"existingHeadSha\":\"5a192bc6323d2623ab9a3b92f7dc0077f48e779f\",\"adoptExistingPr\":true,\"sourceMutationRequired\":false}","requestContractHash":"002563efc9b7bbf5495509264d2dd6683b670f8d7ba3db9b23afe69be181302d","requestContractRevision":1},"tenant_id":"71b397ba-b9ad-496b-914c-985d97dbb12e","created_at":"2026-08-28T03:55:21.586598+00:00","proof_gate":"tenant_workstream_contribution_recorded","source_sha":null,"external_id":null,"receipt_type":"tenant_workstream_contribution","idempotency_key":"mission:29dbae8f-9b53-4df7-91ea-b80cebf387d9:tenant-workstream-contribution:30b9e91c1804ccd16db0c435b0292b7ad7e43bc1cd5577683b82e84bebf90965","mission_step_id":null,"command_center_event_id":"29dbae8f-9b53-4df7-91ea-b80cebf387d9"},{"id":"1258ef71-2a39-4429-8c9c-3fe519d90b5e","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-f0ac1d5e587a","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":null,"recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.77-paul-heldout-repair","prNumber":null,"terminal":false,"missionId":"f0ac1d5e-587a-4296-9ce6-84d1af484100","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1065,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":530,"providerAuthMs":0,"ledgerPrepareMs":530,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":530,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":530,"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":"f0ac1d5e-587a-4296-9ce6-84d1af484100"},"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":4414,"likelyAffectedFiles":["supabase/functions/upsert-tenant-provider-secret/index.ts","supabase/functions/verify-tenant-provider/index.ts","supabase/functions/_shared/tenantCrypto.ts"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-03T16:13:05.547587+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:f0ac1d5e-587a-4296-9ce6-84d1af484100:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"96065568-11ca-48f9-8594-7565bd6ec3f0","command_center_event_id":"f0ac1d5e-587a-4296-9ce6-84d1af484100"},{"id":"125eb6a5-fd8a-4f92-b090-588dc1d9e2d7","source":"cc-execution","status":"recorded","payload":{"objective":"Make adaptive MISC sidebar navigation derive directly from the same normalized business operating blueprint used by the dashboard, then ship and verify C&C production.","tenantRef":"385f3582-1b06-5a13-85b5-ad36fa03b397","receivedAt":"2026-08-31T03:02:15.237Z","fingerprint":"c717b88f13e7166d3b921c15f644ccd2c43b1b105a95ea5bb07008d6d9bf5b70","workstreamRef":"385f35821b065a1385b5ad36fa03b397","conversationId":null,"canonicalBranch":"ai/objective-first-repair-mtgnj0do","requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Make adaptive MISC sidebar navigation derive directly from the same normalized business operating blueprint used by the dashboard, then ship and verify C&C production.","wordingChanged":false,"canonicalIntent":"Make adaptive MISC sidebar navigation derive directly from the same normalized business operating blueprint used by the dashboard, then ship and verify C&C production.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"sidebar-blueprint-parity","statement":"Adaptive MISC sidebars are generated from the same normalized BusinessOperatingBlueprint modules as the dashboard, with matching labels and routes.","proofConditionIds":["source","release","c-and-c-live"]},{"id":"remove-generic-baggage","statement":"Adaptive MISC sidebars no longer show unrelated generic items such as Messages, SMS Inbox, Activity, Canvassing, Academy, or Scripts & Rebuttals unless represented by the adaptive blueprint.","proofConditionIds":["source","c-and-c-live"]},{"id":"preserve-other-tenants","statement":"Non-MISC tenant navigation behavior remains unchanged.","proofConditionIds":["source"]}],"objective":"Make adaptive MISC sidebar navigation derive directly from the same normalized business operating blueprint used by the dashboard, then ship and verify C&C production.","constraints":[{"id":"no-experience-studio","statement":"Do not involve or revive Experience Studio.","proofConditionIds":["source"]},{"id":"shared-fix","statement":"Repair the shared adaptive navigation primitive, not only the C&C tenant.","proofConditionIds":["source"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"source","kind":"repository","claim":"Current Forgejo source makes adaptive MISC sidebar composition blueprint-driven and leaves non-MISC navigation on the existing registry path.","route":"https://app.knocklaunch.app/crm/MISC/demo-c-c-carpet-cleaning-1b5e576a/Dashboard","required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"release","kind":"runtime","claim":"The exact merged repair is deployed to the frontend production owner after the canonical gate and squash merge.","route":"https://app.knocklaunch.app/crm/MISC/demo-c-c-carpet-cleaning-1b5e576a/Dashboard","required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"c-and-c-live","kind":"visual","claim":"The live C&C sidebar includes Dashboard plus its business modules such as Customers, Estimates, Cleaning Jobs, Schedule, Invoices & Payments, Communications, Documents, Reports, and Profile as applicable, and does not show Messages, SMS Inbox, Activity, Canvassing, Academy, or Scripts & Rebuttals.","route":"https://app.knocklaunch.app/crm/MISC/demo-c-c-carpet-cleaning-1b5e576a/Dashboard","required":true,"expectedText":"Cleaning Jobs","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}],"validationErrors":[]},"requestedBranch":"ai/objective-first-repair-mtgnj0do","conversationContext":"{\"requestContract\":{\"version\":1,\"source\":\"owner_explicit\",\"objective\":\"The current C&C Carpet Cleaning tenant still has an inconsistent sidebar after the adaptive dashboard repair. Fix the shared adaptive navigation so the sidebar matches the business modules shown in the workspace and no generic CRM baggage leaks into adaptive tenants.\",\"outcomes\":[{\"id\":\"sidebar-blueprint-parity\",\"statement\":\"Adaptive MISC sidebars are generated from the same normalized BusinessOperatingBlueprint modules as the dashboard, with matching labels and routes.\",\"proofConditionIds\":[\"source\",\"release\",\"c-and-c-live\"]},{\"id\":\"remove-generic-baggage\",\"statement\":\"Adaptive MISC sidebars no longer show unrelated generic items such as Messages, SMS Inbox, Activity, Canvassing, Academy, or Scripts & Rebuttals unless represented by the adaptive blueprint.\",\"proofConditionIds\":[\"source\",\"c-and-c-live\"]},{\"id\":\"preserve-other-tenants\",\"statement\":\"Non-MISC tenant navigation behavior remains unchanged.\",\"proofConditionIds\":[\"source\"]}],\"constraints\":[{\"id\":\"no-experience-studio\",\"statement\":\"Do not involve or revive Experience Studio.\",\"proofConditionIds\":[\"source\"]},{\"id\":\"shared-fix\",\"statement\":\"Repair the shared adaptive navigation primitive, not only the C&C tenant.\",\"proofConditionIds\":[\"source\"]}],\"proofConditions\":[{\"id\":\"source\",\"kind\":\"repository\",\"claim\":\"Current Forgejo source makes adaptive MISC sidebar composition blueprint-driven and leaves non-MISC navigation on the existing registry path.\",\"required\":true},{\"id\":\"release\",\"kind\":\"runtime\",\"claim\":\"The exact merged repair is deployed to the frontend production owner after the canonical gate and squash merge.\",\"required\":true},{\"id\":\"c-and-c-live\",\"kind\":\"visual\",\"claim\":\"The live C&C sidebar includes Dashboard plus its business modules such as Customers, Estimates, Cleaning Jobs, Schedule, Invoices & Payments, Communications, Documents, Reports, and Profile as applicable, and does not show Messages, SMS Inbox, Activity, Canvassing, Academy, or Scripts & Rebuttals.\",\"required\":true,\"route\":\"https://app.knocklaunch.app/crm/MISC/demo-c-c-carpet-cleaning-1b5e576a/Dashboard\",\"expectedText\":\"Cleaning Jobs\"}],\"terminalPolicy\":\"all_required_proof_conditions_satisfied_after_live_release\"}}","requestContractHash":"58aed01b9722031980d3e9add63b61ff01a97b99a5419123bfe397316938de4c","requestContractRevision":1},"tenant_id":"385f3582-1b06-5a13-85b5-ad36fa03b397","created_at":"2026-08-31T03:02:15.790529+00:00","proof_gate":"tenant_workstream_contribution_recorded","source_sha":null,"external_id":null,"receipt_type":"tenant_workstream_contribution","idempotency_key":"mission:9a0d56fb-08d1-4fa1-a89e-1c9e0b9ce6c8:tenant-workstream-contribution:c717b88f13e7166d3b921c15f644ccd2c43b1b105a95ea5bb07008d6d9bf5b70","mission_step_id":null,"command_center_event_id":"9a0d56fb-08d1-4fa1-a89e-1c9e0b9ce6c8"},{"id":"125f9ce6-6b00-4a5e-b01e-d97bc8c1fb0d","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"compilation":{"stages":["owner_intent","conversation_context","scope","live_state","mutation_authority","affected_systems","dependencies","risk_and_blast_radius","execution_tactics","required_proof","release_plan","recovery_plan"],"version":2,"explicit":true,"objective":"Repair the same mission after deterministic Gate failure. Replace only scripts/validate-control-plane-restore-point.mjs with the supplied corrected exact content. Keep PR #5188 / same mission lineage if safe, then re-run canonical Gate and continue automatically through squash merge and live proof. Do not stop at the failed Gate.","proofKinds":["repository"],"adaptiveDomains":["intent","tenant_route_role_viewport","urgency_deadline","dependency_scope","risk_blast_radius","runner_capacity","queue_active_work","provider_failure_circuits","qa_scope","retry_recovery","release_ownership","proof_depth"],"expansionPolicy":"later_stages_may_only_narrow_or_expand_with_machine_readable_dependency_evidence","dynamicStatePolicy":"live_state_may_change_execution_tactics_but_never_owner_outcome_or_explicit_constraints","dynamicRefreshStages":["preflight","gate","release","runtime_proof"],"adaptiveCompilerVersion":"paul-adaptive-objective-v1","inheritedContextBlockingAuthority":false},"rawUtterance":"Repair the same mission after deterministic Gate failure. Replace only scripts/validate-control-plane-restore-point.mjs with the supplied corrected exact content. Keep PR #5188 / same mission lineage if safe, then re-run canonical Gate and continue automatically through squash merge and live proof. Do not stop at the failed Gate.","wordingChanged":false,"canonicalIntent":"Repair the same mission after deterministic Gate failure. Replace only scripts/validate-control-plane-restore-point.mjs with the supplied corrected exact content. Keep PR #5188 / same mission lineage if safe, then re-run canonical Gate and continue automatically through squash merge and live proof. Do not stop at the failed Gate.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"outcome-1","statement":"Repair the same mission after deterministic Gate failure. Replace only scripts/validate-control-plane-restore-point.mjs with the supplied corrected exact content. Keep PR #5188 / same mission lineage if safe, then re-run canonical Gate and continue automatically through squash merge and live proof. Do not stop at the failed Gate.","provenance":{"reason":null,"source":"current_request_inference","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"objective":"Repair the same mission after deterministic Gate failure. Replace only scripts/validate-control-plane-restore-point.mjs with the supplied corrected exact content. Keep PR #5188 / same mission lineage if safe, then re-run canonical Gate and continue automatically through squash merge and live proof. Do not stop at the failed Gate.","constraints":[{"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":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"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.","provenance":{"reason":null,"source":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"adaptivePolicy":{"risk":{"tier":"standard","blastRadius":"scoped"},"proof":{"requiredKinds":["repository"],"visualProofScope":"none","interactionRequired":false,"runtimeProofRequired":true},"scope":{"route":null,"roleRef":null,"tenantRef":null,"sourceTargets":[]},"dynamic":{"variables":["main_and_runtime_lineage","runner_capacity","queue_and_active_work","provider_health","failure_clusters_and_circuits","release_target_state","current_pr_and_gate_state"],"refreshStages":["preflight","gate","release","runtime_proof"],"refreshMayChange":["runner_selection","parallelism","retry_path","qa_depth","release_recovery","proof_timing"],"refreshMayNotChange":["owner_outcome","explicit_no_go_constraints","tenant_identity","credential_boundary","hard_safety_invariants"]},"urgency":{"priority":"normal","deadlineSignals":[],"deadlineExplicit":false},"version":"paul-adaptive-objective-v1","recovery":{"transient":"one_bounded_retry_then_alternate_eligible_pool_or_provider_path","deterministic":"repair_source_or_contract_do_not_blind_rerun","mutationDependencyFailure":"prerequisite_required_or_targeted_recovery_never_invent","readOnlyDependencyFailure":"degrade_to_available_grounded_context_and_keep_conversation_alive"},"unknowns":["tenant","route","source_targets_until_repository_resolution","release_targets_until_changed_paths","deadline"],"authority":{"outcome":"current_explicit_owner_request","tactics":"live_prime_truth","unknownPolicy":"preserve_unknown_never_invent","historicalContext":"advisory_unless_current_request_confirms"},"execution":{"mutation":true,"concurrency":"parallel_non_overlapping_work","scopePolicy":"start_bounded_expand_only_with_machine_readable_dependency_evidence","staleStatePolicy":"refresh_dynamic_state_before_irreversible_or_acceptance_stage","conversationIsolation":true,"ownerOutcomeMayBeChangedByAdaptation":false},"experience":{"visual":false,"viewports":["desktop","mobile"],"behavioral":false,"visualProofScope":"none"},"dependencies":{"requiredDomains":["backend_runtime","release_ownership","live_production_proof"],"capabilityDomains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"releaseTargetHints":[]},"inputSignals":{"rawUtterance":"Repair the same mission after deterministic Gate failure. Replace only scripts/validate-control-plane-restore-point.mjs with the supplied corrected exact content. Keep PR #5188 / same mission lineage if safe, then re-run canonical Gate and continue automatically through squash merge and live proof. Do not stop at the failed Gate.","canonicalIntent":"Repair the same mission after deterministic Gate failure. Replace only scripts/validate-control-plane-restore-point.mjs with the supplied corrected exact content. Keep PR #5188 / same mission lineage if safe, then re-run canonical Gate and continue automatically through squash merge and live proof. Do not stop at the failed Gate.","conversationContextPresent":false}},"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"repository","claim":"Repair the same mission after deterministic Gate failure. Replace only scripts/validate-control-plane-restore-point.mjs with the supplied corrected exact content. Keep PR #5188 / same mission lineage if safe, then re-run canonical Gate and continue automatically through squash merge and live proof. Do not stop at the failed Gate.","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":"Repair-the-same-mission-after-deterministic-Gate-failure.-Replace-only-scripts-validate-control-plan","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":"3e43334be96cb06553d66eda16880bb5f8a665127a9ce97f048f86be9830f1d2","requestContractRevision":5,"previousRequestContractHash":"125974299b9d7fca43280d28d8af25fc0c40807b1d2fa805e2aede7b107296a2"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T15:25:10.158927+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:1d311b3c-3f07-4e3a-821e-3243d407019e:request-contract:3e43334be96cb06553d66eda16880bb5f8a665127a9ce97f048f86be9830f1d2","mission_step_id":"52b4bbcb-671e-4354-9040-b0313bf68276","command_center_event_id":"1d311b3c-3f07-4e3a-821e-3243d407019e"},{"id":"12632e99-daca-4f9d-b6f0-820b6dc81707","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","supabase-edge-production/live":"pending"},"mainSha":"4ef89e7fd46b83f33533e1e000015897583d8587","missing":[],"pending":["forgejo-release/workflow","supabase-edge-production/live"],"required":["forgejo-main/source","forgejo-release/workflow","supabase-edge-production/live"],"sourceSha":"4ef89e7fd46b83f33533e1e000015897583d8587","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":false,"migrations":false,"ccExecution":false,"supabaseEdge":true,"edgeFunctionSlugs":["calendar-provider-connections","tenant-provider-connections"]},"releaseTargetStates":{"supabaseEdge":"pending"},"requestContractHash":"f12c90bab95a088a5736f9354be3e5b6e6bbf2b62c552cfa751f43efbc0fca42","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/13422","runId":13422,"status":"running","sourceSha":"4ef89e7fd46b83f33533e1e000015897583d8587","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true,"targetStates":{"supabaseEdge":"pending"},"targetJobCount":6,"observedTargetStates":{"supabaseEdge":"pending"}},"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-30T16:19:31.331349+00:00","proof_gate":"canonical_release_pending","source_sha":"4ef89e7fd46b83f33533e1e000015897583d8587","external_id":"forgejo-main-4ef89e7fd46b","receipt_type":"canonical_release_status","idempotency_key":"mission:1920feca-ccd5-4bed-ae0f-906fd9d2961a:forgejo-release-status:4ef89e7fd46b83f33533e1e000015897583d8587:pending:forgejo-main/source=success|forgejo-release/workflow=pending|supabase-edge-production/live=pending","mission_step_id":"cdb56cd1-7d90-4406-b25e-508c201df6cf","command_center_event_id":"1920feca-ccd5-4bed-ae0f-906fd9d2961a"},{"id":"1266888d-8a40-4f41-a3bf-59a8a31554c4","source":"durable-mission-ledger","status":"pending","payload":{"sourceSha":"b8ddbb3648294f30df9d7a54d2d444838e61d001","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-1","satisfied":false,"statement":"Implement and ship a reusable KNOCKLAUNCH tenant e-sign document primitive, using the current existing Documents/proposal system as the governing owner wherever present. This is NOT a PCG-only hack; PCG is the first live tenant use case. Requirements: versioned immutable sent document packages; explicit frozen page_index/page_order manifest; secure branded review-before-sign route; signature capture, signer name, signed timestamp and acceptance affirmation; deterministic document-version/page-manifest hash and acceptance receipt; accepted document/receipt persisted in tenant Documents and originating proposal state; support proposals, estimates, service agreements, waivers, change orders and other approval-required documents through the same primitive; strict tenant isolation and fail-closed invalid context; responsive mobile/desktop; reuse existing render/version/receipt primitives; regression coverage for ordering, immutability, cross-tenant denial, expired/superseded links, double-sign idempotency and accepted receipt linkage. PCG page order must be exactly: 1 Fully Managed Workspace Proposal; 2 What PCG Gets; 3 Built Around PCG's Actual Concerns; 4 End-to-End Operating Flow; 5","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":"818b9638f63650221d44e872b6fbcb07e53b61ec1f57bac073ca649dfef4814e","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","supabaseEdge":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["frontend","supabaseEdge"],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"migrationReleaseVerified":null,"releaseRequestContractHash":"818b9638f63650221d44e872b6fbcb07e53b61ec1f57bac073ca649dfef4814e"},"required":true,"satisfied":true},{"id":"proof-visual","kind":"visual","evidence":{"modeBound":true,"claimBound":true,"routeBound":true,"witnessMode":"observe","witnessRoute":"https://app.knocklaunch.app","currentSourceSha":"b8ddbb3648294f30df9d7a54d2d444838e61d001","witnessSourceSha":"b8ddbb3648294f30df9d7a54d2d444838e61d001","verificationState":null,"witnessRequestContractHash":"818b9638f63650221d44e872b6fbcb07e53b61ec1f57bac073ca649dfef4814e"},"required":true,"satisfied":false}],"validationErrors":[],"pendingProofKinds":["visual"],"activeReleaseTargets":["frontend","supabaseEdge"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-21T16:33:17.250288+00:00","proof_gate":"request_contract_pending","source_sha":"b8ddbb3648294f30df9d7a54d2d444838e61d001","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:ad033bef-a378-4fd8-b821-892b60801fb5:request-contract:818b9638f63650221d44e872b6fbcb07e53b61ec1f57bac073ca649dfef4814e:b8ddbb3648294f30df9d7a54d2d444838e61d001:pending:visual","mission_step_id":"451d7820-ff63-4ce1-b1ec-c8ed514ea83c","command_center_event_id":"ad033bef-a378-4fd8-b821-892b60801fb5"},{"id":"1266cc5d-d504-41af-adda-6add368df8b7","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-ab73198f25b1","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":7424,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":0,"executorlessWaitMs":17892,"firstUsefulResultAt":"2026-10-03T03:54:34.629Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.71-knocklaunch-mcp-operational","prNumber":4614,"terminal":false,"missionId":"ab73198f-25b1-485d-bd6f-2a579b3609b3","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":4683,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":1317,"missionSetupMs":252,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":252,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":252,"repositoryMutationMs":3366,"repositoryProviderMs":3366,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2093,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":252,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1273},"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":"ab73198f-25b1-485d-bd6f-2a579b3609b3"},"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":3550,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-03T03:54:58.108942+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"4614","receipt_type":"execute_mission","idempotency_key":"mission:ab73198f-25b1-485d-bd6f-2a579b3609b3:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"dfa2e088-97e9-466c-99d7-4c76b1cb488f","command_center_event_id":"ab73198f-25b1-485d-bd6f-2a579b3609b3"},{"id":"1267d0b9-e16e-44c5-9fb3-f6f895978508","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"release","branch":null,"reason":"forgejo_same_source_release_failed_no_redispatch:393","status":"blocked","metrics":{"receiptBytes":11202,"releaseCount":1,"toolCallCount":14,"repeatedCallCount":9,"ownerInterruptionCount":0},"version":null,"prNumber":133,"terminal":false,"missionId":"f9018a81-4ce6-40a3-b71f-76783c9ac7a1","operation":"automatic_mission_resume","proofGate":"canonical_release_blocked","sourceSha":"b996e2b3cc728f426a21ef2b93b56a61e13ab024","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"f9018a81-4ce6-40a3-b71f-76783c9ac7a1"},"performance":null,"deploymentId":"forgejo-main-b996e2b3cc72","workflowRunId":393,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":331,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-15T16:08:57.930566+00:00","proof_gate":"canonical_release_blocked","source_sha":null,"external_id":"133","receipt_type":"automatic_mission_resume","idempotency_key":"mission:f9018a81-4ce6-40a3-b71f-76783c9ac7a1:automatic-mission-resume:133:canonical_release_blocked","mission_step_id":"81b968c7-bc85-4814-b5af-9921c0e89dc4","command_center_event_id":"f9018a81-4ce6-40a3-b71f-76783c9ac7a1"},{"id":"1268fe9a-5716-4491-a233-3a38e790d3bb","source":"cc-execution","status":"no_change","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":null,"reason":null,"status":"no_change","metrics":{"receiptBytes":4978,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":1,"executorlessWaitMs":59705,"firstUsefulResultAt":"2026-09-28T23:14:21.034Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.59.3-direct-commit-ancestry","prNumber":null,"terminal":false,"missionId":"b5ad5b28-af0a-4ec1-a03a-c76c23cabe23","operation":"execute_mission","proofGate":"repair_mission_prepared","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":389,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":229,"providerAuthMs":0,"ledgerPrepareMs":229,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":229,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":229,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"pull_request_required","receiptRef":{"mode":"full","missionId":"b5ad5b28-af0a-4ec1-a03a-c76c23cabe23"},"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":1351,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T23:15:11.342436+00:00","proof_gate":"repair_mission_prepared","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:b5ad5b28-af0a-4ec1-a03a-c76c23cabe23:execute_mission:repair_mission_prepared:current-generation","mission_step_id":"3075b456-c756-46d8-9b7a-94cf4961ee80","command_center_event_id":"b5ad5b28-af0a-4ec1-a03a-c76c23cabe23"},{"id":"1269ca28-230f-405a-a02c-ebe9621d818c","source":"cc-execution","status":"waiting","payload":{"kind":"heartbeat","message":"Still active in objective received.","nextAction":{"lane":"cc-execution","action":"resolve_preflight","reason":"durable_state:preflight","automationAllowed":false,"ownerActionRequired":false},"silenceBudgetMs":15000,"semanticCheckpointSignature":"{\"stateMachineVersion\":1,\"phase\":\"objective_received\",\"ownerFacingState\":null,\"latest\":null,\"activeStep\":{\"key\":\"preflight\",\"status\":\"ready\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"implementation\",\"status\":\"pending\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"resolve_preflight\",\"lane\":\"cc-execution\",\"reason\":\"durable_state:preflight\",\"automationAllowed\":false,\"ownerActionRequired\":false},\"acceptance\":{\"total\":6,\"verified\":0,\"pending\":6,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"preflight\",\"implementation\",\"pull_request\",\"release\",\"runtime_proof\",\"visual_proof\"]},\"stall\":{\"stalled\":true,\"reason\":\"step_deadline_exceeded\",\"step\":\"preflight\",\"deadlineAt\":\"2026-08-04T13:48:49.18753+00:00\",\"recoveryAction\":\"resolve_preflight\"},\"blocker\":null,\"terminal\":false,\"branch\":null,\"prNumber\":null,\"sourceSha\":null,\"deploymentId\":null}"},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-09-20T22:32:03.542881+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:38a5e13b-a3c8-43a4-bc09-a990c67b4f20:owner-progress-heartbeat:119329568","mission_step_id":"8a7a2eb1-70a6-4e5f-9002-3160761b18c8","command_center_event_id":"38a5e13b-a3c8-43a4-bc09-a990c67b4f20"},{"id":"126b69e4-7002-4506-bd26-b8dc3aedb2b9","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","cc-execution/runtime-proof":"pending"},"mainSha":"529733f8ab919cfa9151a612f354a68545d1f4f5","missing":[],"pending":["forgejo-release/workflow","cc-execution/runtime-proof"],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof"],"sourceSha":"529733f8ab919cfa9151a612f354a68545d1f4f5","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":"392ce6808cff8284d2b2425971306517b200197032f75aede2a7a849b0aaf39f","forgejoWorkflowProof":{"runId":12829,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"ccExecution":"pending"},"targetJobCount":6,"observedTargetStates":{"ccExecution":"pending"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"05a34944d5ba48fed5fc9efebd756f4fe239f097","deploymentId":"forgejo-main-05a34944d5ba48fed5fc9efebd756f4fe239f097","compareStatus":null,"identitySource":"local_build_metadata","runtimeVersion":"1.60.0-adaptive-objective-compiler","containsSourceSha":false},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T01:40:14.477945+00:00","proof_gate":"canonical_release_pending","source_sha":"529733f8ab919cfa9151a612f354a68545d1f4f5","external_id":"forgejo-main-529733f8ab91","receipt_type":"canonical_release_status","idempotency_key":"mission:e080198f-23fe-492b-b520-669fd8436dc8:forgejo-release-status:529733f8ab919cfa9151a612f354a68545d1f4f5:pending:forgejo-main/source=success|forgejo-release/workflow=pending|cc-execution/runtime-proof=pending","mission_step_id":"ed502e69-dc59-47bc-8189-448bc0e9284b","command_center_event_id":"e080198f-23fe-492b-b520-669fd8436dc8"},{"id":"126ba7d7-cd12-413a-91c9-8a150c52c7cd","source":"cc-execution","status":"verified","payload":{"paths":["config/control-plane-capabilities.json","workers/cc-execution/src/index-mission-control.js","workers/cc-execution/src/version.js","workers/cc-execution/test/release-orchestration-invariants.test.js"],"baseSha":"edc872234591b69f19ce40a560202ff2a0a08f61","consumedAt":1788196496657,"consumerToken":"111a1bf5-e014-4c84-b06c-0bfe21c7ca6f","authorizationId":"b453eae9-7f2e-40bd-80f2-a808323f73b9"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-31T17:14:57.454407+00:00","proof_gate":"control_plane_maintenance_single_use_consumed","source_sha":"edc872234591b69f19ce40a560202ff2a0a08f61","external_id":null,"receipt_type":"control_plane_maintenance_consumed","idempotency_key":"control-plane-maintenance-consume:b453eae9-7f2e-40bd-80f2-a808323f73b9","mission_step_id":"924f394b-1eb5-42ea-853a-119e9232436d","command_center_event_id":"7e104e17-8700-4533-982f-fee4412662b8"},{"id":"126bc09d-3cf6-4845-b990-e69b82db759b","source":"cc-execution","status":"authorized","payload":{"paths":["config/control-plane-restore-point.json"],"reason":"Owner explicitly requested the final metadata-only Golden Restore Point after completing and proving the control-plane repairs; temporarily unfreeze only config/control-plane-restore-point.json and return immediately to frozen-by-default behavior.","baseSha":"1b2110b7a8988859ec73184d299584ce4e2490d8","issuedAt":1789156920293,"expiresAt":1789157100293,"missionId":"5ad2c3fd-60f9-44ea-a5ff-11518064cccd","authorizationId":"644c45ae-6060-4249-8bdf-4a2b417fd3e6","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-11T20:02:01.331264+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"1b2110b7a8988859ec73184d299584ce4e2490d8","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:644c45ae-6060-4249-8bdf-4a2b417fd3e6","mission_step_id":"ca065a65-c7b6-425e-b8c6-52073f579630","command_center_event_id":"5ad2c3fd-60f9-44ea-a5ff-11518064cccd"},{"id":"126cc103-7af7-4438-909f-084d8cd1d7b2","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"eaede0faace450534e4d7844c732488f30d6cf22","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"control-plane-intent-classifier-repair","satisfied":true,"statement":"Control plane request classification ignores negated frontend/reference language when determining whether a non-frontend infrastructure mission requires frontend acceptance proof.","proofConditionIds":["runtime-proof"]}],"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":["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":["runtime-proof"]}],"contractHash":"813a7eee7a7f448a1d7e1bd96fea310997c95f3db20422637f747602cf8036ff","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"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":"813a7eee7a7f448a1d7e1bd96fea310997c95f3db20422637f747602cf8036ff"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["ccExecution"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":2},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-24T20:55:51.506759+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"eaede0faace450534e4d7844c732488f30d6cf22","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:10086c0f-dc37-47cd-9d69-6bfc4878489a:request-contract:813a7eee7a7f448a1d7e1bd96fea310997c95f3db20422637f747602cf8036ff:eaede0faace450534e4d7844c732488f30d6cf22:verified:","mission_step_id":"7feca7dc-9ce8-44ba-bc95-7803a963aabe","command_center_event_id":"10086c0f-dc37-47cd-9d69-6bfc4878489a"},{"id":"126cdc45-cc23-4ed1-b32a-df5ef8aa5570","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-9e1288bd4d92","prNumber":4494,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"9b0523c579c9b915ad37991039a71fe6a0f205e7","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T16:32:38.829934+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"9b0523c579c9b915ad37991039a71fe6a0f205e7","external_id":"4494","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:9e1288bd-4d92-432e-b0d4-49f267b599fb:merged-pr:4494:9b0523c579c9b915ad37991039a71fe6a0f205e7","mission_step_id":"9f5b2c5d-2ef1-4ec0-a5d6-41a3f94fa94d","command_center_event_id":"9e1288bd-4d92-432e-b0d4-49f267b599fb"},{"id":"126e6900-4d3d-40ff-bb37-66bdd539513c","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","cc-execution/runtime-proof":"success"},"mainSha":"313a9a03b2e61e197bc2871cbae42d6be50ba109","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof"],"sourceSha":"313a9a03b2e61e197bc2871cbae42d6be50ba109","releaseState":"verified","sourceInMain":true,"compareStatus":"identical","releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":true,"supabaseEdge":false},"releaseTargetStates":{"ccExecution":"success"},"requestContractHash":"e1daa16fa275dbb437acc02dd6e97018319b06a370026eb73952d7583c83efc7","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/6307","runId":6307,"status":"success","sourceSha":"313a9a03b2e61e197bc2871cbae42d6be50ba109","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true,"targetStates":{"ccExecution":"success"},"targetJobCount":7,"observedTargetStates":{"ccExecution":"success"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"313a9a03b2e61e197bc2871cbae42d6be50ba109","proofGate":"cc_execution_historical_runtime_identity_verified","deploymentId":"forgejo-main-313a9a03b2e61e197bc2871cbae42d6be50ba109","compareStatus":"exact_release_workflow_runtime_verified","workflowRunId":6307,"identitySource":"canonical_release_workflow_exact_runtime_identity","runtimeVersion":"1.58.72-mcp-local-jwks","containsSourceSha":true,"historicalExactSourceProof":true},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-07T22:59:37.191099+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"313a9a03b2e61e197bc2871cbae42d6be50ba109","external_id":null,"receipt_type":"canonical_release_status","idempotency_key":"mission:9124b0cc-95c0-41ba-ab34-896c709e56cb:forgejo-release-status:313a9a03b2e61e197bc2871cbae42d6be50ba109:verified:forgejo-main/source=success|forgejo-release/workflow=success|cc-execution/runtime-proof=success","mission_step_id":"ff055b76-c3ac-44d3-984c-2ac9cb055927","command_center_event_id":"9124b0cc-95c0-41ba-ab34-896c709e56cb"},{"id":"126e95a1-f1b8-4856-9e44-dafadc942d39","source":"cc-execution","status":"blocked","payload":{"reason":"anchored_edit_anchor_missing:supabase/functions/mobile-vendor-event-request/index.ts","fingerprint":"ab130b6542502cdba850929d41666788efd738e437175815182f7e59fb313a5e"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T16:55:57.496469+00:00","proof_gate":"repository_mutation_intent_deterministic_failure","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent_blocked","idempotency_key":"mission:2a90ea65-0696-4c13-92d8-b9b40b57a3a7:repository-mutation-intent-blocked:ab130b6542502cdba850929d41666788efd738e437175815182f7e59fb313a5e","mission_step_id":"5ac862d3-1ef8-4aca-8894-ddbde816b4f3","command_center_event_id":"2a90ea65-0696-4c13-92d8-b9b40b57a3a7"},{"id":"126ec999-c1b5-4358-847c-aa9927221b34","source":"cc-execution","status":"waiting","payload":{"kind":"heartbeat","message":"Still active in pull request.","nextAction":{"lane":"cc-execution","action":"reconcile_pull_request","reason":"pull_request_exists_without_merged_source","automationAllowed":true,"ownerActionRequired":false},"silenceBudgetMs":15000,"semanticCheckpointSignature":"{\"stateMachineVersion\":1,\"phase\":\"pull_request\",\"ownerFacingState\":null,\"latest\":{\"kind\":\"receipt\",\"key\":\"automatic_mission_resume\",\"status\":\"release_freshness_reconciliation_pending\",\"proofGate\":\"canonical_release_freshness_reconciliation_pending\"},\"activeStep\":{\"key\":\"pull_request\",\"status\":\"waiting\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"release\",\"status\":\"ready\",\"lane\":\"production-release-conductor\"},\"nextSafeAction\":{\"action\":\"reconcile_pull_request\",\"lane\":\"cc-execution\",\"reason\":\"pull_request_exists_without_merged_source\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_pull_request\",\"recoveryOwner\":\"cc-execution\"},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"runtime_proof\",\"deadlineAt\":\"2026-10-06T00:38:57.523265+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/objective-first-repair-61d68e1e9cf1\",\"prNumber\":5067,\"sourceSha\":null,\"deploymentId\":null}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-05T21:14:09.010854+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:61d68e1e-9cf1-4260-b4ba-e286fab9894a:owner-progress-heartbeat:119415656","mission_step_id":"e9ecd7ca-4b18-45da-b70d-0511ec4d7eaa","command_center_event_id":"61d68e1e-9cf1-4260-b4ba-e286fab9894a"},{"id":"12712869-7624-47f0-8667-90638b7a4d0d","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Repair the single current-main TypeScript blocker in the shared MODES tenant shell that prevents PR #2406 from passing its required full frontend Gate. Preserve behavior: make the map callback explicitly return TenantModeCardConfig | null so the existing type predicate is valid. Keep this inside the same mission/branch/PR, then re-gate. No Visual Witness and no other MODES changes.","wordingChanged":false,"canonicalIntent":"Repair the single current-main TypeScript blocker in the shared MODES tenant shell that prevents PR #2406 from passing its required full frontend Gate. Preserve behavior: make the map callback explicitly return TenantModeCardConfig | null so the existing type predicate is valid. Keep this inside the same mission/branch/PR, then re-gate. No Visual Witness and no other MODES changes.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"ledger","statement":"public.activity_timeline is hardened into an append-only canonical business event spine with queryable attribution, state transition, provenance, correlation, monetary outcome and correction-lineage fields, while preserving existing timeline data.","proofConditionIds":["repo","runtime"]},{"id":"projections","statement":"Core business activity from tenants, contacts, opportunities, communications, documents, jobs, invoices, settlement invoices and authenticated login/session events deterministically projects into the ledger, with historical source/backfill coverage.","proofConditionIds":["repo","runtime"]},{"id":"redfish","statement":"Redfish owner/Jimmy experience shows a normalized source for every visible lead plus attribution coverage and top-source metrics using the canonical attribution view.","proofConditionIds":["repo","release"]},{"id":"oversight","statement":"The KnockLaunch tenant command center shows per-business activity volume, recent activity, collected revenue and a human-readable drilldown from the canonical ledger.","proofConditionIds":["repo","release"]},{"id":"gate-blocker","statement":"The pre-existing shared MODES TypeScript predicate blocker is repaired without changing MODES runtime behavior so the canonical full frontend Gate can validate this release.","proofConditionIds":["repo","gate"]}],"objective":"Repair the single current-main TypeScript blocker in the shared MODES tenant shell that prevents PR #2406 from passing its required full frontend Gate. Preserve behavior: make the map callback explicitly return TenantModeCardConfig | null so the existing type predicate is valid. Keep this inside the same mission/branch/PR, then re-gate. No Visual Witness and no other MODES changes.","constraints":[{"id":"isolation","statement":"Tenant users remain isolated to active tenant memberships; only platform administrators receive cross-tenant ledger visibility.","proofConditionIds":["repo","runtime"]},{"id":"immutable","statement":"Existing business activity cannot be edited or deleted; corrections are represented as appended events linked to the corrected event.","proofConditionIds":["repo","runtime"]},{"id":"release-scope","statement":"Only frontend and Supabase migration production owners are released; no unrelated runtime owner is changed.","proofConditionIds":["release"]},{"id":"modes-scope","statement":"The MODES repair is limited to explicit TypeScript return typing and must not change rendered behavior, routing, data, styling, or tenant configuration.","proofConditionIds":["repo","gate"]},{"id":"no-witness","statement":"Visual Witness is not required or started for this non-visual data/interaction implementation.","proofConditionIds":["repo"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"repo","kind":"repository","claim":"Exact Forgejo diff contains the canonical migration, the two intended consumer surfaces, and only one additional shared MODES type-safety repair required by the Gate.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"gate","kind":"repository","claim":"KnockLaunch Gate passes on the exact refreshed PR head with no TypeScript errors.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"release","kind":"release","claim":"Canonical release completes for frontend and migrations.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":["frontend","migrations"],"requiredReleaseTargets":["frontend","migrations"]},{"id":"runtime","kind":"runtime","claim":"Production database exposes business_activity_ledger, business_contact_attribution and business_tenant_activity_summary with hardened activity_timeline policies and projection triggers.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":["migrations"],"requiredReleaseTargets":["migrations"]}],"validationErrors":[]},"requestContractHash":"d89e4bd4ed1dc011ba9d99170ee3a580531781a4d5992435de383f04811f7a71","requestContractRevision":2,"previousRequestContractHash":"0f4ffd9510eeec7e645cd85823fbd5a9fd4db9b25352910aba5c2fdb22fbb110"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-11T18:35:16.22584+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:085aadff-8726-482c-96eb-8db559dd3814:request-contract:d89e4bd4ed1dc011ba9d99170ee3a580531781a4d5992435de383f04811f7a71","mission_step_id":"4646456c-b938-40ee-811f-5a055c9784d3","command_center_event_id":"085aadff-8726-482c-96eb-8db559dd3814"},{"id":"1271ed4e-11ea-4e5a-8dd2-ba067144e836","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-b563f21e38a2","prNumber":2871,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"6e9c641564c1a0dbf8f22382a74d8a0943f7c95e","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-16T03:07:34.829178+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"6e9c641564c1a0dbf8f22382a74d8a0943f7c95e","external_id":"2871","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:b563f21e-38a2-4413-96b4-9a4b9f8bb870:merged-pr:2871:6e9c641564c1a0dbf8f22382a74d8a0943f7c95e","mission_step_id":"fe8b32c1-291d-4530-9a04-98649930f1a0","command_center_event_id":"b563f21e-38a2-4413-96b4-9a4b9f8bb870"},{"id":"127400c7-db81-402f-864b-25cd0661549e","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-22c2accb34cc","reason":"pull_request_checks_pending","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3244,"terminal":false,"missionId":"578bf28e-bd61-49a1-ab99-a82c24fe169d","operation":"automatic_mission_resume","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"prReadinessMs":557,"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":"578bf28e-bd61-49a1-ab99-a82c24fe169d"},"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-19T22:18:59.59643+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"3244","receipt_type":"automatic_mission_resume","idempotency_key":"mission:578bf28e-bd61-49a1-ab99-a82c24fe169d:automatic-mission-resume:3244:repair_mission_waiting_for_gate","mission_step_id":"786504d2-1f1b-4fdf-9e73-59d348ff8a74","command_center_event_id":"578bf28e-bd61-49a1-ab99-a82c24fe169d"},{"id":"1274afe5-ffd6-46e6-81ce-05e24d9a4657","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\":\"owner_progress_heartbeat\",\"status\":\"waiting\",\"proofGate\":\"owner_progress_heartbeat\"},\"activeStep\":{\"key\":\"implementation\",\"status\":\"waiting\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"pull_request\",\"status\":\"waiting\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"reconcile_release\",\"lane\":\"production-release-conductor\",\"reason\":\"merged_source_requires_release_proof\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_release\",\"recoveryOwner\":\"production-release-conductor\"},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"visual_proof\",\"deadlineAt\":\"2026-10-06T08:33:13.056202+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":null,\"prNumber\":5163,\"sourceSha\":\"d059e784c8fb33ceeb0e36baec00e818ef3753e8\",\"deploymentId\":\"forgejo-main-d059e784c8fb\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T08:30:37.315149+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:6cd825d0-ddfe-4532-8e8e-5f72704f5be5:owner-progress-heartbeat:119418362","mission_step_id":"8f1c0a7d-df5b-4529-9b5e-b41c824b98db","command_center_event_id":"6cd825d0-ddfe-4532-8e8e-5f72704f5be5"},{"id":"1274ba1c-e308-42c4-855c-2713d6a47278","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[{"path":"public/console/index-v3-6.html","content":"<!doctype html>\n<html lang=\"en\"><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><meta name=\"robots\" content=\"noindex,nofollow\"><meta name=\"referrer\" content=\"no-referrer\"><title>KNOCKLAUNCH Console</title><link rel=\"stylesheet\" href=\"./console.css?v=observatory-1\">\n<style>\n#kl-witness-route-nav{position:relative;z-index:30;background:rgba(4,13,9,.97);border-bottom:1px solid rgba(120,230,173,.15);font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#eefaf3}\n#kl-witness-route-nav details{margin:0}\n#kl-witness-route-nav summary{list-style:none}\n#kl-witness-route-nav summary::-webkit-details-marker{display:none}\n.kl-route-summary{display:flex;align-items:center;gap:10px;min-height:42px;padding:7px 18px;cursor:pointer;user-select:none}\n.kl-route-summary:hover{background:rgba(120,230,173,.04)}\n.kl-route-kicker{font-size:9px;font-weight:900;letter-spacing:.16em;color:#72dfa8}\n.kl-route-summary strong{font-size:12px}\n.kl-route-count,.kl-route-tenant{font-size:10px;color:#91aa9c}\n.kl-route-tenant{margin-left:auto}\n.kl-route-panel{padding:10px 14px 14px;background:linear-gradient(180deg,rgba(10,27,19,.98),rgba(5,15,10,.99));border-top:1px solid rgba(120,230,173,.12);box-shadow:0 18px 48px rgba(0,0,0,.28)}\n.kl-route-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px}\n.kl-route-search{min-width:180px;flex:1;height:34px;border-radius:10px;border:1px solid rgba(120,230,173,.18);background:rgba(0,0,0,.22);color:#eefaf3;padding:0 11px;font-size:12px;outline:none}\n.kl-route-search:focus{border-color:rgba(120,230,173,.45);box-shadow:0 0 0 3px rgba(120,230,173,.06)}\n.kl-route-viewports{display:flex;gap:5px}\n.kl-route-viewports button{height:34px;border-radius:9px;border:1px solid rgba(120,230,173,.16);background:rgba(255,255,255,.025);color:#94ad9f;padding:0 10px;font-size:10px;font-weight:800;cursor:pointer}\n.kl-route-viewports button[aria-pressed=\"true\"]{color:#c9f7dc;border-color:rgba(120,230,173,.4);background:rgba(52,168,104,.14)}\n.kl-route-status{min-height:16px;margin:0 0 8px;font-size:10px;color:#9db5a6}\n.kl-route-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;align-items:start}\n.kl-route-group{position:relative;border:1px solid rgba(120,230,173,.11);border-radius:12px;background:rgba(0,0,0,.1);overflow:hidden}\n.kl-route-group>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;cursor:pointer;font-size:11px;font-weight:850;color:#d8f5e5}\n.kl-route-group>summary span{font-size:9px;color:#829d8d}\n.kl-route-list{display:grid;gap:5px;max-height:250px;overflow:auto;padding:0 7px 8px}\n.kl-route-item{display:grid;width:100%;gap:2px;text-align:left;border:1px solid rgba(120,230,173,.1);border-radius:9px;background:rgba(255,255,255,.018);color:#e9f8ef;padding:8px 9px;cursor:pointer}\n.kl-route-item:hover{border-color:rgba(120,230,173,.34);background:rgba(74,188,125,.08)}\n.kl-route-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.kl-route-item b{font-size:10px;line-height:1.25;overflow-wrap:anywhere}.kl-route-health{flex:0 0 auto;font-size:7px;font-weight:900;letter-spacing:.08em;border:1px solid rgba(148,173,159,.18);border-radius:999px;padding:2px 5px;color:#799286}.kl-route-health.live{color:#b9f8d4;border-color:rgba(120,230,173,.42);box-shadow:0 0 12px rgba(120,230,173,.14)}.kl-route-health.verified{color:#91dcb1}.kl-route-health.failed{color:#efc36e;border-color:rgba(239,195,110,.34)}\n.kl-route-item small{font-size:9px;line-height:1.3;color:#8ea799}\n.kl-route-item em{font-style:normal;font-size:8px;letter-spacing:.08em;color:#d4b96b}\n.kl-route-item[disabled]{opacity:.55;cursor:wait}\n@media(max-width:1000px){.kl-route-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}\n@media(max-width:700px){.kl-route-summary{padding:7px 9px}.kl-route-tenant{display:none}.kl-route-panel{padding:8px}.kl-route-toolbar{align-items:stretch;flex-direction:column}.kl-route-viewports button{flex:1}.kl-route-groups{grid-template-columns:1fr}.kl-route-list{max-height:220px}}\n</style></head>\n<body>\n<div id=\"kl-witness-route-nav\"><div class=\"kl-route-summary\"><span class=\"kl-route-kicker\">ROUTES</span><strong>Witness routes</strong><span class=\"kl-route-count\">Loading canonical registry…</span></div></div>\n<div id=\"app\"><p>Opening KNOCKLAUNCH Console…</p></div>\n<script>\n(()=>{\n  const nativeFetch=window.fetch.bind(window);\n  const pending=new Map();\n  let seq=0;\n  window.addEventListener('message',event=>{\n    if(event.source!==parent||event.origin!==location.origin||event.data?.type!=='kl-console-result')return;\n    const slot=pending.get(event.data.id);if(!slot)return;\n    pending.delete(event.data.id);clearTimeout(slot.timer);\n    if(event.data.error)slot.resolve(new Response(JSON.stringify({ok:false,status:'unavailable',witnessHealthy:false,witnessActive:false,activeJobs:0,error:event.data.error}),{status:503,headers:{'content-type':'application/json'}}));\n    else slot.resolve(new Response(JSON.stringify(event.data.data||{}),{status:200,headers:{'content-type':'application/json'}}));\n  });\n  function witnessHealth(){\n    return new Promise(resolve=>{\n      const id='console-witness-'+Date.now()+'-'+(++seq);\n      const timer=setTimeout(()=>{pending.delete(id);resolve(new Response(JSON.stringify({ok:false,status:'unavailable',witnessHealthy:false,witnessActive:false,activeJobs:0,error:'Witness health timed out'}),{status:503,headers:{'content-type':'application/json'}}));},12000);\n      pending.set(id,{resolve,timer});\n      parent.postMessage({type:'kl-console-request',id,action:'witness',payload:{}},location.origin);\n    });\n  }\n  window.fetch=(input,init)=>{\n    const url=typeof input==='string'?input:String(input?.url||'');\n    if(url.startsWith('https://laptop-witness.knocklaunch.app/health'))return witnessHealth();\n    return nativeFetch(input,init);\n  };\n})();\n</script>\n<script>\n(()=>{\n const root=document.getElementById('kl-witness-route-nav');\n const waiting=new Map();\n let seq=0,selectedViewport=sessionStorage.getItem('kl-witness-route-viewport')==='mobile'?'mobile':'desktop',catalog=null,activity={active:null,runs:[]},busy=false;\n const esc=value=>String(value==null?'':value).replace(/[&<>\"']/g,ch=>({'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[ch]));\n function request(action,payload){\n  return new Promise((resolve,reject)=>{\n   const id='route-nav-'+Date.now()+'-'+(++seq);\n   const timer=setTimeout(()=>{waiting.delete(id);reject(new Error('Console bridge timed out'));},15000);\n   waiting.set(id,{resolve,reject,timer});\n   parent.postMessage({type:'kl-console-request',id,action,payload:payload||{}},location.origin);\n  });\n }\n window.addEventListener('message',event=>{\n  if(event.source!==parent||event.origin!==location.origin||event.data?.type!=='kl-console-result')return;\n  const slot=waiting.get(event.data.id);if(!slot)return;\n  waiting.delete(event.data.id);clearTimeout(slot.timer);\n  if(event.data.error)slot.reject(new Error(event.data.error));else slot.resolve(event.data.data||{});\n });\n function domainId(value){return String(value||'misc').toLowerCase().replace(/[^a-z0-9]+/g,'-').replace(/^-|-$/g,'')||'misc';}\n function runForRoute(path){\n  const all=[activity?.active,...(Array.isArray(activity?.runs)?activity.runs:[])].filter(Boolean);\n  return all.find(run=>String(run.currentRoute||'')===String(path||''))||null;\n }\n function routeHealth(path){\n  const run=runForRoute(path);\n  if(!run)return {label:'NEVER',tone:'never',time:''};\n  if(!run.terminal)return {label:'LIVE',tone:'live',time:''};\n  const raw=String(run.status||run.phase||'').toLowerCase();\n  const failed=/fail|error|cancel|timeout/.test(raw);\n  return {label:failed?'FAILED':'VERIFIED',tone:failed?'failed':'verified',time:new Date(run.lastProgressAt||run.completedAt||run.startedAt||Date.now()).toLocaleTimeString([],{hour:'numeric',minute:'2-digit'})};\n }\n function updateRouteHealth(){\n  root.querySelectorAll('[data-route-item]').forEach(button=>{\n   const health=routeHealth(button.dataset.routePath||'');\n   const badge=button.querySelector('[data-route-health]');\n   if(badge){badge.className='kl-route-health '+health.tone;badge.textContent=health.time?health.label+' · '+health.time:health.label;}\n  });\n  const routes=Array.isArray(catalog?.routes)?catalog.routes:[];\n  const checked=routes.filter(route=>routeHealth(route.path).tone!=='never').length;\n  const live=routes.filter(route=>routeHealth(route.path).tone==='live').length;\n  const meter=root.querySelector('[data-route-health-meter]');\n  if(meter)meter.textContent=live?live+' live · '+checked+' checked':checked+' checked';\n }\n async function refreshRouteHealth(){\n  try{activity=await request('witness-activity',{});updateRouteHealth();}catch{}\n }\n function setViewport(value){\n  selectedViewport=value==='mobile'?'mobile':'desktop';\n  sessionStorage.setItem('kl-witness-route-viewport',selectedViewport);\n  root.querySelectorAll('[data-route-viewport]').forEach(button=>button.setAttribute('aria-pressed',String(button.dataset.routeViewport===selectedViewport)));\n  const witnessButton=document.querySelector('[data-view=\"'+selectedViewport+'\"]');\n  if(witnessButton&&witnessButton.getAttribute('aria-pressed')!=='true')witnessButton.click();\n }\n function applyFilter(value){\n  const q=String(value||'').trim().toLowerCase();\n  root.querySelectorAll('[data-route-item]').forEach(button=>{\n    const visible=!q||String(button.dataset.routeSearch||'').includes(q);\n    button.hidden=!visible;\n  });\n  root.querySelectorAll('[data-route-group]').forEach(group=>{\n    group.hidden=!group.querySelector('[data-route-item]:not([hidden])');\n  });\n }\n function render(){\n  const routes=Array.isArray(catalog&&catalog.routes)?catalog.routes:[];\n  const groups=new Map();\n  routes.forEach(route=>{const key=String(route.domain||'misc');if(!groups.has(key))groups.set(key,[]);groups.get(key).push(route);});\n  const grouped=[...groups.entries()].sort((a,b)=>a[0].localeCompare(b[0]));\n  const groupHtml=grouped.map(pair=>{\n   const domain=pair[0],items=pair[1].slice().sort((a,b)=>String(a.path).localeCompare(String(b.path))),did=domainId(domain);\n   const buttons=items.map(route=>{\n    const unresolved=Array.isArray(route.unresolved)&&route.unresolved.length;\n    const testid=route.template==='/admin'?' data-testid=\"witness-route-smoke\"':'';\n    const search=(route.path+' '+route.template+' '+route.description+' '+route.role+' '+route.domain).toLowerCase();\n    return '<button class=\"kl-route-item\" type=\"button\" data-route-item data-route-path=\"'+esc(route.path)+'\" data-route-search=\"'+esc(search)+'\"'+testid+'><span class=\"kl-route-item-head\"><b>'+esc(route.path)+'</b><span class=\"kl-route-health never\" data-route-health>NEVER</span></span><small>'+esc(route.description||route.template)+'</small>'+(unresolved?'<em>TEMPLATE · '+esc(route.unresolved.join(', '))+'</em>':'')+'</button>';\n   }).join('');\n   return '<details class=\"kl-route-group\" data-route-group><summary data-testid=\"witness-route-domain-'+esc(did)+'\"><span>'+esc(domain.replace(/-/g,' '))+'</span><span>'+items.length+'</span></summary><div class=\"kl-route-list\">'+buttons+'</div></details>';\n  }).join('');\n  root.innerHTML='<details class=\"kl-route-browser\"><summary class=\"kl-route-summary\" data-testid=\"witness-route-toggle\"><span class=\"kl-route-kicker\">ROUTES</span><strong>Witness routes</strong><span class=\"kl-route-count\">'+routes.length+' actual routes · <span data-route-health-meter>0 checked</span></span><span class=\"kl-route-tenant\">'+esc(catalog&&catalog.tenant&&catalog.tenant.label||'Platform')+'</span></summary><div class=\"kl-route-panel\"><div class=\"kl-route-toolbar\"><input class=\"kl-route-search\" type=\"search\" placeholder=\"Filter routes, roles, domains…\" aria-label=\"Filter witness routes\"><div class=\"kl-route-viewports\"><button type=\"button\" data-route-viewport=\"desktop\">Desktop</button><button type=\"button\" data-route-viewport=\"mobile\">Mobile</button></div></div><p class=\"kl-route-status\">Click a route and the Laptop witness will open it automatically.</p><div class=\"kl-route-groups\">'+groupHtml+'</div></div></details>';\n  setViewport(selectedViewport);updateRouteHealth();\n  root.querySelector('.kl-route-search')?.addEventListener('input',event=>applyFilter(event.target.value));\n  root.querySelectorAll('[data-route-viewport]').forEach(button=>button.addEventListener('click',()=>setViewport(button.dataset.routeViewport)));\n  root.querySelectorAll('[data-route-item]').forEach(button=>button.addEventListener('click',async()=>{\n    if(busy)return;busy=true;\n    const path=String(button.dataset.routePath||'');\n    const status=root.querySelector('.kl-route-status');\n    root.querySelectorAll('[data-route-item]').forEach(item=>item.disabled=true);\n    if(status)status.textContent='Opening '+path+' on '+selectedViewport+'…';\n    try{\n      const result=await request('witness-route',{route:path,viewport:selectedViewport});\n      if(result&&result.ok===false)throw new Error(result.error||'Witness route failed');\n      if(status)status.textContent='Witness opening '+path+'. Live activity will update automatically.';\n      root.querySelector('.kl-route-browser')?.removeAttribute('open');\n    }catch(error){\n      if(status)status.textContent=error instanceof Error?error.message:'Could not start witness route';\n    }finally{\n      busy=false;root.querySelectorAll('[data-route-item]').forEach(item=>item.disabled=false);\n    }\n  }));\n }\n document.addEventListener('click',event=>{\n  const button=event.target&&event.target.closest?event.target.closest('[data-view]'):null;\n  if(button&&['desktop','mobile'].includes(button.dataset.view))setViewport(button.dataset.view);\n });\n request('routes',{}).then(data=>{catalog=data;render();refreshRouteHealth();setInterval(()=>{if(!document.hidden)refreshRouteHealth();},3000);}).catch(error=>{\n  root.innerHTML='<div class=\"kl-route-summary\"><span class=\"kl-route-kicker\">ROUTES</span><strong>Witness routes unavailable</strong><span class=\"kl-route-count\">'+esc(error.message)+'</span></div>';\n });\n})();\n</script>\n<script type=\"module\" src=\"./console.js?v=observatory-1\"></script></body></html>\n\n[executed on device: MSI (64d60b1d-06be-4c67-8142-12cb4d34d5e9)]"},{"path":"public/console/operator.mjs","content":"let host, options, sending=false, draft='', timer=null, activeView='desktop', latest=null, compareMode=false, commentaryOpen=sessionStorage.getItem('kl-console-commentary-open')==='1';\nconst messages=[];\nlet context={route:'',tenantRef:'',roleRef:'',viewports:['desktop','mobile']};\ntry { const saved=JSON.parse(sessionStorage.getItem('kl-operator-context')||'null');if(saved)context={...context,route:String(saved.route||''),tenantRef:String(saved.tenantRef||''),roleRef:String(saved.roleRef||''),viewports:Array.isArray(saved.viewports)&&saved.viewports.length?saved.viewports:['desktop','mobile']}; } catch {}\nconst esc=v=>String(v??'').replace(/[&<>\"']/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c]));\nfunction save(){try{sessionStorage.setItem('kl-operator-context',JSON.stringify({route:context.route||'',tenantRef:context.tenantRef||'',roleRef:context.roleRef||'',viewports:Array.isArray(context.viewports)&&context.viewports.length?context.viewports:['desktop','mobile']}));}catch{}}\nfunction liveActivity(){return options?.witnessActivity?.()||{active:null,runs:[]};}\nfunction liveRun(){return liveActivity()?.active||null;}\nfunction recentRuns(){const runs=liveActivity()?.runs;return Array.isArray(runs)?runs:[];}\nfunction focusRun(){return liveRun()||recentRuns()[0]||null;}\nfunction runsForRoute(route){return recentRuns().filter(run=>String(run?.currentRoute||'')===String(route||''));}\nfunction proofForRun(run,viewport=activeView){const candidates=(run?.artifactReceipts||[]).filter(a=>(!a.viewport||a.viewport===viewport)&&String(a.phase||'').toLowerCase()!=='preflight').sort((a,b)=>{const rank={after:3,observe:2,before:1};return (rank[String(b.phase||'').toLowerCase()]||0)-(rank[String(a.phase||'').toLowerCase()]||0)||String(b.capturedAt||'').localeCompare(String(a.capturedAt||''));});return candidates.find(a=>imageUrl(a?.signedUrl))||null;}\nfunction previousRoute(current){for(const run of recentRuns()){const route=String(run?.currentRoute||'');if(route&&route!==current)return route;}return '';}\nasync function witnessRoute(route){if(!route||sending)return;await options.bridge('witness-route',{route,viewport:activeView,tenantRef:context.tenantRef||''});}\nfunction compareMarkup(route){if(!compareMode)return '';const proofs=[];for(const run of runsForRoute(route)){const proof=proofForRun(run);if(proof)proofs.push({run,proof});if(proofs.length===2)break;}if(proofs.length<2)return '<div class=\"witness-compare-empty\">Two accepted frames are needed before this route can be compared.</div>';return '<div class=\"witness-compare-grid\">'+proofs.map((item,index)=>'<figure><figcaption>'+(index===0?'Latest':'Previous')+' · '+esc(new Date(item.proof.capturedAt||item.run.completedAt||Date.now()).toLocaleString())+'</figcaption><img src=\"'+esc(imageUrl(item.proof.signedUrl))+'\" alt=\"'+(index===0?'Latest':'Previous')+' witness frame\"></figure>').join('')+'</div>';}\nfunction witnessActivityMarkup(){const active=liveRun(),seen=new Set(),runs=[];for(const run of [active,...recentRuns()]){if(!run?.id||seen.has(run.id))continue;seen.add(run.id);runs.push(run);if(runs.length>=6)break;}if(!runs.length)return '<div class=\"witness-standby-state\"><b>Laptop witness standing by.</b><span>The next witness run will appear here automatically.</span></div>';return `<div class=\"witness-activity-list\">${runs.map(run=>`<article class=\"witness-activity-item ${run.terminal?'complete':'live-run'}\"><div><span class=\"live-kicker\">${run.terminal?'COMPLETE':'LIVE'}</span><b>${esc(run.currentRoute||'Witness run')}</b><span>${esc(run.currentViewport||'viewport pending')} · ${esc(String(run.phase||run.status||'working').replaceAll('_',' '))}</span></div><time>${esc(new Date(run.lastProgressAt||run.completedAt||run.startedAt||run.createdAt||Date.now()).toLocaleTimeString())}</time>${run.ownerComments?.length?`<small>${run.ownerComments.length} owner comment${run.ownerComments.length===1?'':'s'}</small>`:''}</article>`).join('')}</div>`;}\nfunction evidence(){const run=focusRun(),route=run?.currentRoute||'',artifacts=[...(run?.artifactReceipts||[])];return artifacts.filter(a=>(!a.viewport||a.viewport===activeView)&&(!a.route||!route||a.route===route)&&String(a.phase||'').toLowerCase()!=='preflight').sort((a,b)=>{const rank={after:3,observe:2,before:1};const phaseRank=(rank[String(b.phase||'').toLowerCase()]||0)-(rank[String(a.phase||'').toLowerCase()]||0);return phaseRank||String(b.capturedAt||'').localeCompare(String(a.capturedAt||''));});}\nfunction imageUrl(value){try{const u=new URL(value);return u.protocol==='https:'&&u.hostname==='laptop-witness.knocklaunch.app'&&u.pathname.startsWith('/__witness/evidence/')?u.href:'';}catch{return '';}}\nfunction render(){\n if(!host?.isConnected)return;\n const live=liveRun(),focus=focusRun(),livePending=Boolean(live&&!live.terminal);if(livePending&&['desktop','mobile'].includes(live.currentViewport))activeView=live.currentViewport;const displayRoute=focus?.currentRoute||'',candidate=evidence()[0]||focus?.latestProof,proof=String(candidate?.phase||'').toLowerCase()==='preflight'?null:candidate,url=imageUrl(proof?.signedUrl),pending=livePending,localConnected=options.localConnected?.()===true,hostedOnline=options.hostedOnline?.()!==false,system=options.systemStatus?.()||{},desktop=system.desktop||{},laptop=system.laptop||{},services=system.services||{},renderVerified=Boolean(focus?.terminal&&url),proofIncomplete=Boolean(focus?.terminal&&!url);\n host.innerHTML=`<header class=\"console-header overview-header\"><div><div class=\"eyebrow\">KNOCKLAUNCH CONSOLE</div><h1>Overview</h1><p>Everything you need to run and inspect KNOCKLAUNCH.</p></div><div class=\"connection-strip\"><span class=\"${desktop.online?'live':'failed'}\"><i></i>Desktop ${desktop.online?(desktop.busy?'busy':'online'):'offline'}</span><span class=\"${laptop.online?'live':'failed'}\"><i></i>Laptop ${laptop.witnessActive?'witnessing':laptop.online?'ready':'offline'}</span><span class=\"${services.online===services.total?'live':'waiting'}\"><i></i>Services ${services.online??0}/${services.total??3}</span><span class=\"pill ${livePending?'running':laptop.online?'live':'failed'}\">${livePending?'Witness live':laptop.online?'Witness ready':'Witness offline'}</span></div></header><div class=\"layout\"><nav class=\"console-nav\" aria-label=\"Console navigation\">${options.stages.map(s=>`<button data-stage=\"${s.id}\" aria-current=\"${s.id==='overview'?'page':'false'}\">${esc(s.name)}</button>`).join('')}</nav><main class=\"operator-main\">${!localConnected&&options.connectLocal?`<section class=\"panel operator-pairing\"><div class=\"provider-head\"><div><h3>Connect your MSI</h3><p class=\"muted\">Paste the pairing code from the MSI Console once. Hosted chat and provider views stay available either way.</p></div><div class=\"connect\"><input id=\"operator-pair\" type=\"password\" autocomplete=\"off\" placeholder=\"MSI pairing code\" aria-label=\"MSI pairing code\"><button id=\"operator-connect\">Pair MSI</button></div></div></section>`:''}<div class=\"operator-grid ${(!commentaryOpen&&!livePending)?'commentary-collapsed':''}\"><section class=\"panel operator-chat\"><div class=\"provider-head\"><div><div class=\"eyebrow\">${livePending?'LIVE COMMENTARY':'INSPECT'}</div><h2>${livePending?'Comment on live witness':'What should the witness check?'}</h2></div><div class=\"operator-chat-head-actions\"><button id=\"operator-commentary-toggle\" aria-pressed=\"${commentaryOpen||livePending}\">${commentaryOpen||livePending?'Collapse':'Commentary'}</button><button id=\"operator-clear\" ${sending||pending?'disabled':''}>New chat</button></div></div><div class=\"operator-messages\" role=\"log\" aria-live=\"polite\">${messages.length?messages.map(m=>`<div class=\"operator-message ${m.role}\"><strong>${m.role==='user'?'You':'KNOCKLAUNCH'}</strong><p>${esc(m.text)}</p></div>`).join(''):'<p class=\"muted\">Your Laptop witness is connected and standing by. Ask for any KNOCKLAUNCH page and the live run will appear beside you automatically.</p><div class=\"actions\"><button data-prompt=\"Show /admin/console on both\">Show Console</button><button data-prompt=\"Show Big Papi inventory on mobile\">Big Papi inventory</button></div>'}</div>${live?.ownerComments?.length?`<div class=\"live-commentary-feed\"><div class=\"eyebrow\">OWNER NOTES ON THIS RUN</div>${live.ownerComments.slice(-5).map(note=>`<div class=\"live-comment\"><time>${esc(new Date(note.at||Date.now()).toLocaleTimeString())}</time><span>${esc(note.text)}</span></div>`).join('')}</div>`:''}<form id=\"operator-form\"><label class=\"sr-only\" for=\"operator-message\">Message KNOCKLAUNCH</label><textarea id=\"operator-message\" rows=\"3\" maxlength=\"2000\" placeholder=\"${livePending?'Comment on live witness…':'Show /admin/console on mobile…'}\" ${sending?'disabled':''}>${esc(draft)}</textarea><div class=\"operator-compose-actions\"><span class=\"muted small\">${livePending?'Your comment is attached to this live witness run':'Enter to send · Shift+Enter for a new line'}</span><button type=\"submit\" ${sending?'disabled':''}>${sending?'Sending…':'Send'}</button></div></form><details><summary>Inspection context</summary><div class=\"operator-context\"><label>Route<input id=\"operator-route\" value=\"${esc(context.route)}\" placeholder=\"/tenant/owner/page\"></label><label>Tenant<input id=\"operator-tenant\" value=\"${esc(context.tenantRef)}\" placeholder=\"Tenant slug or ID\"></label><label>Role<input id=\"operator-role\" value=\"${esc(context.roleRef)}\" placeholder=\"Default experience\"></label></div><button id=\"operator-context-save\">Use this context</button></details></section><section class=\"panel operator-witness ${livePending?'is-live':'is-standby'}\"><div class=\"provider-head\"><div><div class=\"eyebrow witness-live-label\">${livePending?'● LIVE':focus?.terminal?'LAST RUN':'STANDBY'}</div><h2>Live Witness</h2></div><div class=\"actions\">${['desktop','mobile'].map(v=>`<button data-view=\"${v}\" aria-pressed=\"${activeView===v}\">${v==='desktop'?'Desktop':'Mobile'}</button>`).join('')}</div></div><div class=\"witness-control-strip\"><div class=\"witness-control-left\"><button type=\"button\" data-witness-control=\"back\" ${previousRoute(displayRoute)?'':'disabled'}>← Back</button><button type=\"button\" data-witness-control=\"refresh\" ${displayRoute?'':'disabled'}>↻ Refresh</button><a class=\"button-like ${displayRoute?'':'disabled'}\" ${displayRoute?'href=\"'+esc(displayRoute)+'\" target=\"_blank\" rel=\"noopener\"':''}>Open</a><button type=\"button\" data-witness-control=\"compare\" ${displayRoute?'':'disabled'} aria-pressed=\"${compareMode}\">Compare</button></div><div class=\"witness-control-status\"><span>${livePending?'LIVE':'READY'}</span><small>${esc(activeView)}</small></div></div><div class=\"operator-route muted\">${focus?esc(displayRoute||'Witness run'):'Laptop witness standing by'}${focus?.currentViewport?' · '+esc(focus.currentViewport):''}</div><p class=\"small muted\" role=\"status\">${focus?esc(String(focus.phase||focus.status||'ready').replaceAll('_',' ')):'New Laptop witness runs appear here automatically.'}</p><div class=\"operator-image ${activeView} ${focus?'':'standby'}\">${url?`<a href=\"${esc(url)}\" target=\"_blank\" rel=\"noopener noreferrer\"><img src=\"${esc(url)}\" alt=\"${esc(activeView+' witness of '+context.route)}\" referrerpolicy=\"no-referrer\"></a><p class=\"small muted\">Rendered proof · ${esc(proof.phase||'final')} · Captured ${esc(new Date(proof.capturedAt||Date.now()).toLocaleTimeString())}</p>`:`<p class=\"muted\">${livePending?'Witness is working. The newest rendered frame will appear here automatically.':focus&&proofIncomplete?'The last run finished without accepted rendered proof. It remains in Recent witness activity, but it does not block the Laptop.':focus?'No rendered image is available for this viewport.':'Laptop witness is connected and standing by. New runs appear here automatically.'}</p>`}</div>${compareMarkup(displayRoute)}<section class=\"operator-live-activity\"><div class=\"provider-head\"><div><div class=\"eyebrow\">WITNESS ACTIVITY</div><h3>Recent runs</h3></div><span class=\"muted small\">Auto-refreshing</span></div>${witnessActivityMarkup()}</section>${latest?.failureReason?`<p class=\"error\">${esc(latest.failureReason)}</p>`:''}<details class=\"operator-run-details\"><summary>Run details</summary><pre class=\"logs\">${esc(JSON.stringify({route:context.route,tenant:context.tenantRef||null,role:context.roleRef||'default',viewports:context.viewports,lane:latest?.runnerLane||'laptop',status:latest?.status||'not started',proofPhase:proof?.phase||candidate?.phase||null,renderProofAccepted:Boolean(url),job:context.jobId||context.missionId||null},null,2))}</pre></details></section></div></main></div>`;\n host.querySelectorAll('[data-stage]').forEach(b=>b.onclick=()=>{clearTimeout(timer);const go=options.onStage;host=null;go(b.dataset.stage);});\n const pairButton=host.querySelector('#operator-connect');if(pairButton)pairButton.onclick=async()=>{const code=host.querySelector('#operator-pair')?.value.trim()||'';if(!code){messages.push({role:'assistant',text:'Paste the MSI pairing code first.'});render();return;}pairButton.disabled=true;try{await options.connectLocal(code);messages.push({role:'assistant',text:'MSI paired. Local machine commands are now available from this Console.'});}catch(error){messages.push({role:'assistant',text:error instanceof Error?error.message:'MSI pairing failed.'});}finally{render();}};\n host.querySelectorAll('[data-view]').forEach(b=>b.onclick=()=>{draft=host.querySelector('textarea').value;activeView=b.dataset.view;render();});\n host.querySelectorAll('[data-prompt]').forEach(b=>b.onclick=()=>send(b.dataset.prompt));\n const commentaryToggle=host.querySelector('#operator-commentary-toggle');if(commentaryToggle)commentaryToggle.onclick=()=>{commentaryOpen=!commentaryOpen;sessionStorage.setItem('kl-console-commentary-open',commentaryOpen?'1':'0');render();};\n host.querySelectorAll('[data-witness-control]').forEach(button=>button.onclick=async()=>{const action=button.dataset.witnessControl;if(action==='compare'){compareMode=!compareMode;render();return;}if(action==='refresh'&&displayRoute){await witnessRoute(displayRoute);return;}if(action==='back'){const route=previousRoute(displayRoute);if(route)await witnessRoute(route);}});\n const input=host.querySelector('textarea');input.oninput=()=>{draft=input.value;};input.onkeydown=e=>{if(e.key==='Enter'&&!e.shiftKey){e.preventDefault();send(input.value);}};\n host.querySelector('form').onsubmit=e=>{e.preventDefault();send(input.value);};\n host.querySelector('#operator-clear').onclick=()=>{clearTimeout(timer);context={route:'',tenantRef:'',roleRef:'',viewports:['desktop','mobile']};latest=null;messages.length=0;draft='';save();render();};\n host.querySelector('#operator-context-save').onclick=()=>{const route=host.querySelector('#operator-route').value.trim();if(route&&!/^\\/(?!\\/)/.test(route)){messages.push({role:'assistant',text:'Use a route starting with one slash.'});render();return;}context={route,tenantRef:host.querySelector('#operator-tenant').value.trim(),roleRef:host.querySelector('#operator-role').value.trim(),viewports:context.viewports};latest=null;save();render();};\n const image=host.querySelector('.operator-image img');if(image)image.onerror=()=>{image.parentElement.replaceWith(Object.assign(document.createElement('p'),{textContent:'This frame expired. The next live witness frame will replace it automatically.',className:'muted'}));};\n const log=host.querySelector('.operator-messages');log.scrollTop=log.scrollHeight;\n}\nasync function send(message,{poll=false}={}){\n if(sending||!message.trim())return;\n const live=liveRun(),control=/^(status|poll|progress|cancel|stop)$/i.test(message.trim());\n if(live&&!live.terminal&&!control&&!poll){clearTimeout(timer);sending=true;messages.push({role:'user',text:message});draft='';render();try{const result=await options.commentWitness?.({runId:live.id,comment:message});if(result?.ok===false||result?.error)throw new Error(result.error||'Comment could not be attached');messages.push({role:'assistant',text:'Comment attached to the live witness.'});await options.refreshWitnessActivity?.();}catch(e){messages.push({role:'assistant',text:e instanceof Error?e.message:'Comment could not be attached'});}finally{sending=false;render();}return;}\n if(context.jobId&&latest&&!latest.terminal&&!control){messages.push({role:'assistant',text:'The current witness is still running. Wait for its result or cancel it before starting another capture.'});render();return;}\n clearTimeout(timer);sending=true;\n if(!poll){messages.push({role:'user',text:message});draft='';}\n render();\n try{\n  const result=await options.bridge('operator',{message,context});\n  if(result.ok===false||result.error)throw new Error(result.error||'Operator unavailable');\n  context=result.context||context;save();if(result.receipt)latest=result.receipt;\n  if(!poll||latest?.terminal)messages.push({role:'assistant',text:result.message});\n  if(context.viewports.length===1)activeView=context.viewports[0];\n  if(result.kind!=='help'&&context.jobId&&!latest?.terminal)timer=setTimeout(()=>send('status',{poll:true}),4000);\n }catch(e){messages.push({role:'assistant',text:e.message+' The Console will keep following the witness automatically.'});}\n finally{sending=false;render();}\n}\nexport function mountOperator(element,config){options=config;host=element;if(element.querySelector('.operator-main')){render();return;}render();}\n\n[executed on device: MSI (64d60b1d-06be-4c67-8142-12cb4d34d5e9)]"},{"path":"public/console/console.js","content":"import { mountOperator } from './operator.mjs?v=observatory-1';\nimport { stages, actions } from './catalog.mjs?v=observatory-1';\nconst app=document.querySelector('#app');\nconst embedded=window.parent!==window;\nconst local=location.hostname==='127.0.0.1'||location.hostname==='localhost';\nconst localSessionKey='kl-console-session';\nlet token=localStorage.getItem(localSessionKey)||'';\n// The launcher supplies the machine-local session in the fragment once, never a query or provider secret.\nif(local&&location.hash.startsWith('#session=')){token=decodeURIComponent(location.hash.slice(9));localStorage.setItem(localSessionKey,token);history.replaceState(null,'',location.pathname);}\nlet selected='overview', connected=false, hostedOnline=embedded, busy=false, witnessActivityBusy=false, state={jobs:[],steps:{},providers:{},witness:null,witnessActivity:{ok:false,status:'connecting',active:null,runs:[]}}, notice='', lastRefresh=0;\nconst pending=new Map();\nconst escape=value=>String(value??'').replace(/[&<>\"']/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c]));\nwindow.addEventListener('message',event=>{if(event.source!==parent||event.origin!==location.origin||event.data?.type!=='kl-console-result')return;const entry=pending.get(event.data.id);if(!entry)return;pending.delete(event.data.id);clearTimeout(entry.timer);event.data.error?entry.reject(new Error(event.data.error)):entry.resolve(event.data.data);});\nfunction bridge(action,payload={}){return new Promise((resolve,reject)=>{const id=crypto.randomUUID(),timer=setTimeout(()=>{pending.delete(id);reject(new Error('Provider request timed out. Retry.'));},30000);pending.set(id,{resolve,reject,timer});parent.postMessage({type:'kl-console-request',id,action,payload},location.origin);});}\nasync function api(path,body){const response=await fetch((local?'':'http://127.0.0.1:47831')+path,{method:body?'POST':'GET',headers:{Authorization:'Bearer '+token,...(body?{'Content-Type':'application/json'}:{})},...(body?{body:JSON.stringify(body)}:{}),signal:AbortSignal.timeout(15000)});const data=await response.json();if(!response.ok)throw new Error(data.error||'Console request failed');return data;}\nasync function fetchWitnessHealth(){try{return await bridge('witness');}catch(error){return {ok:false,status:'unavailable',witnessHealthy:false,witnessActive:false,activeJobs:0,error:error instanceof Error?error.message:'Witness health unavailable'};}}\nasync function fetchWitnessActivity(){try{return await bridge('witness-activity');}catch(error){return {ok:false,status:'unavailable',active:null,runs:[],error:error instanceof Error?error.message:'Witness activity unavailable'};}}\nfunction witnessActivityMarkup(){const feed=state.witnessActivity||{},runs=Array.isArray(feed.runs)?feed.runs:[];if(!runs.length)return `<div class=\"empty-state\"><b>Witness is ${escape(feed.status||'ready')}.</b><span>New Laptop witness runs will appear here automatically.</span></div>`;return `<div class=\"witness-activity-list\">${runs.map(run=>`<article class=\"witness-activity-item ${run.terminal?'complete':'live-run'}\"><div><span class=\"live-kicker\">${run.terminal?'COMPLETE':'LIVE'}</span><b>${escape(run.currentRoute||'Witness run')}</b><span>${escape(run.currentViewport||'viewport pending')} · ${escape((run.phase||run.status||'working').replaceAll('_',' '))}</span></div><time>${escape(new Date(run.lastProgressAt||run.completedAt||run.startedAt||run.createdAt||Date.now()).toLocaleTimeString())}</time>${run.ownerComments?.length?`<small>${run.ownerComments.length} owner comment${run.ownerComments.length===1?'':'s'}</small>`:''}</article>`).join('')}</div>`;}\nasync function refreshWitnessActivity(){if(!embedded||witnessActivityBusy)return;witnessActivityBusy=true;try{const data=await fetchWitnessActivity();state.witnessActivity=data;if(data?.ok){state.witness={...(state.witness||{}),ok:true,status:data.status||state.witness?.status||'ready',activeJobs:Number(data.activeJobs||0),witnessActive:Boolean(data.active)}}const tag=document.activeElement?.tagName;if(!['INPUT','TEXTAREA','SELECT'].includes(tag))render();}catch{}finally{witnessActivityBusy=false;}}\nfunction forgejoRunners(){return state.providers.forgejo?.sections?.Runners?.data?.runners||state.providers.forgejo?.runners||[];}\nfunction namedRunner(name){return forgejoRunners().find(item=>item?.name===name)||null;}\nfunction runnerOnline(item){return Boolean(item&&String(item.status||'').toLowerCase()!=='offline');}\nfunction providerOnline(name){const item=state.providers[name];if(!item)return false;return !['failed','error','unavailable','offline'].includes(String(item.status||'').toLowerCase());}\nfunction systemStatus(){const desktop=namedRunner('msi-local'),laptopRunner=namedRunner('laptop-local'),witness=state.witness||{};const laptopOnline=witness.ok===true||runnerOnline(laptopRunner);return {desktop:{online:runnerOnline(desktop),busy:Boolean(desktop?.busy),status:desktop?.status||'connecting',slots:desktop?.executionSlots||desktop?.guaranteedAvailableSlots||null},laptop:{online:laptopOnline,witnessReady:witness.ok===true&&['ready','live'].includes(String(witness.status||'').toLowerCase()),witnessActive:Boolean(witness.activeJobs||witness.witnessActive),status:witness.status||laptopRunner?.status||'connecting',runnerOnline:runnerOnline(laptopRunner)},services:{online:['cloudflare','supabase','forgejo'].filter(providerOnline).length,total:3},lastRefresh};}\nfunction statusClass(ok){return ok?'live':'failed';}\nfunction technicalDetails(title,data){return `<details class=\"technical-details\"><summary>${escape(title)}</summary><pre class=\"logs\">${escape(JSON.stringify(data??null,null,2))}</pre></details>`;}\nfunction serviceCard(name,label){const data=state.providers[name],online=providerOnline(name);return `<section class=\"panel service-card\"><div class=\"provider-head\"><div><div class=\"eyebrow\">${escape(label)}</div><h3>${online?'Connected':'Checking connection'}</h3></div><span class=\"status-dot-wrap\"><span class=\"status-dot ${online?'on':'off'}\"></span>${online?'Live':'Degraded'}</span></div><p class=\"muted\">${data?.summary?Object.entries(data.summary).slice(0,2).map(([k,v])=>`${escape(k)}: ${escape(v??'—')}`).join(' · '):'KNOCKLAUNCH is reading this service through your signed-in owner session.'}</p>${technicalDetails('Technical details',data)}</section>`;}\nfunction machineCards(){const desktop=namedRunner('msi-local'),laptopRunner=namedRunner('laptop-local'),sys=systemStatus(),witness=state.witness||{},others=forgejoRunners().filter(item=>!['msi-local','laptop-local'].includes(item?.name));return `<div class=\"machine-grid\"><section class=\"machine-card primary\"><div class=\"machine-card-head\"><div><div class=\"eyebrow\">DESKTOP</div><h2>Primary Build Runner</h2></div><span class=\"status-dot-wrap\"><span class=\"status-dot ${sys.desktop.online?'on':'off'}\"></span>${sys.desktop.online?(sys.desktop.busy?'Busy':'Online'):'Offline'}</span></div><p class=\"machine-purpose\">Builds, Gate work and CI jobs belong here.</p><div class=\"mini-metrics\"><div><span>Runner</span><b>msi-local</b></div><div><span>State</span><b>${escape(desktop?.status||'Connecting')}</b></div><div><span>Slots</span><b>${escape(desktop?.executionSlots??desktop?.guaranteedAvailableSlots??'—')}</b></div></div></section><section class=\"machine-card witness\"><div class=\"machine-card-head\"><div><div class=\"eyebrow\">LAPTOP</div><h2>Interactive Witness</h2></div><span class=\"status-dot-wrap\"><span class=\"status-dot ${sys.laptop.online?'on':'off'}\"></span>${sys.laptop.witnessActive?'Witnessing':sys.laptop.online?'Ready':'Offline'}</span></div><p class=\"machine-purpose\">Authenticated visual inspection and interactive page proof.</p><div class=\"mini-metrics\"><div><span>Witness</span><b>${escape(witness.status||'Connecting')}</b></div><div><span>Health</span><b>${witness.witnessHealthy===false?'Attention':witness.ok===true?'Healthy':sys.laptop.runnerOnline?'Runner online':'Checking'}</b></div><div><span>Runner</span><b>${escape(laptopRunner?.status||'Secondary')}</b></div></div></section></div>${others.length?`<details class=\"panel infrastructure\"><summary>Fallback infrastructure · ${others.length} available</summary><div class=\"runner-list\">${others.map(r=>`<div><b>${escape(r.name)}</b><span class=\"pill ${runnerOnline(r)?'live':'failed'}\">${escape(r.status||'unknown')}</span></div>`).join('')}</div></details>`:''}`;}\nfunction renderHosted(){const stage=stages.find(item=>item.id===selected)||stages[0],sys=systemStatus(),updated=lastRefresh?new Date(lastRefresh).toLocaleTimeString():'Connecting';let body='';if(selected==='machines')body=`${machineCards()}<div class=\"quick-row\"><button data-run=\"forgejo\">Refresh machines</button><button data-run=\"runner-proof\">Run Desktop proof</button></div>`;else if(selected==='release')body=`<section class=\"panel release-hero\"><div><div class=\"eyebrow\">CANONICAL RELEASE</div><h2>One path from code to live.</h2><p class=\"muted\">The Console shows the pipeline. Gate and release machinery do the technical work underneath.</p></div><div class=\"release-flow\"><div><b>1</b><span>Code</span></div><i>→</i><div><b>2</b><span>Gate</span></div><i>→</i><div><b>3</b><span>Candidate</span></div><i>→</i><div><b>4</b><span>Live</span></div></div></section><div class=\"service-grid\">${serviceCard('forgejo','BUILD & GATE')}${serviceCard('cloudflare','LIVE RELEASE')}</div>`;else if(selected==='services')body=`<div class=\"service-grid three\">${serviceCard('cloudflare','CLOUDFLARE')}${serviceCard('supabase','SUPABASE')}${serviceCard('forgejo','FORGEJO')}</div>`;else if(selected==='activity')body=`<section class=\"panel activity-panel\"><div class=\"provider-head\"><div><div class=\"eyebrow\">LIVE WITNESS + RECENT WORK</div><h2>Activity</h2></div><span class=\"muted small\">Updated ${escape(updated)}</span></div>${witnessActivityMarkup()}${technicalDetails('Forgejo activity details',state.providers.forgejo)}</section>`;else body=machineCards();app.innerHTML=`<div class=\"console-frame\"><header class=\"console-header\"><div><div class=\"eyebrow\">KNOCKLAUNCH CONSOLE</div><h1>${escape(stage.name)}</h1><p>${escape(stage.description)}</p></div><div class=\"connection-strip\"><span class=\"${statusClass(sys.desktop.online)}\"><i></i>Desktop ${sys.desktop.online?'online':'offline'}</span><span class=\"${statusClass(sys.laptop.online)}\"><i></i>Laptop ${sys.laptop.witnessActive?'witnessing':sys.laptop.online?'ready':'offline'}</span><span class=\"${sys.services.online===sys.services.total?'live':'waiting'}\"><i></i>Services ${sys.services.online}/${sys.services.total}</span><button id=\"refresh\">Refresh</button></div></header><nav class=\"console-nav\" aria-label=\"Console navigation\">${stages.map(item=>`<button data-stage=\"${item.id}\" aria-current=\"${selected===item.id?'page':'false'}\">${escape(item.name)}</button>`).join('')}</nav><main class=\"console-main\">${notice?`<div class=\"notice\">${escape(notice)}</div>`:''}${body}</main></div>`;app.querySelectorAll('[data-stage]').forEach(button=>button.onclick=()=>{selected=button.dataset.stage;render();});app.querySelectorAll('[data-run]').forEach(button=>button.onclick=()=>run(button.dataset.run));const refreshButton=app.querySelector('#refresh');if(refreshButton)refreshButton.onclick=()=>refresh({deep:true});}\nasync function refresh(options={}){if(busy)return;busy=true;const deep=options.deep!==false;try{if(embedded){hostedOnline=true;const tasks=[['forgejo',bridge('forgejo')],['witness',fetchWitnessHealth()],['witnessActivity',fetchWitnessActivity()]];if(deep||!state.providers.cloudflare)tasks.push(['cloudflare',bridge('cloudflare')]);if(deep||!state.providers.supabase)tasks.push(['supabase',bridge('supabase')]);const settled=await Promise.all(tasks.map(async([key,promise])=>[key,await promise]));for(const [key,data] of settled){if(key==='witness')state.witness=data;else if(key==='witnessActivity')state.witnessActivity=data;else state.providers[key]=data;}if(!state.witness?.ok){const fallback=namedRunner('laptop-local');if(fallback)state.witness={ok:fallback.status!=='offline',status:fallback.status==='offline'?'unavailable':'runner-online',fallback:true,witnessHealthy:null,activeJobs:0};}lastRefresh=Date.now();notice='';return;}const data=await api('/api/state');state={...data,providers:{...state.providers,...data.providers}};connected=true;lastRefresh=Date.now();notice='';}catch(error){if(!embedded)connected=false;notice=error instanceof Error?error.message:'Some live systems could not refresh.';}finally{busy=false;if(document.activeElement?.tagName!=='INPUT')render();}}\nasync function run(id){notice='';try{if(['cloudflare','supabase','forgejo','runner-proof'].includes(id)&&!connected&&embedded){state.steps[id]={status:'running',startedAt:new Date().toISOString()};render();const data=await bridge(id);state.providers[id]=data;state.steps[id]={status:data.status==='unavailable'?'failed':'passed',endedAt:new Date().toISOString()};render();return;}\n if(!connected)throw new Error('Connect the MSI Console to run local steps.');\n let confirmation,registrationToken;\n if(id==='runner-register'){registrationToken=app.querySelector('#runner-registration-token')?.value.trim()||'';if(!registrationToken)throw new Error('Paste the repository runner registration token first.');}\n if(['candidate','promote','runner-stop','runner-restart','git-pull'].includes(id)){const source=state.release?.sourceSha||state.sourceSha||'current working copy';if(!confirm(actions[id].name+'\\n\\nTarget: '+source+'\\n\\nContinue?'))return;confirmation=state.release?.confirmation||source;}\n await api('/api/run',{action:id,confirmation,stage:selected,...(registrationToken?{registrationToken}:{})});if(registrationToken){const input=app.querySelector('#runner-registration-token');if(input)input.value='';registrationToken='';}await refresh();\n }catch(error){notice=error.message;if(state.steps[id]?.status==='running')state.steps[id]={status:'failed',error:error.message};render();}}\nfunction providerCard(name){const data=state.providers[name];if(!data)return `<section class=\"panel\"><h3>${escape(name)}</h3><p class=\"muted\">No provider observation yet.</p><button data-run=\"${name}\">Load live state</button></section>`;const stale=Date.now()-Date.parse(data.observedAt)>90000;const status=stale?'stale':data.status;return `<section class=\"panel\"><div class=\"provider-head\"><h3>${escape(name)}</h3><span class=\"pill ${escape(status)}\">${escape(status)}</span></div><p class=\"muted small\">Observed ${escape(new Date(data.observedAt).toLocaleString())}</p>${data.error?`<p class=\"error\">${escape(data.error)}</p>`:''}<div class=\"metrics\">${Object.entries(data.summary||{}).map(([key,value])=>`<div class=\"metric\"><span class=\"muted\">${escape(key)}</span><b>${escape(value??'Unknown')}</b></div>`).join('')}</div>${Object.entries(data.sections||{}).map(([key,section])=>`<details><summary>${escape(key)} · ${escape(section.status)}</summary>${section.error?`<p class=\"error\">${escape(section.error)}</p>`:''}<pre class=\"logs\">${escape(JSON.stringify(section.data??null,null,2))}</pre></details>`).join('')}</section>`;}\nfunction runnerCard(){const localRunner=state.runner||{},runners=state.providers.forgejo?.sections?.Runners?.data?.runners||[],remote=runners.find(item=>item?.name==='msi-local'),remoteReady=remote?remote.status!=='offline':null,primaryReady=embedded?remoteReady:localRunner.serviceActive;const item=(label,ok,text)=>`<div class=\"metric\"><span class=\"muted\">${escape(label)}</span><b>${escape(text)}</b><span class=\"pill ${ok===true?'live':ok===false?'failed':'waiting'}\">${ok===true?'ready':ok===false?'attention':'unknown'}</span></div>`;return `<section class=\"panel\"><div class=\"provider-head\"><h3>MSI runner status</h3><span class=\"pill ${primaryReady?'live':'failed'}\">${primaryReady?'online':'offline'}</span></div><div class=\"metrics\">${item('Local service',localRunner.serviceActive,localRunner.serviceActive?'Running':'Stopped')}${item('Autostart',localRunner.autostartEnabled,localRunner.autostartEnabled?'Enabled':'Disabled')}${item('Windows keepalive',localRunner.keepalivePresent?localRunner.keepaliveRunning&&localRunner.keepaliveEnabled:false,localRunner.keepalivePresent?(localRunner.keepaliveRunning?'Running':'Stopped'):'Missing')}${item('Forgejo msi-local',remoteReady,remote?`${remote.status}${remote.busy?' · busy':''}`:'Load Forgejo state')}</div><p class=\"muted small\">${localRunner.observedAt?'Local state checked '+escape(new Date(localRunner.observedAt).toLocaleTimeString()):'Waiting for MSI state.'}</p>${remote?'<button data-run=\"forgejo\">Refresh Forgejo</button>':'<button data-run=\"forgejo\">Load Forgejo state</button>'}</section>`;}\nfunction render(){if(selected==='overview'){mountOperator(app,{bridge:embedded?bridge:async()=>{throw new Error('Open the signed-in Console at app.knocklaunch.app/admin/console to chat.');},hostedOnline:()=>hostedOnline,localConnected:()=>embedded||connected,systemStatus,witnessActivity:()=>state.witnessActivity,commentWitness:payload=>bridge('witness-comment',payload),refreshWitnessActivity,connectLocal:local?async code=>{const next=String(code||'').trim();if(!next)throw new Error('Local Console session unavailable.');token=next;localStorage.setItem(localSessionKey,token);await refresh();return true;}:null,stages,onStage:id=>{selected=id;render();}});return;}if(embedded){renderHosted();return;}const stage=stages.find(x=>x.id===selected),running=state.jobs.find(x=>x.status==='running');app.innerHTML=`<header><div class=\"top\"><div><div class=\"eyebrow\">MISSION FREEDOM</div><h1>KNOCKLAUNCH CONSOLE</h1></div><div class=\"row\">${embedded?`<span class=\"pill ${hostedOnline?'live':'unavailable'}\">Hosted ${hostedOnline?'online':'unavailable'}</span>`:''}<span class=\"pill ${connected?'live':'waiting'}\">MSI ${connected?'paired':embedded?'not paired':'disconnected'}</span><button id=\"refresh\">Refresh</button></div></div></header><div class=\"layout\"><nav aria-label=\"Console stages\">${stages.map((item,i)=>`<button data-stage=\"${item.id}\" aria-current=\"${selected===item.id?'step':'false'}\"><b>${i+1}</b>${item.name}</button>`).join('')}</nav><main><div class=\"headline\"><div class=\"eyebrow\">STAGE ${stages.indexOf(stage)+1} OF ${stages.length}</div><h2>${stage.name}</h2><div class=\"muted\">${stage.description}</div></div>${notice?`<p role=\"alert\" class=\"notice error\">${escape(notice)}</p>`:''}${connected?`<details class=\"panel\"><summary>Connection settings</summary><p class=\"muted\">Saved only on this computer. Leave a field empty to keep its existing value.</p><form id=\"settings\"><div class=\"metrics\">${[\"CLOUDFLARE_API_TOKEN\",\"CLOUDFLARE_ACCOUNT_ID\",\"SUPABASE_ACCESS_TOKEN\",\"SUPABASE_PROJECT_REF\",\"FORGEJO_TOKEN\",\"RUNNER_SERVICE\"].map(key=>`<label class=\"muted\">${key.replaceAll(\"_\",\" \")}<input name=\"${key}\" type=\"${/TOKEN/.test(key)?\"password\":\"text\"}\" autocomplete=\"off\" placeholder=\"${state.settings?.[key]?\"Configured\":\"Not configured\"}\" style=\"width:100%;margin-top:6px\"></label>`).join(\"\")}</div><div class=\"actions\"><button type=\"submit\">Save settings</button></div></form></details>`:\"\"}${!connected?`<section class=\"panel\"><h3>Connect your MSI</h3><p class=\"muted\">Open “KNOCKLAUNCH Console” on the MSI. Copy its pairing code below. Local commands run on that computer; provider views remain available in GodMode.</p><div class=\"connect\"><input id=\"pair\" type=\"password\" autocomplete=\"off\" placeholder=\"Local Console pairing code\" aria-label=\"Local Console pairing code\"><button id=\"connect\">Connect</button></div><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></section>`:''}<div class=\"panels\"><section class=\"panel\"><div class=\"provider-head\"><h3>Steps</h3><span class=\"muted\">${running?'Running: '+escape(actions[running.action]?.name||running.action):'Choose the next step'}</span></div>${stage.steps.map(([id,name,description],index)=>{const step=state.steps[id]||{},status=step.status||'waiting';const allowed=connected||embedded&&['cloudflare','supabase','forgejo','runner-proof'].includes(id);return `<div class=\"step\"><span class=\"number\">${index+1}</span><div><strong>${name}</strong><p class=\"muted\">${description}</p><span class=\"pill ${escape(status)}\">${escape(status)}</span>${step.startedAt?` <span class=\"muted small\">${escape(new Date(step.startedAt).toLocaleTimeString())}${step.durationMs!=null?' · '+Math.round(step.durationMs/1000)+'s':''}</span>`:''}${step.error?`<p class=\"error\">${escape(step.error)}</p>`:''}${id==='runner-register'&&connected?`<input id=\"runner-registration-token\" type=\"password\" autocomplete=\"off\" spellcheck=\"false\" aria-label=\"Repository runner registration token\" placeholder=\"Paste repository runner token\" style=\"width:100%;margin-top:8px\">`:''}</div><button data-run=\"${id}\" ${!allowed||running?'disabled':''}>${id==='runner-register'?'Register':status==='failed'?'Retry':'Run'}</button></div>`}).join('')}</section><aside>${selected==='runner'?runnerCard():['cloudflare','supabase','health'].includes(selected)?providerCard(selected==='health'?'cloudflare':selected):`<section class=\"panel\"><h3>Current release</h3><p class=\"muted\">Source</p><code>${escape(state.release?.sourceSha||state.sourceSha||'Not prepared')}</code><p class=\"muted\">Candidate</p><code>${escape(state.release?.candidateVersionId||'Not created')}</code><p class=\"muted\">${escape(state.release?.state||'Prepare a release to begin.')}</p></section>${providerCard('cloudflare')}`}${selected==='health'?providerCard('supabase'):''}</aside><section class=\"panel full\"><div class=\"provider-head\"><h3>Command output</h3><span class=\"muted small\">${lastRefresh?'Updated '+escape(new Date(lastRefresh).toLocaleTimeString()):'Awaiting connection'}</span></div>${state.jobs.length?state.jobs.slice(0,8).map((job,index)=>`<details ${index===0?'open':''}><summary>${escape(actions[job.action]?.name||job.action)} · ${escape(job.status)} · ${escape(new Date(job.startedAt).toLocaleTimeString())}</summary><pre class=\"logs\">${escape(job.output||job.error||'Waiting for output…')}</pre></details>`).join(''):'<p class=\"muted\">Run a step to see its output here.</p>'}</section></div></main></div>`;\napp.querySelectorAll('[data-stage]').forEach(button=>button.onclick=()=>{selected=button.dataset.stage;render();});app.querySelectorAll('[data-run]').forEach(button=>button.onclick=()=>run(button.dataset.run));const settings=app.querySelector('#settings');if(settings)settings.onsubmit=async event=>{event.preventDefault();try{await api('/api/settings',Object.fromEntries(new FormData(settings)));notice='Settings saved.';settings.reset();await refresh();}catch(error){notice=error.message;render();}};app.querySelector('#refresh').onclick=refresh;const connect=app.querySelector('#connect');if(connect)connect.onclick=()=>{token=app.querySelector('#pair').value.trim();localStorage.setItem(localSessionKey,token);refresh();};}\nrender();if(embedded||local||token)refresh({deep:true});setInterval(()=>{if(!document.hidden&&(embedded||connected||local))refresh({deep:false});},30000);setInterval(()=>{if(!document.hidden&&embedded)refreshWitnessActivity();},3000);\n\n[executed on device: MSI (64d60b1d-06be-4c67-8142-12cb4d34d5e9)]"},{"path":"public/console/console.css","content":":root{color-scheme:dark;font-family:Inter,Segoe UI,system-ui,sans-serif;background:#06100d;color:#e8f5ef;font-size:15px}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;border:1px solid #315a49;background:#122c22;color:#e4fff1;padding:.65rem .9rem;border-radius:9px;font-weight:600}button:hover{background:#204734}button:disabled{opacity:.45;cursor:not-allowed}input{background:#071a12;border:1px solid #315a49;padding:.7rem;color:white;border-radius:8px;min-width:0}a{color:#79e5af}header{position:sticky;top:0;z-index:5;background:#081610;border-bottom:1px solid #284637;padding:16px 22px}h1{font-size:21px;letter-spacing:.035em;margin:4px 0}h2{font-size:23px;margin:0 0 8px}h3{font-size:16px;margin:0 0 12px}p{line-height:1.5}.eyebrow{color:#74d8a9;font-size:10px;letter-spacing:.18em;font-weight:700}.muted{color:#9cb7a9;font-size:13px}.top,.row{display:flex;align-items:center;gap:12px;justify-content:space-between}.top{flex-wrap:wrap}.layout{display:grid;grid-template-columns:210px minmax(0,1fr);min-height:calc(100vh - 85px)}nav{padding:16px;border-right:1px solid #243f32}nav button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;margin-bottom:6px;border-color:transparent;background:transparent;font-size:14px}nav button[aria-current=step]{background:#163b29;border-color:#428968}nav b{display:grid;place-items:center;width:25px;height:25px;border:1px solid #426a55;border-radius:7px}main{padding:22px;min-width:0;max-width:1500px;width:100%;margin:0 auto}.panels{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:16px}.panel{background:#0b1b14;border:1px solid #254a37;border-radius:12px;padding:17px;margin-bottom:16px}.step{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px 0;border-bottom:1px solid #203e2e}.step:last-child{border:0}.step p{margin:4px 0}.step .number{color:#72daa7;font-weight:700}.pill{font-size:10px;font-weight:700;text-transform:uppercase;padding:5px 8px;border-radius:6px;background:#263a30;white-space:nowrap}.passed,.live{background:#154a30;color:#89f0b8}.failed,.blocked,.unavailable{background:#4b391b;color:#ffd591}.running{background:#16453c;color:#9ff6de}.waiting,.stale{color:#a5b9af}.error{color:#ffd591;overflow-wrap:anywhere;font-size:13px}.logs{white-space:pre-wrap;overflow-wrap:anywhere;max-height:260px;overflow:auto;background:#030a06;padding:14px;font:12px/1.65 Consolas,monospace;border-radius:8px}.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.metric{padding:12px;background:#10271a;border:1px solid #254d35;border-radius:8px;overflow-wrap:anywhere}.metric b{display:block;font-size:20px;margin-top:5px}details{margin-top:12px}summary{cursor:pointer;color:#a4dabb;font-size:13px}table{width:100%;border-collapse:collapse;font-size:12px}td,th{text-align:left;padding:8px;border-bottom:1px solid #284436;overflow-wrap:anywhere}.scroll{overflow:auto;max-height:300px}.connect{display:flex;gap:8px;flex-wrap:wrap}.connect input{flex:1}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.notice{border-left:3px solid #65c18d;padding:10px 14px;background:#142d20}.headline{margin-bottom:18px}.full{grid-column:1/-1}.small{font-size:11px}.provider-head{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-bottom:12px}@media(max-width:900px){.panels{grid-template-columns:1fr}.layout{grid-template-columns:1fr}nav{display:flex;overflow:auto;position:sticky;top:83px;z-index:4;background:#091a12;padding:8px;border-bottom:1px solid #243f32}nav button{width:auto;white-space:nowrap;margin:0;padding:8px}nav b{width:20px;height:20px}main{padding:12px}.panel{padding:13px}header{padding:12px}.step{grid-template-columns:24px minmax(0,1fr) auto}.top .muted{display:none}}\n\n\n.operator-grid{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1.4fr);gap:16px;align-items:start}.operator-chat{display:flex;flex-direction:column;min-height:560px}.operator-messages{flex:1;min-height:200px;max-height:48vh;overflow:auto}.operator-message{padding:12px;margin:8px 0;border-radius:10px;background:#102a1e;overflow-wrap:anywhere}.operator-message.user{background:#194333;margin-left:24px}.operator-message strong{font-size:11px;color:#8ce1b4}.operator-message p{white-space:pre-wrap;margin:5px 0}.operator-chat textarea{width:100%;resize:vertical;min-height:80px;border:1px solid #438563;border-radius:10px;background:#06140c;color:#effff5;padding:12px;font:inherit}.operator-compose-actions{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:8px}.operator-context{display:grid;gap:8px;margin:12px 0}.operator-context label{display:grid;gap:5px;font-size:12px}.operator-image{background:#030905;min-height:220px;border-radius:9px;text-align:center;padding:10px;overflow:auto;max-height:65vh}.operator-image img{max-width:100%;height:auto;display:block;margin:auto}.operator-image.mobile img{max-width:min(100%,390px)}.operator-route{overflow-wrap:anywhere}.operator-witness h2,.operator-chat h2{font-size:18px}.operator-witness .actions{margin:0;gap:4px}.operator-witness [aria-pressed=true]{background:#286346;border-color:#79e5af}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:1050px){.operator-grid{grid-template-columns:1fr}.operator-chat{min-height:0}.operator-messages{max-height:32vh;min-height:100px}.operator-image{max-height:60vh}.operator-main{padding:10px}.operator-witness .provider-head{flex-wrap:wrap}.operator-chat .provider-head{align-items:start}.operator-chat h2{font-size:17px}}\n\n/* Live Witness Control Room */\n.witness-live-label{color:#9ff0c5;letter-spacing:.12em}.live-commentary-feed{display:grid;gap:7px;margin:10px 0;padding:10px;border:1px solid rgba(120,230,173,.14);border-radius:12px;background:rgba(4,19,11,.72)}.live-comment{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:start;font-size:12px}.live-comment time{color:var(--kl-muted);font-variant-numeric:tabular-nums}.live-comment span{overflow-wrap:anywhere}.witness-activity-list{display:grid;gap:8px}.witness-activity-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--kl-line);border-radius:13px;background:rgba(255,255,255,.02)}.witness-activity-item>div{display:grid;gap:2px}.witness-activity-item>div>span:not(.live-kicker){font-size:11px;color:var(--kl-muted)}.witness-activity-item time,.witness-activity-item small{font-size:11px;color:var(--kl-muted);white-space:nowrap}.live-kicker{font-size:10px;font-weight:800;letter-spacing:.13em;color:#9ff0c5}.witness-activity-item.live-run{border-color:rgba(120,230,173,.34);box-shadow:0 0 24px rgba(69,199,128,.08)}@media(max-width:700px){.witness-activity-item{grid-template-columns:1fr auto}.witness-activity-item small{grid-column:1/-1}.live-commentary-feed{padding:8px}.live-comment{grid-template-columns:1fr;gap:2px}}\n\n/* Operator witness-first layout */\n.layout:has(.operator-main){grid-template-columns:1fr}\n.layout:has(.operator-main)>nav{display:flex;gap:6px;overflow-x:auto;position:sticky;top:76px;z-index:4;background:#081610;border-right:0;border-bottom:1px solid #243f32;padding:8px 14px}\n.layout:has(.operator-main)>nav button{width:auto;white-space:nowrap;margin:0;padding:.45rem .65rem;font-size:12px;flex:0 0 auto}\n.layout:has(.operator-main)>nav b{width:20px;height:20px;border-radius:6px;font-size:11px}\n.operator-main{max-width:1800px;padding:14px 16px 20px}\n.operator-pairing{padding:10px 12px;margin-bottom:10px}\n.operator-pairing .provider-head{margin:0;gap:14px}\n.operator-pairing h3{margin:0 0 2px}\n.operator-pairing p{margin:0;line-height:1.35}\n.operator-pairing .connect{min-width:min(100%,390px);flex-wrap:nowrap}\n.operator-pairing .connect input{min-width:180px}\n.operator-grid{grid-template-columns:minmax(290px,.55fr) minmax(620px,1.8fr);gap:12px;align-items:stretch}\n.operator-chat{min-height:calc(100dvh - 225px);margin-bottom:0}\n.operator-messages{max-height:36vh}\n.operator-witness{min-height:calc(100dvh - 225px);margin-bottom:0;display:flex;flex-direction:column}\n.operator-witness>.provider-head{margin-bottom:8px}\n.operator-image{flex:1;min-height:500px;max-height:calc(100dvh - 365px);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:14px}\n.operator-image>a{display:flex;width:100%;justify-content:center}\n.operator-image img{max-height:calc(100dvh - 420px);object-fit:contain}\n.operator-image.mobile img{max-width:min(100%,430px);width:auto}\n.operator-witness>details{margin-top:8px}\n@media(max-width:1050px){.operator-grid{grid-template-columns:1fr}.operator-witness{order:1;min-height:0}.operator-chat{order:2;min-height:0}.operator-image{min-height:420px;max-height:none}.operator-image img{max-height:none}.operator-pairing .provider-head{align-items:flex-start;flex-wrap:wrap}.operator-pairing .connect{width:100%}}\n@media(max-width:700px){.layout:has(.operator-main)>nav{top:70px;padding:6px 8px}.operator-main{padding:8px}.operator-image{min-height:360px;padding:8px}.operator-pairing .connect{flex-wrap:wrap}.operator-pairing .connect button{width:100%}}\n\n/* Console owner experience v3 */\n:root{--kl-line:rgba(111,231,171,.16);--kl-muted:#94ad9f;--kl-green:#78e6ad;--kl-warn:#f2c66f;background:radial-gradient(circle at 72% -10%,rgba(53,185,117,.15),transparent 34%),linear-gradient(180deg,#06110c 0%,#040906 100%)}body{min-height:100vh;background:transparent}.console-header{position:sticky;top:0;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;background:rgba(5,13,9,.9);backdrop-filter:blur(18px);border-bottom:1px solid var(--kl-line)}.console-header p{margin:0;color:var(--kl-muted);font-size:13px}.connection-strip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.connection-strip>span{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--kl-line);border-radius:999px;background:rgba(255,255,255,.025);font-size:11px;font-weight:700;color:var(--kl-muted)}.connection-strip>span.live{color:#a8f4c9}.connection-strip i,.status-dot{width:7px;height:7px;border-radius:50%;background:#6b7f74}.connection-strip .live i,.status-dot.on{background:var(--kl-green);box-shadow:0 0 14px rgba(120,230,173,.5)}.status-dot.off{background:var(--kl-warn)}.console-nav,.layout:has(.operator-main)>.console-nav{position:sticky;top:83px;z-index:7;display:flex;gap:5px;overflow-x:auto;padding:8px 18px;background:rgba(7,18,12,.94);backdrop-filter:blur(14px);border:0;border-bottom:1px solid var(--kl-line)}.console-nav button,.layout:has(.operator-main)>.console-nav button{flex:0 0 auto;width:auto;margin:0;padding:8px 13px;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--kl-muted);font-size:12px}.console-nav button[aria-current=page],.layout:has(.operator-main)>.console-nav button[aria-current=page]{color:#eafff3;background:rgba(71,190,126,.2);border-color:rgba(120,230,173,.26)}.console-main,.operator-main{max-width:1720px;margin:0 auto;padding:16px 18px 28px}.panel,.machine-card{background:linear-gradient(160deg,rgba(17,39,28,.92),rgba(8,20,14,.9));border:1px solid var(--kl-line);border-radius:18px;box-shadow:0 18px 50px rgba(0,0,0,.2)}.machine-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}.machine-card{padding:20px}.machine-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.machine-card h2{font-size:22px;margin:5px 0}.machine-purpose{color:var(--kl-muted)}.status-dot-wrap{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700}.mini-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:20px}.mini-metrics>div{padding:11px;border:1px solid rgba(120,230,173,.12);border-radius:12px;background:rgba(0,0,0,.12)}.mini-metrics span{display:block;color:var(--kl-muted);font-size:10px;text-transform:uppercase}.mini-metrics b{display:block;margin-top:5px;font-size:14px}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.service-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.technical-details{margin-top:16px;border-top:1px solid var(--kl-line);padding-top:12px}.release-hero{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(520px,1.4fr);gap:26px;align-items:center;padding:24px;margin-bottom:14px}.release-flow{display:grid;grid-template-columns:repeat(7,auto);align-items:center;justify-content:center;gap:12px}.release-flow>div{display:grid;place-items:center;gap:7px}.release-flow b{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:rgba(69,199,128,.22);border:1px solid rgba(120,230,173,.32)}.runner-list>div{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--kl-line)}.quick-row{display:flex;gap:8px;flex-wrap:wrap}.operator-grid{grid-template-columns:minmax(330px,.62fr) minmax(680px,1.65fr);gap:14px}.operator-chat,.operator-witness{border-radius:18px}.operator-image{background:linear-gradient(180deg,rgba(1,7,4,.94),rgba(4,13,8,.96));border:1px solid rgba(120,230,173,.11);border-radius:14px}@media(max-width:1100px){.machine-grid,.service-grid,.service-grid.three{grid-template-columns:1fr}.release-hero{grid-template-columns:1fr}.operator-grid{grid-template-columns:1fr}.operator-witness{order:1}.operator-chat{order:2}}@media(max-width:700px){.console-header{padding:12px;align-items:flex-start}.console-header p{display:none}.connection-strip{gap:5px}.connection-strip>span{padding:6px 8px;font-size:10px}.console-header #refresh{display:none}.console-nav,.layout:has(.operator-main)>.console-nav{top:68px;padding:6px 8px}.console-main,.operator-main{padding:8px}.machine-card{padding:15px}.mini-metrics{grid-template-columns:repeat(3,minmax(85px,1fr));overflow-x:auto}.operator-image{min-height:350px}}\n\n/* Live Witness Overview v3.4 */\n.layout:has(.operator-main)>.console-nav{position:relative!important;top:auto!important}\n.operator-main{padding-top:18px!important}\n.operator-witness.is-standby .operator-image{flex:0 0 300px;min-height:300px;max-height:300px;justify-content:center}\n.operator-witness.is-live{border-color:rgba(120,230,173,.34);box-shadow:0 18px 54px rgba(0,0,0,.24),0 0 32px rgba(72,210,137,.07)}\n.operator-live-activity{margin-top:14px;padding-top:12px;border-top:1px solid var(--kl-line)}\n.operator-live-activity>.provider-head{margin-bottom:9px}\n.operator-live-activity h3{margin:2px 0 0}\n.operator-live-activity .witness-activity-list{max-height:220px;overflow:auto;padding-right:2px}\n.witness-standby-state{display:grid;gap:4px;padding:14px;border:1px dashed rgba(120,230,173,.18);border-radius:13px;background:rgba(255,255,255,.018);color:var(--kl-muted)}\n.witness-standby-state b{color:#d9f7e6}\n.operator-image.standby{color:var(--kl-muted)}\n@media(max-width:1050px){.operator-witness.is-standby .operator-image{max-height:none;min-height:240px;flex:0 0 240px}}\n@media(max-width:700px){.operator-main{padding-top:10px!important}.operator-witness.is-standby .operator-image{min-height:210px;flex-basis:210px}.operator-live-activity .witness-activity-list{max-height:260px}}\n\n[executed on device: MSI (64d60b1d-06be-4c67-8142-12cb4d34d5e9)]\n/* KNOCKLAUNCH Runtime Observatory v1 */\n.operator-grid{grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:10px;transition:grid-template-columns .18s ease}\n.operator-grid.commentary-collapsed{grid-template-columns:58px minmax(0,1fr)}\n.operator-grid.commentary-collapsed .operator-chat{min-width:58px;padding:10px 7px;overflow:hidden}\n.operator-grid.commentary-collapsed .operator-chat .provider-head{display:flex;justify-content:center}\n.operator-grid.commentary-collapsed .operator-chat .provider-head>div,.operator-grid.commentary-collapsed #operator-clear,.operator-grid.commentary-collapsed .operator-messages,.operator-grid.commentary-collapsed .live-commentary-feed,.operator-grid.commentary-collapsed #operator-form,.operator-grid.commentary-collapsed .operator-context,.operator-grid.commentary-collapsed .operator-chat details{display:none}\n.operator-grid.commentary-collapsed .operator-chat-head-actions{display:flex}\n.operator-grid.commentary-collapsed #operator-commentary-toggle{writing-mode:vertical-rl;transform:rotate(180deg);height:132px;padding:10px 7px;border-radius:999px}\n.operator-chat-head-actions{display:flex;align-items:center;gap:6px}\n.operator-witness{min-width:0}\n.witness-control-strip{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px;margin:9px 0;border:1px solid rgba(120,230,173,.13);border-radius:12px;background:rgba(0,0,0,.16)}\n.witness-control-left{display:flex;align-items:center;gap:5px;flex-wrap:wrap}\n.witness-control-strip button,.witness-control-strip .button-like{display:inline-flex;align-items:center;justify-content:center;min-height:31px;padding:0 9px;border-radius:8px;border:1px solid rgba(120,230,173,.16);background:rgba(255,255,255,.025);color:#bfd8c9;font-size:10px;font-weight:800;text-decoration:none}\n.witness-control-strip [aria-pressed=true]{background:rgba(61,175,112,.18);border-color:rgba(120,230,173,.4);color:#dffff0}\n.witness-control-strip .disabled{opacity:.4;pointer-events:none}\n.witness-control-status{display:flex;align-items:center;gap:7px;font-size:9px}.witness-control-status span{font-weight:900;letter-spacing:.1em;color:#9ff0c5}.witness-control-status small{color:var(--kl-muted);text-transform:uppercase}\n.witness-compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 12px}.witness-compare-grid figure{margin:0;min-width:0;border:1px solid var(--kl-line);border-radius:12px;background:#020704;overflow:hidden}.witness-compare-grid figcaption{padding:7px 9px;font-size:9px;color:var(--kl-muted);border-bottom:1px solid var(--kl-line)}.witness-compare-grid img{display:block;width:100%;height:auto;max-height:44vh;object-fit:contain;background:#000}.witness-compare-empty{padding:14px;margin:8px 0;border:1px dashed rgba(120,230,173,.18);border-radius:12px;color:var(--kl-muted);font-size:11px}\n.operator-image{min-height:560px;max-height:calc(100dvh - 355px)}\n.operator-image img{max-height:calc(100dvh - 410px)}\n@media(min-width:1300px){.operator-main{max-width:none;padding-left:12px;padding-right:12px}.operator-grid{grid-template-columns:minmax(280px,19vw) minmax(0,1fr)}.operator-grid.commentary-collapsed{grid-template-columns:58px minmax(0,1fr)}}\n@media(max-width:1050px){.operator-grid,.operator-grid.commentary-collapsed{grid-template-columns:1fr}.operator-grid.commentary-collapsed .operator-chat{min-width:0;padding:10px}.operator-grid.commentary-collapsed .operator-chat .provider-head>div{display:block}.operator-grid.commentary-collapsed #operator-commentary-toggle{writing-mode:horizontal-tb;transform:none;height:auto}.operator-grid.commentary-collapsed #operator-clear{display:inline-flex}.operator-witness{order:1}.operator-chat{order:2}.operator-image{min-height:430px;max-height:none}.operator-image img{max-height:none}}\n@media(max-width:700px){.witness-control-strip{align-items:stretch;flex-direction:column}.witness-control-left{display:grid;grid-template-columns:repeat(4,1fr)}.witness-control-status{justify-content:flex-end}.witness-compare-grid{grid-template-columns:1fr}.operator-image{min-height:360px}}\n"}],"route":"/admin/console","branch":"ai/objective-first-repair-7575d68d4d19","writes":[],"patches":[],"version":1,"approved":true,"missionId":"7575d68d-4d19-4431-acbf-a1835905ed81","objective":"Ship KNOCKLAUNCH Runtime Observatory v1 on /admin/console. Make Live Witness the dominant Overview surface; make commentary a collapsible slim rail when idle while preserving live commentary; add truthful Back/Refresh/Open/Compare controls backed by witness route/history; enhance canonical Route Navigator with auto-refreshed LIVE/VERIFIED/FAILED/NEVER route health and checked/live counts from /console/activity; preserve src/routes/registry.ts route truth, click-to-witness, Desktop/Mobile, proof integrity, auth/provider isolation; use fresh v3.6/observatory-1 cache boundary; Gate, merge, deploy, verify desktop/mobile live.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["public/console/index-v3-6.html","public/console/operator.mjs","public/console/console.js","public/console/console.css","src/pages/admin/GodModeCommandConsole.tsx"],"anchored_edits":[{"path":"src/pages/admin/GodModeCommandConsole.tsx","edits":[{"new_content":"src=\"/console/index-v3-6.html\"","old_content":"src=\"/console/index-v3-5.html\""}]}],"implementation":{"files":[],"writes":[]},"requestContract":{"valid":true,"intent":{"evidence":["User explicitly asked to make the concept better and then make it happen while working on layout.","Current canonical Route Navigator and witness activity feed are already live and provide real route/history data."],"confidence":1,"rawUtterance":"Ship KNOCKLAUNCH Runtime Observatory v1 on /admin/console. Make Live Witness the dominant Overview surface; make commentary a collapsible slim rail when idle while preserving live commentary; add truthful Back/Refresh/Open/Compare controls backed by witness route/history; enhance canonical Route Navigator with auto-refreshed LIVE/VERIFIED/FAILED/NEVER route health and checked/live counts from /console/activity; preserve src/routes/registry.ts route truth, click-to-witness, Desktop/Mobile, proof integrity, auth/provider isolation; use fresh v3.6/observatory-1 cache boundary; Gate, merge, deploy, verify desktop/mobile live.","wordingChanged":false,"canonicalIntent":"Ship KNOCKLAUNCH Runtime Observatory v1 on /admin/console. Make Live Witness the dominant Overview surface; make commentary a collapsible slim rail when idle while preserving live commentary; add truthful Back/Refresh/Open/Compare controls backed by witness route/history; enhance canonical Route Navigator with auto-refreshed LIVE/VERIFIED/FAILED/NEVER route health and checked/live counts from /console/activity; preserve src/routes/registry.ts route truth, click-to-witness, Desktop/Mobile, proof integrity, auth/provider isolation; use fresh v3.6/observatory-1 cache boundary; Gate, merge, deploy, verify desktop/mobile live.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"witness-first","statement":"Live Witness dominates the desktop Overview and idle commentary collapses to a slim rail.","provenance":{"reason":"Improve layout and useful viewport real estate.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["static","desktop","mobile"]},{"id":"controls","statement":"Back, Refresh, Open, Compare operate on real route/history state.","provenance":{"reason":"Make the page an operating cockpit, not a screenshot viewer.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["static","desktop"]},{"id":"health","statement":"Canonical route navigator shows live witness health/history and checked/live counts.","provenance":{"reason":"Per-route health is a core Observatory concept.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["static","desktop","mobile"]}],"objective":"Ship KNOCKLAUNCH Runtime Observatory v1 on /admin/console. Make Live Witness the dominant Overview surface; make commentary a collapsible slim rail when idle while preserving live commentary; add truthful Back/Refresh/Open/Compare controls backed by witness route/history; enhance canonical Route Navigator with auto-refreshed LIVE/VERIFIED/FAILED/NEVER route health and checked/live counts from /console/activity; preserve src/routes/registry.ts route truth, click-to-witness, Desktop/Mobile, proof integrity, auth/provider isolation; use fresh v3.6/observatory-1 cache boundary; Gate, merge, deploy, verify desktop/mobile live.","constraints":[{"id":"truthful-controls","statement":"Do not add fake direct pixel click/type controls; only expose controls backed by current route/history endpoints.","provenance":{"reason":"Avoid decorative controls.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["static"]},{"id":"canonical-routes","statement":"Route list remains derived only from src/routes/registry.ts.","provenance":{"reason":"Prevent route drift.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["static"]},{"id":"visual-content-truth","statement":"Health/history/proof frames come from observed witness activity/evidence only.","provenance":{"reason":"Observatory must show truth.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["desktop","mobile"]},{"id":"visual-viewport-authority","statement":"Desktop and mobile proofs are authoritative for their own layouts.","provenance":{"reason":"Responsive cockpit.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["desktop","mobile"]},{"id":"responsive-visual-continuity","statement":"Mobile retains controls, route health, witness and commentary without overflow.","provenance":{"reason":"Keep mobile usable.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["mobile"]},{"id":"reference-visual-fidelity","statement":"Preserve premium dark-green Console language while improving density and hierarchy.","provenance":{"reason":"User requested premium layout.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["desktop","mobile"]},{"id":"reference-visual-authority","statement":"The live Console is the implementation target; no disconnected mockup.","provenance":{"reason":"Fix the actual page.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["desktop"]},{"id":"atomic-capability-lifecycle","statement":"Gate, frontend deploy and live verify before activation.","provenance":{"reason":"Done means live.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["static","desktop","mobile"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"static","kind":"runtime","claim":"Live v3.6 assets contain observatory-1, collapsible commentary, working control handlers and 3-second route-health refresh.","route":"/console/index-v3-6.html","roleRef":null,"userRef":null,"required":true,"expectedText":"Witness routes","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":["frontend"],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false},{"id":"desktop","kind":"visual","claim":"Desktop /admin/console is witness-dominant with compact commentary rail, control strip, route health and compare/history.","route":"/admin/console","roleRef":"GodMode","userRef":null,"required":true,"expectedText":"Live Witness","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":["frontend"],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false},{"id":"mobile","kind":"visual","claim":"Mobile /admin/console preserves controls, witness, route health and commentary without overflow.","route":"/admin/console","roleRef":"GodMode","userRef":null,"required":true,"expectedText":"Live Witness","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":["frontend"],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}],"validationErrors":[],"capabilityManifest":{"id":"console-runtime-observatory-v1","driftPolicy":"entrypoint_or_nested_asset_mismatch_is_nonterminal","proofLedger":"command_center_mission_ledger_request_contract_hash_bound","schemaVersion":1,"releaseTargets":["frontend"],"lifecycleStates":["prepare","deploy","verify","activate"],"activationPolicy":"dependencies_and_claim_matched_live_proof_before_exposure","dependencyDomains":["frontend","authentication_authorization","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":"rollback_observatory_ui_only_preserve_witness_runtime","canaryProofConditionIds":["static","desktop","mobile"]},"capabilityCompleteness":{"domains":["frontend","authentication_authorization","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"required":true,"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_states_not_runtime_failures"}},"repairGeneration":null,"visualProofRoute":"/admin/console","executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":null,"ownerApproved":true,"releaseIntent":null,"sourceTargets":["public/console/index-v3-6.html","public/console/operator.mjs","public/console/console.js","public/console/console.css","src/pages/admin/GodModeCommandConsole.tsx"],"requestContract":{"valid":true,"intent":{"evidence":["User explicitly asked to make the concept better and then make it happen while working on layout.","Current canonical Route Navigator and witness activity feed are already live and provide real route/history data."],"confidence":1,"rawUtterance":"Ship KNOCKLAUNCH Runtime Observatory v1 on /admin/console. Make Live Witness the dominant Overview surface; make commentary a collapsible slim rail when idle while preserving live commentary; add truthful Back/Refresh/Open/Compare controls backed by witness route/history; enhance canonical Route Navigator with auto-refreshed LIVE/VERIFIED/FAILED/NEVER route health and checked/live counts from /console/activity; preserve src/routes/registry.ts route truth, click-to-witness, Desktop/Mobile, proof integrity, auth/provider isolation; use fresh v3.6/observatory-1 cache boundary; Gate, merge, deploy, verify desktop/mobile live.","wordingChanged":false,"canonicalIntent":"Ship KNOCKLAUNCH Runtime Observatory v1 on /admin/console. Make Live Witness the dominant Overview surface; make commentary a collapsible slim rail when idle while preserving live commentary; add truthful Back/Refresh/Open/Compare controls backed by witness route/history; enhance canonical Route Navigator with auto-refreshed LIVE/VERIFIED/FAILED/NEVER route health and checked/live counts from /console/activity; preserve src/routes/registry.ts route truth, click-to-witness, Desktop/Mobile, proof integrity, auth/provider isolation; use fresh v3.6/observatory-1 cache boundary; Gate, merge, deploy, verify desktop/mobile live.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"witness-first","statement":"Live Witness dominates the desktop Overview and idle commentary collapses to a slim rail.","provenance":{"reason":"Improve layout and useful viewport real estate.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["static","desktop","mobile"]},{"id":"controls","statement":"Back, Refresh, Open, Compare operate on real route/history state.","provenance":{"reason":"Make the page an operating cockpit, not a screenshot viewer.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["static","desktop"]},{"id":"health","statement":"Canonical route navigator shows live witness health/history and checked/live counts.","provenance":{"reason":"Per-route health is a core Observatory concept.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["static","desktop","mobile"]}],"objective":"Ship KNOCKLAUNCH Runtime Observatory v1 on /admin/console. Make Live Witness the dominant Overview surface; make commentary a collapsible slim rail when idle while preserving live commentary; add truthful Back/Refresh/Open/Compare controls backed by witness route/history; enhance canonical Route Navigator with auto-refreshed LIVE/VERIFIED/FAILED/NEVER route health and checked/live counts from /console/activity; preserve src/routes/registry.ts route truth, click-to-witness, Desktop/Mobile, proof integrity, auth/provider isolation; use fresh v3.6/observatory-1 cache boundary; Gate, merge, deploy, verify desktop/mobile live.","constraints":[{"id":"truthful-controls","statement":"Do not add fake direct pixel click/type controls; only expose controls backed by current route/history endpoints.","provenance":{"reason":"Avoid decorative controls.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["static"]},{"id":"canonical-routes","statement":"Route list remains derived only from src/routes/registry.ts.","provenance":{"reason":"Prevent route drift.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["static"]},{"id":"visual-content-truth","statement":"Health/history/proof frames come from observed witness activity/evidence only.","provenance":{"reason":"Observatory must show truth.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["desktop","mobile"]},{"id":"visual-viewport-authority","statement":"Desktop and mobile proofs are authoritative for their own layouts.","provenance":{"reason":"Responsive cockpit.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["desktop","mobile"]},{"id":"responsive-visual-continuity","statement":"Mobile retains controls, route health, witness and commentary without overflow.","provenance":{"reason":"Keep mobile usable.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["mobile"]},{"id":"reference-visual-fidelity","statement":"Preserve premium dark-green Console language while improving density and hierarchy.","provenance":{"reason":"User requested premium layout.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["desktop","mobile"]},{"id":"reference-visual-authority","statement":"The live Console is the implementation target; no disconnected mockup.","provenance":{"reason":"Fix the actual page.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["desktop"]},{"id":"atomic-capability-lifecycle","statement":"Gate, frontend deploy and live verify before activation.","provenance":{"reason":"Done means live.","source":"current_request_explicit","inherited":false,"blockingAuthority":true},"proofConditionIds":["static","desktop","mobile"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"static","kind":"runtime","claim":"Live v3.6 assets contain observatory-1, collapsible commentary, working control handlers and 3-second route-health refresh.","route":"/console/index-v3-6.html","roleRef":null,"userRef":null,"required":true,"expectedText":"Witness routes","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":["frontend"],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false},{"id":"desktop","kind":"visual","claim":"Desktop /admin/console is witness-dominant with compact commentary rail, control strip, route health and compare/history.","route":"/admin/console","roleRef":"GodMode","userRef":null,"required":true,"expectedText":"Live Witness","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":["frontend"],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false},{"id":"mobile","kind":"visual","claim":"Mobile /admin/console preserves controls, witness, route health and commentary without overflow.","route":"/admin/console","roleRef":"GodMode","userRef":null,"required":true,"expectedText":"Live Witness","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":["frontend"],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}],"validationErrors":[],"capabilityManifest":{"id":"console-runtime-observatory-v1","driftPolicy":"entrypoint_or_nested_asset_mismatch_is_nonterminal","proofLedger":"command_center_mission_ledger_request_contract_hash_bound","schemaVersion":1,"releaseTargets":["frontend"],"lifecycleStates":["prepare","deploy","verify","activate"],"activationPolicy":"dependencies_and_claim_matched_live_proof_before_exposure","dependencyDomains":["frontend","authentication_authorization","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":"rollback_observatory_ui_only_preserve_witness_runtime","canaryProofConditionIds":["static","desktop","mobile"]},"capabilityCompleteness":{"domains":["frontend","authentication_authorization","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"required":true,"prerequisitePolicy":"expected_unavailable_dependencies_are_prerequisite_states_not_runtime_failures"}},"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":"c073203aa8d71efe7353c8b079545ccb87bc3f7e6724c7a4567fe95f3644ca14","replayCount":0,"serializedBytes":94756},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-27T04:51:01.682955+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:7575d68d-4d19-4431-acbf-a1835905ed81:repository-mutation-intent:c073203aa8d71efe7353c8b079545ccb87bc3f7e6724c7a4567fe95f3644ca14:0","mission_step_id":"a6edd437-4246-4b34-bc87-11bd5a9156ce","command_center_event_id":"7575d68d-4d19-4431-acbf-a1835905ed81"},{"id":"1275a79e-af68-4325-97fc-835e42230048","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-7ced6783b7c7","writes":[],"patches":[],"version":1,"approved":true,"missionId":"7ced6783-b7c7-4b1d-b645-57a92982faf8","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/PcgAppShell.tsx","src/pages/card-grading/PCGOnboardingReadiness.tsx","supabase/functions/pcg-r2-media/index.ts","supabase/functions/pcg-commerce-publisher/index.ts","config/capabilities/pcg-card-grading-modes.json"],"anchored_edits":[{"path":"src/PcgAppShell.tsx","edits":[{"new_content":"  const activationPending=!activeIsPcg&&(targeting||(!switchFailed&&shouldHoldPcgWorkspaceLoading(isLoading,activeIsPcg,hasPcgMembership)));","old_content":"  const activationPending=targeting||(!switchFailed&&shouldHoldPcgWorkspaceLoading(isLoading,activeIsPcg,hasPcgMembership));"},{"new_content":"  if(normalized==='/pcg/upload')return <Navigate to={`/pcg/workspace${location.search||''}${location.hash||''}`} replace/>;","old_content":"  if(normalized==='/pcg/upload')return <Navigate to={`/pcg/workspace${location.search||''}${location.hash||''}`} replace/>;\n  if(normalized==='/pcg/upload')return <Navigate to={`/pcg/workspace${location.search||''}${location.hash||''}`} replace/>;"}]},{"path":"supabase/functions/pcg-commerce-publisher/index.ts","edits":[{"new_content":"export const FUNCTION_VERSION='1.4.0-pcg-cutover-safe-publisher';","old_content":"export const FUNCTION_VERSION='1.3.0-pcg-legacy-handoff';"},{"new_content":"const imagesFor=(card:any)=>[card.slab_image_url,card.slab_back_image_url,card.front_image_url,card.back_image_url].map(clean).filter(Boolean);","old_content":"const imagesFor=(card:any)=>[card.slab_image_url,card.front_image_url,card.back_image_url].map(clean).filter(Boolean);"},{"new_content":"async function publishWebsite(supabase:any,tenantId:string,item:any,existing:any,settings:Record<string,any>){\n  const cutoverState=clean(settings?.migration_cutover_state).toLowerCase();\n  const canonicalLive=['live','activated','cutover_complete','knocklaunch_live'].includes(cutoverState);\n  if(canonicalLive){\n    const finalImage=clean(item.images?.[0]);\n    const row={tenant_id:tenantId,cert_number:item.cert_number,year:item.year||null,brand_set:item.set||null,player_character:item.subject||null,card_number:item.card_number||null,variation:item.variation||null,autograph_present:item.autograph_present??null,final_grade:typeof item.grade==='number'?item.grade:null,grade_label:typeof item.grade==='string'?item.grade:null,final_image_url:finalImage||null,published_at:new Date().toISOString()};\n    const {data,error}=await supabase.from('card_grading_public_certificates').upsert(row,{onConflict:'tenant_id,cert_number'}).select('cert_number').single();\n    if(error||!data?.cert_number)return {status:'needs_attention',reason:'The KNOCKLAUNCH PCG website could not publish this certification.',provider:{target:'knocklaunch_public_certificates'}};\n    return {status:'live',url:'https://app.knocklaunch.app/prestigious-card-grading/verify?cert='+encodeURIComponent(String(item.cert_number)),provider:{target:'knocklaunch_public_certificates',cert_number:data.cert_number}};\n  }\n  const endpoint=env('PCG_WEBSITE_PUBLISH_URL'),token=env('PCG_WEBSITE_PUBLISH_TOKEN');","old_content":"async function publishWebsite(_supabase:any,_tenantId:string,item:any,_existing:any){\n  const endpoint=env('PCG_WEBSITE_PUBLISH_URL'),token=env('PCG_WEBSITE_PUBLISH_TOKEN');"},{"new_content":"    const {data:tenant}=await supabase.from('tenants').select('settings').eq('id',tenantId).maybeSingle();const tenantSettings=(tenant?.settings||{}) as Record<string,any>;\n    if(action==='website_canary'){\n      const cert=('CANARY-WEB-'+Date.now().toString(36)+'-'+crypto.randomUUID().slice(0,6)).toUpperCase();const stamp=new Date().toISOString();let cleanup=false;let verified=false;let failure='';\n      try{const row={tenant_id:tenantId,cert_number:cert,year:'2026',brand_set:'PCG WEBSITE CANARY',player_character:'SYNTHETIC CANARY',card_number:'0',variation:'NONPUBLIC',autograph_present:false,final_grade:9,grade_label:'9 MT',final_image_url:null,published_at:stamp};const{error:writeError}=await supabase.from('card_grading_public_certificates').upsert(row,{onConflict:'tenant_id,cert_number'});if(writeError)throw writeError;const{data:readBack,error:readError}=await supabase.from('card_grading_public_certificates').select('cert_number,grade_label').eq('tenant_id',tenantId).eq('cert_number',cert).maybeSingle();if(readError||readBack?.cert_number!==cert)throw readError||new Error('Website publication read-back failed.');verified=readBack.grade_label==='9 MT'}catch(error){failure=error instanceof Error?error.message:String(error)}finally{const{error:deleteError}=await supabase.from('card_grading_public_certificates').delete().eq('tenant_id',tenantId).eq('cert_number',cert);cleanup=!deleteError}\n      const ok=verified&&cleanup&&!failure;const detail={ok,ran_at:stamp,completed_at:new Date().toISOString(),version:FUNCTION_VERSION,provider:'knocklaunch_public_certificates',write_read_verified:verified,cleanup,error:failure||null};await supabase.from('tenant_readiness_checks').upsert({tenant_id:tenantId,check_key:'pcg_website_publish_canary',status:ok?'ready':'blocked',detail,updated_at:new Date().toISOString()},{onConflict:'tenant_id,check_key'});return json(detail,ok?200:500);\n    }\n    if(action==='list'){","old_content":"    if(action==='list'){"},{"new_content":"      const website=await publishWebsite(supabase,tenantId,{...item,price:archiveOnly?0:item.price},existing,tenantSettings);","old_content":"      const website=await publishWebsite(supabase,tenantId,{...item,price:archiveOnly?0:item.price},existing);"}]},{"path":"supabase/functions/pcg-r2-media/index.ts","edits":[{"new_content":"export const FUNCTION_VERSION=\"1.5.0-pcg-r2-pipeline-canary\";","old_content":"export const FUNCTION_VERSION=\"1.4.0-pcg-r2-media-cache\";"},{"new_content":"const CANARY_PNG_BASE64=\"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=\";\nfunction canaryPngBytes(){const binary=atob(CANARY_PNG_BASE64),bytes=new Uint8Array(binary.length);for(let index=0;index<binary.length;index+=1)bytes[index]=binary.charCodeAt(index);return bytes}\nasync function advanceCanary(tenantId:string,submissionId:string,status:string){const{error}=await admin.rpc(\"advance_pcg_grading_submission\",{p_tenant_id:tenantId,p_submission_id:submissionId,p_status:status});if(error)throw new Error(\"PCG \"+status+\" transition failed: \"+clean(error.message))}\nasync function expectAdvanceBlocked(tenantId:string,submissionId:string,status:string){const{error}=await admin.rpc(\"advance_pcg_grading_submission\",{p_tenant_id:tenantId,p_submission_id:submissionId,p_status:status});if(!error)throw new Error(\"PCG \"+status+\" guard did not block the intentionally incomplete canary.\");return true}\nasync function verifySignedMedia(url:string){const response=await fetch(url,{method:\"HEAD\"});if(!response.ok)throw new Error(\"Signed PCG R2 media delivery failed (\"+response.status+\").\");return true}\nasync function lookupCanaryProgress(submissionNumber:string,email:string){const response=await fetch(SUPABASE_URL+\"/functions/v1/pcg-customer-progress\",{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:\"Bearer \"+SERVICE_ROLE,apikey:SERVICE_ROLE},body:JSON.stringify({tenant_slug:\"pcg\",submission_number:submissionNumber,email})});const payload=await response.json().catch(()=>null);if(!response.ok||payload?.ok!==true)throw new Error(\"PCG customer-progress canary lookup failed.\");return payload}\nasync function persistCanaryReceipt(tenantId:string,status:\"ready\"|\"blocked\",detail:Record<string,unknown>){const{error}=await admin.from(\"tenant_readiness_checks\").upsert({tenant_id:tenantId,check_key:\"pcg_pipeline_canary\",status,detail,updated_at:new Date().toISOString()},{onConflict:\"tenant_id,check_key\"});if(error)console.error(\"[pcg-r2-pipeline-canary] readiness receipt\",error)}\nasync function runPipelineCanary(req:Request){\n  const body=await req.json().catch(()=>({})),tenantId=clean(body.tenant_id);if(!tenantId)return json({ok:false,error:\"PCG tenant is required.\"},400);const auth=await requirePcgOwner(req,tenantId);if(!auth.ok)return json({ok:false,error:auth.error},auth.status);\n  const startedAt=new Date().toISOString(),runId=Date.now().toString(36)+\"-\"+crypto.randomUUID().slice(0,8),email=(\"pcg-canary-\"+runId+\"@knocklaunch.invalid\").toLowerCase();const submissionIds:string[]=[],contactIds:string[]=[],objectKeys:string[]=[];let single:any=null,batch:any=null,failure=\"\";\n  const cleanup={database:false,r2:false,submission_rows_removed:0,contact_rows_removed:0,r2_objects_deleted:0,r2_objects_expected:0};\n  try{\n    const cfg=await storageConfig(tenantId);if(cfg.bucket!==\"prestigious-card-grading\")throw new Error(\"PCG R2 canary requires the dedicated prestigious-card-grading bucket.\");await tenantR2Client(tenantId);\n    const{data:contact,error:contactError}=await admin.from(\"unified_contacts\").insert({tenant_org_id:tenantId,name:\"PCG PIPELINE CANARY\",email,phone:\"+10000000000\",normalized_email:email,normalized_phone:\"10000000000\",source:\"pcg_pipeline_canary\",contact_role:\"collector\",address:\"1 Canary Way\",city:\"Testville\",state:\"FL\",zip:\"00000\",normalized_address:\"1 canary way|testville|fl|00000\"}).select(\"id\").single();if(contactError||!contact?.id)throw new Error(\"Canary customer record could not be created: \"+clean(contactError?.message));contactIds.push(String(contact.id));\n    const runScenario=async(kind:\"single\"|\"batch\",expected:number)=>{const submissionNumber=(\"CANARY-\"+runId+\"-\"+kind).toUpperCase(),now=new Date(),due=new Date(Date.now()+14*86400000);const{data:submission,error:submissionError}=await admin.from(\"card_grading_submissions\").insert({tenant_id:tenantId,submission_number:submissionNumber,customer_contact_id:contact.id,customer_name:\"PCG PIPELINE CANARY\",customer_email:email,customer_phone:\"+10000000000\",service_tier:\"two_weeks\",service_price:20,expected_card_count:expected,status:\"received\",payment_status:\"waived\",delivery_method:\"mail_in\",tracking_in:\"CANARY-IN-\"+runId,return_shipping_method:\"fedex_saver\",return_shipping_cost:12.34,return_insurance_amount:100,notes:\"[PCG R2 PIPELINE CANARY] synthetic auto-clean record\",received_at:now.toISOString(),due_at:due.toISOString()}).select(\"id\").single();if(submissionError||!submission?.id)throw new Error(kind+\" canary submission could not be created: \"+clean(submissionError?.message));const submissionId=String(submission.id);submissionIds.push(submissionId);let dedupeVerified=false,signedDeliveryVerified=true;const certs:string[]=[];\n      for(let index=1;index<=expected;index+=1){const importKey=\"pcg-r2-canary:\"+runId+\":\"+kind+\":\"+index,bytes=canaryPngBytes();const front=await storeBytes(tenantId,importKey,\"front\",kind+\"-\"+index+\"-front.png\",\"image/png\",bytes),back=await storeBytes(tenantId,importKey,\"back\",kind+\"-\"+index+\"-back.png\",\"image/png\",bytes);for(const media of [front,back])if(!objectKeys.includes(String(media.object_key)))objectKeys.push(String(media.object_key));if(index===1){const retry=await storeBytes(tenantId,importKey,\"front\",kind+\"-\"+index+\"-front.png\",\"image/png\",bytes);dedupeVerified=String(retry.object_key)===String(front.object_key);if(!dedupeVerified)throw new Error(kind+\" canary R2 retry identity was not deterministic.\")}signedDeliveryVerified=await verifySignedMedia(String(front.url))&&await verifySignedMedia(String(back.url))&&signedDeliveryVerified;const{error:cardError}=await admin.from(\"card_grading_cards\").insert({tenant_id:tenantId,submission_id:submissionId,sequence_number:index,category:\"Basketball\",year:\"2026\",brand_set:\"PCG Pipeline Canary\",player_character:kind===\"single\"?\"Synthetic Single Card\":\"Synthetic Batch Card \"+index,card_number:\"CAN-\"+index,card_description:\"Synthetic PCG R2 pipeline verification card\",variation:\"Canary\",autograph_present:false,declared_value:1,front_image_url:front.url,back_image_url:back.url,status:\"received\",import_key:importKey,metadata:{pipeline_canary:true,storage_owner:\"cloudflare_r2\",run_id:runId,scenario:kind}});if(cardError)throw new Error(kind+\" canary canonical card write failed: \"+clean(cardError.message))}\n      const{count,error:countError}=await admin.from(\"card_grading_cards\").select(\"id\",{count:\"exact\",head:true}).eq(\"tenant_id\",tenantId).eq(\"submission_id\",submissionId);if(countError)throw countError;const captured=Number(count||0);if(captured!==expected)throw new Error(kind+\" canary captured \"+captured+\" of \"+expected+\" expected cards.\");await advanceCanary(tenantId,submissionId,\"intake_imaging\");await advanceCanary(tenantId,submissionId,\"authentication\");await advanceCanary(tenantId,submissionId,\"grading\");const gradeGateVerified=await expectAdvanceBlocked(tenantId,submissionId,\"encapsulation\");const{data:cards,error:cardsError}=await admin.from(\"card_grading_cards\").select(\"id,sequence_number\").eq(\"tenant_id\",tenantId).eq(\"submission_id\",submissionId).order(\"sequence_number\");if(cardsError)throw cardsError;for(const card of cards||[]){const cert=(\"CAN-\"+runId+\"-\"+kind+\"-\"+card.sequence_number).toUpperCase();certs.push(cert);const{error:updateError}=await admin.from(\"card_grading_cards\").update({grade:9,grade_label:\"9 MT\",cert_number:cert,grader_notes:\"Synthetic canary grade\",updated_at:new Date().toISOString()}).eq(\"tenant_id\",tenantId).eq(\"id\",card.id);if(updateError)throw updateError}await advanceCanary(tenantId,submissionId,\"encapsulation\");await advanceCanary(tenantId,submissionId,\"qa\");await advanceCanary(tenantId,submissionId,\"ready\");const shippingGateVerified=await expectAdvanceBlocked(tenantId,submissionId,\"shipped\");const tracking=\"CANARY-OUT-\"+runId+\"-\"+kind.toUpperCase();const{error:trackingError}=await admin.from(\"card_grading_submissions\").update({tracking_out:tracking,updated_at:new Date().toISOString()}).eq(\"tenant_id\",tenantId).eq(\"id\",submissionId);if(trackingError)throw trackingError;await advanceCanary(tenantId,submissionId,\"shipped\");const progress=await lookupCanaryProgress(submissionNumber,email),progressCards=Array.isArray(progress?.data?.cards)?progress.data.cards:[];const wmpVerified=progress?.data?.order?.status===\"shipped\"&&progress?.data?.order?.return_shipping_method===\"fedex_saver\"&&progress?.data?.order?.tracking_out===tracking&&progressCards.length===expected&&progressCards.every((card:any)=>card.grade===9&&card.grade_label===\"9 MT\"&&certs.includes(String(card.cert_number||\"\")));if(!wmpVerified)throw new Error(kind+\" canary WMP data did not match the canonical order.\");return{status:\"passed\",expected_card_count:expected,captured_card_count:captured,r2_object_count:expected*2,dedupe_verified:dedupeVerified,signed_delivery_verified:signedDeliveryVerified,grade_gate_verified:gradeGateVerified,shipping_gate_verified:shippingGateVerified,wmp_verified:wmpVerified,terminal_status:\"shipped\"}};\n    single=await runScenario(\"single\",1);batch=await runScenario(\"batch\",2);\n  }catch(error){failure=error instanceof Error?error.message:String(error)}\n  finally{cleanup.r2_objects_expected=objectKeys.length;if(submissionIds.length){const{error}=await admin.from(\"card_grading_submissions\").delete().eq(\"tenant_id\",tenantId).in(\"id\",submissionIds);if(!error)cleanup.submission_rows_removed=submissionIds.length}if(contactIds.length){const{error}=await admin.from(\"unified_contacts\").delete().eq(\"tenant_org_id\",tenantId).in(\"id\",contactIds);if(!error)cleanup.contact_rows_removed=contactIds.length}cleanup.database=cleanup.submission_rows_removed===submissionIds.length&&cleanup.contact_rows_removed===contactIds.length;try{const cfg=await storageConfig(tenantId);for(const key of objectKeys){await r2Delete(tenantId,cfg.bucket,key);cleanup.r2_objects_deleted+=1}cleanup.r2=cleanup.r2_objects_deleted===cleanup.r2_objects_expected}catch{cleanup.r2=false}}\n  const ok=!failure&&single?.status===\"passed\"&&batch?.status===\"passed\"&&cleanup.database&&cleanup.r2;const detail={ok,ran_at:startedAt,completed_at:new Date().toISOString(),version:FUNCTION_VERSION,storage_owner:\"cloudflare_r2\",single,batch,cleanup,error:failure||null};await persistCanaryReceipt(tenantId,ok?\"ready\":\"blocked\",detail);return json(detail,ok?200:500)\n}\n\nasync function rehomeCards(req:Request){","old_content":"async function rehomeCards(req:Request){"},{"new_content":"    if(req.method===\"POST\"&&url.pathname.endsWith(\"/canary\"))return runPipelineCanary(req);\n    if(req.method===\"POST\"&&url.pathname.endsWith(\"/run-legacy-migration\"))return runLegacyMigration(req);","old_content":"    if(req.method===\"POST\"&&url.pathname.endsWith(\"/run-legacy-migration\"))return runLegacyMigration(req);"}]},{"path":"src/pages/card-grading/PCGOnboardingReadiness.tsx","edits":[{"new_content":"type CanaryScenario={status?:string;expected_card_count?:number;captured_card_count?:number;r2_object_count?:number;dedupe_verified?:boolean;signed_delivery_verified?:boolean;grade_gate_verified?:boolean;shipping_gate_verified?:boolean;wmp_verified?:boolean;terminal_status?:string};\ntype CanaryReceipt={ok?:boolean;ran_at?:string;completed_at?:string;version?:string;storage_owner?:string;single?:CanaryScenario|null;batch?:CanaryScenario|null;cleanup?:{database?:boolean;r2?:boolean;submission_rows_removed?:number;contact_rows_removed?:number;r2_objects_deleted?:number;r2_objects_expected?:number};error?:string|null};\ntype WebsiteCanary={ok?:boolean;write_read_verified?:boolean;cleanup?:boolean;error?:string|null;completed_at?:string};","old_content":"type CanaryScenario={status?:string;expected_card_count?:number;captured_card_count?:number;drive_file_count?:number;dedupe_verified?:boolean;signed_delivery_verified?:boolean;grade_gate_verified?:boolean;shipping_gate_verified?:boolean;wmp_verified?:boolean;terminal_status?:string};\ntype CanaryReceipt={ok?:boolean;ran_at?:string;completed_at?:string;version?:string;single?:CanaryScenario|null;batch?:CanaryScenario|null;cleanup?:{database?:boolean;drive?:boolean;submission_rows_removed?:number;contact_rows_removed?:number;drive_files_deleted?:number;drive_files_expected?:number};error?:string|null};"},{"new_content":"  const[legacyRows,setLegacyRows]=useState({linked:0,withSource:0,withoutSource:0});\n  const[r2Health,setR2Health]=useState<any>(null);\n  const[websiteCanary,setWebsiteCanary]=useState<WebsiteCanary|null>(null);","old_content":"  const[legacyRows,setLegacyRows]=useState({linked:0,withSource:0});"},{"new_content":"    const{data:sessionData}=await supabase.auth.getSession();const token=sessionData.session?.access_token||'';\n    const[credentialResult,batchResult,linkedResult,sourceResult,missingSourceResult,canaryResult,websiteCanaryResult,r2Result]=await Promise.all([\n      (supabase as any).from('tenant_provider_credentials').select('provider,credential_status,metadata,last_verified_at').eq('tenant_id',tenantId).in('provider',['stripe','quickbooks','ebay','cloudflare_r2']),\n      (supabase as any).from('pcg_import_batches').select('id,status,total_rows,valid_rows,duplicate_rows,imported_rows,review_rows,error_rows,summary').eq('tenant_id',tenantId).order('created_at',{ascending:false}).limit(100),\n      (supabase as any).from('pcg_import_rows').select('id',{count:'exact',head:true}).eq('tenant_id',tenantId).not('canonical_card_id','is',null),\n      (supabase as any).from('pcg_import_rows').select('id',{count:'exact',head:true}).eq('tenant_id',tenantId).not('source_url','is',null).not('canonical_card_id','is',null),\n      (supabase as any).from('pcg_import_rows').select('id',{count:'exact',head:true}).eq('tenant_id',tenantId).is('source_url',null).not('canonical_card_id','is',null),\n      (supabase as any).from('tenant_readiness_checks').select('status,detail,updated_at').eq('tenant_id',tenantId).eq('check_key','pcg_pipeline_canary').maybeSingle(),\n      (supabase as any).from('tenant_readiness_checks').select('status,detail,updated_at').eq('tenant_id',tenantId).eq('check_key','pcg_website_publish_canary').maybeSingle(),\n      fetch(`${import.meta.env.VITE_SUPABASE_URL}/functions/v1/pcg-r2-media/health?tenant_id=${encodeURIComponent(tenantId)}`,{headers:token?{Authorization:'Bearer '+token}:{}}).then(async response=>({ok:response.ok,payload:await response.json().catch(()=>null)})).catch(()=>({ok:false,payload:null}))\n    ]);\n    const firstError=credentialResult.error||batchResult.error||linkedResult.error||sourceResult.error||missingSourceResult.error||canaryResult.error||websiteCanaryResult.error;","old_content":"    const[credentialResult,batchResult,linkedResult,sourceResult,canaryResult]=await Promise.all([\n      (supabase as any).from('tenant_provider_credentials').select('provider,credential_status,metadata,last_verified_at').eq('tenant_id',tenantId).in('provider',['google_workspace','stripe','quickbooks','ebay']),\n      (supabase as any).from('pcg_import_batches').select('id,status,total_rows,valid_rows,duplicate_rows,imported_rows,review_rows,error_rows,summary').eq('tenant_id',tenantId).order('created_at',{ascending:false}).limit(100),\n      (supabase as any).from('pcg_import_rows').select('id',{count:'exact',head:true}).eq('tenant_id',tenantId).not('canonical_card_id','is',null),\n      (supabase as any).from('pcg_import_rows').select('id',{count:'exact',head:true}).eq('tenant_id',tenantId).not('source_url','is',null).not('canonical_card_id','is',null),\n      (supabase as any).from('tenant_readiness_checks').select('status,detail,updated_at').eq('tenant_id',tenantId).eq('check_key','pcg_pipeline_canary').maybeSingle()\n    ]);\n    const firstError=credentialResult.error||batchResult.error||linkedResult.error||sourceResult.error||canaryResult.error;"},{"new_content":"    setLegacyRows({linked:Number(linkedResult.count||0),withSource:Number(sourceResult.count||0),withoutSource:Number(missingSourceResult.count||0)});\n    setCanary((canaryResult.data?.detail||null) as CanaryReceipt|null);setWebsiteCanary((websiteCanaryResult.data?.detail||null) as WebsiteCanary|null);setR2Health(r2Result.ok?r2Result.payload:null);","old_content":"    setLegacyRows({linked:Number(linkedResult.count||0),withSource:Number(sourceResult.count||0)});\n    setCanary((canaryResult.data?.detail||null) as CanaryReceipt|null);"},{"new_content":"  const runCanary=useCallback(async()=>{if(!tenantId||canaryRunning)return;setCanaryRunning(true);setCanaryError('');try{const{data}=await supabase.auth.getSession();const token=data.session?.access_token;if(!token)throw new Error('Please sign in again before running the PCG canary.');const response=await fetch(`${import.meta.env.VITE_SUPABASE_URL}/functions/v1/pcg-r2-media/canary`,{method:'POST',headers:{Authorization:'Bearer '+token,'Content-Type':'application/json'},body:JSON.stringify({tenant_id:tenantId})});const payload=await response.json().catch(()=>null) as CanaryReceipt|null;if(payload)setCanary(payload);if(!response.ok||payload?.ok!==true)throw new Error(payload?.error||'PCG R2 pipeline canary did not pass.');const website=await supabase.functions.invoke('pcg-commerce-publisher',{body:{action:'website_canary',tenant_id:tenantId}});if(website.error||website.data?.ok!==true)throw new Error(website.data?.error||website.error?.message||'PCG website publishing canary did not pass.');setWebsiteCanary(website.data as WebsiteCanary);await load()}catch(error){setCanaryError(error instanceof Error?error.message:String(error))}finally{setCanaryRunning(false)}},[tenantId,canaryRunning,load]);","old_content":"  const runCanary=useCallback(async()=>{if(!tenantId||canaryRunning)return;setCanaryRunning(true);setCanaryError('');try{const{data}=await supabase.auth.getSession();const token=data.session?.access_token;if(!token)throw new Error('Please sign in again before running the PCG canary.');const response=await fetch(`${import.meta.env.VITE_SUPABASE_URL}/functions/v1/pcg-google-drive-media/canary`,{method:'POST',headers:{Authorization:'Bearer '+token,'Content-Type':'application/json'},body:JSON.stringify({tenant_id:tenantId})});const payload=await response.json().catch(()=>null) as CanaryReceipt|null;if(payload)setCanary(payload);if(!response.ok||payload?.ok!==true)throw new Error(payload?.error||'PCG pipeline canary did not pass.');await load()}catch(error){setCanaryError(error instanceof Error?error.message:String(error))}finally{setCanaryRunning(false)}},[tenantId,canaryRunning,load]);"},{"new_content":"  const r2Ready=Boolean(r2Health?.ok&&r2Health?.configured&&r2Health?.provider==='cloudflare_r2'&&r2Health?.bucket==='prestigious-card-grading');","old_content":"  const google=credentials.find(item=>item.provider==='google_workspace');\n  const googleScopes=Array.isArray(google?.metadata?.granted_scopes)?(google?.metadata?.granted_scopes as unknown[]).map(String):[];\n  const googleReady=google?.credential_status==='active'&&googleScopes.includes('https://www.googleapis.com/auth/drive.file');"},{"new_content":"  const redirectsReady=legacyRows.linked>0&&legacyRows.withoutSource===0&&legacyRows.withSource===legacyRows.linked;\n  const dataReconciled=imported>0&&review===0&&errors===0;\n  const paymentReady=stripeConnected||paymentFallback;\n  const pipelineReady=canary?.ok===true&&canary?.storage_owner==='cloudflare_r2'&&canary?.cleanup?.database===true&&canary?.cleanup?.r2===true;\n  const websiteReady=websiteCanary?.ok===true&&websiteCanary?.write_read_verified===true&&websiteCanary?.cleanup===true;\n  const cutoverReady=Boolean(previewUrl)&&r2Ready&&dataReconciled&&imagesComplete&&paymentReady&&redirectsReady&&dnsCaptured&&pipelineReady&&websiteReady;","old_content":"  const redirectsReady=imported>0&&legacyRows.linked>0&&legacyRows.withSource>0;\n  const dataReconciled=imported>0&&review===0&&errors===0;\n  const paymentReady=stripeConnected||paymentFallback;\n  const cutoverReady=Boolean(previewUrl)&&googleReady&&dataReconciled&&imagesComplete&&paymentReady&&redirectsReady&&dnsCaptured;"},{"new_content":"    {label:'Cloudflare R2 master storage',detail:r2Ready?'Dedicated private PCG R2 storage is verified.':'Dedicated PCG R2 storage is not verified.',state:r2Ready?'proven':'waiting',icon:Cloud},","old_content":"    {label:'Google Workspace / Drive',detail:googleReady?'Google Workspace Drive access is ready for private master images.':'Google Workspace Drive access is required.',state:googleReady?'proven':'waiting',icon:Cloud},"},{"new_content":"    {label:'Legacy master images',detail:imagesComplete?'Every imported batch reports complete R2 image migration.':imported?r2Ready?'Imported cards are waiting for the resumable R2 image pass.':'Imported cards cannot move masters until PCG R2 is healthy.':'Image migration begins after real legacy cards are imported.',state:imagesComplete?'proven':imported&&r2Ready?'progress':imported?'waiting':'blocked',icon:ImageIcon},","old_content":"    {label:'Legacy master images',detail:imagesComplete?'Every imported batch reports complete Drive image migration.':imported?googleReady?'Imported cards are waiting for the resumable Drive image pass.':'Imported cards cannot move masters until Google Workspace is connected.':'Image migration begins after real legacy cards are imported.',state:imagesComplete?'proven':imported&&googleReady?'progress':imported?'waiting':'blocked',icon:ImageIcon},"},{"new_content":"    {label:'Legacy URL redirects',detail:redirectsReady?legacyRows.withSource.toLocaleString()+' / '+legacyRows.linked.toLocaleString()+' canonical legacy records have source URLs; zero unresolved.':legacyRows.linked?legacyRows.withoutSource.toLocaleString()+' canonical legacy record(s) still lack a source URL.':'Redirect mapping waits for the real legacy import.',state:redirectsReady?'proven':legacyRows.linked?'progress':'blocked',icon:ExternalLink},\n    {label:'R2 pipeline canary',detail:pipelineReady?'Single + batch lifecycle, signed R2 delivery and cleanup are proven.':'Run the R2-native pipeline canary before cutover.',state:pipelineReady?'proven':'blocked',icon:ShieldCheck},\n    {label:'KNOCKLAUNCH website publication',detail:websiteReady?'Canonical public certificate write/read and cleanup are proven.':'Website publication has not passed its non-public canary.',state:websiteReady?'proven':'blocked',icon:Globe2},\n    {label:'pcgslab.com cutover',detail:cutoverReady?'All recorded cutover prerequisites are satisfied. DNS can be scheduled deliberately.':'DNS remains held. The current Squarespace site stays live until every prerequisite above is proven.',state:cutoverReady?'proven':'blocked',icon:LockKeyhole}\n  ],[previewUrl,r2Ready,imported,review,errors,staged,dataReconciled,imagesComplete,paymentFallback,stripeConnected,dnsCaptured,mx.length,redirectsReady,legacyRows.withSource,legacyRows.linked,legacyRows.withoutSource,pipelineReady,websiteReady,cutoverReady]);","old_content":"    {label:'Legacy URL redirects',detail:redirectsReady?legacyRows.withSource.toLocaleString()+' migrated legacy source URLs are linked to canonical cards.':imported?'Imported records still need enough legacy source URLs for redirect reconciliation.':'Redirect mapping waits for the real legacy import.',state:redirectsReady?'proven':imported?'progress':'blocked',icon:ExternalLink},\n    {label:'pcgslab.com cutover',detail:cutoverReady?'All recorded cutover prerequisites are satisfied. DNS can be scheduled deliberately.':'DNS remains held. The current Squarespace site stays live until every prerequisite above is proven.',state:cutoverReady?'proven':'blocked',icon:LockKeyhole}\n  ],[previewUrl,googleReady,imported,review,errors,staged,dataReconciled,imagesComplete,paymentFallback,stripeConnected,dnsCaptured,mx.length,redirectsReady,legacyRows.withSource,cutoverReady]);"},{"new_content":"  const ownerActions=[\n    !r2Ready?'Repair or reconnect PCG Cloudflare R2 storage before migration.':null,\n    !stripeConnected?'Provide Stripe account access so payment/customer history can be mapped and migrated.':null\n  ].filter(Boolean) as string[];","old_content":"  const ownerActions=[\n    !googleReady?'Authorize PCG Google Workspace so Drive can own the master image library.':null,\n    !stripeConnected?'Provide Stripe account access so payment/customer history can be mapped and migrated.':null\n  ].filter(Boolean) as string[];"},{"new_content":"<p className=\"mt-2 max-w-3xl text-sm leading-6 text-white/45\">Runs one synthetic single-card order and one synthetic two-card batch through private PCG Cloudflare R2, the canonical grading lifecycle, WMP lookup, website publication storage and cleanup. It never emails a customer or exposes a fake public listing.</p></div><button data-pcg-run-pipeline-canary=\"true\" onClick={()=>void runCanary()} disabled={canaryRunning||!r2Ready} className=\"inline-flex min-h-11 shrink-0 items-center justify-center gap-2 bg-[#d8bb78] px-4 text-xs font-black text-black disabled:cursor-not-allowed disabled:opacity-40\">{canaryRunning?<Loader2 className=\"h-4 w-4 animate-spin\"/>:<PlayCircle className=\"h-4 w-4\"/>}{canaryRunning?'Running single + batch…':r2Ready?'Run migration canary':'Repair PCG R2 first'}</button>","old_content":"<p className=\"mt-2 max-w-3xl text-sm leading-6 text-white/45\">Runs one synthetic single-card order and one synthetic two-card batch through the real PCG Google Drive, canonical grading lifecycle, WMP lookup and cleanup. It never emails a customer or publishes a listing.</p></div><button data-pcg-run-pipeline-canary=\"true\" onClick={()=>void runCanary()} disabled={canaryRunning||!googleReady} className=\"inline-flex min-h-11 shrink-0 items-center justify-center gap-2 bg-[#d8bb78] px-4 text-xs font-black text-black disabled:cursor-not-allowed disabled:opacity-40\">{canaryRunning?<Loader2 className=\"h-4 w-4 animate-spin\"/>:<PlayCircle className=\"h-4 w-4\"/>}{canaryRunning?'Running single + batch…':googleReady?'Run pipeline canary':'Reconnect Google Workspace first'}</button>"},{"new_content":"<div>R2 + signed media: {result.signed_delivery_verified?'pass':'fail'} · retry identity: {result.dedupe_verified?'pass':'fail'}</div>","old_content":"<div>Drive + signed media: {result.signed_delivery_verified?'pass':'fail'} · retry dedupe: {result.dedupe_verified?'pass':'fail'}</div>"},{"new_content":"{canary?.cleanup?<div className={\"mt-3 text-xs font-bold \"+(canary.cleanup.database&&canary.cleanup.r2?'text-emerald-300':'text-amber-200')}>Cleanup: database {canary.cleanup.database?'clean':'needs review'} · R2 {canary.cleanup.r2?'clean':'needs review'} · {canary.cleanup.r2_objects_deleted||0}/{canary.cleanup.r2_objects_expected||0} synthetic R2 objects removed.</div>:null}","old_content":"{canary?.cleanup?<div className={\"mt-3 text-xs font-bold \"+(canary.cleanup.database&&canary.cleanup.drive?'text-emerald-300':'text-amber-200')}>Cleanup: database {canary.cleanup.database?'clean':'needs review'} · Drive {canary.cleanup.drive?'clean':'needs review'} · {canary.cleanup.drive_files_deleted||0}/{canary.cleanup.drive_files_expected||0} synthetic Drive files removed.</div>:null}"}]},{"path":"config/capabilities/pcg-card-grading-modes.json","edits":[{"new_content":"owner-only PCG pipeline canary proves single and batch against private Cloudflare R2 and the canonical lifecycle with cleanup","old_content":"owner-only PCG pipeline canary proves single and batch against the live Google Drive and canonical lifecycle with cleanup"},{"new_content":"\"tenant Cloudflare R2 write\",\"R2 retry identity\",\"signed media delivery\"","old_content":"\"tenant Google Drive write\",\"Drive retry dedupe\",\"signed media delivery\""}]}],"implementation":{"files":[],"writes":[]},"requestContract":null,"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":"7ced6783-b7c7-4b1d-b645-57a92982faf8","ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/PcgAppShell.tsx","src/pages/card-grading/PCGOnboardingReadiness.tsx","supabase/functions/pcg-r2-media/index.ts","supabase/functions/pcg-commerce-publisher/index.ts","config/capabilities/pcg-card-grading-modes.json"],"requestContract":null,"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":"Prime structured exact mutation continuation"},"proofRequirements":null,"controlPlaneUnfreeze":true,"durableMutationResume":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":"Prime structured exact mutation continuation"},"recovery":false,"fingerprint":"f4d0da7f54d7878c13855d4dc6cd74eaa93062fe82a272de7385d30c79aa9ebd","replayCount":0,"serializedBytes":34895},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T00:22:39.953893+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:7ced6783-b7c7-4b1d-b645-57a92982faf8:repository-mutation-intent:f4d0da7f54d7878c13855d4dc6cd74eaa93062fe82a272de7385d30c79aa9ebd:0","mission_step_id":"e5652086-a2aa-4084-a056-8244cd6d2783","command_center_event_id":"7ced6783-b7c7-4b1d-b645-57a92982faf8"},{"id":"1276520f-1347-4e00-a806-e498ce846506","source":"cc-execution","status":"recorded","payload":{"objective":"Apply the supplied exact frontend mutations to finish the 321 owner experience. Preserve every other tenant, especially Redfish. Ship through protected main and live proof.","tenantRef":"d60e3c27-73ed-4a5f-a49b-c37636455daf","receivedAt":"2026-09-01T12:08:56.129Z","fingerprint":"9a56369b655864a1526e02d3a24db2e0546f484550cf6a302f9d612c72547ac9","workstreamRef":"d60e3c2773ed4a5fa49bc37636455daf","conversationId":null,"canonicalBranch":"ai/321-auto-unlock-premium-finish-20260901","requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Apply the supplied exact frontend mutations to finish the 321 owner experience. Preserve every other tenant, especially Redfish. Ship through protected main and live proof.","wordingChanged":false,"canonicalIntent":"Apply the supplied exact frontend mutations to finish the 321 owner experience. Preserve every other tenant, especially Redfish. Ship through protected main and live proof.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"owner-family","statement":"The 321 owner family remains under /321-auto-unlock/* with one premium 321 shell, persistent approved logo, no duplicate CRM/platform headers, and lockout-specific language.","proofConditionIds":["owner-clicks","owner-runtime"]},{"id":"workflow-preserved","statement":"Lockout request authorization/proof/status workflow plus customer, document and lockout invoicing capability remain available.","proofConditionIds":["owner-runtime","owner-clicks"]},{"id":"release","statement":"The exact merged repair is released only to the frontend production target.","proofConditionIds":["source-proof"]}],"objective":"Apply the supplied exact frontend mutations to finish the 321 owner experience. Preserve every other tenant, especially Redfish. Ship through protected main and live proof.","constraints":[{"id":"forgejo-only","statement":"Forgejo remains the only canonical repository.","proofConditionIds":["source-proof"]},{"id":"redfish-isolation","statement":"Unrelated Redfish behavior is not modified.","proofConditionIds":["source-proof"]},{"id":"no-invented-business-data","statement":"No phone, email, price, technician, legal entity detail, or integration is invented.","proofConditionIds":["source-proof"]},{"id":"one-path","statement":"Use one ai branch, one PR, KnockLaunch Gate, squash merge and frontend-only release.","proofConditionIds":["source-proof"]},{"id":"visual-required","statement":"The live owner route family requires interactive visual proof after release.","proofConditionIds":["owner-clicks"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"owner-clicks","kind":"interaction","claim":"From /321-auto-unlock/dashboard, actual owner navigation clicks reach Customers, Documents, Payments, Reports, Business and back to Command while staying under /321-auto-unlock/* with approved 321 branding and no generic/cross-vertical owner leakage.","route":"/321-auto-unlock/dashboard","required":true,"expectedText":"321 Auto Unlock","targetedActions":[{"action":"click","target":"Customers nav item","expectPath":"/321-auto-unlock/customers"},{"action":"click","target":"Documents nav item","expectPath":"/321-auto-unlock/documents"},{"action":"click","target":"Payments nav item","expectPath":"/321-auto-unlock/billing"},{"action":"click","target":"Reports nav item","expectPath":"/321-auto-unlock/analytics"},{"action":"click","target":"Business nav item","expectPath":"/321-auto-unlock/profile"},{"action":"click","target":"Command nav item","expectPath":"/321-auto-unlock/dashboard"}],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"owner-runtime","kind":"runtime","claim":"The 321 live owner experience retains Request queue operations, customer documents, and lockout service invoices with no claim/settlement owner fields.","route":"/321-auto-unlock/dashboard","required":true,"expectedText":"Request queue","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"source-proof","kind":"repository","claim":"The exact merged protected-main repair modifies only the intended 321/shared frontend primitives and its changed-path ownership releases frontend only.","route":"/321-auto-unlock/dashboard","required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":["frontend"],"requiredReleaseTargets":["frontend"]}],"validationErrors":[]},"requestedBranch":"ai/321-auto-unlock-premium-finish-20260901","conversationContext":null,"requestContractHash":"adb087af7e7202185e59ed1f399072898d0ec35decd040bb802ceb821c13b7a4","requestContractRevision":1},"tenant_id":"d60e3c27-73ed-4a5f-a49b-c37636455daf","created_at":"2026-09-01T12:08:56.842687+00:00","proof_gate":"tenant_workstream_contribution_recorded","source_sha":null,"external_id":null,"receipt_type":"tenant_workstream_contribution","idempotency_key":"mission:fc04a5e4-aca8-40d5-a4da-9eebe9bbd013:tenant-workstream-contribution:9a56369b655864a1526e02d3a24db2e0546f484550cf6a302f9d612c72547ac9","mission_step_id":null,"command_center_event_id":"fc04a5e4-aca8-40d5-a4da-9eebe9bbd013"},{"id":"12780cc0-1388-48e2-95dd-198f9ceb358c","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","cc-execution/runtime-proof":"success"},"mainSha":"34744d2e10e6e0cfd2ddbde2c94a3d5a22c5e498","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof"],"sourceSha":"34744d2e10e6e0cfd2ddbde2c94a3d5a22c5e498","releaseState":"verified","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":false,"migrations":false,"ccExecution":true,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"ccExecution":"success"},"requestContractHash":"41339e7e7a4cea0221604443bd0c580f39629ced5d589b41c8c7a35baf4bec98","forgejoWorkflowProof":{"runId":14424,"source":"exact_live_cc_execution_runtime_identity","status":"running","liveSha":"34744d2e10e6e0cfd2ddbde2c94a3d5a22c5e498","results":{},"proofGate":"cc_execution_exact_live_runtime_substitutes_transient_workflow_receipt","sourceSha":"34744d2e10e6e0cfd2ddbde2c94a3d5a22c5e498","conclusion":"running","deploymentId":"forgejo-main-34744d2e10e6e0cfd2ddbde2c94a3d5a22c5e498","targetStates":{"ccExecution":"pending"},"runtimeVersion":"1.64.50-onepath-source-domain","targetJobCount":7,"observedTargetStates":{"ccExecution":"pending"},"workflowReceiptSubstituted":true},"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"34744d2e10e6e0cfd2ddbde2c94a3d5a22c5e498","proofGate":"cc_execution_target_aware_runtime_identity_verified","deploymentId":"forgejo-main-34744d2e10e6e0cfd2ddbde2c94a3d5a22c5e498","compareStatus":"identical","workflowRunId":14424,"identitySource":"local_build_metadata","runtimeVersion":"1.64.50-onepath-source-domain","workflowFailed":false,"containsSourceSha":true},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T17:14:28.623864+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"34744d2e10e6e0cfd2ddbde2c94a3d5a22c5e498","external_id":"forgejo-main-34744d2e10e6","receipt_type":"canonical_release_status","idempotency_key":"mission:8e5af9be-df95-4edc-a55f-38287e002ce8:forgejo-release-status:34744d2e10e6e0cfd2ddbde2c94a3d5a22c5e498:verified:forgejo-main/source=success|forgejo-release/workflow=success|cc-execution/runtime-proof=success","mission_step_id":"1038b2ff-56f7-4518-ae6f-3de36e12a166","command_center_event_id":"8e5af9be-df95-4edc-a55f-38287e002ce8"},{"id":"12790cd2-6a47-478d-a6a5-2f179ade7131","source":"cc-execution","status":"release_reconciliation_pending","payload":{"ok":true,"jobId":null,"phase":"release","branch":"ai/objective-first-repair-0c1ff6e1cd2b","reason":null,"status":"release_reconciliation_pending","metrics":{"receiptBytes":76393,"releaseCount":0,"toolCallCount":8,"repeatedCallCount":2,"executorlessWaitMs":161183,"firstUsefulResultAt":"2026-09-28T19:13:51.749Z","recoveryAttemptCount":2,"ownerInterruptionCount":0},"version":"1.59.2-component-runtime-alignment","prNumber":4038,"terminal":false,"missionId":"0c1ff6e1-cd2b-4dde-86ec-219d7b939c95","operation":"execute_mission","proofGate":"canonical_release_reconciliation_pending","sourceSha":"e7819a2689beb8f35b99e85ae186e543359da3d0","timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1148,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":78,"approvedPlanMs":0,"missionSetupMs":2331,"providerAuthMs":0,"shipAndProveMs":280,"ledgerPrepareMs":602,"ledgerReconcileMs":0,"lineageReconcileMs":1729,"resolvePreflightMs":2331,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":602,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"reconcile_release","receiptRef":{"mode":"full","missionId":"0c1ff6e1-cd2b-4dde-86ec-219d7b939c95"},"performance":null,"deploymentId":"forgejo-main-e7819a2689be","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":true,"edgeFunctionSlugs":["operator-respond"]},"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":2720,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T19:16:35.636187+00:00","proof_gate":"canonical_release_reconciliation_pending","source_sha":"e7819a2689beb8f35b99e85ae186e543359da3d0","external_id":"forgejo-main-e7819a2689be","receipt_type":"execute_mission","idempotency_key":"mission:0c1ff6e1-cd2b-4dde-86ec-219d7b939c95:execute_mission:canonical_release_reconciliation_pending:current-generation","mission_step_id":"c7ecc821-85fc-4874-ab99-a558682ca63e","command_center_event_id":"0c1ff6e1-cd2b-4dde-86ec-219d7b939c95"},{"id":"1279515a-57d1-4f90-af5c-af79a7734da0","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"release","branch":null,"reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":1156,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.46.8-intent-aware-objectives","prNumber":161,"terminal":false,"missionId":"e82f37bb-3ea8-4505-ac77-7dd555b9c41c","operation":"ship_and_prove","proofGate":"canonical_release_dispatched","sourceSha":"8f6d8e3213671677723b93f75105280ed876f928","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"e82f37bb-3ea8-4505-ac77-7dd555b9c41c"},"performance":null,"deploymentId":"forgejo-main-8f6d8e321367","workflowRunId":null,"releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3731,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-15T18:29:56.240086+00:00","proof_gate":"canonical_release_dispatched","source_sha":"8f6d8e3213671677723b93f75105280ed876f928","external_id":"forgejo-main-8f6d8e321367","receipt_type":"ship_and_prove","idempotency_key":"mission:e82f37bb-3ea8-4505-ac77-7dd555b9c41c:ship_and_prove:canonical_release_dispatched:8f6d8e3213671677723b93f75105280ed876f928:no-run","mission_step_id":"45a9123d-6903-4876-90d5-c1d5885e16b6","command_center_event_id":"e82f37bb-3ea8-4505-ac77-7dd555b9c41c"},{"id":"1279acc5-98e6-4eec-a9c8-223d70e86faf","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-a5bcb91578e9","reason":"anchored_edit_anchor_not_unique:src/__tests__/contracts/cc-execution-objective-intent.contract.test.ts","status":"blocked","metrics":{"receiptBytes":20996,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":0,"executorlessWaitMs":4106,"firstUsefulResultAt":"2026-10-05T16:45:39.008Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.98-proof-target-fidelity","prNumber":null,"terminal":false,"missionId":"a5bcb915-78e9-4073-8589-6b78d2bb127a","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":4998,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":1986,"missionSetupMs":318,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":318,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":318,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":318,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"a5bcb915-78e9-4073-8589-6b78d2bb127a"},"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":1585,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-05T16:45:43.183627+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:a5bcb915-78e9-4073-8589-6b78d2bb127a:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"390c56a6-acd2-4db8-89fe-c689f85fa9e5","command_center_event_id":"a5bcb915-78e9-4073-8589-6b78d2bb127a"},{"id":"127c6e99-97f9-4aea-af5e-bfd53ccb15a4","source":"cc-execution","status":"authorized","payload":{"paths":["workers/cc-execution/src/mcp-synthesis-source-bundle.js","workers/cc-execution/src/version.js","workers/cc-execution/test/mcp-synthesis-source-bundle.test.js"],"reason":"Owner explicitly requested repair of the control plane mutation/refusal behavior; this changes only the MCP continuation contract and regression test while preserving genuine safety and release boundaries.","baseSha":"acb6a877d6dd9f675be439406076c82dc320721c","issuedAt":1788115635008,"expiresAt":1788115815008,"missionId":"81a6daca-1de3-45bf-a00f-89fb281f6d7b","singleUse":true,"authorizationId":"7514ddae-084f-493d-ad98-a64969d64e9b"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-30T18:47:15.859438+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"acb6a877d6dd9f675be439406076c82dc320721c","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:7514ddae-084f-493d-ad98-a64969d64e9b","mission_step_id":"52bb7837-a401-42ce-8c00-9b91725836d1","command_center_event_id":"81a6daca-1de3-45bf-a00f-89fb281f6d7b"},{"id":"127ce40b-9440-4ba3-832d-ca5ca905d9c7","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-841a01acfc83","reason":"anchored_edit_invalid","status":"blocked","metrics":{"receiptBytes":23130,"releaseCount":0,"toolCallCount":4,"repeatedCallCount":1,"executorlessWaitMs":524546,"firstUsefulResultAt":"2026-09-29T14:03:26.211Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.0-platform-sidekick-intelligence","prNumber":null,"terminal":false,"missionId":"841a01ac-fc83-41c5-8be1-1b50df4c9f7f","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":664,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":664,"missionSetupMs":453,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":453,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":453,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":453,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"841a01ac-fc83-41c5-8be1-1b50df4c9f7f"},"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":1421,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T14:12:12.947082+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:841a01ac-fc83-41c5-8be1-1b50df4c9f7f:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"46e069bb-f351-4088-9d52-513ebb780b78","command_center_event_id":"841a01ac-fc83-41c5-8be1-1b50df4c9f7f"},{"id":"127d2eb6-4960-402c-962d-b3c2ad7f4ced","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/fix-customerstrmini-deterministic-20260824","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":1722,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.50.35-defer-existing-pr-refresh","prNumber":null,"terminal":false,"missionId":"31b3098a-a91b-4add-bee8-5aa745e8641e","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":null,"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":"31b3098a-a91b-4add-bee8-5aa745e8641e"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":9903,"likelyAffectedFiles":["src/pages/mobile-vendor/BigPapisCustomersPremium.tsx","src/lib/mobileVendor/eventBookings.ts","config/control-plane-capabilities.json"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-25T03:41:32.020303+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:31b3098a-a91b-4add-bee8-5aa745e8641e:execute_mission:repair_mission_synthesis_ready","mission_step_id":"543e402d-1982-4fc0-a6f0-7800c1382aa8","command_center_event_id":"31b3098a-a91b-4add-bee8-5aa745e8641e"},{"id":"127d57ce-1a9c-4310-b2c9-77b30203fe9b","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Reconcile the same RoofHelpFinder growth mission after the exact-head gate. Preserve the existing one-file PR #1191. If the KnockLaunch Gate is green, squash merge it, deploy only the affected frontend Cloudflare worker target, and complete live nonvisual proof that https://roofhelpfinder.com/ server-rendered HTML contains 'Palm Bay roof leak help'. Do not create another branch, PR, release, or Visual Witness.","wordingChanged":false,"canonicalIntent":"Reconcile the same RoofHelpFinder growth mission after the exact-head gate. Preserve the existing one-file PR #1191. If the KnockLaunch Gate is green, squash merge it, deploy only the affected frontend Cloudflare worker target, and complete live nonvisual proof that https://roofhelpfinder.com/ server-rendered HTML contains 'Palm Bay roof leak help'. Do not create another branch, PR, release, or Visual Witness.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"outcome-1","statement":"The RoofHelpFinder server-rendered homepage exposes crawler-followable links to the six existing Palm Bay and Melbourne promoted problem pages.","proofConditionIds":["proof-production"]}],"objective":"Reconcile the same RoofHelpFinder growth mission after the exact-head gate. Preserve the existing one-file PR #1191. If the KnockLaunch Gate is green, squash merge it, deploy only the affected frontend Cloudflare worker target, and complete live nonvisual proof that https://roofhelpfinder.com/ server-rendered HTML contains 'Palm Bay roof leak help'. Do not create another branch, PR, release, or Visual Witness.","constraints":[{"id":"constraint-1","statement":"Only scripts/cloudflare-native-owner-worker.mjs may change.","proofConditionIds":["proof-production"]},{"id":"constraint-2","statement":"Do not change homeowner claims, reviews, credentials, coverage language, lead form, tracking, routing, robots rules, sitemap contents, React UI, or other hosts/tenants.","proofConditionIds":["proof-production"]},{"id":"constraint-3","statement":"Use one fresh ai/* branch, one PR, KnockLaunch Gate, squash merge, deploy only the affected Cloudflare frontend worker target, and no Visual Witness.","proofConditionIds":["proof-production"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"runtime","claim":"The live server-rendered https://roofhelpfinder.com/ response contains the descriptive local-problem anchor text 'Palm Bay roof leak help'.","route":"https://roofhelpfinder.com/","required":true,"expectedText":"Palm Bay roof leak help","targetedActions":[],"allowedReleaseTargets":["frontend"],"requiredReleaseTargets":["frontend"]}],"validationErrors":[]},"requestContractHash":"7fc0e04650a7ddf21fa5a493a0d64c5e576b741f46f17811ca7ba9781342f6c3","requestContractRevision":4,"previousRequestContractHash":"60b90b3fb594bec4d61442e0caddbf9e84b090f31c2d28ef62bb43910b9598d3"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-31T14:33:02.467542+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:1b4e7f39-bdc8-4fa2-b368-e0355a91cfd2:request-contract-revision:4:7fc0e04650a7ddf21fa5a493a0d64c5e576b741f46f17811ca7ba9781342f6c3","mission_step_id":"f07ce6f1-7e79-44dc-a66f-57a3df8721d3","command_center_event_id":"1b4e7f39-bdc8-4fa2-b368-e0355a91cfd2"},{"id":"127f6376-7884-466f-ad0c-25a9543badaa","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"objective_received","branch":"ai/tenant-media-oauth-gateway-apikey","reason":"retryable_provider_transport:GET:The operation was aborted due to timeout","status":"retryable","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.122-modes-storage-bootstrap-owner","prNumber":null,"terminal":false,"missionId":"794cea09-4e13-4f5d-8ca0-ce5fa14e78d8","operation":"execute_mission","proofGate":"repair_mission_execution_retryable","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":22772,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":0,"missionSetupMs":1189,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":1189,"ledgerReconcileMs":528,"lineageReconcileMs":0,"resolvePreflightMs":1189,"repositoryMutationMs":22772,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":1717,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"794cea09-4e13-4f5d-8ca0-ce5fa14e78d8"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1566,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-13T01:51:15.864117+00:00","proof_gate":"repair_mission_execution_retryable","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:794cea09-4e13-4f5d-8ca0-ce5fa14e78d8:execute_mission:repair_mission_execution_retryable:current-generation","mission_step_id":"70720088-73c1-4a80-bb21-02b9ff36c0f1","command_center_event_id":"794cea09-4e13-4f5d-8ca0-ce5fa14e78d8"},{"id":"1280b08a-311e-4cce-b9ac-4e8de693a497","source":"cc-execution","status":"release_reconciliation_pending","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-9b2ffbd12a6d","reason":null,"status":"release_reconciliation_pending","metrics":{"receiptBytes":27116,"releaseCount":0,"toolCallCount":15,"repeatedCallCount":10,"executorlessWaitMs":983404,"firstUsefulResultAt":"2026-09-28T11:32:28.314Z","recoveryAttemptCount":8,"ownerInterruptionCount":0},"version":null,"prNumber":3976,"terminal":false,"missionId":"9b2ffbd1-2a6d-49a8-94eb-7bd1326a6dc3","operation":"automatic_mission_resume","proofGate":"canonical_release_reconciliation_pending","sourceSha":"cd9db0fc42181fbb457be9b60bc8fc8bf62c62e5","timingsMs":{"prReadinessMs":473,"approvedPlanMs":0,"shipAndProveMs":2442,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"reconcile_release","receiptRef":{"mode":"full","missionId":"9b2ffbd1-2a6d-49a8-94eb-7bd1326a6dc3"},"performance":null,"deploymentId":"forgejo-main-cd9db0fc4218","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":true,"edgeFunctionSlugs":["operator-respond"]},"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":2014,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T11:57:38.245616+00:00","proof_gate":"canonical_release_reconciliation_pending","source_sha":null,"external_id":"3976","receipt_type":"automatic_mission_resume","idempotency_key":"mission:9b2ffbd1-2a6d-49a8-94eb-7bd1326a6dc3:automatic-mission-resume:3976:canonical_release_reconciliation_pending","mission_step_id":"a6ac3b3a-3b8b-4a31-bc42-5f7e6421bf9a","command_center_event_id":"9b2ffbd1-2a6d-49a8-94eb-7bd1326a6dc3"},{"id":"1289938e-b239-4de2-92ba-a064306145ae","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"3fadf344a4168b7b576337f19da3b2624a28379d","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-1","satisfied":true,"statement":"Rework the live God Mode Console mobile experience at /admin/console in src/pages/admin/GodModeCommandConsole.tsx as a true mobile-first shell, not a responsive desktop shrink. Preserve all behavior. On phones, split the header into a compact primary action row plus a horizontally scrollable capability/interaction strip; eliminate overflow and cramped controls; hide low-value desktop status chrome; make Sessions and New reachable with 44px targets; make the resolver horizontally scrollable without layout breakage; reduce empty-state vertical waste; make transcript spacing phone-appropriate; make the composer sticky, safe-area aware, compact, and usable with the on-screen keyboard; use 16px mobile textarea text to avoid iOS zoom; make the session archive full-screen on mobile with 44px Close/tab controls; redesign the Witness/Sidekick mobile switcher and Sessions/Exit controls for thumb use; keep Witness and Sidekick panes full-height and visually integrated. Desktop styling and all backend/runtime/auth/data behavior must remain unchanged.","proofConditionIds":["proof-production","proof-visual"]}],"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","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":"7bcbf72c888ec279944cb1b24dc5170653fe9ae77b339d75cd97dcabdd6ab949","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":"7bcbf72c888ec279944cb1b24dc5170653fe9ae77b339d75cd97dcabdd6ab949"},"required":true,"satisfied":true},{"id":"proof-visual","kind":"visual","evidence":{"modeBound":true,"claimBound":true,"routeBound":true,"witnessMode":"observe","witnessRoute":"/admin/console","currentSourceSha":"3fadf344a4168b7b576337f19da3b2624a28379d","witnessSourceSha":"3fadf344a4168b7b576337f19da3b2624a28379d","verificationState":"verified","witnessRequestContractHash":"7bcbf72c888ec279944cb1b24dc5170653fe9ae77b339d75cd97dcabdd6ab949"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["frontend"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T03:52:17.236889+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"3fadf344a4168b7b576337f19da3b2624a28379d","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:50ec8347-1149-4ae4-81e0-6373c1a477ad:request-contract:7bcbf72c888ec279944cb1b24dc5170653fe9ae77b339d75cd97dcabdd6ab949:3fadf344a4168b7b576337f19da3b2624a28379d:verified:","mission_step_id":"464015ea-0f19-4b0b-b3b9-8bb62e57ffd8","command_center_event_id":"50ec8347-1149-4ae4-81e0-6373c1a477ad"},{"id":"128b721b-14c1-4439-b3e2-c585d05cc9b2","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-a93672d693cc","writes":[],"patches":[],"pr_body":"Connect PAUL to the existing owner-only Console session archive. Add bounded server-owned recall with provenance and secret redaction, durable turn persistence, server-backed history search/open/close, fresh-chat semantics, graceful memory degradation, and focused contract coverage. Reuses existing command-center session storage and owner context rather than introducing a competing memory store.","version":1,"approved":true,"pr_title":"PAUL durable cross-session memory and history search","missionId":"a93672d6-93cc-4278-b7d8-d2b283d7c660","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["supabase/functions/operator-respond/index.ts","src/components/admin/OperatorSidekick.tsx","src/__tests__/contracts/experience-editor-sidekick-navigation.contract.test.ts","supabase/migrations/20260927163500_console_session_archive.sql","supabase/migrations/20260927164500_console_session_search_match.sql","config/capabilities/knocklaunch-console.json"],"anchored_edits":[{"path":"supabase/functions/operator-respond/index.ts","edits":[{"new_content":"export const FUNCTION_VERSION = '0.10.0-paul-durable-memory';","old_content":"export const FUNCTION_VERSION = '0.9.1-scheduling-notification-truth';"},{"new_content":"}\n\nconst PAUL_RECALL_STOP_WORDS = new Set([\n  'about','after','again','also','been','before','build','building','can','continue','could','does','doing','done','fix','from','have','help','into','just','knocklaunch','make','need','next','out','paul','please','should','sidekick','system','that','the','then','there','these','thing','this','through','want','were','what','when','where','which','with','work','working','would','you','your',\n]);\n\nfunction paulRecallKeywords(value: unknown) {\n  return [...new Set(String(value ?? '').toLowerCase().replace(/[^a-z0-9\\s-]/g, ' ').split(/\\s+/).filter((word) => word.length >= 3 && !PAUL_RECALL_STOP_WORDS.has(word)))]\n    .sort((a, b) => b.length - a.length)\n    .slice(0, 12);\n}\n\nfunction validPaulSessionId(value: unknown) {\n  const normalized = String(value ?? '').trim();\n  return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(normalized) ? normalized : null;\n}\n\nfunction parsePaulConsoleTurn(value: unknown) {\n  const payload = safeParseJSON(value);\n  if (!payload || typeof payload !== 'object' || payload.type !== 'sidekick_conversation') return null;\n  return {\n    userMessage: redactSecretText(payload.user_message, 1800),\n    assistantMessage: redactSecretText(payload.assistant_message, 1800),\n    route: String(payload.route ?? '').slice(0, 240),\n    tenantRef: String(payload.tenant_ref ?? payload.context_tenant_id ?? '').slice(0, 240),\n    createdAt: String(payload.created_at ?? '').slice(0, 80),\n  };\n}\n\nasync function withPaulDeadline<T>(work: Promise<T>, ms = 1800): Promise<T | null> {\n  let timeout: number | undefined;\n  try {\n    return await Promise.race([\n      work,\n      new Promise<null>((resolve) => {\n        timeout = setTimeout(() => resolve(null), ms) as unknown as number;\n      }),\n    ]);\n  } catch {\n    return null;\n  } finally {\n    if (timeout !== undefined) clearTimeout(timeout);\n  }\n}\n\nasync function loadPaulDurableMemory(userClient: any, sidekickContext: any, userMessage: string) {\n  const empty = normalizePaulMemory(null);\n  const currentSessionId = validPaulSessionId(sidekickContext?.durableSessionId);\n  const keywords = paulRecallKeywords(userMessage);\n  const continuityRequested = /\\b(continue|resume|pick\\s+up|remember|earlier|before|last\\s+time|what(?:'s|\\s+is)\\s+next|we\\s+(?:did|were|talked|worked)|same\\s+(?:thing|work)|that\\s+work)\\b/i.test(userMessage);\n  const searchTerm = keywords[0] || '';\n  if (!searchTerm && !continuityRequested) {\n    return { memory: empty, status: { state: 'skipped', reason: 'no_history_signal', itemCount: 0 } };\n  }\n\n  const listResult: any = await withPaulDeadline(\n    userClient.rpc('list_console_sessions', { _query: searchTerm || null, _limit: searchTerm ? 8 : 6 }),\n  );\n  if (!listResult || listResult.error) {\n    return { memory: empty, status: { state: 'degraded', reason: 'history_index_unavailable', itemCount: 0 } };\n  }\n\n  const sessions = (Array.isArray(listResult.data) ? listResult.data : [])\n    .filter((row: any) => validPaulSessionId(row?.session_id) && row.session_id !== currentSessionId)\n    .slice(0, 4);\n  if (!sessions.length) return { memory: empty, status: { state: 'empty', reason: null, itemCount: 0, searchTerm } };\n\n  const detailResults: any = await withPaulDeadline(Promise.all(\n    sessions.map((row: any) => userClient.rpc('get_console_session', { _session_id: row.session_id })),\n  ));\n  if (!detailResults) {\n    return { memory: empty, status: { state: 'degraded', reason: 'history_detail_timeout', itemCount: 0, searchTerm } };\n  }\n\n  const route = String(sidekickContext?.route ?? '');\n  const tenantRef = String(sidekickContext?.tenantId ?? '');\n  const items: any[] = [];\n  for (let sessionIndex = 0; sessionIndex < detailResults.length; sessionIndex += 1) {\n    const result = detailResults[sessionIndex];\n    if (!result || result.error) continue;\n    const session = Array.isArray(result.data) ? result.data[0] : result.data;\n    const turns = Array.isArray(session?.turns) ? session.turns : [];\n    for (const rawTurn of turns) {\n      const parsed = parsePaulConsoleTurn(rawTurn?.raw_message);\n      if (!parsed) continue;\n      const excerpt = redactSecretText(\n        [parsed.userMessage ? `User: ${parsed.userMessage}` : '', parsed.assistantMessage ? `PAUL: ${parsed.assistantMessage}` : ''].filter(Boolean).join(' '),\n        720,\n      );\n      if (!excerpt) continue;\n      const haystack = excerpt.toLowerCase();\n      const keywordScore = keywords.reduce((score, keyword) => score + (haystack.includes(keyword) ? 3 : 0), 0);\n      const routeScore = route && parsed.route === route ? 2 : 0;\n      const tenantScore = tenantRef && parsed.tenantRef === tenantRef ? 2 : 0;\n      const ageMs = Math.max(0, Date.now() - new Date(rawTurn?.created_at || parsed.createdAt || 0).getTime());\n      const recencyScore = Number.isFinite(ageMs) ? Math.max(0, 2 - ageMs / (1000 * 60 * 60 * 24 * 30)) : 0;\n      const score = keywordScore + routeScore + tenantScore + recencyScore + (continuityRequested ? 1 : 0);\n      if (keywords.length && keywordScore === 0 && routeScore === 0 && tenantScore === 0) continue;\n      items.push({\n        sessionId: String(session?.session_id || sessions[sessionIndex]?.session_id || ''),\n        turnId: String(rawTurn?.id || ''),\n        createdAt: String(rawTurn?.created_at || parsed.createdAt || ''),\n        route: parsed.route,\n        tenantRef: parsed.tenantRef,\n        excerpt,\n        score,\n      });\n    }\n  }\n\n  items.sort((a, b) => b.score - a.score || String(b.createdAt).localeCompare(String(a.createdAt)));\n  const memory = normalizePaulMemory({ items: items.slice(0, 6) });\n  return { memory, status: { state: memory.itemCount ? 'ready' : 'empty', reason: null, itemCount: memory.itemCount, searchTerm } };\n}\n\nasync function listPaulDurableHistory(userClient: any, query: string, limit = 20) {\n  const result: any = await withPaulDeadline(userClient.rpc('list_console_sessions', {\n    _query: query.trim() || null,\n    _limit: Math.max(1, Math.min(limit, 40)),\n  }), 1800);\n  if (!result || result.error) return { sessions: [], degraded: true };\n  const sessions = (Array.isArray(result.data) ? result.data : []).map((row: any) => {\n    const matched = parsePaulConsoleTurn(row.first_message);\n    const latest = parsePaulConsoleTurn(row.last_message);\n    const snippet = matched\n      ? redactSecretText([matched.userMessage, matched.assistantMessage].filter(Boolean).join(' — '), 320)\n      : latest\n        ? redactSecretText([latest.userMessage, latest.assistantMessage].filter(Boolean).join(' — '), 320)\n        : redactSecretText(row.first_message, 320);\n    return {\n      id: String(row.session_id || ''),\n      title: String(row.event_title || 'Console conversation').replace(/^Console\\s*·\\s*/i, '').slice(0, 96),\n      status: String(row.session_status || ''),\n      createdAt: String(row.created_at || ''),\n      updatedAt: String(row.last_message_at || row.updated_at || row.created_at || ''),\n      turnCount: Number(row.turn_count || 0),\n      snippet,\n    };\n  }).filter((row: any) => validPaulSessionId(row.id));\n  return { sessions, degraded: false };\n}\n\nasync function getPaulDurableHistory(userClient: any, sessionId: string) {\n  const normalized = validPaulSessionId(sessionId);\n  if (!normalized) return null;\n  const result: any = await withPaulDeadline(userClient.rpc('get_console_session', { _session_id: normalized }), 1800);\n  if (!result || result.error) return null;\n  const session = Array.isArray(result.data) ? result.data[0] : result.data;\n  if (!session) return null;\n  const messages: any[] = [];\n  for (const rawTurn of Array.isArray(session.turns) ? session.turns : []) {\n    const parsed = parsePaulConsoleTurn(rawTurn?.raw_message);\n    if (!parsed) continue;\n    const createdAt = String(rawTurn?.created_at || parsed.createdAt || '');\n    if (parsed.userMessage) messages.push({ id: `${rawTurn.id}:user`, role: 'user', content: parsed.userMessage, createdAt });\n    if (parsed.assistantMessage) messages.push({ id: `${rawTurn.id}:assistant`, role: 'assistant', content: parsed.assistantMessage, createdAt });\n  }\n  return {\n    id: normalized,\n    title: String(session.event_title || 'Console conversation').replace(/^Console\\s*·\\s*/i, '').slice(0, 96),\n    status: String(session.session_status || ''),\n    createdAt: String(session.created_at || ''),\n    updatedAt: String(session.updated_at || session.created_at || ''),\n    messages: messages.slice(-400),\n  };\n}\n\nasync function persistPaulDurableTurn(userClient: any, sidekickContext: any, userMessage: string, assistantMessage: string, memoryAttribution: any[]) {\n  const existingSessionId = validPaulSessionId(sidekickContext?.durableSessionId);\n  const args = {\n    _session_id: existingSessionId,\n    _context_tenant_id: validPaulSessionId(sidekickContext?.tenantId),\n    _user_message: redactSecretText(userMessage, 6000),\n    _assistant_message: redactSecretText(assistantMessage, 6000),\n    _route: String(sidekickContext?.route ?? '').slice(0, 240) || null,\n    _tenant_ref: String(sidekickContext?.tenantId ?? sidekickContext?.tenantType ?? '').slice(0, 240) || null,\n    _context: redactSecrets({\n      clientConversationId: String(sidekickContext?.conversationId ?? '').slice(0, 160),\n      conversationStartedAt: String(sidekickContext?.conversationStartedAt ?? '').slice(0, 80),\n      pageTitle: String(sidekickContext?.pageTitle ?? '').slice(0, 240),\n      memoryAttribution: Array.isArray(memoryAttribution) ? memoryAttribution.slice(0, 6) : [],\n    }),\n    _witness: {\n      requested: sidekickContext?.witnessRequested === true,\n      ready: sidekickContext?.witnessObservationReady === true,\n    },\n  };\n  let result: any = await withPaulDeadline(userClient.rpc('append_console_session_turn', args), 1400);\n  if (existingSessionId && result?.error) {\n    result = await withPaulDeadline(userClient.rpc('append_console_session_turn', { ...args, _session_id: null }), 1400);\n  }\n  const sessionId = validPaulSessionId(result?.data);\n  return {\n    sessionId: sessionId || existingSessionId,\n    state: sessionId || (existingSessionId && !result?.error) ? 'persisted' : 'degraded',\n    reason: result && !result.error ? null : 'history_persistence_unavailable',\n  };\n}\n\nfunction truncateForModel","old_content":"}\\n\\nfunction truncateForModel"},{"new_content":"  const action = String(body.action ?? 'message');\n  const repoAgentToken = body.repoAgentToken ? String(body.repoAgentToken) : null;\n\n  if (['paul_history_search', 'paul_history_get', 'paul_history_close'].includes(action)) {\n    if (!isPlatformAdmin) return json({ ok: false, error: 'forbidden_platform_admin_history_required' }, 403);\n    if (action === 'paul_history_search') {\n      const query = String(body.query ?? '').slice(0, 240);\n      const history = await listPaulDurableHistory(userClient, query, Number(body.limit ?? 20));\n      return json({ ok: true, ...history });\n    }\n    const sessionId = validPaulSessionId(body.sessionId);\n    if (!sessionId) return json({ ok: false, error: 'valid sessionId required' }, 400);\n    if (action === 'paul_history_get') {\n      const conversation = await getPaulDurableHistory(userClient, sessionId);\n      if (!conversation) return json({ ok: false, error: 'console_session_not_found' }, 404);\n      return json({ ok: true, conversation });\n    }\n    const closeResult: any = await withPaulDeadline(userClient.rpc('close_console_session', { _session_id: sessionId }), 1200);\n    return json({ ok: true, closed: Boolean(closeResult && !closeResult.error && closeResult.data), degraded: !closeResult || Boolean(closeResult.error) });\n  }\n\n  if (['mission_status', 'mission_receipt', 'mission_cancel', 'owner_context'].includes(action)) {","old_content":"  const action = String(body.action ?? 'message');\\n  const repoAgentToken = body.repoAgentToken ? String(body.repoAgentToken) : null;\\n\\n  if (['mission_status', 'mission_receipt', 'mission_cancel', 'owner_context'].includes(action)) {"},{"new_content":"    const rawConsoleContext = body.sidekickContext ?? {};\n    const automaticRecall = await loadPaulDurableMemory(userClient, rawConsoleContext, userMessage);\n    const suppliedPaulMemory = normalizePaulMemory(rawConsoleContext?.paulMemory);\n    const paulMemory = automaticRecall.memory.itemCount > 0 ? automaticRecall.memory : suppliedPaulMemory;\n    const consoleContextWithoutMemory = rawConsoleContext && typeof rawConsoleContext === 'object' ? { ...rawConsoleContext } : {};","old_content":"    const rawConsoleContext = body.sidekickContext ?? {};\n    const paulMemory = normalizePaulMemory(rawConsoleContext?.paulMemory);\n    const consoleContextWithoutMemory = rawConsoleContext && typeof rawConsoleContext === 'object' ? { ...rawConsoleContext } : {};"},{"new_content":"    const finalMessage = String(answer.message || '').trim();\n    const resolvedMessage = finalMessage || (hasWitnessEvidence ? 'I received the live observation, but could not formulate a reliable answer from it.' : 'I could not formulate a reliable answer from the available context.');\n    const persistence = await persistPaulDurableTurn(userClient, rawConsoleContext, userMessage, resolvedMessage, paulMemory.attribution);\n    return json({\n      ok: true,\n      message: resolvedMessage,\n      provider: answer.provider,\n      model: answer.model,\n      mode: 'godmode_console_answer',\n      witnessGrounded: hasWitnessEvidence,\n      memoryAttribution: paulMemory.attribution,\n      memoryStatus: { ...automaticRecall.status, persistence: persistence.state, persistenceReason: persistence.reason },\n      durableSessionId: persistence.sessionId,\n      toolsUsed: false,\n    });","old_content":"    const finalMessage = String(answer.message || '').trim();\n    return json({\n      ok: true,\n      message: finalMessage || (hasWitnessEvidence ? 'I received the live observation, but could not formulate a reliable answer from it.' : 'I could not formulate a reliable answer from the available context.'),\n      provider: answer.provider,\n      model: answer.model,\n      mode: 'godmode_console_answer',\n      witnessGrounded: hasWitnessEvidence,\n      memoryAttribution: paulMemory.attribution,\n      toolsUsed: false,\n    });"},{"new_content":"  const rawSidekickContext = body.sidekickContext ?? {};\n  const recallQuery = String(rawSidekickContext?.rawUserRequest ?? userMessage).trim();\n  const automaticRecall = isPlatformAdmin\n    ? await loadPaulDurableMemory(userClient, rawSidekickContext, recallQuery)\n    : { memory: normalizePaulMemory(null), status: { state: 'skipped', reason: 'tenant_mode', itemCount: 0 } };\n  const suppliedPaulMemory = normalizePaulMemory(rawSidekickContext?.paulMemory);\n  const operatorPaulMemory = automaticRecall.memory.itemCount > 0 ? automaticRecall.memory : (isPlatformAdmin ? suppliedPaulMemory : normalizePaulMemory(null));\n  const sidekickContextWithoutMemory = rawSidekickContext && typeof rawSidekickContext === 'object' ? { ...rawSidekickContext } : {};","old_content":"  const rawSidekickContext = body.sidekickContext ?? {};\n  const operatorPaulMemory = isPlatformAdmin ? normalizePaulMemory(rawSidekickContext?.paulMemory) : normalizePaulMemory(null);\n  const sidekickContextWithoutMemory = rawSidekickContext && typeof rawSidekickContext === 'object' ? { ...rawSidekickContext } : {};"},{"new_content":"  finalMessage = isPlatformAdmin ? normalizeOperatorFinalMessage(finalMessage, pendingWrites, toolSummaries) : (finalMessage || 'I do not have enough context here to answer that confidently.');\n  const persistence = isPlatformAdmin\n    ? await persistPaulDurableTurn(userClient, rawSidekickContext, recallQuery, finalMessage, operatorPaulMemory.attribution)\n    : { sessionId: null, state: 'skipped', reason: null };\n  return json({\n    ok: true,\n    message: finalMessage,\n    pendingWrites,\n    toolCalls: toolSummaries,\n    visualPreview,\n    academySources: academyContext.sources,\n    memoryAttribution: operatorPaulMemory.attribution,\n    memoryStatus: { ...automaticRecall.status, persistence: persistence.state, persistenceReason: persistence.reason },\n    durableSessionId: persistence.sessionId,\n    provider,\n    model,\n    mode: isPlatformAdmin ? 'godmode_operator' : 'tenant_sidekick_read_only',\n    ccExecutionBridgeReady: Boolean(CC_EXECUTION_KEY),\n  });","old_content":"  finalMessage = isPlatformAdmin ? normalizeOperatorFinalMessage(finalMessage, pendingWrites, toolSummaries) : (finalMessage || 'I do not have enough context here to answer that confidently.');\n  return json({ ok: true, message: finalMessage, pendingWrites, toolCalls: toolSummaries, visualPreview, academySources: academyContext.sources, memoryAttribution: operatorPaulMemory.attribution, provider, model, mode: isPlatformAdmin ? 'godmode_operator' : 'tenant_sidekick_read_only', ccExecutionBridgeReady: Boolean(CC_EXECUTION_KEY) });"}]},{"path":"src/components/admin/OperatorSidekick.tsx","edits":[{"new_content":"type SidekickConversation = { id: string; title: string; createdAt: string; updatedAt: string; messages: ChatMessage[] };\ntype DurableSidekickConversation = { id: string; title: string; status: string; createdAt: string; updatedAt: string; turnCount: number; snippet: string };","old_content":"type SidekickConversation = { id: string; title: string; createdAt: string; updatedAt: string; messages: ChatMessage[] };"},{"new_content":"  const [conversationHistory, setConversationHistory] = useState<SidekickConversation[]>(() => loadConversations());\n  const [durableConversationId, setDurableConversationId] = useState<string | null>(null);\n  const [durableHistory, setDurableHistory] = useState<DurableSidekickConversation[]>([]);\n  const [durableHistoryLoading, setDurableHistoryLoading] = useState(false);\n  const [historyQuery, setHistoryQuery] = useState('');\n  const [historyOpen, setHistoryOpen] = useState(false);","old_content":"  const [conversationHistory, setConversationHistory] = useState<SidekickConversation[]>(() => loadConversations());\n  const [historyQuery, setHistoryQuery] = useState('');\n  const [historyOpen, setHistoryOpen] = useState(false);"},{"new_content":"  useEffect(() => {\n    const timer = window.setTimeout(() => persistConversation(messages), 250);\n    return () => window.clearTimeout(timer);\n  }, [messages, conversationId]);\n\n  useEffect(() => {\n    if (!historyOpen || !canUseGodModeCapabilities) return;\n    const timer = window.setTimeout(() => { void refreshDurableHistory(historyQuery); }, 180);\n    return () => window.clearTimeout(timer);\n  }, [historyOpen, historyQuery, canUseGodModeCapabilities]);","old_content":"  useEffect(() => {\n    const timer = window.setTimeout(() => persistConversation(messages), 250);\n    return () => window.clearTimeout(timer);\n  }, [messages, conversationId]);"},{"new_content":"  async function refreshDurableHistory(query = '') {\n    if (!canUseGodModeCapabilities) return;\n    setDurableHistoryLoading(true);\n    try {\n      const response = await callOperator<{ ok: true; sessions: DurableSidekickConversation[]; degraded?: boolean }>({\n        action: 'paul_history_search',\n        query,\n        limit: 20,\n      });\n      setDurableHistory(response.sessions ?? []);\n    } catch {\n      setDurableHistory([]);\n    } finally {\n      setDurableHistoryLoading(false);\n    }\n  }\n  function startNewConversation() {\n    persistConversation();\n    if (durableConversationId && canUseGodModeCapabilities) {\n      void callOperator({ action: 'paul_history_close', sessionId: durableConversationId }).catch(() => undefined);\n    }\n    const nowIso = new Date().toISOString();\n    setConversationId(crypto.randomUUID());\n    setDurableConversationId(null);\n    setConversationStartedAt(nowIso);\n    setMessages([{ id: crypto.randomUUID(), role: 'system', content: welcomeCopy(persona, isGodModeContext), createdAt: nowIso }]);\n    setTrackedMissions([]);\n    setPendingWrites([]);\n    setVisualAttachment(null);\n    setCurrentVisual(null);\n    setHistoryOpen(false);\n    setHistoryQuery('');\n  }\n  function restoreConversation(conversation: SidekickConversation) {\n    persistConversation();\n    setConversationId(conversation.id);\n    setDurableConversationId(null);\n    setConversationStartedAt(conversation.createdAt);\n    setMessages(conversation.messages);\n    setTrackedMissions([]);\n    setPendingWrites([]);\n    setHistoryOpen(false);\n  }\n  async function restoreDurableConversation(conversation: DurableSidekickConversation) {\n    persistConversation();\n    try {\n      const response = await callOperator<{ ok: true; conversation: SidekickConversation }>({\n        action: 'paul_history_get',\n        sessionId: conversation.id,\n      });\n      const restored = response.conversation;\n      setConversationId(restored.id);\n      setDurableConversationId(restored.id);\n      setConversationStartedAt(restored.createdAt);\n      setMessages([\n        { id: crypto.randomUUID(), role: 'system', content: welcomeCopy(persona, isGodModeContext), createdAt: restored.createdAt },\n        ...restored.messages,\n      ]);\n      setTrackedMissions([]);\n      setPendingWrites([]);\n      setHistoryOpen(false);\n    } catch (error: any) {\n      toast({ title: 'Could not open that conversation', description: error?.message ?? String(error), variant: 'destructive' });\n    }\n  }","old_content":"  function startNewConversation() {\n    persistConversation();\n    const nowIso = new Date().toISOString();\n    setConversationId(crypto.randomUUID());\n    setConversationStartedAt(nowIso);\n    setMessages([{ id: crypto.randomUUID(), role: 'system', content: welcomeCopy(persona, isGodModeContext), createdAt: nowIso }]);\n    setTrackedMissions([]);\n    setPendingWrites([]);\n    setVisualAttachment(null);\n    setCurrentVisual(null);\n    setHistoryOpen(false);\n    setHistoryQuery('');\n  }\n  function restoreConversation(conversation: SidekickConversation) {\n    persistConversation();\n    setConversationId(conversation.id);\n    setConversationStartedAt(conversation.createdAt);\n    setMessages(conversation.messages);\n    setTrackedMissions([]);\n    setPendingWrites([]);\n    setHistoryOpen(false);\n  }"},{"new_content":"        visualPreview?: VisualPreview | null;\n        ccExecutionBridgeReady?: boolean;\n        durableSessionId?: string | null;\n        memoryStatus?: { state?: string; itemCount?: number; persistence?: string };\n      }>({","old_content":"        visualPreview?: VisualPreview | null;\n        ccExecutionBridgeReady?: boolean;\n      }>({"},{"new_content":"          rawUserRequest: text,\n          conversationId,\n          durableSessionId,\n          conversationStartedAt,\n          visualAttachment,\n          currentVisual,","old_content":"          rawUserRequest: text,\n          visualAttachment,\n          currentVisual,"},{"new_content":"      const assistantMessage = response.message || 'Done.';\n      if (canUseGodModeCapabilities && response.durableSessionId) setDurableConversationId(response.durableSessionId);\n      setPendingWrites(canUseGodModeCapabilities ? response.pendingWrites ?? [] : []);","old_content":"      const assistantMessage = response.message || 'Done.';\n      setPendingWrites(canUseGodModeCapabilities ? response.pendingWrites ?? [] : []);"},{"new_content":"      if (!canUseGodModeCapabilities) void logSidekickConversation(text, assistantMessage);\n      void speakAssistantReply(assistantMessage);","old_content":"      void logSidekickConversation(text, assistantMessage);\n      void speakAssistantReply(assistantMessage);"},{"new_content":"      {historyOpen ? <div className=\"rounded-xl border border-border/70 bg-card/90 p-2\">\n        <label className=\"flex items-center gap-2 rounded-lg border border-border bg-background px-2\"><Search className=\"h-3.5 w-3.5 text-muted-foreground\" /><input value={historyQuery} onChange={(event) => setHistoryQuery(event.target.value)} placeholder=\"Search conversations\" className=\"h-8 min-w-0 flex-1 bg-transparent text-xs outline-none\" /></label>\n        <div className=\"mt-2 max-h-48 space-y-1 overflow-y-auto\">\n          {canUseGodModeCapabilities ? (\n            durableHistoryLoading ? <div className=\"px-2 py-3 text-[10px] text-muted-foreground\">Searching durable Console history…</div> :\n            durableHistory.length ? durableHistory.map((conversation) => <button key={conversation.id} type=\"button\" onClick={() => void restoreDurableConversation(conversation)} className=\"w-full rounded-lg border border-border/50 px-2 py-1.5 text-left hover:bg-muted/50\"><div className=\"truncate text-xs font-semibold\">{conversation.title}</div><div className=\"line-clamp-2 text-[10px] text-muted-foreground\">{conversation.snippet || 'Saved Console conversation'}</div><div className=\"mt-0.5 text-[9px] text-muted-foreground\">{formatMessageTimestamp(conversation.updatedAt)} · {conversation.turnCount} turns · {conversation.status || 'saved'}</div></button>) :\n            <div className=\"px-2 py-3 text-[10px] text-muted-foreground\">No matching durable conversations.</div>\n          ) : conversationHistory.filter((conversation) => !historyQuery.trim() || JSON.stringify(conversation).toLowerCase().includes(historyQuery.trim().toLowerCase())).slice(0, 20).map((conversation) => <button key={conversation.id} type=\"button\" onClick={() => restoreConversation(conversation)} className=\"w-full rounded-lg border border-border/50 px-2 py-1.5 text-left hover:bg-muted/50\"><div className=\"truncate text-xs font-semibold\">{conversation.title}</div><div className=\"text-[10px] text-muted-foreground\">{formatMessageTimestamp(conversation.updatedAt)} · {conversation.messages.length} messages</div></button>)}\n        </div>\n      </div> : null}","old_content":"      {historyOpen ? <div className=\"rounded-xl border border-border/70 bg-card/90 p-2\">\n        <label className=\"flex items-center gap-2 rounded-lg border border-border bg-background px-2\"><Search className=\"h-3.5 w-3.5 text-muted-foreground\" /><input value={historyQuery} onChange={(event) => setHistoryQuery(event.target.value)} placeholder=\"Search conversations\" className=\"h-8 min-w-0 flex-1 bg-transparent text-xs outline-none\" /></label>\n        <div className=\"mt-2 max-h-40 space-y-1 overflow-y-auto\">{conversationHistory.filter((conversation) => !historyQuery.trim() || JSON.stringify(conversation).toLowerCase().includes(historyQuery.trim().toLowerCase())).slice(0, 20).map((conversation) => <button key={conversation.id} type=\"button\" onClick={() => restoreConversation(conversation)} className=\"w-full rounded-lg border border-border/50 px-2 py-1.5 text-left hover:bg-muted/50\"><div className=\"truncate text-xs font-semibold\">{conversation.title}</div><div className=\"text-[10px] text-muted-foreground\">{formatMessageTimestamp(conversation.updatedAt)} · {conversation.messages.length} messages</div></button>)}</div>\n      </div> : null}"}]},{"path":"src/__tests__/contracts/experience-editor-sidekick-navigation.contract.test.ts","edits":[{"new_content":"  it('keeps Experience Studio Sidekick inline so global overlays cannot block selectors', () => {\n    const operatorSidekick = read('src/components/admin/OperatorSidekick.tsx');\n    expect(operatorSidekick).toContain('commandDeckOpen && !experienceStudioRoute');\n    expect(operatorSidekick).toContain('!open && !experienceStudioRoute');\n    expect(operatorSidekick).toContain('open && docked && !experienceStudioRoute');\n  });\n\n  it('wires PAUL to durable cross-session Console history while preserving fresh-chat semantics', () => {\n    const operatorSidekick = read('src/components/admin/OperatorSidekick.tsx');\n    const operatorRespond = read('supabase/functions/operator-respond/index.ts');\n    const archiveMigration = read('supabase/migrations/20260927163500_console_session_archive.sql');\n    expect(operatorSidekick).toContain(\"action: 'paul_history_search'\");\n    expect(operatorSidekick).toContain(\"action: 'paul_history_get'\");\n    expect(operatorSidekick).toContain('setDurableConversationId(null)');\n    expect(operatorSidekick).toContain('conversationStartedAt');\n    expect(operatorRespond).toContain(\"userClient.rpc('list_console_sessions'\");\n    expect(operatorRespond).toContain(\"userClient.rpc('get_console_session'\");\n    expect(operatorRespond).toContain(\"userClient.rpc('append_console_session_turn'\");\n    expect(operatorRespond).toContain('currentSessionId');\n    expect(operatorRespond).toContain('redactSecretText');\n    expect(operatorRespond).toContain('memoryAttribution');\n    expect(operatorRespond).toContain(\"state: 'degraded'\");\n    expect(archiveMigration).toContain('create or replace function public.append_console_session_turn');\n    expect(archiveMigration).toContain('create or replace function public.list_console_sessions');\n    expect(archiveMigration).toContain('create or replace function public.get_console_session');\n  });","old_content":"  it('keeps Experience Studio Sidekick inline so global overlays cannot block selectors', () => {\n    const operatorSidekick = read('src/components/admin/OperatorSidekick.tsx');\n    expect(operatorSidekick).toContain('commandDeckOpen && !experienceStudioRoute');\n    expect(operatorSidekick).toContain('!open && !experienceStudioRoute');\n    expect(operatorSidekick).toContain('open && docked && !experienceStudioRoute');\n  });"}]}],"commit_message":"feat(paul): wire durable cross-session memory","implementation":{"files":[],"writes":[]},"requestContract":null,"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":"a93672d6-93cc-4278-b7d8-d2b283d7c660","ownerApproved":true,"releaseIntent":null,"sourceTargets":["supabase/functions/operator-respond/index.ts","src/components/admin/OperatorSidekick.tsx","src/__tests__/contracts/experience-editor-sidekick-navigation.contract.test.ts","supabase/migrations/20260927163500_console_session_archive.sql","supabase/migrations/20260927164500_console_session_search_match.sql","config/capabilities/knocklaunch-console.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":"c167c9eef6e213b62026216d341c05b14e2adf5d317796d853583e3331c40424","replayCount":0,"serializedBytes":32243},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T12:26:32.124363+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:a93672d6-93cc-4278-b7d8-d2b283d7c660:repository-mutation-intent:c167c9eef6e213b62026216d341c05b14e2adf5d317796d853583e3331c40424:0","mission_step_id":"6b47afb2-6066-44a5-99e1-c8b9b245ee9b","command_center_event_id":"a93672d6-93cc-4278-b7d8-d2b283d7c660"},{"id":"128bac27-6eb3-4ea6-bf95-1f3b5456ba70","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-1d5852a231fe","reason":"retryable_provider_transport:GET:The operation was aborted due to timeout","status":"retryable","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.123-modes-storage-validated-oauth","prNumber":null,"terminal":false,"missionId":"1d5852a2-31fe-478b-a591-bd376e9f7ce0","operation":"execute_mission","proofGate":"repair_mission_execution_retryable","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":17515,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":0,"missionSetupMs":505,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":271,"ledgerReconcileMs":0,"lineageReconcileMs":234,"resolvePreflightMs":505,"repositoryMutationMs":17515,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":271,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"1d5852a2-31fe-478b-a591-bd376e9f7ce0"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1554,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-13T02:35:17.283022+00:00","proof_gate":"repair_mission_execution_retryable","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:1d5852a2-31fe-478b-a591-bd376e9f7ce0:execute_mission:repair_mission_execution_retryable:current-generation","mission_step_id":"61aebdcf-88ae-4e40-8947-a77bcecaf3df","command_center_event_id":"1d5852a2-31fe-478b-a591-bd376e9f7ce0"},{"id":"128bd5d1-9f09-4610-9375-3ffff44db13d","source":"cc-execution","status":"recorded","payload":{"objective":"Current main is bac99c776bc9845bda9e8ceb636bdaf14275024a. Live proof of the just-merged Roof Help Finder workspace failed because PrivateAppShell intercepts /roof-help-finder/* and then wraps the already-private route in UnifiedProtectedRoute, which requires a normal user/session and redirects the canonical private GodMode projection before RoofHelpFinderWorkspace can render. Fix only this proven first causal failure: remove the now-unused UnifiedProtectedRoute import and render RoofHelpFinderWorkspace directly inside the existing PrivateAppShell private boundary. Do not change the workspace, tenant data, other routes, policies, or release architecture. One fresh branch, one PR, gate, squash merge, frontend release, then re-run live route proof for visible Intake, Contacts, Analytics, QR Codes.","tenantRef":"c3f09b56-5ff5-4521-8a0a-39cbeb4b5275","receivedAt":"2026-08-28T02:52:50.618Z","fingerprint":"12897637ff8b554cd202b59116fb056d998c55810a8dae78105a84172aac3fc3","workstreamRef":"c3f09b565ff545218a0a39cbeb4b5275","conversationId":null,"canonicalBranch":"ai/fix-roof-help-finder-private-projection-20260827","requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Current main is bac99c776bc9845bda9e8ceb636bdaf14275024a. Live proof of the just-merged Roof Help Finder workspace failed because PrivateAppShell intercepts /roof-help-finder/* and then wraps the already-private route in UnifiedProtectedRoute, which requires a normal user/session and redirects the canonical private GodMode projection before RoofHelpFinderWorkspace can render. Fix only this proven first causal failure: remove the now-unused UnifiedProtectedRoute import and render RoofHelpFinderWorkspace directly inside the existing PrivateAppShell private boundary. Do not change the workspace, tenant data, other routes, policies, or release architecture. One fresh branch, one PR, gate, squash merge, frontend release, then re-run live route proof for visible Intake, Contacts, Analytics, QR Codes.","wordingChanged":false,"canonicalIntent":"Current main is bac99c776bc9845bda9e8ceb636bdaf14275024a. Live proof of the just-merged Roof Help Finder workspace failed because PrivateAppShell intercepts /roof-help-finder/* and then wraps the already-private route in UnifiedProtectedRoute, which requires a normal user/session and redirects the canonical private GodMode projection before RoofHelpFinderWorkspace can render. Fix only this proven first causal failure: remove the now-unused UnifiedProtectedRoute import and render RoofHelpFinderWorkspace directly inside the existing PrivateAppShell private boundary. Do not change the workspace, tenant data, other routes, policies, or release architecture. One fresh branch, one PR, gate, squash merge, frontend release, then re-run live route proof for visible Intake, Contacts, Analytics, QR Codes.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"workspace-renders","statement":"Live /roof-help-finder/dashboard renders the dedicated Roof Help Finder workspace with Intake, Contacts, Analytics, and QR Codes.","proofConditionIds":["live-route"]}],"objective":"Current main is bac99c776bc9845bda9e8ceb636bdaf14275024a. Live proof of the just-merged Roof Help Finder workspace failed because PrivateAppShell intercepts /roof-help-finder/* and then wraps the already-private route in UnifiedProtectedRoute, which requires a normal user/session and redirects the canonical private GodMode projection before RoofHelpFinderWorkspace can render. Fix only this proven first causal failure: remove the now-unused UnifiedProtectedRoute import and render RoofHelpFinderWorkspace directly inside the existing PrivateAppShell private boundary. Do not change the workspace, tenant data, other routes, policies, or release architecture. One fresh branch, one PR, gate, squash merge, frontend release, then re-run live route proof for visible Intake, Contacts, Analytics, QR Codes.","constraints":[{"id":"bounded-fix","statement":"Change only the redundant Roof Help Finder private-route protection in PrivateAppShell; preserve all other tenant behavior and the already-merged intake/data implementation.","proofConditionIds":["live-route"]},{"id":"no-policy","statement":"Do not change control-plane, gate, queue, or release policy.","proofConditionIds":["live-route"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"live-route","kind":"runtime","claim":"On the exact live frontend release, /roof-help-finder/dashboard visibly renders the dedicated four-function Roof Help Finder workspace.","route":"/roof-help-finder/dashboard","required":true,"expectedText":"QR Codes","targetedActions":[],"allowedReleaseTargets":["frontend"],"requiredReleaseTargets":["frontend"]}],"validationErrors":[]},"requestedBranch":"ai/fix-roof-help-finder-private-projection-20260827","conversationContext":null,"requestContractHash":"4ccfdd1993e65e5f96b7621cc2d65731e23fe835629cfefc7eb9796a3f03998c","requestContractRevision":1},"tenant_id":"c3f09b56-5ff5-4521-8a0a-39cbeb4b5275","created_at":"2026-08-28T02:52:51.089614+00:00","proof_gate":"tenant_workstream_contribution_recorded","source_sha":null,"external_id":null,"receipt_type":"tenant_workstream_contribution","idempotency_key":"mission:09d5a6a1-4106-49db-bed0-f204dfa4c903:tenant-workstream-contribution:12897637ff8b554cd202b59116fb056d998c55810a8dae78105a84172aac3fc3","mission_step_id":null,"command_center_event_id":"09d5a6a1-4106-49db-bed0-f204dfa4c903"},{"id":"128ec7ae-ea2c-4098-a1c7-2a8aa6b925ca","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"620fc2fc2293c9b9c8ae55c737d40c65fed9fcf4","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"620fc2fc2293c9b9c8ae55c737d40c65fed9fcf4","releaseState":"pending","sourceInMain":true,"compareStatus":"identical","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/422","runId":422,"status":"running","conclusion":null,"failedJobs":[]},"ccExecutionRuntimeProof":null},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-15T17:24:13.970269+00:00","proof_gate":"canonical_release_pending","source_sha":"620fc2fc2293c9b9c8ae55c737d40c65fed9fcf4","external_id":"forgejo-main-620fc2fc2293","receipt_type":"canonical_release_status","idempotency_key":"mission:f387f211-1531-4ed9-a56a-7255d2321566:forgejo-release-status:620fc2fc2293c9b9c8ae55c737d40c65fed9fcf4:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"e9a4e687-ec0a-4ff1-a2c0-cfa53c190c36","command_center_event_id":"f387f211-1531-4ed9-a56a-7255d2321566"},{"id":"129188ad-695b-456c-a5f1-85c87f82ec6a","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/platform-ai-slop-audit","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.31.23-targeted-owner-preflight","prNumber":null,"terminal":false,"missionId":"440b5c8a-be86-4703-a966-db21e77a089b","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":null,"nextAction":"Inspect the bounded repository paths, synthesize exact files or anchored_edits, and call /repair/continue-mission automatically with this missionId without another owner prompt.","receiptRef":{"mode":"full","missionId":"440b5c8a-be86-4703-a966-db21e77a089b"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":7180,"likelyAffectedFiles":[".github/workflows/production-release-conductor.yml","scripts/resolve-autonomous-change-plan.mjs","scripts/resolve-production-workflow-run.mjs","src/routes/","src/pages/","src/components/","src/index.css",".github/workflows/canonical-pull-request-gate.yml","workers/cc-execution/src/index-controlled-deploy-gate.js"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-08T23:46:13.254546+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:440b5c8a-be86-4703-a966-db21e77a089b:execute_mission:repair_mission_synthesis_ready","mission_step_id":"d83228d6-eac6-4dde-a76e-b688722bcc17","command_center_event_id":"440b5c8a-be86-4703-a966-db21e77a089b"},{"id":"129202ae-2903-435c-8674-64c045db7f0a","source":"forgejo-runtime","status":"failed","payload":{"failed":["render-onrunner/runtime-proof"],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","render-onrunner/runtime-proof":"failure"},"mainSha":"5ca6ca294968f312745fe20e06c36a42386c9cbe","missing":[],"pending":["forgejo-release/workflow"],"required":["forgejo-main/source","forgejo-release/workflow","render-onrunner/runtime-proof"],"sourceSha":"5ca6ca294968f312745fe20e06c36a42386c9cbe","releaseState":"failed","sourceInMain":true,"compareStatus":"identical","forgejoWorkflowProof":{"error":"workflow_run_id_missing","runId":null},"onrunnerRuntimeProof":{"reason":"render_onrunner_source_mismatch","hostedUrl":"https://knocklaunchcrm.onrender.com","brokerReady":false,"exactSource":false,"healthStatus":200,"runtimeReady":false,"liveSourceSha":"02ebf6f398e0f812a2c9e2fab2191b346ebdb42d","runnerVersion":"onrunner-02ebf6f398e0","expectedSourceSha":"5ca6ca294968f312745fe20e06c36a42386c9cbe"},"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-23T22:09:36.413362+00:00","proof_gate":"canonical_release_terminal_failed","source_sha":"5ca6ca294968f312745fe20e06c36a42386c9cbe","external_id":null,"receipt_type":"canonical_release_status","idempotency_key":"mission:f4d27963-466c-4245-96c4-207badfd984a:forgejo-release-status:5ca6ca294968f312745fe20e06c36a42386c9cbe:failed:forgejo-main/source=success|forgejo-release/workflow=pending|render-onrunner/runtime-proof=failure","mission_step_id":"f411f283-f8f1-43a7-b3e9-b249746e27ce","command_center_event_id":"f4d27963-466c-4245-96c4-207badfd984a"},{"id":"1297e3e5-7ebf-45af-9f7b-e4bfea932eca","source":"cc-execution","status":"authorized","payload":{"paths":["workers/cc-execution/src/index-mission-control.js","workers/cc-execution/src/version.js"],"reason":"Align direct mission boundary with existing MCP explicit request-contract hydration without relaxing safety guards.","baseSha":"583dc18b25780161c239ffdd9933a91cf9d5d47c","issuedAt":1791254083022,"expiresAt":1791254263022,"missionId":"05f5a0f6-f13f-492f-93a1-f3cca288d7aa","authorizationId":"2a71716b-11e4-4936-ac6b-3f82a3525f0c","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T02:34:43.52262+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"583dc18b25780161c239ffdd9933a91cf9d5d47c","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:2a71716b-11e4-4936-ac6b-3f82a3525f0c","mission_step_id":"768c84bd-a9c8-4178-8a50-f3386ab22d00","command_center_event_id":"05f5a0f6-f13f-492f-93a1-f3cca288d7aa"},{"id":"1298237a-4cbb-43aa-98a9-aada0d494128","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-4480ea67a302","writes":[],"patches":[],"version":1,"approved":true,"missionId":"4480ea67-a302-4abd-bd13-69c0573fe8e5","objective":"Repair the KNOCKLAUNCH control plane completion machinery so synthesis-ready missions synchronously persist and dispatch exact PAUL-generated mutation intent instead of parking, and deterministic TypeScript/JSX Gate failures are never classified as transient infrastructure.","repository":"noel/KnockLaunchOS","autoProgress":true,"ownerApproved":true,"releaseIntent":null,"sourceTargets":["workers/cc-execution/src/index-mission-control.js","workers/cc-execution/src/index-release-fast-lane.js"],"anchored_edits":[{"path":"workers/cc-execution/src/index-mission-control.js","edits":[{"new_content":"    const exactMutationKnown = explicitMutationPaths(body).length > 0;\n    if (!exactMutationKnown && continuationMissionId) {\n      const persistedForSynthesis = await readMission(env, continuationMissionId, false);\n      if (persistedForSynthesis?.ok && persistedForSynthesis.data?.terminal !== true) {\n        const synthesizedMission = await synthesizeMissingRepositoryMutationIntent(\n          request,\n          env,\n          ctx,\n          persistedForSynthesis.data,\n        );\n        const synthesizedContext = synthesizedMission?.context && typeof synthesizedMission.context === \"object\"\n          ? synthesizedMission.context\n          : {};\n        const synthesizedPrNumber = authoritativeMissionPrNumber(synthesizedMission || {});\n        const mutationIntentState = String(synthesizedContext.repositoryMutationIntentState || \"\").toLowerCase();\n        if (\n          (Number.isInteger(synthesizedPrNumber) && synthesizedPrNumber > 0)\n          || [\"waiting\", \"dispatched\", \"retryable\"].includes(mutationIntentState)\n        ) {\n          return json({\n            ok: true,\n            status: Number.isInteger(synthesizedPrNumber) && synthesizedPrNumber > 0\n              ? \"implementation_continuing\"\n              : \"implementation_dispatched\",\n            proofGate: Number.isInteger(synthesizedPrNumber) && synthesizedPrNumber > 0\n              ? \"synchronous_synthesis_pr_continuation_verified\"\n              : \"synchronous_synthesis_mutation_intent_persisted\",\n            missionId: continuationMissionId,\n            prNumber: Number.isInteger(synthesizedPrNumber) && synthesizedPrNumber > 0 ? synthesizedPrNumber : null,\n            branch: synthesizedContext.branch || synthesizedMission?.branch || body.branch || null,\n            terminal: false,\n            ownerActionRequired: false,\n            continuationRequired: true,\n            nextAction: \"Durable mission supervision owns the persisted exact mutation, Gate, merge, release, and proof.\",\n            repairMission: true,\n            destructiveActionsAllowed: false,\n          }, 202);\n        }\n      }\n    }\n    const deterministicEscape = shouldUseAuthoritativeDeterministicPath({\n      helperFailureCount: 1,\n      exactMutationKnown,\n    });\n    return json({","old_content":"    const exactMutationKnown = explicitMutationPaths(body).length > 0;\n    const deterministicEscape = shouldUseAuthoritativeDeterministicPath({\n      helperFailureCount: 1,\n      exactMutationKnown,\n    });\n    return json({"}]},{"path":"workers/cc-execution/src/index-release-fast-lane.js","edits":[{"new_content":"export function gateFailureLooksTransientInfrastructure(value) {\n  const text = sanitizeActionLogText(value);\n  const deterministicSourceFailure = /\\bTS\\d{4}:|SyntaxError|parse error|has no corresponding closing tag|Unexpected token|Declaration or statement expected|Type '.*' is not assignable|Cannot find name|Property '.*' does not exist on type|Module '.*' has no exported member/i.test(text);\n  if (deterministicSourceFailure) return false;\n  const forgejoContext = /git\\.knocklaunch\\.app|forgejo|promisor remote|artifact_download_http_/i.test(text);\n  const forgejoTransport = /requested URL returned error: 50[234]|http[_ :]?50[234]|could not fetch [^\\n]*promisor remote|timed out|timeout|connection reset|connection refused|tls handshake timeout|fetch failed|network is unreachable/i.test(text);\n  const heavyRunnerJail = /\\bjail\\b[^\\n]{0,160}\\b(?:timed out|timeout|deadline exceeded|context deadline exceeded)\\b|\\b(?:runner|container)\\b[^\\n]{0,160}\\b(?:startup|start|create)\\b[^\\n]{0,160}\\b(?:timed out|timeout|deadline exceeded|context deadline exceeded)\\b|\\bfailed to (?:create|start)\\b[^\\n]{0,160}\\bcontainer\\b[^\\n]{0,160}\\b(?:timed out|timeout|deadline exceeded|context deadline exceeded)\\b/i.test(text);\n  return (forgejoContext && forgejoTransport) || heavyRunnerJail;\n}","old_content":"export function gateFailureLooksTransientInfrastructure(value) {\n  const text = sanitizeActionLogText(value);\n  const forgejoContext = /git\\.knocklaunch\\.app|forgejo|promisor remote|artifact_download_http_/i.test(text);\n  const forgejoTransport = /requested URL returned error: 50[234]|http[_ :]?50[234]|could not fetch [^\\n]*promisor remote|timed out|timeout|connection reset|connection refused|tls handshake timeout|fetch failed|network is unreachable/i.test(text);\n  const heavyRunnerJail = /\\bjail\\b[^\\n]{0,160}\\b(?:timed out|timeout|deadline exceeded|context deadline exceeded)\\b|\\b(?:runner|container)\\b[^\\n]{0,160}\\b(?:startup|start|create)\\b[^\\n]{0,160}\\b(?:timed out|timeout|deadline exceeded|context deadline exceeded)\\b|\\bfailed to (?:create|start)\\b[^\\n]{0,160}\\bcontainer\\b[^\\n]{0,160}\\b(?:timed out|timeout|deadline exceeded|context deadline exceeded)\\b/i.test(text);\n  return (forgejoContext && forgejoTransport) || heavyRunnerJail;\n}"}]}],"implementation":{"files":[],"writes":[]},"requestContract":{"intent":{"rawUtterance":"Repair the KNOCKLAUNCH control plane completion machinery so synthesis-ready missions synchronously persist and dispatch exact PAUL-generated mutation intent instead of parking, and deterministic TypeScript/JSX Gate failures are never classified as transient infrastructure.","canonicalIntent":"Repair the KNOCKLAUNCH control plane completion machinery so synthesis-ready missions synchronously persist and dispatch exact PAUL-generated mutation intent instead of parking, and deterministic TypeScript/JSX Gate failures are never classified as transient infrastructure.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","outcomes":[{"id":"outcome-synthesis","statement":"Synthesis-ready durable missions with exact authoritative source targets synchronously invoke the existing PAUL synthesis path and persist mutation intent instead of returning to an unowned waiting state.","proofConditionIds":["proof-production"]},{"id":"outcome-gate","statement":"Deterministic TypeScript/JSX source failures are classified as code validation failures and never as transient infrastructure.","proofConditionIds":["proof-production"]}],"objective":"Repair the KNOCKLAUNCH control plane completion machinery so synthesis-ready missions synchronously persist and dispatch exact PAUL-generated mutation intent instead of parking, and deterministic TypeScript/JSX Gate failures are never classified as transient infrastructure.","constraints":[{"id":"control-plane-authority","statement":"This is an explicitly owner-authorized KNOCKLAUNCH control plane / cc-execution maintenance repair. Preserve the existing canonical mission and merge-queue machinery and do not create a second orchestrator.","proofConditionIds":["proof-production"]},{"id":"safety","statement":"Protected main, canonical Gate, squash merge, exact-head verification, deterministic failure blocking, and affected-target release invariants remain enforced.","proofConditionIds":["proof-production"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"runtime","claim":"The repaired cc-execution runtime is live and current control-plane execution no longer parks synthesis-ready work or misclassifies deterministic syntax/type failures as transient.","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-mission-control.js","workers/cc-execution/src/index-release-fast-lane.js"],"requestContract":{"intent":{"rawUtterance":"Repair the KNOCKLAUNCH control plane completion machinery so synthesis-ready missions synchronously persist and dispatch exact PAUL-generated mutation intent instead of parking, and deterministic TypeScript/JSX Gate failures are never classified as transient infrastructure.","canonicalIntent":"Repair the KNOCKLAUNCH control plane completion machinery so synthesis-ready missions synchronously persist and dispatch exact PAUL-generated mutation intent instead of parking, and deterministic TypeScript/JSX Gate failures are never classified as transient infrastructure.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","outcomes":[{"id":"outcome-synthesis","statement":"Synthesis-ready durable missions with exact authoritative source targets synchronously invoke the existing PAUL synthesis path and persist mutation intent instead of returning to an unowned waiting state.","proofConditionIds":["proof-production"]},{"id":"outcome-gate","statement":"Deterministic TypeScript/JSX source failures are classified as code validation failures and never as transient infrastructure.","proofConditionIds":["proof-production"]}],"objective":"Repair the KNOCKLAUNCH control plane completion machinery so synthesis-ready missions synchronously persist and dispatch exact PAUL-generated mutation intent instead of parking, and deterministic TypeScript/JSX Gate failures are never classified as transient infrastructure.","constraints":[{"id":"control-plane-authority","statement":"This is an explicitly owner-authorized KNOCKLAUNCH control plane / cc-execution maintenance repair. Preserve the existing canonical mission and merge-queue machinery and do not create a second orchestrator.","proofConditionIds":["proof-production"]},{"id":"safety","statement":"Protected main, canonical Gate, squash merge, exact-head verification, deterministic failure blocking, and affected-target release invariants remain enforced.","proofConditionIds":["proof-production"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"runtime","claim":"The repaired cc-execution runtime is live and current control-plane execution no longer parks synthesis-ready work or misclassifies deterministic syntax/type failures as transient.","required":true,"requiredReleaseTargets":["ccExecution"]}]},"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":["workers/cc-execution/src/index-mission-control.js","workers/cc-execution/src/index-release-fast-lane.js"],"controlPlaneMaintenanceReason":"Owner explicitly authorized the once-and-for-all completion machinery repair."},"proofRequirements":null,"controlPlaneUnfreeze":true,"durableMutationResume":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":["workers/cc-execution/src/index-mission-control.js","workers/cc-execution/src/index-release-fast-lane.js"],"controlPlaneMaintenanceReason":"Owner explicitly authorized the once-and-for-all completion machinery repair."},"recovery":false,"fingerprint":"8567842cb4aee47c5ac22c5615270aec9d5c56e0867ff37660a16c084aef242f","replayCount":0,"serializedBytes":11688},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-04T15:35:15.890611+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:4480ea67-a302-4abd-bd13-69c0573fe8e5:repository-mutation-intent:8567842cb4aee47c5ac22c5615270aec9d5c56e0867ff37660a16c084aef242f:0","mission_step_id":"a7e4a114-44c6-4e54-920d-b0a3da248967","command_center_event_id":"4480ea67-a302-4abd-bd13-69c0573fe8e5"},{"id":"129abd8b-2719-4c70-a062-be97b2f64828","source":"cc-execution","status":"release_reconciliation_pending","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-6a964d4e340a","reason":null,"status":"release_reconciliation_pending","metrics":{"receiptBytes":20181,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":0,"executorlessWaitMs":9499,"firstUsefulResultAt":"2026-09-30T18:42:53.841Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.21-paul-present-tense-continuation","prNumber":4257,"terminal":false,"missionId":"6a964d4e-340a-488a-aa84-58b0a47a3fab","operation":"execute_mission","proofGate":"canonical_release_reconciliation_pending","sourceSha":"4b998244e15b439fb942afc1c12e6df3ed165911","timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":7111,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":578,"approvedPlanMs":3091,"missionSetupMs":420,"providerAuthMs":0,"shipAndProveMs":2756,"ledgerPrepareMs":318,"ledgerReconcileMs":0,"lineageReconcileMs":102,"resolvePreflightMs":420,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":318,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"reconcile_release","receiptRef":{"mode":"full","missionId":"6a964d4e-340a-488a-aa84-58b0a47a3fab"},"performance":null,"deploymentId":"forgejo-main-4b998244e15b","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":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":3012,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-30T18:43:39.119338+00:00","proof_gate":"canonical_release_reconciliation_pending","source_sha":"4b998244e15b439fb942afc1c12e6df3ed165911","external_id":"forgejo-main-4b998244e15b","receipt_type":"execute_mission","idempotency_key":"mission:6a964d4e-340a-488a-aa84-58b0a47a3fab:execute_mission:canonical_release_reconciliation_pending:current-generation","mission_step_id":"6b1e3cb0-b41c-4c03-b83e-681e5f39e7c1","command_center_event_id":"6a964d4e-340a-488a-aa84-58b0a47a3fab"},{"id":"129df9b6-caad-4bae-8ae0-5931ec2a7935","source":"cc-execution","status":"source_resolution_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-2eed1cf12ac2","reason":null,"status":"source_resolution_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.127-forgejo-capacity-admission","prNumber":null,"terminal":false,"missionId":"2eed1cf1-2ac2-48a5-aed0-7d25e665d74a","operation":"execute_mission","proofGate":"repair_mission_source_resolution_required","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":403,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":1095,"providerAuthMs":0,"ledgerPrepareMs":1095,"ledgerReconcileMs":309,"lineageReconcileMs":0,"resolvePreflightMs":1095,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":1404,"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":"2eed1cf1-2ac2-48a5-aed0-7d25e665d74a"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":2689,"likelyAffectedFiles":[],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-13T17:08:24.819261+00:00","proof_gate":"repair_mission_source_resolution_required","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:2eed1cf1-2ac2-48a5-aed0-7d25e665d74a:execute_mission:repair_mission_source_resolution_required:current-generation","mission_step_id":"e5a08462-564d-490a-937a-f794a1a306bd","command_center_event_id":"2eed1cf1-2ac2-48a5-aed0-7d25e665d74a"},{"id":"129fa797-ea14-4057-9080-d6443383dd95","source":"cc-execution","status":"recorded","payload":{"objective":"Post-merge corrective generation after PR #1453. Finish Redfish Roofing + Windows + Exteriors prospecting: generalize remaining Redfish-only Homeowners CRM copy; make frontend lead queue and authoritative claim-lead backend stop globally excluding Redfish leads solely because a roof is new while preserving roof-age filtering for other roofing tenants; suppress advanced stages including contract/authorization/contingency signed, sold/closed-won, production, completed, invoiced, and paid from prospecting/claiming; preserve DNC/address/tenant/cooldown/atomic claim rules; restore the unproven new-roofs-queue surface to the honest specialized label Recent Roof Permits while Property Opportunities remains the broad multi-service permit/property intelligence surface. Keep Roof Measurement/Estimate roof-only. One corrective branch/PR, canonical gate, deploy frontend and claim-lead Edge Function, production proof. No visual witness.","tenantRef":"Redfish","receivedAt":"2026-09-02T17:48:18.876Z","fingerprint":"3ea588762ea1ccf10fe207cdc97078dfba2ca1e52bff6c825db93264bc42179d","workstreamRef":"redfish","conversationId":null,"canonicalBranch":"ai/objective-first-repair-mtkd8ssz","requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Post-merge corrective generation after PR #1453. Finish Redfish Roofing + Windows + Exteriors prospecting: generalize remaining Redfish-only Homeowners CRM copy; make frontend lead queue and authoritative claim-lead backend stop globally excluding Redfish leads solely because a roof is new while preserving roof-age filtering for other roofing tenants; suppress advanced stages including contract/authorization/contingency signed, sold/closed-won, production, completed, invoiced, and paid from prospecting/claiming; preserve DNC/address/tenant/cooldown/atomic claim rules; restore the unproven new-roofs-queue surface to the honest specialized label Recent Roof Permits while Property Opportunities remains the broad multi-service permit/property intelligence surface. Keep Roof Measurement/Estimate roof-only. One corrective branch/PR, canonical gate, deploy frontend and claim-lead Edge Function, production proof. No visual witness.","wordingChanged":false,"canonicalIntent":"Post-merge corrective generation after PR #1453. Finish Redfish Roofing + Windows + Exteriors prospecting: generalize remaining Redfish-only Homeowners CRM copy; make frontend lead queue and authoritative claim-lead backend stop globally excluding Redfish leads solely because a roof is new while preserving roof-age filtering for other roofing tenants; suppress advanced stages including contract/authorization/contingency signed, sold/closed-won, production, completed, invoiced, and paid from prospecting/claiming; preserve DNC/address/tenant/cooldown/atomic claim rules; restore the unproven new-roofs-queue surface to the honest specialized label Recent Roof Permits while Property Opportunities remains the broad multi-service permit/property intelligence surface. Keep Roof Measurement/Estimate roof-only. One corrective branch/PR, canonical gate, deploy frontend and claim-lead Edge Function, production proof. No visual witness.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"redfish-multiservice","statement":"Redfish shared CRM and lead/prospecting flows support Roofing, Windows, and Exteriors without roof-only contamination.","proofConditionIds":["production-release"]},{"id":"prospecting-suppression","statement":"Customers at signed/advanced/production/completed financial stages are suppressed from lead generation and claim queues.","proofConditionIds":["production-release"]},{"id":"honest-permit-surfaces","statement":"Property Opportunities remains broad multi-service permit/property intelligence, while the separate unproven roof-permit queue is honestly labeled Recent Roof Permits.","proofConditionIds":["production-release"]}],"objective":"Post-merge corrective generation after PR #1453. Finish Redfish Roofing + Windows + Exteriors prospecting: generalize remaining Redfish-only Homeowners CRM copy; make frontend lead queue and authoritative claim-lead backend stop globally excluding Redfish leads solely because a roof is new while preserving roof-age filtering for other roofing tenants; suppress advanced stages including contract/authorization/contingency signed, sold/closed-won, production, completed, invoiced, and paid from prospecting/claiming; preserve DNC/address/tenant/cooldown/atomic claim rules; restore the unproven new-roofs-queue surface to the honest specialized label Recent Roof Permits while Property Opportunities remains the broad multi-service permit/property intelligence surface. Keep Roof Measurement/Estimate roof-only. One corrective branch/PR, canonical gate, deploy frontend and claim-lead Edge Function, production proof. No visual witness.","constraints":[{"id":"preserve-other-tenants","statement":"Preserve existing roof-age behavior for non-Redfish roofing tenants and do not change unrelated tenants.","proofConditionIds":["production-release"]},{"id":"preserve-roof-tools","statement":"Roof Measurement and Roof Estimate remain explicitly roof-only.","proofConditionIds":["production-release"]},{"id":"no-visual","statement":"Do not run Visual Witness.","proofConditionIds":["production-release"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"production-release","kind":"runtime","claim":"The corrective frontend and claim-lead backend changes are merged through the canonical gate and deployed to production with release receipts.","route":"/redfish-roofing/homeowners","roleRef":null,"userRef":null,"required":true,"expectedText":"Homeowners","targetedActions":[],"allowedReleaseTargets":["frontend"],"requiredReleaseTargets":["frontend"]}],"validationErrors":[]},"requestedBranch":null,"conversationContext":null,"requestContractHash":"3cfce9f1da79a40cc0275f69de81482fe472c3a3e5a40f48b86389c0ff3bda83","requestContractRevision":2},"tenant_id":"de8369b6-a78f-40bb-ae1f-28ffca62bc7e","created_at":"2026-09-02T17:48:19.618699+00:00","proof_gate":"tenant_workstream_contribution_recorded","source_sha":null,"external_id":null,"receipt_type":"tenant_workstream_contribution","idempotency_key":"mission:b0a810c8-e937-465b-984b-36f324d75179:tenant-workstream-contribution:3ea588762ea1ccf10fe207cdc97078dfba2ca1e52bff6c825db93264bc42179d","mission_step_id":"a7e161c9-67d4-4446-9448-b4942b7a3033","command_center_event_id":"b0a810c8-e937-465b-984b-36f324d75179"},{"id":"12a0e685-aec3-42c0-9ee0-4cfb3013d8ba","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"5418d4dc01c8ea761ca0122a46dcd4f6ba5510e0","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-1","satisfied":true,"statement":"P0 PAUL primary-interface replacement repair. Continue the owner's existing objective to make PAUL the primary daily interface for building KNOCKLAUNCH; do not merely add documentation or capability claims. Starting from current protected main, inspect the actual PAUL/KNOCKLAUNCH Sidekick owner-facing chat surface and its backend contracts, then ship the smallest coherent end-to-end tranche that closes the biggest proven gaps from the live audit: (1) the owner composer must accept and visibly queue image, video, document, archive, and general file attachments; route uploads into KNOCKLAUNCH-owned storage with durable metadata and make supported media/content available to PAUL inference/interpretation without inventing success for unsupported formats; (2) expose durable active-job controls in the PAUL UI so Noel can see current mission state and use status/stop/resume/continue without knowing mission IDs; (3) expose searchable recent conversation/session/mission receipt history sufficient to recover prior work after refresh/session loss; (4) eliminate generic capability self-claims unless backed by current live capability proof; and (5) keep ordinary owner interactions on the fastes","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":"6af9c6a545ee2d174594387370543de0838a084e09e32b20ce43747b6d6eb4ba","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","ccExecution":"success","supabaseEdge":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["ccExecution","frontend","supabaseEdge"],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"migrationReleaseVerified":null,"releaseRequestContractHash":"6af9c6a545ee2d174594387370543de0838a084e09e32b20ce43747b6d6eb4ba"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["ccExecution","frontend","supabaseEdge"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-01T14:41:17.48353+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"5418d4dc01c8ea761ca0122a46dcd4f6ba5510e0","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:d07077c4-210f-4eee-9a27-d085dc909258:request-contract:6af9c6a545ee2d174594387370543de0838a084e09e32b20ce43747b6d6eb4ba:5418d4dc01c8ea761ca0122a46dcd4f6ba5510e0:verified:","mission_step_id":"ec26aefa-3e6f-4e57-8d3c-1f8876f406da","command_center_event_id":"d07077c4-210f-4eee-9a27-d085dc909258"},{"id":"12a3f3bb-717e-49e4-91a9-596d6278c87b","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"bd95b6a59d3dabaf780e81c684f57f90c0bd295f","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"bd95b6a59d3dabaf780e81c684f57f90c0bd295f","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false},"releaseTargetStates":{},"requestContractHash":"cece3e2dce7f20abfeffc4f366f01f395d2fc8f1330084adfc52a901c39aef6c","forgejoWorkflowProof":{"runId":7712,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running"},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-13T02:33:27.396593+00:00","proof_gate":"canonical_release_pending","source_sha":"bd95b6a59d3dabaf780e81c684f57f90c0bd295f","external_id":null,"receipt_type":"canonical_release_status","idempotency_key":"mission:e775c1d5-21da-4335-8297-92941ee96523:forgejo-release-status:bd95b6a59d3dabaf780e81c684f57f90c0bd295f:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"733fd3d3-4cfa-4ba0-b3ff-a909090a5f2f","command_center_event_id":"e775c1d5-21da-4335-8297-92941ee96523"},{"id":"12a723fe-4a0d-4ca5-b92a-a1e7f6211193","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/big-papi-invoices-customer-portal-v2-20260824","reason":"retryable_provider_transport:GET:The operation was aborted due to timeout","status":"retryable","metrics":{"receiptBytes":2859,"releaseCount":0,"toolCallCount":2,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.50.18-existing-pr-adoption","prNumber":null,"terminal":false,"missionId":"403460eb-cc67-4702-bec4-e4f3fe32f22f","operation":"execute_mission","proofGate":"repair_mission_execution_retryable","sourceSha":null,"timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"403460eb-cc67-4702-bec4-e4f3fe32f22f"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5058,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"766cfaa7-ac42-46c8-bbef-69d13268a29d","created_at":"2026-08-24T16:36:19.093512+00:00","proof_gate":"repair_mission_execution_retryable","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:403460eb-cc67-4702-bec4-e4f3fe32f22f:execute_mission:repair_mission_execution_retryable","mission_step_id":"b3a2e512-ab5c-4c72-97a1-afb5cb8c892a","command_center_event_id":"403460eb-cc67-4702-bec4-e4f3fe32f22f"},{"id":"12a80239-7de0-4b04-85fc-581c2627284b","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-8aba0987a807","prNumber":3098,"nextAction":null,"mergeCommitSha":"407512816b3032e8d1aa9bce34ffb3ff34817be9","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-18T13:16:08.715557+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"407512816b3032e8d1aa9bce34ffb3ff34817be9","external_id":"3098","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:8aba0987-a807-4fc9-9daf-1a11b9a91bbb:merged-pr:3098:407512816b3032e8d1aa9bce34ffb3ff34817be9","mission_step_id":"65de4a8f-9788-4040-a988-31dec8763a30","command_center_event_id":"8aba0987-a807-4fc9-9daf-1a11b9a91bbb"},{"id":"12a987bb-9989-44af-b045-4bd97590cb46","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"6d65a15a32bec593f3a9344f85719d8575ba4a33","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"synthetic-guard","satisfied":true,"statement":"Every canonical Gate runs a cheap synthetic stale-main evidence-reuse invariant before expensive QA.","proofConditionIds":["prod"]},{"id":"fingerprint-proof","satisfied":true,"statement":"The synthetic guard proves unrelated control-plane changes preserve frontend QA fingerprint while relevant frontend/dependency/build changes invalidate it.","proofConditionIds":["prod"]},{"id":"diagnostics","satisfied":true,"statement":"Gate emits machine-readable evidence reuse/miss reason.","proofConditionIds":["prod"]},{"id":"merge-safety","satisfied":true,"statement":"Stale green never merges directly; current-main ancestry remains mandatory.","proofConditionIds":["prod"]}],"satisfied":true,"constraints":[{"id":"hard-safety","satisfied":true,"statement":"The prevention guard is hard-safety and cannot be skipped by adaptive QA evidence reuse.","proofConditionIds":["prod"]},{"id":"single-gate","satisfied":true,"statement":"No parallel validator lane; use the canonical Gate only.","proofConditionIds":["prod"]},{"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":["prod"]},{"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":["prod"]}],"contractHash":"5a10568498ddbff84664dcfe4f7cba60023befcc87a2ec835b43b5612e346347","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"prod","kind":"runtime","evidence":{"reason":null,"satisfied":true,"releaseState":"verified","missingTargets":[],"disallowedTargets":[],"migrationRequired":false,"releaseTargetStates":{"ccExecution":"success"},"unsuccessfulTargets":[],"activeReleaseTargets":["ccExecution"],"allowedReleaseTargets":["ccExecution"],"requiredReleaseTargets":[],"migrationReleaseVerified":null,"releaseRequestContractHash":"5a10568498ddbff84664dcfe4f7cba60023befcc87a2ec835b43b5612e346347"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["ccExecution"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-24T05:07:32.61407+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"6d65a15a32bec593f3a9344f85719d8575ba4a33","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:d256ff78-0286-4bf7-844b-3fe3fd0153a2:request-contract:5a10568498ddbff84664dcfe4f7cba60023befcc87a2ec835b43b5612e346347:6d65a15a32bec593f3a9344f85719d8575ba4a33:verified:","mission_step_id":"a0d0f6e2-44e2-45b4-ac01-bc4fe959aab6","command_center_event_id":"d256ff78-0286-4bf7-844b-3fe3fd0153a2"},{"id":"12a9b3b7-3fd9-46e1-9896-0fd098e80813","source":"cc-execution","status":"waiting","payload":{"sourceTargets":["src/components/experience-editor/ExperienceEditorCanvasBridge.tsx","src/__tests__/contracts/experience-editor-exact-leaf-selection.contract.test.ts"],"continuationObjective":null},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T01:35:05.365413+00:00","proof_gate":"mission_continuation_scope_persisted","source_sha":null,"external_id":null,"receipt_type":"mission_continuation_scope_updated","idempotency_key":"mission:05b8b435-05c3-4fe9-9d05-2037ee1ded07:mission_continuation_scope_updated:mission_continuation_scope_persisted:waiting","mission_step_id":"a7f319db-43ff-4d4f-b7f0-9684902bf935","command_center_event_id":"05b8b435-05c3-4fe9-9d05-2037ee1ded07"},{"id":"12a9fb74-3e60-4c4e-9b5f-fecc3c38e558","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/build-demo-premium-logo-motion-20260830","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":5554,"releaseCount":0,"toolCallCount":2,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.56.4-owner-mutation-continuation","prNumber":1133,"terminal":false,"missionId":"60fb70b3-1f1b-4f4f-89b8-420fd52d5513","operation":"execute_mission","proofGate":"canonical_release_dispatched","sourceSha":"ac6d24b77c6491325e50b598ba68b17eb17b3710","timingsMs":{"handlerMs":17066,"prReadinessMs":3098,"approvedPlanMs":5419,"missionSetupMs":2216,"shipAndProveMs":8309},"nextAction":null,"receiptRef":{"mode":"full","missionId":"60fb70b3-1f1b-4f4f-89b8-420fd52d5513"},"performance":null,"deploymentId":"forgejo-main-ac6d24b77c64","workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":8265,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-30T19:02:12.493761+00:00","proof_gate":"canonical_release_dispatched","source_sha":"ac6d24b77c6491325e50b598ba68b17eb17b3710","external_id":"forgejo-main-ac6d24b77c64","receipt_type":"execute_mission","idempotency_key":"mission:60fb70b3-1f1b-4f4f-89b8-420fd52d5513:execute_mission:canonical_release_dispatched:current-generation","mission_step_id":"cd1f6d8d-f247-437c-8fd7-787dc6f5b2c3","command_center_event_id":"60fb70b3-1f1b-4f4f-89b8-420fd52d5513"},{"id":"12aab2cb-49af-421b-b616-111474e992b7","source":"cc-execution","status":"waiting","payload":{"kind":"heartbeat","message":"Still active in release.","nextAction":{"lane":"cc-execution","action":"reconcile_pull_request","reason":"pull_request_exists_without_merged_source","automationAllowed":true,"ownerActionRequired":false},"silenceBudgetMs":15000,"semanticCheckpointSignature":"{\"stateMachineVersion\":1,\"phase\":\"release\",\"ownerFacingState\":null,\"latest\":{\"kind\":\"receipt\",\"key\":\"owner_progress_heartbeat\",\"status\":\"waiting\",\"proofGate\":\"owner_progress_heartbeat\"},\"activeStep\":{\"key\":\"preflight\",\"status\":\"ready\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"implementation\",\"status\":\"pending\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"reconcile_pull_request\",\"lane\":\"cc-execution\",\"reason\":\"pull_request_exists_without_merged_source\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_pull_request\",\"recoveryOwner\":\"cc-execution\"},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-pcg-mobile-vault-controls\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"release\",\"deadlineAt\":\"2026-10-06T05:55:56.623616+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":null,\"prNumber\":5147,\"sourceSha\":null,\"deploymentId\":null}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T05:49:19.148019+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:b78054b5-ff74-493d-9d49-b3305dbc800c:owner-progress-heartbeat:119417717","mission_step_id":"986497ca-c7bb-469a-819a-206da30cca37","command_center_event_id":"b78054b5-ff74-493d-9d49-b3305dbc800c"},{"id":"12ab76d3-ec92-49fa-986a-dc5421d0aeb4","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-65b5f19c42ce","reason":"retryable_provider_transport:forgejo_provider_read_timeout","status":"retryable","metrics":{"receiptBytes":19948,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":0,"executorlessWaitMs":43420,"firstUsefulResultAt":"2026-10-05T17:08:33.074Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.99-positive-mutation-admission","prNumber":4998,"terminal":false,"missionId":"65b5f19c-42ce-43fa-899c-583ee23f6a32","operation":"execute_mission","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":6997,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":2247,"approvedPlanMs":607,"missionSetupMs":310,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":310,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":310,"repositoryMutationMs":4131,"repositoryProviderMs":4131,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2651,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":310,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1480},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"65b5f19c-42ce-43fa-899c-583ee23f6a32"},"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":1535,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-05T17:09:24.838696+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"4998","receipt_type":"execute_mission","idempotency_key":"mission:65b5f19c-42ce-43fa-899c-583ee23f6a32:execute_mission:repair_mission_pr_ready_retryable:current-generation","mission_step_id":"eceba6d6-7925-47e0-ab2f-3dfc338275b6","command_center_event_id":"65b5f19c-42ce-43fa-899c-583ee23f6a32"},{"id":"12ae7e05-fc05-4586-95fb-c8cc3c2f175e","source":"cc-execution","status":"waiting","payload":{"kind":"heartbeat","message":"Still active in implementation.","nextAction":{"lane":"cc-execution","action":"continue_implementation","reason":"synthesis_required","automationAllowed":true,"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\":\"synthesis_required\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"continue_implementation\",\"recoveryOwner\":\"cc-execution\"},\"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\":\"implementation\",\"deadlineAt\":\"2026-08-07T00:19:20.459453+00:00\",\"recoveryAction\":\"continue_implementation\"},\"blocker\":null,\"terminal\":false,\"branch\":\"main\",\"prNumber\":null,\"sourceSha\":null,\"deploymentId\":null}"},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-10-04T14:03:21.049728+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:dfa88ad0-6a7d-41b6-af49-47d27da89dc2:owner-progress-heartbeat:119408173","mission_step_id":"1b8f7457-d44d-4ab4-a95a-f2a2aa6e053a","command_center_event_id":"dfa88ad0-6a7d-41b6-af49-47d27da89dc2"},{"id":"12af477e-8558-4a52-a239-9b22e326fc48","source":"cc-execution","status":"waiting","payload":{"sourceTargets":["src/pages/card-grading/pcgLifecycleContract.ts","src/__tests__/contracts/pcg-lifecycle.contract.test.ts"],"continuationObjective":"MUTATE CURRENT MAIN. Add a small PCG lifecycle contract module and contract test only. Create src/pages/card-grading/pcgLifecycleContract.ts exporting immutable rules: stages submitted, received, intake_imaging, grading, slabbing, completed, fulfillment; distinct public customer and authenticated operator entry surfaces sharing canonical submission/card identity; submission_front/submission_back reference-only; intake_front/intake_back authoritative pre-grading mapped to front_image_url/back_image_url; slab_front/slab_back authoritative post-grading mapped to slab_image_url/slab_back_image_url; physical receipt distinct from submission; slabbing stays on same card id; WMP canonical tracking; marketplace prefers slab imagery; customer reference imagery must never overwrite authoritative PCG imagery. Create src/__tests__/contracts/pcg-lifecycle.contract.test.ts asserting those invariants. No runtime behavior changes in this PR."},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-05T18:03:01.227082+00:00","proof_gate":"mission_continuation_scope_persisted","source_sha":null,"external_id":null,"receipt_type":"mission_continuation_scope_updated","idempotency_key":"mission:ad9b6c0c-2983-4058-afb1-415a7a5a39fe:mission_continuation_scope_updated:mission_continuation_scope_persisted:waiting","mission_step_id":"fa5133b8-465e-494c-a848-a39eee617d2b","command_center_event_id":"ad9b6c0c-2983-4058-afb1-415a7a5a39fe"},{"id":"12b2f065-6034-41b3-b0d0-5ec6aa3a8a12","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","frontend-cloudflare/live":"success"},"mainSha":"9d37b9d41fcec27bf7283707997fabaa4952b0ac","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"9d37b9d41fcec27bf7283707997fabaa4952b0ac","releaseState":"verified","sourceInMain":true,"compareStatus":"identical","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/637","runId":637,"status":"success","conclusion":null,"failedJobs":[]},"onrunnerRuntimeProof":null,"ccExecutionRuntimeProof":null},"tenant_id":"766cfaa7-ac42-46c8-bbef-69d13268a29d","created_at":"2026-08-16T01:41:07.205387+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"9d37b9d41fcec27bf7283707997fabaa4952b0ac","external_id":"forgejo-main-9d37b9d41fce","receipt_type":"canonical_release_status","idempotency_key":"mission:7338d65f-10df-475f-8c8a-1b4cacee0f0b:forgejo-release-status:9d37b9d41fcec27bf7283707997fabaa4952b0ac:verified:forgejo-main/source=success|forgejo-release/workflow=success|frontend-cloudflare/live=success","mission_step_id":"2ac656ff-95f2-454e-8c8f-5c7a8b31010e","command_center_event_id":"7338d65f-10df-475f-8c8a-1b4cacee0f0b"},{"id":"12b343b2-2c6d-4cdb-8cb2-cbeabec7d03d","source":"cc-execution","status":"authorized","payload":{"paths":["workers/cc-execution/test/release-orchestration-invariants.test.js"],"reason":"Remove the obsolete 700m assertion from the dependency-cache invariant after run 5264 proved it is the sole deterministic Gate failure and the new high-capacity contract test passes.","baseSha":"dbefd873ce2dc50a1f4ca365ffe22a3a64ede185","issuedAt":1788542527534,"expiresAt":1788542707534,"missionId":"ab1942e9-44bc-4eab-93e2-275230350020","authorizationId":"30df2f81-5313-4379-8386-6215ce24057c","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-04T17:22:08.027372+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"dbefd873ce2dc50a1f4ca365ffe22a3a64ede185","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:30df2f81-5313-4379-8386-6215ce24057c","mission_step_id":"a17b2f24-8eed-4c01-983a-3a51ca917fdd","command_center_event_id":"ab1942e9-44bc-4eab-93e2-275230350020"},{"id":"12b3637a-8eaa-44af-8daf-489f75ba5fb5","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","cc-execution/runtime-proof":"pending"},"mainSha":"7b1d78c0749b4e60154550ef6e085001d6c6b390","missing":[],"pending":["forgejo-release/workflow","cc-execution/runtime-proof"],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof"],"sourceSha":"7b1d78c0749b4e60154550ef6e085001d6c6b390","releaseState":"pending","sourceInMain":true,"compareStatus":"identical","forgejoWorkflowProof":{"error":"workflow_run_id_missing","runId":null},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"630deccaeda5b9999e2701cbbad49ea7965eeac7","deploymentId":"forgejo-main-630deccaeda5b9999e2701cbbad49ea7965eeac7","compareStatus":null,"identitySource":"local_build_metadata","runtimeVersion":"1.50.16-onrunner-release-ownership","containsSourceSha":false},"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-24T03:06:38.949431+00:00","proof_gate":"canonical_release_pending","source_sha":"7b1d78c0749b4e60154550ef6e085001d6c6b390","external_id":null,"receipt_type":"canonical_release_status","idempotency_key":"mission:974c9b1d-47db-471e-b0ae-a85d627ff181:forgejo-release-status:7b1d78c0749b4e60154550ef6e085001d6c6b390:pending:forgejo-main/source=success|forgejo-release/workflow=pending|cc-execution/runtime-proof=pending","mission_step_id":"62bb92f5-bf16-47ca-98c6-e2a61a48ea25","command_center_event_id":"974c9b1d-47db-471e-b0ae-a85d627ff181"},{"id":"12b5d23a-b6db-4d64-aca5-b1532b9d4619","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/big-papi-ads-analytics-20260824","reason":"The operation was aborted due to timeout","status":"retryable","metrics":{"receiptBytes":37483,"releaseCount":0,"toolCallCount":33,"repeatedCallCount":25,"ownerInterruptionCount":0},"version":"1.50.35-defer-existing-pr-refresh","prNumber":717,"terminal":false,"missionId":"35defdf3-687a-403b-a77f-7b885dece721","operation":"execute_mission","proofGate":"canonical_release_transport_retryable","sourceSha":null,"timingsMs":null,"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"35defdf3-687a-403b-a77f-7b885dece721"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5091,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"766cfaa7-ac42-46c8-bbef-69d13268a29d","created_at":"2026-08-25T03:49:50.42347+00:00","proof_gate":"canonical_release_transport_retryable","source_sha":null,"external_id":"717","receipt_type":"execute_mission","idempotency_key":"mission:35defdf3-687a-403b-a77f-7b885dece721:execute_mission:canonical_release_transport_retryable","mission_step_id":"1d88b48a-295a-47a2-bd75-7985471aeeee","command_center_event_id":"35defdf3-687a-403b-a77f-7b885dece721"},{"id":"12b732d1-9ac2-4e8b-9af8-873ef2d6bfb7","source":"cc-execution","status":"no_change","payload":{"ok":true,"jobId":null,"phase":"release","branch":null,"reason":null,"status":"no_change","metrics":{"receiptBytes":5771,"releaseCount":1,"toolCallCount":5,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.47.4-pr-native-freshness","prNumber":396,"terminal":false,"missionId":"94ec17cc-e42a-4fa5-87b1-8701c50fcc5f","operation":"execute_mission","proofGate":"repair_mission_prepared","sourceSha":"8d97c059c59ea6b85fafc3d33623af967f2f7ce0","timingsMs":null,"nextAction":"pull_request_required","receiptRef":{"mode":"full","missionId":"94ec17cc-e42a-4fa5-87b1-8701c50fcc5f"},"performance":null,"deploymentId":"forgejo-main-8d97c059c59e","workflowRunId":1351,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5412,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-19T01:41:09.42601+00:00","proof_gate":"repair_mission_prepared","source_sha":"8d97c059c59ea6b85fafc3d33623af967f2f7ce0","external_id":"forgejo-main-8d97c059c59e","receipt_type":"execute_mission","idempotency_key":"mission:94ec17cc-e42a-4fa5-87b1-8701c50fcc5f:execute_mission:repair_mission_prepared","mission_step_id":"1bddc6e4-4c7e-4448-9f42-21bfb7362982","command_center_event_id":"94ec17cc-e42a-4fa5-87b1-8701c50fcc5f"},{"id":"12bd1945-d14b-4a07-b452-d35a92ab7d4c","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-1b15dfb55293","prNumber":3983,"nextAction":null,"mergeCommitSha":"59c0c0bdcbde6943e38c9e195cb9efb8f8599659","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T13:13:26.707496+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"59c0c0bdcbde6943e38c9e195cb9efb8f8599659","external_id":"3983","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:1b15dfb5-5293-48f6-9e55-34f0ed6d82a6:merged-pr:3983:59c0c0bdcbde6943e38c9e195cb9efb8f8599659","mission_step_id":"be9d2e83-15aa-406e-ae4a-c98ab8cfaab3","command_center_event_id":"1b15dfb5-5293-48f6-9e55-34f0ed6d82a6"},{"id":"12be68c0-7316-4452-94a8-04f2fca57e93","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-85e7453730a6","reason":"control_plane_maintenance_authorization_required","status":"blocked","metrics":{"receiptBytes":3986,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":"2026-10-05T16:13:07.497Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.97-boring-release-v1","prNumber":null,"terminal":false,"missionId":"85e74537-30a6-41cd-b4c4-896de88d03ab","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":163,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":163,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":163,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":163,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"85e74537-30a6-41cd-b4c4-896de88d03ab"},"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":1439,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-05T16:13:08.116568+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:85e74537-30a6-41cd-b4c4-896de88d03ab:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"6304ae8e-d962-4ff4-8a19-6f2c0ffde00c","command_center_event_id":"85e74537-30a6-41cd-b4c4-896de88d03ab"},{"id":"12bf98d2-c2a2-4494-8812-f18f505e8228","source":"cc-execution","status":"waiting","payload":{"sourceTargets":[],"continuationObjective":"Continue the existing durable mission using exact structured edits."},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-04T10:05:49.203213+00:00","proof_gate":"mission_continuation_scope_persisted","source_sha":null,"external_id":null,"receipt_type":"mission_continuation_scope_updated","idempotency_key":"mission:278f1da0-9787-4c80-a871-40c442596204:mission_continuation_scope_updated:mission_continuation_scope_persisted:waiting","mission_step_id":"2a98f28a-ec3c-4dac-8bbe-793b0528a0f0","command_center_event_id":"278f1da0-9787-4c80-a871-40c442596204"},{"id":"12c0ec08-1cd4-46ff-b14a-b33a54b2394c","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"objective_received","branch":null,"reason":"pull_request_not_merge_eligible:pr_not_merge_eligible","status":"blocked","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.36.7-explicit-route-proof-intent","prNumber":4715,"terminal":false,"missionId":"08368d0a-9595-487d-89c0-74dadc5417f7","operation":"ship_and_prove","proofGate":"canonical_release_blocked","sourceSha":null,"timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"08368d0a-9595-487d-89c0-74dadc5417f7"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":186,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-12T20:45:30.68963+00:00","proof_gate":"canonical_release_blocked","source_sha":null,"external_id":"4715","receipt_type":"ship_and_prove","idempotency_key":"mission:08368d0a-9595-487d-89c0-74dadc5417f7:ship_and_prove:canonical_release_blocked:no-source:no-run","mission_step_id":"2b2df6eb-e416-459e-b87e-b976e7a35b03","command_center_event_id":"08368d0a-9595-487d-89c0-74dadc5417f7"},{"id":"12c2ff1f-c3bb-4eaa-81ad-ac86e4e694f6","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-bdb936b2e84f","reason":"control_plane_maintenance_authorization_required","status":"blocked","metrics":{"receiptBytes":1950,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":"2026-09-25T13:21:36.653Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.280-witness-lockdown","prNumber":null,"terminal":false,"missionId":"bdb936b2-e84f-409b-98ae-f50b6415629c","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":236,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":236,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":236,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":236,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"bdb936b2-e84f-409b-98ae-f50b6415629c"},"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":1440,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T13:23:14.478069+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:bdb936b2-e84f-409b-98ae-f50b6415629c:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"dd2537a7-d502-4b60-8d2a-ad943e48569d","command_center_event_id":"bdb936b2-e84f-409b-98ae-f50b6415629c"},{"id":"12c3d580-b2c5-4354-bd15-1b4a6a54a98d","source":"cc-execution","status":"release_verification_pending","payload":{"ok":true,"jobId":null,"phase":"release","branch":null,"reason":null,"status":"release_verification_pending","metrics":{"receiptBytes":6670,"releaseCount":0,"toolCallCount":6,"repeatedCallCount":4,"ownerInterruptionCount":0},"version":"1.31.26-direct-route-visual-intent","prNumber":4452,"terminal":false,"missionId":"94518978-e1f3-4027-b02a-0fc6e3eb7df5","operation":"ship_and_prove","proofGate":"ship_and_prove_release_pending","sourceSha":"4b4520f60995ef1e7f78b1df65145351ae21b61b","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"94518978-e1f3-4027-b02a-0fc6e3eb7df5"},"performance":null,"deploymentId":"canonical-release-4b4520f60995","workflowRunId":31316771482,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1505,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-09T13:48:33.474784+00:00","proof_gate":"ship_and_prove_release_pending","source_sha":"4b4520f60995ef1e7f78b1df65145351ae21b61b","external_id":"canonical-release-4b4520f60995","receipt_type":"ship_and_prove","idempotency_key":"mission:94518978-e1f3-4027-b02a-0fc6e3eb7df5:ship_and_prove:ship_and_prove_release_pending:4b4520f60995ef1e7f78b1df65145351ae21b61b:31316771482","mission_step_id":"69275efa-f9ec-4d39-9f09-3a1ae41d1b8e","command_center_event_id":"94518978-e1f3-4027-b02a-0fc6e3eb7df5"},{"id":"12c5b329-bab9-47bd-808e-51e59f8c2d62","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-fa8c194da14f","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.214-mcp-repository-source-resolution","prNumber":null,"terminal":false,"missionId":"fa8c194d-a14f-4d48-9737-620831b1d2d2","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":122,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":299,"providerAuthMs":0,"ledgerPrepareMs":299,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":299,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":299,"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":"fa8c194d-a14f-4d48-9737-620831b1d2d2"},"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":6733,"likelyAffectedFiles":["src/PrivateAppShell.tsx","scripts/visual-witness-hosted-runner/src/frontend-build-entrypoint.mjs","scripts/visual-witness-hosted-runner/src/frontend-build-service.mjs","config/cloudflare-native-frontend-build.json"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T11:37:29.567718+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:fa8c194d-a14f-4d48-9737-620831b1d2d2:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"ce0b4605-33fe-4bf9-8cb0-7bc68ee82012","command_center_event_id":"fa8c194d-a14f-4d48-9737-620831b1d2d2"},{"id":"12c83b66-f870-4bcf-8362-92f5fdb7cf2a","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-b9a032914447","reason":"pull_request_checks_pending","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3443,"terminal":false,"missionId":"b9a03291-4447-449c-b0eb-467f1551c6dd","operation":"automatic_mission_resume","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"prReadinessMs":3108,"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":"b9a03291-4447-449c-b0eb-467f1551c6dd"},"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":1286,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T16:34:19.22382+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"3443","receipt_type":"automatic_mission_resume","idempotency_key":"mission:b9a03291-4447-449c-b0eb-467f1551c6dd:automatic-mission-resume:3443:repair_mission_waiting_for_gate","mission_step_id":"e0811c89-d51c-4036-8e74-0dc079126c42","command_center_event_id":"b9a03291-4447-449c-b0eb-467f1551c6dd"},{"id":"12c8acb1-409b-4125-a13a-2f532fb4f640","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/cloudflare-credential-manager","reason":"anchored_edit_anchor_missing:workers/cc-execution/scripts/cloudflare-credential-repair.mjs","status":"blocked","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.61-known-cleanup-runs-fallback","prNumber":1748,"terminal":false,"missionId":"05014277-8ab7-4cf0-bb07-3a2517a6c2f1","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":2831,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":0,"missionSetupMs":839,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":614,"ledgerReconcileMs":0,"lineageReconcileMs":225,"resolvePreflightMs":839,"repositoryMutationMs":2831,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":614,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"05014277-8ab7-4cf0-bb07-3a2517a6c2f1"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1564,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-04T20:32:05.605091+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":"1748","receipt_type":"execute_mission","idempotency_key":"mission:05014277-8ab7-4cf0-bb07-3a2517a6c2f1:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"3a186a77-a3c5-4dc2-a9fc-2a4f39da5967","command_center_event_id":"05014277-8ab7-4cf0-bb07-3a2517a6c2f1"},{"id":"12ce2b61-a3d1-4dc2-a42e-0431b6a1c98f","source":"cc-execution","status":"source_resolution_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/mcp-auth-hot-path-20260904","reason":null,"status":"source_resolution_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.29-forgejo-pack-proof-refreeze","prNumber":null,"terminal":false,"missionId":"60326891-6f9f-4b99-be07-4183e6ce932e","operation":"execute_mission","proofGate":"repair_mission_source_resolution_required","sourceSha":null,"timingsMs":{"handlerMs":123,"missionSetupMs":760},"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":"60326891-6f9f-4b99-be07-4183e6ce932e"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":4973,"likelyAffectedFiles":[],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-04T05:01:40.15861+00:00","proof_gate":"repair_mission_source_resolution_required","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:60326891-6f9f-4b99-be07-4183e6ce932e:execute_mission:repair_mission_source_resolution_required:current-generation","mission_step_id":"2c127956-245f-4ba5-8e69-9c1de2ea6c02","command_center_event_id":"60326891-6f9f-4b99-be07-4183e6ce932e"},{"id":"12d01077-c30b-42e3-9ccd-3984f5a50559","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","cc-execution/runtime-proof":"success"},"mainSha":"0ad9b6483bf0173bde7ad83b4701310ce72361b6","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof"],"sourceSha":"0ad9b6483bf0173bde7ad83b4701310ce72361b6","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":"773d9d98aada71b133dfd86070617f383768237e19c3789c29f547106a549af1","forgejoWorkflowProof":{"runId":7877,"source":"signed_push_receipt","status":"success","results":{},"conclusion":"success","targetStates":{"ccExecution":"success"},"targetJobCount":7,"observedTargetStates":{"ccExecution":"success"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"0ad9b6483bf0173bde7ad83b4701310ce72361b6","proofGate":"cc_execution_target_aware_runtime_identity_verified","deploymentId":"forgejo-main-0ad9b6483bf0173bde7ad83b4701310ce72361b6","compareStatus":"target_job_success_runtime_verified","workflowRunId":7877,"identitySource":"canonical_release_target_job","runtimeVersion":"1.58.136-historical-cc-backfill-preflight","workflowFailed":false,"containsSourceSha":true},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-13T18:49:29.966713+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"0ad9b6483bf0173bde7ad83b4701310ce72361b6","external_id":"forgejo-main-0ad9b6483bf0","receipt_type":"canonical_release_status","idempotency_key":"mission:09bb357c-e512-4291-b0d4-56099b29748a:forgejo-release-status:0ad9b6483bf0173bde7ad83b4701310ce72361b6:verified:forgejo-main/source=success|forgejo-release/workflow=success|cc-execution/runtime-proof=success","mission_step_id":"f6d137ff-1f8d-4a00-88c5-4c7dc43fe1c1","command_center_event_id":"09bb357c-e512-4291-b0d4-56099b29748a"},{"id":"12d0c009-f5f8-4019-b282-6a04b6c41a89","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-54cc117cb705","prNumber":2865,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"5161c2e8ec26e6296a0a13c76d809708926ee1ef","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-15T23:26:54.562795+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"5161c2e8ec26e6296a0a13c76d809708926ee1ef","external_id":"2865","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:54cc117c-b705-4153-b9b1-6ce4cc586616:merged-pr:2865:5161c2e8ec26e6296a0a13c76d809708926ee1ef","mission_step_id":"f9a2ba30-14d5-4c12-b161-161dede35f7e","command_center_event_id":"54cc117c-b705-4153-b9b1-6ce4cc586616"},{"id":"12d100f1-3acb-4493-891b-a97439bc6628","source":"cc-execution","status":"release_reconciliation_pending","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-60d9cfa690f1","reason":null,"status":"release_reconciliation_pending","metrics":{"receiptBytes":2037,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":"2026-09-27T13:34:50.845Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3873,"terminal":false,"missionId":"60d9cfa6-90f1-4882-b1a7-20380a7e6924","operation":"automatic_mission_resume","proofGate":"canonical_release_reconciliation_pending","sourceSha":"d1d7f172ff54d1f0f8ebd6fc2bee7e4dfbc11fcd","timingsMs":{"prReadinessMs":174,"approvedPlanMs":0,"shipAndProveMs":328,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"reconcile_release","receiptRef":{"mode":"full","missionId":"60d9cfa6-90f1-4882-b1a7-20380a7e6924"},"performance":null,"deploymentId":"forgejo-main-d1d7f172ff54","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":1922,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-27T13:37:56.356979+00:00","proof_gate":"canonical_release_reconciliation_pending","source_sha":null,"external_id":"3873","receipt_type":"automatic_mission_resume","idempotency_key":"mission:60d9cfa6-90f1-4882-b1a7-20380a7e6924:automatic-mission-resume:3873:canonical_release_reconciliation_pending","mission_step_id":"e7b8c685-0421-495f-ac00-3b4b185f017c","command_center_event_id":"60d9cfa6-90f1-4882-b1a7-20380a7e6924"},{"id":"12d3ab97-89a9-4e82-aa83-f1fc9fac8749","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"98cb3ec8e8ef68dc080691fafd0e1cdf34e6750c","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-1","satisfied":true,"statement":"Correct Big Papi's static Facebook image resolver in supabase/functions/tenant-photo-studio/index.ts based on live HTTP 415 evidence. Resolve the allowlisted lookaside.fbsbx.com redirect server-side through the public Facebook photo HTML og:image to an allowlisted Facebook CDN image, validate actual image bytes and size, and return only static image bytes with browser-safe headers. Preserve existing KnockLaunch R2 behavior and never become a generic proxy. Deploy tenant-photo-studio and prove the live Big Papi homepage has no 415/ORB Facebook media failures.","proofConditionIds":["proof-production"]}],"satisfied":true,"constraints":[{"id":"bounded-proxy","satisfied":true,"statement":"Remain fail-closed and allow only the existing KnockLaunch R2 host, lookaside.fbsbx.com, facebook.com/www.facebook.com as HTML intermediates, and *.fbcdn.net/lookaside.fbsbx.com as final image origins.","proofConditionIds":["proof-production"]},{"id":"static-only","satisfied":true,"statement":"Customers receive only static image bytes from the KNOCKLAUNCH endpoint; never Facebook redirects or HTML.","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":"d9e1665b9343b55c0d73fef595ed9fab6290763fef4de25115eee2f85f893067","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":"d9e1665b9343b55c0d73fef595ed9fab6290763fef4de25115eee2f85f893067"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["supabaseEdge"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":2},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-03T12:59:35.461307+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"98cb3ec8e8ef68dc080691fafd0e1cdf34e6750c","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:993714c5-4a87-4fd5-b700-f73c468a404b:request-contract:d9e1665b9343b55c0d73fef595ed9fab6290763fef4de25115eee2f85f893067:98cb3ec8e8ef68dc080691fafd0e1cdf34e6750c:verified:","mission_step_id":"fb76ce2e-1815-40c4-9fd3-7cafe85b141a","command_center_event_id":"993714c5-4a87-4fd5-b700-f73c468a404b"},{"id":"12d6925b-c7e3-461b-9ec2-747c34bd6d08","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":null,"reason":"The operation was aborted due to timeout","status":"retryable","metrics":{"receiptBytes":1088,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.48.9-single-mutation-lane","prNumber":496,"terminal":false,"missionId":"fa946011-1f40-4a93-b40f-14843bb95222","operation":"execute_mission","proofGate":"canonical_release_transport_retryable","sourceSha":null,"timingsMs":null,"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"fa946011-1f40-4a93-b40f-14843bb95222"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":4832,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-20T17:05:09.152232+00:00","proof_gate":"canonical_release_transport_retryable","source_sha":null,"external_id":"496","receipt_type":"execute_mission","idempotency_key":"mission:fa946011-1f40-4a93-b40f-14843bb95222:execute_mission:canonical_release_transport_retryable","mission_step_id":"f35ba849-5623-4e41-a362-9ed9d011145e","command_center_event_id":"fa946011-1f40-4a93-b40f-14843bb95222"},{"id":"12d7c6b3-b28a-446e-b381-7629ad2042cb","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/big-papi-simple-event-closeout-20260824","reason":"The operation was aborted due to timeout","status":"blocked","metrics":{"receiptBytes":5429,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":1,"ownerInterruptionCount":0},"version":"1.50.25-cross-scope-source-seeds","prNumber":null,"terminal":false,"missionId":"7d2b97b5-c827-408b-b0a3-d75daa3da551","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"7d2b97b5-c827-408b-b0a3-d75daa3da551"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5013,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"766cfaa7-ac42-46c8-bbef-69d13268a29d","created_at":"2026-08-24T20:26:42.329624+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:7d2b97b5-c827-408b-b0a3-d75daa3da551:execute_mission:repair_mission_execution_blocked","mission_step_id":"16550741-b154-468e-8763-34bc03d84b69","command_center_event_id":"7d2b97b5-c827-408b-b0a3-d75daa3da551"},{"id":"12d7cb71-16b1-4983-a681-3c96b7810007","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":null,"reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.36.7-explicit-route-proof-intent","prNumber":4731,"terminal":false,"missionId":"527072e5-2783-4303-9c89-459320269b25","operation":"ship_and_prove","proofGate":"canonical_release_dispatched","sourceSha":"7c334511109af07958fe3886452e8e1d36fcb3b8","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"527072e5-2783-4303-9c89-459320269b25"},"performance":null,"deploymentId":"canonical-release-7c334511109a","workflowRunId":31676672977,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":true,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1390,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-13T07:12:06.472265+00:00","proof_gate":"canonical_release_dispatched","source_sha":"7c334511109af07958fe3886452e8e1d36fcb3b8","external_id":"canonical-release-7c334511109a","receipt_type":"ship_and_prove","idempotency_key":"mission:527072e5-2783-4303-9c89-459320269b25:ship_and_prove:canonical_release_dispatched:7c334511109af07958fe3886452e8e1d36fcb3b8:31676672977","mission_step_id":"724d5970-75ed-4fdf-8f35-a883bd9515ab","command_center_event_id":"527072e5-2783-4303-9c89-459320269b25"},{"id":"12d811cd-0173-4d14-b59d-5ad6fa9f2cb1","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-4adeff75f590","reason":"control_plane_maintenance_base_sha_mismatch","status":"blocked","metrics":{"receiptBytes":39018,"releaseCount":0,"toolCallCount":10,"repeatedCallCount":2,"executorlessWaitMs":397395,"firstUsefulResultAt":"2026-10-02T00:22:12.553Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.42-owner-experience-guardrails","prNumber":null,"terminal":false,"missionId":"4adeff75-f590-4e0b-8da0-1b5cdd2e1d17","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1236,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":1236,"missionSetupMs":407,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":407,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":407,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":407,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"4adeff75-f590-4e0b-8da0-1b5cdd2e1d17"},"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":1477,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T00:25:58.407463+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:4adeff75-f590-4e0b-8da0-1b5cdd2e1d17:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"c1f083b2-f0d4-4e1a-bf51-5218f1ede299","command_center_event_id":"4adeff75-f590-4e0b-8da0-1b5cdd2e1d17"},{"id":"12d8ee60-b404-4498-b7e5-059248923e5d","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"objective_received","branch":null,"reason":"anchored_edits resolution failed","status":"blocked","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.31.27-tenant-scope-security","prNumber":null,"terminal":false,"missionId":"471be692-8cc8-43ff-9bbc-b15bc4c9d04a","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"471be692-8cc8-43ff-9bbc-b15bc4c9d04a"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":664,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"c55998b4-82a3-467e-8d35-177bb4785f6e","created_at":"2026-08-10T14:06:07.917263+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:471be692-8cc8-43ff-9bbc-b15bc4c9d04a:execute_mission:repair_mission_execution_blocked","mission_step_id":"d024c09c-d4ff-47c4-b32f-1a128feb28c1","command_center_event_id":"471be692-8cc8-43ff-9bbc-b15bc4c9d04a"},{"id":"12d94196-c73f-4b1a-9373-19382ecd7a65","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/big-papis-mobile-density-20260823","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":1078,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.50.16-onrunner-release-ownership","prNumber":null,"terminal":false,"missionId":"de00548e-db52-4cbc-81c5-1c134fbafeaf","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":null,"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":"de00548e-db52-4cbc-81c5-1c134fbafeaf"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":9736,"likelyAffectedFiles":["src/__tests__/contracts/command-center-existing-branch-refresh.contract.test.ts","src/__tests__/commandCenter/deployDetection.test.ts","src/__tests__/contracts/cc-execution-onrunner-deploy-lane.contract.test.ts","src/__tests__/contracts/command-center-forgejo-transport-reliability.contract.test.ts","src/__tests__/contracts/command-center-platform-mission-anchor.contract.test.ts",".forgejo/workflows/knocklaunch.yml","scripts/visual-witness-hosted-runner/src/mission-gateway.mjs","src/components/admin/TenantUserCommandCenters.tsx","src/components/GlobalCommandPalette.tsx","scripts/visual-witness-hosted-runner/src/frontend-build-entrypoint.mjs","scripts/visual-witness-hosted-runner/src/frontend-build-service.mjs","src/components/admin/TenantCreationWizard.tsx"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-23T20:26:30.574231+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:de00548e-db52-4cbc-81c5-1c134fbafeaf:execute_mission:repair_mission_synthesis_ready","mission_step_id":"45e21a5f-f079-4a30-abff-2466438f4190","command_center_event_id":"de00548e-db52-4cbc-81c5-1c134fbafeaf"},{"id":"12d9d7f3-4466-4057-b6fd-d4ad42a56ede","source":"cc-execution","status":"verified","payload":{"paths":["workers/cc-execution/src/index-scoped-repo-patch.js"],"baseSha":"e861640fe28411f64b205ce36586a0565eb007d9","consumedAt":1787856294476,"consumerToken":"eed1ed2a-7b00-4540-b021-ed0e45067678","authorizationId":"49ecf2b8-8a19-4f88-bb3e-29530429a9bd"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-27T18:44:55.475565+00:00","proof_gate":"control_plane_maintenance_single_use_consumed","source_sha":"e861640fe28411f64b205ce36586a0565eb007d9","external_id":null,"receipt_type":"control_plane_maintenance_consumed","idempotency_key":"control-plane-maintenance-consume:49ecf2b8-8a19-4f88-bb3e-29530429a9bd","mission_step_id":"81809d64-92f5-4cbc-b942-124f3f076ffd","command_center_event_id":"926a0009-18d5-4390-9f53-1f9c51a063a1"},{"id":"12db1d6b-352f-4422-b826-099465ef848d","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-5503c29f9907","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3422,"terminal":false,"missionId":"5503c29f-9907-4456-8aa5-b2021eecdeda","operation":"automatic_mission_resume","proofGate":"canonical_release_dispatched","sourceSha":"b2a601b97346ced21d79c8ec6cf93fd2fb5b75a0","timingsMs":{"prReadinessMs":214,"approvedPlanMs":0,"shipAndProveMs":820,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"5503c29f-9907-4456-8aa5-b2021eecdeda"},"performance":null,"deploymentId":"forgejo-main-b2a601b97346","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":false,"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":1633,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T12:36:20.403239+00:00","proof_gate":"canonical_release_dispatched","source_sha":null,"external_id":"3422","receipt_type":"automatic_mission_resume","idempotency_key":"mission:5503c29f-9907-4456-8aa5-b2021eecdeda:automatic-mission-resume:3422:canonical_release_dispatched","mission_step_id":"91e2d285-775c-4b9f-85d9-4823b0b06e63","command_center_event_id":"5503c29f-9907-4456-8aa5-b2021eecdeda"},{"id":"12e147e4-7a6d-4340-ba4f-d811921f5bcb","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":null,"reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.50.16-onrunner-release-ownership","prNumber":632,"terminal":false,"missionId":"4bd1f474-4523-4cd1-9b0e-da898cf84d9c","operation":"execute_mission","proofGate":"canonical_release_dispatched","sourceSha":"1c125557c5e1501118996ebd64a80a01d016f14d","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"4bd1f474-4523-4cd1-9b0e-da898cf84d9c"},"performance":null,"deploymentId":"forgejo-main-1c125557c5e1","workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":true,"edgeFunctionSlugs":["finance-square","zoho-mail"]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":6220,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-23T21:41:03.008894+00:00","proof_gate":"canonical_release_dispatched","source_sha":"1c125557c5e1501118996ebd64a80a01d016f14d","external_id":"forgejo-main-1c125557c5e1","receipt_type":"execute_mission","idempotency_key":"mission:4bd1f474-4523-4cd1-9b0e-da898cf84d9c:execute_mission:canonical_release_dispatched","mission_step_id":"e20a7947-c4fa-41c4-bf80-66a53443691d","command_center_event_id":"4bd1f474-4523-4cd1-9b0e-da898cf84d9c"},{"id":"12e36d9a-ce4e-4312-a128-ffaab7deeaba","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Complete the existing Gate dependency-cache transport mission on PR #1367. The exact head b4eebcb538066f45ae1cc6ce22cba7a7dfd017eb is current and passed KnockLaunch Gate run 4327 with strict profile and all authoritative guards green. Squash merge this exact current green head through Forgejo. Resolve release targets from the actual workflow/config/test-only diff and do not deploy unrelated production owners. Then prove current main contains the cache transport hardening and remains controlPlaneFrozen=true at freeze version 1.58.6-gate-cache-transport-freeze.","wordingChanged":false,"canonicalIntent":"Complete the existing Gate dependency-cache transport mission on PR #1367. The exact head b4eebcb538066f45ae1cc6ce22cba7a7dfd017eb is current and passed KnockLaunch Gate run 4327 with strict profile and all authoritative guards green. Squash merge this exact current green head through Forgejo. Resolve release targets from the actual workflow/config/test-only diff and do not deploy unrelated production owners. Then prove current main contains the cache transport hardening and remains controlPlaneFrozen=true at freeze version 1.58.6-gate-cache-transport-freeze.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"outcome-1","statement":"Gate dependency caching no longer relies on a reusable job workspace that the Docker runner destroys at every checkout.","proofConditionIds":["proof-repository"]},{"id":"outcome-2","statement":"Frontend Gate and fallback frontend release dependency caches prefer a zstd v2 exact Node+manifest cache and use the old exact gzip cache only as a one-time promotion source before PR validation scripts.","proofConditionIds":["proof-repository"]},{"id":"outcome-3","statement":"No new workflow volume mounts are introduced, locked npm install remains the final fallback, the canonical Gate passes, and current main remains frozen at completion.","proofConditionIds":["proof-repository"]}],"objective":"Complete the existing Gate dependency-cache transport mission on PR #1367. The exact head b4eebcb538066f45ae1cc6ce22cba7a7dfd017eb is current and passed KnockLaunch Gate run 4327 with strict profile and all authoritative guards green. Squash merge this exact current green head through Forgejo. Resolve release targets from the actual workflow/config/test-only diff and do not deploy unrelated production owners. Then prove current main contains the cache transport hardening and remains controlPlaneFrozen=true at freeze version 1.58.6-gate-cache-transport-freeze.","constraints":[],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-repository","kind":"repository","claim":"Exact source contains the safe cache transport repair, canonical Gate is green before squash merge, and merged current main is frozen at the new freeze version.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}],"validationErrors":[]},"requestContractHash":"a0b0264616c9e21e9b6dcb4ad61f0d686b5d542e5d48c3fffde7facea3dc1d00","requestContractRevision":5,"previousRequestContractHash":"d7b4f1b7157cdfeb8d237948a9c884ea62742776503751c7c7ac2775260cec7b"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-02T02:53:03.30278+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:c04c059f-2b9f-42b2-ae41-8a80eadfcab5:request-contract-revision:5:a0b0264616c9e21e9b6dcb4ad61f0d686b5d542e5d48c3fffde7facea3dc1d00","mission_step_id":"921432e2-3b34-46b0-9858-d0e2edb0b552","command_center_event_id":"c04c059f-2b9f-42b2-ae41-8a80eadfcab5"},{"id":"12e44694-3206-4c52-ac7a-900841eecff6","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-ef2348b23788","prNumber":4916,"nextAction":null,"mergeCommitSha":"0a03771b89e057dfff3b68e9bf8d313524e661d4","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-05T14:04:20.780757+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"0a03771b89e057dfff3b68e9bf8d313524e661d4","external_id":"4916","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:ef2348b2-3788-460c-b4d8-1ecab679d19b:merged-pr:4916:0a03771b89e057dfff3b68e9bf8d313524e661d4","mission_step_id":"81b54ba2-a386-48b0-b9bb-4dfc762b4f5c","command_center_event_id":"ef2348b2-3788-460c-b4d8-1ecab679d19b"},{"id":"12e45267-e9f0-4e57-992a-00bdda92e12f","source":"cc-execution","status":"source_resolution_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-e8387d6ece37","reason":null,"status":"source_resolution_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.182-witness-render-cold-start-aware","prNumber":null,"terminal":false,"missionId":"e8387d6e-ce37-46bb-b4d8-922b91745062","operation":"execute_mission","proofGate":"repair_mission_source_resolution_required","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":277,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":510,"providerAuthMs":0,"ledgerPrepareMs":510,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":510,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":510,"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":"e8387d6e-ce37-46bb-b4d8-922b91745062"},"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":4501,"likelyAffectedFiles":[],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-18T14:37:11.239421+00:00","proof_gate":"repair_mission_source_resolution_required","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:e8387d6e-ce37-46bb-b4d8-922b91745062:execute_mission:repair_mission_source_resolution_required:current-generation","mission_step_id":"8e810423-4d59-46e4-8c20-69d53e67e8fc","command_center_event_id":"e8387d6e-ce37-46bb-b4d8-922b91745062"},{"id":"12e54775-42b1-41b7-98f7-f729edbf8881","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","frontend-cloudflare/live":"success"},"mainSha":"23fb8cd2d6c15f12554ed772c4d01a9710d74228","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"23fb8cd2d6c15f12554ed772c4d01a9710d74228","releaseState":"verified","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false},"releaseTargetStates":{"frontend":"success"},"requestContractHash":"b4cec0790471da5dff8f3875a9bd3539ea8c265e8abd9c4cf44aca996c222b80","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/12190","runId":12190,"status":"success","sourceSha":"23fb8cd2d6c15f12554ed772c4d01a9710d74228","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true,"targetStates":{"frontend":"success"},"targetJobCount":7,"observedTargetStates":{"frontend":"success"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":{"exact":true,"source":"exact_source_parent_diff_shared_release_owner_mapping","parentSha":"f8738a33c612186b0be0d3656401ea19682633ec","sourceSha":"23fb8cd2d6c15f12554ed772c4d01a9710d74228","changedPaths":[".forgejo/workflows/knocklaunch.yml","public/console/cockpit-v1.css","public/console/index-v3-8.html","public/console/operator-cockpit.mjs"],"changedPathCount":4,"independentOfCurrentMainCompare":true},"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-27T06:50:26.900358+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"23fb8cd2d6c15f12554ed772c4d01a9710d74228","external_id":"forgejo-main-23fb8cd2d6c1","receipt_type":"canonical_release_status","idempotency_key":"mission:1297fc3e-a836-406c-ae04-a0aa8f124741:forgejo-release-status:23fb8cd2d6c15f12554ed772c4d01a9710d74228:verified:forgejo-main/source=success|forgejo-release/workflow=success|frontend-cloudflare/live=success","mission_step_id":"beb0d361-43b7-4210-aea4-7a0ef5a13bb6","command_center_event_id":"1297fc3e-a836-406c-ae04-a0aa8f124741"},{"id":"12e76380-ea22-4b13-9695-b5b82b603b17","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"compilation":{"stages":["owner_intent","conversation_context","scope","live_state","mutation_authority","affected_systems","dependencies","risk_and_blast_radius","execution_tactics","required_proof","release_plan","recovery_plan"],"version":2,"explicit":true,"objective":"Continue the same frontend-only PCG intake repair with an exact file write.","proofKinds":["repository"],"adaptiveDomains":["intent","tenant_route_role_viewport","urgency_deadline","dependency_scope","risk_blast_radius","runner_capacity","queue_active_work","provider_failure_circuits","qa_scope","retry_recovery","release_ownership","proof_depth"],"expansionPolicy":"later_stages_may_only_narrow_or_expand_with_machine_readable_dependency_evidence","dynamicStatePolicy":"live_state_may_change_execution_tactics_but_never_owner_outcome_or_explicit_constraints","dynamicRefreshStages":["preflight","gate","release","runtime_proof"],"adaptiveCompilerVersion":"paul-adaptive-objective-v1","inheritedContextBlockingAuthority":false},"rawUtterance":"Continue the same frontend-only PCG intake repair with an exact file write.","wordingChanged":false,"canonicalIntent":"Continue the same frontend-only PCG intake repair with an exact file write.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"outcome-1","statement":"Continue the same frontend-only PCG intake repair with an exact file write.","provenance":{"reason":null,"source":"current_request_inference","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"objective":"Continue the same frontend-only PCG intake repair with an exact file write.","constraints":[{"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":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"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.","provenance":{"reason":null,"source":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"adaptivePolicy":{"risk":{"tier":"standard","blastRadius":"scoped"},"proof":{"requiredKinds":["repository"],"visualProofScope":"none","interactionRequired":false,"runtimeProofRequired":true},"scope":{"route":null,"roleRef":null,"tenantRef":null,"sourceTargets":[]},"dynamic":{"variables":["main_and_runtime_lineage","runner_capacity","queue_and_active_work","provider_health","failure_clusters_and_circuits","release_target_state","current_pr_and_gate_state"],"refreshStages":["preflight","gate","release","runtime_proof"],"refreshMayChange":["runner_selection","parallelism","retry_path","qa_depth","release_recovery","proof_timing"],"refreshMayNotChange":["owner_outcome","explicit_no_go_constraints","tenant_identity","credential_boundary","hard_safety_invariants"]},"urgency":{"priority":"normal","deadlineSignals":[],"deadlineExplicit":false},"version":"paul-adaptive-objective-v1","recovery":{"transient":"one_bounded_retry_then_alternate_eligible_pool_or_provider_path","deterministic":"repair_source_or_contract_do_not_blind_rerun","mutationDependencyFailure":"prerequisite_required_or_targeted_recovery_never_invent","readOnlyDependencyFailure":"degrade_to_available_grounded_context_and_keep_conversation_alive"},"unknowns":["tenant","route","source_targets_until_repository_resolution","release_targets_until_changed_paths","deadline"],"authority":{"outcome":"current_explicit_owner_request","tactics":"live_prime_truth","unknownPolicy":"preserve_unknown_never_invent","historicalContext":"advisory_unless_current_request_confirms"},"execution":{"mutation":true,"concurrency":"parallel_non_overlapping_work","scopePolicy":"start_bounded_expand_only_with_machine_readable_dependency_evidence","staleStatePolicy":"refresh_dynamic_state_before_irreversible_or_acceptance_stage","conversationIsolation":true,"ownerOutcomeMayBeChangedByAdaptation":false},"experience":{"visual":false,"viewports":["desktop","mobile"],"behavioral":false,"visualProofScope":"none"},"dependencies":{"requiredDomains":["frontend"],"capabilityDomains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"releaseTargetHints":[]},"inputSignals":{"rawUtterance":"Continue the same frontend-only PCG intake repair with an exact file write.","canonicalIntent":"Continue the same frontend-only PCG intake repair with an exact file write.","conversationContextPresent":false}},"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"repository","claim":"Continue the same frontend-only PCG intake repair with an exact file write.","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":"Continue-the-same-frontend-only-PCG-intake-repair-with-an-exact-file-write.","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":"9776e1a68ca820f0922d4da7dec01d69609c686be447092ece99061c7421fc9c","requestContractRevision":2,"previousRequestContractHash":"bc5312dfc86ed8e5f438854dac1c53e57594bb7844c1536c16f780ceefe8722d"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T02:45:19.761833+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:87ef6094-e3bd-4987-b4c5-3df00a7a6dfd:request-contract:9776e1a68ca820f0922d4da7dec01d69609c686be447092ece99061c7421fc9c","mission_step_id":"f4dc4ddd-fe6d-4021-ba6f-bffce5751303","command_center_event_id":"87ef6094-e3bd-4987-b4c5-3df00a7a6dfd"},{"id":"12ebaf0e-15c8-4828-a88b-7e79b41fa426","source":"cc-execution","status":"source_resolution_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-bb641fa0339e","reason":null,"status":"source_resolution_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.172-cancelled-release-preverified-read-bypass","prNumber":null,"terminal":false,"missionId":"bb641fa0-339e-47f8-9bab-93289051eb3c","operation":"execute_mission","proofGate":"repair_mission_source_resolution_required","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":97,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":1355,"providerAuthMs":0,"ledgerPrepareMs":1355,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":1355,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":1355,"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":"bb641fa0-339e-47f8-9bab-93289051eb3c"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":4860,"likelyAffectedFiles":[],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-16T22:06:40.185715+00:00","proof_gate":"repair_mission_source_resolution_required","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:bb641fa0-339e-47f8-9bab-93289051eb3c:execute_mission:repair_mission_source_resolution_required:current-generation","mission_step_id":"8b961150-5273-44d3-a15b-400196b910bb","command_center_event_id":"bb641fa0-339e-47f8-9bab-93289051eb3c"},{"id":"12edcc1c-abc2-44bb-bd10-4d0b1d9e0632","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/fix-big-papi-logo-hover-media-ui-20260828","reason":"pull_request_checks_pending","status":"waiting_for_gate","metrics":{"receiptBytes":13709,"releaseCount":0,"toolCallCount":9,"repeatedCallCount":4,"ownerInterruptionCount":0},"version":"1.55.7-queue-hardening","prNumber":972,"terminal":false,"missionId":"281163b0-340e-4312-ab06-bb4a0a408207","operation":"execute_mission","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"handlerMs":1795,"prReadinessMs":893,"approvedPlanMs":811,"missionSetupMs":441,"shipAndProveMs":0},"nextAction":"Reconcile this same mission and pull request after the exact-head KnockLaunch Gate changes state.","receiptRef":{"mode":"full","missionId":"281163b0-340e-4312-ab06-bb4a0a408207"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5448,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"766cfaa7-ac42-46c8-bbef-69d13268a29d","created_at":"2026-08-28T23:07:59.794502+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"972","receipt_type":"execute_mission","idempotency_key":"mission:281163b0-340e-4312-ab06-bb4a0a408207:execute_mission:repair_mission_waiting_for_gate:current-generation","mission_step_id":"ae7303ad-4773-45b4-9e96-e122c0e22b44","command_center_event_id":"281163b0-340e-4312-ab06-bb4a0a408207"},{"id":"12f1bc97-373a-4bbc-9713-efe44996c5ef","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\":\"canonical_release_status\",\"status\":\"pending\",\"proofGate\":\"canonical_release_ancestry_pending\"},\"activeStep\":{\"key\":\"preflight\",\"status\":\"ready\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"implementation\",\"status\":\"pending\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"reconcile_release\",\"lane\":\"production-release-conductor\",\"reason\":\"merged_source_requires_release_proof\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_release\",\"recoveryOwner\":\"production-release-conductor\"},\"acceptance\":{\"total\":6,\"verified\":0,\"pending\":6,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"preflight\",\"implementation\",\"pull_request\",\"release\",\"runtime_proof\",\"visual_proof\"]},\"stall\":{\"stalled\":true,\"reason\":\"step_deadline_exceeded\",\"step\":\"release\",\"deadlineAt\":\"2026-08-05T19:12:40.885988+00:00\",\"recoveryAction\":\"reconcile_release\"},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/complete-encore-visual-wait-20260805\",\"prNumber\":4064,\"sourceSha\":\"9e83e3c1553cf6be78d5aa28a1f1ac3f2f049077\",\"deploymentId\":\"canonical-release-9e83e3c1553c\"}"},"tenant_id":"fe5cc9d9-c2fe-4062-84c7-a334663cd63c","created_at":"2026-10-03T21:45:28.212446+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:1dde3faa-2f2c-4100-a801-e43f5e5781ec:owner-progress-heartbeat:119404261","mission_step_id":"4184fd60-e4bb-44fb-a2a8-61a85e1b36fa","command_center_event_id":"1dde3faa-2f2c-4100-a801-e43f5e5781ec"},{"id":"12f2b857-2c66-4a31-b627-4df3af557ab9","source":"cc-execution","status":"authorized","payload":{"paths":[".forgejo/workflows/knocklaunch.yml","config/control-plane-capabilities.json","src/__tests__/contracts/command-center-forgejo-transport-reliability.contract.test.ts"],"reason":"Owner explicitly requested the proven 427 MB Gate dependency-cache restore bottleneck be fixed and the control plane frozen again afterward.","baseSha":"c7478e133586a889813f2e2fd22102fb8756b25c","issuedAt":1788316997667,"expiresAt":1788317177667,"missionId":"c04c059f-2b9f-42b2-ae41-8a80eadfcab5","singleUse":true,"authorizationId":"ce4924c3-a495-4094-bf4d-379792632e1f"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-02T02:43:18.50949+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"c7478e133586a889813f2e2fd22102fb8756b25c","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:ce4924c3-a495-4094-bf4d-379792632e1f","mission_step_id":"8522750d-58e8-48d7-9da8-2e7329a639a9","command_center_event_id":"c04c059f-2b9f-42b2-ae41-8a80eadfcab5"},{"id":"12f3d0be-984d-4c90-b6e5-e1b2fe872762","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-01a677b0f3b6","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":25192,"releaseCount":0,"toolCallCount":13,"repeatedCallCount":7,"executorlessWaitMs":653267,"firstUsefulResultAt":"2026-10-01T19:24:42.910Z","recoveryAttemptCount":4,"ownerInterruptionCount":0},"version":"1.64.38-paul-owner-velocity","prNumber":4398,"terminal":false,"missionId":"01a677b0-f3b6-4eb9-9180-699d371c37a7","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":6555,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":3892,"missionSetupMs":356,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":253,"ledgerReconcileMs":0,"lineageReconcileMs":103,"resolvePreflightMs":356,"repositoryMutationMs":2663,"repositoryProviderMs":2663,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2500,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":253,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":163},"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":"01a677b0-f3b6-4eb9-9180-699d371c37a7"},"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":3896,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-01T19:35:17.211426+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"4398","receipt_type":"execute_mission","idempotency_key":"mission:01a677b0-f3b6-4eb9-9180-699d371c37a7:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"53f3dcbc-5738-4145-9ec1-0dbbfca0cf77","command_center_event_id":"01a677b0-f3b6-4eb9-9180-699d371c37a7"},{"id":"12f60bdd-2534-4938-b92b-9631944cb523","source":"cc-execution","status":"release_reconciliation_pending","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-c55a0b1cab94","reason":null,"status":"release_reconciliation_pending","metrics":{"receiptBytes":30089,"releaseCount":0,"toolCallCount":4,"repeatedCallCount":1,"executorlessWaitMs":20274,"firstUsefulResultAt":"2026-09-26T20:10:43.592Z","recoveryAttemptCount":2,"ownerInterruptionCount":0},"version":null,"prNumber":3826,"terminal":false,"missionId":"c55a0b1c-ab94-4b7c-8bbb-65e687e5f2d9","operation":"automatic_mission_resume","proofGate":"canonical_release_reconciliation_pending","sourceSha":"8ea2dcc6dbf31efc5626ecd5248e499b4ea63b0f","timingsMs":{"prReadinessMs":476,"approvedPlanMs":0,"shipAndProveMs":2544,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"reconcile_release","receiptRef":{"mode":"full","missionId":"c55a0b1c-ab94-4b7c-8bbb-65e687e5f2d9"},"performance":null,"deploymentId":"forgejo-main-8ea2dcc6dbf3","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":false,"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":1852,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-26T20:11:18.64521+00:00","proof_gate":"canonical_release_reconciliation_pending","source_sha":null,"external_id":"3826","receipt_type":"automatic_mission_resume","idempotency_key":"mission:c55a0b1c-ab94-4b7c-8bbb-65e687e5f2d9:automatic-mission-resume:3826:canonical_release_reconciliation_pending","mission_step_id":"8a62dabc-8948-40f5-a228-5e37edd818bf","command_center_event_id":"c55a0b1c-ab94-4b7c-8bbb-65e687e5f2d9"},{"id":"12f8bedb-7dec-4c7e-b7af-60f4ce3bd340","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/fix-demo-dispatch-auth-idempotence-20260830","reason":"forgejo_release_source_not_contained_in_current_main","status":"blocked","metrics":{"receiptBytes":2560,"releaseCount":0,"toolCallCount":2,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":1163,"terminal":false,"missionId":"dba90aa9-7f7d-481a-9f8a-8ed475b0a676","operation":"automatic_mission_resume","proofGate":"canonical_release_blocked","sourceSha":null,"timingsMs":{"prReadinessMs":553,"approvedPlanMs":0,"shipAndProveMs":8662},"nextAction":null,"receiptRef":{"mode":"full","missionId":"dba90aa9-7f7d-481a-9f8a-8ed475b0a676"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":576,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-30T23:07:11.929469+00:00","proof_gate":"canonical_release_blocked","source_sha":null,"external_id":"1163","receipt_type":"automatic_mission_resume","idempotency_key":"mission:dba90aa9-7f7d-481a-9f8a-8ed475b0a676:automatic-mission-resume:1163:canonical_release_blocked","mission_step_id":"27d57cf9-821f-4fd6-96c3-7b4970560492","command_center_event_id":"dba90aa9-7f7d-481a-9f8a-8ed475b0a676"},{"id":"12f8e9ef-a895-40f7-ba60-ea69cdbf6497","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-2ab04458852c","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.182-witness-render-cold-start-aware","prNumber":null,"terminal":false,"missionId":"2ab04458-852c-4a64-8e1e-2a026ef2d358","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":11,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":532,"providerAuthMs":0,"ledgerPrepareMs":532,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":532,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":532,"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":"2ab04458-852c-4a64-8e1e-2a026ef2d358"},"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":14748,"likelyAffectedFiles":["package","src/__tests__/contracts/platform-membership-route-isolation.contract.test.ts","src/__tests__/contracts/tenant-brand-character-primitive.contract.test.ts","src/App.css","src/App.tsx","src/PrivateAppShell.tsx","src/PublicAppShell.tsx","src/__tests__/contracts/knocklaunch-mail-platform.contract.test.ts","src/__tests__/contracts/platform-application-registry.contract.test.ts","src/__tests__/contracts/platform-canonical-loading-screen.contract.test.ts","src/__tests__/contracts/tenant-media-application-primitive.contract.test.ts","src/__tests__/contracts/tenant-mode-navigation-primitive.contract.test.ts"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-19T13:53:12.244199+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:2ab04458-852c-4a64-8e1e-2a026ef2d358:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"ba3c9824-65f9-4fce-b0d5-2e18a6c488eb","command_center_event_id":"2ab04458-852c-4a64-8e1e-2a026ef2d358"},{"id":"12fa0249-ab35-4b9d-ad24-cb57fe9b7cb3","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-f6fa108ebafd","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":73735,"releaseCount":0,"toolCallCount":2,"repeatedCallCount":0,"executorlessWaitMs":88865,"firstUsefulResultAt":"2026-09-29T04:09:52.651Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.63.3-stale-main-auto-refresh","prNumber":4106,"terminal":false,"missionId":"f6fa108e-bafd-4b23-a882-c2177ddb0a22","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":4036,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":676,"missionSetupMs":327,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":327,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":327,"repositoryMutationMs":3360,"repositoryProviderMs":3360,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":2115,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":327,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1245},"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":"f6fa108e-bafd-4b23-a882-c2177ddb0a22"},"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":3874,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T04:11:26.926538+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"4106","receipt_type":"execute_mission","idempotency_key":"mission:f6fa108e-bafd-4b23-a882-c2177ddb0a22:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"d927a2fd-fdcc-4746-a132-fc77ce2768c3","command_center_event_id":"f6fa108e-bafd-4b23-a882-c2177ddb0a22"},{"id":"12faca32-8b04-4804-b0a9-d6a341d25d3d","source":"cc-execution","status":"cancelled","payload":{"cancelled":true,"missionId":"a642d2a2-8ea1-4171-8de4-20d68bf45d8a"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-05T18:23:34.424352+00:00","proof_gate":"durable_mission_cancelled","source_sha":null,"external_id":null,"receipt_type":"owner_mission_cancelled","idempotency_key":"mission:a642d2a2-8ea1-4171-8de4-20d68bf45d8a:mission-cancel:a642d2a2-8ea1-4171-8de4-20d68bf45d8a","mission_step_id":null,"command_center_event_id":"a642d2a2-8ea1-4171-8de4-20d68bf45d8a"},{"id":"12fb4050-2bf1-49b5-b472-c5ed7b6ef862","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-22T23:16:07.272Z"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T22:57:15.443274+00:00","proof_gate":"owner_wait_live_milestone_recorded","source_sha":null,"external_id":null,"receipt_type":"owner_wait_live_milestone","idempotency_key":"mission:1460c8da-38e7-4c16-ba5c-fd9806e060a8:owner-wait-live","mission_step_id":"e32fa94e-ca5b-4c63-9fc0-efc2873b4341","command_center_event_id":"1460c8da-38e7-4c16-ba5c-fd9806e060a8"},{"id":"12fdeca5-2204-4825-b22b-5127f20b8212","source":"cc-execution","status":"authorized","payload":{"paths":[".forgejo/workflows/knocklaunch.yml"],"reason":"Correct the deterministic Gate failure on existing PR 3718 without weakening the lockdown. The failure was caused by workflow diff-context false-positive tenant-health selection and sparse manifest availability; the same PR must prove the hosted Visual Witness package check on its own wiring.","baseSha":"e52fc7056f656be0bfe1efa5ce077b6dbb30d9e3","issuedAt":1790338802926,"expiresAt":1790338982926,"missionId":"6e305bba-8ec4-4562-99e4-679473849b9a","authorizationId":"1b21c55f-6a6e-4b68-9db4-997ad80ee766","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T12:20:03.163164+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"e52fc7056f656be0bfe1efa5ce077b6dbb30d9e3","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:1b21c55f-6a6e-4b68-9db4-997ad80ee766","mission_step_id":"89cbe445-eb94-492b-8d5f-1330cd138d67","command_center_event_id":"6e305bba-8ec4-4562-99e4-679473849b9a"},{"id":"12fe3f06-fd79-4bdc-a136-26bc5144a912","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-0b725aea51e6","reason":"retryable_provider_transport:pr_ready_timeout_budget_exhausted","status":"retryable","metrics":{"receiptBytes":41709,"releaseCount":0,"toolCallCount":13,"repeatedCallCount":6,"executorlessWaitMs":147041,"firstUsefulResultAt":"2026-10-02T23:13:57.814Z","recoveryAttemptCount":6,"ownerInterruptionCount":0},"version":"1.64.57-paul-latency-balanced-deep","prNumber":4560,"terminal":false,"missionId":"0b725aea-51e6-4899-9e08-f31bb1ae6ff4","operation":"execute_mission","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":3197,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":3000,"approvedPlanMs":0,"missionSetupMs":520,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":414,"ledgerReconcileMs":0,"lineageReconcileMs":106,"resolvePreflightMs":520,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":414,"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":"0b725aea-51e6-4899-9e08-f31bb1ae6ff4"},"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":1530,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T23:17:03.977686+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"4560","receipt_type":"execute_mission","idempotency_key":"mission:0b725aea-51e6-4899-9e08-f31bb1ae6ff4:execute_mission:repair_mission_pr_ready_retryable:current-generation","mission_step_id":"cd651bf3-aa50-472c-825c-3f78b2af7c8a","command_center_event_id":"0b725aea-51e6-4899-9e08-f31bb1ae6ff4"},{"id":"12ff5e58-fcab-40f5-adcf-5ea4797cb538","source":"cc-execution","status":"authorized","payload":{"paths":["config/control-plane-capabilities.json","scripts/command-center-host-agent/forgejo-watchdog.sh","src/__tests__/contracts/command-center-host-capacity-admission.contract.test.ts","workers/cc-execution/src/forgejo-host-capacity-admission.js","workers/cc-execution/src/index-mission-control.js","workers/cc-execution/src/version.js","workers/cc-execution/test/release-orchestration-invariants.test.js"],"reason":"Continue explicit owner-authorized control-plane unfreeze and adopt the exact seven-file orphan state already written by this mission. Every witness is a no-op exact-state assertion; no source bytes may change.","baseSha":"8a4a6e0aaf0e77e9220994f42c84d5c474de9810","issuedAt":1789336124106,"expiresAt":1789336304106,"missionId":"91fb068f-a96d-47e4-937f-8a3b481100ee","authorizationId":"844a5d4a-068f-4e27-91a0-10376b90866a","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-13T21:48:44.488951+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"8a4a6e0aaf0e77e9220994f42c84d5c474de9810","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:844a5d4a-068f-4e27-91a0-10376b90866a","mission_step_id":"2327682f-59db-4bce-aa6f-f887419381df","command_center_event_id":"91fb068f-a96d-47e4-937f-8a3b481100ee"},{"id":"13001747-295c-4416-ace1-092cb0f60765","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\":\"implementation\",\"status\":\"waiting\",\"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},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_release\",\"recoveryOwner\":\"production-release-conductor\"},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"release\",\"deadlineAt\":\"2026-10-04T23:06:38.081663+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/objective-first-repair-19be0f305924\",\"prNumber\":4843,\"sourceSha\":\"f9a09d79a8d6cb9c21931abd59154dbbafacd956\",\"deploymentId\":\"forgejo-main-f9a09d79a8d6\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-04T20:07:59.982143+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:19be0f30-5924-400e-bbb1-8bd53f9273fd:owner-progress-heartbeat:119409631","mission_step_id":"c3692c9c-d66e-4136-aedd-c16af5738c73","command_center_event_id":"19be0f30-5924-400e-bbb1-8bd53f9273fd"},{"id":"130159cd-4f9b-4494-a67d-654a709b8f66","source":"durable-mission-ledger","status":"pending","payload":{"sourceSha":"4929274f77e91e713b9b07accad1f86a941b602c","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"remove-fail-closed","satisfied":false,"statement":"The Windows autoconnect installer no longer injects GCM_INTERACTIVE=Never or GIT_TERMINAL_PROMPT=0 into Desktop Commander.","proofConditionIds":["repo-proof"]},{"id":"persist-autonomous-ssh","satisfied":false,"statement":"If the device automation key and managed SSH config are present, the installer ensures the KnockLaunch-only HTTPS-to-SSH rewrite for port 2222 and reports ssh_device_key auth mode.","proofConditionIds":["repo-proof"]}],"satisfied":false,"constraints":[{"id":"other-git-unaffected","satisfied":false,"statement":"Do not alter authentication or URL handling for non-KnockLaunch Git hosts.","proofConditionIds":["repo-proof"]},{"id":"no-secrets","satisfied":false,"statement":"Do not embed private keys, passwords, tokens, or OAuth credentials.","proofConditionIds":["repo-proof"]},{"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":["repo-proof"]},{"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":["repo-proof"]}],"contractHash":"b738711b6957ddcc03bfa962c69e470a521118da1b5af1121a57ea790310ee37","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"repo-proof","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":"b738711b6957ddcc03bfa962c69e470a521118da1b5af1121a57ea790310ee37","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-10-02T00:28:47.280678+00:00","proof_gate":"request_contract_pending","source_sha":"4929274f77e91e713b9b07accad1f86a941b602c","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:a7db2a91-43d7-40a8-8a32-810076ede303:request-contract:b738711b6957ddcc03bfa962c69e470a521118da1b5af1121a57ea790310ee37:4929274f77e91e713b9b07accad1f86a941b602c:pending:repository","mission_step_id":"f8f66ffe-6c0f-4a31-a50b-a2689d78b9fc","command_center_event_id":"a7db2a91-43d7-40a8-8a32-810076ede303"},{"id":"1302200c-a2d4-4cc2-ab51-89c0e206dca2","source":"cc-execution","status":"blocked","payload":{"reason":"anchored_edit_anchor_missing:src/components/admin/OperatorSidekick.tsx","fingerprint":"766e94bf31ce797dfc05b1e0974edde69abc60cc5a8d15ee1df49fab21fde82a"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T00:03:32.160128+00:00","proof_gate":"repository_mutation_intent_deterministic_failure","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent_blocked","idempotency_key":"mission:5ef6e201-aad0-4691-9221-d75318fad13b:repository-mutation-intent-blocked:766e94bf31ce797dfc05b1e0974edde69abc60cc5a8d15ee1df49fab21fde82a","mission_step_id":"1778bb35-f889-4538-9068-3ea185aff115","command_center_event_id":"5ef6e201-aad0-4691-9221-d75318fad13b"},{"id":"13036582-1f95-4b08-8f3d-661574ab4833","source":"cc-execution","status":"verified","payload":{"paths":["config/control-plane-capabilities.json","src/__tests__/contracts/control-plane-speed.contract.test.ts","workers/cc-execution/src/index-mission-control.js"],"baseSha":"0d53ac2ff1dad311fdb285aeae264a8dcdd9282f","consumedAt":1788280556898,"consumerToken":"5e218568-6a73-4ac5-8fe6-1f90a44fbb68","authorizationId":"129e1045-c10f-46dc-97a4-206526cfab2e"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-01T16:35:57.955026+00:00","proof_gate":"control_plane_maintenance_single_use_consumed","source_sha":"0d53ac2ff1dad311fdb285aeae264a8dcdd9282f","external_id":null,"receipt_type":"control_plane_maintenance_consumed","idempotency_key":"control-plane-maintenance-consume:129e1045-c10f-46dc-97a4-206526cfab2e","mission_step_id":"ccd08ade-9413-4f0a-b564-1cec12ca0e59","command_center_event_id":"93af80c6-ddb6-44de-9b88-03b8c161f56d"},{"id":"1304e401-406b-4ad4-9b91-c556bf658579","source":"cc-execution","status":"in_progress","payload":{"ok":true,"jobId":null,"phase":"runtime_proof","branch":"ai/objective-first-repair-00736b254ca2","reason":null,"status":"in_progress","metrics":{"receiptBytes":0,"releaseCount":1,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":3274,"terminal":false,"missionId":"00736b25-4ca2-4d45-aacf-f618d1303fdc","operation":"automatic_mission_resume","proofGate":"canonical_release_reconciliation_pending","sourceSha":"e0fb74e69793fe5a5af2877e94c7237f7a10ecf4","timingsMs":{"prReadinessMs":418,"approvedPlanMs":0,"shipAndProveMs":4317,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request automatically; do not create replacement work.","receiptRef":{"mode":"full","missionId":"00736b25-4ca2-4d45-aacf-f618d1303fdc"},"performance":null,"deploymentId":"forgejo-main-e0fb74e69793","releaseState":"verified","workflowRunId":10258,"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":793,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-20T06:05:06.75779+00:00","proof_gate":"canonical_release_reconciliation_pending","source_sha":null,"external_id":"3274","receipt_type":"automatic_mission_resume","idempotency_key":"mission:00736b25-4ca2-4d45-aacf-f618d1303fdc:automatic-mission-resume:3274:canonical_release_reconciliation_pending","mission_step_id":"6d986882-d100-4697-bb92-0e39b019ab62","command_center_event_id":"00736b25-4ca2-4d45-aacf-f618d1303fdc"},{"id":"1306b9c7-8b97-45e0-9149-6957f4493ac8","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":null,"reason":"branch_must_start_with_ai","status":"blocked","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.118-architecture-exclusivity","prNumber":null,"terminal":false,"missionId":"e364b6c3-f9eb-4bab-a4bc-71636d2815aa","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":736,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":736,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":736,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":736,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"e364b6c3-f9eb-4bab-a4bc-71636d2815aa"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1293,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-12T18:31:15.004014+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:e364b6c3-f9eb-4bab-a4bc-71636d2815aa:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"2847ed40-5778-4bba-a1cc-135fa7ef77ba","command_center_event_id":"e364b6c3-f9eb-4bab-a4bc-71636d2815aa"},{"id":"1306ef82-70e8-445d-9508-7fb8724b3b66","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/visual-witness-production-data-cleanup-only-remo","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.31.26-direct-route-visual-intent","prNumber":null,"terminal":false,"missionId":"344c1957-667a-4b1e-b980-a267d919b8bd","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":null,"nextAction":"Inspect the bounded repository paths, synthesize exact files or anchored_edits, and call /repair/continue-mission automatically with this missionId without another owner prompt.","receiptRef":{"mode":"full","missionId":"344c1957-667a-4b1e-b980-a267d919b8bd"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":9004,"likelyAffectedFiles":["scripts/visual-witness-hosted-runner/src/universal-witness.mjs","scripts/visual-witness-hosted-runner/src/runner-entrypoint.mjs","workers/cc-execution/src/index-visual-witness-fast-path.js",".github/workflows/production-release-conductor.yml","scripts/resolve-autonomous-change-plan.mjs","scripts/resolve-production-workflow-run.mjs",".github/workflows/canonical-pull-request-gate.yml","workers/cc-execution/src/index-controlled-deploy-gate.js","src/routes/","src/pages/","src/components/","src/index.css"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-09T18:11:45.583215+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:344c1957-667a-4b1e-b980-a267d919b8bd:execute_mission:repair_mission_synthesis_ready","mission_step_id":"71e54d7b-079f-4707-bd87-4dfde490b326","command_center_event_id":"344c1957-667a-4b1e-b980-a267d919b8bd"},{"id":"1307512e-b378-41c5-99a4-7b5cee5a6bc8","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Remove demo-request-logos from V3_MOVE_SPECS on PR #1897 so the migration will not move or delete it until its uploader is proven. Do not release yet.","wordingChanged":false,"canonicalIntent":"Remove demo-request-logos from V3_MOVE_SPECS on PR #1897 so the migration will not move or delete it until its uploader is proven. Do not release yet.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"safe-demo-bucket","statement":"demo-request-logos remains legacy_pending and is excluded from automated V3 moves.","proofConditionIds":["repo-proof"]}],"objective":"Remove demo-request-logos from V3_MOVE_SPECS on PR #1897 so the migration will not move or delete it until its uploader is proven. Do not release yet.","constraints":[{"id":"same-pr","statement":"PR #1897 only; no release.","proofConditionIds":["repo-proof"]}],"terminalPolicy":"repository_mutation_only_no_release","proofConditions":[{"id":"repo-proof","kind":"repository","claim":"V3 move list excludes demo-request-logos.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":"{source:'dnc-certificates'","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}],"validationErrors":[]},"requestContractHash":"c6956702db876b8b735c74efcaedca64d77b0f1c5057363ad64957c95b931fcf","requestContractRevision":18,"previousRequestContractHash":"59b378325efb2d5f5da6c7c9db8d4d354ce5c114bea5474b6657d4fabf4b876a"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-06T00:42:54.689262+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:6937df13-bcf1-4128-b5eb-c8aa6626b43d:request-contract:c6956702db876b8b735c74efcaedca64d77b0f1c5057363ad64957c95b931fcf","mission_step_id":"3370cc73-f50e-46b7-a76e-123686902ca9","command_center_event_id":"6937df13-bcf1-4128-b5eb-c8aa6626b43d"},{"id":"130985c7-b048-4cd0-a8b2-c6cec10259e6","source":"cc-execution","status":"waiting","payload":{"kind":"heartbeat","message":"Still active in objective received.","nextAction":{"lane":"cc-execution","action":"resolve_preflight","reason":"durable_state:preflight","automationAllowed":false,"ownerActionRequired":false},"silenceBudgetMs":15000,"semanticCheckpointSignature":"{\"stateMachineVersion\":1,\"phase\":\"objective_received\",\"ownerFacingState\":null,\"latest\":null,\"activeStep\":{\"key\":\"preflight\",\"status\":\"ready\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"implementation\",\"status\":\"pending\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"resolve_preflight\",\"lane\":\"cc-execution\",\"reason\":\"durable_state:preflight\",\"automationAllowed\":false,\"ownerActionRequired\":false},\"acceptance\":{\"total\":6,\"verified\":0,\"pending\":6,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"preflight\",\"implementation\",\"pull_request\",\"release\",\"runtime_proof\",\"visual_proof\"]},\"stall\":{\"stalled\":true,\"reason\":\"step_deadline_exceeded\",\"step\":\"preflight\",\"deadlineAt\":\"2026-08-04T16:24:42.301224+00:00\",\"recoveryAction\":\"resolve_preflight\"},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/fix-exact-release-proof-terminalization-20260804\",\"prNumber\":null,\"sourceSha\":null,\"deploymentId\":null}"},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-09-21T12:02:12.638283+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:3d541d59-908a-4e1c-bbee-120d17305bdb:owner-progress-heartbeat:119332808","mission_step_id":"956186f4-1390-42ee-a154-c8af5c0fed26","command_center_event_id":"3d541d59-908a-4e1c-bbee-120d17305bdb"},{"id":"130a3fad-7fc8-4773-9eaa-ab5c19189577","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/frontend-route-inspect-the-current-production-re","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.31.27-tenant-scope-security","prNumber":null,"terminal":false,"missionId":"e8036279-1cb6-4fe2-ac2c-e3d86afee90b","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":null,"nextAction":"Inspect the bounded repository paths, synthesize exact files or anchored_edits, and call /repair/continue-mission automatically with this missionId without another owner prompt.","receiptRef":{"mode":"full","missionId":"e8036279-1cb6-4fe2-ac2c-e3d86afee90b"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":7359,"likelyAffectedFiles":["src/routes/","src/pages/","src/components/","src/index.css","workers/cc-execution/src/index-mission-control.js","workers/cc-execution/src/command-center-contracts.js","workers/cc-execution/src/index-release-fast-lane.js"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"c55998b4-82a3-467e-8d35-177bb4785f6e","created_at":"2026-08-10T01:19:40.777099+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:e8036279-1cb6-4fe2-ac2c-e3d86afee90b:execute_mission:repair_mission_synthesis_ready","mission_step_id":"1353f739-916e-4c27-9230-33e210ab8fbb","command_center_event_id":"e8036279-1cb6-4fe2-ac2c-e3d86afee90b"},{"id":"130a4ccf-a73a-4819-b7c9-961cec003fe8","source":"cc-execution","status":"cancelled","payload":{"cancelled":true,"missionId":"9dba9b9e-569c-4bb6-8f58-5e0d2b11bf5d"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T00:55:30.939863+00:00","proof_gate":"durable_mission_cancelled","source_sha":null,"external_id":null,"receipt_type":"owner_mission_cancelled","idempotency_key":"mission:9dba9b9e-569c-4bb6-8f58-5e0d2b11bf5d:mission-cancel:9dba9b9e-569c-4bb6-8f58-5e0d2b11bf5d","mission_step_id":"69ae6d2e-9cb8-49bd-a842-4ede8d0a0f62","command_center_event_id":"9dba9b9e-569c-4bb6-8f58-5e0d2b11bf5d"},{"id":"1310492a-254b-40bc-8fb7-9db2dc86acc5","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"396514eb78c673331835a6c88fb1270451812968","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"396514eb78c673331835a6c88fb1270451812968","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":"82b9a885f9ef27b4b4a2005a9de6a32c84ecb421115dc703a8ed51be9811de5e","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/10217","runId":10217,"status":"running","sourceSha":"396514eb78c673331835a6c88fb1270451812968","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":"9602e177-0cbb-496c-bdf5-2fbc93f1b859","created_at":"2026-09-20T04:49:17.489912+00:00","proof_gate":"canonical_release_pending","source_sha":"396514eb78c673331835a6c88fb1270451812968","external_id":"forgejo-main-396514eb78c6","receipt_type":"canonical_release_status","idempotency_key":"mission:45e508fb-7168-4481-9e80-c823b74c6bbf:forgejo-release-status:396514eb78c673331835a6c88fb1270451812968:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"173c4016-f91d-4c4a-8498-ba81f7c10451","command_center_event_id":"45e508fb-7168-4481-9e80-c823b74c6bbf"},{"id":"1311621a-7228-4ac2-980f-0fafc5d2aa31","source":"cc-execution","status":"release_reconciliation_pending","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-e1ea24fd915e","reason":null,"status":"release_reconciliation_pending","metrics":{"receiptBytes":24787,"releaseCount":0,"toolCallCount":7,"repeatedCallCount":3,"executorlessWaitMs":24012,"firstUsefulResultAt":"2026-09-30T21:15:37.242Z","recoveryAttemptCount":4,"ownerInterruptionCount":0},"version":null,"prNumber":4277,"terminal":false,"missionId":"e1ea24fd-915e-417f-9164-27900289f7e2","operation":"automatic_mission_resume","proofGate":"canonical_release_reconciliation_pending","sourceSha":"da9f93cb926f1310c90576e046d2c08bdbf26bc5","timingsMs":{"prReadinessMs":652,"approvedPlanMs":0,"shipAndProveMs":3011,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"reconcile_release","receiptRef":{"mode":"full","missionId":"e1ea24fd-915e-417f-9164-27900289f7e2"},"performance":null,"deploymentId":"forgejo-main-da9f93cb926f","releaseState":null,"workflowRunId":null,"releaseTargets":{"frontend":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":1954,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-30T21:16:15.333081+00:00","proof_gate":"canonical_release_reconciliation_pending","source_sha":null,"external_id":"4277","receipt_type":"automatic_mission_resume","idempotency_key":"mission:e1ea24fd-915e-417f-9164-27900289f7e2:automatic-mission-resume:4277:canonical_release_reconciliation_pending","mission_step_id":"7eada4e5-a2ed-46b2-b6aa-937466e3ba23","command_center_event_id":"e1ea24fd-915e-417f-9164-27900289f7e2"},{"id":"1314cfd1-476b-48fe-8133-6f8d44cecef9","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-0b725aea51e6","writes":[],"patches":[],"version":1,"approved":true,"missionId":"0b725aea-51e6-4899-9e08-f31bb1ae6ff4","objective":"Majorly improve PAUL's production conversational intelligence on current main, preserving provider-neutral Mission Freedom and all tenant/security invariants. Improve conversational continuity, referent/correction recovery, durable mission continuation after chat loss, decisive execution intent handling, current Prime grounding, natural concise responses, standard-turn efficiency, and deterministic intelligence eval diagnostics. Clear execution must continue the exact mission through Gate, merge, release, and claim-matched proof. Visual Witness stays opt-in only. Ship one focused platform PR through canonical Gate, squash merge, cc-execution release, and live runtime/eval proof.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":[],"anchored_edits":[{"path":"workers/cc-execution/src/platform-sidekick-intelligence.js","edits":[{"new_content":"export const PLATFORM_SIDEKICK_INTELLIGENCE_VERSION=\"platform-sidekick-intelligence-v13-continuation-context\";","old_content":"export const PLATFORM_SIDEKICK_INTELLIGENCE_VERSION=\"platform-sidekick-intelligence-v12-latency-balanced-deep\";"},{"new_content":"function latestUserMessage(messages=[]){for(let i=(Array.isArray(messages)?messages.length:0)-1;i>=0;i--){if(String(messages[i]?.role||\"\").toLowerCase()===\"user\"&&!/^\\[Tool result/i.test(String(messages[i]?.content||\"\")))return text(messages[i]?.content,12000)}return\"\"}\nfunction continuationRecoveryDirective(messages){const list=Array.isArray(messages)?messages:[],latest=latestUserMessage(list),continuation=/^(?:continue|keep going|status|poll|progress|where are we|do it|fix it|make it happen|handle it|finish it|ship it)[?.!\\s]*$/i.test(latest);if(!continuation)return\"\";const source=list.slice(-28).map(item=>String(item?.content||\"\")).join(\"\\n\"),missionIds=[...new Set([...source.matchAll(/\\b[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\\b/ig)].map(match=>match[0]))].slice(-3),prs=[...new Set([...source.matchAll(/\\bPR\\s*#\\s*(\\d+)\\b/ig)].map(match=>match[1]))].slice(-3),routes=[...new Set([...source.matchAll(/https:\\/\\/app\\.knocklaunch\\.app\\/[^\\s)\\]}>,]+|\\/(?:admin|tenant|bigpapi|tennex|pcg|redfish|speedy-panda)[A-Za-z0-9_./-]*/ig)].map(match=>match[0]))].slice(-4);if(!missionIds.length&&!prs.length&&!routes.length)return\"\";return`Durable continuation recovery is active. The owner issued a short continuation command. Reuse the exact grounded work identifiers already present instead of starting over or asking for them again. Known recent mission IDs: ${missionIds.join(\", \")||\"none\"}. Recent PRs: ${prs.join(\", \")||\"none\"}. Recent routes: ${routes.join(\", \")||\"none\"}. Prefer the latest coherent active work item. Use available read/status/continue tools to confirm current truth before mutation. Never invent an identifier, tenant, route, or completion state.`}","old_content":"function latestUserMessage(messages=[]){for(let i=(Array.isArray(messages)?messages.length:0)-1;i>=0;i--){if(String(messages[i]?.role||\"\").toLowerCase()===\"user\"&&!/^\\[Tool result/i.test(String(messages[i]?.content||\"\")))return text(messages[i]?.content,12000)}return\"\"}"},{"new_content":"  const bareContinuation=/^(?:continue|keep going|status|poll|progress|where are we|do it|fix it|make it happen|handle it|finish it|ship it)[?.!\\s]*$/i.test(prompt);\n  const directOperation=/^(?:please\\s+)?(?:fix|repair|change|implement|build|add|remove|update|deploy|ship|merge|release|make|handle)\\b/i.test(prompt)||bareContinuation;\n  const complex=/\\b(analy[sz]e|diagnos|root cause|improv|upgrade|optimi[sz]|harden|refactor|redesign|architect|audit|compare|investigate|debug|repair|implement|build|plan|strategy|why|tradeoff|contradict|ambiguous|continue improving|make .* smarter)\\b/i.test(prompt);","old_content":"  const directOperation=/^(?:please\\s+)?(?:fix|repair|change|implement|build|add|remove|update|deploy|ship|merge|release|make|handle)\\b/i.test(prompt)||/^(?:do it|make it happen|handle it|status|poll|progress|where are we|continue|keep going)[?.!\\s]*$/i.test(prompt);\n  const complex=/\\b(analy[sz]e|diagnos|root cause|improv|upgrade|optimi[sz]|harden|refactor|redesign|architect|audit|compare|investigate|debug|repair|implement|build|plan|strategy|why|tradeoff|contradict|ambiguous|continue improving|make .* smarter)\\b/i.test(prompt);"},{"new_content":"  if(bareContinuation)return\"standard\";\n  if(iterative||recentOwnerProgress||correctionHeavy||conversationDepthSignals)return\"deep\";\n  if((hasToolEvidence&&deepComplex&&(clauseCount>=2||prompt.length>700))||(structured&&deepComplex))return\"deep\";\n  if(directOperation)return\"standard\";","old_content":"  if(iterative||recentOwnerProgress||correctionHeavy||conversationDepthSignals)return\"deep\";\n  if((hasToolEvidence&&deepComplex&&(clauseCount>=2||prompt.length>700))||(structured&&deepComplex))return\"deep\";\n  if(directOperation)return\"standard\";"},{"new_content":"reasoningProfile=reasoningProfileOf(input,catalog,input.messages,structured),normalized=normalizeMessages(input.messages,reasoningProfile===\"deep\"?96:48),correctionDirective=correctionRecoveryDirective(normalized),referentDirective=referentRecoveryDirective(normalized),continuationDirective=continuationRecoveryDirective(normalized),groundingDirectives=[correctionDirective,referentDirective,continuationDirective].filter(Boolean),groundedMessages=","old_content":"reasoningProfile=reasoningProfileOf(input,catalog,input.messages,structured),normalized=normalizeMessages(input.messages,reasoningProfile===\"deep\"?96:48),correctionDirective=correctionRecoveryDirective(normalized),referentDirective=referentRecoveryDirective(normalized),groundingDirectives=[correctionDirective,referentDirective].filter(Boolean),groundedMessages="},{"new_content":"responseSchema:envelope(),reasoningProfile:reasoningProfile===\"deep\"?\"deep\":\"standard\"});","old_content":"responseSchema:envelope(),reasoningProfile:\"deep\"});"}]},{"path":"workers/cc-execution/src/version.js","edits":[{"new_content":"export const CC_EXECUTION_VERSION = \"1.64.58-paul-continuation-context\";","old_content":"export const CC_EXECUTION_VERSION = \"1.64.57-paul-latency-balanced-deep\";"}]}],"implementation":{"files":[],"writes":[]},"requestContract":{"intent":{"rawUtterance":"Majorly improve PAUL's production conversational intelligence on current main, preserving provider-neutral Mission Freedom and all tenant/security invariants. Improve conversational continuity, referent/correction recovery, durable mission continuation after chat loss, decisive execution intent handling, current Prime grounding, natural concise responses, standard-turn efficiency, and deterministic intelligence eval diagnostics. Clear execution must continue the exact mission through Gate, merge, release, and claim-matched proof. Visual Witness stays opt-in only. Ship one focused platform PR through canonical Gate, squash merge, cc-execution release, and live runtime/eval proof.","wordingChanged":false,"canonicalIntent":"Majorly improve PAUL's production conversational intelligence on current main, preserving provider-neutral Mission Freedom and all tenant/security invariants. Improve conversational continuity, referent/correction recovery, durable mission continuation after chat loss, decisive execution intent handling, current Prime grounding, natural concise responses, standard-turn efficiency, and deterministic intelligence eval diagnostics. Clear execution must continue the exact mission through Gate, merge, release, and claim-matched proof. Visual Witness stays opt-in only. Ship one focused platform PR through canonical Gate, squash merge, cc-execution release, and live runtime/eval proof.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"paul-intelligence","statement":"Majorly improve PAUL's production conversational intelligence on current main, preserving provider-neutral Mission Freedom and all tenant/security invariants. Improve conversational continuity, referent/correction recovery, durable mission continuation after chat loss, decisive execution intent handling, current Prime grounding, natural concise responses, standard-turn efficiency, and deterministic intelligence eval diagnostics. Clear execution must continue the exact mission through Gate, merge, release, and claim-matched proof. Visual Witness stays opt-in only. Ship one focused platform PR through canonical Gate, squash merge, cc-execution release, and live runtime/eval proof.","provenance":{"reason":"Owner requested major PAUL improvement.","source":"current_explicit_owner_request","inherited":false,"blockingAuthority":true},"proofConditionIds":["paul-intelligence-live"]}],"objective":"Majorly improve PAUL's production conversational intelligence on current main, preserving provider-neutral Mission Freedom and all tenant/security invariants. Improve conversational continuity, referent/correction recovery, durable mission continuation after chat loss, decisive execution intent handling, current Prime grounding, natural concise responses, standard-turn efficiency, and deterministic intelligence eval diagnostics. Clear execution must continue the exact mission through Gate, merge, release, and claim-matched proof. Visual Witness stays opt-in only. Ship one focused platform PR through canonical Gate, squash merge, cc-execution release, and live runtime/eval proof.","constraints":[{"id":"mission-freedom","statement":"Preserve provider-neutral Mission Freedom and replaceable fallback order.","provenance":{"reason":"Owner requirement.","source":"owner_explicit_request","inherited":false,"blockingAuthority":true},"proofConditionIds":["paul-intelligence-live"]},{"id":"security","statement":"Preserve tenant isolation, authorization, credential boundaries, and fail-closed behavior.","provenance":{"reason":"Platform safety invariant.","source":"hard_safety_invariant","inherited":false,"blockingAuthority":true},"proofConditionIds":["paul-intelligence-live"]},{"id":"release-safety","statement":"Preserve canonical Gate, squash merge, affected-target release, and claim-matched runtime proof.","provenance":{"reason":"Release invariant.","source":"hard_safety_invariant","inherited":false,"blockingAuthority":true},"proofConditionIds":["paul-intelligence-live"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"paul-intelligence-live","kind":"runtime","claim":"The upgraded PAUL runtime is live on the merged source lineage and the hard intelligence regressions remain green.","required":true,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":["ccExecution"],"requireCapacityAdmissible":false,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}]},"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":"0b725aea-51e6-4899-9e08-f31bb1ae6ff4","ownerApproved":true,"releaseIntent":null,"sourceTargets":[],"requestContract":{"intent":{"rawUtterance":"Majorly improve PAUL's production conversational intelligence on current main, preserving provider-neutral Mission Freedom and all tenant/security invariants. Improve conversational continuity, referent/correction recovery, durable mission continuation after chat loss, decisive execution intent handling, current Prime grounding, natural concise responses, standard-turn efficiency, and deterministic intelligence eval diagnostics. Clear execution must continue the exact mission through Gate, merge, release, and claim-matched proof. Visual Witness stays opt-in only. Ship one focused platform PR through canonical Gate, squash merge, cc-execution release, and live runtime/eval proof.","wordingChanged":false,"canonicalIntent":"Majorly improve PAUL's production conversational intelligence on current main, preserving provider-neutral Mission Freedom and all tenant/security invariants. Improve conversational continuity, referent/correction recovery, durable mission continuation after chat loss, decisive execution intent handling, current Prime grounding, natural concise responses, standard-turn efficiency, and deterministic intelligence eval diagnostics. Clear execution must continue the exact mission through Gate, merge, release, and claim-matched proof. Visual Witness stays opt-in only. Ship one focused platform PR through canonical Gate, squash merge, cc-execution release, and live runtime/eval proof.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"paul-intelligence","statement":"Majorly improve PAUL's production conversational intelligence on current main, preserving provider-neutral Mission Freedom and all tenant/security invariants. Improve conversational continuity, referent/correction recovery, durable mission continuation after chat loss, decisive execution intent handling, current Prime grounding, natural concise responses, standard-turn efficiency, and deterministic intelligence eval diagnostics. Clear execution must continue the exact mission through Gate, merge, release, and claim-matched proof. Visual Witness stays opt-in only. Ship one focused platform PR through canonical Gate, squash merge, cc-execution release, and live runtime/eval proof.","provenance":{"reason":"Owner requested major PAUL improvement.","source":"current_explicit_owner_request","inherited":false,"blockingAuthority":true},"proofConditionIds":["paul-intelligence-live"]}],"objective":"Majorly improve PAUL's production conversational intelligence on current main, preserving provider-neutral Mission Freedom and all tenant/security invariants. Improve conversational continuity, referent/correction recovery, durable mission continuation after chat loss, decisive execution intent handling, current Prime grounding, natural concise responses, standard-turn efficiency, and deterministic intelligence eval diagnostics. Clear execution must continue the exact mission through Gate, merge, release, and claim-matched proof. Visual Witness stays opt-in only. Ship one focused platform PR through canonical Gate, squash merge, cc-execution release, and live runtime/eval proof.","constraints":[{"id":"mission-freedom","statement":"Preserve provider-neutral Mission Freedom and replaceable fallback order.","provenance":{"reason":"Owner requirement.","source":"owner_explicit_request","inherited":false,"blockingAuthority":true},"proofConditionIds":["paul-intelligence-live"]},{"id":"security","statement":"Preserve tenant isolation, authorization, credential boundaries, and fail-closed behavior.","provenance":{"reason":"Platform safety invariant.","source":"hard_safety_invariant","inherited":false,"blockingAuthority":true},"proofConditionIds":["paul-intelligence-live"]},{"id":"release-safety","statement":"Preserve canonical Gate, squash merge, affected-target release, and claim-matched runtime proof.","provenance":{"reason":"Release invariant.","source":"hard_safety_invariant","inherited":false,"blockingAuthority":true},"proofConditionIds":["paul-intelligence-live"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"paul-intelligence-live","kind":"runtime","claim":"The upgraded PAUL runtime is live on the merged source lineage and the hard intelligence regressions remain green.","required":true,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":["ccExecution"],"requireCapacityAdmissible":false,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}]},"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":["workers/cc-execution/src/platform-sidekick-intelligence.js","workers/cc-execution/src/version.js"],"controlPlaneMaintenanceReason":"Owner-authorized PAUL conversational continuity, durable continuation, and inference efficiency hardening."},"proofRequirements":null,"controlPlaneUnfreeze":true,"durableMutationResume":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":["workers/cc-execution/src/platform-sidekick-intelligence.js","workers/cc-execution/src/version.js"],"controlPlaneMaintenanceReason":"Owner-authorized PAUL conversational continuity, durable continuation, and inference efficiency hardening."},"recovery":false,"fingerprint":"b9e75466323a6b40f0cae2bb92ea1845325be535f900643acdedae5537030988","replayCount":0,"serializedBytes":16769},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T23:15:43.380645+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:0b725aea-51e6-4899-9e08-f31bb1ae6ff4:repository-mutation-intent:b9e75466323a6b40f0cae2bb92ea1845325be535f900643acdedae5537030988:0","mission_step_id":"cd651bf3-aa50-472c-825c-3f78b2af7c8a","command_center_event_id":"0b725aea-51e6-4899-9e08-f31bb1ae6ff4"},{"id":"1317846b-398f-4bdb-9c3b-51b358e56023","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"d839cec46ed1bddc2da453c670bc0eee8e9419c6","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-1","satisfied":true,"statement":"A canonical app-facing Tenant Media primitive exists and current MODES plus proposal asset resolution consume it without changing existing tenant media data or storage contracts.","proofConditionIds":["proof-repo","proof-production"]}],"satisfied":true,"constraints":[{"id":"constraint-1","satisfied":true,"statement":"Do not rename or migrate existing buckets or rewrite tenant media data in this pass.","proofConditionIds":["proof-repo","proof-production"]},{"id":"constraint-2","satisfied":true,"statement":"Preserve private tenant isolation and use tenant_id plus registered bucket_name/storage_key as authority.","proofConditionIds":["proof-repo","proof-production"]},{"id":"constraint-3","satisfied":true,"statement":"Preserve existing supabase-storage:// proposal references and MODES storage semantics.","proofConditionIds":["proof-repo","proof-production"]},{"id":"constraint-4","satisfied":true,"statement":"Avoid DB schema changes unless current source proves one is strictly necessary.","proofConditionIds":["proof-repo"]}],"contractHash":"e255d91e8474c69f11b6461ac1da569203e1cc3dbe665d0565eb5a02284e6cc6","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"proof-repo","kind":"repository","evidence":{"repositoryProofGate":"request_contract_repository_verified","requestContractHash":"e255d91e8474c69f11b6461ac1da569203e1cc3dbe665d0565eb5a02284e6cc6","repositoryProofStatus":"verified","repositoryProofSourceSha":"d839cec46ed1bddc2da453c670bc0eee8e9419c6"},"required":true,"satisfied":true},{"id":"proof-production","kind":"runtime","evidence":{"releaseState":"verified","activeReleaseTargets":["frontend"],"releaseRequestContractHash":"e255d91e8474c69f11b6461ac1da569203e1cc3dbe665d0565eb5a02284e6cc6"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["frontend"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-11T23:57:04.704617+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"d839cec46ed1bddc2da453c670bc0eee8e9419c6","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:3c9c7b2c-9ad3-4eba-b110-a17b882a1436:request-contract:e255d91e8474c69f11b6461ac1da569203e1cc3dbe665d0565eb5a02284e6cc6:d839cec46ed1bddc2da453c670bc0eee8e9419c6:verified:","mission_step_id":"bddbcda3-fc69-4415-8f59-3ad80ddd1356","command_center_event_id":"3c9c7b2c-9ad3-4eba-b110-a17b882a1436"},{"id":"1319d072-0f5b-40bb-ba45-7d493592b793","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"69b91e4677e0fc4e8a68d88172d0aa4d74d4ba30","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"repair","satisfied":true,"statement":"PR #1303 is merged and its affected cc-execution runtime is actually live at version 1.58.3-speed-proof-accuracy.","proofConditionIds":["repo","runtime"]},{"id":"refreeze","satisfied":true,"statement":"The control plane remains frozen after the released generation.","proofConditionIds":["repo"]}],"satisfied":true,"constraints":[],"contractHash":"f6506f12f0f3690c91860cbb18a4e84f592de06ade02f5926568e58e2b55b4a5","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"repo","kind":"repository","evidence":{"releaseState":"verified","releaseRequestContractHash":"f6506f12f0f3690c91860cbb18a4e84f592de06ade02f5926568e58e2b55b4a5"},"required":true,"satisfied":true},{"id":"runtime","kind":"runtime","evidence":{"releaseState":"verified","activeReleaseTargets":["ccExecution"],"releaseRequestContractHash":"f6506f12f0f3690c91860cbb18a4e84f592de06ade02f5926568e58e2b55b4a5"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["ccExecution"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":7},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-01T20:48:43.222231+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"69b91e4677e0fc4e8a68d88172d0aa4d74d4ba30","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:5357e24e-a775-4ce8-a74c-53a168591c15:request-contract:f6506f12f0f3690c91860cbb18a4e84f592de06ade02f5926568e58e2b55b4a5:69b91e4677e0fc4e8a68d88172d0aa4d74d4ba30:verified:","mission_step_id":"6c5875fe-688d-43d0-bfa5-1438e044fddc","command_center_event_id":"5357e24e-a775-4ce8-a74c-53a168591c15"},{"id":"131f71d6-3c39-46fc-ac7f-65b7b12aa8ac","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"6c66eda73ab27557becbbffc71f651ca9ccadb09","priorProofGate":"canonical_release_terminal_verified","requestContractHash":"b151bf3d5fd32866aea4db4e4369cc86eb67e5baa60e1b6fe473450540cc8995","reconciliationReason":"durable_terminal_release_proof_reused","durableReleaseProofReused":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-16T04:45:14.560055+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"6c66eda73ab27557becbbffc71f651ca9ccadb09","external_id":"forgejo-main-6c66eda73ab2","receipt_type":"canonical_release_status","idempotency_key":"mission:25776a3e-f543-4fb8-921f-4747b7def5a8:durable-terminal-release-proof:6c66eda73ab27557becbbffc71f651ca9ccadb09:b151bf3d5fd32866aea4db4e4369cc86eb67e5baa60e1b6fe473450540cc8995","mission_step_id":"200ec4fd-9140-4040-a6c3-bcaf78c6bd3c","command_center_event_id":"25776a3e-f543-4fb8-921f-4747b7def5a8"},{"id":"131ffc57-e205-4912-acb6-89f1f46b9796","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\":\"canonical_release_status\",\"status\":\"pending\",\"proofGate\":\"canonical_release_pending\"},\"activeStep\":{\"key\":\"implementation\",\"status\":\"waiting\",\"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},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_release\",\"recoveryOwner\":\"production-release-conductor\"},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"visual_proof\",\"deadlineAt\":\"2026-10-05T20:11:08.877361+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/objective-first-repair-711a68cb9cbb\",\"prNumber\":4972,\"sourceSha\":\"58f895d0be42f89e1ac6ffe947026160747a8a8f\",\"deploymentId\":\"forgejo-main-58f895d0be42\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-05T16:15:06.058289+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:711a68cb-9cbb-4228-a0d4-8ce32eb889e2:owner-progress-heartbeat:119414460","mission_step_id":"b9f38403-f7ef-44f2-bac4-793b71a528bd","command_center_event_id":"711a68cb-9cbb-4228-a0d4-8ce32eb889e2"},{"id":"1320316e-754f-4b88-8393-53e0d6253e76","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"03a14c2ef3574a7b0a75ee4fb32dc87da7c6e125","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"repair-gate","satisfied":true,"statement":"Existing PR #3905 contains valid JavaScript with the intended AI Kernel integration and proceeds through canonical Gate/release.","proofConditionIds":["runtime-proof"]}],"satisfied":true,"constraints":[{"id":"same-pr","satisfied":true,"statement":"Preserve mission f6735018-2876-46bb-98ee-2dbf952606bd, branch ai/objective-first-repair-f67350182876, and PR #3905; change only the exact syntax-encoding defect.","proofConditionIds":["runtime-proof"]},{"id":"bounded-unfreeze","satisfied":true,"statement":"Temporarily unfreeze only workers/cc-execution/src/console-operator.js for this corrective commit and return to frozen-by-default after release.","proofConditionIds":["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":["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":["runtime-proof"]}],"contractHash":"6c113384831331d9b7534f464f6aedb02d193ba0fe017477ed8c766ddbe7a6e9","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"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":"6c113384831331d9b7534f464f6aedb02d193ba0fe017477ed8c766ddbe7a6e9"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["ccExecution"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":2},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-27T21:34:29.842598+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"03a14c2ef3574a7b0a75ee4fb32dc87da7c6e125","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:f6735018-2876-46bb-98ee-2dbf952606bd:request-contract:6c113384831331d9b7534f464f6aedb02d193ba0fe017477ed8c766ddbe7a6e9:03a14c2ef3574a7b0a75ee4fb32dc87da7c6e125:verified:","mission_step_id":"333c537a-6818-4aa1-b572-b20576041793","command_center_event_id":"f6735018-2876-46bb-98ee-2dbf952606bd"},{"id":"1320cc97-c95b-4ca7-b418-14bd5cc91117","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/internal-email-dispatch-proof-20260818","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":6814,"releaseCount":0,"toolCallCount":6,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.47.4-pr-native-freshness","prNumber":408,"terminal":false,"missionId":"6ad05721-869e-47f6-a3de-b26e5be46353","operation":"execute_mission","proofGate":"canonical_release_dispatched","sourceSha":"b7558dcfe93eeea46ae3de136d43a0b80bc5ea65","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"6ad05721-869e-47f6-a3de-b26e5be46353"},"performance":null,"deploymentId":"forgejo-main-b7558dcfe93e","workflowRunId":1406,"releaseTargets":{"frontend":false,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":true,"edgeFunctionSlugs":["process-email-queue","send-transactional-email"]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":6533,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-19T04:06:50.601145+00:00","proof_gate":"canonical_release_dispatched","source_sha":"b7558dcfe93eeea46ae3de136d43a0b80bc5ea65","external_id":"forgejo-main-b7558dcfe93e","receipt_type":"execute_mission","idempotency_key":"mission:6ad05721-869e-47f6-a3de-b26e5be46353:execute_mission:canonical_release_dispatched","mission_step_id":"9daba91d-4c5a-467b-81ed-56b1b5c6fc98","command_center_event_id":"6ad05721-869e-47f6-a3de-b26e5be46353"},{"id":"132390bf-439e-48dd-a703-8b1949967e12","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/control-plane-gate-capacity-proof-20260904","reason":"fresh_pr_provider_receipt_already_proves_auto_progress_gate_notifier_owns_next_state","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.49-control-plane-gate-capacity-refreeze","prNumber":1709,"terminal":false,"missionId":"f15718c8-e8a7-4f81-bb96-083fe4d341b8","operation":"execute_mission","proofGate":"repair_mission_fresh_pr_handed_off_to_gate","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":5473,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":0,"missionSetupMs":1142,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":1142,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":1142,"repositoryMutationMs":5473,"repositoryProviderMs":3716,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":1827,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":1142,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":1889},"nextAction":"Canonical KnockLaunch Gate notifier and mission supervisor own progression from this exact PR head; do not synchronously poll Forgejo from the owner request.","receiptRef":{"mode":"full","missionId":"f15718c8-e8a7-4f81-bb96-083fe4d341b8"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3472,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-04T14:00:22.561396+00:00","proof_gate":"repair_mission_fresh_pr_handed_off_to_gate","source_sha":null,"external_id":"1709","receipt_type":"execute_mission","idempotency_key":"mission:f15718c8-e8a7-4f81-bb96-083fe4d341b8:execute_mission:repair_mission_fresh_pr_handed_off_to_gate:current-generation","mission_step_id":"559d5b6c-258a-4fcf-ae76-2982283adcc2","command_center_event_id":"f15718c8-e8a7-4f81-bb96-083fe4d341b8"},{"id":"1323a57a-ab41-4a57-8747-8b57df1dd3f0","source":"forgejo-exact-source","status":"verified","payload":{"sourceSha":"e61b410678c0cf2af2f4f408bc9382c5cefa2138","repository":"noel/KnockLaunchOS","repositoryProofs":[{"id":"proof-repository","path":null,"proof":"forgejo_merged_pr_exact_head_gate","headSha":"501ef0ae9a508694702babcc5b0418cbd8af2c31","prNumber":4296,"gateRunId":13545,"gateContext":"KnockLaunch Gate / KnockLaunch Gate (pull_request)","expectedText":null,"gateTargetUrl":"/noel/KnockLaunchOS/actions/runs/13545/jobs/1","mergeCommitSha":"e61b410678c0cf2af2f4f408bc9382c5cefa2138"}],"requestContractHash":"2f07d9aab7561d314c703f96c2c27ac00d0795173de2ba4171e3fb73b9114ca3","namedGateEvidenceReceiptVersion":null},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-01T01:05:12.667676+00:00","proof_gate":"request_contract_repository_verified","source_sha":"e61b410678c0cf2af2f4f408bc9382c5cefa2138","external_id":null,"receipt_type":"request_contract_repository_status","idempotency_key":"mission:82187a1f-58b6-4681-869a-2c67d474a1ea:request-contract-repository:2f07d9aab7561d314c703f96c2c27ac00d0795173de2ba4171e3fb73b9114ca3:e61b410678c0cf2af2f4f408bc9382c5cefa2138","mission_step_id":"a04b0d76-f015-41c4-8fac-d546bce5ef81","command_center_event_id":"82187a1f-58b6-4681-869a-2c67d474a1ea"},{"id":"13251e36-3908-4584-b6e8-ff83198a7067","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-mtbh8ksd","reason":"pull_request_checks_pending","status":"waiting_for_gate","metrics":{"receiptBytes":5007,"releaseCount":0,"toolCallCount":4,"repeatedCallCount":1,"ownerInterruptionCount":0},"version":"1.52.9-exact-open-pr-green-merge","prNumber":818,"terminal":false,"missionId":"c8171e23-33e8-4558-b131-ecf1eeaa8c16","operation":"execute_mission","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"handlerMs":1350,"prReadinessMs":1339,"approvedPlanMs":0,"missionSetupMs":720,"shipAndProveMs":0},"nextAction":"Reconcile this same mission and pull request after the exact-head KnockLaunch Gate changes state.","receiptRef":{"mode":"full","missionId":"c8171e23-33e8-4558-b131-ecf1eeaa8c16"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5632,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"766cfaa7-ac42-46c8-bbef-69d13268a29d","created_at":"2026-08-27T12:08:44.449295+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"818","receipt_type":"execute_mission","idempotency_key":"mission:c8171e23-33e8-4558-b131-ecf1eeaa8c16:execute_mission:repair_mission_waiting_for_gate","mission_step_id":"f32ba4df-7321-4d26-ae7e-122490308867","command_center_event_id":"c8171e23-33e8-4558-b131-ecf1eeaa8c16"},{"id":"1326291a-f5bc-4eac-abc9-141af864a59e","source":"cc-execution","status":"waiting","payload":{"kind":"heartbeat","message":"Still active in reasoning required.","nextAction":{"lane":"cc-execution","action":"continue_implementation","reason":"synthesis_required","handoff":null,"capability":"heavy-build-gate","automationAllowed":true,"ownerActionRequired":false,"resumeFromCheckpoint":"preflight"},"silenceBudgetMs":15000,"semanticCheckpointSignature":"{\"stateMachineVersion\":1,\"phase\":\"reasoning_required\",\"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\":\"ready\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"continue_implementation\",\"lane\":\"cc-execution\",\"reason\":\"synthesis_required\",\"automationAllowed\":true,\"ownerActionRequired\":false,\"capability\":\"heavy-build-gate\",\"resumeFromCheckpoint\":\"preflight\",\"handoff\":null},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"continue_implementation\",\"recoveryOwner\":\"cc-execution\",\"capability\":\"heavy-build-gate\",\"resumeFromCheckpoint\":\"preflight\",\"handoff\":null},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"pull_request\",\"deadlineAt\":\"2026-10-06T16:29:56.42109+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":null,\"prNumber\":null,\"sourceSha\":null,\"deploymentId\":null}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T14:00:38.614737+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:05c22b59-6cb7-4760-907b-a066d796a149:owner-progress-heartbeat:119419682","mission_step_id":"0e72a9fd-9985-43ec-a4da-672325555495","command_center_event_id":"05c22b59-6cb7-4760-907b-a066d796a149"},{"id":"1328f89d-7072-474b-aacc-787008118839","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/objective-first-repair-28af7fa0fd8a","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":"28af7fa0-fd8a-4404-b45b-6081b520a294","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1197,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":433,"providerAuthMs":0,"ledgerPrepareMs":433,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":433,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":433,"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":"28af7fa0-fd8a-4404-b45b-6081b520a294"},"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":4810,"likelyAffectedFiles":["supabase/functions/pcg-commerce-publisher/index.ts","src/pages/card-grading/PCGBatchPublishingCenter.tsx"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T01:18:27.70904+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:28af7fa0-fd8a-4404-b45b-6081b520a294:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"347b61ca-32a4-4c68-81e3-2af501651396","command_center_event_id":"28af7fa0-fd8a-4404-b45b-6081b520a294"},{"id":"132b24f9-fd25-4bf9-b218-9148660f6b7a","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-46f3e2dd759b","writes":[],"patches":[],"version":1,"approved":true,"missionId":"46f3e2dd-759b-4adf-87a0-bed7ebbbf10e","objective":"Control plane maintenance corrective generation: repair heavy cc execution releases by routing the heavy release job to `laptop-host`, update the inline Gate assertion to the same contract, and add/retain the release-architecture guard. This supersedes failed PR #4974, whose Gate proved the inline assertion was stale. Preserve light releases on docker-8g and all unrelated behavior. Do not use Desktop Commander or Visual Witness.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":[".forgejo/workflows/knocklaunch.yml","scripts/validate-release-architecture.mjs"],"anchored_edits":[{"path":".forgejo/workflows/knocklaunch.yml","edits":[{"new_content":"    runs-on: ${{ needs.release-plan.outputs.release_cc_execution_heavy == 'true' && 'laptop-host' || 'docker-8g' }}","old_content":"    runs-on: ${{ needs.release-plan.outputs.release_cc_execution_heavy == 'true' && 'docker' || 'docker-8g' }}"},{"new_content":"          grep -Fq \"release_cc_execution_heavy == 'true' && 'laptop-host' || 'docker-8g'\" <<< \"$release_cc_execution_block\"","old_content":"          grep -Fq \"release_cc_execution_heavy == 'true' && 'docker' || 'docker-8g'\" <<< \"$release_cc_execution_block\""}]},{"path":"scripts/validate-release-architecture.mjs","edits":[{"new_content":"for (const [jobName, groupName] of productionReleaseLeases) {\n  const start = workflowSource.indexOf(`\\n  ${jobName}:\\n`);\n  assert.ok(start >= 0, `canonical production release job missing: ${jobName}`);\n  const tail = workflowSource.slice(start + 1);\n  const nextJobMatch = tail.slice(2).match(/\\n  [a-z0-9][a-z0-9-]*:\\n/i);\n  const end = nextJobMatch ? start + 3 + nextJobMatch.index : workflowSource.length;\n  const block = workflowSource.slice(start, end);\n  assert.ok(block.includes(`group: ${groupName}`), `production release lease missing for ${jobName}: ${groupName}`);\n  assert.ok(block.includes(\"cancel-in-progress: false\"), `production release lease must not cancel in-flight work: ${jobName}`);\n}\nconst ccExecutionReleaseStart = workflowSource.indexOf(\"\\n  release-cc-execution:\\n\");\nconst ccExecutionReleaseTail = workflowSource.slice(ccExecutionReleaseStart + 1);\nconst ccExecutionReleaseNextJob = ccExecutionReleaseTail.slice(2).match(/\\n  [a-z0-9][a-z0-9-]*:\\n/i);\nconst ccExecutionReleaseEnd = ccExecutionReleaseNextJob ? ccExecutionReleaseStart + 3 + ccExecutionReleaseNextJob.index : workflowSource.length;\nconst ccExecutionReleaseBlock = workflowSource.slice(ccExecutionReleaseStart, ccExecutionReleaseEnd);\nassert.ok(\n  ccExecutionReleaseBlock.includes(\"release_cc_execution_heavy == 'true' && 'laptop-host' || 'docker-8g'\"),\n  \"heavy cc-execution releases must use the direct laptop-host Docker-capable runner while light releases stay on docker-8g\",\n);\n\nconst productionRunResolver","old_content":"for (const [jobName, groupName] of productionReleaseLeases) {\n  const start = workflowSource.indexOf(`\\n  ${jobName}:\\n`);\n  assert.ok(start >= 0, `canonical production release job missing: ${jobName}`);\n  const tail = workflowSource.slice(start + 1);\n  const nextJobMatch = tail.slice(2).match(/\\n  [a-z0-9][a-z0-9-]*:\\n/i);\n  const end = nextJobMatch ? start + 3 + nextJobMatch.index : workflowSource.length;\n  const block = workflowSource.slice(start, end);\n  assert.ok(block.includes(`group: ${groupName}`), `production release lease missing for ${jobName}: ${groupName}`);\n  assert.ok(block.includes(\"cancel-in-progress: false\"), `production release lease must not cancel in-flight work: ${jobName}`);\n}\n\nconst productionRunResolver"}]}],"implementation":{"files":[],"writes":[]},"requestContract":{"intent":{"rawUtterance":"Continue KNOCKLAUNCH optimization and repair the cc execution release blocker.","wordingChanged":true,"canonicalIntent":"Route heavy cc execution releases to laptop-host and align every canonical guard.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"heavy-host","statement":"Heavy cc execution releases run on laptop-host; light releases remain on docker-8g.","proofConditionIds":["proof-production"]},{"id":"guards","statement":"Both inline Gate and release-architecture validation enforce the same heavy laptop-host contract.","proofConditionIds":["proof-production"]}],"objective":"Control plane maintenance: atomically route heavy cc execution releases to laptop-host and align both validation guards.","constraints":[{"id":"scope","statement":"Only modify the canonical Forgejo workflow and release-architecture validator.","proofConditionIds":["proof-production"]},{"id":"no-dc","statement":"Do not use or depend on Desktop Commander.","proofConditionIds":["proof-production"]},{"id":"no-vw-proof","statement":"Do not invoke Visual Witness as proof.","proofConditionIds":["proof-production"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"runtime","claim":"A canonical heavy cc execution release succeeds and live cc-execution runtime matches released source.","required":true,"requiredReleaseTargets":["ccExecution"]}]},"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":null,"ownerApproved":true,"releaseIntent":null,"sourceTargets":[".forgejo/workflows/knocklaunch.yml","scripts/validate-release-architecture.mjs"],"requestContract":{"intent":{"rawUtterance":"Continue KNOCKLAUNCH optimization and repair the cc execution release blocker.","wordingChanged":true,"canonicalIntent":"Route heavy cc execution releases to laptop-host and align every canonical guard.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"heavy-host","statement":"Heavy cc execution releases run on laptop-host; light releases remain on docker-8g.","proofConditionIds":["proof-production"]},{"id":"guards","statement":"Both inline Gate and release-architecture validation enforce the same heavy laptop-host contract.","proofConditionIds":["proof-production"]}],"objective":"Control plane maintenance: atomically route heavy cc execution releases to laptop-host and align both validation guards.","constraints":[{"id":"scope","statement":"Only modify the canonical Forgejo workflow and release-architecture validator.","proofConditionIds":["proof-production"]},{"id":"no-dc","statement":"Do not use or depend on Desktop Commander.","proofConditionIds":["proof-production"]},{"id":"no-vw-proof","statement":"Do not invoke Visual Witness as proof.","proofConditionIds":["proof-production"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"runtime","claim":"A canonical heavy cc execution release succeeds and live cc-execution runtime matches released source.","required":true,"requiredReleaseTargets":["ccExecution"]}]},"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[".forgejo/workflows/knocklaunch.yml","scripts/validate-release-architecture.mjs"],"controlPlaneMaintenanceReason":"Owner explicitly ordered continued optimization. PR #4974 correctly changed the heavy runner contract but Gate #15794 failed because a second inline assertion still required the old docker label. This corrective generation updates all three contract owners atomically."},"proofRequirements":null,"controlPlaneUnfreeze":true,"durableMutationResume":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":[".forgejo/workflows/knocklaunch.yml","scripts/validate-release-architecture.mjs"],"controlPlaneMaintenanceReason":"Owner explicitly ordered continued optimization. PR #4974 correctly changed the heavy runner contract but Gate #15794 failed because a second inline assertion still required the old docker label. This corrective generation updates all three contract owners atomically."},"recovery":false,"fingerprint":"314b132a8ba26ba9f1ba661d762531d9f4220b23510c4230ef6169b96f42ac6d","replayCount":0,"serializedBytes":8243},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-05T16:21:21.240469+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:46f3e2dd-759b-4adf-87a0-bed7ebbbf10e:repository-mutation-intent:314b132a8ba26ba9f1ba661d762531d9f4220b23510c4230ef6169b96f42ac6d:0","mission_step_id":"a34e13eb-00b1-42c6-9e1a-71ead44ce20e","command_center_event_id":"46f3e2dd-759b-4adf-87a0-bed7ebbbf10e"},{"id":"13314f0f-75ef-4a25-b88c-4f04ebba2f73","source":"forgejo-runtime","status":"failed","payload":{"failed":["forgejo-release/workflow","frontend-cloudflare/live"],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"failure","frontend-cloudflare/live":"failure","supabase-edge-production/live":"success"},"mainSha":"1f3baf475ee2d2655e23294f05e97c67776f7f6f","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","supabase-edge-production/live","frontend-cloudflare/live"],"sourceSha":"5c3db564ef99d9889ce507b5df9c24c5da721e7f","releaseState":"failed","sourceInMain":true,"compareStatus":"known_exact_protected_main_push_history","releaseTargets":{"frontend":true,"migrations":false,"ccExecution":false,"supabaseEdge":true},"releaseTargetStates":{"frontend":"failure","supabaseEdge":"success"},"requestContractHash":null,"forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/12821","runId":12821,"status":"failure","sourceSha":"5c3db564ef99d9889ce507b5df9c24c5da721e7f","conclusion":null,"failedJobs":[{"id":89018,"name":"Release frontend","status":"failure","conclusion":null,"failedSteps":[]}],"diagnostics":{"runId":12821,"logTail":["2026-09-29T01:27:41.0906989Z (node:169) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.","2026-09-29T01:27:41.0907412Z (Use `node --trace-deprecation ...` to show where the warning was created)","2026-09-29T01:27:41.3723344Z Cache Size: ~55 MB (57779696 B)","2026-09-29T01:27:41.3763238Z [command]/usr/bin/tar -xf /tmp/6e7a0525-c5bf-426b-ad1d-c71f62393b28/cache.tgz -P -C /workspace/noel/KnockLaunchOS -z","2026-09-29T01:27:42.5499935Z Cache restored successfully","2026-09-29T01:27:42.5807053Z Cache restored from key: knocklaunch-supabase-cli-v1-linux-node22-2.116.0","2026-09-29T01:27:43.4179016Z supabase_release_stage cli_prepare_ms=750 cache_hit=true version=2.116.0","2026-09-29T01:27:43.5962017Z supabase_release_stage resolve_ms=92 function_count=1","2026-09-29T01:27:44.5042962Z WARNING: Docker is not running","2026-09-29T01:27:44.6367483Z Uploading asset (pcg-commerce-publisher): supabase/functions/pcg-commerce-publisher/index.ts","2026-09-29T01:27:45.3949649Z Deployed Functions on project ymntrajfubicyxwwdxxa: pcg-commerce-publisher","2026-09-29T01:27:45.3951380Z You can inspect your deployment in the Dashboard: https://supabase.com/dashboard/project/ymntrajfubicyxwwdxxa/functions","2026-09-29T01:27:45.9774739Z supabase_release_stage function_deploy_ms=2377 function=pcg-commerce-publisher direct=true repair=false","2026-09-29T01:27:45.9793930Z supabase_release_stage deploy_total_ms=2381","2026-09-29T01:27:45.9924494Z skipping post step for 'Restore bounded Edge reconciliation circuit'; main step was skipped","2026-09-29T01:27:46.0089700Z ⭐ Run Post Restore pinned Supabase CLI cache","2026-09-29T01:27:46.0126004Z   🐳  docker exec cmd=[node /var/run/act/actions/13/74178a10fadf144d4598e00c95fad61e5d88843dafde1fc9f5a64b66b94d71/dist/save/index.js] user= workdir=","2026-09-29T01:27:46.2217130Z Cache hit occurred on the primary key knocklaunch-supabase-cli-v1-Linux-node22-2.116.0, not saving cache.","2026-09-29T01:27:46.2219575Z (node:264) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.","2026-09-29T01:27:46.2219888Z (Use `node --trace-deprecation ...` to show where the warning was created)","2026-09-29T01:27:46.2314275Z   ✅  Success - Post Restore pinned Supabase CLI cache","2026-09-29T01:27:46.2561755Z ⭐ Run Post https://data.forgejo.org/actions/checkout@v4","2026-09-29T01:27:46.2592863Z   🐳  docker exec cmd=[node /var/run/act/actions/0d/95a37e9311fbf1d1622bae8aac686c0f18fa6b706a39547a28eaeb457aef7a/dist/index.js] user= workdir=","2026-09-29T01:27:46.4322525Z [command]/usr/bin/git version","2026-09-29T01:27:46.4377572Z git version 2.39.5","2026-09-29T01:27:46.4407826Z   ⚙  ***","2026-09-29T01:27:46.4426537Z Temporarily overriding HOME='/tmp/19aa41e6-d73d-439a-b112-042eb1bc78a8' before making global git config changes","2026-09-29T01:27:46.4428366Z Adding repository directory to the temporary git global config as a safe directory","2026-09-29T01:27:46.4436849Z [command]/usr/bin/git config --global --add safe.directory /workspace/noel/KnockLaunchOS","2026-09-29T01:27:46.4512935Z [command]/usr/bin/git config --local --name-only --get-regexp core\\.sshCommand","2026-09-29T01:27:46.4580558Z [command]/usr/bin/git submodule foreach --recursive sh -c \"git config --local --name-only --get-regexp 'core\\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :\"","2026-09-29T01:27:46.5111328Z [command]/usr/bin/git config --local --name-only --get-regexp http\\.https\\:\\/\\/git\\.knocklaunch\\.app\\/\\.extraheader","2026-09-29T01:27:46.5152850Z http.https://git.knocklaunch.app/.extraheader","2026-09-29T01:27:46.5170482Z [command]/usr/bin/git config --local --unset-all http.https://git.knocklaunch.app/.extraheader","2026-09-29T01:27:46.5232927Z [command]/usr/bin/git submodule foreach --recursive sh -c \"git config --local --name-only --get-regexp 'http\\.https\\:\\/\\/git\\.knocklaunch\\.app\\/\\.extraheader' && git config --local --unset-all 'http.https://git.knocklaunch.app/.extraheader' || :\"","2026-09-29T01:27:46.5760888Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\\.gitdir:","2026-09-29T01:27:46.5828526Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url","2026-09-29T01:27:46.6446959Z   ✅  Success - Post https://data.forgejo.org/actions/checkout@v4","2026-09-29T01:27:46.6642920Z 🏁  Job succeeded",""],"proofGate":"forgejo_action_run_logs_verified","truncated":true,"failureLines":[{"line":2075,"content":"2026-09-29T01:30:06.8111313Z error: API request failed"},{"line":2078,"content":"2026-09-29T01:30:06.8112097Z     sentry reported an error: Invalid token (http status: 401)"},{"line":2082,"content":"2026-09-29T01:30:06.8541522Z ⚙️ [runner]: exitcode '1': failure"},{"line":2083,"content":"2026-09-29T01:30:06.9067192Z ::error::frontend_release_failure stage=deploy class=WRANGLER hint=no_failure_hint"},{"line":2088,"content":"2026-09-29T01:30:06.9185779Z ⚙️ [runner]: exitcode '1': failure"},{"line":2109,"content":"2026-09-29T01:30:07.4433667Z 🏁  Job failed"},{"line":2110,"content":"2026-09-29T01:30:11.3794635Z Job 'Release frontend' failed"}]},"exactSource":true,"fingerprint":"failure|release frontend|2026-09-29t01:30:06.8111313z error: api request failed|2026-09-29t01:30:06.8112097z     sentry reported an error: invalid token (http status: 401)|2026-09-29t01:30:06.8541522z ⚙️ [runner]: exitcode '1': failure|2026-09-29t01:30:06.9067192z ::error::frontend_release_failure stage=deploy class=wrangler hint=no_failure_hint|2026-09-29t01:30:06.9185779z ⚙️ [runner]: exitcode '1': failure|2026-09-29t01:30:07.4433667z 🏁  job failed|2026-09-29t01:30:11.3794635z job 'release frontend' failed|2026-09-29t01:27:41.0906989z (node:169) [dep0040] deprecationwarning: the `punycode` module is deprecated. please use a userland alternative instead.|2026-09-29t01:27:41.0907412z (use `node --trace-deprecation ...` to show where the warning was created)|2026-09-29t01:27:41.3723344z cache size: ~55 mb (57779696 b)|2026-09-29t01:27:41.3763238z [command]/usr/bin/tar -xf /tmp/6e7a0525-c5bf-426b-ad1d-c71f62393b28/cache.tgz -p -c /workspace/noel/knocklaunchos -z|2026-09-29t01:27:42.5499","failureClass":"code_failure","targetStates":{"frontend":"failure","supabaseEdge":"success"},"safeAutoRetry":false,"targetJobCount":6,"observedTargetStates":{"frontend":"failure","supabaseEdge":"success"}},"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":{"exact":true,"source":"exact_source_parent_diff_shared_release_owner_mapping","parentSha":"c3e65dc76380064e9b96feb869e8ff022c45437d","sourceSha":"5c3db564ef99d9889ce507b5df9c24c5da721e7f","changedPaths":["src/pages/card-grading/PCGBatchPublishingCenter.tsx","supabase/functions/pcg-commerce-publisher/index.ts"],"changedPathCount":2,"independentOfCurrentMainCompare":true},"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"fe5cc9d9-c2fe-4062-84c7-a334663cd63c","created_at":"2026-10-03T23:20:52.25009+00:00","proof_gate":"canonical_release_terminal_failed","source_sha":"5c3db564ef99d9889ce507b5df9c24c5da721e7f","external_id":null,"receipt_type":"canonical_release_status","idempotency_key":"mission:894e02e1-c575-4259-bc65-94d40b34dda8:forgejo-release-status:5c3db564ef99d9889ce507b5df9c24c5da721e7f:failed:forgejo-main/source=success|forgejo-release/workflow=failure|supabase-edge-production/live=success|frontend-cloudflare/live=failure","mission_step_id":"e0676293-b304-4dac-a140-2a5a70968857","command_center_event_id":"894e02e1-c575-4259-bc65-94d40b34dda8"},{"id":"1334b296-91b8-42ff-acd3-7e5b23affe51","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"950d2e1389c8f46c41c22e410f6139b9ca121bb2","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"guard","satisfied":true,"statement":"Apply the positive mutation admission guard in one clean corrective generation after Gate exposed stale intent-contract expectations. Require positive mutation evidence before ordinary /mission/execute work can create branches, PRs, writes, or releases; fail ambiguous intent closed with zero writes; keep read-only questions read-only; keep explicit action shorthand and durable mission continuation mutation-capable. Update both intent regression suites and the release reliability reference, then ship cc-execution live.","proofConditionIds":["live"]}],"satisfied":true,"constraints":[{"id":"zero-write","satisfied":true,"statement":"Unknown intent must be rejected before any repository mutation side effect.","proofConditionIds":["live"]},{"id":"preserve-actions","satisfied":true,"statement":"Explicit action shorthand and mission continuation remain mutation-capable.","proofConditionIds":["live"]},{"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":["live"]},{"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":["live"]}],"contractHash":"44d608723af5fa5dcb87a361f18e943762c4232a2e16e7e472e46e821a7cb28a","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"live","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":"44d608723af5fa5dcb87a361f18e943762c4232a2e16e7e472e46e821a7cb28a"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["ccExecution"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-05T16:51:27.723564+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"950d2e1389c8f46c41c22e410f6139b9ca121bb2","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:7e4ef184-9af7-4826-a02f-72081f22792a:request-contract:44d608723af5fa5dcb87a361f18e943762c4232a2e16e7e472e46e821a7cb28a:950d2e1389c8f46c41c22e410f6139b9ca121bb2:verified:","mission_step_id":"0ab08acd-916e-4615-b847-4b093abbade1","command_center_event_id":"7e4ef184-9af7-4826-a02f-72081f22792a"},{"id":"1334ed43-a0f8-4fc8-99fc-ed84fdbfcfe7","source":"onrunner","status":"failed","payload":{"ok":false,"jobId":"f39b2afa-051a-4592-a8c1-c6611387861f","phase":"universal_visual_witness_poll_failed","branch":"ai/objective-first-repair-8fab9106a8de","reason":"expected_text_missing:KNOCKLAUNCH LAB:/admin/console","status":"blocked","metrics":{"receiptBytes":109470,"releaseCount":0,"toolCallCount":34,"repeatedCallCount":18,"executorlessWaitMs":3043773,"firstUsefulResultAt":"2026-09-28T14:21:48.654Z","recoveryAttemptCount":4,"ownerInterruptionCount":0},"version":null,"prNumber":4000,"terminal":true,"missionId":"8fab9106-a8de-4203-a8a4-2e3f007112f9","operation":"visual_proof_status","proofGate":"interactive_visual_witness_failed","sourceSha":"fdc49a10d7da2685ce4e81af6a421017ab5bcba7","timingsMs":{"queue":1347,"total":30940,"execution":29593},"nextAction":null,"receiptRef":{"mode":"full","missionId":"8fab9106-a8de-4203-a8a4-2e3f007112f9"},"performance":null,"deploymentId":"forgejo-main-fdc49a10d7da","releaseState":"verified","visualWitness":{"role":"GodMode","jobId":"f39b2afa-051a-4592-a8c1-c6611387861f","tenant":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","runnerUrl":"https://laptop-witness.knocklaunch.app","runnerLane":"laptop","attemptsUsed":1,"supervisorId":"f39b2afa-051a-4592-a8c1-c6611387861f","failureReason":"expected_text_missing:KNOCKLAUNCH LAB:/admin/console","observedRoute":"/admin/console","runnerVersion":"laptop-cd17b09fdb31","attemptLineage":[{"jobId":"dc03e14c-000d-4bd6-ad21-e469ade200cf","attempt":1,"category":"application","sourceSha":"cd17b09fdb31a85433ce5c1c6f9cbbd563eced82","startedAt":"2026-09-28T15:08:33.482Z","completedAt":"2026-09-28T15:09:05.305Z","runtimeLane":"cc-execution -> Local Laptop -> universal-witness.mjs","browserEngine":"chromium","failureReason":"expected_text_missing:KNOCKLAUNCH LAB:/admin/console","retryRecovery":null,"runnerVersion":"laptop-cd17b09fdb31","browserLaunchReason":"interaction_only_headless","checkpointAccounting":{"route":{"required":2,"completed":0,"missingIds":["desktop::/admin/console","mobile::/admin/console"]},"action":{"required":6,"completed":0,"missingIds":["desktop::/admin/console::action::action-1","desktop::/admin/console::action::action-2","desktop::/admin/console::action::action-3","mobile::/admin/console::action::action-1","mobile::/admin/console::action::action-2","mobile::/admin/console::action::action-3"]},"missing":14,"resumed":0,"complete":false,"evidence":{"required":6,"completed":0,"missingIds":["desktop::/admin/console::evidence::preflight","desktop::/admin/console::evidence::before","desktop::/admin/console::evidence::after","mobile::/admin/console::evidence::preflight","mobile::/admin/console::evidence::before","mobile::/admin/console::evidence::after"]},"completed":0,"remaining":14,"duplicates":0,"duplicateIds":[],"expectedTotal":14}}],"missionOutcome":"application","requestedRoute":"/admin/console","runnerSourceSha":"cd17b09fdb31a85433ce5c1c6f9cbbd563eced82","selectedViewports":["desktop","mobile"],"checkpointAccounting":{"route":{"required":2,"completed":0,"missingIds":["desktop::/admin/console","mobile::/admin/console"]},"action":{"required":6,"completed":0,"missingIds":["desktop::/admin/console::action::action-1","desktop::/admin/console::action::action-2","desktop::/admin/console::action::action-3","mobile::/admin/console::action::action-1","mobile::/admin/console::action::action-2","mobile::/admin/console::action::action-3"]},"missing":14,"resumed":0,"complete":false,"evidence":{"required":6,"completed":0,"missingIds":["desktop::/admin/console::evidence::preflight","desktop::/admin/console::evidence::before","desktop::/admin/console::evidence::after","mobile::/admin/console::evidence::preflight","mobile::/admin/console::evidence::before","mobile::/admin/console::evidence::after"]},"completed":0,"remaining":14,"duplicates":0,"duplicateIds":[],"expectedTotal":14},"correctiveGeneration":0,"restartReplayHistory":[]},"workflowRunId":12566,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"ENDED","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":6073,"ownerActionRequired":false,"ownerFacingTerminal":true,"requestContractHash":"2dec2eccf1d120c8b09309a18ab900f65710335df2c5150cf8e90fdcdcf63692","continuationRequired":false,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T15:12:34.420146+00:00","proof_gate":"interactive_visual_witness_failed","source_sha":"laptop-cd17b09fdb31","external_id":"f39b2afa-051a-4592-a8c1-c6611387861f","receipt_type":"visual_proof_status","idempotency_key":"mission:8fab9106-a8de-4203-a8a4-2e3f007112f9:visual:f39b2afa-051a-4592-a8c1-c6611387861f:failed","mission_step_id":"4d57a31f-26df-4e47-a53b-88feff962d61","command_center_event_id":"8fab9106-a8de-4203-a8a4-2e3f007112f9"},{"id":"1337b159-2ea2-485a-98f1-e46a948867f6","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Separate PRIME OAuth authentication from normal KNOCKLAUNCH platform login while freezing the currently working signed-in OAuth consent behavior. Preserve the existing signed-in /auth/oauth/consent behavior exactly. Move only signed-out OAuth authentication to a dedicated /auth connector-authentication surface. Keep /login, /crm/login, app-specific login, tenant selection, and workspace routing unchanged. Add strict OAuth-only continuation validation and focused regression coverage. One fresh ai/* branch, one PR, KnockLaunch Gate, squash merge, frontend-only release, exact-artifact live proof.","wordingChanged":false,"canonicalIntent":"Separate PRIME OAuth authentication from normal KNOCKLAUNCH platform login while freezing the currently working signed-in OAuth consent behavior. Preserve the existing signed-in /auth/oauth/consent behavior exactly. Move only signed-out OAuth authentication to a dedicated /auth connector-authentication surface. Keep /login, /crm/login, app-specific login, tenant selection, and workspace routing unchanged. Add strict OAuth-only continuation validation and focused regression coverage. One fresh ai/* branch, one PR, KnockLaunch Gate, squash merge, frontend-only release, exact-artifact live proof.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"signed-in-oauth-frozen","statement":"The currently working signed-in PRIME OAuth consent path remains behaviorally unchanged and is protected by focused regression coverage.","proofConditionIds":["repo-proof","production-proof"]},{"id":"oauth-auth-separated","statement":"Signed-out PRIME OAuth authentication uses a dedicated /auth connector-login surface that can only resume a validated /auth/oauth/consent authorization request and never enters tenant/app/workspace routing.","proofConditionIds":["repo-proof","production-proof"]},{"id":"platform-login-preserved","statement":"Normal /login, /crm/login, and app-specific login routes preserve the existing platform tenant/app/workspace behavior.","proofConditionIds":["repo-proof","production-proof"]}],"objective":"Separate PRIME OAuth authentication from normal KNOCKLAUNCH platform login while freezing the currently working signed-in OAuth consent behavior. Preserve the existing signed-in /auth/oauth/consent behavior exactly. Move only signed-out OAuth authentication to a dedicated /auth connector-authentication surface. Keep /login, /crm/login, app-specific login, tenant selection, and workspace routing unchanged. Add strict OAuth-only continuation validation and focused regression coverage. One fresh ai/* branch, one PR, KnockLaunch Gate, squash merge, frontend-only release, exact-artifact live proof.","constraints":[{"id":"frontend-only","statement":"No backend, database, OAuth-provider, tenant-data, or Command Center runtime source changes are allowed; this is frontend auth-entry/routing only.","proofConditionIds":["repo-proof","production-proof"]},{"id":"no-platform-resolution-in-oauth-auth","statement":"The dedicated OAuth authentication surface must not read or mutate active tenant storage, resolve applications/workspaces, use last-route state, or navigate to /select-tenant.","proofConditionIds":["repo-proof"]},{"id":"strict-continuation","statement":"OAuth returnTo must reject external, protocol-relative, malformed, encoded-slash/backslash, or non-/auth/oauth/consent destinations and require authorization_id.","proofConditionIds":["repo-proof"]},{"id":"canonical-release","statement":"The change must pass KnockLaunch Gate, squash-merge through Forgejo, and release only the frontend production owner.","proofConditionIds":["production-proof"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"repo-proof","kind":"repository","claim":"Current Forgejo source at the merged generation contains a dedicated connector-auth /auth route, strict OAuth-only continuation validation, unchanged signed-in OAuthConsent approval logic, unchanged platform login ownership, and focused regression coverage for those contracts.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"production-proof","kind":"runtime","claim":"The exact merged frontend source passes KnockLaunch Gate, is released through the canonical frontend owner only, and the exact production artifact is verified live on app.knocklaunch.app.","route":null,"roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}],"validationErrors":[]},"requestContractHash":"b909dd796c09e125cc5df3791e5a8d5b8a41c250dc387853dc95b1adae8b6cd1","requestContractRevision":2,"previousRequestContractHash":"3b0c0e1f7016a7e540665b20cb1fd657ae982403691bb036ec0c22e90017bbdb"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-10T15:37:00.486306+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:1e4a6517-20b8-4a7f-9c77-f7b8b9622a69:request-contract:b909dd796c09e125cc5df3791e5a8d5b8a41c250dc387853dc95b1adae8b6cd1","mission_step_id":"77ebf51e-cc13-4fe0-85e1-716d7e450560","command_center_event_id":"1e4a6517-20b8-4a7f-9c77-f7b8b9622a69"},{"id":"1339e1be-e803-467f-b090-7aa07e871c35","source":"cc-execution","status":"recorded","payload":{"objective":"Fix Big Papi's desktop account/avatar placement and push it through production.","tenantRef":"766cfaa7-ac42-46c8-bbef-69d13268a29d","receivedAt":"2026-08-28T22:12:24.621Z","fingerprint":"b9ed02b1872900f88bd4f8bc2e90657cbbd38d5c272ae82251cc5ba844fe6b9f","workstreamRef":"766cfaa7ac4246c8bbef69d13268a29d","conversationId":null,"canonicalBranch":"ai/objective-first-repair-mtdiaun4","requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Fix Big Papi's desktop account/avatar placement and push it through production.","wordingChanged":false,"canonicalIntent":"Fix Big Papi's desktop account/avatar placement and push it through production.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"outcome-avatar-top","statement":"On desktop, the Big Papi account/avatar control is a compact control in the top identity area beside the brand, not a lower/full-width rail row.","proofConditionIds":["proof-live-route"]},{"id":"outcome-bottom-clean","statement":"The bottom rail contains utility links such as Drive and Customer website and no account/avatar control.","proofConditionIds":["proof-live-route"]}],"objective":"Fix Big Papi's desktop account/avatar placement and push it through production.","constraints":[],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-live-route","kind":"runtime","claim":"The repaired Big Papi owner dashboard is live in production with the requested desktop avatar placement.","route":"/big-papis/owner/dashboard","required":true,"expectedText":"Customer website","targetedActions":[],"allowedReleaseTargets":["frontend"],"requiredReleaseTargets":["frontend"]}],"validationErrors":[]},"requestedBranch":"ai/objective-first-repair-mtdiaun4","conversationContext":"{\"requestContract\":{\"version\":1,\"source\":\"explicit\",\"objective\":\"Fix Big Papi's desktop account/avatar placement and push it through production.\",\"intent\":{\"rawUtterance\":\"Fix it and push it through.\",\"canonicalIntent\":\"Fix the Big Papi desktop account/avatar so it is a compact top identity control instead of a lower/full-width rail control, then carry the frontend change through PR, gate, squash merge, production release, and live verification.\",\"wordingChanged\":true,\"resolutionStatus\":\"exact\",\"uniqueResolution\":true,\"clarificationRequired\":false,\"evidence\":[\"Current conversation is specifically about the Big Papi avatar/account control being placed down in the rail.\"]},\"outcomes\":[{\"id\":\"outcome-avatar-top\",\"statement\":\"On desktop, the Big Papi account/avatar control is a compact control in the top identity area beside the brand, not a lower/full-width rail row.\",\"proofConditionIds\":[\"proof-live-route\"]},{\"id\":\"outcome-bottom-clean\",\"statement\":\"The bottom rail contains utility links such as Drive and Customer website and no account/avatar control.\",\"proofConditionIds\":[\"proof-live-route\"]}],\"constraints\":[],\"proofConditions\":[{\"id\":\"proof-live-route\",\"kind\":\"runtime\",\"claim\":\"The repaired Big Papi owner dashboard is live in production with the requested desktop avatar placement.\",\"required\":true,\"route\":\"/big-papis/owner/dashboard\",\"expectedText\":\"Customer website\",\"targetedActions\":[],\"allowedReleaseTargets\":[\"frontend\"],\"requiredReleaseTargets\":[\"frontend\"]}],\"terminalPolicy\":\"all_required_proof_conditions_satisfied_after_live_release\"}}","requestContractHash":"be9ffe9958b5847db73c5c88fb507fda2b19db92043fbf45d823156044ad4d39","requestContractRevision":1},"tenant_id":"766cfaa7-ac42-46c8-bbef-69d13268a29d","created_at":"2026-08-28T22:12:25.041458+00:00","proof_gate":"tenant_workstream_contribution_recorded","source_sha":null,"external_id":null,"receipt_type":"tenant_workstream_contribution","idempotency_key":"mission:742c5fcc-6faa-4867-8afd-acad5a31c3ec:tenant-workstream-contribution:b9ed02b1872900f88bd4f8bc2e90657cbbd38d5c272ae82251cc5ba844fe6b9f","mission_step_id":null,"command_center_event_id":"742c5fcc-6faa-4867-8afd-acad5a31c3ec"},{"id":"133ee426-9fcb-4d61-8cd3-06fb81ad2eef","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-80e8ab496e97","reason":"pull_request_checks_pending","status":"waiting_for_gate","metrics":{"receiptBytes":50012,"releaseCount":0,"toolCallCount":14,"repeatedCallCount":8,"executorlessWaitMs":680361,"firstUsefulResultAt":"2026-10-02T01:25:59.151Z","recoveryAttemptCount":8,"ownerInterruptionCount":0},"version":"1.64.46-connection-research-human-readable-unknowns","prNumber":4445,"terminal":false,"missionId":"80e8ab49-6e97-4c75-98f8-11e149c01a3d","operation":"execute_mission","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":4194,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":4000,"approvedPlanMs":0,"missionSetupMs":555,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":393,"ledgerReconcileMs":0,"lineageReconcileMs":162,"resolvePreflightMs":555,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":393,"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":"80e8ab49-6e97-4c75-98f8-11e149c01a3d"},"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":1691,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T01:38:11.71534+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"4445","receipt_type":"execute_mission","idempotency_key":"mission:80e8ab49-6e97-4c75-98f8-11e149c01a3d:execute_mission:repair_mission_waiting_for_gate:current-generation","mission_step_id":"02696e79-30ab-404f-b875-39a3d053ca82","command_center_event_id":"80e8ab49-6e97-4c75-98f8-11e149c01a3d"},{"id":"13411940-5799-4803-b4e5-f42196e94ad1","source":"cc-execution","status":"in_progress","payload":{"ok":true,"jobId":null,"phase":"release","branch":"ai/objective-first-repair-aa25bd3e314d","reason":null,"status":"in_progress","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.220-terminal-step-projection","prNumber":3454,"terminal":false,"missionId":"aa25bd3e-314d-4544-a480-394d46742451","operation":"execute_mission","proofGate":"canonical_release_reconciliation_pending","sourceSha":"4fd5b4b7167bdf4c92d7172eef5ab902ec56a2da","timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":4224,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":132,"approvedPlanMs":0,"missionSetupMs":280,"providerAuthMs":0,"shipAndProveMs":3463,"ledgerPrepareMs":280,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":280,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":280,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request automatically; do not create replacement work.","receiptRef":{"mode":"full","missionId":"aa25bd3e-314d-4544-a480-394d46742451"},"performance":null,"deploymentId":null,"releaseState":"failed","workflowRunId":10943,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":true,"ccExecution":false,"supabaseEdge":true},"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":1476,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-23T09:40:43.43731+00:00","proof_gate":"canonical_release_reconciliation_pending","source_sha":"4fd5b4b7167bdf4c92d7172eef5ab902ec56a2da","external_id":"3454","receipt_type":"execute_mission","idempotency_key":"mission:aa25bd3e-314d-4544-a480-394d46742451:execute_mission:canonical_release_reconciliation_pending:current-generation","mission_step_id":"69c48463-be27-4b5a-9057-58ff9f1edabe","command_center_event_id":"aa25bd3e-314d-4544-a480-394d46742451"},{"id":"1341eca1-94e5-4296-a90d-79944dd547a6","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/fix-witness-godmode-session-20260810","reason":"anchored_edits resolution failed","status":"blocked","metrics":{"receiptBytes":1686,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.31.27-tenant-scope-security","prNumber":null,"terminal":false,"missionId":"a6a04a82-8d9c-46df-a463-d50120dcaadf","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"a6a04a82-8d9c-46df-a463-d50120dcaadf"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":704,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"fe5cc9d9-c2fe-4062-84c7-a334663cd63c","created_at":"2026-08-10T04:19:50.04611+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:a6a04a82-8d9c-46df-a463-d50120dcaadf:execute_mission:repair_mission_execution_blocked","mission_step_id":"5e4b447f-4dfa-4f6e-aac3-272fa6f5efd3","command_center_event_id":"a6a04a82-8d9c-46df-a463-d50120dcaadf"},{"id":"13420cd2-94f7-4ef8-bd96-a4fddff90ba1","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\":\"owner_progress_heartbeat\",\"status\":\"waiting\",\"proofGate\":\"owner_progress_heartbeat\"},\"activeStep\":{\"key\":\"implementation\",\"status\":\"waiting\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"pull_request\",\"status\":\"waiting\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"reconcile_release\",\"lane\":\"production-release-conductor\",\"reason\":\"merged_source_requires_release_proof\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_release\",\"recoveryOwner\":\"production-release-conductor\"},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"visual_proof\",\"deadlineAt\":\"2026-10-06T08:33:13.056202+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":null,\"prNumber\":5163,\"sourceSha\":\"d059e784c8fb33ceeb0e36baec00e818ef3753e8\",\"deploymentId\":\"forgejo-main-d059e784c8fb\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T07:12:38.141553+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:6cd825d0-ddfe-4532-8e8e-5f72704f5be5:owner-progress-heartbeat:119418050","mission_step_id":"8f1c0a7d-df5b-4529-9b5e-b41c824b98db","command_center_event_id":"6cd825d0-ddfe-4532-8e8e-5f72704f5be5"},{"id":"1342330d-b657-4516-b992-65df1bcaa9f4","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/redfish-local-intelligence-corrective-1","reason":"pull_request_gate_missing","status":"waiting_for_gate","metrics":{"receiptBytes":15092,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.2-visual-witness-proof-projection","prNumber":1267,"terminal":false,"missionId":"a97aba16-7ed8-4ef0-8140-c766e3c9a678","operation":"execute_mission","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"handlerMs":16551,"prReadinessMs":16215,"approvedPlanMs":0,"missionSetupMs":2548,"shipAndProveMs":0},"nextAction":"Reconcile this same mission and pull request after the exact-head KnockLaunch Gate changes state.","receiptRef":{"mode":"full","missionId":"a97aba16-7ed8-4ef0-8140-c766e3c9a678"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1340,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"de8369b6-a78f-40bb-ae1f-28ffca62bc7e","created_at":"2026-09-01T15:15:13.277186+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"1267","receipt_type":"execute_mission","idempotency_key":"mission:a97aba16-7ed8-4ef0-8140-c766e3c9a678:execute_mission:repair_mission_waiting_for_gate:current-generation","mission_step_id":"aa8fa0f0-21a0-4edf-9ef8-f3dc1c702990","command_center_event_id":"a97aba16-7ed8-4ef0-8140-c766e3c9a678"},{"id":"13451d2f-32c9-4294-bb0f-dd1e0179a27a","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},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_release\",\"recoveryOwner\":\"production-release-conductor\"},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"release\",\"deadlineAt\":\"2026-10-02T19:26:12.63238+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/objective-first-repair-9b6d684ec0c9\",\"prNumber\":4493,\"sourceSha\":\"bea2376dc201e2c38789bea49f0f64b66b0769a7\",\"deploymentId\":\"forgejo-main-bea2376dc201\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T16:28:47.250135+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:9b6d684e-c0c9-4c55-adfc-dfd70b6ad7e6:owner-progress-heartbeat:119397235","mission_step_id":"01be9478-04a9-47ca-b09f-7fd7a695fb04","command_center_event_id":"9b6d684e-c0c9-4c55-adfc-dfd70b6ad7e6"},{"id":"134528bb-2c6c-4ff1-8bc7-d4f95e4d91a1","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","supabase-edge-production/live":"success"},"mainSha":"acd6479ffd0cf5ad4ebcac1159eea5ab1427dd49","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","supabase-edge-production/live"],"sourceSha":"acd6479ffd0cf5ad4ebcac1159eea5ab1427dd49","releaseState":"verified","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":false,"migrations":false,"ccExecution":false,"supabaseEdge":true,"edgeFunctionSlugs":["tenant-media-library"]},"releaseTargetStates":{"supabaseEdge":"success"},"requestContractHash":"51662b619346e15fb861e771bfb4534076d1a0638bf22e42120c92330ff7fa73","forgejoWorkflowProof":{"runId":15302,"source":"signed_push_receipt","status":"success","results":{},"conclusion":"success","targetStates":{"supabaseEdge":"success"},"targetJobCount":7,"observedTargetStates":{"supabaseEdge":"success"}},"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-04T13:52:00.81478+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"acd6479ffd0cf5ad4ebcac1159eea5ab1427dd49","external_id":"forgejo-main-acd6479ffd0c","receipt_type":"canonical_release_status","idempotency_key":"mission:4be99959-9669-49ba-b129-5c3a7a624a8a:forgejo-release-status:acd6479ffd0cf5ad4ebcac1159eea5ab1427dd49:verified:forgejo-main/source=success|forgejo-release/workflow=success|supabase-edge-production/live=success","mission_step_id":"8cc9b3ab-97e2-4575-afb3-d596513da9f3","command_center_event_id":"4be99959-9669-49ba-b129-5c3a7a624a8a"},{"id":"1348f216-3c2a-4be0-aec2-c3ca273eccd4","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"f2393aeeadcee5fc44ca4a1d664453e4bcb6b907","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"f2393aeeadcee5fc44ca4a1d664453e4bcb6b907","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"pending"},"requestContractHash":"65c34c6034f090fb6507184ce8cdc2f6e82cc9ad1053a9c79899626ebbafc40e","forgejoWorkflowProof":{"runId":14535,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"frontend":"pending"},"targetJobCount":7,"observedTargetStates":{"frontend":"pending"}},"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T22:12:58.353802+00:00","proof_gate":"canonical_release_pending","source_sha":"f2393aeeadcee5fc44ca4a1d664453e4bcb6b907","external_id":"forgejo-main-f2393aeeadce","receipt_type":"canonical_release_status","idempotency_key":"mission:f133fa0a-aaad-4bf7-9573-1d5de1e65d04:forgejo-release-status:f2393aeeadcee5fc44ca4a1d664453e4bcb6b907:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"a330766e-9ab0-44ad-ab30-20acc97649e2","command_center_event_id":"f133fa0a-aaad-4bf7-9573-1d5de1e65d04"},{"id":"134a3895-af3d-41b4-9567-be4ef856e6b1","source":"forgejo","status":"waiting","payload":{"branch":"ai/visual-witness-firefox-retry-g8","prNumber":2892,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"fb1b1dfc6f43d0972f0865769972092927c36b2a","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-16T06:27:51.13427+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"fb1b1dfc6f43d0972f0865769972092927c36b2a","external_id":"2892","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:25776a3e-f543-4fb8-921f-4747b7def5a8:merged-pr:2892:fb1b1dfc6f43d0972f0865769972092927c36b2a","mission_step_id":"e0127957-eeb7-4c56-acfe-00be0f4d499c","command_center_event_id":"25776a3e-f543-4fb8-921f-4747b7def5a8"},{"id":"134a451b-726c-48eb-bffd-b1d0cf1ae888","source":"github-status","status":"pending","payload":{"failed":[],"states":{"canonical-production-release/verified":"pending"},"missing":["supabase-edge-production/live"],"pending":["canonical-production-release/verified"],"required":["canonical-production-release/verified","supabase-edge-production/live"],"sourceSha":"e5be6033c6bf0c58b33057a449068cfa771e7b17","releaseState":"pending","exactConductorRun":{"id":31675430427,"status":"in_progress","headSha":"e5be6033c6bf0c58b33057a449068cfa771e7b17","conclusion":null,"compareStatus":"identical","sourceMatches":true,"containsSourceSha":true,"reconciliationMode":null},"ccExecutionRuntimeProof":null},"tenant_id":"fe5cc9d9-c2fe-4062-84c7-a334663cd63c","created_at":"2026-08-13T06:51:40.706528+00:00","proof_gate":"canonical_release_pending","source_sha":"e5be6033c6bf0c58b33057a449068cfa771e7b17","external_id":"canonical-release-e5be6033c6bf","receipt_type":"canonical_release_status","idempotency_key":"mission:16e30b05-1730-40cb-8c71-c67da5be77f6:release-status:e5be6033c6bf0c58b33057a449068cfa771e7b17:31675430427:pending:canonical-production-release/verified=pending|supabase-edge-production/live=missing","mission_step_id":"c26062e1-65ac-46a2-96bc-5f0273a66e07","command_center_event_id":"16e30b05-1730-40cb-8c71-c67da5be77f6"},{"id":"134b71c9-78e3-4733-86b5-9f2aa8b9a07f","source":"durable-mission-ledger","status":"pending","payload":{"sourceSha":"91a16ce7ea43703de26d72bb5470e6c6efb061d5","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-1","satisfied":false,"statement":"On current main, harden the existing shared tenant operating/bootstrap contract into an explicit customer-ready gate without creating a new architecture. Use src/lib/tenants/tenantOperatingContract.ts, src/PrivateAppShell.tsx, src/routes/verticalRouteRegistry.ts, and src/routes/privateWorkspaceCompatibility.ts as authoritative starting points and discover only tightly related companions. Required behavior: derive a machine-readable customer readiness result from the existing operating contract/bootstrap requirements and current tenant readiness data; readiness must fail closed when tenant identity/route namespace, shell ownership, universal profile/settings/navigation/search requirements, required branding/media bindings, membership/access prerequisites, or required application routes are unresolved; preserve prospect/demo readiness separately; ensure tenant-native routes cannot fall through to generic CRM/platform-admin surfaces; preserve current vertical recipes and reusable primitives rather than per-tenant forks; add focused regressions for cross-tenant context bleed, platform-admin/CRM contamination, missing universal routes, bad required asset bindings, and blank/wrong-app re","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":"c6f7b4fd40e3b6f6ff5750f1d6151ffa46c28aec7997cf8e651c5eb3b6b41e06","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":"c6f7b4fd40e3b6f6ff5750f1d6151ffa46c28aec7997cf8e651c5eb3b6b41e06"},"required":true,"satisfied":true},{"id":"proof-visual","kind":"visual","evidence":{"modeBound":true,"claimBound":false,"routeBound":false,"witnessMode":null,"witnessRoute":null,"currentSourceSha":"91a16ce7ea43703de26d72bb5470e6c6efb061d5","witnessSourceSha":null,"verificationState":null,"witnessRequestContractHash":null},"required":true,"satisfied":false}],"validationErrors":[],"pendingProofKinds":["visual"],"activeReleaseTargets":["frontend"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-20T05:17:59.295999+00:00","proof_gate":"request_contract_pending","source_sha":"91a16ce7ea43703de26d72bb5470e6c6efb061d5","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:c934c231-599c-49be-bf9e-588eb09f363e:request-contract:c6f7b4fd40e3b6f6ff5750f1d6151ffa46c28aec7997cf8e651c5eb3b6b41e06:91a16ce7ea43703de26d72bb5470e6c6efb061d5:pending:visual","mission_step_id":"72379141-1d23-461d-8903-648e81a3d9da","command_center_event_id":"c934c231-599c-49be-bf9e-588eb09f363e"},{"id":"134db54f-dfb2-4254-bf5d-97c2ab2934c2","source":"cc-execution","status":"waiting","payload":{"kind":"heartbeat","message":"Still active in pull request.","nextAction":{"lane":"cc-execution","action":"reconcile_pull_request","reason":"pull_request_exists_without_merged_source","handoff":null,"capability":"light-control-plane","automationAllowed":true,"ownerActionRequired":false,"resumeFromCheckpoint":"preflight"},"silenceBudgetMs":15000,"semanticCheckpointSignature":"{\"stateMachineVersion\":1,\"phase\":\"pull_request\",\"ownerFacingState\":null,\"latest\":{\"kind\":\"receipt\",\"key\":\"owner_progress_heartbeat\",\"status\":\"waiting\",\"proofGate\":\"owner_progress_heartbeat\"},\"activeStep\":{\"key\":\"pull_request\",\"status\":\"waiting\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"release\",\"status\":\"ready\",\"lane\":\"production-release-conductor\"},\"nextSafeAction\":{\"action\":\"reconcile_pull_request\",\"lane\":\"cc-execution\",\"reason\":\"pull_request_exists_without_merged_source\",\"automationAllowed\":true,\"ownerActionRequired\":false,\"capability\":\"light-control-plane\",\"resumeFromCheckpoint\":\"preflight\",\"handoff\":null},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_pull_request\",\"recoveryOwner\":\"cc-execution\",\"capability\":\"light-control-plane\",\"resumeFromCheckpoint\":\"preflight\",\"handoff\":null},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"visual_proof\",\"deadlineAt\":\"2026-10-06T17:50:57.180045+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/objective-first-repair-e908936ef307\",\"prNumber\":5181,\"sourceSha\":null,\"deploymentId\":null}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T14:02:04.083071+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:e908936e-f307-463c-9631-a6fa61f98025:owner-progress-heartbeat:119419688","mission_step_id":"baa11ec4-7bb2-455c-ac85-399bd7143d21","command_center_event_id":"e908936e-f307-463c-9631-a6fa61f98025"},{"id":"13509ce2-e9f3-4126-aec9-d7383b23a0e7","source":"cc-execution","status":"waiting","payload":{"kind":"heartbeat","message":"Still active in reasoning required.","nextAction":{"lane":"cc-execution","action":"continue_implementation","reason":"synthesis_required","automationAllowed":true,"ownerActionRequired":false},"silenceBudgetMs":15000,"semanticCheckpointSignature":"{\"stateMachineVersion\":1,\"phase\":\"reasoning_required\",\"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\":\"ready\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"continue_implementation\",\"lane\":\"cc-execution\",\"reason\":\"synthesis_required\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"continue_implementation\",\"recoveryOwner\":\"cc-execution\"},\"acceptance\":{\"total\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"runtime_proof\",\"deadlineAt\":\"2026-10-04T14:07:01.140155+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/objective-first-repair-1dba961ce955\",\"prNumber\":null,\"sourceSha\":null,\"deploymentId\":null}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-04T10:37:31.920995+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:1dba961c-e955-4540-b2a7-7f1c37665baa:owner-progress-heartbeat:119407350","mission_step_id":"653f30b9-e56a-49fd-af2f-29eb8b91f6d8","command_center_event_id":"1dba961c-e955-4540-b2a7-7f1c37665baa"},{"id":"13553bfc-b089-4667-93a6-8a3704da083a","source":"cc-execution","status":"release_reconciliation_pending","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-eea0b97d6278","reason":null,"status":"release_reconciliation_pending","metrics":{"receiptBytes":64494,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":0,"executorlessWaitMs":68905,"firstUsefulResultAt":"2026-09-29T03:07:25.711Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":4092,"terminal":false,"missionId":"eea0b97d-6278-4545-881c-8011de578424","operation":"automatic_mission_resume","proofGate":"canonical_release_reconciliation_pending","sourceSha":"0eff641fb3b2ab7ba8a55b650bd7154d744ff19c","timingsMs":{"prReadinessMs":861,"approvedPlanMs":0,"shipAndProveMs":2985,"repositoryMutationMs":0,"repositoryProviderMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"reconcile_release","receiptRef":{"mode":"full","missionId":"eea0b97d-6278-4545-881c-8011de578424"},"performance":null,"deploymentId":"forgejo-main-0eff641fb3b2","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":1858,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T03:08:47.094281+00:00","proof_gate":"canonical_release_reconciliation_pending","source_sha":null,"external_id":"4092","receipt_type":"automatic_mission_resume","idempotency_key":"mission:eea0b97d-6278-4545-881c-8011de578424:automatic-mission-resume:4092:canonical_release_reconciliation_pending","mission_step_id":"7a9202a0-ed35-4c79-b2cd-778e776028f9","command_center_event_id":"eea0b97d-6278-4545-881c-8011de578424"},{"id":"1356de17-1c28-4e4e-b6cf-1742adf6eceb","source":"cc-execution","status":"in_progress","payload":{"ok":true,"jobId":null,"phase":"release","branch":"ai/curri-properties-campaign-more-polish-20260906","reason":null,"status":"in_progress","metrics":{"receiptBytes":0,"releaseCount":1,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.68-visual-witness-self-heal-proof","prNumber":1993,"terminal":false,"missionId":"cb47d6f5-946b-49b1-99a1-f0e0bf0443e5","operation":"execute_mission","proofGate":"canonical_release_reconciliation_pending","sourceSha":"16be44520c29f10862b9f11e6e8877b2eead5b59","timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":13550,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":2590,"approvedPlanMs":0,"missionSetupMs":305,"providerAuthMs":0,"shipAndProveMs":8069,"ledgerPrepareMs":305,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":305,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":305,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":"Reconcile this same mission and pull request automatically; do not create replacement work.","receiptRef":{"mode":"full","missionId":"cb47d6f5-946b-49b1-99a1-f0e0bf0443e5"},"performance":null,"deploymentId":"forgejo-main-16be44520c29","workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1480,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"90ed5bf4-8abd-4d3a-af7c-024664b5b99d","created_at":"2026-09-06T20:31:06.828339+00:00","proof_gate":"canonical_release_reconciliation_pending","source_sha":"16be44520c29f10862b9f11e6e8877b2eead5b59","external_id":"forgejo-main-16be44520c29","receipt_type":"execute_mission","idempotency_key":"mission:cb47d6f5-946b-49b1-99a1-f0e0bf0443e5:execute_mission:canonical_release_reconciliation_pending:current-generation","mission_step_id":"66372c0c-3368-42a5-a05d-c73dbf57d603","command_center_event_id":"cb47d6f5-946b-49b1-99a1-f0e0bf0443e5"},{"id":"13575471-7ae5-467d-9c1b-68e9e35b8869","source":"cc-execution","status":"blocked","payload":{"reason":"control_plane_maintenance_authorization_required","fingerprint":"b3a7474dbe8bf62908327ba4e4b8399760fb0eab2e05b352b14e7880438f3d7d"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-04T09:35:52.701968+00:00","proof_gate":"repository_mutation_intent_deterministic_failure","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent_blocked","idempotency_key":"mission:b9a940b2-67c0-433f-a955-596625a64716:repository-mutation-intent-blocked:b3a7474dbe8bf62908327ba4e4b8399760fb0eab2e05b352b14e7880438f3d7d","mission_step_id":"c7e47b04-44ba-4680-88dc-f7704f3c70f9","command_center_event_id":"b9a940b2-67c0-433f-a955-596625a64716"},{"id":"1357b6fc-d3be-4921-b5cb-e68455a5c615","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[{"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 OwnerAccountMenu=lazyNamedWithRetry(()=>import('./pages/owner/KnockLaunchOSShared'),'OwnerAccountMenu');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 OperatorSidekick=lazyNamedWithRetry(()=>import('./components/admin/OperatorSidekick'),'OperatorSidekick');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 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/>;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(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 <><SiteBackground owner=\"platform\"/><MultiTenantProvider><TenantBrandTheme/><FocusModeProvider><UserImpersonationProvider><ShortcutsModalManager><LazyShellSlot><GlobalCommandPalette/></LazyShellSlot><GlobalImpersonationBanner/><AuditorModeBanner/><div data-platform-admin-avatar-host=\"true\" className=\"fixed right-3 z-[1260] sm:right-4\" style={{top:'calc(var(--comm-banner-h, 0px) + max(12px, env(safe-area-inset-top)))'}}><LazyShellSlot><OwnerAccountMenu context=\"godmode\"/></LazyShellSlot></div><BaseErrorBoundary scope=\"AdminShell.OperatorSidekick\" variant=\"panel\" title=\"Sidekick unavailable\" description=\"The platform console is still available while Sidekick recovers.\"><LazyShellSlot><OperatorSidekick/></LazyShellSlot></BaseErrorBoundary><div className=\"relative z-10 min-h-screen flex flex-col lg:h-screen lg: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=\"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=\"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=\"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-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'?'/knock-launch-os/settings?section=profile':'/knock-launch-os/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/__tests__/contracts/generatedTenantRouteFamily.contract.test.ts","content":"import { readFileSync } from 'node:fs';\nimport { describe, expect, it } from 'vitest';\nimport { getTenantApplicationByEmbeddedPath, getTenantApplicationByTenantScopedPath } from '@/config/applicationCapabilityRegistry';\nimport { resolveTenantWorkspaceTargetPath } from '@/routes/tenantApplicationRouteResolver';\nconst read=(path:string)=>readFileSync(path,'utf8');\nconst privateShell=read('src/PrivateAppShell.tsx');const eventRentalWorkspace=read('src/pages/event-rentals/EventRentalWorkspace.tsx');const appRegistry=read('src/config/applicationCapabilityRegistry.ts');\ndescribe('generated tenant route-family contract',()=>{\n  it('keeps generated demo backgrounds owned by the workspace shell',()=>{const siteBackground=read('src/components/SiteBackground.tsx');const contactsWorkspace=read('src/components/contacts/ContactsWorkspaceView.tsx');const contactsRouter=read('src/components/ContactsRouter.tsx');expect(siteBackground).toContain('isGeneratedDemoWorkspacePath');expect(siteBackground).toContain(\"owner === 'tenant'\");expect(contactsWorkspace).toContain('includeBackground=false');expect(contactsRouter).toContain('includeBackground={false}')});\n  it('keeps customer, lead, and contact surfaces semantically distinct',()=>{const contactsRouter=read('src/components/ContactsRouter.tsx');expect(contactsRouter).toContain(\"if(leaf==='customers')return'customers'\");expect(contactsRouter).toContain(\"if(leaf==='leads')return'leads'\");expect(contactsRouter).toContain(\"if(surface==='customers')return'active-clients'\");expect(contactsRouter).toContain(\"if(surface==='leads')return'new-leads'\");expect(contactsRouter).toContain(\"return'all-contacts'\");expect(contactsRouter).toContain(\"type:'contacts'\");expect(contactsRouter).toContain(\"surface==='customers'?'Customers'\")});\n  it('keeps event-rental tenant application routes out of the generic CRM fallback',()=>{expect(privateShell).toContain(\"isEventRentalTenantContext(activeTenant)&&app.routeAdapter==='tenant-workspace'\");expect(privateShell).toContain(\"case'booking':content=<EventRentalBookingsPage/>\");expect(privateShell).toContain(\"case'rental-inventory':content=<EventRentalInventoryPage/>\");expect(privateShell).toContain(\"case'event-rental-operations':content=<EventRentalOperationsPage/>\");expect(privateShell).toContain(\"case'proposals':content=<ProposalEditorApplicationRoute/>\");expect(privateShell).toContain(\"case'forms':content=<DocumentsEvidenceApplicationRoute/>\");expect(privateShell).toContain(\"if(app.id==='contacts')return <Suspense fallback={<RouteFallback/>}><EventRentalCustomersPage/></Suspense>\");expect(eventRentalWorkspace).toContain('data-event-rental-customers=\"true\"');expect(eventRentalWorkspace).not.toContain('Pipeline Status');expect(eventRentalWorkspace).not.toContain('Lead Pool');expect(privateShell).toContain('data-event-rental-route-fallback=\"true\"');expect(eventRentalWorkspace).not.toContain(\"base+'/events'\");expect(eventRentalWorkspace).not.toContain(\"base+'/inventory'\");expect(eventRentalWorkspace).not.toContain(\"base+'/operations'\");expect(eventRentalWorkspace).not.toContain(\"base+'/billing'\");expect(appRegistry).toContain(\"path:'rental-inventory'\");expect(appRegistry).toContain(\"path:'event-rental-operations'\")});\n  it('resolves MODES tenant-embedded aliases and suite surfaces to canonical application identity',()=>{const cases=[['/forms','forms','forms'],['/billing/payments','payments','payments'],['/inventory','rental-inventory','rental-inventory'],['/operations','event-rental-operations','event-rental-operations'],['/documents','documents','documents']] as const;for(const [path,appId,canonical] of cases){expect(getTenantApplicationByEmbeddedPath(path)?.app.id).toBe(appId);expect(resolveTenantWorkspaceTargetPath(path)).toBe(canonical);expect(getTenantApplicationByTenantScopedPath(`/speedy-panda-party-rentals${path}`)?.app.id).toBe(appId);expect(resolveTenantWorkspaceTargetPath(`/speedy-panda-party-rentals${path}`)).toBe(canonical)}});\n  it('keeps MODES universal account routes inside the tenant settings primitive',()=>{expect(privateShell).toContain(\"const TenantSettingsPage=lazyWithRetry(()=>import('./pages/settings/TenantSettingsPage'))\");expect(privateShell).toContain('function isTenantSettingsWorkspacePath(pathname:string,activeTenant:any)');expect(privateShell).toContain('if(isModesTenant(activeTenant)&&isTenantSettingsWorkspacePath(location.pathname,activeTenant))return <Suspense fallback={<RouteFallback/>}><TenantSettingsPage/></Suspense>')});\n  it('keeps MODES tenant route families out of the generic CRM wildcard fallback',()=>{expect(privateShell).toContain('function ModesTenantRouteFallback()');expect(privateShell).toContain(\"const modeApp=String(params.get('modeApp')||'').trim()\");expect(privateShell).toContain('getTenantApplicationByReference(modeApp)');expect(privateShell).toContain('if(isModesTenant(activeTenant))return <ModesTenantRouteFallback/>;return <TenantContractSafePrivateRouteFallback/>');expect(privateShell).toContain('<Route path=\"*\" element={<TenantCrmRouteFallback/>}/>');});\n  it('fails contract-owned tenant shells closed before the legacy owner and command-center registry',()=>{expect(privateShell).toContain('function TenantContractSafePrivateRouteFallback()');expect(privateShell).toContain(\"profile.isSelfContainedTenantWorkspace||profile.suppressGenericTenantChrome||profile.shellProfile!=='standard'||profile.navigationProfile!=='standard'||workspaceVariant==='curri_control_center'\");expect(privateShell).toContain(\"if(!contractOwnsPrivateRouting)return <Suspense fallback={<RouteFallback/>}><DefaultPrivateRouteRegistry/></Suspense>\");expect(privateShell).toContain('return <Navigate to={home} replace/>');expect(privateShell).toContain(\"import('./routes/ownerRoutes'),import('./routes/commandCenterRoutes')\");});\n  it('routes the Redfish roof-measurement alias to the canonical roof tracer',()=>{expect(privateShell).toContain(\"'roof-measurement':'roof-tracer'\")});\n  it('keeps the shared CRM family full-height and customer pages internally scrolled',()=>{const crmShell=read('src/components/crm/CRMShell.tsx');expect(crmShell).toContain(\"path.endsWith('/customers')\");expect(crmShell).toContain('min-h-[calc(100dvh-var(--comm-banner-h,0px))]');expect(crmShell).toContain('isGeneratedDemoRoute')});\n});\n"}],"title":"Repair Redfish Roof Estimator route","branch":"ai/objective-first-repair-8bbe3d6299fe","writes":[],"patches":[],"version":1,"approved":true,"missionId":"8bbe3d62-99fe-4c67-b279-9d6e2d76e65c","objective":"Repair /redfish-roofing/roof-measurement so an authenticated Redfish Tenant Owner reaches the canonical usable Roof Estimator instead of the Exterior Operations recovery screen. Add a focused regression guard, ship through one Forgejo PR/Gate/squash merge/frontend release, and prove one non-saving measurement interaction on desktop and mobile. Preserve tenant isolation, the shared shell, unrelated routes, and all customer/project data. Keep the work as one durable Command Center mission with a full receipt referenceable by mission ID, title, Redfish tenant, route, PR, merge SHA, deployment, and interaction evidence.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/PrivateAppShell.tsx","src/__tests__/contracts/generatedTenantRouteFamily.contract.test.ts"],"implementation":{"files":[],"writes":[]},"requestContract":null,"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":"8bbe3d62-99fe-4c67-b279-9d6e2d76e65c","ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/PrivateAppShell.tsx","src/__tests__/contracts/generatedTenantRouteFamily.contract.test.ts"],"requestContract":null,"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":false,"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"proofRequirements":null,"controlPlaneUnfreeze":false,"durableMutationResume":true,"implementationPayload":{"files":[{"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 OwnerAccountMenu=lazyNamedWithRetry(()=>import('./pages/owner/KnockLaunchOSShared'),'OwnerAccountMenu');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 OperatorSidekick=lazyNamedWithRetry(()=>import('./components/admin/OperatorSidekick'),'OperatorSidekick');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 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/>;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(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 <><SiteBackground owner=\"platform\"/><MultiTenantProvider><TenantBrandTheme/><FocusModeProvider><UserImpersonationProvider><ShortcutsModalManager><LazyShellSlot><GlobalCommandPalette/></LazyShellSlot><GlobalImpersonationBanner/><AuditorModeBanner/><div data-platform-admin-avatar-host=\"true\" className=\"fixed right-3 z-[1260] sm:right-4\" style={{top:'calc(var(--comm-banner-h, 0px) + max(12px, env(safe-area-inset-top)))'}}><LazyShellSlot><OwnerAccountMenu context=\"godmode\"/></LazyShellSlot></div><BaseErrorBoundary scope=\"AdminShell.OperatorSidekick\" variant=\"panel\" title=\"Sidekick unavailable\" description=\"The platform console is still available while Sidekick recovers.\"><LazyShellSlot><OperatorSidekick/></LazyShellSlot></BaseErrorBoundary><div className=\"relative z-10 min-h-screen flex flex-col lg:h-screen lg: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=\"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=\"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=\"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-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'?'/knock-launch-os/settings?section=profile':'/knock-launch-os/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/__tests__/contracts/generatedTenantRouteFamily.contract.test.ts","content":"import { readFileSync } from 'node:fs';\nimport { describe, expect, it } from 'vitest';\nimport { getTenantApplicationByEmbeddedPath, getTenantApplicationByTenantScopedPath } from '@/config/applicationCapabilityRegistry';\nimport { resolveTenantWorkspaceTargetPath } from '@/routes/tenantApplicationRouteResolver';\nconst read=(path:string)=>readFileSync(path,'utf8');\nconst privateShell=read('src/PrivateAppShell.tsx');const eventRentalWorkspace=read('src/pages/event-rentals/EventRentalWorkspace.tsx');const appRegistry=read('src/config/applicationCapabilityRegistry.ts');\ndescribe('generated tenant route-family contract',()=>{\n  it('keeps generated demo backgrounds owned by the workspace shell',()=>{const siteBackground=read('src/components/SiteBackground.tsx');const contactsWorkspace=read('src/components/contacts/ContactsWorkspaceView.tsx');const contactsRouter=read('src/components/ContactsRouter.tsx');expect(siteBackground).toContain('isGeneratedDemoWorkspacePath');expect(siteBackground).toContain(\"owner === 'tenant'\");expect(contactsWorkspace).toContain('includeBackground=false');expect(contactsRouter).toContain('includeBackground={false}')});\n  it('keeps customer, lead, and contact surfaces semantically distinct',()=>{const contactsRouter=read('src/components/ContactsRouter.tsx');expect(contactsRouter).toContain(\"if(leaf==='customers')return'customers'\");expect(contactsRouter).toContain(\"if(leaf==='leads')return'leads'\");expect(contactsRouter).toContain(\"if(surface==='customers')return'active-clients'\");expect(contactsRouter).toContain(\"if(surface==='leads')return'new-leads'\");expect(contactsRouter).toContain(\"return'all-contacts'\");expect(contactsRouter).toContain(\"type:'contacts'\");expect(contactsRouter).toContain(\"surface==='customers'?'Customers'\")});\n  it('keeps event-rental tenant application routes out of the generic CRM fallback',()=>{expect(privateShell).toContain(\"isEventRentalTenantContext(activeTenant)&&app.routeAdapter==='tenant-workspace'\");expect(privateShell).toContain(\"case'booking':content=<EventRentalBookingsPage/>\");expect(privateShell).toContain(\"case'rental-inventory':content=<EventRentalInventoryPage/>\");expect(privateShell).toContain(\"case'event-rental-operations':content=<EventRentalOperationsPage/>\");expect(privateShell).toContain(\"case'proposals':content=<ProposalEditorApplicationRoute/>\");expect(privateShell).toContain(\"case'forms':content=<DocumentsEvidenceApplicationRoute/>\");expect(privateShell).toContain(\"if(app.id==='contacts')return <Suspense fallback={<RouteFallback/>}><EventRentalCustomersPage/></Suspense>\");expect(eventRentalWorkspace).toContain('data-event-rental-customers=\"true\"');expect(eventRentalWorkspace).not.toContain('Pipeline Status');expect(eventRentalWorkspace).not.toContain('Lead Pool');expect(privateShell).toContain('data-event-rental-route-fallback=\"true\"');expect(eventRentalWorkspace).not.toContain(\"base+'/events'\");expect(eventRentalWorkspace).not.toContain(\"base+'/inventory'\");expect(eventRentalWorkspace).not.toContain(\"base+'/operations'\");expect(eventRentalWorkspace).not.toContain(\"base+'/billing'\");expect(appRegistry).toContain(\"path:'rental-inventory'\");expect(appRegistry).toContain(\"path:'event-rental-operations'\")});\n  it('resolves MODES tenant-embedded aliases and suite surfaces to canonical application identity',()=>{const cases=[['/forms','forms','forms'],['/billing/payments','payments','payments'],['/inventory','rental-inventory','rental-inventory'],['/operations','event-rental-operations','event-rental-operations'],['/documents','documents','documents']] as const;for(const [path,appId,canonical] of cases){expect(getTenantApplicationByEmbeddedPath(path)?.app.id).toBe(appId);expect(resolveTenantWorkspaceTargetPath(path)).toBe(canonical);expect(getTenantApplicationByTenantScopedPath(`/speedy-panda-party-rentals${path}`)?.app.id).toBe(appId);expect(resolveTenantWorkspaceTargetPath(`/speedy-panda-party-rentals${path}`)).toBe(canonical)}});\n  it('keeps MODES universal account routes inside the tenant settings primitive',()=>{expect(privateShell).toContain(\"const TenantSettingsPage=lazyWithRetry(()=>import('./pages/settings/TenantSettingsPage'))\");expect(privateShell).toContain('function isTenantSettingsWorkspacePath(pathname:string,activeTenant:any)');expect(privateShell).toContain('if(isModesTenant(activeTenant)&&isTenantSettingsWorkspacePath(location.pathname,activeTenant))return <Suspense fallback={<RouteFallback/>}><TenantSettingsPage/></Suspense>')});\n  it('keeps MODES tenant route families out of the generic CRM wildcard fallback',()=>{expect(privateShell).toContain('function ModesTenantRouteFallback()');expect(privateShell).toContain(\"const modeApp=String(params.get('modeApp')||'').trim()\");expect(privateShell).toContain('getTenantApplicationByReference(modeApp)');expect(privateShell).toContain('if(isModesTenant(activeTenant))return <ModesTenantRouteFallback/>;return <TenantContractSafePrivateRouteFallback/>');expect(privateShell).toContain('<Route path=\"*\" element={<TenantCrmRouteFallback/>}/>');});\n  it('fails contract-owned tenant shells closed before the legacy owner and command-center registry',()=>{expect(privateShell).toContain('function TenantContractSafePrivateRouteFallback()');expect(privateShell).toContain(\"profile.isSelfContainedTenantWorkspace||profile.suppressGenericTenantChrome||profile.shellProfile!=='standard'||profile.navigationProfile!=='standard'||workspaceVariant==='curri_control_center'\");expect(privateShell).toContain(\"if(!contractOwnsPrivateRouting)return <Suspense fallback={<RouteFallback/>}><DefaultPrivateRouteRegistry/></Suspense>\");expect(privateShell).toContain('return <Navigate to={home} replace/>');expect(privateShell).toContain(\"import('./routes/ownerRoutes'),import('./routes/commandCenterRoutes')\");});\n  it('routes the Redfish roof-measurement alias to the canonical roof tracer',()=>{expect(privateShell).toContain(\"'roof-measurement':'roof-tracer'\")});\n  it('keeps the shared CRM family full-height and customer pages internally scrolled',()=>{const crmShell=read('src/components/crm/CRMShell.tsx');expect(crmShell).toContain(\"path.endsWith('/customers')\");expect(crmShell).toContain('min-h-[calc(100dvh-var(--comm-banner-h,0px))]');expect(crmShell).toContain('isGeneratedDemoRoute')});\n});\n"}]},"controlPlaneMaintenance":false,"controlPlaneMaintenancePaths":[],"controlPlaneMaintenanceReason":null},"recovery":false,"fingerprint":"dde0c86bc7d56132068ea784f3a93cd6b482ba330a6c1928a1a77bcbf6892886","replayCount":0,"serializedBytes":158135},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T12:41:47.785449+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:8bbe3d62-99fe-4c67-b279-9d6e2d76e65c:repository-mutation-intent:dde0c86bc7d56132068ea784f3a93cd6b482ba330a6c1928a1a77bcbf6892886:0","mission_step_id":"4505d55e-6579-424c-beab-73f86d2e5320","command_center_event_id":"8bbe3d62-99fe-4c67-b279-9d6e2d76e65c"},{"id":"135952ac-54c0-4bbb-9907-7f6fd3d43c91","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-b88b8809dd35","reason":"pull_request_checks_pending","status":"waiting_for_gate","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.177-tenant-source-scope","prNumber":2999,"terminal":false,"missionId":"b88b8809-dd35-4614-9b01-ac6248664238","operation":"execute_mission","proofGate":"repair_mission_waiting_for_gate","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":683,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":431,"approvedPlanMs":0,"missionSetupMs":1833,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":1644,"ledgerReconcileMs":0,"lineageReconcileMs":189,"resolvePreflightMs":1833,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":1644,"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":"b88b8809-dd35-4614-9b01-ac6248664238"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1971,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-17T12:32:53.493386+00:00","proof_gate":"repair_mission_waiting_for_gate","source_sha":null,"external_id":"2999","receipt_type":"execute_mission","idempotency_key":"mission:b88b8809-dd35-4614-9b01-ac6248664238:execute_mission:repair_mission_waiting_for_gate:current-generation","mission_step_id":"1442d357-f87c-452e-9c73-3e3ae3bbfcc4","command_center_event_id":"b88b8809-dd35-4614-9b01-ac6248664238"},{"id":"1359d08b-52db-4fa0-bb65-005a0d57f7fd","source":"forgejo","status":"waiting","payload":{"branch":"ai/workspace-ui-contract-v2-g2-20260914","prNumber":2713,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"27a07712a53c19b0eba1cd63a2ee4a0916703840","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-14T03:36:51.597349+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"27a07712a53c19b0eba1cd63a2ee4a0916703840","external_id":"2713","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:7e76810c-a01f-41fc-b59a-1f1d953e0aa8:merged-pr:2713:27a07712a53c19b0eba1cd63a2ee4a0916703840","mission_step_id":"0ccd313f-68a1-4ba4-b0e8-c693c6c6bb21","command_center_event_id":"7e76810c-a01f-41fc-b59a-1f1d953e0aa8"},{"id":"135b162a-5838-43d3-ad6b-8e1f79b436b3","source":"cc-execution","status":"source_resolution_required","payload":{"ok":true,"jobId":null,"phase":"reasoning_required","branch":"ai/objective-first-repair-8face4c243b3","reason":"authoritative_source_resolution_failed","status":"source_resolution_required","metrics":{"receiptBytes":1883,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":"2026-10-03T12:35:01.667Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.77-paul-heldout-repair","prNumber":null,"terminal":false,"missionId":"8face4c2-43b3-407d-aae8-c5976a49bd6f","operation":"execute_mission","proofGate":"repair_mission_source_resolution_required","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1326,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":257,"providerAuthMs":0,"ledgerPrepareMs":257,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":257,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":257,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Supply exact sourceTargets on the same mission; planner guesses cannot replace missing mission scope.","receiptRef":{"mode":"full","missionId":"8face4c2-43b3-407d-aae8-c5976a49bd6f"},"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":1671,"likelyAffectedFiles":[],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-03T12:35:35.355592+00:00","proof_gate":"repair_mission_source_resolution_required","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:8face4c2-43b3-407d-aae8-c5976a49bd6f:execute_mission:repair_mission_source_resolution_required:current-generation","mission_step_id":"9dd9374e-7d8b-411f-b672-cc4158da025f","command_center_event_id":"8face4c2-43b3-407d-aae8-c5976a49bd6f"},{"id":"135b8b76-23c1-4935-9745-ea42b0178006","source":"forgejo","status":"waiting","payload":{"branch":"","prNumber":2051,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"dc48a6f679b82527730454f55595e73ffc18b5e8","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-07T05:15:12.233832+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"dc48a6f679b82527730454f55595e73ffc18b5e8","external_id":"2051","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:a2cb35e1-8401-43bc-acd3-4b9b7fb82917:merged-pr:2051:dc48a6f679b82527730454f55595e73ffc18b5e8","mission_step_id":"c18edf00-a6cb-4ab3-a4d9-f9a749916334","command_center_event_id":"a2cb35e1-8401-43bc-acd3-4b9b7fb82917"},{"id":"13600ad5-b7e8-4d6f-b219-f893a7009539","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","frontend-cloudflare/live":"success"},"mainSha":"83cb99b692f64372351d421adeffb9d18e8b9d0e","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"54dcc94fa4307f49e1ef52efc5523c8915c41a17","releaseState":"verified","sourceInMain":true,"compareStatus":"known_exact_protected_main_push_history","releaseTargets":{"frontend":true,"migrations":false,"ccExecution":false,"supabaseEdge":false},"releaseTargetStates":{"frontend":"success"},"requestContractHash":null,"forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/12609","runId":12609,"status":"success","sourceSha":"54dcc94fa4307f49e1ef52efc5523c8915c41a17","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true,"targetStates":{"frontend":"success"},"targetJobCount":7,"observedTargetStates":{"frontend":"success"}},"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":{"exact":true,"source":"exact_source_parent_diff_shared_release_owner_mapping","parentSha":"6ba6b935d19dcd8af4bfc865e824bba7abc09dce","sourceSha":"54dcc94fa4307f49e1ef52efc5523c8915c41a17","changedPaths":["src/pages/admin/GodModeCommandConsole.tsx"],"changedPathCount":1,"independentOfCurrentMainCompare":true},"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-10-03T09:58:36.83224+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"54dcc94fa4307f49e1ef52efc5523c8915c41a17","external_id":null,"receipt_type":"canonical_release_status","idempotency_key":"mission:cb14e2cc-5645-4c0f-800e-54ad5dcc6304:forgejo-release-status:54dcc94fa4307f49e1ef52efc5523c8915c41a17:verified:forgejo-main/source=success|forgejo-release/workflow=success|frontend-cloudflare/live=success","mission_step_id":"e40e08ab-04f0-403a-b4e1-5a7f020636a3","command_center_event_id":"cb14e2cc-5645-4c0f-800e-54ad5dcc6304"},{"id":"1364dd80-9d25-4764-b047-5cd17524412a","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"release","branch":"ai/mail-modernization-20260827","reason":"The operation was aborted due to timeout","status":"retryable","metrics":{"receiptBytes":3164,"releaseCount":1,"toolCallCount":3,"repeatedCallCount":1,"ownerInterruptionCount":0},"version":"1.54.0-intent-canonicalization","prNumber":870,"terminal":false,"missionId":"4942595c-1fa1-4157-9805-71927cd32c92","operation":"execute_mission","proofGate":"canonical_release_transport_retryable","sourceSha":"5b535da84d4376246c94d81af993bdbd6888871b","timingsMs":{"handlerMs":16769,"prReadinessMs":493,"approvedPlanMs":0,"missionSetupMs":898,"shipAndProveMs":16272},"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"4942595c-1fa1-4157-9805-71927cd32c92"},"performance":null,"deploymentId":"forgejo-main-5b535da84d43","workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5517,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-27T22:25:30.521424+00:00","proof_gate":"canonical_release_transport_retryable","source_sha":"5b535da84d4376246c94d81af993bdbd6888871b","external_id":"forgejo-main-5b535da84d43","receipt_type":"execute_mission","idempotency_key":"mission:4942595c-1fa1-4157-9805-71927cd32c92:execute_mission:canonical_release_transport_retryable:current-generation","mission_step_id":"1d276527-9294-4d5b-ac91-96afba2483b7","command_center_event_id":"4942595c-1fa1-4157-9805-71927cd32c92"},{"id":"1366c146-2a1d-49ce-89d1-a64cd9c4acb0","source":"forgejo-runtime","status":"failed","payload":{"failed":["forgejo-release/workflow","frontend-cloudflare/live"],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"failure","frontend-cloudflare/live":"failure","supabase-migrations/live":"success"},"mainSha":"ee3d2e4340dade4ba88d42b131e3ec4ad0a230fe","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live","supabase-migrations/live"],"sourceSha":"ee3d2e4340dade4ba88d42b131e3ec4ad0a230fe","releaseState":"failed","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"onrunner":false,"migrations":true,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"failure","migrations":"success"},"requestContractHash":"f2b3da7ac3932a28c06370fd05781945556641f17d82e2c176fe6d2dccccd28e","forgejoWorkflowProof":{"runId":7427,"source":"signed_push_receipt","status":"failure","results":{},"conclusion":"failure","targetStates":{"frontend":"failure","migrations":"success"},"targetJobCount":7,"observedTargetStates":{"frontend":"failure","migrations":"success"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-12T17:14:13.694205+00:00","proof_gate":"canonical_release_terminal_failed","source_sha":"ee3d2e4340dade4ba88d42b131e3ec4ad0a230fe","external_id":"forgejo-main-ee3d2e4340da","receipt_type":"canonical_release_status","idempotency_key":"mission:90e18e9a-0e48-482f-aa0c-1f222cdda17a:forgejo-release-status:ee3d2e4340dade4ba88d42b131e3ec4ad0a230fe:failed:forgejo-main/source=success|forgejo-release/workflow=failure|frontend-cloudflare/live=failure|supabase-migrations/live=success","mission_step_id":"90102451-83ee-493c-bbf9-19fd84d40233","command_center_event_id":"90e18e9a-0e48-482f-aa0c-1f222cdda17a"},{"id":"13684d08-e664-47ac-9132-bdbbfe4944fb","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"release","branch":null,"reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":6054,"releaseCount":0,"toolCallCount":8,"repeatedCallCount":6,"ownerInterruptionCount":0},"version":"1.46.8-intent-aware-objectives","prNumber":212,"terminal":false,"missionId":"5c1fee9c-9bfc-4cbd-9573-ba4d422b363f","operation":"execute_mission","proofGate":"canonical_release_dispatched","sourceSha":"c94f84fd0535f3f00ed9e17ddf871b6317d69892","timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"5c1fee9c-9bfc-4cbd-9573-ba4d422b363f"},"performance":null,"deploymentId":"forgejo-main-c94f84fd0535","workflowRunId":641,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":2708,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"766cfaa7-ac42-46c8-bbef-69d13268a29d","created_at":"2026-08-16T01:56:03.815484+00:00","proof_gate":"canonical_release_dispatched","source_sha":"c94f84fd0535f3f00ed9e17ddf871b6317d69892","external_id":"forgejo-main-c94f84fd0535","receipt_type":"execute_mission","idempotency_key":"mission:5c1fee9c-9bfc-4cbd-9573-ba4d422b363f:execute_mission:canonical_release_dispatched","mission_step_id":"65a31909-7ef6-4cd5-b50a-60f3095df17d","command_center_event_id":"5c1fee9c-9bfc-4cbd-9573-ba4d422b363f"},{"id":"1368578d-a7b1-46ff-89f8-8de25874a2b3","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-44f070bdc846","reason":"provider_verified_auto_progress_owns_gate_merge_release_outside_owner_response","status":"waiting_for_gate","metrics":{"receiptBytes":9387,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":"2026-09-25T00:15:13.867Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.268-parallel-forgejo-operator-reads","prNumber":3685,"terminal":false,"missionId":"44f070bd-c846-4e51-8ed8-ec3fbe1a75aa","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":7945,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":2444,"missionSetupMs":276,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":276,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":276,"repositoryMutationMs":5501,"repositoryProviderMs":5501,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":3128,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":276,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":2373},"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":"44f070bd-c846-4e51-8ed8-ec3fbe1a75aa"},"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":4143,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-25T00:15:23.347437+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3685","receipt_type":"execute_mission","idempotency_key":"mission:44f070bd-c846-4e51-8ed8-ec3fbe1a75aa:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"c7e9fb4d-1f77-4fb7-964b-ae33f255e659","command_center_event_id":"44f070bd-c846-4e51-8ed8-ec3fbe1a75aa"},{"id":"13698415-585a-4b4a-81e1-001917f692e7","source":"cc-execution","status":"recorded","payload":{"objective":"Audit Big Papi's on CURRENT Forgejo main af17deaa6329e2386649776c98dd4c0c9d0fafed for the same failure class as the event-closeout defect: owner/customer UI promises an action or state, but the underlying workflow is absent, misleading, no-op, writes incomplete/wrong state, requires unrelated hidden prerequisites, or leaves canonical data fields inconsistent. Scope the Big Papi tenant only. Inspect owner dashboard and the primary operational families: Events/Event Day/calendar, Money/Square sync and records, Customers/People, Quotes/proposals/invoices/customer portal, Loyalty/QR/referrals, Mail/inbound event handoffs, booking/fundraiser/public CTAs, and obvious tenant navigation. Prioritize core workflow, onboarding friction, user trust, sellability, invoicing/payment. For each candidate, prove the first causal failure against current main and the existing persistence/mutation contract; do not infer defects from stale branches. Do not duplicate work already being repaired by another active PR; if an active PR owns a candidate, preserve it and move on. Repair additional proven failures at the shared owning primitive when safe rather than superficial UI patches. Preserve existing data/integrations and owner-facing language. Do not do cosmetic cleanup. Use one branch, one PR, KnockLaunch Gate, squash merge, deploy only affected production targets, and prove live behavior. Do not run Visual Witness unless a claim truly cannot be proven otherwise.","tenantRef":"bigpapisiceys","receivedAt":"2026-08-24T20:43:33.556Z","fingerprint":"91565d92f861ed1b61410ecdd4bec80ea74b35dafd33d8ac40f1d033b889e2d5","workstreamRef":"bigpapisiceys","conversationId":null,"canonicalBranch":"ai/big-papi-workflow-integrity-audit-20260824","requestedBranch":"ai/big-papi-workflow-integrity-audit-20260824","conversationContext":null},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-24T20:43:33.994189+00:00","proof_gate":"tenant_workstream_contribution_recorded","source_sha":null,"external_id":null,"receipt_type":"tenant_workstream_contribution","idempotency_key":"mission:fba251c6-2279-4b8d-b5b7-8212903ccddf:tenant-workstream-contribution:91565d92f861ed1b61410ecdd4bec80ea74b35dafd33d8ac40f1d033b889e2d5","mission_step_id":null,"command_center_event_id":"fba251c6-2279-4b8d-b5b7-8212903ccddf"},{"id":"136a587d-ad9c-4f41-9579-c53a7d3ce4a7","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-7aca75cdf303","reason":"retryable_provider_transport:forgejo_provider_read_timeout","status":"retryable","metrics":{"receiptBytes":10845,"releaseCount":0,"toolCallCount":4,"repeatedCallCount":0,"executorlessWaitMs":38296,"firstUsefulResultAt":"2026-10-02T00:51:04.521Z","recoveryAttemptCount":1,"ownerInterruptionCount":0},"version":"1.64.45-connection-research-readable-normalization","prNumber":4434,"terminal":false,"missionId":"7aca75cd-f303-4b0d-b71b-e35019e88d7b","operation":"execute_mission","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":2270,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":2167,"approvedPlanMs":0,"missionSetupMs":391,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":279,"ledgerReconcileMs":0,"lineageReconcileMs":112,"resolvePreflightMs":391,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":279,"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":"7aca75cd-f303-4b0d-b71b-e35019e88d7b"},"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":1524,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T00:51:46.053459+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"4434","receipt_type":"execute_mission","idempotency_key":"mission:7aca75cd-f303-4b0d-b71b-e35019e88d7b:execute_mission:repair_mission_pr_ready_retryable:current-generation","mission_step_id":"3a4ab4f2-f020-4143-965f-27a8575d89cf","command_center_event_id":"7aca75cd-f303-4b0d-b71b-e35019e88d7b"},{"id":"136ca871-0b26-4334-b8a3-93af7b69423f","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"route":"https://app.knocklaunch.app/big-papis/owner/pop-up/start?bpMode=popup","branch":"ai/objective-first-repair-bbf5a4d2e6d8","writes":[],"patches":[],"approved":true,"missionId":"bbf5a4d2-e6d8-4600-a245-8bc06397d50b","objective":"Continue the existing Big Papi contextual-header mission with deterministic anchored edits to the confirmed existing headers.","repository":"noel/KnockLaunchOS","ownerApproved":true,"anchored_edits":[{"path":"src/pages/mobile-vendor/BigPapisStartPopup.tsx","anchor":"<nav aria-label=\"Start Pop-Up steps\" className=\"sticky top-1 z-20 mt-2 grid grid-cols-3 gap-1 rounded-xl border border-white/10 bg-[#06111c]/95 p-1 shadow-xl shadow-black/25 backdrop-blur-xl sm:inline-grid sm:min-w-[390px]\">","replacement":"<nav data-workflow-sticky-header=\"true\" aria-label=\"Start Pop-Up steps\" className=\"sticky top-0 z-40 mt-2 grid grid-cols-3 gap-1 rounded-xl border border-white/10 bg-[#06111c]/95 p-1 shadow-xl shadow-black/25 backdrop-blur-xl sm:inline-grid sm:min-w-[390px]\">"},{"path":"src/pages/mobile-vendor/BigPapisCustomersPremium.tsx","anchor":"<section className=\"overflow-hidden rounded-[1.25rem] border border-white/10 bg-[#071019]/80 shadow-xl shadow-black/20\">","replacement":"<section data-workflow-sticky-header=\"true\" className=\"sticky top-0 z-40 overflow-hidden rounded-[1.25rem] border border-white/10 bg-[#071019]/95 shadow-xl shadow-black/20 backdrop-blur-xl\">"}],"implementation":{"files":[],"writes":[]},"durableMutationResume":true},"recovery":false,"fingerprint":"31c75fadc21ac385ca6473df752c1e94e21e13672fdc4296f51cc25bd5c5ecdb","replayCount":0,"serializedBytes":1520},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-24T02:48:37.513851+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:bbf5a4d2-e6d8-4600-a245-8bc06397d50b:repository-mutation-intent:31c75fadc21ac385ca6473df752c1e94e21e13672fdc4296f51cc25bd5c5ecdb:0","mission_step_id":"a184e7c4-d664-4f8a-9df7-dcfc9353635d","command_center_event_id":"bbf5a4d2-e6d8-4600-a245-8bc06397d50b"},{"id":"136e528f-ce1a-4c07-bd89-2b0f00ed3c9d","source":"forgejo-runtime","status":"pending","payload":{"mainSha":"1c85c52ff2a4def5744f5f3cd090fef56700597b","sourceSha":"ea81940907a488d5c26251ea7ba18cc2006dbb63","sourceInMain":false,"compareStatus":"ancestry_read_retryable","ancestryProofResolved":false},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-09-20T22:10:11.853493+00:00","proof_gate":"canonical_release_ancestry_pending","source_sha":"ea81940907a488d5c26251ea7ba18cc2006dbb63","external_id":"canonical-release-ea81940907a4","receipt_type":"canonical_release_status","idempotency_key":"mission:d8cacb70-24c4-4e8e-a03c-6f2fff5b1ce7:forgejo-release-ancestry:ea81940907a488d5c26251ea7ba18cc2006dbb63:1c85c52ff2a4def5744f5f3cd090fef56700597b:ancestry_read_retryable","mission_step_id":"c25f33a9-b452-4654-a1c6-a0afea3b4b6d","command_center_event_id":"d8cacb70-24c4-4e8e-a03c-6f2fff5b1ce7"},{"id":"136fefac-fdc4-4465-840c-ab88f1d12e60","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/curri-deal-risk-forecast-20260825","reason":"The operation was aborted due to timeout","status":"retryable","metrics":{"receiptBytes":1145,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":null,"prNumber":733,"terminal":false,"missionId":"010391e8-0b58-442b-bce6-fb6cdd7131d7","operation":"automatic_mission_resume","proofGate":"canonical_release_transport_retryable","sourceSha":null,"timingsMs":null,"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"010391e8-0b58-442b-bce6-fb6cdd7131d7"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":599,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-25T05:49:36.461973+00:00","proof_gate":"canonical_release_transport_retryable","source_sha":null,"external_id":"733","receipt_type":"automatic_mission_resume","idempotency_key":"mission:010391e8-0b58-442b-bce6-fb6cdd7131d7:automatic-mission-resume:733:canonical_release_transport_retryable","mission_step_id":"99d796be-2b34-487f-8849-77256082b3e2","command_center_event_id":"010391e8-0b58-442b-bce6-fb6cdd7131d7"},{"id":"13708f26-1aa6-425b-a428-e2e475b5adc2","source":"cc-execution","status":"waiting","payload":{"kind":"heartbeat","message":"Still active in visual proof.","nextAction":{"lane":"visual-sandbox","action":"verify_visual","reason":"release_verified_visual_proof_pending","automationAllowed":true,"ownerActionRequired":false},"silenceBudgetMs":15000,"semanticCheckpointSignature":"{\"stateMachineVersion\":1,\"phase\":\"visual_proof\",\"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\":\"verify_visual\",\"lane\":\"visual-sandbox\",\"reason\":\"release_verified_visual_proof_pending\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"verify_visual\",\"recoveryOwner\":\"visual-sandbox\"},\"acceptance\":{\"total\":2,\"verified\":1,\"pending\":1,\"percent\":50,\"satisfied\":false,\"verifiedIds\":[\"proof-production\"],\"pendingIds\":[\"proof-visual\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"runtime_proof\",\"deadlineAt\":\"2026-09-29T17:33:21.559193+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/objective-first-repair-841a01acfc83\",\"prNumber\":4133,\"sourceSha\":\"c3ee69403788b8f2f0a109c4173d93f9dc13053e\",\"deploymentId\":\"forgejo-main-c3ee69403788\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T14:53:02.629105+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:841a01ac-fc83-41c5-8be1-1b50df4c9f7f:owner-progress-heartbeat:119379572","mission_step_id":"91e29776-3a3e-4870-9141-dc5c253caf17","command_center_event_id":"841a01ac-fc83-41c5-8be1-1b50df4c9f7f"},{"id":"13709312-eab7-4f90-9a49-c45a36ee96ce","source":"cc-execution","status":"authorized","payload":{"paths":["supabase/functions/command-center-autopilot/index.ts","workers/cc-execution/scripts/cc-execution-safe-release.mjs","workers/cc-execution/src/version.js","workers/cc-execution/test/release-orchestration-invariants.test.js"],"reason":"Permanent repair for proven ledger timeout and shared-dependency false rollback.","baseSha":"cb0d6de48dc93224ccd4f4bcdb27b5243ab676b4","issuedAt":1789312035226,"expiresAt":1789312215226,"missionId":"6e6e2400-20be-456f-9daf-8f7d3a8419b3","authorizationId":"c6cd0a9a-4d4a-44a0-af50-7a00275445cd","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-13T15:07:15.759198+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"cb0d6de48dc93224ccd4f4bcdb27b5243ab676b4","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:c6cd0a9a-4d4a-44a0-af50-7a00275445cd","mission_step_id":"cacd625b-a2d6-49fc-b8a0-3e22df251638","command_center_event_id":"6e6e2400-20be-456f-9daf-8f7d3a8419b3"},{"id":"1376a853-104c-43ce-8f98-ae0b9088a18f","source":"cc-execution","status":"waiting","payload":{"body":{"ship":false,"files":[],"branch":"ai/objective-first-repair-c35ec075e42e","writes":[],"patches":[],"version":1,"approved":true,"missionId":"c35ec075-e42e-4529-890d-b8e10159e3c6","objective":"Make PAUL use the KNOCKLAUNCH readiness-lockdown and self-healing recovery rules platform-wide. Add the shared recovery doctrine to canonical Sidekick intelligence, make current-work grounding faster, expose exact PR/Gate/Actions/resilience diagnostics for PAUL recovery turns, persist durable owner evaluation cases, add regression coverage, preserve one canonical mission/Forgejo lane, and ship the affected cc-execution and operator-respond runtimes.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["workers/cc-execution/src/platform-sidekick-intelligence.js","config/platform-sidekick-intelligence.json","config/capabilities/platform-sidekick-intelligence.json","config/paul-owner-profile.json","workers/cc-execution/src/version.js"],"anchored_edits":[{"path":"workers/cc-execution/src/platform-sidekick-intelligence.js","edits":[{"new_content":"export const PLATFORM_SIDEKICK_INTELLIGENCE_VERSION=\"platform-sidekick-intelligence-v2-self-healing-recovery\";","old_content":"export const PLATFORM_SIDEKICK_INTELLIGENCE_VERSION=\"platform-sidekick-intelligence-v1\";"},{"new_content":"\"Use supplied caller context as grounded context. Treat unknowns as unknown. Be concise, useful, infer-first and human. Clarify only when a wrong assumption materially changes the outcome or crosses a permission/safety boundary.\",\"For active KNOCKLAUNCH work, current durable mission, pull-request, Gate, release and runtime receipts outrank conversational memory. Preserve one mission, one branch, one pull request and the canonical supervisor path.\",\"Transient provider/transport timeouts and ownerActionRequired=false recovery states are internal self-healing work. Use one bounded canonical retry/reconcile or let the durable supervisor continue; never hand routine retry babysitting back to the owner.\",\"Deterministic source, test or contract failures require exact diagnosis and repair, never blind reruns. Stale pull-request heads are routine refresh/regate work. Blocked or quarantined backlog is not active queue congestion.\",\"When caller-scoped mission, PR, Gate, action-run or resilience diagnostics are available, use them to establish live truth before guessing about slowness, queues or blockers.\",","old_content":"\"Use supplied caller context as grounded context. Treat unknowns as unknown. Be concise, useful, infer-first and human. Clarify only when a wrong assumption materially changes the outcome or crosses a permission/safety boundary.\","}]},{"path":"config/platform-sidekick-intelligence.json","edits":[{"new_content":"\"version\": \"2026-09-29.3\"","old_content":"\"version\": \"2026-09-29.2\""},{"new_content":"      \"durable-sidekick-continuity-contract\",\n      \"self-healing-recovery-contract\"\n    ],","old_content":"      \"durable-sidekick-continuity-contract\"\n    ],"},{"new_content":"    \"imageProviderIsSeparateCapability\": true,\n    \"recovery\": {\n      \"canonicalPath\": \"durable mission -> exact PR/Gate/run truth -> bounded recovery -> canonical Gate/merge/release/proof\",\n      \"transientProvider\": \"ownerActionRequired=false provider/transport timeout is internal self-healing; one bounded retry/reconcile then durable supervisor continuation\",\n      \"deterministicFailure\": \"inspect exact source/test/contract failure and repair; never blind rerun\",\n      \"staleHead\": \"refresh the same eligible PR and regate; never create duplicate work\",\n      \"queueTruth\": \"active running/waiting work is distinct from blocked/quarantined backlog\",\n      \"ownerIntervention\": \"routine machinery recovery must not be handed back to Noel when automationAllowed is true and ownerActionRequired is false\"\n    }\n  },","old_content":"    \"imageProviderIsSeparateCapability\": true\n  },"}]},{"path":"config/capabilities/platform-sidekick-intelligence.json","edits":[{"new_content":"      \"ownerActionRequired=false synthesis, implementation, Gate and release reconciliation states are treated as internal continuation rather than owner blockers\",\n      \"PAUL current-work recovery distinguishes transient provider failures, deterministic source/test/contract failures, stale PR heads and blocked/quarantined backlog before deciding recovery tactics\",\n      \"GodMode/operator recovery turns can inspect exact PR identity, Gate state, Actions runs/logs and Forgejo resilience while preserving the canonical durable mission as mutation owner\",\n      \"completion claims require current receipt/runtime proof and tenant Sidekick context remains tenant/role scoped\"","old_content":"      \"ownerActionRequired=false synthesis, implementation, Gate and release reconciliation states are treated as internal continuation rather than owner blockers\",\n      \"completion claims require current receipt/runtime proof and tenant Sidekick context remains tenant/role scoped\""},{"new_content":"      \"Every authenticated Sidekick text-reasoning path reports platform-sidekick-intelligence-v2-self-healing-recovery\",","old_content":"      \"Every authenticated Sidekick text-reasoning path reports platform-sidekick-intelligence-v1\","},{"new_content":"      \"after reconnect, continue recovers the existing durable mission instead of spawning duplicate work\",\n      \"transient provider/transport failures with ownerActionRequired=false remain internal recovery and do not ask Noel to manually retry\",\n      \"deterministic Gate/source/test failures trigger exact diagnosis and repair rather than blind rerun, stale heads refresh/regate, and blocked/quarantined backlog is not reported as active congestion\",\n      \"current-work answers expose the real continuation point and never claim live completion without receipt proof\"","old_content":"      \"after reconnect, continue recovers the existing durable mission instead of spawning duplicate work\",\n      \"current-work answers expose the real continuation point and never claim live completion without receipt proof\""}]},{"path":"config/paul-owner-profile.json","edits":[{"new_content":"    {\n      \"id\": \"receipt-backed-completion\",\n      \"input\": \"done?\",\n      \"expected\": \"Do not claim merged, released, live, verified, or complete without the corresponding current terminal receipt and runtime proof.\"\n    },\n    {\n      \"id\": \"queue-self-healing\",\n      \"input\": \"the merge queue is jammed again\",\n      \"expected\": \"Ground in current durable mission, PR, Gate, Actions-run and resilience truth. Distinguish active running/waiting work from blocked or quarantined backlog. Treat transient provider/transport trouble and stale-head reconciliation as internal self-healing when ownerActionRequired is false; diagnose deterministic source/test/contract failures and repair them instead of blind reruns. Do not ask Noel to babysit routine recovery.\"\n    },\n    {\n      \"id\": \"transient-provider-not-owner-blocker\",\n      \"input\": \"this is taking forever again\",\n      \"expected\": \"Check live current-work and provider evidence. If the state is retryable provider/transport recovery with ownerActionRequired false, keep the same durable mission and bounded canonical recovery path moving and report that no owner action is required; never tell Noel to manually retry a routine transient failure.\"\n    },\n    {\n      \"id\": \"tenant-isolation-self-awareness\",","old_content":"    {\n      \"id\": \"receipt-backed-completion\",\n      \"input\": \"done?\",\n      \"expected\": \"Do not claim merged, released, live, verified, or complete without the corresponding current terminal receipt and runtime proof.\"\n    },\n    {\n      \"id\": \"tenant-isolation-self-awareness\","}]},{"path":"workers/cc-execution/src/version.js","edits":[{"new_content":"export const CC_EXECUTION_VERSION = \"1.64.2-paul-self-healing-recovery\";","old_content":"export const CC_EXECUTION_VERSION = \"1.64.1-readiness-lockdown\";"}]}],"implementation":{"files":[],"writes":[]},"requestContract":{"valid":true,"intent":{"rawUtterance":"good improve it even more and make sure that paul uses this","wordingChanged":true,"canonicalIntent":"Make PAUL use the KNOCKLAUNCH readiness-lockdown and self-healing recovery rules platform-wide. Add the shared recovery doctrine to canonical Sidekick intelligence, make current-work grounding faster, expose exact PR/Gate/Actions/resilience diagnostics for PAUL recovery turns, persist durable owner evaluation cases, add regression coverage, preserve one canonical mission/Forgejo lane, and ship the affected cc-execution and operator-respond runtimes.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit_owner_request","version":1,"outcomes":[{"id":"outcome-1","statement":"Make PAUL use the KNOCKLAUNCH readiness-lockdown and self-healing recovery rules platform-wide. Add the shared recovery doctrine to canonical Sidekick intelligence, make current-work grounding faster, expose exact PR/Gate/Actions/resilience diagnostics for PAUL recovery turns, persist durable owner evaluation cases, add regression coverage, preserve one canonical mission/Forgejo lane, and ship the affected cc-execution and operator-respond runtimes.","provenance":{"source":"current_explicit_owner_request","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"objective":"Make PAUL use the KNOCKLAUNCH readiness-lockdown and self-healing recovery rules platform-wide. Add the shared recovery doctrine to canonical Sidekick intelligence, make current-work grounding faster, expose exact PR/Gate/Actions/resilience diagnostics for PAUL recovery turns, persist durable owner evaluation cases, add regression coverage, preserve one canonical mission/Forgejo lane, and ship the affected cc-execution and operator-respond runtimes.","constraints":[],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"runtime","claim":"Make PAUL use the KNOCKLAUNCH readiness-lockdown and self-healing recovery rules platform-wide. Add the shared recovery doctrine to canonical Sidekick intelligence, make current-work grounding faster, expose exact PR/Gate/Actions/resilience diagnostics for PAUL recovery turns, persist durable owner evaluation cases, add regression coverage, preserve one canonical mission/Forgejo lane, and ship the affected cc-execution and operator-respond runtimes.","required":true,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}],"validationErrors":[]},"repairGeneration":null,"executionEnvelope":{"ship":false,"version":1,"approved":true,"missionId":"c35ec075-e42e-4529-890d-b8e10159e3c6","ownerApproved":true,"releaseIntent":null,"sourceTargets":["workers/cc-execution/src/platform-sidekick-intelligence.js","config/platform-sidekick-intelligence.json","config/capabilities/platform-sidekick-intelligence.json","config/paul-owner-profile.json","workers/cc-execution/src/version.js"],"requestContract":{"valid":true,"intent":{"rawUtterance":"good improve it even more and make sure that paul uses this","wordingChanged":true,"canonicalIntent":"Make PAUL use the KNOCKLAUNCH readiness-lockdown and self-healing recovery rules platform-wide. Add the shared recovery doctrine to canonical Sidekick intelligence, make current-work grounding faster, expose exact PR/Gate/Actions/resilience diagnostics for PAUL recovery turns, persist durable owner evaluation cases, add regression coverage, preserve one canonical mission/Forgejo lane, and ship the affected cc-execution and operator-respond runtimes.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit_owner_request","version":1,"outcomes":[{"id":"outcome-1","statement":"Make PAUL use the KNOCKLAUNCH readiness-lockdown and self-healing recovery rules platform-wide. Add the shared recovery doctrine to canonical Sidekick intelligence, make current-work grounding faster, expose exact PR/Gate/Actions/resilience diagnostics for PAUL recovery turns, persist durable owner evaluation cases, add regression coverage, preserve one canonical mission/Forgejo lane, and ship the affected cc-execution and operator-respond runtimes.","provenance":{"source":"current_explicit_owner_request","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"objective":"Make PAUL use the KNOCKLAUNCH readiness-lockdown and self-healing recovery rules platform-wide. Add the shared recovery doctrine to canonical Sidekick intelligence, make current-work grounding faster, expose exact PR/Gate/Actions/resilience diagnostics for PAUL recovery turns, persist durable owner evaluation cases, add regression coverage, preserve one canonical mission/Forgejo lane, and ship the affected cc-execution and operator-respond runtimes.","constraints":[],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"runtime","claim":"Make PAUL use the KNOCKLAUNCH readiness-lockdown and self-healing recovery rules platform-wide. Add the shared recovery doctrine to canonical Sidekick intelligence, make current-work grounding faster, expose exact PR/Gate/Actions/resilience diagnostics for PAUL recovery turns, persist durable owner evaluation cases, add regression coverage, preserve one canonical mission/Forgejo lane, and ship the affected cc-execution and operator-respond runtimes.","required":true,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}],"validationErrors":[]},"repairGeneration":null,"proofRequirements":null,"controlPlaneUnfreeze":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":["config/capabilities/platform-sidekick-intelligence.json","config/paul-owner-profile.json","config/platform-sidekick-intelligence.json","workers/cc-execution/src/platform-sidekick-intelligence.js","workers/cc-execution/src/version.js"],"controlPlaneMaintenanceReason":"Propagate the owner-approved readiness-lockdown/self-healing doctrine into PAUL's canonical shared intelligence, durable policy/evaluation contracts, and cc-execution runtime identity."},"proofRequirements":null,"controlPlaneUnfreeze":true,"durableMutationResume":true,"controlPlaneMaintenance":true,"controlPlaneMaintenancePaths":["config/capabilities/platform-sidekick-intelligence.json","config/paul-owner-profile.json","config/platform-sidekick-intelligence.json","workers/cc-execution/src/platform-sidekick-intelligence.js","workers/cc-execution/src/version.js"],"controlPlaneMaintenanceReason":"Propagate the owner-approved readiness-lockdown/self-healing doctrine into PAUL's canonical shared intelligence, durable policy/evaluation contracts, and cc-execution runtime identity."},"recovery":false,"fingerprint":"46d32dccf124d13e4060af3702cc7632a09a9d7ec5525fc2774461101176c204","replayCount":0,"serializedBytes":15299},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-29T16:19:48.603254+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:c35ec075-e42e-4529-890d-b8e10159e3c6:repository-mutation-intent:46d32dccf124d13e4060af3702cc7632a09a9d7ec5525fc2774461101176c204:0","mission_step_id":"eaad6118-ae05-4173-a99e-5c156dcf503f","command_center_event_id":"c35ec075-e42e-4529-890d-b8e10159e3c6"},{"id":"1378ff35-4ec4-4573-ad20-3b4073debd30","source":"cc-execution","status":"source_resolution_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":"ai/route-family-registry-v1","reason":null,"status":"source_resolution_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.65-repository-proof-reconciliation","prNumber":null,"terminal":false,"missionId":"c7bacaec-7e0d-43b0-94f4-4652a956b501","operation":"execute_mission","proofGate":"repair_mission_source_resolution_required","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":381,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":575,"providerAuthMs":0,"ledgerPrepareMs":575,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":575,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":575,"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":"c7bacaec-7e0d-43b0-94f4-4652a956b501"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":3472,"likelyAffectedFiles":[],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-06T01:16:54.835067+00:00","proof_gate":"repair_mission_source_resolution_required","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:c7bacaec-7e0d-43b0-94f4-4652a956b501:execute_mission:repair_mission_source_resolution_required:current-generation","mission_step_id":"36a4ad07-d341-4e49-a58b-d9a52358e249","command_center_event_id":"c7bacaec-7e0d-43b0-94f4-4652a956b501"},{"id":"137e4655-5b36-4290-99ca-fab94405cb7e","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","frontend-cloudflare/live":"success"},"mainSha":"bc8cddda8a5a07632ab1abd5a77bfa4a2a5eda68","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"bc8cddda8a5a07632ab1abd5a77bfa4a2a5eda68","releaseState":"verified","sourceInMain":true,"compareStatus":"identical","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/1177","runId":1177,"status":"success","conclusion":null,"failedJobs":[],"diagnostics":null},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"69c86c8d-c737-439a-8f30-3246af0b3ad1","created_at":"2026-08-17T20:54:41.021073+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"bc8cddda8a5a07632ab1abd5a77bfa4a2a5eda68","external_id":"forgejo-main-bc8cddda8a5a","receipt_type":"canonical_release_status","idempotency_key":"mission:1f0d8bbf-5eba-4951-b460-4b3eeb67fe44:forgejo-release-status:bc8cddda8a5a07632ab1abd5a77bfa4a2a5eda68:verified:forgejo-main/source=success|forgejo-release/workflow=success|frontend-cloudflare/live=success","mission_step_id":"96672b23-b4c8-4f7a-a494-123c56c6a665","command_center_event_id":"1f0d8bbf-5eba-4951-b460-4b3eeb67fe44"},{"id":"137f961b-f6c4-4860-bcc5-a0e986c368e6","source":"durable-mission-ledger","status":"verified","payload":{"sourceSha":"783e3c71a91ef8cd95919f373693c1c75366776d","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"outcome-1","satisfied":true,"statement":"Repair the shared EVENT_RENTALS routing primitive so Speedy Panda tenant-integrated routes never fall through to generic CRM. Apply the exact anchored edits: render canonical event-rental booking/inventory/operations/proposals/forms surfaces directly inside MODES, fail closed inside the MODES shell for any other event-rental tenant-workspace app instead of TenantCrmRoutes, replace legacy event-rental internal links with canonical application routes, and make the event-rental capability-pack module routes canonical. Preserve tenant context, media, and existing unrelated tenant routing. Then one PR, canonical Gate, squash merge, frontend production release, and claim-matched proof on Speedy Panda routes /booking, /proposals, /forms, /rental-inventory, /event-rental-operations plus the dashboard. Verify none renders the generic CRM dashboard/shell and each intended route remains usable.","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":"4450131fdfb1f115772ccf8a48ab324778678961ba2c4b0430a937546c261c47","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":"4450131fdfb1f115772ccf8a48ab324778678961ba2c4b0430a937546c261c47"},"required":true,"satisfied":true}],"validationErrors":[],"pendingProofKinds":[],"activeReleaseTargets":["frontend"]},"authoritativeMissionRefresh":true,"evaluatedRequestContractRevision":1},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-19T03:24:53.92814+00:00","proof_gate":"request_contract_terminal_verified","source_sha":"783e3c71a91ef8cd95919f373693c1c75366776d","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:4d2d0e68-eda1-4c08-9813-07eae2bb176b:request-contract:4450131fdfb1f115772ccf8a48ab324778678961ba2c4b0430a937546c261c47:783e3c71a91ef8cd95919f373693c1c75366776d:verified:","mission_step_id":"33d0582e-c4ea-40ac-b97f-2b722cf6f92c","command_center_event_id":"4d2d0e68-eda1-4c08-9813-07eae2bb176b"},{"id":"13819952-7916-4fd9-a6ff-802b194ab0c4","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/release-provider-timeout-hardening-20260820","reason":"The operation was aborted due to timeout","status":"retryable","metrics":{"receiptBytes":3307,"releaseCount":0,"toolCallCount":3,"repeatedCallCount":1,"ownerInterruptionCount":0},"version":null,"prNumber":476,"terminal":false,"missionId":"6f084eb5-952f-470e-9e6f-c036f9cb0d38","operation":"automatic_mission_resume","proofGate":"canonical_release_transport_retryable","sourceSha":null,"timingsMs":null,"nextAction":"Reconcile this same mission and pull request automatically; do not create a replacement branch or PR.","receiptRef":{"mode":"full","missionId":"6f084eb5-952f-470e-9e6f-c036f9cb0d38"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":523,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-20T04:42:25.991599+00:00","proof_gate":"canonical_release_transport_retryable","source_sha":null,"external_id":"476","receipt_type":"automatic_mission_resume","idempotency_key":"mission:6f084eb5-952f-470e-9e6f-c036f9cb0d38:automatic-mission-resume:476:canonical_release_transport_retryable","mission_step_id":"14fb62bf-e4c0-478d-a425-a0c11eb5397c","command_center_event_id":"6f084eb5-952f-470e-9e6f-c036f9cb0d38"},{"id":"13831230-2cd0-4d4b-a3c0-680af4939231","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"compilation":{"stages":["owner_intent","conversation_context","scope","live_state","mutation_authority","affected_systems","dependencies","risk_and_blast_radius","execution_tactics","required_proof","release_plan","recovery_plan"],"version":2,"explicit":true,"objective":"Continue the existing P0 PCG card-load repair mission using the exact current-main source. The production logs show intermittent PostgREST/Warp timeout-manager failures while the PCG card queries themselves normally complete successfully; make PCG Card Intake resilient to that transient transport failure and deduplicate repeated identical load-error toasts. Keep tenant scoping unchanged.","proofKinds":["runtime"],"adaptiveDomains":["intent","tenant_route_role_viewport","urgency_deadline","dependency_scope","risk_blast_radius","runner_capacity","queue_active_work","provider_failure_circuits","qa_scope","retry_recovery","release_ownership","proof_depth"],"expansionPolicy":"later_stages_may_only_narrow_or_expand_with_machine_readable_dependency_evidence","dynamicStatePolicy":"live_state_may_change_execution_tactics_but_never_owner_outcome_or_explicit_constraints","dynamicRefreshStages":["preflight","gate","release","runtime_proof"],"adaptiveCompilerVersion":"paul-adaptive-objective-v1","inheritedContextBlockingAuthority":false},"rawUtterance":"Continue the existing P0 PCG card-load repair mission using the exact current-main source. The production logs show intermittent PostgREST/Warp timeout-manager failures while the PCG card queries themselves normally complete successfully; make PCG Card Intake resilient to that transient transport failure and deduplicate repeated identical load-error toasts. Keep tenant scoping unchanged.","wordingChanged":false,"canonicalIntent":"Continue the existing P0 PCG card-load repair mission using the exact current-main source. The production logs show intermittent PostgREST/Warp timeout-manager failures while the PCG card queries themselves normally complete successfully; make PCG Card Intake resilient to that transient transport failure and deduplicate repeated identical load-error toasts. Keep tenant scoping unchanged.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"outcome-1","statement":"Continue the existing P0 PCG card-load repair mission using the exact current-main source. The production logs show intermittent PostgREST/Warp timeout-manager failures while the PCG card queries themselves normally complete successfully; make PCG Card Intake resilient to that transient transport failure and deduplicate repeated identical load-error toasts. Keep tenant scoping unchanged.","provenance":{"reason":null,"source":"current_request_inference","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"objective":"Continue the existing P0 PCG card-load repair mission using the exact current-main source. The production logs show intermittent PostgREST/Warp timeout-manager failures while the PCG card queries themselves normally complete successfully; make PCG Card Intake resilient to that transient transport failure and deduplicate repeated identical load-error toasts. Keep tenant scoping unchanged.","constraints":[{"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":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"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.","provenance":{"reason":null,"source":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"proofConditionIds":["proof-production"]}],"adaptivePolicy":{"risk":{"tier":"standard","blastRadius":"scoped"},"proof":{"requiredKinds":["runtime"],"visualProofScope":"none","interactionRequired":false,"runtimeProofRequired":true},"scope":{"route":null,"roleRef":null,"tenantRef":null,"sourceTargets":[]},"dynamic":{"variables":["main_and_runtime_lineage","runner_capacity","queue_and_active_work","provider_health","failure_clusters_and_circuits","release_target_state","current_pr_and_gate_state"],"refreshStages":["preflight","gate","release","runtime_proof"],"refreshMayChange":["runner_selection","parallelism","retry_path","qa_depth","release_recovery","proof_timing"],"refreshMayNotChange":["owner_outcome","explicit_no_go_constraints","tenant_identity","credential_boundary","hard_safety_invariants"]},"urgency":{"priority":"normal","deadlineSignals":[],"deadlineExplicit":false},"version":"paul-adaptive-objective-v1","recovery":{"transient":"one_bounded_retry_then_alternate_eligible_pool_or_provider_path","deterministic":"repair_source_or_contract_do_not_blind_rerun","mutationDependencyFailure":"prerequisite_required_or_targeted_recovery_never_invent","readOnlyDependencyFailure":"degrade_to_available_grounded_context_and_keep_conversation_alive"},"unknowns":["tenant","route","source_targets_until_repository_resolution","release_targets_until_changed_paths","deadline"],"authority":{"outcome":"current_explicit_owner_request","tactics":"live_prime_truth","unknownPolicy":"preserve_unknown_never_invent","historicalContext":"advisory_unless_current_request_confirms"},"execution":{"mutation":true,"concurrency":"parallel_non_overlapping_work","scopePolicy":"start_bounded_expand_only_with_machine_readable_dependency_evidence","staleStatePolicy":"refresh_dynamic_state_before_irreversible_or_acceptance_stage","conversationIsolation":true,"ownerOutcomeMayBeChangedByAdaptation":false},"experience":{"visual":false,"viewports":["desktop","mobile"],"behavioral":false,"visualProofScope":"none"},"dependencies":{"requiredDomains":["frontend","backend_runtime","release_ownership","live_production_proof"],"capabilityDomains":["frontend","backend_runtime","schema_data_storage","authentication_authorization","provider_configuration","prerequisite_loading_empty_error_states","release_ownership","live_production_proof"],"releaseTargetHints":[]},"inputSignals":{"rawUtterance":"Continue the existing P0 PCG card-load repair mission using the exact current-main source. The production logs show intermittent PostgREST/Warp timeout-manager failures while the PCG card queries themselves normally complete successfully; make PCG Card Intake resilient to that transient transport failure and deduplicate repeated identical load-error toasts. Keep tenant scoping unchanged.","canonicalIntent":"Continue the existing P0 PCG card-load repair mission using the exact current-main source. The production logs show intermittent PostgREST/Warp timeout-manager failures while the PCG card queries themselves normally complete successfully; make PCG Card Intake resilient to that transient transport failure and deduplicate repeated identical load-error toasts. Keep tenant scoping unchanged.","conversationContextPresent":false}},"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-production","kind":"runtime","claim":"Continue the existing P0 PCG card-load repair mission using the exact current-main source. The production logs show intermittent PostgREST/Warp timeout-manager failures while the PCG card queries themselves normally complete successfully; make PCG Card Intake resilient to that transient transport failure and deduplicate repeated identical load-error toasts. Keep tenant scoping unchanged.","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":"Continue-the-existing-P0-PCG-card-load-repair-mission-using-the-exact-current-main-source.-The-produ","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":"fa09c6cce4d6fc70ae15288efb007c39fe1f8f545de658e3c610f9da4c63a787","requestContractRevision":2,"previousRequestContractHash":"ca5fdb4ccea58822343a3f6d70fe1628c736681028c7db33c5bd3330606069bc"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T14:27:39.291691+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:3b4f9854-c96a-4b82-8edd-6f2df9ac3ac4:request-contract:fa09c6cce4d6fc70ae15288efb007c39fe1f8f545de658e3c610f9da4c63a787","mission_step_id":"05012353-283c-4b53-9f59-1985d9b0c489","command_center_event_id":"3b4f9854-c96a-4b82-8edd-6f2df9ac3ac4"},{"id":"1384980a-44f9-436d-9b07-70f684179aa4","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Control plane maintenance continuation for PR #944: keep the stale-unique auto-parking repair and additionally remove runner-bound notifier work from serverless-fast-gate PRs. The full post-gate notifier remains required for normal runner Gate PRs. Serverless fast-gate PRs already receive the exact canonical KnockLaunch Gate success status and are reconciled by the existing bounded merge supervisor. Same branch, same PR, refresh/re-gate, ship cc-execution only.","wordingChanged":false,"canonicalIntent":"Control plane maintenance continuation for PR #944: keep the stale-unique auto-parking repair and additionally remove runner-bound notifier work from serverless-fast-gate PRs. The full post-gate notifier remains required for normal runner Gate PRs. Serverless fast-gate PRs already receive the exact canonical KnockLaunch Gate success status and are reconciled by the existing bounded merge supervisor. Same branch, same PR, refresh/re-gate, ship cc-execution only.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"auto-park","statement":"Scheduled recovery parks stale unique unarmed/deterministic-failure backlog after the existing one-hour guard while preserving branches/content.","proofConditionIds":["repo","gate","runtime"]},{"id":"fast-throughput","statement":"Serverless-fast-gate PRs do not enqueue the runner-bound post-gate notifier; normal Gate PRs retain the post-Gate notifier.","proofConditionIds":["repo","gate","runtime"]}],"objective":"Control plane maintenance continuation for PR #944: keep the stale-unique auto-parking repair and additionally remove runner-bound notifier work from serverless-fast-gate PRs. The full post-gate notifier remains required for normal runner Gate PRs. Serverless fast-gate PRs already receive the exact canonical KnockLaunch Gate success status and are reconciled by the existing bounded merge supervisor. Same branch, same PR, refresh/re-gate, ship cc-execution only.","constraints":[{"id":"preserve","statement":"No unique source or branch deletion for parked work.","proofConditionIds":["repo"]},{"id":"one-path","statement":"Do not add a notifier, gate, merge, or release lane; reuse the existing serverless Gate status and merge supervisor.","proofConditionIds":["repo"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"repo","kind":"repository","claim":"Current main contains both safe auto-parking and the fast-gate notifier exclusion with regression coverage.","route":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"gate","kind":"repository","claim":"PR #944 exact head passes KnockLaunch Gate and squash-merges.","route":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"runtime","kind":"runtime","claim":"Live cc-execution runs the merged source.","route":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}],"validationErrors":[]},"requestContractHash":"6f6ce4ba15289074c100ac5bdfe41e0aef2215ff4c6c9f7a84df6a0312d747f3","requestContractRevision":4,"previousRequestContractHash":"56804c9f9152499f29b019113c9dc898a126914555548704646de22d2266f30d"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-28T18:29:48.165893+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:b1272341-5433-4b30-9ff3-041731695f8d:request-contract-revision:4:6f6ce4ba15289074c100ac5bdfe41e0aef2215ff4c6c9f7a84df6a0312d747f3","mission_step_id":"6dacb0ae-8782-48b5-81e7-1487733355df","command_center_event_id":"b1272341-5433-4b30-9ff3-041731695f8d"},{"id":"1389478e-7178-4ecf-972e-402c680996e5","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-25f123a898ed","reason":"control_plane_maintenance_authorization_required","status":"blocked","metrics":{"receiptBytes":11655,"releaseCount":0,"toolCallCount":6,"repeatedCallCount":1,"executorlessWaitMs":292708,"firstUsefulResultAt":"2026-09-28T16:43:40.249Z","recoveryAttemptCount":2,"ownerInterruptionCount":0},"version":"1.58.302-paul-throughput-router","prNumber":4021,"terminal":false,"missionId":"25f123a8-98ed-4b05-9789-eaef13a19b68","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":445,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":366,"ledgerReconcileMs":0,"lineageReconcileMs":79,"resolvePreflightMs":445,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":366,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"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":1440,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T16:50:05.082724+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":"4021","receipt_type":"execute_mission","idempotency_key":"mission:25f123a8-98ed-4b05-9789-eaef13a19b68:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"4df1b577-6523-439d-949d-f88ee11fda92","command_center_event_id":"25f123a8-98ed-4b05-9789-eaef13a19b68"},{"id":"138a5e2f-4088-4389-ac1b-c324d18ce966","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-aa25bd3e314d","prNumber":3454,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"4fd5b4b7167bdf4c92d7172eef5ab902ec56a2da","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-23T09:39:17.250997+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"4fd5b4b7167bdf4c92d7172eef5ab902ec56a2da","external_id":"3454","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:aa25bd3e-314d-4544-a480-394d46742451:merged-pr:3454:4fd5b4b7167bdf4c92d7172eef5ab902ec56a2da","mission_step_id":"8d476952-2b0e-4a0d-90e1-ee35b8bbde29","command_center_event_id":"aa25bd3e-314d-4544-a480-394d46742451"},{"id":"138d3559-3516-4fa2-8177-a5bc26adface","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","frontend-cloudflare/live":"success"},"mainSha":"4b4bfb6e973f2cc4265bdf621e387c0e32832116","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"4b4bfb6e973f2cc4265bdf621e387c0e32832116","releaseState":"verified","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"success"},"requestContractHash":"eb04a647c16d2976344c8bca5b9e5e00e672073b32a35c94f0b02f22b33e5ece","forgejoWorkflowProof":{"url":"https://git.knocklaunch.app/noel/KnockLaunchOS/actions/runs/14485","runId":14485,"status":"success","sourceSha":"4b4bfb6e973f2cc4265bdf621e387c0e32832116","conclusion":null,"failedJobs":[],"diagnostics":null,"exactSource":true,"targetStates":{"frontend":"success"},"targetJobCount":7,"observedTargetStates":{"frontend":"success"}},"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T19:19:55.774021+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"4b4bfb6e973f2cc4265bdf621e387c0e32832116","external_id":"forgejo-main-4b4bfb6e973f","receipt_type":"canonical_release_status","idempotency_key":"mission:d400a6a1-8e6a-4a17-918b-a9e708c7858c:forgejo-release-status:4b4bfb6e973f2cc4265bdf621e387c0e32832116:verified:forgejo-main/source=success|forgejo-release/workflow=success|frontend-cloudflare/live=success","mission_step_id":"dd4150e4-aeb8-42f1-b1ad-1cf9b0c93249","command_center_event_id":"d400a6a1-8e6a-4a17-918b-a9e708c7858c"},{"id":"138dcbfb-6536-487c-ab4e-5e2e654bc38f","source":"forgejo-runtime","status":"pending","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"pending","frontend-cloudflare/live":"pending"},"mainSha":"e2d62066c49e8a58f6528adf4ad7a41b92703f48","missing":[],"pending":["forgejo-release/workflow","frontend-cloudflare/live"],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"e2d62066c49e8a58f6528adf4ad7a41b92703f48","releaseState":"pending","sourceInMain":true,"compareStatus":"protected_main_push_exact_source","releaseTargets":{"frontend":true,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"releaseTargetStates":{"frontend":"pending"},"requestContractHash":"1741dfb9063e37cda076d3cddfb2412dd17174433f77921aabea66f617888915","forgejoWorkflowProof":{"runId":15419,"source":"signed_push_receipt","status":"running","results":{},"conclusion":"running","targetStates":{"frontend":"pending"},"targetJobCount":7,"observedTargetStates":{"frontend":"pending"}},"releaseSourceVerified":true,"ccExecutionRuntimeProof":null,"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-04T20:01:24.371326+00:00","proof_gate":"canonical_release_pending","source_sha":"e2d62066c49e8a58f6528adf4ad7a41b92703f48","external_id":"forgejo-main-e2d62066c49e","receipt_type":"canonical_release_status","idempotency_key":"mission:5ddc230c-9d29-4bcf-aefa-a4d27c949d9c:forgejo-release-status:e2d62066c49e8a58f6528adf4ad7a41b92703f48:pending:forgejo-main/source=success|forgejo-release/workflow=pending|frontend-cloudflare/live=pending","mission_step_id":"6e38301c-59b3-4738-925d-3a9aee84fb88","command_center_event_id":"5ddc230c-9d29-4bcf-aefa-a4d27c949d9c"},{"id":"138f5912-fe71-4283-87d8-f175c3b06103","source":"cc-execution","status":"deployment_dispatched","payload":{"ok":true,"jobId":null,"phase":"release","branch":"ai/objective-first-repair-442ab3779a77","reason":null,"status":"deployment_dispatched","metrics":{"receiptBytes":194905,"releaseCount":0,"toolCallCount":30,"repeatedCallCount":19,"executorlessWaitMs":1419891,"firstUsefulResultAt":"2026-09-30T01:05:19.367Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.10-paul-eval-precision","prNumber":4189,"terminal":false,"missionId":"442ab377-9a77-41b0-9ae1-ac6edc326cc4","operation":"execute_mission","proofGate":"canonical_release_dispatched","sourceSha":"4dfa9f77cd938d3ca823f6958f848ebf3e37928c","timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1948,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":68,"approvedPlanMs":0,"missionSetupMs":327,"providerAuthMs":0,"shipAndProveMs":1364,"ledgerPrepareMs":327,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":327,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":327,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"442ab377-9a77-41b0-9ae1-ac6edc326cc4"},"performance":null,"deploymentId":"forgejo-main-4dfa9f77cd93","releaseState":"pending","workflowRunId":13235,"releaseTargets":{"frontend":true,"migrations":false,"ccExecution":false,"supabaseEdge":true,"edgeFunctionSlugs":["pcg-customer-progress"]},"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":2880,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-30T01:29:48.68563+00:00","proof_gate":"canonical_release_dispatched","source_sha":"4dfa9f77cd938d3ca823f6958f848ebf3e37928c","external_id":"forgejo-main-4dfa9f77cd93","receipt_type":"execute_mission","idempotency_key":"mission:442ab377-9a77-41b0-9ae1-ac6edc326cc4:execute_mission:canonical_release_dispatched:current-generation","mission_step_id":"488cc7fc-ba92-4ea0-a9f1-be24476ef7e1","command_center_event_id":"442ab377-9a77-41b0-9ae1-ac6edc326cc4"},{"id":"1390e612-b165-487a-9171-1545ca0f6222","source":"cc-execution","status":"synthesis_required","payload":{"ok":true,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-b63df8436422","reason":null,"status":"synthesis_required","metrics":{"receiptBytes":3736,"releaseCount":0,"toolCallCount":2,"repeatedCallCount":0,"executorlessWaitMs":9217,"firstUsefulResultAt":"2026-09-24T19:12:30.267Z","recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.58.261-nonvisual-proof-precedence","prNumber":null,"terminal":false,"missionId":"b63df843-6422-4403-b15c-044f6af2bfb4","operation":"execute_mission","proofGate":"repair_mission_synthesis_ready","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1088,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":278,"providerAuthMs":0,"ledgerPrepareMs":278,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":278,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":278,"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":"b63df843-6422-4403-b15c-044f6af2bfb4"},"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":3972,"likelyAffectedFiles":["src/pages/mobile-vendor/BigPapisOwnerShell.tsx","src/routes/ownerRoutes.tsx","src/__tests__/contracts/big-papis-shell-route-context.contract.test.ts"],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-24T19:12:39.518623+00:00","proof_gate":"repair_mission_synthesis_ready","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:b63df843-6422-4403-b15c-044f6af2bfb4:execute_mission:repair_mission_synthesis_ready:current-generation","mission_step_id":"92e8484a-36c0-416f-9f0a-f29a79c0d293","command_center_event_id":"b63df843-6422-4403-b15c-044f6af2bfb4"},{"id":"139139b9-7344-4336-8349-dbd921676f9c","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/objective-first-repair-22b7baf5ae7f","reason":"file_write_content_required_use_source_targets","status":"blocked","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.79-durable-synthesis-continuation","prNumber":null,"terminal":false,"missionId":"22b7baf5-ae7f-4c5b-a82d-e47681ed2312","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":357,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":357,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":357,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":357,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"22b7baf5-ae7f-4c5b-a82d-e47681ed2312"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"ownerFacingState":"IN_PROGRESS","workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":1504,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-09T17:27:51.849779+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:22b7baf5-ae7f-4c5b-a82d-e47681ed2312:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"5f3bcedb-93cc-4db6-9cc5-8e2d8310aa06","command_center_event_id":"22b7baf5-ae7f-4c5b-a82d-e47681ed2312"},{"id":"13936599-3420-4801-a4ff-ff5f6c052a8a","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[{"path":"src/components/admin/TenantUserCommandCenters.tsx","content":"import { useEffect, useMemo, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { useQuery, useQueryClient } from '@tanstack/react-query';\nimport { Activity, Building2, DollarSign, Search, UserPlus, Users, Phone, Crown, Loader2, CheckCircle2, ClipboardCopy, Mail, MessageSquareText, Layers3, Wrench } from 'lucide-react';\n\nimport { supabase } from '@/integrations/supabase/client';\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport { Badge } from '@/components/ui/badge';\nimport { Switch } from '@/components/ui/switch';\nimport { Card, CardContent } from '@/components/ui/card';\nimport { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog';\nimport { Label } from '@/components/ui/label';\nimport {\n  Table,\n  TableBody,\n  TableCell,\n  TableHead,\n  TableHeader,\n  TableRow,\n} from '@/components/ui/table';\nimport { AdminUserCreateModal } from '@/components/admin/AdminUserCreateModal';\nimport { UserInspectorSheet } from '@/components/admin/user-management/UserInspectorSheet';\nimport { UserLeadsDialog } from '@/components/admin/UserLeadsDialog';\nimport { UserClientsDialog } from '@/components/admin/UserClientsDialog';\nimport { UserCallLogsDialog } from '@/components/admin/UserCallLogsDialog';\nimport { usePasswordReset } from '@/components/admin/hooks/usePasswordReset';\nimport type { TenantOption, UserWithRole } from '@/components/admin/user-management/types';\nimport { toast } from '@/lib/notify';\nimport { resolveTenantLogoUrl, useLogoPalette } from '@/lib/branding/logoPalette';\nimport { repairTenantWorkspace } from '@/lib/tenantMedia';\nimport { isModesTenant } from '@/shells/modesTenantShell';\n\ntype TenantDirectoryRow = TenantOption & {\n  status?: string | null;\n  owner_id?: string | null;\n  company_logo_url?: string | null;\n  settings?: Record<string, any> | null;\n};\n\ntype AccessRow = {\n  user_id: string;\n  tenant_id: string | null;\n  effective_role: string | null;\n  is_owner: boolean | null;\n  membership_status: string | null;\n};\n\ntype DirectoryData = {\n  users: UserWithRole[];\n  tenants: TenantDirectoryRow[];\n  access: AccessRow[];\n};\n\ntype TenantMailboxSummary = {\n  email_address: string | null;\n  display_name: string | null;\n  status: string | null;\n  is_default: boolean | null;\n};\n\ntype OwnerInviteReceipt = {\n  invitationId: string;\n  tenantName: string;\n  email: string;\n  phone: string | null;\n  ownerName: string;\n  setupUrl: string;\n  mailboxEmail: string | null;\n};\n\ntype TenantReadinessSummary = { contract_version: string; status: 'healthy' | 'needs_attention'; healthy: boolean; checked_at: string; missing: string[]; repairable: string[]; domains?: Record<string, { healthy: boolean; detail: string }> };\ntype TenantReadinessRow = { id: string; label: string; readiness?: TenantReadinessSummary | null };\ntype TenantActivitySummary = { tenant_id: string; activity_count: number | string | null; tracked_contacts: number | string | null; attributed_contacts: number | string | null; last_activity_at: string | null; collected_revenue: number | string | null; };\ntype BusinessActivityRow = { id: string; event_domain: string | null; activity_type: string; title: string; description: string | null; source_channel: string | null; touch_channel: string | null; source_campaign: string | null; monetary_value: number | string | null; currency: string | null; outcome: string | null; actor_role: string | null; occurred_at: string; };\nconst money = (value: number | string | null | undefined) => new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', maximumFractionDigits: 0 }).format(Number(value || 0));\nconst activityTime = (value?: string | null) => { if (!value) return 'No activity yet'; const date = new Date(value); return Number.isNaN(date.getTime()) ? 'Unknown time' : new Intl.DateTimeFormat(undefined, { month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' }).format(date); };\n\nconst PLATFORM_INVITE_FROM = 'info@knocklaunch.app';\n\nfunction requireInvitationDeliveryReceipt(data: any): string {\n  const messageId = String(data?.deliveryResult?.messageId || data?.emailDetails?.delivery_receipt?.message_id || '').trim();\n  if (data?.success !== true || !messageId) {\n    throw new Error(data?.error || 'Invitation delivery was not accepted by the mail provider.');\n  }\n  return messageId;\n}\n\ntype ActivityDialog = {\n  kind: 'leads' | 'clients' | 'calls';\n  user: UserWithRole;\n} | null;\n\nconst DIRECTORY_QUERY_KEY = ['admin-identity-access-directory'] as const;\n\nfunction useIdentityAccessDirectory() {\n  return useQuery({\n    queryKey: DIRECTORY_QUERY_KEY,\n    staleTime: 15_000,\n    queryFn: async (): Promise<DirectoryData> => {\n      const [profilesResult, tenantsResult, accessResult] = await Promise.all([\n        supabase.functions.invoke('admin-operations', { body: { action: 'list_users' } }),\n        (supabase as any)\n          .from('tenants')\n          .select('id,name,tenant_type,status,owner_id,company_logo_url,settings')\n          .order('name', { ascending: true }),\n        (supabase as any)\n          .from('user_tenant_access')\n          .select('user_id,tenant_id,effective_role,is_owner,membership_status'),\n      ]);\n\n      if (profilesResult.error) throw profilesResult.error;\n      if (profilesResult.data?.ok !== true) throw new Error(profilesResult.data?.message || 'Identity directory user lookup failed');\n      if (tenantsResult.error) throw tenantsResult.error;\n      if (accessResult.error) throw accessResult.error;\n\n      const profiles = Array.isArray(profilesResult.data?.users) ? profilesResult.data.users : [];\n      const tenants = ((tenantsResult.data || []) as TenantDirectoryRow[]).map((tenant) => ({\n        ...tenant,\n        name: tenant.name || tenant.id,\n      }));\n      const tenantById = new Map(tenants.map((tenant) => [tenant.id, tenant]));\n      const access = (accessResult.data || []) as AccessRow[];\n      const accessByUser = new Map<string, AccessRow[]>();\n\n      for (const row of access) {\n        if (!row.user_id) continue;\n        const current = accessByUser.get(row.user_id) || [];\n        current.push(row);\n        accessByUser.set(row.user_id, current);\n      }\n\n      const users = profiles.map((profile: any): UserWithRole => {\n        const memberships = accessByUser.get(profile.id) || [];\n        return {\n          id: profile.id,\n          email: String(profile.email || ''),\n          name: profile.name || undefined,\n          phone: profile.phone || undefined,\n          active: profile.active !== false,\n          created_at: String(profile.created_at || ''),\n          tenant_roles: memberships.flatMap((membership) => {\n            const tenantId = typeof membership.tenant_id === 'string' ? membership.tenant_id.trim() : '';\n            if (!tenantId) return [];\n            const tenant = tenantById.get(tenantId);\n            return [{\n              tenant_id: tenantId,\n              tenant_name: tenant?.name,\n              tenant_type: tenant?.tenant_type,\n              role: membership.effective_role || (membership.is_owner ? 'Tenant Owner' : 'Member'),\n            }];\n          }),\n        };\n      });\n\n      return { users, tenants, access };\n    },\n  });\n}\n\nfunction UserStatusBadge({ active }: { active: boolean }) {\n  return <Badge variant={active ? 'default' : 'secondary'}>{active ? 'Active' : 'Inactive'}</Badge>;\n}\n\nexport function AdminUsersCommandCenter() {\n  const queryClient = useQueryClient();\n  const directoryQuery = useIdentityAccessDirectory();\n  const { resetPassword } = usePasswordReset();\n  const [search, setSearch] = useState('');\n  const [createOpen, setCreateOpen] = useState(false);\n  const [selectedUser, setSelectedUser] = useState<UserWithRole | null>(null);\n  const [activityDialog, setActivityDialog] = useState<ActivityDialog>(null);\n\n  const directory = directoryQuery.data;\n  const filteredUsers = useMemo(() => {\n    const users = directory?.users || [];\n    const needle = search.trim().toLowerCase();\n    if (!needle) return users;\n    return users.filter((user) => {\n      const roles = user.tenant_roles.map((role) => `${role.tenant_name || ''} ${role.role}`).join(' ');\n      return [user.name, user.email, user.phone, roles]\n        .filter(Boolean)\n        .join(' ')\n        .toLowerCase()\n        .includes(needle);\n    });\n  }, [directory?.users, search]);\n\n  const refreshDirectory = async () => {\n    await queryClient.invalidateQueries({ queryKey: DIRECTORY_QUERY_KEY });\n  };\n\n  const deleteUser = async (userId: string) => {\n    const target = directory?.users.find((user) => user.id === userId);\n    if (!target) return;\n    if (typeof window !== 'undefined' && !window.confirm(`Delete ${target.name || target.email || target.phone || 'this user'}? This removes the account and tenant memberships.`)) return;\n\n    const { data, error } = await supabase.functions.invoke('admin-operations', {\n      body: { action: 'delete_user', user_id: userId },\n    });\n    if (error || data?.ok !== true) {\n      toast.error(data?.message || error?.message || 'Could not delete user');\n      return;\n    }\n\n    toast.success(`${target.name || target.email || target.phone || 'User'} deleted`);\n    setSelectedUser(null);\n    await refreshDirectory();\n  };\n\n  return (\n    <div data-testid=\"admin-users-command-center\">\n      <div className=\"flex flex-col gap-3 border-b border-border/80 px-3 py-3 sm:flex-row sm:items-center sm:px-4\">\n        <div className=\"relative flex-1 max-w-xl\">\n          <Search className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground\" />\n          <Input value={search} onChange={(event) => setSearch(event.target.value)} placeholder=\"Search people, email, role, or tenant\" className=\"pl-9\" />\n        </div>\n        <Button type=\"button\" onClick={() => setCreateOpen(true)} className=\"gap-2 sm:ml-auto\">\n          <UserPlus className=\"h-4 w-4\" /> Create user\n        </Button>\n      </div>\n\n      {directoryQuery.isLoading ? (\n        <div className=\"p-6 text-sm text-muted-foreground\">Loading people and tenant access…</div>\n      ) : directoryQuery.error ? (\n        <div className=\"border-b border-destructive/20 bg-destructive/10 p-4 text-sm\">\n          <p className=\"font-semibold\">Identity directory could not load.</p>\n          <p className=\"mt-1 text-muted-foreground\">{directoryQuery.error instanceof Error ? directoryQuery.error.message : 'Unknown error'}</p>\n          <Button type=\"button\" variant=\"outline\" size=\"sm\" className=\"mt-3\" onClick={() => void directoryQuery.refetch()}>Retry</Button>\n        </div>\n      ) : (\n        <div className=\"overflow-x-auto\">\n          <Table className=\"min-w-[860px]\">\n            <TableHeader className=\"bg-muted/70\">\n              <TableRow className=\"hover:bg-transparent\">\n                <TableHead className=\"font-semibold\">Person</TableHead>\n                <TableHead>Status</TableHead>\n                <TableHead>Tenant access</TableHead>\n                <TableHead className=\"w-28 text-right\">Action</TableHead>\n              </TableRow>\n            </TableHeader>\n            <TableBody>\n              {filteredUsers.length === 0 ? (\n                <TableRow><TableCell colSpan={4} className=\"py-8 text-center text-muted-foreground\">No matching people.</TableCell></TableRow>\n              ) : filteredUsers.map((user) => (\n                <TableRow key={user.id} className=\"transition-colors hover:bg-muted/40\">\n                  <TableCell>\n                    <div className=\"font-medium\">{user.name || user.email || user.phone || 'Unnamed user'}</div>\n                    <div className=\"text-xs text-muted-foreground\">{user.email || user.phone || 'No sign-in identity'}</div>\n                  </TableCell>\n                  <TableCell><UserStatusBadge active={user.active} /></TableCell>\n                  <TableCell>\n                    <div className=\"flex max-w-2xl flex-wrap gap-1.5\">\n                      {user.tenant_roles.length ? user.tenant_roles.map((role, index) => (\n                        <Badge key={`${role.tenant_id}-${role.role}-${index}`} variant=\"outline\" className=\"font-normal\">\n                          {role.tenant_name || (role.tenant_id ? role.tenant_id.slice(0, 8) : 'Platform')} · {role.role}\n                        </Badge>\n                      )) : <span className=\"text-xs text-muted-foreground\">No tenant membership</span>}\n                    </div>\n                  </TableCell>\n                  <TableCell className=\"text-right\">\n                    <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={() => setSelectedUser(user)}>Manage</Button>\n                  </TableCell>\n                </TableRow>\n              ))}\n            </TableBody>\n          </Table>\n        </div>\n      )}\n\n      <AdminUserCreateModal isOpen={createOpen} onOpenChange={setCreateOpen} onSuccess={() => void refreshDirectory()} />\n      <UserInspectorSheet\n        user={selectedUser}\n        open={Boolean(selectedUser)}\n        onOpenChange={(open) => { if (!open) setSelectedUser(null); }}\n        tenants={directory?.tenants || []}\n        onSaved={() => void refreshDirectory()}\n        onResetPassword={(userId, email) => { void resetPassword(userId, email, 'send_email'); }}\n        onDelete={(userId) => { void deleteUser(userId); }}\n        onOpenLeads={(user) => setActivityDialog({ kind: 'leads', user })}\n        onOpenClients={(user) => setActivityDialog({ kind: 'clients', user })}\n        onOpenCallLogs={(user) => setActivityDialog({ kind: 'calls', user })}\n      />\n\n      {activityDialog?.kind === 'leads' ? <UserLeadsDialog open onOpenChange={(open) => { if (!open) setActivityDialog(null); }} userId={activityDialog.user.id} userEmail={activityDialog.user.email} userName={activityDialog.user.name || activityDialog.user.email} /> : null}\n      {activityDialog?.kind === 'clients' ? <UserClientsDialog open onOpenChange={(open) => { if (!open) setActivityDialog(null); }} userId={activityDialog.user.id} userEmail={activityDialog.user.email} userName={activityDialog.user.name || activityDialog.user.email} /> : null}\n      {activityDialog?.kind === 'calls' ? <UserCallLogsDialog open onOpenChange={(open) => { if (!open) setActivityDialog(null); }} userId={activityDialog.user.id} userEmail={activityDialog.user.email} userName={activityDialog.user.name || activityDialog.user.email} /> : null}\n    </div>\n  );\n}\n\nexport function AdminTenantsCommandCenter() {\n  const queryClient = useQueryClient();\n  const directoryQuery = useIdentityAccessDirectory();\n  const directory = directoryQuery.data;\n  const readinessQuery = useQuery({ queryKey: ['admin-tenant-readiness'], staleTime: 15_000, queryFn: async () => { const { data, error } = await supabase.functions.invoke('tenant-media-library', { body: { action: 'bootstrap_inventory' } }); if (error) throw error; if (data?.ok !== true) throw new Error(data?.error || 'Tenant readiness could not load'); return (Array.isArray(data?.tenants) ? data.tenants : []) as TenantReadinessRow[]; } });\n  const readinessByTenant = useMemo(() => new Map((readinessQuery.data || []).map((tenant) => [tenant.id, tenant.readiness || null])), [readinessQuery.data]);\n  const [repairingTenantId, setRepairingTenantId] = useState<string | null>(null);\n  const [activityTenant, setActivityTenant] = useState<TenantDirectoryRow | null>(null);\n  const activitySummaryQuery = useQuery({ queryKey: ['admin-business-activity-summary'], staleTime: 15_000, queryFn: async () => { const { data, error } = await (supabase as any).from('business_tenant_activity_summary').select('tenant_id,activity_count,tracked_contacts,attributed_contacts,last_activity_at,collected_revenue'); if (error) throw error; return (data || []) as TenantActivitySummary[]; } });\n  const activityDetailQuery = useQuery({ queryKey: ['admin-business-activity-detail', activityTenant?.id], enabled: Boolean(activityTenant?.id), staleTime: 5_000, queryFn: async () => { const { data, error } = await (supabase as any).from('business_activity_ledger').select('id,event_domain,activity_type,title,description,source_channel,touch_channel,source_campaign,monetary_value,currency,outcome,actor_role,occurred_at').eq('tenant_org_id', activityTenant!.id).order('occurred_at', { ascending: false }).limit(100); if (error) throw error; return (data || []) as BusinessActivityRow[]; } });\n  const activityByTenant = useMemo(() => new Map((activitySummaryQuery.data || []).map((row) => [row.tenant_id, row])), [activitySummaryQuery.data]);\n  const [ownerTenant, setOwnerTenant] = useState<TenantDirectoryRow | null>(null);\n  const [ownerEmail, setOwnerEmail] = useState('');\n  const [ownerPhone, setOwnerPhone] = useState('');\n  const [ownerName, setOwnerName] = useState('');\n  const [assigningOwner, setAssigningOwner] = useState(false);\n  const [sendingOwnerInvite, setSendingOwnerInvite] = useState(false);\n  const [loadingOwnerMailbox, setLoadingOwnerMailbox] = useState(false);\n  const [ownerMailbox, setOwnerMailbox] = useState<TenantMailboxSummary | null>(null);\n  const [ownerInviteReceipt, setOwnerInviteReceipt] = useState<OwnerInviteReceipt | null>(null);\n  const [updatingAutomatedContactTenantId, setUpdatingAutomatedContactTenantId] = useState<string | null>(null);\n  const ownerTenantLogoUrl = useMemo(() => resolveTenantLogoUrl(ownerTenant), [ownerTenant]);\n  const ownerTenantPalette = useLogoPalette(ownerTenantLogoUrl);\n  const ownerInvitePalette = ownerTenantPalette || {\n    primary: '#0f766e',\n    accent: '#14b8a6',\n    muted: '#0f172a',\n    contrastText: '#ffffff',\n    glow: 'rgba(20, 184, 166, 0.22)',\n  };\n  const ownerTenantInitials = useMemo(() => {\n    const words = (ownerTenant?.name || 'Tenant').trim().split(/\\s+/).filter(Boolean);\n    return words.slice(0, 2).map((word) => word.charAt(0).toUpperCase()).join('') || 'T';\n  }, [ownerTenant?.name]);\n\n  useEffect(() => {\n    let cancelled = false;\n    setOwnerInviteReceipt(null);\n\n    if (!ownerTenant) {\n      setOwnerMailbox(null);\n      setLoadingOwnerMailbox(false);\n      return () => { cancelled = true; };\n    }\n\n    setLoadingOwnerMailbox(true);\n    void (async () => {\n      const { data, error } = await (supabase as any)\n        .from('tenant_mailboxes')\n        .select('email_address,display_name,status,is_default')\n        .eq('tenant_org_id', ownerTenant.id)\n        .eq('status', 'active')\n        .order('is_default', { ascending: false })\n        .limit(1)\n        .maybeSingle();\n\n      if (cancelled) return;\n      if (error) {\n        console.warn('[AdminTenantsCommandCenter] Mailbox lookup failed', error);\n        setOwnerMailbox(null);\n      } else {\n        setOwnerMailbox((data || null) as TenantMailboxSummary | null);\n      }\n      setLoadingOwnerMailbox(false);\n    })();\n\n    return () => { cancelled = true; };\n  }, [ownerTenant?.id]);\n\n  const tenantStats = useMemo(() => {\n    const counts = new Map<string, { members: number }>();\n    for (const row of directory?.access || []) {\n      if (row.membership_status && row.membership_status !== 'active') continue;\n      const tenantId = typeof row.tenant_id === 'string' ? row.tenant_id.trim() : '';\n      if (!tenantId) continue;\n      const current = counts.get(tenantId) || { members: 0 };\n      current.members += 1;\n      counts.set(tenantId, current);\n    }\n    return counts;\n  }, [directory?.access]);\n\n  const userById = useMemo(() => new Map((directory?.users || []).map((user) => [user.id, user])), [directory?.users]);\n  const activationUrl = typeof window !== 'undefined'\n    ? new URL('/crm/login', window.location.origin).toString()\n    : 'https://app.knocklaunch.app/crm/login';\n\n  const buildActivationMessage = (receipt: OwnerInviteReceipt) => [\n    `You're invited to ${receipt.tenantName}.`,\n    `Set up your secure owner access: ${receipt.setupUrl}`,\n    `Use ${receipt.email} to sign in after you create your password.`,\n    `After sign-in, you can add this workspace to your phone's Home Screen so it opens like an app.`,\n    receipt.mailboxEmail ? `Your business Mail (${receipt.mailboxEmail}) is already connected inside your workspace.` : null,\n    `Securely powered by KnockLaunch.`,\n  ].filter(Boolean).join('\\n\\n');\n\n  const buildInviteHtml = (receipt: OwnerInviteReceipt) => `\n    <div style=\"margin:0;background:#f1f3f6;padding:38px 14px;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;color:#111827\">\n      <table role=\"presentation\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"width:100%;border-collapse:collapse\">\n        <tr>\n          <td align=\"center\">\n            <table role=\"presentation\" width=\"640\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"width:100%;max-width:640px;border-collapse:separate;border-spacing:0;background:#ffffff;border:1px solid #dfe3e8;border-radius:24px;overflow:hidden;box-shadow:0 18px 50px rgba(17,24,39,.12)\">\n              <tr><td style=\"height:6px;background:${ownerInvitePalette.primary};font-size:0;line-height:0\">&nbsp;</td></tr>\n              <tr>\n                <td style=\"padding:34px 38px 32px;background:${ownerInvitePalette.muted};color:#ffffff\">\n                  <table role=\"presentation\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"border-collapse:collapse\">\n                    <tr>\n                      <td>\n                        ${ownerTenantLogoUrl ? `<img src=\"${ownerTenantLogoUrl}\" alt=\"${receipt.tenantName}\" style=\"display:block;max-height:58px;max-width:190px;object-fit:contain;background:#ffffff;border-radius:12px;padding:7px\"/>` : `<span style=\"display:inline-flex;width:48px;height:48px;border-radius:12px;align-items:center;justify-content:center;background:#ffffff;color:${ownerInvitePalette.primary};font-size:16px;font-weight:900\">${ownerTenantInitials}</span>`}\n                        <div style=\"margin-top:12px;font-size:17px;line-height:1.2;font-weight:800;color:#ffffff\">${receipt.tenantName}</div>\n                      </td>\n                      <td align=\"right\" style=\"font-size:11px;line-height:1;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:${ownerInvitePalette.accent}\">Private owner invitation</td>\n                    </tr>\n                  </table>\n                  <h1 style=\"margin:30px 0 12px;font-size:34px;line-height:1.12;letter-spacing:-.035em;color:#ffffff;font-weight:800\">Welcome to ${receipt.tenantName}.</h1>\n                  <p style=\"margin:0;max-width:500px;color:#d6dbe4;font-size:16px;line-height:1.65\">Hi ${receipt.ownerName}. Your secure owner access is ready for <strong style=\"color:#ffffff\">${receipt.tenantName}</strong>.</p>\n                </td>\n              </tr>\n              <tr>\n                <td style=\"padding:34px 38px 38px;background:#ffffff\">\n                  <p style=\"margin:0 0 24px;color:#4b5563;font-size:15px;line-height:1.75\">Your workspace is already prepared. Create your password, sign in, and everything assigned to your business will be waiting for you.</p>\n\n                  <table role=\"presentation\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"margin:0 0 28px;border-collapse:separate;border-spacing:0;background:#f7f8fa;border:1px solid #e5e7eb;border-radius:16px\">\n                    <tr>\n                      <td width=\"33.33%\" valign=\"top\" style=\"padding:18px 14px;border-right:1px solid #e5e7eb\">\n                        <div style=\"font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:${ownerInvitePalette.primary}\">01</div>\n                        <div style=\"margin-top:7px;font-size:13px;font-weight:700;color:#111827\">Create password</div>\n                      </td>\n                      <td width=\"33.33%\" valign=\"top\" style=\"padding:18px 14px;border-right:1px solid #e5e7eb\">\n                        <div style=\"font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:${ownerInvitePalette.primary}\">02</div>\n                        <div style=\"margin-top:7px;font-size:13px;font-weight:700;color:#111827\">Open workspace</div>\n                      </td>\n                      <td width=\"33.33%\" valign=\"top\" style=\"padding:18px 14px\">\n                        <div style=\"font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:${ownerInvitePalette.primary}\">03</div>\n                        <div style=\"margin-top:7px;font-size:13px;font-weight:700;color:#111827\">Add to Home Screen</div>\n                      </td>\n                    </tr>\n                  </table>\n\n                  <table role=\"presentation\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"border-collapse:separate;border-spacing:0\">\n                    <tr>\n                      <td align=\"center\" bgcolor=\"${ownerInvitePalette.primary}\" style=\"border-radius:12px;background:${ownerInvitePalette.primary}\">\n                        <a href=\"${receipt.setupUrl}\" style=\"display:inline-block;padding:15px 24px;color:${ownerInvitePalette.contrastText};text-decoration:none;font-size:15px;line-height:1;font-weight:800\">Enter ${receipt.tenantName}&nbsp;&nbsp;→</a>\n                      </td>\n                    </tr>\n                  </table>\n\n                  <p style=\"margin:15px 0 28px;color:#7b8492;font-size:12px;line-height:1.6\">This secure link lets you create your password and enter ${receipt.tenantName} directly.</p>\n\n                  <table role=\"presentation\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"border-collapse:separate;border-spacing:0;background:#0f141d;border-radius:16px\">\n                    <tr>\n                      <td style=\"padding:18px 20px;color:#aeb8c6;font-size:12px;line-height:1.75\">\n                        <span style=\"color:#7f8b9b\">SIGN-IN EMAIL</span><br/>\n                        <strong style=\"color:#ffffff;font-size:14px\">${receipt.email}</strong>\n                        ${receipt.mailboxEmail ? `<div style=\"height:12px\"></div><span style=\"color:#7f8b9b\">BUSINESS MAIL</span><br/><strong style=\"color:#ffffff;font-size:14px\">${receipt.mailboxEmail}</strong>` : ''}\n                      </td>\n                    </tr>\n                  </table>\n                </td>\n              </tr>\n              <tr>\n                <td style=\"padding:18px 38px;background:#fafafa;border-top:1px solid #eceff2;color:#8a94a3;font-size:11px;line-height:1.6\">\n                  Securely powered by <strong style=\"color:#111827\">KNOCKLAUNCH</strong><br/>\n                  Sent from ${PLATFORM_INVITE_FROM}\n                </td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n    </div>`;\n\n  const closeOwnerDialog = () => {\n    setOwnerTenant(null);\n    setOwnerEmail('');\n    setOwnerPhone('');\n    setOwnerName('');\n    setOwnerMailbox(null);\n    setOwnerInviteReceipt(null);\n  };\n\n  const copyActivationInstructions = async () => {\n    if (!ownerInviteReceipt) return;\n    await navigator.clipboard.writeText(buildActivationMessage(ownerInviteReceipt));\n    toast.success('Activation instructions copied');\n  };\n\n  const openActivationText = () => {\n    if (!ownerInviteReceipt?.phone || typeof window === 'undefined') return;\n    window.location.href = `sms:${ownerInviteReceipt.phone}?body=${encodeURIComponent(buildActivationMessage(ownerInviteReceipt))}`;\n  };\n\n  const sendEmailInvite = async () => {\n    if (!ownerInviteReceipt) return;\n    setSendingOwnerInvite(true);\n    try {\n      const { data, error } = await supabase.functions.invoke('send-invitation', {\n        body: { invitationId: ownerInviteReceipt.invitationId, resend: true },\n      });\n      if (error) throw error;\n      requireInvitationDeliveryReceipt(data);\n      const nextSetupUrl = String(data?.emailDetails?.invitation_url || ownerInviteReceipt.setupUrl).trim();\n      if (nextSetupUrl) {\n        setOwnerInviteReceipt((current) => current ? { ...current, setupUrl: nextSetupUrl } : current);\n      }\n      toast.success(`Invitation re-sent from ${PLATFORM_INVITE_FROM}`);\n    } catch (error: any) {\n      toast.error(error?.message || 'Could not re-send owner invitation');\n    } finally {\n      setSendingOwnerInvite(false);\n    }\n  };\n\n  const setTenantAutomatedContact = async (tenant: TenantDirectoryRow, enabled: boolean) => {\n    setUpdatingAutomatedContactTenantId(tenant.id);\n    try {\n      const { data: current, error: readError } = await (supabase as any)\n        .from('tenants')\n        .select('settings')\n        .eq('id', tenant.id)\n        .maybeSingle();\n      if (readError) throw readError;\n      const settings = current?.settings && typeof current.settings === 'object' ? current.settings : {};\n      const { error: updateError } = await (supabase as any)\n        .from('tenants')\n        .update({ settings: { ...settings, automated_contact_enabled: enabled } })\n        .eq('id', tenant.id);\n      if (updateError) throw updateError;\n      toast.success(`Automated Contact ${enabled ? 'enabled' : 'disabled'} for ${tenant.name}`);\n      await queryClient.invalidateQueries({ queryKey: DIRECTORY_QUERY_KEY });\n    } catch (error: any) {\n      toast.error(error?.message || 'Could not update Automated Contact');\n    } finally {\n      setUpdatingAutomatedContactTenantId(null);\n    }\n  };\n\n  const repairTenant = async (tenant: TenantDirectoryRow) => {\n    if (repairingTenantId) return;\n    setRepairingTenantId(tenant.id);\n    try {\n      const data = await repairTenantWorkspace(tenant.id);\n      if (data?.ok === false) throw new Error(String(data?.error || 'Tenant repair could not be verified'));\n      const readiness = data?.receipt?.readiness as TenantReadinessSummary | undefined;\n      const reviewCount = data?.doctor?.issues?.length ?? readiness?.missing?.length ?? 0;\n      const healthy = data?.doctor?.healthy === true || readiness?.healthy === true;\n      toast.success(healthy ? `${tenant.name} is healthy` : `${tenant.name} repaired; ${reviewCount} item${reviewCount === 1 ? '' : 's'} still need review`);\n      await Promise.all([queryClient.invalidateQueries({ queryKey: ['admin-tenant-readiness'] }), queryClient.invalidateQueries({ queryKey: DIRECTORY_QUERY_KEY })]);\n    } catch (error: any) {\n      toast.error(error?.message || 'Could not repair tenant');\n    } finally {\n      setRepairingTenantId(null);\n    }\n  };\n\n  const assignOwner = async () => {\n    if (!ownerTenant || !ownerEmail.trim()) return;\n    setAssigningOwner(true);\n    try {\n      const { data, error } = await supabase.functions.invoke('admin-create-user', {\n        body: {\n          action: 'assign_owner_by_phone',\n          tenant_id: ownerTenant.id,\n          email: ownerEmail.trim(),\n          phone: ownerPhone.trim() || undefined,\n          name: ownerName.trim() || undefined,\n        },\n      });\n      if (error || data?.success !== true) throw new Error(data?.error || error?.message || 'Could not assign owner');\n      const invitationId = String(data.invitation_id || '').trim();\n      if (!invitationId) throw new Error('Owner invitation was prepared without a delivery id.');\n      const receipt: OwnerInviteReceipt = {\n        invitationId,\n        tenantName: ownerTenant.name,\n        email: String(data.email || ownerEmail.trim()),\n        phone: data.phone ? String(data.phone) : (ownerPhone.trim() || null),\n        ownerName: ownerName.trim() || 'Tenant owner',\n        setupUrl: String(data.setup_url || ''),\n        mailboxEmail: ownerMailbox?.email_address || null,\n      };\n      setOwnerInviteReceipt(receipt);\n\n      const { data: deliveryData, error: deliveryError } = await supabase.functions.invoke('send-invitation', {\n        body: { invitationId },\n      });\n      if (deliveryError) throw deliveryError;\n      requireInvitationDeliveryReceipt(deliveryData);\n      toast.success(`Owner invitation sent from ${PLATFORM_INVITE_FROM}`);\n      await queryClient.invalidateQueries({ queryKey: DIRECTORY_QUERY_KEY });\n    } catch (error: any) {\n      toast.error(error?.message || 'Could not assign or invite owner');\n    } finally {\n      setAssigningOwner(false);\n    }\n  };\n\n  return (\n    <div data-testid=\"admin-tenants-command-center\">\n      {directoryQuery.isLoading ? (\n        <div className=\"p-6 text-sm text-muted-foreground\">Loading tenants…</div>\n      ) : directoryQuery.error ? (\n        <div className=\"border-b border-destructive/20 bg-destructive/10 p-4 text-sm\">\n          <p className=\"font-semibold\">Tenant directory could not load.</p>\n          <p className=\"mt-1 text-muted-foreground\">{directoryQuery.error instanceof Error ? directoryQuery.error.message : 'Unknown error'}</p>\n          <Button type=\"button\" variant=\"outline\" size=\"sm\" className=\"mt-3\" onClick={() => void directoryQuery.refetch()}>Retry</Button>\n        </div>\n      ) : (\n        <div className=\"overflow-x-auto\">\n          <Table className=\"min-w-[1240px]\">\n            <TableHeader className=\"bg-muted/70\">\n              <TableRow className=\"hover:bg-transparent\">\n                <TableHead className=\"font-semibold\">Tenant</TableHead>\n                <TableHead>Owner</TableHead>\n                <TableHead>Readiness</TableHead>\n                <TableHead>Members</TableHead>\n                <TableHead>Activity</TableHead>\n                <TableHead>Collected</TableHead>\n                <TableHead>Automated Contact</TableHead>\n                <TableHead className=\"text-right\">Controls</TableHead>\n              </TableRow>\n            </TableHeader>\n            <TableBody>\n              {(directory?.tenants || []).map((tenant) => {\n                const stats = tenantStats.get(tenant.id) || { members: 0 };\n                const owner = tenant.owner_id ? userById.get(tenant.owner_id) : undefined;\n                const modesTenant = isModesTenant(tenant);\n                const readiness = readinessByTenant.get(tenant.id);\n                return (\n                  <TableRow key={tenant.id} className=\"transition-colors hover:bg-muted/40\">\n                    <TableCell>\n                      <div className=\"flex items-center gap-2 font-medium\"><Building2 className=\"h-4 w-4 text-primary\" /> {tenant.name}</div>\n                      <div className=\"mt-1 text-xs text-muted-foreground\">{tenant.tenant_type || 'Tenant'} · {tenant.status || 'active'}</div>\n                    </TableCell>\n                    <TableCell>\n                      {owner ? (\n                        <div>\n                          <div className=\"flex items-center gap-1.5 font-medium\"><Crown className=\"h-3.5 w-3.5 text-primary\" /> {owner.name || owner.phone || owner.email || 'Owner'}</div>\n                          <div className=\"mt-1 text-xs text-muted-foreground\">{owner.phone || owner.email || 'No contact identity'}</div>\n                        </div>\n                      ) : <span className=\"text-sm text-muted-foreground\">No owner assigned</span>}\n                    </TableCell>\n                    <TableCell>\n                      {readinessQuery.isLoading ? <span className=\"text-xs text-muted-foreground\">Checking…</span> : readiness?.healthy ? <Badge className=\"bg-emerald-600 text-white hover:bg-emerald-600\">Healthy</Badge> : <div><Badge variant=\"outline\" className=\"border-amber-500/40 text-amber-700 dark:text-amber-300\">Needs attention</Badge>{readiness?.missing?.length ? <div className=\"mt-1 max-w-48 text-[11px] leading-4 text-muted-foreground\">{readiness.missing.slice(0, 2).join(' · ')}</div> : null}</div>}\n                    </TableCell>\n                    <TableCell><Badge variant=\"outline\">{stats.members}</Badge></TableCell>\n                    <TableCell>{(() => { const activity = activityByTenant.get(tenant.id); return activitySummaryQuery.isLoading ? <span className=\"text-xs text-muted-foreground\">Loading…</span> : activity ? <div><div className=\"flex items-center gap-1.5 font-semibold\"><Activity className=\"h-3.5 w-3.5 text-primary\" />{Number(activity.activity_count || 0).toLocaleString()} events</div><div className=\"mt-1 text-xs text-muted-foreground\">{activityTime(activity.last_activity_at)} · {Number(activity.attributed_contacts || 0)}/{Number(activity.tracked_contacts || 0)} attributed</div></div> : <span className=\"text-xs text-muted-foreground\">No ledger activity</span>; })()}</TableCell>\n                    <TableCell>{(() => { const activity = activityByTenant.get(tenant.id); return <div className=\"flex items-center gap-1.5 font-semibold\"><DollarSign className=\"h-3.5 w-3.5 text-primary\" />{money(activity?.collected_revenue)}</div>; })()}</TableCell>\n                    <TableCell>\n                      <div className=\"flex items-center gap-2\">\n                        <Switch\n                          aria-label={`Automated Contact for ${tenant.name}`}\n                          checked={tenant.settings?.automated_contact_enabled === true}\n                          disabled={updatingAutomatedContactTenantId === tenant.id}\n                          onCheckedChange={(checked) => void setTenantAutomatedContact(tenant, checked)}\n                        />\n                        <span className=\"text-xs text-muted-foreground\">{tenant.settings?.automated_contact_enabled === true ? 'On' : 'Off'}</span>\n                      </div>\n                    </TableCell>\n                    <TableCell>\n                      <div className=\"flex flex-wrap justify-end gap-2\">\n                        <Button size=\"sm\" variant=\"outline\" className=\"min-h-11 sm:min-h-9\" onClick={() => void repairTenant(tenant)} disabled={repairingTenantId === tenant.id}><Wrench className=\"mr-1.5 h-3.5 w-3.5\" /> {repairingTenantId === tenant.id ? 'Repairing…' : 'Repair'}</Button>\n                        {modesTenant ? <Button asChild size=\"sm\" variant=\"outline\" className=\"min-h-11 sm:min-h-9\"><Link to={`/admin/tenant-bootstrap?tenant=${encodeURIComponent(tenant.id)}&focus=modes`}><Layers3 className=\"mr-1.5 h-3.5 w-3.5\" /> MODES</Link></Button> : null}\n                        <Button size=\"sm\" variant=\"outline\" className=\"min-h-11 sm:min-h-9\" onClick={() => setActivityTenant(tenant)}><Activity className=\"mr-1.5 h-3.5 w-3.5\" /> Activity</Button>\n                        <Button size=\"sm\" className=\"min-h-11 sm:min-h-9\" onClick={() => { setOwnerInviteReceipt(null); setOwnerTenant(tenant); setOwnerEmail(owner?.email || ''); setOwnerPhone(owner?.phone || ''); setOwnerName(owner?.name || ''); }}>\n                          <Phone className=\"mr-1.5 h-3.5 w-3.5\" /> {owner ? 'Change owner' : 'Invite owner'}\n                        </Button>\n                        <Button asChild size=\"sm\" variant=\"outline\" className=\"min-h-11 sm:min-h-9\"><Link to={`/admin/tenants/${tenant.id}/features/users`}>User access</Link></Button>\n                        <Button asChild size=\"sm\" variant=\"outline\" className=\"min-h-11 sm:min-h-9\"><Link to={`/admin/tenants/${tenant.id}/features`}>Tenant features</Link></Button>\n                      </div>\n                    </TableCell>\n                  </TableRow>\n                );\n              })}\n              {!directory?.tenants.length ? <TableRow><TableCell colSpan={8} className=\"py-8 text-center text-muted-foreground\">No tenants found.</TableCell></TableRow> : null}\n            </TableBody>\n          </Table>\n        </div>\n      )}\n\n      <Dialog open={Boolean(activityTenant)} onOpenChange={(open) => { if (!open) setActivityTenant(null); }}>\n        <DialogContent className=\"max-h-[86vh] overflow-hidden sm:max-w-3xl\">\n          <DialogHeader><DialogTitle className=\"flex items-center gap-2\"><Activity className=\"h-5 w-5 text-primary\" /> {activityTenant?.name || 'Business'} activity</DialogTitle><DialogDescription>Human-readable business activity from the canonical KnockLaunch ledger. History is append-only; corrections appear as new events rather than rewriting the past.</DialogDescription></DialogHeader>\n          {activityTenant ? (() => { const summary = activityByTenant.get(activityTenant.id); return <div className=\"grid grid-cols-3 gap-2\"><div className=\"rounded-xl border border-border/60 p-3\"><div className=\"text-xs text-muted-foreground\">Events</div><div className=\"mt-1 text-xl font-bold\">{Number(summary?.activity_count || 0).toLocaleString()}</div></div><div className=\"rounded-xl border border-border/60 p-3\"><div className=\"text-xs text-muted-foreground\">Attributed contacts</div><div className=\"mt-1 text-xl font-bold\">{Number(summary?.attributed_contacts || 0)}/{Number(summary?.tracked_contacts || 0)}</div></div><div className=\"rounded-xl border border-border/60 p-3\"><div className=\"text-xs text-muted-foreground\">Collected</div><div className=\"mt-1 text-xl font-bold\">{money(summary?.collected_revenue)}</div></div></div>; })() : null}\n          <div className=\"min-h-0 flex-1 overflow-y-auto rounded-xl border border-border/60\">{activityDetailQuery.isLoading ? <div className=\"p-6 text-sm text-muted-foreground\">Loading business activity…</div> : activityDetailQuery.error ? <div className=\"p-6 text-sm text-destructive\">Business activity could not be loaded.</div> : !(activityDetailQuery.data || []).length ? <div className=\"p-6 text-sm text-muted-foreground\">No business activity has been recorded yet.</div> : <div className=\"divide-y divide-border/60\">{(activityDetailQuery.data || []).map((event) => <div key={event.id} className=\"p-4\"><div className=\"flex flex-wrap items-start justify-between gap-2\"><div className=\"min-w-0\"><div className=\"flex flex-wrap items-center gap-2\"><Badge variant=\"outline\" className=\"text-[10px] uppercase tracking-wide\">{event.event_domain || 'activity'}</Badge>{event.source_channel || event.touch_channel ? <Badge variant=\"secondary\">{event.source_channel || event.touch_channel}{event.source_campaign ? ` · ${event.source_campaign}` : ''}</Badge> : null}{event.outcome ? <Badge>{event.outcome}</Badge> : null}</div><div className=\"mt-2 font-semibold\">{event.title}</div>{event.description ? <div className=\"mt-1 text-sm text-muted-foreground\">{event.description}</div> : null}</div><div className=\"shrink-0 text-right\"><div className=\"text-xs text-muted-foreground\">{activityTime(event.occurred_at)}</div>{Number(event.monetary_value || 0) > 0 ? <div className=\"mt-1 font-bold text-primary\">{money(event.monetary_value)}</div> : null}<div className=\"mt-1 text-[11px] text-muted-foreground\">{event.actor_role || 'system'}</div></div></div></div>)}</div>}</div>\n          <DialogFooter><Button variant=\"outline\" onClick={() => setActivityTenant(null)}>Close</Button></DialogFooter>\n        </DialogContent>\n      </Dialog>\n\n      <Dialog open={Boolean(ownerTenant)} onOpenChange={(open) => { if (!open) closeOwnerDialog(); }}>\n        <DialogContent className=\"sm:max-w-lg\" data-version-refresh-block=\"true\">\n          {ownerInviteReceipt ? (\n            <>\n              <DialogHeader>\n                <DialogTitle className=\"flex items-center gap-2\">\n                  <CheckCircle2 className=\"h-5 w-5\" style={{ color: ownerInvitePalette.primary }} /> {ownerInviteReceipt.tenantName} owner invitation\n                </DialogTitle>\n                <DialogDescription>\n                  The owner invitation was sent by email. You can copy it, text it, or resend it below.\n                </DialogDescription>\n              </DialogHeader>\n\n              <div className=\"space-y-3 py-2\">\n                <div className=\"rounded-xl border border-border/60 bg-muted/20 p-4 text-sm\">\n                  <div className=\"font-semibold\">{ownerInviteReceipt.tenantName}</div>\n                  <div className=\"mt-2 text-muted-foreground\">Invite email: {ownerInviteReceipt.email}</div>\n                  {ownerInviteReceipt.phone ? <div className=\"mt-1 text-muted-foreground\">Optional text: {ownerInviteReceipt.phone}</div> : null}\n                  <div className=\"mt-1 text-muted-foreground\">Secure delivery: {PLATFORM_INVITE_FROM}</div>\n                </div>\n                {ownerInviteReceipt.mailboxEmail ? (\n                  <div className=\"flex items-start gap-3 rounded-xl border border-primary/20 bg-primary/5 p-4 text-sm\">\n                    <Mail className=\"mt-0.5 h-4 w-4 text-primary\" />\n                    <div>\n                      <div className=\"font-semibold\">Business Mail ready</div>\n                      <div className=\"mt-1 text-muted-foreground\">{ownerInviteReceipt.mailboxEmail} is already connected inside the workspace.</div>\n                    </div>\n                  </div>\n                ) : null}\n                <div\n                  className=\"overflow-hidden rounded-2xl border p-4 text-white shadow-xl\"\n                  style={{\n                    borderColor: ownerInvitePalette.glow,\n                    background: `linear-gradient(135deg, ${ownerInvitePalette.muted}, #070b14 72%)`,\n                    boxShadow: `0 24px 70px ${ownerInvitePalette.glow}`,\n                  }}\n                >\n                  <div className=\"rounded-xl border border-white/10 bg-black/20 p-5 backdrop-blur-sm\">\n                    <div className=\"flex items-center gap-4\">\n                      <div className=\"flex h-16 w-16 shrink-0 items-center justify-center overflow-hidden rounded-2xl border border-white/15 bg-white p-2 shadow-lg\">\n                        {ownerTenantLogoUrl ? (\n                          <img src={ownerTenantLogoUrl} alt={`${ownerInviteReceipt.tenantName} logo`} className=\"h-full w-full object-contain\" />\n                        ) : (\n                          <span className=\"text-lg font-black\" style={{ color: ownerInvitePalette.primary }}>{ownerTenantInitials}</span>\n                        )}\n                      </div>\n                      <div className=\"min-w-0\">\n                        <div className=\"text-[10px] font-bold uppercase tracking-[0.18em] text-white/60\">Private owner invitation</div>\n                        <div className=\"mt-1 truncate text-xl font-black text-white\">{ownerInviteReceipt.tenantName}</div>\n                      </div>\n                    </div>\n                    <div className=\"mt-5 text-2xl font-black tracking-tight\">Welcome to {ownerInviteReceipt.tenantName}.</div>\n                    <div className=\"mt-2 text-sm leading-relaxed text-white/75\">{ownerInviteReceipt.ownerName}, your secure owner access has been prepared. Create your password, then enter your workspace directly.</div>\n                    <div\n                      className=\"mt-5 inline-flex rounded-lg px-4 py-2.5 text-sm font-black shadow-lg\"\n                      style={{ backgroundColor: ownerInvitePalette.primary, color: ownerInvitePalette.contrastText }}\n                    >\n                      Enter {ownerInviteReceipt.tenantName}\n                    </div>\n                    <div className=\"mt-5 rounded-lg border border-white/10 bg-white/5 p-3 text-xs leading-relaxed text-white/65\">\n                      Sign-in email: <span className=\"font-semibold text-white\">{ownerInviteReceipt.email}</span>\n                      {ownerInviteReceipt.mailboxEmail ? <><br />Business Mail: <span className=\"font-semibold text-white\">{ownerInviteReceipt.mailboxEmail}</span></> : null}\n                    </div>\n                    <div className=\"mt-4 text-[10px] font-semibold uppercase tracking-[0.16em] text-white/45\">Securely powered by KnockLaunch</div>\n                  </div>\n                </div>\n                <div className=\"rounded-xl border border-border/60 bg-muted/20 p-4 text-sm\">\n                  <div className=\"font-semibold\">Add this workspace to your Home Screen</div>\n                  <div className=\"mt-1 text-muted-foreground\">After sign-in, they can add the workspace to their phone's Home Screen so it opens like an app.</div>\n                </div>\n              </div>\n\n              <DialogFooter className=\"flex-col gap-2 sm:flex-row sm:justify-between\">\n                <Button variant=\"outline\" onClick={closeOwnerDialog}>Done</Button>\n                <div className=\"flex flex-col gap-2 sm:flex-row\">\n                  <Button variant=\"outline\" onClick={() => void copyActivationInstructions()} className=\"gap-2\">\n                    <ClipboardCopy className=\"h-4 w-4\" /> Copy invite\n                  </Button>\n                  {ownerInviteReceipt.phone ? (\n                    <Button variant=\"outline\" onClick={openActivationText} className=\"gap-2\">\n                      <MessageSquareText className=\"h-4 w-4\" /> Text invite\n                    </Button>\n                  ) : null}\n                  <Button onClick={() => void sendEmailInvite()} disabled={sendingOwnerInvite} className=\"gap-2\">\n                    {sendingOwnerInvite ? <Loader2 className=\"h-4 w-4 animate-spin\" /> : <Mail className=\"h-4 w-4\" />}\n                    {sendingOwnerInvite ? 'Sending…' : 'Resend email invite'}\n                  </Button>\n                </div>\n              </DialogFooter>\n            </>\n          ) : (\n            <>\n              <DialogHeader>\n                <DialogTitle>{ownerTenant?.owner_id ? 'Change tenant owner' : 'Invite tenant owner'}</DialogTitle>\n                <DialogDescription>\n                  Enter the owner's email to prepare their secure setup link. A mobile number is optional if you also want to share the same invite by text.\n                </DialogDescription>\n              </DialogHeader>\n              <div className=\"space-y-4 py-2\">\n                <div className=\"space-y-2\">\n                  <Label htmlFor=\"owner-email\">Email address</Label>\n                  <Input id=\"owner-email\" type=\"email\" value={ownerEmail} onChange={(event) => setOwnerEmail(event.target.value)} placeholder=\"owner@example.com\" autoFocus />\n                </div>\n                <div className=\"space-y-2\">\n                  <Label htmlFor=\"owner-phone\">Mobile number <span className=\"text-muted-foreground\">(optional for text invite)</span></Label>\n                  <Input id=\"owner-phone\" type=\"tel\" value={ownerPhone} onChange={(event) => setOwnerPhone(event.target.value)} placeholder=\"(321) 555-0123\" />\n                </div>\n                <div className=\"space-y-2\">\n                  <Label htmlFor=\"owner-name\">Name <span className=\"text-muted-foreground\">(optional for a new person)</span></Label>\n                  <Input id=\"owner-name\" value={ownerName} onChange={(event) => setOwnerName(event.target.value)} placeholder=\"Owner name\" />\n                </div>\n                {loadingOwnerMailbox ? (\n                  <div className=\"flex items-center gap-2 rounded-xl border border-border/60 p-3 text-sm text-muted-foreground\">\n                    <Loader2 className=\"h-4 w-4 animate-spin\" /> Checking business Mail…\n                  </div>\n                ) : ownerMailbox?.email_address ? (\n                  <div className=\"flex items-start gap-3 rounded-xl border border-primary/20 bg-primary/5 p-4 text-sm\">\n                    <Mail className=\"mt-0.5 h-4 w-4 text-primary\" />\n                    <div>\n                      <div className=\"font-semibold\">Business Mail ready</div>\n                      <div className=\"mt-1 text-muted-foreground\">{ownerMailbox.email_address} is already connected and will be available after sign-in.</div>\n                    </div>\n                  </div>\n                ) : null}\n                <p className=\"text-xs leading-relaxed text-muted-foreground\">\n                  Email is the activation identity. Choosing Invite owner sends the secure email immediately; you can then copy, text, or resend the same invitation.\n                </p>\n              </div>\n              <DialogFooter>\n                <Button variant=\"outline\" onClick={closeOwnerDialog} disabled={assigningOwner}>Cancel</Button>\n                <Button onClick={() => void assignOwner()} disabled={assigningOwner || !ownerEmail.trim()}>\n                  {assigningOwner ? <Loader2 className=\"mr-2 h-4 w-4 animate-spin\" /> : <Crown className=\"mr-2 h-4 w-4\" />}\n                  {assigningOwner ? (ownerTenant?.owner_id ? 'Changing…' : 'Inviting…') : (ownerTenant?.owner_id ? 'Change owner' : 'Invite owner')}\n                </Button>\n              </DialogFooter>\n            </>\n          )}\n        </DialogContent>\n      </Dialog>\n    </div>\n  );\n}\n","expectedSha":"62956c40db4a371bb867cba9ed7468465696ea46"}],"route":"/admin/tenants","branch":"ai/objective-first-repair-8abe379a3327","writes":[],"patches":[],"version":1,"approved":true,"missionId":"8abe379a-3327-4de7-a4e8-38b4eca2016d","objective":"Close the final mobile touch-target defects found by live God Mode family verification on /admin/tenants. In the shared TenantUserCommandCenters tenant control row, make all tenant action controls (Repair, MODES, Activity, Change/Invite owner, User access, Tenant features) at least 44px tall on mobile while preserving their compact desktop height. Do not change behavior, data, routes, or semantics. Ship one fresh frontend corrective PR and verify /admin/tenants desktop and mobile.","viewports":["desktop","mobile"],"repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/components/admin/TenantUserCommandCenters.tsx"],"implementation":{"files":[],"writes":[]},"requestContract":null,"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":null,"ownerApproved":true,"releaseIntent":null,"sourceTargets":["src/components/admin/TenantUserCommandCenters.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":"3e9902adac11993310e5db75e0eff12b42b84f683b6bca233aa9ae4e9693e5e4","replayCount":0,"serializedBytes":55184},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T11:29:38.349559+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:8abe379a-3327-4de7-a4e8-38b4eca2016d:repository-mutation-intent:3e9902adac11993310e5db75e0eff12b42b84f683b6bca233aa9ae4e9693e5e4:0","mission_step_id":"25d60161-a64e-446e-aaa0-ef28d7be7dad","command_center_event_id":"8abe379a-3327-4de7-a4e8-38b4eca2016d"},{"id":"13978124-aa1d-412d-8aee-9e7c9a6a55f2","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-e5176ffd07d1","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.182-witness-render-cold-start-aware","prNumber":3180,"terminal":false,"missionId":"e5176ffd-07d1-41bb-9d24-207ea38bdb19","operation":"execute_mission","proofGate":"repair_mission_pr_handed_off_to_supervisor","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":5848,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":1795,"missionSetupMs":802,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":277,"ledgerReconcileMs":0,"lineageReconcileMs":525,"resolvePreflightMs":802,"repositoryMutationMs":4053,"repositoryProviderMs":4053,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":3556,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":277,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":497},"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":"e5176ffd-07d1-41bb-9d24-207ea38bdb19"},"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":3083,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-19T10:55:57.098565+00:00","proof_gate":"repair_mission_pr_handed_off_to_supervisor","source_sha":null,"external_id":"3180","receipt_type":"execute_mission","idempotency_key":"mission:e5176ffd-07d1-41bb-9d24-207ea38bdb19:execute_mission:repair_mission_pr_handed_off_to_supervisor:current-generation","mission_step_id":"29ca42c6-32ea-4b4e-a7bf-82f21dcf8bde","command_center_event_id":"e5176ffd-07d1-41bb-9d24-207ea38bdb19"},{"id":"1398426c-1c84-44a0-bcbf-8bbcbc2cbea4","source":"forgejo","status":"retryable","payload":{"branch":"ai/objective-first-repair-156dda51be1f","merged":false,"prNumber":5230,"remediationRequired":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-06T19:52:44.522522+00:00","proof_gate":"forgejo_closed_pr_is_authoritative_source_lineage","source_sha":"97eb696b505bacb1490e46534e3bc67d7c90a864","external_id":"5230","receipt_type":"source_lineage_pr_closed_without_merge","idempotency_key":"mission:156dda51-be1f-47cd-83cb-0c33b230daff:closed-pr:5230:unmerged","mission_step_id":"11e7335d-75ba-44d4-8a1b-51b614baf897","command_center_event_id":"156dda51-be1f-47cd-83cb-0c33b230daff"},{"id":"139dd7e3-8264-4d24-9027-c12e80fe638d","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"CHANGE workers/cc-execution/test/event-driven-auto-merge-invariants.test.js only. In test 'protected-main release planning and cc-execution deploy avoid unrelated working-tree checkout', replace the stale hardcoded release-onrunner delimiter with a delimiter that stops the cc-execution slice at the actual next top-level workflow job after release-cc-execution. Preserve every existing assertion: cc-execution itself must still contain no actions/checkout and must still contain forgejo token, partial clone, refs/remotes/release/cc-execution, sparse-checkout init, and sparse-checkout set markers. Do not modify the workflow and do not weaken the invariant.","wordingChanged":false,"canonicalIntent":"CHANGE workers/cc-execution/test/event-driven-auto-merge-invariants.test.js only. In test 'protected-main release planning and cc-execution deploy avoid unrelated working-tree checkout', replace the stale hardcoded release-onrunner delimiter with a delimiter that stops the cc-execution slice at the actual next top-level workflow job after release-cc-execution. Preserve every existing assertion: cc-execution itself must still contain no actions/checkout and must still contain forgejo token, partial clone, refs/remotes/release/cc-execution, sparse-checkout init, and sparse-checkout set markers. Do not modify the workflow and do not weaken the invariant.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"candidate-review-loop","statement":"Implement the missing Console Candidate review workflow on /admin/console without changing the accepted compact cockpit layout. A change request must create a non-production candidate branch and exact candidate SHA. The UI must expose Live / Candidate / Compare plus a review drawer showing branch, exact SHA, changed scope, Gate state, and preview state. Accept must bind to that exact SHA and only then run canonical Gate, squash merge, affected-target release, and production proof. Revise and Reject must leave production unchanged; Revise must yield a reviewable candidate SHA and Reject must close/discard the candidate path. Stale SHA, missing preview, failed Gate, auth failure, source drift, or unavailable Laptop witness must fail closed. Desktop and mobile must work. Verification must exercise candidate creation, revise, reject, and accept with exact SHA semantics; route rendering alone is insufficient. Reuse existing mission, witness, Gate, merge, and release primitives; do not create a parallel orchestration system.","provenance":{"reason":null,"source":"explicit_request_contract","inherited":false,"blockingAuthority":true},"proofConditionIds":["runtime","visual"]}],"objective":"CHANGE workers/cc-execution/test/event-driven-auto-merge-invariants.test.js only. In test 'protected-main release planning and cc-execution deploy avoid unrelated working-tree checkout', replace the stale hardcoded release-onrunner delimiter with a delimiter that stops the cc-execution slice at the actual next top-level workflow job after release-cc-execution. Preserve every existing assertion: cc-execution itself must still contain no actions/checkout and must still contain forgejo token, partial clone, refs/remotes/release/cc-execution, sparse-checkout init, and sparse-checkout set markers. Do not modify the workflow and do not weaken the invariant.","constraints":[{"id":"preserve-cockpit","statement":"Preserve one compact toolbar, one giant Witness canvas, Routes in the toolbar, Commentary and Activity/History as slide-out drawers, tiny status chips, and no stacked panels below the preview.","provenance":{"reason":null,"source":"explicit_request_contract","inherited":false,"blockingAuthority":true},"proofConditionIds":["visual"]},{"id":"exact-sha-review","statement":"Owner approval must bind the exact candidate SHA; production must remain unchanged before Accept; stale SHA and proof drift fail closed.","provenance":{"reason":null,"source":"explicit_request_contract","inherited":false,"blockingAuthority":true},"proofConditionIds":["runtime"]},{"id":"visual-content-truth","statement":"Do not present invented source identity, Gate state, preview state, branch, SHA, status, or other unknown operational facts as real.","provenance":{"reason":null,"source":"explicit_request_contract","inherited":false,"blockingAuthority":true},"proofConditionIds":["visual"]},{"id":"visual-viewport-authority","statement":"Desktop and mobile are both authoritative acceptance viewports for this workflow and must preserve the same review capability without a second design.","provenance":{"reason":null,"source":"explicit_request_contract","inherited":false,"blockingAuthority":true},"proofConditionIds":["visual"]},{"id":"capability-completeness","statement":"Every dependency the implementation relies on must be wired and proven across frontend, backend/runtime, auth, provider/prerequisite states, release ownership, and live production behavior.","provenance":{"reason":null,"source":"hard_safety_invariant","inherited":false,"blockingAuthority":true},"proofConditionIds":["runtime"]},{"id":"atomic-capability-lifecycle","statement":"Changed capabilities remain non-active until dependency readiness, affected-target release, and claim-matched production proof are satisfied; missing dependencies become prerequisite states and runtime drift fails closed.","provenance":{"reason":null,"source":"hard_safety_invariant","inherited":false,"blockingAuthority":true},"proofConditionIds":["runtime"]},{"id":"reference-visual-fidelity","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.","provenance":{"reason":null,"source":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"proofConditionIds":["visual"]},{"id":"responsive-visual-continuity","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.","provenance":{"reason":null,"source":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"proofConditionIds":["visual"]},{"id":"reference-visual-authority","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.","provenance":{"reason":null,"source":"heuristic_current_objective","inherited":false,"blockingAuthority":true},"proofConditionIds":["visual"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"runtime","kind":"runtime","claim":"Authenticated end-to-end candidate creation, review, revise, reject, and exact-SHA accept/promotion work without production mutation before Accept.","route":"/admin/console","roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false},{"id":"visual","kind":"visual","claim":"Live / Candidate / Compare and the candidate review drawer render in the accepted cockpit on desktop and mobile with real candidate source identity.","route":"/admin/console","roleRef":null,"userRef":null,"required":true,"expectedText":"Candidate","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[],"requireCapacityAdmissible":false,"expectedWatchdogPolicyVersion":null,"minConsecutiveHealthyHeartbeats":1,"requirePositiveMemoryAttribution":false,"requireMemoryAdmissionPressureFalse":false}],"validationErrors":[],"capabilityManifest":{"id":"console-candidate-review-loop","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":["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":"03a4d33fdc4e28a3e830991bb0683a4a0afd2e74b02bf449ea8058d74f9503ed","requestContractRevision":7,"previousRequestContractHash":"d1343fb2325aa9b8da87fc56cdd2fbe7da0131938067c19f8b742a22c7d2597d"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-27T06:17:28.270782+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:1297fc3e-a836-406c-ae04-a0aa8f124741:request-contract:03a4d33fdc4e28a3e830991bb0683a4a0afd2e74b02bf449ea8058d74f9503ed","mission_step_id":"2266f7cf-e64b-4bf0-be59-708167719cb5","command_center_event_id":"1297fc3e-a836-406c-ae04-a0aa8f124741"},{"id":"13a09dbd-e00e-4aa3-a03f-acbdeeaec3c5","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\":\"execute_mission\",\"status\":\"deployment_dispatched\",\"proofGate\":\"canonical_release_dispatched\"},\"activeStep\":{\"key\":\"preflight\",\"status\":\"ready\",\"lane\":\"cc-execution\"},\"nextStep\":{\"key\":\"implementation\",\"status\":\"failed\",\"lane\":\"cc-execution\"},\"nextSafeAction\":{\"action\":\"reconcile_release\",\"lane\":\"production-release-conductor\",\"reason\":\"merged_source_requires_release_proof\",\"automationAllowed\":true,\"ownerActionRequired\":false},\"executionOwnership\":{\"active\":false,\"state\":\"waiting\",\"executor\":null,\"lane\":\"cc-execution\",\"nextAction\":\"reconcile_release\",\"recoveryOwner\":\"production-release-conductor\"},\"acceptance\":{\"total\":2,\"verified\":0,\"pending\":2,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"release\",\"runtime\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"release\",\"deadlineAt\":\"2026-10-04T04:29:37.47936+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":null,\"prNumber\":4696,\"sourceSha\":\"8b75d4ea5290755e92513299921260ac2739f50c\",\"deploymentId\":\"forgejo-main-8b75d4ea5290\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-04T01:33:33.497337+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:7885e8ef-2225-4511-bbad-af7852cfcdd1:owner-progress-heartbeat:119405174","mission_step_id":"d2004713-a253-46bc-ab13-b7a556dac480","command_center_event_id":"7885e8ef-2225-4511-bbad-af7852cfcdd1"},{"id":"13a12fca-7636-4a13-8280-3a5ee62a90b4","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","frontend-cloudflare/live":"success"},"mainSha":"3fadf344a4168b7b576337f19da3b2624a28379d","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","frontend-cloudflare/live"],"sourceSha":"3fadf344a4168b7b576337f19da3b2624a28379d","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":"7bcbf72c888ec279944cb1b24dc5170653fe9ae77b339d75cd97dcabdd6ab949","forgejoWorkflowProof":{"runId":12473,"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-28T03:51:33.638197+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"3fadf344a4168b7b576337f19da3b2624a28379d","external_id":"forgejo-main-3fadf344a416","receipt_type":"canonical_release_status","idempotency_key":"mission:50ec8347-1149-4ae4-81e0-6373c1a477ad:forgejo-release-status:3fadf344a4168b7b576337f19da3b2624a28379d:verified:forgejo-main/source=success|forgejo-release/workflow=success|frontend-cloudflare/live=success","mission_step_id":"464015ea-0f19-4b0b-b3b9-8bb62e57ffd8","command_center_event_id":"50ec8347-1149-4ae4-81e0-6373c1a477ad"},{"id":"13a18e7f-ddac-4d59-86fa-d278bc96b111","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-c8453ad4727e","prNumber":2559,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"d036baae242e3fbf05946edf91454e4a2b494320","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-12T22:14:11.426503+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"d036baae242e3fbf05946edf91454e4a2b494320","external_id":"2559","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:c8453ad4-727e-4081-b60b-809104d61549:merged-pr:2559:d036baae242e3fbf05946edf91454e4a2b494320","mission_step_id":"1c5767ab-624c-4424-91d1-4a95dbb235c4","command_center_event_id":"c8453ad4-727e-4081-b60b-809104d61549"},{"id":"13a32008-01f9-497b-8328-0b5c569c5d6b","source":"cc-execution","status":"blocked","payload":{"ok":false,"jobId":null,"phase":"implementation","branch":"ai/modes-family-neon-pulse-8d19708","reason":"anchored_edit_anchor_missing:src/shells/TenantModesShell.tsx","status":"blocked","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.58.182-witness-render-cold-start-aware","prNumber":null,"terminal":false,"missionId":"8874e6cc-2475-48b9-8070-14d33e83b710","operation":"execute_mission","proofGate":"repair_mission_execution_blocked","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":2914,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"prReadinessMs":0,"approvedPlanMs":2914,"missionSetupMs":278,"providerAuthMs":0,"shipAndProveMs":0,"ledgerPrepareMs":278,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":278,"repositoryMutationMs":0,"repositoryProviderMs":0,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"repositoryAtomicCommitMs":0,"repositoryBranchCreateMs":0,"totalSynchronousLedgerMs":278,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0,"repositoryPullRequestCreateMs":0},"nextAction":null,"receiptRef":{"mode":"full","missionId":"8874e6cc-2475-48b9-8070-14d33e83b710"},"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":1501,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-19T11:16:57.377063+00:00","proof_gate":"repair_mission_execution_blocked","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:8874e6cc-2475-48b9-8070-14d33e83b710:execute_mission:repair_mission_execution_blocked:current-generation","mission_step_id":"8da80cc4-cf29-41eb-aa42-c4fb76611c1d","command_center_event_id":"8874e6cc-2475-48b9-8070-14d33e83b710"},{"id":"13a835b1-566e-4092-9f97-e7fd4c0ad66b","source":"cc-execution","status":"authorized","payload":{"paths":["workers/cc-execution/src/version.js","workers/cc-execution/test/visual-witness-resumable-domain-registry.test.js"],"reason":"Control plane repair continuation: commit the final safety regression on the existing branch so the authoritative mutation path can reconcile the already-landed resumable domain-registry repair into its single PR.","baseSha":"59aba36e8fc4ba2ae8b0be9fe3dc8ab789f62abf","issuedAt":1787945514320,"expiresAt":1787945694320,"missionId":"9d21824d-789a-4f0a-8ddf-a1491833c1ed","singleUse":true,"authorizationId":"2b44898b-42cd-4f41-9101-d6bde948b246"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-08-28T19:31:55.19554+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"59aba36e8fc4ba2ae8b0be9fe3dc8ab789f62abf","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:2b44898b-42cd-4f41-9101-d6bde948b246","mission_step_id":"069f2bcc-3e10-47ff-bd1d-bb6e2e4382ea","command_center_event_id":"9d21824d-789a-4f0a-8ddf-a1491833c1ed"},{"id":"13aa2f0f-3471-434c-8ecc-45d1db85b1c7","source":"forgejo-runtime","status":"verified","payload":{"failed":[],"states":{"forgejo-main/source":"success","forgejo-release/workflow":"success","cc-execution/runtime-proof":"success"},"mainSha":"594921aea18018220cb12c3e6bda98261a14e871","missing":[],"pending":[],"required":["forgejo-main/source","forgejo-release/workflow","cc-execution/runtime-proof"],"sourceSha":"594921aea18018220cb12c3e6bda98261a14e871","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":"3658c2536b5d62c7adc1ac6b5a743de2f77b46e52a3e0d9ece90652cd3a9654a","forgejoWorkflowProof":{"runId":7207,"source":"signed_push_receipt","status":"success","results":{},"conclusion":"success","targetStates":{"ccExecution":"success"},"targetJobCount":7,"observedTargetStates":{"ccExecution":"success"}},"onrunnerRuntimeProof":null,"releaseSourceVerified":true,"ccExecutionRuntimeProof":{"liveSha":"594921aea18018220cb12c3e6bda98261a14e871","proofGate":"cc_execution_historical_runtime_identity_verified","deploymentId":"forgejo-main-594921aea18018220cb12c3e6bda98261a14e871","compareStatus":"exact_release_workflow_runtime_verified","workflowRunId":7207,"identitySource":"canonical_release_workflow_exact_runtime_identity","runtimeVersion":"1.58.111-dynamic-gate-memory","containsSourceSha":true,"historicalExactSourceProof":true},"releaseTargetRecoveryProof":null,"exactReleaseVerifiedAfterMainAdvanced":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-11T21:51:47.318891+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"594921aea18018220cb12c3e6bda98261a14e871","external_id":"forgejo-main-594921aea180","receipt_type":"canonical_release_status","idempotency_key":"mission:6a9d1c7c-481b-4809-ae3c-840c1f18ed5d:forgejo-release-status:594921aea18018220cb12c3e6bda98261a14e871:verified:forgejo-main/source=success|forgejo-release/workflow=success|cc-execution/runtime-proof=success","mission_step_id":"0b27f200-dfe3-4beb-9a35-4aa88594581f","command_center_event_id":"6a9d1c7c-481b-4809-ae3c-840c1f18ed5d"},{"id":"13aac109-2519-4ef9-8907-13c169934de7","source":"cc-execution","status":"waiting","payload":{"body":{"ship":true,"files":[],"branch":"ai/objective-first-repair-a638de82354f","writes":[],"patches":[],"version":1,"approved":true,"missionId":"a638de82-354f-41f0-b865-cb6423e41faa","objective":"Implement and ship the deterministic frontend release repair required to deploy the already-green KNOCKLAUNCH Lab Witness canvas fix. Current main is ed4b6384e3773c9746c56b9dc70027661c8dd684. Enable Cloudflare Worker Version URLs in wrangler.toml so wrangler versions upload emits a candidate preview_url. Repair uploadCandidateVersion so JSON parse failures continue, but a matched version-upload event with a missing preview_url raises wrangler_version_upload_preview_url_missing instead of being swallowed and misreported as wrangler_version_upload_id_missing. Extend the exact-version release contract test to lock preview_urls = true and the non-swallowed preview error. Ship through Gate, squash merge, and canonical frontend release.","repository":"noel/KnockLaunchOS","ownerApproved":true,"releaseIntent":null,"sourceTargets":["wrangler.toml","scripts/cloudflare-native-version-deploy.mjs","src/__tests__/contracts/cloudflare-exact-version-deploy.contract.test.ts"],"anchored_edits":[{"path":"wrangler.toml","edits":[{"new_content":"workers_dev = false\npreview_urls = true\nmain = \"scripts/cloudflare-native-seo-worker.mjs\"","old_content":"workers_dev = false\nmain = \"scripts/cloudflare-native-seo-worker.mjs\""}]},{"path":"scripts/cloudflare-native-version-deploy.mjs","edits":[{"new_content":"    for (let index = lines.length - 1; index >= 0; index -= 1) {\n      let event;\n      try {\n        event = JSON.parse(lines[index]);\n      } catch {\n        continue;\n      }\n      if (event?.type === 'version-upload' && typeof event?.version_id === 'string' && event.version_id.trim()) {\n        const previewUrl = String(event?.preview_url || '').trim();\n        if (!previewUrl) throw new Error('wrangler_version_upload_preview_url_missing');\n        return { versionId: event.version_id.trim(), previewUrl };\n      }\n    }\n    throw new Error('wrangler_version_upload_id_missing');","old_content":"    for (let index = lines.length - 1; index >= 0; index -= 1) {\n      try {\n        const event = JSON.parse(lines[index]);\n        if (event?.type === 'version-upload' && typeof event?.version_id === 'string' && event.version_id.trim()) {\n          const previewUrl = String(event?.preview_url || '').trim();\n          if (!previewUrl) throw new Error('wrangler_version_upload_preview_url_missing');\n          return { versionId: event.version_id.trim(), previewUrl };\n        }\n      } catch {}\n    }\n    throw new Error('wrangler_version_upload_id_missing');"}]},{"path":"src/__tests__/contracts/cloudflare-exact-version-deploy.contract.test.ts","edits":[{"new_content":"const packageJson = readFileSync(resolve(process.cwd(), 'package.json'), 'utf8');\nconst deployer = readFileSync(resolve(process.cwd(), 'scripts/cloudflare-native-version-deploy.mjs'), 'utf8');\nconst wranglerConfig = readFileSync(resolve(process.cwd(), 'wrangler.toml'), 'utf8');","old_content":"const packageJson = readFileSync(resolve(process.cwd(), 'package.json'), 'utf8');\nconst deployer = readFileSync(resolve(process.cwd(), 'scripts/cloudflare-native-version-deploy.mjs'), 'utf8');"},{"new_content":"    expect(deployer).toContain('WRANGLER_OUTPUT_FILE_PATH');\n    expect(deployer).toContain(\"throw new Error('wrangler_version_upload_preview_url_missing')\");\n    expect(deployer).toContain('continue;');\n    expect(wranglerConfig).toContain('preview_urls = true');\n    expect(deployer).not.toContain('WRANGLER_OUTPUT_FILE:');\n    expect(deployer).not.toContain(\"'--version-tag'\");","old_content":"    expect(deployer).toContain('WRANGLER_OUTPUT_FILE_PATH');\n    expect(deployer).not.toContain('WRANGLER_OUTPUT_FILE:');\n    expect(deployer).not.toContain(\"'--version-tag'\");"}]}],"implementation":{"files":[],"writes":[]},"requestContract":{"outcomes":[{"id":"version-url","statement":"Frontend version uploads produce a usable Version URL for exact candidate canary verification.","proofConditionIds":["live-release"]},{"id":"truthful-error","statement":"A missing candidate preview URL is reported as preview_url_missing rather than being swallowed and mislabeled as a missing version ID.","proofConditionIds":["live-release"]}],"objective":"Restore deterministic zero-traffic frontend canary promotion so the merged Lab Witness canvas repair can deploy safely.","constraints":[{"id":"preserve-atomic-release","statement":"Keep the existing zero-traffic candidate, canary verification, promotion, and rollback transaction semantics.","proofConditionIds":["live-release"]}],"proofConditions":[{"id":"live-release","kind":"runtime","claim":"The repaired release path successfully promotes the exact current frontend source and verifies it live.","required":true}]},"repairGeneration":null,"executionEnvelope":{"ship":true,"version":1,"approved":true,"missionId":null,"ownerApproved":true,"releaseIntent":null,"sourceTargets":["wrangler.toml","scripts/cloudflare-native-version-deploy.mjs","src/__tests__/contracts/cloudflare-exact-version-deploy.contract.test.ts"],"requestContract":{"outcomes":[{"id":"version-url","statement":"Frontend version uploads produce a usable Version URL for exact candidate canary verification.","proofConditionIds":["live-release"]},{"id":"truthful-error","statement":"A missing candidate preview URL is reported as preview_url_missing rather than being swallowed and mislabeled as a missing version ID.","proofConditionIds":["live-release"]}],"objective":"Restore deterministic zero-traffic frontend canary promotion so the merged Lab Witness canvas repair can deploy safely.","constraints":[{"id":"preserve-atomic-release","statement":"Keep the existing zero-traffic candidate, canary verification, promotion, and rollback transaction semantics.","proofConditionIds":["live-release"]}],"proofConditions":[{"id":"live-release","kind":"runtime","claim":"The repaired release path successfully promotes the exact current frontend source and verifies it live.","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":"376a1a6f16bc71bba6602ef85f50ec8efe5b8ebadc57642900e2a3c23c1222f2","replayCount":0,"serializedBytes":6499},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-30T03:46:31.24157+00:00","proof_gate":"repository_mutation_intent_persisted","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent","idempotency_key":"mission:a638de82-354f-41f0-b865-cb6423e41faa:repository-mutation-intent:376a1a6f16bc71bba6602ef85f50ec8efe5b8ebadc57642900e2a3c23c1222f2:0","mission_step_id":"deb267f1-d238-4fe0-ab1b-34e7c51004c1","command_center_event_id":"a638de82-354f-41f0-b865-cb6423e41faa"},{"id":"13addea7-6024-4cf6-9819-e4b97af14c85","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\":\"canonical_release_status\",\"status\":\"pending\",\"proofGate\":\"canonical_release_pending\"},\"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\":1,\"verified\":0,\"pending\":1,\"percent\":0,\"satisfied\":false,\"verifiedIds\":[],\"pendingIds\":[\"proof-production\"]},\"stall\":{\"stalled\":false,\"reason\":\"within_deadline\",\"step\":\"visual_proof\",\"deadlineAt\":\"2026-09-22T16:47:13.497617+00:00\",\"recoveryAction\":null},\"blocker\":null,\"terminal\":false,\"branch\":\"ai/objective-first-repair-0a0aad9f4b15\",\"prNumber\":3424,\"sourceSha\":\"7d256f3788766524b40333ef06fc237ad2f5ece5\",\"deploymentId\":\"forgejo-main-7d256f378876\"}"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-22T12:58:10.744406+00:00","proof_gate":"owner_progress_heartbeat","source_sha":null,"external_id":null,"receipt_type":"owner_progress_heartbeat","idempotency_key":"mission:0a0aad9f-4b15-4069-b807-ff135e831cfb:owner-progress-heartbeat:119338792","mission_step_id":"63cf224f-9ac4-4fa3-a174-d609c70a359c","command_center_event_id":"0a0aad9f-4b15-4069-b807-ff135e831cfb"},{"id":"13aed4a5-e0cb-4cf5-acde-554e010ac7a7","source":"durable-mission-ledger","status":"pending","payload":{"sourceSha":"1e1b60388d2a85881c4de1980f97f7fd127f32fe","requestContractProof":{"legacy":false,"present":true,"outcomes":[{"id":"priority-regression-guard","satisfied":false,"statement":"A Vitest contract test proves singletonPriority defaults to zero, priority comparison occurs before fallback/placement, and BigPapisOwnerShell elevates its canonical menu to priority 1.","proofConditionIds":["test-source","gate"]},{"id":"production-behavior-unchanged","satisfied":false,"statement":"No production source behavior is changed by the corrective generation; CRMUserMenu.tsx and BigPapisOwnerShell.tsx remain byte-identical to current main.","proofConditionIds":["scope"]}],"satisfied":false,"constraints":[{"id":"one-test-file","satisfied":false,"statement":"Only src/__tests__/contracts/bigPapisAvatarMenuCohesion.test.ts may be added/changed.","proofConditionIds":["scope"]},{"id":"no-visual-witness","satisfied":false,"statement":"Do not run Visual Witness or OnRunner visual inspection.","proofConditionIds":["scope"]},{"id":"no-unnecessary-release","satisfied":false,"statement":"Do not deploy backend, Supabase, control-plane, or any unrelated production target; test-only change should not wake production unless canonical release classification requires it.","proofConditionIds":["scope"]}],"contractHash":"776ee6aaa1d1ac3db8e5c4a1beab700a8f559fa207fb2815f06f1a34e58ba0a9","releaseBound":true,"witnessBound":false,"visualRequested":false,"visualSatisfied":true,"conditionResults":[{"id":"test-source","kind":"repository","evidence":{"repositoryProofGate":null,"requestContractHash":"776ee6aaa1d1ac3db8e5c4a1beab700a8f559fa207fb2815f06f1a34e58ba0a9","repositoryProofStatus":"required","repositoryProofSourceSha":null},"required":true,"satisfied":false},{"id":"scope","kind":"repository","evidence":{"repositoryProofGate":null,"requestContractHash":"776ee6aaa1d1ac3db8e5c4a1beab700a8f559fa207fb2815f06f1a34e58ba0a9","repositoryProofStatus":"required","repositoryProofSourceSha":null},"required":true,"satisfied":false},{"id":"gate","kind":"repository","evidence":{"repositoryProofGate":null,"requestContractHash":"776ee6aaa1d1ac3db8e5c4a1beab700a8f559fa207fb2815f06f1a34e58ba0a9","repositoryProofStatus":"required","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-11T19:49:33.919733+00:00","proof_gate":"request_contract_pending","source_sha":"1e1b60388d2a85881c4de1980f97f7fd127f32fe","external_id":null,"receipt_type":"request_contract_reconciliation","idempotency_key":"mission:736437d0-87c0-421b-8c45-965a6e9e0f4a:request-contract:776ee6aaa1d1ac3db8e5c4a1beab700a8f559fa207fb2815f06f1a34e58ba0a9:1e1b60388d2a85881c4de1980f97f7fd127f32fe:pending:repository","mission_step_id":"6b07e527-7bd6-4d18-985d-8b88bf2024b6","command_center_event_id":"736437d0-87c0-421b-8c45-965a6e9e0f4a"},{"id":"13b11fec-4f62-4d4e-8d13-0095a0ec0fd0","source":"cc-execution","status":"blocked","payload":{"reason":"existing_branch_without_open_pr_branch_diverged_or_unproven:ai/tennex-source-campaigns","fingerprint":"b9c13568a3f4a809d38b6056876f5761e411202d1423bd9a4220ab0b363133ae"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-02T02:02:07.293214+00:00","proof_gate":"repository_mutation_intent_deterministic_failure","source_sha":null,"external_id":null,"receipt_type":"repository_mutation_intent_blocked","idempotency_key":"mission:ef34fa50-9e4d-4b40-8bce-9d186aa5b3a4:repository-mutation-intent-blocked:b9c13568a3f4a809d38b6056876f5761e411202d1423bd9a4220ab0b363133ae","mission_step_id":"083697d6-f8b2-42fb-a669-00c5dd9d8e95","command_center_event_id":"ef34fa50-9e4d-4b40-8bce-9d186aa5b3a4"},{"id":"13b53b4c-1dfe-4833-a138-ec2ffeaec744","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Continue the authorized frontend release-memory repair on the same mission and branch. Apply only the exact two-file implementation below, then use the canonical Gate, squash merge, affected frontend release, and live proof. The owner explicitly unfreezes the control plane for this exact repair.","wordingChanged":false,"canonicalIntent":"Continue the authorized frontend release-memory repair on the same mission and branch. Apply only the exact two-file implementation below, then use the canonical Gate, squash merge, affected frontend release, and live proof. The owner explicitly unfreezes the control plane for this exact repair.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"release-memory-contract","statement":"Frontend production release uses at least 3584 MiB container memory and preserves the canonical 2560 MiB Node heap for both normal and no-minify fallback builds; the guard validates the actual release job memory.","proofConditionIds":["proof-repository","proof-production"]},{"id":"tenant-fix-live","statement":"The already-merged tenant pipeline repair containing EVENT_RENTALS is present in the live production frontend source identity.","proofConditionIds":["proof-repository","proof-production"]}],"objective":"Continue the authorized frontend release-memory repair on the same mission and branch. Apply only the exact two-file implementation below, then use the canonical Gate, squash merge, affected frontend release, and live proof. The owner explicitly unfreezes the control plane for this exact repair.","constraints":[{"id":"bounded-control-plane-scope","statement":"Mutate only .forgejo/workflows/knocklaunch.yml and scripts/cloudflare-native-build.mjs for the release-memory repair; do not change unrelated release owners, runners, routes, tenant code, auth, database, or product behavior.","proofConditionIds":["proof-repository"]},{"id":"canonical-delivery","statement":"One fresh ai/* branch, one PR, KnockLaunch Gate, squash merge, affected-target release only, then live proof.","proofConditionIds":["proof-repository","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-repository","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-repository","proof-production"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-repository","kind":"repository","claim":"Current Forgejo main contains the exact bounded release-memory repair and the EVENT_RENTALS pipeline repair.","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-production","kind":"runtime","claim":"Cloudflare production serves the exact merged frontend source containing both the release-memory repair and the EVENT_RENTALS pipeline repair.","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":"Continue-the-authorized-frontend-release-memory-repair-on-the-same-mission-and-branch.-Apply-only-th","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-repository","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":"b12327e472959c206bf631e46d05fa26a5e1cad01d39980151d86ff47ed93e3f","requestContractRevision":2,"previousRequestContractHash":"4632495600cb814986f0d96b3b3c93594a4c7b6c8b0659308e81715eb690bc02"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-15T15:49:19.327125+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:1d1b2373-9c6a-48d5-944d-c5b81f498414:request-contract:b12327e472959c206bf631e46d05fa26a5e1cad01d39980151d86ff47ed93e3f","mission_step_id":"320f1ba8-33c8-4a4c-82e6-04ce277e9ed2","command_center_event_id":"1d1b2373-9c6a-48d5-944d-c5b81f498414"},{"id":"13b7beba-ea1c-482e-99d7-a5d7f6ba4b7f","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"Progress the existing Roofing OS PR #1184 through the canonical supervisor from its stale-head state: refresh this same PR onto current protected main, re-run KnockLaunch Gate, and only if the exact refreshed head is green, squash merge and release the affected migration plus frontend. Preserve the same mission/branch/PR and request contract; no source expansion.","wordingChanged":false,"canonicalIntent":"Progress the existing Roofing OS PR #1184 through the canonical supervisor from its stale-head state: refresh this same PR onto current protected main, re-run KnockLaunch Gate, and only if the exact refreshed head is green, squash merge and release the affected migration plus frontend. Preserve the same mission/branch/PR and request contract; no source expansion.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"project-spine","statement":"Every ROOFING_COMPANY job has a tenant-scoped roofing operations spine and durable records for measurement orders, materials, permits, insurance financials, costs, commissions, financing, provider state and closeout.","proofConditionIds":["proof-command"]},{"id":"owner-command","statement":"The Redfish dashboard becomes owner-first Roofing Command with real production readiness, blocker, upcoming install and money rollups derived from roofing operations data.","proofConditionIds":["proof-command"]},{"id":"job-operations","statement":"Redfish owner operations expose a responsive Roofing OS project workspace that can persist production, materials, permit, insurance, cost/margin, commission, financing and closeout state without developer jargon.","proofConditionIds":["proof-command"]},{"id":"existing-strengths","statement":"Existing roof estimator, Good/Better/Best, proposal, supplement, Xactimate, e-sign, invoice/payment, photo/evidence and JobTracker capabilities remain intact and are not duplicated.","proofConditionIds":["proof-homeowners"]},{"id":"provider-truth","statement":"Aerial, supplier, accounting and financing provider connections are modeled truthfully; unavailable credentials are shown as disconnected/action-required and manual workflows remain usable.","proofConditionIds":["proof-command"]}],"objective":"Progress the existing Roofing OS PR #1184 through the canonical supervisor from its stale-head state: refresh this same PR onto current protected main, re-run KnockLaunch Gate, and only if the exact refreshed head is green, squash merge and release the affected migration plus frontend. Preserve the same mission/branch/PR and request contract; no source expansion.","constraints":[{"id":"tenant-safety","statement":"Shared primitives may change only where ROOFING_COMPANY behavior requires it; unrelated tenant experiences must not regress.","proofConditionIds":["proof-homeowners"]},{"id":"one-delivery","statement":"Use one fresh ai branch/workstream, one PR, KnockLaunch Gate, squash merge, release only migrations/frontend, and verify live Redfish.","proofConditionIds":["proof-command"]},{"id":"no-fake-integrations","statement":"Do not claim a supplier, aerial, accounting or financing provider is connected without real credentials/provider proof.","proofConditionIds":["proof-command"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-command","kind":"runtime","claim":"Live Redfish dashboard exposes Roofing Command and its production-readiness operating surface after migration and frontend release.","route":"/redfish-roofing","required":true,"expectedText":"Roofing Command","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"proof-homeowners","kind":"runtime","claim":"Live Redfish homeowner workspace remains healthy and roofing-specific after the new operating layer.","route":"/redfish-roofing/contacts","required":true,"expectedText":"Roofing Homeowner Desk","targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}],"validationErrors":[]},"requestContractHash":"f8fa023769629f4845c3d2bfea3923356ca9cc9065b17981786c2f11f12468bf","requestContractRevision":11,"previousRequestContractHash":"1f3dacefb358226d565ab3031e167f41b8cb8cec15ae6ec851786f728e4fb61e"},"tenant_id":"de8369b6-a78f-40bb-ae1f-28ffca62bc7e","created_at":"2026-08-31T04:04:22.224035+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:fbe3597e-9f43-4b0b-a3b3-02a9f3096a96:request-contract-revision:11:f8fa023769629f4845c3d2bfea3923356ca9cc9065b17981786c2f11f12468bf","mission_step_id":"9b458f83-1309-4938-8413-dbd04f4a98e1","command_center_event_id":"fbe3597e-9f43-4b0b-a3b3-02a9f3096a96"},{"id":"13b82bc5-3a63-4e4f-b681-5b78a2d431d8","source":"forgejo","status":"waiting","payload":{"branch":"ai/objective-first-repair-522bfcd3ecca","prNumber":4804,"nextAction":"Follow the existing canonical release to terminal proof.","mergeCommitSha":"b7cb69cd8ccc7d0adc222082bb41b368f71708dd","branchDeletedAfterMerge":true,"correctiveGenerationCreated":false},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-04T15:16:06.814853+00:00","proof_gate":"forgejo_merged_pr_is_authoritative_source_lineage","source_sha":"b7cb69cd8ccc7d0adc222082bb41b368f71708dd","external_id":"4804","receipt_type":"source_lineage_merged_pr_authoritative","idempotency_key":"mission:522bfcd3-ecca-4d6f-a97e-9289c2f5a4c4:merged-pr:4804:b7cb69cd8ccc7d0adc222082bb41b368f71708dd","mission_step_id":"63e8d9c2-1adf-437a-af3e-5d689308781a","command_center_event_id":"522bfcd3-ecca-4d6f-a97e-9289c2f5a4c4"},{"id":"13b88ea0-d3f3-4267-8f2b-a25f8b8556cc","source":"cc-execution","status":"recorded","payload":{"requestContract":{"valid":true,"intent":{"evidence":[],"confidence":null,"rawUtterance":"PR #1815 is green again on refreshed exact head 535425f4c9f1e37e50c1542a2edb04f70daea258. Immediately squash merge this same PR now, deploy only the frontend through Cloudflare, and verify production. Do not refresh or create any replacement unless main genuinely moves before merge.","wordingChanged":false,"canonicalIntent":"PR #1815 is green again on refreshed exact head 535425f4c9f1e37e50c1542a2edb04f70daea258. Immediately squash merge this same PR now, deploy only the frontend through Cloudflare, and verify production. Do not refresh or create any replacement unless main genuinely moves before merge.","resolutionStatus":"exact","uniqueResolution":true,"clarificationRequired":false},"source":"explicit","version":1,"outcomes":[{"id":"outcome-1","statement":"PR #1815 is squash merged and its frontend change is live in production.","proofConditionIds":["proof-merge","proof-release"]}],"objective":"PR #1815 is green again on refreshed exact head 535425f4c9f1e37e50c1542a2edb04f70daea258. Immediately squash merge this same PR now, deploy only the frontend through Cloudflare, and verify production. Do not refresh or create any replacement unless main genuinely moves before merge.","constraints":[{"id":"constraint-1","statement":"Use existing PR #1815; no replacement PR.","proofConditionIds":["proof-merge","proof-release"]}],"terminalPolicy":"all_required_proof_conditions_satisfied_after_live_release","proofConditions":[{"id":"proof-merge","kind":"repository","claim":"PR #1815 is merged from refreshed green head 535425f4c9f1e37e50c1542a2edb04f70daea258.","route":"/curri-properties/dashboard","roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]},{"id":"proof-release","kind":"runtime","claim":"The Curri background frontend change from PR #1815 is live in production.","route":"/curri-properties/dashboard","roleRef":null,"userRef":null,"required":true,"expectedText":null,"targetedActions":[],"allowedReleaseTargets":[],"requiredReleaseTargets":[]}],"validationErrors":[]},"requestContractHash":"8f9228a44dc01a19da362eabdfe19884d961022aef03b64b5645dd9766d926a9","requestContractRevision":6,"previousRequestContractHash":"36cfc52e5c12f86bfa1d1a3ca2d9b0afaa5f3efec2a09d02c893cae4a01e59dd"},"tenant_id":"90ed5bf4-8abd-4d3a-af7c-024664b5b99d","created_at":"2026-09-05T11:39:33.355492+00:00","proof_gate":"request_contract_revision_recorded","source_sha":null,"external_id":null,"receipt_type":"request_contract_revision","idempotency_key":"mission:bdc6bb7c-0c5d-4ef1-85de-80a1557566dd:request-contract:8f9228a44dc01a19da362eabdfe19884d961022aef03b64b5645dd9766d926a9","mission_step_id":"44b6e957-7e09-411c-96a9-e7683f816596","command_center_event_id":"bdc6bb7c-0c5d-4ef1-85de-80a1557566dd"},{"id":"13b956ea-76e8-4c3e-a65c-268938ea797f","source":"cc-execution","status":"authorized","payload":{"paths":["src/__tests__/contracts/command-center-release-reconciliation-budget.contract.test.ts","workers/cc-execution/src/index-mission-control.js","workers/cc-execution/src/version.js","workers/cc-execution/test/release-orchestration-invariants.test.js"],"reason":"Complete the release Actions query-parity repair after interrupted partial generations.","baseSha":"ddbb0865b7874e5e8fa60ef3aa4f1ce66e600856","issuedAt":1790261178387,"expiresAt":1790261358387,"missionId":"d0429ae4-19c8-46ba-a8c7-eca5d7b3927f","authorizationId":"c89c1075-f0c4-4993-b107-06697e272baa","retryableWithinExactScope":true},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-24T14:46:18.687773+00:00","proof_gate":"control_plane_maintenance_scope_authorized","source_sha":"ddbb0865b7874e5e8fa60ef3aa4f1ce66e600856","external_id":null,"receipt_type":"control_plane_maintenance_authorization","idempotency_key":"control-plane-maintenance-authorize:c89c1075-f0c4-4993-b107-06697e272baa","mission_step_id":"2bbad39a-6b10-4f86-9b44-3d84f883e89f","command_center_event_id":"d0429ae4-19c8-46ba-a8c7-eca5d7b3927f"},{"id":"13b9faec-accb-4f3b-9ccc-fbbd11af5b17","source":"cc-execution","status":"source_resolution_required","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":null,"reason":null,"status":"source_resolution_required","metrics":{"receiptBytes":0,"releaseCount":0,"toolCallCount":0,"repeatedCallCount":0,"executorlessWaitMs":0,"firstUsefulResultAt":null,"recoveryAttemptCount":0,"ownerInterruptionCount":0},"version":"1.64.36-paul-response-contract","prNumber":null,"terminal":false,"missionId":"4a52fe69-3cf8-4bab-8a6c-7bdf8168d817","operation":"execute_mission","proofGate":"repair_mission_source_resolution_required","sourceSha":null,"timingsMs":{"gateMs":0,"proofMs":0,"handlerMs":1594,"releaseMs":0,"mutationMs":0,"repositoryMs":0,"missionSetupMs":602,"providerAuthMs":0,"ledgerPrepareMs":602,"ledgerReconcileMs":0,"lineageReconcileMs":0,"resolvePreflightMs":602,"authoritativeLedgerMs":0,"ledgerAsyncDispatchMs":0,"totalSynchronousLedgerMs":602,"asyncBookkeepingDispatchMs":0,"ledgerAuthoritativeCommitMs":0},"nextAction":"Supply exact sourceTargets on the same mission; planner guesses cannot replace missing mission scope.","receiptRef":{"mode":"full","missionId":"4a52fe69-3cf8-4bab-8a6c-7bdf8168d817"},"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":1175,"likelyAffectedFiles":[],"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-10-01T13:31:38.69396+00:00","proof_gate":"repair_mission_source_resolution_required","source_sha":null,"external_id":null,"receipt_type":"execute_mission","idempotency_key":"mission:4a52fe69-3cf8-4bab-8a6c-7bdf8168d817:execute_mission:repair_mission_source_resolution_required:current-generation","mission_step_id":"01f0c5bd-24b6-4af9-a5c1-089282cf488d","command_center_event_id":"4a52fe69-3cf8-4bab-8a6c-7bdf8168d817"},{"id":"13ba2b77-1add-43e2-b88f-b632c7563008","source":"github-status","status":"verified","payload":{"failed":[],"states":{"cc-execution/runtime-proof":"success","supabase-edge-production/live":"success","canonical-production-release/verified":"success"},"missing":[],"pending":[],"required":["canonical-production-release/verified","cc-execution/runtime-proof"],"sourceSha":"4420d8f6c841f7622f6c6cf586ce80ab8db8dea7","releaseState":"verified","exactConductorRun":{"id":30929546341,"status":"completed","headSha":"4420d8f6c841f7622f6c6cf586ce80ab8db8dea7","conclusion":"success","sourceMatches":true},"ccExecutionRuntimeProof":{"buildId":"30929622818-1","liveSha":"4420d8f6c841f7622f6c6cf586ce80ab8db8dea7","deploymentId":"canonical-release-30929546341-cc-execution","compareStatus":"identical","identitySource":"worker_env_git_sha","runtimeVersion":null,"containsSourceSha":true}},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-04T16:35:48.721422+00:00","proof_gate":"canonical_release_terminal_verified","source_sha":"4420d8f6c841f7622f6c6cf586ce80ab8db8dea7","external_id":"canonical-release-4420d8f6c841","receipt_type":"canonical_release_status","idempotency_key":"mission:1fa8741f-3d60-4337-a4a8-65a0e044bb99:release-status:4420d8f6c841f7622f6c6cf586ce80ab8db8dea7:verified:canonical-production-release/verified=success|cc-execution/runtime-proof=success","mission_step_id":"1c41096e-7eec-4429-b82a-e4777bbc6492","command_center_event_id":"1fa8741f-3d60-4337-a4a8-65a0e044bb99"},{"id":"13babc5d-7da9-4910-85e2-7baa55acfde6","source":"cc-execution","status":"retryable","payload":{"ok":false,"jobId":null,"phase":"pull_request","branch":"ai/objective-first-repair-e065e742e400","reason":"retryable_provider_transport:forgejo_provider_read_timeout","status":"retryable","metrics":{"receiptBytes":37346,"releaseCount":0,"toolCallCount":15,"repeatedCallCount":10,"executorlessWaitMs":1197705,"firstUsefulResultAt":"2026-09-29T19:21:12.046Z","recoveryAttemptCount":5,"ownerInterruptionCount":0},"version":null,"prNumber":4171,"terminal":false,"missionId":"e065e742-e400-4fb4-b4c9-de1db55a7e42","operation":"automatic_mission_resume","proofGate":"repair_mission_pr_ready_retryable","sourceSha":null,"timingsMs":{"prReadinessMs":2138,"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":"e065e742-e400-4fb4-b4c9-de1db55a7e42"},"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-29T19:40:19.869618+00:00","proof_gate":"repair_mission_pr_ready_retryable","source_sha":null,"external_id":"4171","receipt_type":"automatic_mission_resume","idempotency_key":"mission:e065e742-e400-4fb4-b4c9-de1db55a7e42:automatic-mission-resume:4171:repair_mission_pr_ready_retryable","mission_step_id":"0dabfe13-5431-4cf1-814a-34d71662ade5","command_center_event_id":"e065e742-e400-4fb4-b4c9-de1db55a7e42"},{"id":"13bd5af1-61ce-4cc7-8480-83b917220b41","source":"onrunner","status":"failed","payload":{"ok":false,"jobId":"8f606803-117a-498b-90d6-de1488d33c44","phase":"universal_visual_witness_status","branch":"ai/objective-first-repair-c4fa3bd4a214","reason":null,"status":"completed_unverified","metrics":{"receiptBytes":301179,"releaseCount":0,"toolCallCount":47,"repeatedCallCount":21,"executorlessWaitMs":2491865,"firstUsefulResultAt":"2026-09-28T14:48:56.110Z","recoveryAttemptCount":5,"ownerInterruptionCount":0},"version":null,"prNumber":4006,"terminal":true,"missionId":"c4fa3bd4-a214-4085-8049-946a709c2dff","operation":"visual_proof_status","proofGate":"visual_witness_objective_acceptance_unproven","sourceSha":"9fdf4a4c923d382795bf4d09465ebcf7e1a886d0","timingsMs":{"queue":1244,"total":70503,"execution":69259},"nextAction":null,"receiptRef":{"mode":"full","missionId":"c4fa3bd4-a214-4085-8049-946a709c2dff"},"performance":null,"deploymentId":"forgejo-main-9fdf4a4c923d","releaseState":"verified","visualWitness":{"role":"GodMode","jobId":"8f606803-117a-498b-90d6-de1488d33c44","tenant":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","runnerUrl":"https://laptop-witness.knocklaunch.app","runnerLane":"laptop","attemptsUsed":1,"supervisorId":"8f606803-117a-498b-90d6-de1488d33c44","failureReason":null,"observedRoute":"/admin/console","runnerVersion":"laptop-cd17b09fdb31","attemptLineage":[{"jobId":"023ddaef-cb95-47a3-83ae-9f1042bcf32f","attempt":1,"category":"completed_with_findings","sourceSha":"cd17b09fdb31a85433ce5c1c6f9cbbd563eced82","startedAt":"2026-09-28T15:24:23.677Z","completedAt":"2026-09-28T15:25:34.491Z","runtimeLane":"cc-execution -> Local Laptop -> universal-witness.mjs","browserEngine":"chromium","failureReason":null,"retryRecovery":null,"runnerVersion":"laptop-cd17b09fdb31","browserLaunchReason":"display_unavailable_headless","checkpointAccounting":{"route":{"required":5,"completed":5,"missingIds":[]},"action":{"required":0,"completed":0,"missingIds":[]},"missing":0,"resumed":0,"complete":true,"evidence":{"required":5,"completed":5,"missingIds":[]},"completed":10,"remaining":0,"duplicates":0,"duplicateIds":[],"expectedTotal":10}}],"missionOutcome":"completed_with_findings","requestedRoute":"/admin/console","runnerSourceSha":"cd17b09fdb31a85433ce5c1c6f9cbbd563eced82","selectedViewports":["desktop","mobile"],"checkpointAccounting":{"route":{"required":5,"completed":5,"missingIds":[]},"action":{"required":0,"completed":0,"missingIds":[]},"missing":0,"resumed":0,"complete":true,"evidence":{"required":5,"completed":5,"missingIds":[]},"completed":10,"remaining":0,"duplicates":0,"duplicateIds":[],"expectedTotal":10},"correctiveGeneration":0,"restartReplayHistory":[]},"workflowRunId":null,"releaseTargets":{"frontend":true,"onrunner":false,"migrations":false,"ccExecution":false,"supabaseEdge":false,"edgeFunctionSlugs":[]},"detailsAvailable":true,"ownerFacingState":"ENDED","pendingProofKinds":[],"verificationState":null,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":64332,"ownerActionRequired":false,"ownerFacingTerminal":true,"requestContractHash":"d7cca715c5409403004d1bb219ef6782e1663dc490c7c660b5305f20114119a2","continuationRequired":false,"requestContractState":"pending"},"tenant_id":"a3ffa31f-0c88-4fdd-b872-051db013ca3e","created_at":"2026-09-28T15:30:29.223082+00:00","proof_gate":"visual_witness_objective_acceptance_unproven","source_sha":"laptop-cd17b09fdb31","external_id":"8f606803-117a-498b-90d6-de1488d33c44","receipt_type":"visual_proof_status","idempotency_key":"mission:c4fa3bd4-a214-4085-8049-946a709c2dff:visual:8f606803-117a-498b-90d6-de1488d33c44:failed","mission_step_id":"fbe0182b-5eb9-47f3-be48-789708c8bcc7","command_center_event_id":"c4fa3bd4-a214-4085-8049-946a709c2dff"},{"id":"13bdc00b-ba7f-4813-b4d3-a76bf00bfa60","source":"cc-execution","status":"waiting_for_gate","payload":{"ok":true,"jobId":null,"phase":"objective_received","branch":null,"reason":"pull_request_checks_pending","status":"waiting_for_gate","metrics":{"receiptBytes":375,"releaseCount":0,"toolCallCount":1,"repeatedCallCount":0,"ownerInterruptionCount":0},"version":"1.47.4-pr-native-freshness","prNumber":392,"terminal":false,"missionId":"cbf78836-2cb3-4278-8a1b-4403dfe38b6d","operation":"ship_and_prove","proofGate":"ship_and_prove_waiting_for_gate","sourceSha":null,"timingsMs":null,"nextAction":null,"receiptRef":{"mode":"full","missionId":"cbf78836-2cb3-4278-8a1b-4403dfe38b6d"},"performance":null,"deploymentId":null,"workflowRunId":null,"releaseTargets":null,"detailsAvailable":true,"workflowInvariant":{"oneBranch":true,"oneMission":true,"oneRelease":true,"invariantScope":"repair_generation","onePullRequest":true,"terminalProofRequired":true,"correctiveGenerationsAllowed":true},"sourceReceiptBytes":5406,"ownerActionRequired":false,"ownerFacingTerminal":false,"continuationRequired":true},"tenant_id":"a2929648-19db-46c8-9e93-07378ed1aa5f","created_at":"2026-08-19T00:12:51.802463+00:00","proof_gate":"ship_and_prove_waiting_for_gate","source_sha":null,"external_id":"392","receipt_type":"ship_and_prove","idempotency_key":"mission:cbf78836-2cb3-4278-8a1b-4403dfe38b6d:ship_and_prove:ship_and_prove_waiting_for_gate:no-source:no-run","mission_step_id":"f1b55305-0afc-4ccc-bac8-c53010418db2","command_center_event_id":"cbf78836-2cb3-4278-8a1b-4403dfe38b6d"}],"rows":400,"limit":400,"table":"command_center_receipts","format":"knocklaunch-table-chunk-v1","offset":2800,"schema":"public","order_key":"id"}