{
  "schemaVersion": 2,
  "environment": "public-demo",
  "project": "FitTrack Pro",
  "version": "1.3.1",
  "qaRevision": "2026-11-03-accessibility-2",
  "generatedAt": "2026-11-03T14:09:38.677Z",
  "buildTime": "2026-11-03T07:59:25.783Z",
  "gitCommit": "7eb094d9cc1ffd34563e9f1773492bab71418654",
  "testedSourceCommit": "7eb094d9cc1ffd34563e9f1773492bab71418654",
  "deploymentUrl": "https://fittrack-pro-demo-qa.pages.dev",
  "demoUrl": "https://fittrack-pro-demo-qa.pages.dev/demo",
  "reportUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/report.html",
  "deployment": {
    "status": "verified_anonymous_http",
    "provider": "cloudflare-pages",
    "deploymentId": "2b942fc3-c8f6-4123-82f5-1a7867b2aa75",
    "deployedAt": "2026-11-03T13:50:10.533344Z",
    "verifiedAt": "2026-11-03T14:08:12.555Z",
    "verifiedSourceCommit": "7eb094d9cc1ffd34563e9f1773492bab71418654",
    "httpStatus": 200,
    "note": "此处为已实际验证的应用资产部署；测试完成后的静态报告更新另有最终发布回执，不能预先声明更新已发布。"
  },
  "onlineBrowserVerification": {
    "target": "https://fittrack-pro-demo-qa.pages.dev",
    "testedSourceCommit": "7eb094d9cc1ffd34563e9f1773492bab71418654",
    "passed": 34,
    "failed": 0,
    "skipped": 0,
    "aggregation": "同名案例采用最后一次实际执行结果；历史失败单独保留，不重复累计通过数。",
    "initialFailures": [
      {
        "test": "禁用JavaScript仍可阅读静态首页HTML和JSON报告",
        "project": "desktop-chromium",
        "reason": "导航或资源加载超过测试时限。"
      },
      {
        "test": "Demo加密备份下载、删除测试会员后恢复与重复去重",
        "project": "desktop-chromium",
        "reason": "代理隧道连接失败，未完成该次功能检查。"
      },
      {
        "test": "重置只影响当前浏览器Demo，模拟正式库哨兵保留",
        "project": "desktop-chromium",
        "reason": "代理隧道连接失败，未完成该次功能检查。"
      },
      {
        "test": "PWA缓存、离线刷新、照片与动作配图仍可读取",
        "project": "desktop-chromium",
        "reason": "代理隧道连接失败，未完成该次功能检查。"
      },
      {
        "test": "公开验收报告结构、敏感信息清理与直接路由刷新",
        "project": "desktop-chromium",
        "reason": "TLS连接建立前被重置，未完成该次功能检查。"
      },
      {
        "test": "会员列表和详情真实截图",
        "project": "iphone-size-chromium",
        "reason": "代理隧道连接失败，未完成该次功能检查。"
      },
      {
        "test": "禁用JavaScript仍可阅读静态首页HTML和JSON报告",
        "project": "iphone-size-chromium",
        "reason": "代理隧道连接失败，未完成该次功能检查。"
      },
      {
        "test": "浏览器进程关闭重开后会员资料仍持久化",
        "project": "iphone-size-chromium",
        "reason": "代理隧道连接失败，未完成该次功能检查。"
      },
      {
        "test": "Demo初始化、数据库隔离与响应式首页",
        "project": "iphone-size-chromium",
        "reason": "代理隧道连接失败，未完成该次功能检查。"
      },
      {
        "test": "会员新增、修改、搜索和删除测试会员",
        "project": "iphone-size-chromium",
        "reason": "代理隧道连接失败，未完成该次功能检查。"
      },
      {
        "test": "测量新增、修改、左右侧字段与趋势显示",
        "project": "iphone-size-chromium",
        "reason": "代理隧道连接失败，未完成该次功能检查。"
      },
      {
        "test": "合成照片上传与并排、滑动、叠加、四宫格",
        "project": "iphone-size-chromium",
        "reason": "代理隧道连接失败，未完成该次功能检查。"
      }
    ]
  },
  "modules": [
    {
      "name": "首页仪表盘",
      "implementation": "implemented",
      "automatedVerification": "passed",
      "humanAcceptance": "pending_user",
      "evidence": [
        {
          "test": "Demo初始化、数据库隔离与响应式首页",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "test": "Demo初始化、数据库隔离与响应式首页",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "name": "会员管理与档案",
      "implementation": "implemented",
      "automatedVerification": "passed",
      "humanAcceptance": "pending_user",
      "evidence": [
        {
          "test": "会员列表和详情真实截图",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "test": "会员新增、修改、搜索和删除测试会员",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "test": "会员列表和详情真实截图",
          "project": "iphone-size-chromium",
          "status": "passed"
        },
        {
          "test": "会员新增、修改、搜索和删除测试会员",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "name": "身体数据与趋势",
      "implementation": "implemented",
      "automatedVerification": "passed",
      "humanAcceptance": "pending_user",
      "evidence": [
        {
          "test": "测量新增、修改、左右侧字段与趋势显示",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "test": "测量新增、修改、左右侧字段与趋势显示",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "name": "体态照片与四种对比",
      "implementation": "implemented",
      "automatedVerification": "passed",
      "humanAcceptance": "pending_user",
      "evidence": [
        {
          "test": "合成照片上传与并排、滑动、叠加、四宫格",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "test": "合成照片上传与并排、滑动、叠加、四宫格",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "name": "拍摄辅助（手动对齐）",
      "implementation": "implemented",
      "automatedVerification": "passed",
      "humanAcceptance": "pending_user",
      "evidence": [
        {
          "test": "拍摄辅助页面与模拟权限拒绝降级",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "test": "拍摄辅助页面与模拟权限拒绝降级",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "name": "48项专业动作库与自定义媒体",
      "implementation": "implemented",
      "automatedVerification": "passed",
      "humanAcceptance": "pending_user",
      "evidence": [
        {
          "test": "48项动作英文搜索、已有动作编辑、照片视频保存与重开",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "test": "48项动作英文搜索、已有动作编辑、照片视频保存与重开",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "name": "训练计划与模板",
      "implementation": "implemented",
      "automatedVerification": "passed",
      "humanAcceptance": "pending_user",
      "evidence": [
        {
          "test": "训练计划创建、动作组编辑、保存模板与复制",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "test": "训练计划创建、动作组编辑、保存模板与复制",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "name": "实际训练记录与计时",
      "implementation": "implemented",
      "automatedVerification": "passed",
      "humanAcceptance": "pending_user",
      "evidence": [
        {
          "test": "自由训练实际录入、刷新恢复、结束与历史",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "test": "自由训练实际录入、刷新恢复、结束与历史",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "name": "力量进步分析与PR",
      "implementation": "implemented",
      "automatedVerification": "passed",
      "humanAcceptance": "pending_user",
      "evidence": [
        {
          "test": "力量进步、下降、PR与容量真实图表",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "test": "力量进步、下降、PR与容量真实图表",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "name": "完整加密备份与恢复",
      "implementation": "implemented",
      "automatedVerification": "passed",
      "humanAcceptance": "pending_user",
      "evidence": [
        {
          "test": "Demo加密备份下载、删除测试会员后恢复与重复去重",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "test": "Demo加密备份下载、删除测试会员后恢复与重复去重",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    }
  ],
  "pendingModules": [
    "课程日历与课时管理",
    "云同步与会员登录"
  ],
  "functionalTests": [
    {
      "feature": "新增和编辑会员",
      "status": "passed",
      "evidence": [
        {
          "kind": "browser",
          "title": "会员新增、修改、搜索和删除测试会员",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "会员新增、修改、搜索和删除测试会员",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "feature": "新增身体测量",
      "status": "passed",
      "evidence": [
        {
          "kind": "browser",
          "title": "测量新增、修改、左右侧字段与趋势显示",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "测量新增、修改、左右侧字段与趋势显示",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "feature": "身体趋势计算",
      "status": "passed",
      "evidence": [
        {
          "kind": "unit",
          "title": "当前、上次、初始和绝对 / 百分比变化正确，缺失指标不算 0",
          "status": "passed"
        },
        {
          "kind": "unit",
          "title": "体脂率的 20% → 18% 为下降 2 个百分点，不误写为 -2%",
          "status": "passed"
        }
      ]
    },
    {
      "feature": "上传测试照片",
      "status": "passed",
      "evidence": [
        {
          "kind": "browser",
          "title": "合成照片上传与并排、滑动、叠加、四宫格",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "合成照片上传与并排、滑动、叠加、四宫格",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "feature": "照片滑动对比",
      "status": "passed",
      "evidence": [
        {
          "kind": "browser",
          "title": "合成照片上传与并排、滑动、叠加、四宫格",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "合成照片上传与并排、滑动、叠加、四宫格",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "feature": "创建训练计划",
      "status": "passed",
      "evidence": [
        {
          "kind": "browser",
          "title": "训练计划创建、动作组编辑、保存模板与复制",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "训练计划创建、动作组编辑、保存模板与复制",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "feature": "添加训练动作",
      "status": "passed",
      "evidence": [
        {
          "kind": "browser",
          "title": "训练计划创建、动作组编辑、保存模板与复制",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "自由训练实际录入、刷新恢复、结束与历史",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "训练计划创建、动作组编辑、保存模板与复制",
          "project": "iphone-size-chromium",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "自由训练实际录入、刷新恢复、结束与历史",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "feature": "开始训练",
      "status": "passed",
      "evidence": [
        {
          "kind": "browser",
          "title": "自由训练实际录入、刷新恢复、结束与历史",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "从计划开始保持实际空白且重复开始不覆盖",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "自由训练实际录入、刷新恢复、结束与历史",
          "project": "iphone-size-chromium",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "从计划开始保持实际空白且重复开始不覆盖",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "feature": "记录每组重量次数",
      "status": "passed",
      "evidence": [
        {
          "kind": "browser",
          "title": "自由训练实际录入、刷新恢复、结束与历史",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "自由训练实际录入、刷新恢复、结束与历史",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "feature": "结束训练",
      "status": "passed",
      "evidence": [
        {
          "kind": "browser",
          "title": "自由训练实际录入、刷新恢复、结束与历史",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "自由训练实际录入、刷新恢复、结束与历史",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "feature": "训练容量计算",
      "status": "passed",
      "evidence": [
        {
          "kind": "unit",
          "title": "热身与非热身容量分开，未完成和不适用单侧不计；主肌群均分不重复累计",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "自由训练实际录入、刷新恢复、结束与历史",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "自由训练实际录入、刷新恢复、结束与历史",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "feature": "估算1RM计算",
      "status": "passed",
      "evidence": [
        {
          "kind": "unit",
          "title": "Epley=60×(1+10/30)=80，热身/失败/高于30次/不适用类型不估算，lb转换准确",
          "status": "passed"
        }
      ]
    },
    {
      "feature": "PR识别",
      "status": "passed",
      "evidence": [
        {
          "kind": "unit",
          "title": "PR仅来自已完成正式数据，修改/删除后重新计算，不复用旧缓存",
          "status": "passed"
        }
      ]
    },
    {
      "feature": "数据持久化",
      "status": "passed",
      "evidence": [
        {
          "kind": "browser",
          "title": "浏览器进程关闭重开后会员资料仍持久化",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "48项动作英文搜索、已有动作编辑、照片视频保存与重开",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "浏览器进程关闭重开后会员资料仍持久化",
          "project": "iphone-size-chromium",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "48项动作英文搜索、已有动作编辑、照片视频保存与重开",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    },
    {
      "feature": "加密备份与恢复",
      "status": "passed",
      "evidence": [
        {
          "kind": "browser",
          "title": "Demo加密备份下载、删除测试会员后恢复与重复去重",
          "project": "desktop-chromium",
          "status": "passed"
        },
        {
          "kind": "browser",
          "title": "Demo加密备份下载、删除测试会员后恢复与重复去重",
          "project": "iphone-size-chromium",
          "status": "passed"
        }
      ]
    }
  ],
  "automatedTests": {
    "status": "passed",
    "pipeline": {
      "typecheck": {
        "status": "passed",
        "startedAt": "2026-11-03T07:59:20.274Z",
        "completedAt": "2026-11-03T07:59:22.170Z"
      },
      "unit": {
        "status": "passed",
        "startedAt": "2026-11-03T07:59:22.170Z",
        "completedAt": "2026-11-03T07:59:23.819Z"
      },
      "build": {
        "status": "passed",
        "startedAt": "2026-11-03T07:59:23.870Z",
        "completedAt": "2026-11-03T07:59:25.783Z"
      },
      "browser": {
        "status": "passed",
        "target": "https://fittrack-pro-demo-qa.pages.dev",
        "startedAt": "2026-11-03T13:52:22.662Z",
        "completedAt": "2026-11-03T14:09:38.677Z",
        "workers": 1
      }
    },
    "unit": {
      "passed": 152,
      "failed": 0,
      "skipped": 0
    },
    "browser": {
      "passed": 34,
      "failed": 0,
      "skipped": 0,
      "projects": [
        "desktop-chromium",
        "iphone-size-chromium"
      ]
    },
    "failures": []
  },
  "humanAcceptance": {
    "status": "pending_user",
    "physicalIPhone": "unverified",
    "nativeMacSafari": "unverified",
    "physicalCamera": "unverified",
    "nativePWAInstall": "unverified",
    "actualPDFOutput": "unverified"
  },
  "accessChecks": {
    "checkedAt": "2026-11-03T14:08:12.555Z",
    "baseUrl": "https://fittrack-pro-demo-qa.pages.dev",
    "sourceCommit": "7eb094d9cc1ffd34563e9f1773492bab71418654",
    "accessMode": "public",
    "credentials": "none",
    "crawlerStatus": "failed",
    "httpPassed": true,
    "screenshotsChecked": 24,
    "results": [
      {
        "path": "/",
        "kind": "landing",
        "initialStatus": 200,
        "status": 200,
        "contentType": "text/html; charset=utf-8",
        "bytes": 5102,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/demo",
        "kind": "application",
        "initialStatus": 200,
        "status": 200,
        "contentType": "text/html; charset=utf-8",
        "bytes": 1419,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa",
        "kind": "html",
        "initialStatus": 200,
        "status": 200,
        "contentType": "text/html; charset=utf-8",
        "bytes": 21839,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/report.json",
        "kind": "json",
        "initialStatus": 200,
        "status": 200,
        "contentType": "application/json",
        "bytes": 49427,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/report.html",
        "kind": "html",
        "initialStatus": 308,
        "status": 200,
        "contentType": "text/html; charset=utf-8",
        "bytes": 21839,
        "redirect": {
          "status": 308,
          "destination": "https://fittrack-pro-demo-qa.pages.dev/qa/report"
        },
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/robots.txt",
        "kind": "robots",
        "initialStatus": 200,
        "status": 200,
        "contentType": "text/plain; charset=utf-8",
        "bytes": 83,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/sitemap.xml",
        "kind": "sitemap",
        "initialStatus": 200,
        "status": 200,
        "contentType": "application/xml",
        "bytes": 381,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/01-dashboard-desktop-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 77809,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/01-dashboard-iphone-size-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 32258,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/02-body-trend-desktop-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 83608,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/02-body-trend-iphone-size-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 35682,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/03-photo-comparison-desktop-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 70603,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/03-photo-comparison-iphone-size-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 29059,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/04-camera-fallback-desktop-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 45610,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/04-camera-fallback-iphone-size-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 26893,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/05-exercise-media-desktop-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 53007,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/05-exercise-media-iphone-size-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 22775,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/06-plans-desktop-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 66676,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/06-plans-iphone-size-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 30696,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/07-workout-desktop-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 54970,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/07-workout-iphone-size-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 18379,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/08-strength-progress-desktop-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 73100,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/08-strength-progress-iphone-size-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 30945,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/09-member-list-desktop-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 78410,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/09-member-list-iphone-size-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 31170,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/10-member-detail-desktop-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 65523,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/10-member-detail-iphone-size-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 30636,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/11-photo-slider-desktop-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 61232,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/11-photo-slider-iphone-size-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 29966,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/12-static-report-desktop-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 89373,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      },
      {
        "path": "/qa/screenshots/12-static-report-iphone-size-chromium.jpg",
        "kind": "image",
        "initialStatus": 200,
        "status": 200,
        "contentType": "image/jpeg",
        "bytes": 42639,
        "redirect": null,
        "valid": true,
        "attempts": [
          {
            "status": 200,
            "valid": true
          }
        ]
      }
    ]
  },
  "runtimeDiagnostics": {
    "target": "https://fittrack-pro-demo-qa.pages.dev",
    "monitoredAttempts": 46,
    "consoleErrors": 0,
    "unhandledPageErrors": 0,
    "blockedInlineScripts": 0,
    "resourceFailures": 0,
    "note": "首轮与复测的实际观察总数；传输层失败另在executionHistory与initialFailures记录，不含原始堆栈或敏感内容。"
  },
  "privacy": {
    "syntheticDataOnly": true,
    "database": "fittrack-pro-demo-v1",
    "isolation": "独立来源、构建开关、数据库与不可导出AES密钥",
    "backups": "Demo加密备份，拒绝正式备份；无正式访问凭据"
  },
  "knownIssues": [
    "Cloudflare首轮出现12项失败；仅复测失败项，原因与历史结果保留在onlineBrowserVerification.initialFailures和executionHistory。",
    "ChatGPT文本抓取尚未通过，跨对话链接验收尚未完全达成。当前文本抓取工具返回不可访问；匿名HTTP、GPTBot标识请求及浏览器可读取，原因未确定。",
    "iPhone尺寸使用Chromium，不等于真实iPhone Safari；摄像头、主屏幕安装、Mac Safari与PDF仍需人工验收。",
    "首次需完成应用缓存后才能离线；浏览器存储可能被清理，Demo禁止录入真实资料。",
    "体态图片为AI合成测试素材；重复图片不代表身体变化。",
    "匿名HTTP与ChatGPT文本抓取分别验证；当前抓取结果见accessChecks，不能因HTTP 200宣称抓取通过。"
  ],
  "screenshots": [
    {
      "url": "/qa/screenshots/01-dashboard-desktop-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/01-dashboard-desktop-chromium.jpg",
      "path": "screenshots/01-dashboard-desktop-chromium.jpg",
      "label": "首页仪表盘 · Mac尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "desktop-chromium",
      "capturedAt": "2026-11-03T13:53:41.274Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/01-dashboard-iphone-size-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/01-dashboard-iphone-size-chromium.jpg",
      "path": "screenshots/01-dashboard-iphone-size-chromium.jpg",
      "label": "首页仪表盘 · iPhone尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "iphone-size-chromium",
      "capturedAt": "2026-11-03T14:02:34.249Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/02-body-trend-desktop-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/02-body-trend-desktop-chromium.jpg",
      "path": "screenshots/02-body-trend-desktop-chromium.jpg",
      "label": "身体数据与趋势 · Mac尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "desktop-chromium",
      "capturedAt": "2026-11-03T13:53:59.585Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/02-body-trend-iphone-size-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/02-body-trend-iphone-size-chromium.jpg",
      "path": "screenshots/02-body-trend-iphone-size-chromium.jpg",
      "label": "身体数据与趋势 · iPhone尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "iphone-size-chromium",
      "capturedAt": "2026-11-03T14:02:51.886Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/03-photo-comparison-desktop-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/03-photo-comparison-desktop-chromium.jpg",
      "path": "screenshots/03-photo-comparison-desktop-chromium.jpg",
      "label": "照片四宫格对比 · Mac尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "desktop-chromium",
      "capturedAt": "2026-11-03T13:54:08.550Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/03-photo-comparison-iphone-size-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/03-photo-comparison-iphone-size-chromium.jpg",
      "path": "screenshots/03-photo-comparison-iphone-size-chromium.jpg",
      "label": "照片四宫格对比 · iPhone尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "iphone-size-chromium",
      "capturedAt": "2026-11-03T14:03:00.436Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/04-camera-fallback-desktop-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/04-camera-fallback-desktop-chromium.jpg",
      "path": "screenshots/04-camera-fallback-desktop-chromium.jpg",
      "label": "相机拒绝与上传降级 · Mac尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "desktop-chromium",
      "capturedAt": "2026-11-03T13:54:16.872Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/04-camera-fallback-iphone-size-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/04-camera-fallback-iphone-size-chromium.jpg",
      "path": "screenshots/04-camera-fallback-iphone-size-chromium.jpg",
      "label": "相机拒绝与上传降级 · iPhone尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "iphone-size-chromium",
      "capturedAt": "2026-11-03T13:56:26.809Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/05-exercise-media-desktop-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/05-exercise-media-desktop-chromium.jpg",
      "path": "screenshots/05-exercise-media-desktop-chromium.jpg",
      "label": "动作照片视频 · Mac尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "desktop-chromium",
      "capturedAt": "2026-11-03T13:54:27.800Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/05-exercise-media-iphone-size-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/05-exercise-media-iphone-size-chromium.jpg",
      "path": "screenshots/05-exercise-media-iphone-size-chromium.jpg",
      "label": "动作照片视频 · iPhone尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "iphone-size-chromium",
      "capturedAt": "2026-11-03T13:56:39.507Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/06-plans-desktop-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/06-plans-desktop-chromium.jpg",
      "path": "screenshots/06-plans-desktop-chromium.jpg",
      "label": "训练计划 · Mac尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "desktop-chromium",
      "capturedAt": "2026-11-03T13:54:36.722Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/06-plans-iphone-size-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/06-plans-iphone-size-chromium.jpg",
      "path": "screenshots/06-plans-iphone-size-chromium.jpg",
      "label": "训练计划 · iPhone尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "iphone-size-chromium",
      "capturedAt": "2026-11-03T13:56:53.893Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/07-workout-desktop-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/07-workout-desktop-chromium.jpg",
      "path": "screenshots/07-workout-desktop-chromium.jpg",
      "label": "实际训练历史 · Mac尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "desktop-chromium",
      "capturedAt": "2026-11-03T13:54:55.493Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/07-workout-iphone-size-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/07-workout-iphone-size-chromium.jpg",
      "path": "screenshots/07-workout-iphone-size-chromium.jpg",
      "label": "实际训练历史 · iPhone尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "iphone-size-chromium",
      "capturedAt": "2026-11-03T13:57:09.180Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/08-strength-progress-desktop-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/08-strength-progress-desktop-chromium.jpg",
      "path": "screenshots/08-strength-progress-desktop-chromium.jpg",
      "label": "力量进步分析 · Mac尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "desktop-chromium",
      "capturedAt": "2026-11-03T13:55:18.575Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/08-strength-progress-iphone-size-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/08-strength-progress-iphone-size-chromium.jpg",
      "path": "screenshots/08-strength-progress-iphone-size-chromium.jpg",
      "label": "力量进步分析 · iPhone尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "iphone-size-chromium",
      "capturedAt": "2026-11-03T13:57:28.778Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/09-member-list-desktop-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/09-member-list-desktop-chromium.jpg",
      "path": "screenshots/09-member-list-desktop-chromium.jpg",
      "label": "会员列表 · Mac尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "desktop-chromium",
      "capturedAt": "2026-11-03T13:52:32.344Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/09-member-list-iphone-size-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/09-member-list-iphone-size-chromium.jpg",
      "path": "screenshots/09-member-list-iphone-size-chromium.jpg",
      "label": "会员列表 · iPhone尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "iphone-size-chromium",
      "capturedAt": "2026-11-03T14:02:11.560Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/10-member-detail-desktop-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/10-member-detail-desktop-chromium.jpg",
      "path": "screenshots/10-member-detail-desktop-chromium.jpg",
      "label": "会员详情 · Mac尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "desktop-chromium",
      "capturedAt": "2026-11-03T13:52:32.390Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/10-member-detail-iphone-size-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/10-member-detail-iphone-size-chromium.jpg",
      "path": "screenshots/10-member-detail-iphone-size-chromium.jpg",
      "label": "会员详情 · iPhone尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "iphone-size-chromium",
      "capturedAt": "2026-11-03T14:02:11.593Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/11-photo-slider-desktop-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/11-photo-slider-desktop-chromium.jpg",
      "path": "screenshots/11-photo-slider-desktop-chromium.jpg",
      "label": "照片滑动对比 · Mac尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "desktop-chromium",
      "capturedAt": "2026-11-03T13:54:08.466Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/11-photo-slider-iphone-size-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/11-photo-slider-iphone-size-chromium.jpg",
      "path": "screenshots/11-photo-slider-iphone-size-chromium.jpg",
      "label": "照片滑动对比 · iPhone尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "iphone-size-chromium",
      "capturedAt": "2026-11-03T14:03:00.319Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/12-static-report-desktop-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/12-static-report-desktop-chromium.jpg",
      "path": "screenshots/12-static-report-desktop-chromium.jpg",
      "label": "禁用JavaScript的静态报告 · Mac尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "desktop-chromium",
      "capturedAt": "2026-11-03T14:00:03.055Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    },
    {
      "url": "/qa/screenshots/12-static-report-iphone-size-chromium.jpg",
      "absoluteUrl": "https://fittrack-pro-demo-qa.pages.dev/qa/screenshots/12-static-report-iphone-size-chromium.jpg",
      "path": "screenshots/12-static-report-iphone-size-chromium.jpg",
      "label": "禁用JavaScript的静态报告 · iPhone尺寸模拟",
      "provenance": "actual_playwright_screenshot",
      "device": "iphone-size-chromium",
      "capturedAt": "2026-11-03T14:02:14.529Z",
      "sourceOrigin": "https://fittrack-pro-demo-qa.pages.dev"
    }
  ],
  "pageLinks": [
    [
      "静态首页",
      "/"
    ],
    [
      "首页仪表盘",
      "/demo"
    ],
    [
      "会员列表",
      "/demo#/members"
    ],
    [
      "会员详情",
      "/demo#/members/d3a00000-0000-4000-8000-000000000001/overview"
    ],
    [
      "身体测量与趋势",
      "/demo#/members/d3a00000-0000-4000-8000-000000000001/body"
    ],
    [
      "照片对比",
      "/demo#/members/d3a00000-0000-4000-8000-000000000001/photos"
    ],
    [
      "训练计划",
      "/demo#/members/d3a00000-0000-4000-8000-000000000001/plans"
    ],
    [
      "训练历史",
      "/demo#/members/d3a00000-0000-4000-8000-000000000001/sessions"
    ],
    [
      "力量分析",
      "/demo#/members/d3a00000-0000-4000-8000-000000000001/analysis"
    ],
    [
      "动作库",
      "/demo#/training"
    ],
    [
      "备份恢复",
      "/demo#/backup"
    ]
  ],
  "previousOriginVerification": {
    "status": "verified_same_application_sources",
    "verifiedSourceCommit": "4aa81856546397914d2d5a1beaefc936efe91cea",
    "publicationSourceCommit": "7eb094d9cc1ffd34563e9f1773492bab71418654",
    "verifiedAt": "2026-11-03T08:07:28.074Z",
    "deployedAt": "2026-11-03T08:06:18.865688+00:00",
    "httpStatus": 200,
    "note": "仅在Git确认应用与静态入口输入一致时沿用回执；最终发布核查回执另行保存。"
  },
  "historicalOnlineBrowserVerification": {
    "testedSourceCommit": "4aa81856546397914d2d5a1beaefc936efe91cea",
    "target": "https://fittrack-pro-demo-qa-1103.wd512429717.chatgpt.site",
    "passed": 34,
    "failed": 0,
    "skipped": 0,
    "startedAt": "2026-11-03T08:07:03.488Z",
    "completedAt": "2026-11-03T08:16:18.153Z",
    "workers": 1,
    "retries": 0,
    "priorParallelRun": null
  },
  "evidenceProvenance": {
    "applicationBuildCommit": "7eb094d9cc1ffd34563e9f1773492bab71418654",
    "unitTestSourceCommit": "4aa81856546397914d2d5a1beaefc936efe91cea",
    "browserTarget": "https://fittrack-pro-demo-qa.pages.dev",
    "note": "152项单元测试来源4aa818与应用构建7eb094的业务源代码一致（已检查Git差异）；本次只更新QA和托管证据。"
  },
  "executionHistory": [
    {
      "label": "Cloudflare首轮完整检查",
      "target": "https://fittrack-pro-demo-qa.pages.dev",
      "startedAt": "2026-11-03T13:52:22.662Z",
      "durationMs": 426500.677,
      "passed": 22,
      "failed": 12,
      "skipped": 0,
      "workers": 1,
      "automaticRetries": 0
    },
    {
      "label": "仅复测首轮失败项目",
      "target": "https://fittrack-pro-demo-qa.pages.dev",
      "startedAt": "2026-11-03T13:59:57.014Z",
      "durationMs": 183489.21800000002,
      "passed": 12,
      "failed": 0,
      "skipped": 0,
      "workers": 1,
      "automaticRetries": 0
    }
  ],
  "externalTextFetch": {
    "status": "failed",
    "checkedAt": "2026-11-03T14:09:22.678Z",
    "passed": 0,
    "failed": 3,
    "paths": [
      "/",
      "/qa/report.json",
      "/qa/report.html"
    ],
    "reason": "当前文本抓取工具返回不可访问；匿名HTTP、GPTBot标识请求及浏览器可读取，原因未确定。",
    "alternativeEvidence": "下载静态验收资料，或使用具备浏览器能力的工具。"
  }
}