{
  "schemaVersion": "3.1",
  "buildDate": "2026-10-04",
  "releaseDate": "2026-10-10",
  "canonical": "https://yangtsunghann.com/en/data/public-launch.json",
  "registryType": "public_launch_release",
  "status": "launch_ready_not_deployed",
  "version": "3.0",
  "build": "Public Launch / 2026-10-10",
  "buildId": "2026-10-04-v3.0-launch-ready",
  "targetPublicLaunchDate": "2026-10-10",
  "featureFreezeActivated": true,
  "contentFreezeDate": "2026-10-09",
  "contentFreezeActivated": false,
  "deploymentClaimed": false,
  "purpose": "Final production package for the October 10, 2026 public launch. V3.0 adds no public feature or artwork-content change; it locks the V2.76 RC into final versioned immutable assets, launch manifests, rollback, and rendered-regression validation. Actual Safari and Firefox smoke checks are recommended before deployment and are not falsely claimed as executed here.",
  "releaseCandidate": {
    "sourceVersion": "2.76 RC1",
    "sourceArtifact": "Yang-Tsung-Han-Website-V2.76-Release-Candidate-Final-QA-FULL.zip",
    "automatedRcStatus": "pass_with_manual_browser_gate",
    "rcLayoutBugFixed": "/en/biography/ narrow-screen overflow",
    "rcAssetCacheBust": [
      "/styles-v2.76.css",
      "/script-v2.76.js"
    ]
  },
  "productionAssets": {
    "stylesheet": "/styles-v3.0.css",
    "script": "/script-v3.0.js",
    "cachePolicy": "public, max-age=31536000, immutable",
    "contentEquivalentToRcAssets": true
  },
  "rollback": {
    "version": "2.76 RC1",
    "artifact": "Yang-Tsung-Han-Website-V2.76-ROLLBACK-FULL.zip",
    "sha256": "1e4dd1a0c2a54dbf4dbd8969d47b7a7b996f0bd4c8082c6ad8e149d0aedfac08"
  },
  "externalWatchItems": [
    {
      "id": "google-en-four-seasons-01",
      "state": "Not found (404) in last Google crawl snapshot",
      "releaseBlocking": false,
      "postDeployAction": "Reinspect after deployment."
    },
    {
      "id": "google-colors-of-memory",
      "state": "Crawled - currently not indexed",
      "releaseBlocking": false,
      "postDeployAction": "Observe after deployment."
    },
    {
      "id": "ga4-readback",
      "state": "Analytics read scope unavailable in connected account",
      "releaseBlocking": false,
      "postDeployAction": "Verify sessions/events/custom definitions when read access exists."
    },
    {
      "id": "cdn-waf-ai-bot-acceptance",
      "state": "not independently verified",
      "releaseBlocking": false,
      "postDeployAction": "Verify from CDN/WAF/server evidence when available."
    }
  ],
  "qa": {
    "automatedLaunchQaPass": true,
    "engine": "Chromium/Blink via set_content with inlined shared assets",
    "crossBrowserAutomated": false,
    "actualSafariFirefoxExecuted": false,
    "actualSafariFirefoxRecommendedBeforeDeploy": true,
    "publicIndexableRoutes": 84,
    "renderedLayoutChecks": 336,
    "viewports": [
      "320x800",
      "390x844",
      "430x900",
      "1440x1000"
    ],
    "routeRenderFailures": 0,
    "horizontalOverflowFailures": 0,
    "structureFailures": 0,
    "interactionChecks": 6,
    "interactionFailures": 0,
    "preConsentGoogleRequestFailures": 0,
    "visualRegressionChecks": 30,
    "unexpectedVisualRegressionChangedPixels": 0,
    "screenshotsCaptured": 24,
    "staticBrokenLinks": 0,
    "staticMissingAssets": 0,
    "invalidJsonLd": 0,
    "renderingBoundary": "Shared CSS/JS and exact local fonts are inlined for local headless rendering because direct local/network navigation is blocked by the execution sandbox. Image sources are replaced with transparent placeholders while explicit dimensions remain; layout/scrollability and V2.76→V3.0 regression are tested, not photographic image fidelity.",
    "overflowMeasurement": "Actual horizontal scrollability: attempt window.scrollTo(99999, 0) and require scrollX to remain 0. Raw scrollWidth alone is not treated as a defect because the production CSS intentionally uses body overflow-x: clip for oversized display typography."
  },
  "visiblePublicContentChanged": false,
  "publicLayoutChanged": false,
  "nextOperationalStep": "Deploy this exact package on 2026-10-10, then execute post-launch verification.",
  "launchPackageGate": "PASS",
  "imageRightsMetadata": "/en/data/image-rights-metadata.json",
  "imageRightsPatch": {
    "version": "3.0.1",
    "registry": "/en/data/image-rights-metadata.json",
    "status": "ready_not_deployed",
    "rightsPage": "/en/image-rights/",
    "indexableUrlCountChanged": false
  },
  "searchGrowth": "/en/data/search-growth.json"
}
