{
  "schemaVersion": 1,
  "status": "success",
  "project": "zhiyv",
  "name": "zhiyv",
  "runId": "2026-09-10T11-01-16-826Z-3ce5",
  "createdAt": "2026-09-10T11:01:16.828Z",
  "completedAt": "2026-09-10T11:01:37.217Z",
  "technology": "Flutter / Riverpod / go_router; built-in mock repositories; separate legacy Go backend",
  "detectedPlatforms": [
    {
      "platform": "flutter",
      "root": "archive/zhiyv/frontend",
      "targets": [
        "web",
        "android",
        "ios"
      ],
      "sdkConstraint": "'>=3.13.0 <4.0.0'"
    }
  ],
  "captureMethod": "Flutter web in Chromium; accessibility semantics; mobile-sized viewport (not a native device)",
  "viewport": {
    "width": 390,
    "height": 844
  },
  "deviceScaleFactor": 2,
  "dataMode": "Application’s deterministic mock backend and public Picsum placeholder covers. No legacy Go backend or real accounts.",
  "source": {
    "projectPath": "archive/zhiyv/frontend",
    "commit": "866cc3a1196232f56749aad6faaf2cbb7776f3f4",
    "dirty": false,
    "statusFingerprint": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "trackedDiffFingerprint": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
  },
  "build": {
    "kind": "prebuilt-web",
    "entrySha256": "9a7708a76d35b5db79604572e80e51e0869b7aafd8cb2e7f5f128fae53513f25",
    "sourceFreshness": "not_verified"
  },
  "sourceStateUnchanged": true,
  "steps": [
    {
      "name": "Navigate to Explore",
      "startMs": 708,
      "endMs": 1505,
      "status": "passed"
    },
    {
      "name": "Open difficulty filters",
      "startMs": 1630,
      "endMs": 2360,
      "status": "passed"
    },
    {
      "name": "Dismiss the filter sheet",
      "startMs": 2457,
      "endMs": 3013,
      "status": "passed"
    },
    {
      "name": "Switch to the learning plan",
      "startMs": 3013,
      "endMs": 3743,
      "status": "passed"
    },
    {
      "name": "Switch to saved content",
      "startMs": 4063,
      "endMs": 4821,
      "status": "passed"
    },
    {
      "name": "Open the learner profile",
      "startMs": 4925,
      "endMs": 5593,
      "status": "passed"
    },
    {
      "name": "Open settings",
      "startMs": 5593,
      "endMs": 6324,
      "status": "passed"
    }
  ],
  "assets": {
    "animation": {
      "file": "zhiyv-interaction.webp",
      "format": "WEBP",
      "width": 390,
      "height": 844,
      "bytes": 416030,
      "sha256": "ed5094c437cfcb60672adbd7cee67e6f217cd25460d3bacd8c29db5de2ffb508",
      "frames": 55,
      "distinctFrames": 54,
      "durationMs": 7083,
      "loop": 0,
      "blankFrames": 0,
      "validation": "decoded_all_frames",
      "encoding": {
        "width": 390,
        "fps": 12,
        "quality": 78,
        "bytes": 416030
      },
      "encodingAttempts": [
        {
          "width": 390,
          "fps": 12,
          "quality": 78,
          "bytes": 416030
        }
      ],
      "budgetBytes": 2097152
    },
    "screenshots": [
      {
        "alt": "知育: mobile home and continuing-learning card using deterministic mock data.",
        "png": {
          "file": "learning-home.png",
          "format": "PNG",
          "width": 780,
          "height": 1688,
          "bytes": 517128,
          "sha256": "fbac6b7c8766ff0653f8c09fac3062eda4d598763dae70c16eb5c8805126bf3c",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": null,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        },
        "webp": {
          "file": "learning-home.webp",
          "format": "WEBP",
          "width": 780,
          "height": 1688,
          "bytes": 105772,
          "sha256": "8f4425370a72323f3e131c89ca08dd35f290cabdc5eda5a49bbf1fedef76e7c5",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": 1,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        }
      },
      {
        "alt": "知育: exploration topics and filtering controls.",
        "png": {
          "file": "explore-topics.png",
          "format": "PNG",
          "width": 780,
          "height": 1688,
          "bytes": 117325,
          "sha256": "e8cf6e266a07df81dc42f62fc5a5dfb229d3b7e49ee2addbaeb8ab873529b932",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": null,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        },
        "webp": {
          "file": "explore-topics.webp",
          "format": "WEBP",
          "width": 780,
          "height": 1688,
          "bytes": 51332,
          "sha256": "ebb841bcdbc7a4ff6bd8afcb96a5aa5beade92493ea8861dc5e036a03ad13d76",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": 1,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        }
      },
      {
        "alt": "知育: difficulty filter controls.",
        "png": {
          "file": "difficulty-filter.png",
          "format": "PNG",
          "width": 780,
          "height": 1688,
          "bytes": 118032,
          "sha256": "361f80ff1195e3e38d1b4187573dcff64ccccb374a86a0e5379f0b36380c3255",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": null,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        },
        "webp": {
          "file": "difficulty-filter.webp",
          "format": "WEBP",
          "width": 780,
          "height": 1688,
          "bytes": 49008,
          "sha256": "385e92517564b2613754c82a5364f2917dd303c35df046d72ecc47d65039d254",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": 1,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        }
      },
      {
        "alt": "知育: learning plan and course progress.",
        "png": {
          "file": "learning-plan.png",
          "format": "PNG",
          "width": 780,
          "height": 1688,
          "bytes": 165411,
          "sha256": "0f8937a1dc9a3553214d065c1a70d15c7717066f7d5091700cd622af4ad9d986",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": null,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        },
        "webp": {
          "file": "learning-plan.webp",
          "format": "WEBP",
          "width": 780,
          "height": 1688,
          "bytes": 53406,
          "sha256": "78ffcc3823e7babdb128626f230e738b4fbe6afeb0557f29ee5758dcfc2f6921",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": 1,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        }
      },
      {
        "alt": "知育: locally saved mock learning content.",
        "png": {
          "file": "saved-content.png",
          "format": "PNG",
          "width": 780,
          "height": 1688,
          "bytes": 220914,
          "sha256": "1af372b272f80834fd4855daf4ace0e3a295fdf140abbcdaa6e22fb5dc9a6fab",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": null,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        },
        "webp": {
          "file": "saved-content.webp",
          "format": "WEBP",
          "width": 780,
          "height": 1688,
          "bytes": 80104,
          "sha256": "b56160ba463640fe341341c9374c0ab1bf87a73679c715518f9ed0836daa1d14",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": 1,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        }
      },
      {
        "alt": "知育: learner settings.",
        "png": {
          "file": "learner-settings.png",
          "format": "PNG",
          "width": 780,
          "height": 1688,
          "bytes": 99295,
          "sha256": "470be54cb2e0111ab35835f50d0d0117be2575c06f0d3300187240b81031e57f",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": null,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        },
        "webp": {
          "file": "learner-settings.webp",
          "format": "WEBP",
          "width": 780,
          "height": 1688,
          "bytes": 40122,
          "sha256": "bcff63470b44e9c10e99d3ff8ce26a8ebe0aaf0f0ff9c7a5cb318a8657d11c4c",
          "frames": 1,
          "distinctFrames": 1,
          "durationMs": 0,
          "loop": 1,
          "blankFrames": 0,
          "validation": "decoded_all_frames"
        }
      }
    ]
  },
  "limitations": [
    "Using the existing release web build; no claim that it matches current source. A compatible Flutter 3.47.2 SDK is available through Scoop, not the default mise shim.",
    "iOS Simulator requires macOS; native Android is not verified by web capture."
  ],
  "runtimeEvidence": {
    "pageErrors": [],
    "expectedOfflineConsoleErrors": [
      "Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
      "Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
      "Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
      "Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
      "Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
      "Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
      "Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
      "Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
      "Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector"
    ],
    "blockedRequestCount": 9,
    "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
}
