{
  "date": "2026-10-30",
  "evidence_source": "Deployment and probe results reported by the coordinating release agent; user statements are identified separately.",
  "authorization": {
    "merge_deploy_test": "Explicitly requested by the user for this release.",
    "manual_gcp_limitation": "Superseded for this release by the explicit deployment request.",
    "gpu_capacity": "User instructed not to restore capacity because of cost.",
    "additional_paid_provider_checks": "Not authorized under the current spending constraint."
  },
  "api": {
    "pull_request": "https://github.com/ITIShq/framelane-api/pull/61",
    "pull_request_state": "merged",
    "commit": "06ec2578808c8781e62e4fd71e1608b95f01fa62",
    "build_id": "2229c81b-dc97-4c1d-9f08-65e1cc246c1a",
    "build_status": "success",
    "image_digest": "sha256:e96913109507cc35a3cb02ead1745871c3dc8456d600eaf4853e6651e480d8d5",
    "migration_execution": "framelane-migrate-hdqpd",
    "migration_status": "succeeded",
    "migration_from": "0022",
    "migration_to": "0025",
    "cloud_run_revision": "framelane-api-00116-k8t",
    "traffic_percent": 100,
    "origin": "https://api.framelane.io",
    "health_status": 200,
    "readiness_status": 200,
    "database_healthy": true,
    "redis_healthy": true,
    "live_openapi_matches_committed": true,
    "openapi_path_count": 59,
    "checked_new_routes": 3,
    "unauthenticated_new_route_status": 401,
    "initial_deployment": {
      "pull_request": "https://github.com/ITIShq/framelane-api/pull/59",
      "commit": "65958eb803846aa5019b4507de6e6384ad61535d",
      "build_id": "945b251b-e8c1-4ee2-8c01-f2d3ce867e55",
      "build_status": "success",
      "image_digest": "sha256:304b8d2649ed1555194ada525a0042b3a95dcfa72528bc0c3e31fcc4da111b84",
      "migration_execution": "framelane-migrate-hdqpd",
      "migration_status": "succeeded",
      "migration_from": "0022",
      "migration_to": "0025",
      "cloud_run_revision": "framelane-api-00115-5l7"
    },
    "feature_pull_request": "https://github.com/ITIShq/framelane-api/pull/59",
    "hotfix_requires_new_migration": false
  },
  "console": {
    "pull_request": "https://github.com/ITIShq/framelane-homepage/pull/18",
    "pull_request_state": "merged",
    "commit": "53007cde3162d9ee76b2480fd64e6cea6c2f2f5f",
    "deployment_id": "dpl_BY6oUDaM4wH8PHztdfa2EsiuTsgf",
    "production_origin": "https://framelane.io",
    "promoted": true,
    "brand_kit_html_unauthenticated_status": 307,
    "brand_kit_html_redirect_path": "/login",
    "non_html_unauthenticated_404": "Clerk authentication behavior; not evidence of an absent page.",
    "signed_in_acceptance": "passed within the recorded management-only scope",
    "signed_in_observed_at": "2026-10-30T09:58:00.681Z"
  },
  "licence": {
    "status": "user-confirmed obtained and filed",
    "independently_inspected": false,
    "filing_location": null
  },
  "farm": {
    "capacity_sequence": "One requested briefly, then immediately returned to zero at the user's instruction.",
    "stable_target_size": 0,
    "listed_instances": [],
    "font_processing_jobs_submitted": 0,
    "render_jobs_submitted": 0,
    "running_container_digest_verified": false,
    "stable": true,
    "final_observed_at": "2026-10-30T09:59:16.708467+00:00"
  },
  "provider": {
    "production_provider": "framelane",
    "new_paid_submissions": 0,
    "previous_live_capture_report": "brand-kit-tastelabs-2026-10-29.json",
    "previous_three_site_captures_complete": true,
    "deployed_provider_acceptance": "pending",
    "alert_delivery_verified": false
  },
  "remaining_checks": [
    "Running farm image and callback/subscription evidence.",
    "Real deployed TTF and CFF OTF processing, cooked-font CDN/CORS and browser FontFace behavior.",
    "Media/font upload and uploaded-object cleanup; completed cleanup evidence covers a workspace without media/font bytes.",
    "Preview/export fidelity, retained-font rendering and completed video output.",
    "Deployed TasteLabs flow and actual dispatch-failure alert delivery before provider rollout."
  ],
  "production_bug": {
    "initial_symptom": "Name and colour edits succeeded; a later workspace-kit reload returned HTTP 500.",
    "cause": "A bound ON CONFLICT partial-index predicate cannot infer the matching unique index under PostgreSQL generic prepared plans.",
    "reproduced_locally_before_fix": true,
    "fix": "Use the exact static partial-index predicate from the migration; keep user data parameterized.",
    "focused_tests_passed": 31,
    "real_postgresql_checks": 4,
    "generic_prepared_insert_executions": 21,
    "verified": "Repeated reads preserve one kit and manual edits without changing extracted kits."
  },
  "ci": {
    "run_id": "41035828066",
    "commit": "06ec2578808c8781e62e4fd71e1608b95f01fa62",
    "status": "success",
    "tests_passed": 4190,
    "tests_skipped": 18,
    "upload_panel_tests_passed": 10,
    "image_openapi_path_count": 59
  },
  "acceptance_reports": {
    "mcp_tools": {
      "source_report": "mcp-tools-report.json",
      "sha256": "6900edcc159a8caa3a6cc035aeadc1dc1ea0e0d72a7a068cccf1f8e4b98e4af1",
      "result": {
        "endpoint": "https://mcp.framelane.io/mcp/",
        "initialized": true,
        "tool_count": 31,
        "brand_tools": [
          {
            "name": "extract_brand_kit",
            "parameters": [
              "url",
              "name",
              "brand_kit_id"
            ]
          },
          {
            "name": "list_brand_kits",
            "parameters": [
              "limit",
              "cursor"
            ]
          },
          {
            "name": "get_brand_kit",
            "parameters": [
              "brand_kit_id"
            ]
          },
          {
            "name": "edit_brand_kit",
            "parameters": [
              "brand_kit_id",
              "name",
              "palette",
              "fonts",
              "add_colors",
              "remove_colors",
              "add_asset_ids",
              "remove_asset_ids",
              "logo_asset_id"
            ]
          },
          {
            "name": "create_upload",
            "parameters": [
              "content_type",
              "filename",
              "duration",
              "width",
              "height",
              "content_base64",
              "brand_kit_id",
              "family"
            ]
          }
        ]
      }
    },
    "mcp_roundtrip": {
      "source_report": "mcp-roundtrip-report.json",
      "sha256": "d22cf5f596e5af2eea37858ee829c5d612cae32e551a8856a1b8301ff0f7a9ba",
      "result": {
        "endpoint": "https://mcp.framelane.io/mcp/",
        "workspace_id": "ws_01M662NAKJHGS78YEENM56HNGP",
        "kit_id": "bk_01M662NBY0754CMVBCX4WWGADV",
        "get_brand_kit": true,
        "edit_brand_kit": true,
        "rest_independently_verified": true,
        "repeated_mcp_reads": 20,
        "initial_values_restored": true,
        "font_render_or_provider_jobs_submitted": 0
      }
    },
    "browser_acceptance": {
      "source_report": "evidence/report.json",
      "sha256": "5d7361b0bafbc00fece883d0602c83adc0469be1cc064dd0d03909302a1e126b",
      "result": {
        "observed_at": "2026-10-30T09:58:00.681Z",
        "workspace_id": "ws_01M662NAKJHGS78YEENM56HNGP",
        "kit_id": "bk_01M662NBY0754CMVBCX4WWGADV",
        "concurrent_singleton_reads": 8,
        "singleton_count": 1,
        "wrong_mime": {
          "type": "font/woff2",
          "status": 422,
          "code": "unsupported_content_type",
          "no_font_row": true
        },
        "browser": {
          "rename_reload_restore": true,
          "color_add_remove_reload_readd_cleanup": true,
          "empty_font_ui": true,
          "editor": "empty project Brand panel shows persisted swatch; no scene edit"
        },
        "jobs_before": {
          "renders": [],
          "tasks": []
        },
        "jobs_after": {
          "renders": [],
          "tasks": []
        },
        "extraction_usage_before": 0,
        "extraction_usage_after": 0,
        "forbidden_request_attempts": [],
        "excluded": [
          "provider extraction",
          "font/media upload",
          "font cooking",
          "render/preview/thumbnail submission",
          "completed render"
        ],
        "page_errors": []
      }
    },
    "cleanup": {
      "source_report": "cleanup-report.json",
      "sha256": "f31e195712733879424c5e5c2963e9470f24ec252ba185f899dd828982049fef",
      "result": {
        "workspace_id": "ws_01M662NAKJHGS78YEENM56HNGP",
        "workspace_deleted": true,
        "api_key_invalidated": true,
        "generated_clerk_user_deleted": true,
        "real_user_account_touched": false,
        "jobs_before_cleanup": {
          "renders": 0,
          "tasks": 0
        }
      }
    },
    "final_runtime": {
      "source_report": "final-runtime-report.json",
      "sha256": "9a872ade14ef42acfea65deb4c3bcd39cff95a54b277633e99606b3a9c48b5b9",
      "result": {
        "observed_at": "2026-10-30T09:59:16.708467+00:00",
        "api_revision": "framelane-api-00116-k8t",
        "api_error_entries": 0,
        "console_error_entries_after_fix": 0,
        "console_log_query_exit": 0,
        "renderer": {
          "status": {
            "isStable": true
          },
          "targetSize": 0
        },
        "instances": []
      }
    }
  },
  "test_identity": {
    "type": "new disposable Clerk identity",
    "email_domain": "example.com",
    "null_mx": "0 .",
    "authentication_and_workspace_sync": "succeeded",
    "earlier_invalid_domain_attempt": "Clerk rejected .invalid; resolved with the reserved example.com domain.",
    "existing_real_user_untouched": true,
    "temporary_credentials_and_browser_state_files_removed": true,
    "deleted_test_api_key_http_status": 401
  },
  "runtime_observation_scope": {
    "api_revision": "framelane-api-00116-k8t",
    "observed_at": "2026-10-30T09:59:16.708467+00:00",
    "console_log_window_start": "2026-10-30T09:52:02Z",
    "interpretation": "Bounded post-fix checks, not a claim about all historical or future logs."
  }
}
