{
  "schemaVersion": 1,
  "status": "success",
  "project": "hmrchan",
  "name": "hmrchan",
  "runId": "2026-09-10T10-11-31-159Z-6f51",
  "createdAt": "2026-09-10T10:11:31.160Z",
  "completedAt": "2026-09-10T10:11:46.244Z",
  "technology": "Vue 3 / TypeScript / Vite; React admin; uni-app WeChat client; backend services",
  "detectedPlatforms": [
    {
      "platform": "web",
      "root": "hmrchan/hmrchan-admin",
      "framework": {
        "react": "^19.2.8"
      },
      "scripts": [
        "dev",
        "build"
      ]
    },
    {
      "platform": "web",
      "root": "hmrchan/hmrchan-frontend",
      "framework": {
        "vue": "3.5.41"
      },
      "scripts": [
        "dev",
        "build",
        "build:security-check"
      ]
    },
    {
      "platform": "web",
      "root": "hmrchan/hmrchan-frontend-main",
      "framework": {
        "vue": "3.6.0-beta.17"
      },
      "scripts": [
        "dev",
        "build",
        "build:security-check"
      ]
    },
    {
      "platform": "web",
      "root": "hmrchan/hmrchan-uniapp",
      "framework": {
        "vue": "3.4.21",
        "@dcloudio/uni-app": "3.0.0-alpha-5000820260420001"
      },
      "scripts": [
        "dev:mp-weixin",
        "build:h5",
        "build:mp-weixin"
      ]
    }
  ],
  "captureMethod": "Playwright Chromium viewport recording; isolated local application",
  "viewport": {
    "width": 1360,
    "height": 850
  },
  "deviceScaleFactor": 1,
  "dataMode": "Public local snapshot data; live remote APIs blocked; fresh anonymous browser.",
  "source": {
    "projectPath": "hmrchan/hmrchan-frontend",
    "commit": "7367fb06ae3382110ece62d66b45c18ad51ee79c",
    "dirty": false,
    "statusFingerprint": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "trackedDiffFingerprint": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
  },
  "build": {
    "kind": "prebuilt-web",
    "entrySha256": "24ae55bbec8d7cd1dd4afaf48fb21cb3f5716a56356091e268085b3a6728eaef",
    "sourceFreshness": "not_verified"
  },
  "sourceStateUnchanged": true,
  "steps": [
    {
      "name": "Hover the primary exploration link",
      "startMs": 981,
      "endMs": 1602,
      "status": "passed"
    },
    {
      "name": "Scroll through the media cards",
      "startMs": 1602,
      "endMs": 2409,
      "status": "passed"
    },
    {
      "name": "Navigate to preference settings",
      "startMs": 2609,
      "endMs": 4061,
      "status": "passed"
    },
    {
      "name": "Bring theme controls into view",
      "startMs": 4061,
      "endMs": 4492,
      "status": "passed"
    },
    {
      "name": "Change from light to dark mode",
      "startMs": 4492,
      "endMs": 5093,
      "status": "passed"
    }
  ],
  "assets": {
    "animation": {
      "file": "hmrchan-interaction.webp",
      "format": "WEBP",
      "width": 1080,
      "height": 676,
      "bytes": 981344,
      "sha256": "bd9df69117fa803483f98fb761450dfe7897449a75417364fc3ed71b42098f9a",
      "frames": 60,
      "distinctFrames": 60,
      "durationMs": 5749,
      "loop": 0,
      "blankFrames": 0,
      "validation": "decoded_all_frames",
      "encoding": {
        "width": 1080,
        "fps": 12,
        "quality": 78,
        "bytes": 981344
      },
      "encodingAttempts": [
        {
          "width": 1080,
          "fps": 12,
          "quality": 78,
          "bytes": 981344
        }
      ],
      "budgetBytes": 2097152
    },
    "screenshots": [
      {
        "alt": "MomiChan: public media landing page using local fallback content.",
        "png": {
          "file": "home-light.png",
          "format": "PNG",
          "width": 1360,
          "height": 850,
          "bytes": 795595,
          "sha256": "f4e67d986c51e7b7f441fd2abd7fcf86dbd4020a0f18cc7ac2d571e5036fb97b",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": null,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        },
        "webp": {
          "file": "home-light.webp",
          "format": "WEBP",
          "width": 1360,
          "height": 850,
          "bytes": 44766,
          "sha256": "c9dc050f1ec56c95f93a83fa347f86e8cb43ade9477f554c5bd5926abc3e7048",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": 1,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        }
      },
      {
        "alt": "MomiChan: scrollable public media and community preview cards.",
        "png": {
          "file": "media-cards.png",
          "format": "PNG",
          "width": 1360,
          "height": 850,
          "bytes": 509571,
          "sha256": "2f471f71de0b6c89e00c92be4b25715e762082fdfd7c1bdc9cc09e805877dd05",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": null,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        },
        "webp": {
          "file": "media-cards.webp",
          "format": "WEBP",
          "width": 1360,
          "height": 850,
          "bytes": 57916,
          "sha256": "08c79b7b8a8955b6eda14144c98916dd5807a309bd945eb6d33cc3e1ef91c7ff",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": 1,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        }
      },
      {
        "alt": "MomiChan: dark-mode preference controls; anonymous local session.",
        "png": {
          "file": "preferences-dark.png",
          "format": "PNG",
          "width": 1360,
          "height": 850,
          "bytes": 319493,
          "sha256": "dadac39cffa8e223ec18ff518831505c3c9c74181a6a841e84b321fec032f3e9",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": null,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        },
        "webp": {
          "file": "preferences-dark.webp",
          "format": "WEBP",
          "width": 1360,
          "height": 850,
          "bytes": 55666,
          "sha256": "ad72d838e6f3f030b0cabcd644e05c5338973f304200b5559c68187f7b48a8c2",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": 1,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        }
      }
    ]
  },
  "limitations": [
    "Admin authenticated flows are excluded; no administrator credentials used.",
    "WeChat Mini Program needs a separate DevTools automation session."
  ],
  "runtimeEvidence": {
    "pageErrors": [],
    "expectedOfflineConsoleErrors": [
      "Failed to load resource: the server responded with a status of 405 (Method Not Allowed)",
      "Failed to load resource: the server responded with a status of 405 (Method Not Allowed)",
      "Failed to load resource: the server responded with a status of 503 (Service Unavailable)"
    ],
    "blockedRequestCount": 0,
    "fullDesktopCaptured": false
  },
  "verification": {
    "media": "All frames decoded; nonblank; changing animation; loop; dimensions; file-size budget; checksums.",
    "interaction": "Each configured step completed against the real running application.",
    "visualReview": "passed: all screenshots and representative animation frames inspected; no blank, cropping, font, or viewport defects observed"
  },
  "primaryFormat": "Animated WebP",
  "sourceRecordingRetained": false
}
