# QMox dev 现状 H5 · 覆盖清单

基准 `f079dcc951be0d098a27aae4239096468107e4f3`。共 207 组交互覆盖项。

`[x] H5 已映射` 表示该项在交互基线中有表示，包括明确标注的模拟、占位和源码空回调；不代表该项全部分支已经浏览器验收。自动渲染检查验证页面可生成及链接、动作、资源完整性，不等于端到端行为覆盖。本轮实际点击链路单独记录在 `evidence/interaction-browser-receipt.json`；初次交付记录保留在 `evidence/browser-receipt.json`。

负责人：Codex；交付日期：2026-10-23；状态：交互基线与映射完成，真实 App 视觉/系统集成验收待进行；产品验收负责人和日期待指定。

## 全局验收口径

- [x] 66 个源码页面文件有对应实现、来源索引或未接入说明。
- [x] 当前四个主 Tab 与认证、家庭、设备、内容、成长、订阅、设置和支持入口纳入清单。
- [x] 数据身份、地区平台、权限、订单、空态、失败、持续加载可切换。
- [x] 当前源码的 TODO、注释功能和未调用区域单独说明。
- [x] 独立静态运行；业务源码未改动；真实网络请求被 CSP 禁止。
- [ ] 与运行中的同提交 Flutter App 逐页核对字号、间距、溢出、动画和系统返回。
- [ ] 真机验证支付 SDK、摄像头、相册、推送权限、系统分享、音频和账户后端。
- [ ] 使用脱敏的真实接口响应确认套餐、徽章、物种、等级等动态数据排列。
- [ ] 七种语言的组合文案和平台字体逐项验收。

这些待验项是验证边界，不是当前代码已实现功能的自动扩展。后续新增需求应在独立副本/分支上迭代，保留本基线。

## 检查邮箱 — `check-email`

源码：`lib/pages/auth/check_email_page.dart`

- [x] H5 已映射：重置邮件提示、重新发送和冷却
- [x] H5 已映射：返回登录；本页作为路由组件预览

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 重置密码 — `forgot-password`

源码：`lib/pages/auth/forgot_password_page.dart`

- [x] H5 已映射：手机号／邮箱切换与获取验证码
- [x] H5 已映射：新密码与确认密码校验
- [x] H5 已映射：成功返回登录；错误时保留表单

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 登录 — `login`

源码：`lib/pages/auth/login_page.dart`

- [x] H5 已映射：国内手机号／邮箱、密码／短信验证码切换
- [x] H5 已映射：账号格式、密码长度、协议勾选和验证码校验
- [x] H5 已映射：记住账号演示；登录成功与初始化分流
- [x] H5 已映射：第三方已关联／待绑定手机的模拟返回
- [x] H5 已映射：FAQ、账号服务地区切换、登录失效

浏览器验收：login-draft：切换验证码/密码、进入协议再返回后，账号、密码输入与协议勾选保持

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 欢迎首页 — `onboarding`

源码：`lib/pages/auth/onboarding_page.dart`

- [x] H5 已映射：登录与注册入口
- [x] H5 已映射：隐藏内部环境入口仅展示说明，不复现内部密码

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：内部环境切换为源码已有隐藏入口，在原型中以说明代替。不复制服务配置或内部口令。

## 注册 — `register`

源码：`lib/pages/auth/register_page.dart`

- [x] H5 已映射：国内手机号／邮箱；国际邮箱
- [x] H5 已映射：密码确认、短信码、协议勾选校验
- [x] H5 已映射：注册成功进入 welcome；地区切换
- [x] H5 已映射：接口失败不写入模拟账户

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 第三方登录绑定手机 — `social-bind-phone`

源码：`lib/pages/auth/social_bind_phone_page.dart`

- [x] H5 已映射：手机号、验证码校验
- [x] H5 已映射：验证并绑定后进入欢迎／主页面
- [x] H5 已映射：第三方身份与授权均模拟

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 启动页 — `splash`

源码：`lib/pages/auth/splash_page.dart`

- [x] H5 已映射：冷启动与隐私协议选择
- [x] H5 已映射：未登录进入欢迎首页；登录后按家庭状态分流
- [x] H5 已映射：初始化失败；登录失效；版本检查为模拟

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：真实启动动画和时序用“进入”控制演示；初始化、登录和家庭分流仍可走流程。

## 注册成功选择 — `welcome`

源码：`lib/pages/auth/welcome_page.dart`

- [x] H5 已映射：连接我的设备
- [x] H5 已映射：扫描邀请码加入家庭

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 初始化失败 — `init-error`

源码：`lib/pages/common/init_error_page.dart`

- [x] H5 已映射：初始化失败提示
- [x] H5 已映射：重试与返回登录

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 设置恢复 — `setup-recovery`

源码：`lib/pages/common/setup_recovery_page.dart`

- [x] H5 已映射：无孩子无设备／有设备无孩子／有孩子无设备／未关联／已完成
- [x] H5 已映射：全家庭存在任意孩子时允许主页面
- [x] H5 已映射：绑定、添加、关联、加入家庭入口
- [x] H5 已映射：切换账户；删除账户前置校验与两次确认

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：是否进主页面以所有家庭是否存在孩子判断，不要求已绑设备；同时保留当前家庭的五种恢复状态。

## 内嵌网页 — `web-view`

源码：`lib/pages/common/web_view_page.dart`

- [x] H5 已映射：标题、返回、外部内容容器
- [x] H5 已映射：不抓取或伪造现行协议；外部正文占位
- [x] H5 已映射：模拟网页失败与重试

浏览器验收：login-draft：切换验证码/密码、进入协议再返回后，账号、密码输入与协议勾选保持

边界：协议正文属于外部服务，未复制旧版协议或生成伪正文；仅还原容器、标题、返回和失败反馈。

## 引导添加孩子 — `child-info`

源码：`lib/pages/guide/child_add_page.dart`

- [x] H5 已映射：设备卡片、步骤2/2、孩子姓名生日性别
- [x] H5 已映射：必填、未来生日、头像格式反馈
- [x] H5 已映射：保存后关联设备并进入设置完成

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 引导连接设备 — `add-guide`

源码：`lib/pages/guide/device_connect_page.dart`

- [x] H5 已映射：引导扫码、相机权限、缩放、连接帮助
- [x] H5 已映射：有效／下载App二维码／格式无效／缺SN／已绑定／地区不匹配
- [x] H5 已映射：绑定后添加孩子；外设响应模拟

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 连接帮助 — `help-connect`

源码：`lib/pages/guide/help_connect_page.dart`

- [x] H5 已映射：连接排查步骤
- [x] H5 已映射：6位激活码校验与配对
- [x] H5 已映射：返回扫码与在线客服

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 设置完成 — `setup-complete`

源码：`lib/pages/guide/setup_complete_page.dart`

- [x] H5 已映射：完成设置与功能介绍
- [x] H5 已映射：开始探索进入主导航

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 奖章 — `badges`

源码：`lib/pages/main/activity/badges_page.dart`

- [x] H5 已映射：等级进度、已获得／未解锁两组展示
- [x] H5 已映射：徽章卡片没有点击回调；不生成弹窗，接口数据模拟

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：源码按已获得和未解锁两组展示；卡片没有点击回调。

## 旧物种详情（未接入） — `legacy-discovery`

源码：`lib/pages/main/activity/discovery_detail_page.dart`

- [x] H5 已映射：同名旧组件保留为源码附录
- [x] H5 已映射：未找到正式调用；不接入现有业务流程

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：旧同名组件未找到调用证据，只保留目录预览。正式物种详情使用 main/me/discovery_detail_page.dart。

## 探索时间线 — `explore`

源码：`lib/pages/main/activity/explore_page.dart`

- [x] H5 已映射：探索时间线／照片视图
- [x] H5 已映射：时间范围与物种详情跳转
- [x] H5 已映射：空状态与加载更多

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 探索者等级 — `explorer-level`

源码：`lib/pages/main/activity/explorer_level_page.dart`

- [x] H5 已映射：等级进度与最近XP
- [x] H5 已映射：等级路径、AI伙伴、获得XP说明页内展开收起
- [x] H5 已映射：等级与奖励数据模拟，不作为业务数值依据

浏览器验收：companions-inline：孩子AI伙伴跳探索者等级，等级路径与AI伙伴可在页内展开收起，无额外弹窗

边界：三个指南为页内展开收起，非弹窗。

## 最近活动 — `recent-activities`

源码：`lib/pages/main/activity/recent_activities_page.dart`

- [x] H5 已映射：全部／发现／作品筛选
- [x] H5 已映射：保留当前源码固定空列表，不补接真实活动接口

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：源码 _loadActivities 只置空列表；筛选器可操作，结果仍为空。

## 活动 — `today`

源码：`lib/pages/main/activity/today_page.dart`

- [x] H5 已映射：活动主导航、孩子切换、统计跳转
- [x] H5 已映射：时间范围、总结、亮点与最近活动
- [x] H5 已映射：无设备提示、无内容提示与绑定入口
- [x] H5 已映射：相册／作品统计使用主导航切换
- [x] H5 已映射：接口内容与统计值为模拟数据

浏览器验收：child-before-scan：多孩子无设备时先选小满，扫码成功后活动页仍为小满，绑定入口消失

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 对话详情 — `chat-detail`

源码：`lib/pages/main/chat/chat_detail_page.dart`

- [x] H5 已映射：关于照片、对话轮次、消息顺序
- [x] H5 已映射：语音播放／暂停状态模拟
- [x] H5 已映射：照片关联跳转；不新增发消息入口

浏览器验收：delete-return：删除示例照片后返回原聊天详情，照片关联卡消失

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 聊天历史 — `chat-history`

源码：`lib/pages/main/chat/chat_history_page.dart`

- [x] H5 已映射：按孩子显示对话列表
- [x] H5 已映射：列表与无对话状态
- [x] H5 已映射：打开对话详情；分页依赖以模拟列表表示

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 在线客服 — `live-chat`

源码：`lib/pages/main/chat/live_chat_page.dart`

- [x] H5 已映射：客服欢迎语与常见问题
- [x] H5 已映射：输入文本添加本地消息
- [x] H5 已映射：保持源码本地列表行为，不伪造真人或AI自动回复

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：源码仅操作本地消息列表。输入后不新增自动回复或模拟客服会话。

## 探索页导航容器 — `main-layout`

源码：`lib/pages/main/main_layout.dart`

- [x] H5 已映射：探索页内嵌底部导航容器
- [x] H5 已映射：组件附录，不新增产品页面

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 主导航容器 — `main-tabs`

源码：`lib/pages/main/main_tab_page.dart`

- [x] H5 已映射：四个Tab容器与切换
- [x] H5 已映射：保留各Tab状态与返回路径
- [x] H5 已映射：别名/main/today、chat-history、photos、me均指向/main；原始别名行为单列说明

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：/main/today、/main/chat-history、/main/photos、/main/me 均重定向 /main。未传 initialIndex 时为活动页；实际 Tab 操作使用索引切换。

## 关于我们 — `about`

源码：`lib/pages/main/me/about_page.dart`

- [x] H5 已映射：应用版本1.2.0+47、历史、协议
- [x] H5 已映射：已最新／发现新版本／审核中模拟
- [x] H5 已映射：应用商店跳转模拟

浏览器验收：about-privacy-delete：关于的隐私政策进入隐私与数据；删除入口提示先移除孩子/设备

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 添加孩子 — `add-child`

源码：`lib/pages/main/me/add_child_page.dart`

- [x] H5 已映射：姓名生日性别、头像选择
- [x] H5 已映射：查看者限制、未来日期及必填校验
- [x] H5 已映射：普通添加后进入关联设备
- [x] H5 已映射：从扫码路径进入时保持后续绑定上下文

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 添加设备 — `add-device`

源码：`lib/pages/main/me/add_device_page.dart`

- [x] H5 已映射：扫码、缩放、权限拒绝与重试
- [x] H5 已映射：二维码类型、跨区、绑定拒绝模拟
- [x] H5 已映射：绑定后与所选孩子关联

浏览器验收：child-before-scan：多孩子无设备时先选小满，扫码成功后活动页仍为小满，绑定入口消失

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 修改密码 — `change-password`

源码：`lib/pages/main/me/change_password_page.dart`

- [x] H5 已映射：当前密码按账户状态显示
- [x] H5 已映射：新密码与确认密码校验
- [x] H5 已映射：忘记密码入口；成功返回，不保存真实密码

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 孩子详情 — `child-detail`

源码：`lib/pages/main/me/child_detail_page.dart`

- [x] H5 已映射：资料、年龄性别、等级与统计
- [x] H5 已映射：编辑、徽章、图鉴、亮点和设备跳转
- [x] H5 已映射：AI伙伴跳探索者等级；无孩子状态

浏览器验收：companions-inline：孩子AI伙伴跳探索者等级，等级路径与AI伙伴可在页内展开收起，无额外弹窗

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 设备设置 — `guide-settings`

源码：`lib/pages/main/me/device_settings_page.dart`

- [x] H5 已映射：设备信息、在线离线、电量存储网络
- [x] H5 已映射：每日时长开关与15–120分钟滑动
- [x] H5 已映射：草稿与保存；失败不写入已保存设置
- [x] H5 已映射：更换孩子与解绑；户主限制、验证码、输入删除设备
- [x] H5 已映射：源码注释掉的AI对话／创意工坊／地图任务开关不显示

浏览器验收：device-relink：设备时长保存、更换关联孩子后返回刷新。

边界：AI 对话、创意工坊、地图任务开关在源码中被注释，H5 不显示。硬件信息和保存响应是示例。

## 物种详情 — `discovery-detail`

源码：`lib/pages/main/me/discovery_detail_page.dart`

- [x] H5 已映射：物种图片、名称、分类、趣味事实
- [x] H5 已映射：首次发现、见过次数、对话轮次
- [x] H5 已映射：物种内容为模拟接口返回

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 编辑孩子资料 — `edit-child-profile`

源码：`lib/pages/main/me/edit_child_profile_page.dart`

- [x] H5 已映射：资料修改与保存反馈
- [x] H5 已映射：查看者限制编辑；仅户主可删除
- [x] H5 已映射：绑定设备阻断删除；输入删除加孩子姓名确认
- [x] H5 已映射：删除最后孩子按所有家庭重新判断入口

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 编辑个人资料 — `edit-profile`

源码：`lib/pages/main/me/edit_profile_page.dart`

- [x] H5 已映射：姓名与头像可编辑；有手机号显示只读电话，否则显示只读邮箱
- [x] H5 已映射：邮箱验证入口及状态
- [x] H5 已映射：有修改才可保存；成功返回并同步跨页资料

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：手机号和邮箱均不可编辑；有手机号仅显示电话，否则显示邮箱及验证状态。仅昵称/头像可改，有修改才允许保存。

## 验证邮箱 — `email-verification`

源码：`lib/pages/main/me/email_verification_page.dart`

- [x] H5 已映射：只读当前邮箱、6位验证码、60秒发送冷却
- [x] H5 已映射：验证成功同步资料页；错误码反馈

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 数据报告预览 — `export-preview`

源码：`lib/pages/main/me/export_preview_page.dart`

- [x] H5 已映射：切换家庭、报告统计、设备信息
- [x] H5 已映射：刷新与空状态
- [x] H5 已映射：导出／分享系统面板模拟；可下载示例SVG报告
- [x] H5 已映射：只展示统计摘要，不把私有原始记录放入原型

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：原生图片导出和分享用模拟窗口表示；H5 可下载示例 SVG 统计摘要。该 SVG 不是 App 实际导出格式。

## 家庭成员 — `family-members`

源码：`lib/pages/main/me/family_members_page.dart`

- [x] H5 已映射：所有者、成员与查看者显示
- [x] H5 已映射：户主移除成员；非户主退出家庭
- [x] H5 已映射：邀请入口；无孩子无设备阻断
- [x] H5 已映射：待处理邀请当前固定为空；不补实现重发

浏览器验收：invite-step-back：第二步返回仍停留邀请页，显示第一步选择孩子 invite-done：生成邀请后完成返回家庭成员，待处理邀请仍保留源码空态并显式标注

边界：待处理邀请在当前页面加载逻辑中固定为空；重发为 TODO。生成演示邀请不改变这一展示。

## 图鉴 — `field-guide`

源码：`lib/pages/main/me/field_guide_page.dart`

- [x] H5 已映射：物种总数与分类入口
- [x] H5 已映射：分类统计与空状态

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 帮助文章 — `help-article`

源码：`lib/pages/main/me/help_article_page.dart`

- [x] H5 已映射：额外参数驱动的文章展示模板
- [x] H5 已映射：Chat with us及相关文章保留TODO空回调
- [x] H5 已映射：无帮助中心跳入路径；目录组件预览使用示例文章

浏览器验收：todo-feedback：帮助文章顶部显示独立TODO评审标注，点击Chat with us说明源码未实现，不跳在线客服

边界：页面存在，但帮助中心当前不跳入此页；Chat with us 和相关文章为 TODO 空回调。目录展示示例文章参数。

## 帮助与支持 — `help-support`

源码：`lib/pages/main/me/help_support_page.dart`

- [x] H5 已映射：搜索、分组和暂无结果
- [x] H5 已映射：分类与查看全部文章按源码跳在线客服
- [x] H5 已映射：邮件支持显示support@qmox.com
- [x] H5 已映射：投诉举报与复制邮箱

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：分类和“查看全部文章”实际跳在线客服。邮件按钮仅显示邮箱，不发送邮件。

## 邀请成员 — `invite-member`

源码：`lib/pages/main/me/invite_member_page.dart`

- [x] H5 已映射：户主和成员可邀请，查看者被阻止
- [x] H5 已映射：孩子选择、设备选择、权限、生成邀请三步
- [x] H5 已映射：默认选中首个孩子和首台设备
- [x] H5 已映射：邀请摘要、示例二维码、复制邀请码、完成

浏览器验收：invite-step-back：第二步返回仍停留邀请页，显示第一步选择孩子 invite-done：生成邀请后完成返回家庭成员，待处理邀请仍保留源码空态并显式标注

边界：role 0/1 可邀请，role 2 被阻止。默认首个孩子和首台设备；设备步骤显示所有设备，未额外按孩子过滤。

## 加入家庭 — `join-family`

源码：`lib/pages/main/me/join_family_page.dart`

- [x] H5 已映射：扫码权限与缩放
- [x] H5 已映射：手动邀请码输入（最大10字符）与加入按钮
- [x] H5 已映射：空码／无效／过期模拟
- [x] H5 已映射：加入后刷新家庭上下文并判断恢复页
- [x] H5 已映射：手动输入标题为空回调；H5只给评审说明，不增加产品跳转

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：“手动输入代码 →”标题是空回调；下方输入框和加入按钮有效。二维码是不可扫码的占位。

## 语言 — `language-settings`

源码：`lib/pages/main/me/language_settings_page.dart`

- [x] H5 已映射：源码七种语言选择与保存
- [x] H5 已映射：静态文案使用仓库语言表；示例动态内容不作为翻译验收

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：七份语言表取自源码；H5 按匹配的静态文案翻译。组合文案、演示内容和跨平台布局仍需逐语言验收。

## 关联孩子 — `link-to-child`

源码：`lib/pages/main/me/link_to_child_page.dart`

- [x] H5 已映射：现有孩子选择与新建孩子入口
- [x] H5 已映射：更换关联与添加设备前选择孩子两种上下文
- [x] H5 已映射：已有设备完成后更新关联并返回；新绑定流程完成后进入扫码

浏览器验收：device-relink：设备时长保存、更换关联孩子后返回刷新。 child-before-scan：多孩子无设备时先选小满，扫码成功后活动页仍为小满，绑定入口消失

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 关联设备 — `link-to-device`

源码：`lib/pages/main/me/link_to_device_page.dart`

- [x] H5 已映射：设备选择与当前关联信息
- [x] H5 已映射：添加新设备、完成关联、暂时跳过
- [x] H5 已映射：未选择设备提示

浏览器验收：link-device-disabled：未选择设备完成按钮禁用，选择设备后启用

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 我的 — `me`

源码：`lib/pages/main/me/me_page.dart`

- [x] H5 已映射：资料、家庭切换、成员、孩子和设备
- [x] H5 已映射：国内订阅开关与设置入口
- [x] H5 已映射：添加孩子／按孩子数量选择设备绑定入口
- [x] H5 已映射：地区切换与退出登录确认

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 消息中心 — `notifications-center`

源码：`lib/pages/main/me/notifications_center_page.dart`

- [x] H5 已映射：全部／未读筛选、全部已读
- [x] H5 已映射：notice进入自动已读；内容消息点击已读
- [x] H5 已映射：当前家庭访问限制与目标详情跳转
- [x] H5 已映射：系统消息正文为模拟数据

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 通知设置 — `notifications`

源码：`lib/pages/main/me/notifications_page.dart`

- [x] H5 已映射：设备、分享、发现、更新七类开关
- [x] H5 已映射：系统通知权限拒绝与引导设置
- [x] H5 已映射：保存与失败；没有自动添加保存按钮

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：系统拒绝通知授权时会关闭七类通知开关；隐私备份开关不受此规则影响。系统设置界面不在 H5 中复制。

## 隐私与数据 — `privacy-data`

源码：`lib/pages/main/me/privacy_data_page.dart`

- [x] H5 已映射：照片自动备份、聊天备份开关
- [x] H5 已映射：下载数据、协议页面
- [x] H5 已映射：账户删除前置检查、验证码及输入确认

浏览器验收：about-privacy-delete：关于的隐私政策进入隐私与数据；删除入口提示先移除孩子/设备

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 安全 — `security`

源码：`lib/pages/main/me/security_page.dart`

- [x] H5 已映射：有密码／无密码对应修改／设置
- [x] H5 已映射：微信／Apple绑定、解绑与保留登录方式限制
- [x] H5 已映射：删除账户入口
- [x] H5 已映射：未被build调用的活跃会话区域不显示

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：活跃会话区域的方法未被 build 调用，H5 不显示。第三方绑定面板使用模拟返回。

## 物种分类 — `species-category`

源码：`lib/pages/main/me/species_category_page.dart`

- [x] H5 已映射：按分类展示物种
- [x] H5 已映射：物种详情跳转与空状态

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 订阅结算 — `subscription-checkout`

源码：`lib/pages/main/me/subscription_checkout_page.dart`

- [x] H5 已映射：月／季／年接口示例套餐
- [x] H5 已映射：设备选择最多5台、过滤已付费有效设备
- [x] H5 已映射：查看者限制、重复下单检查
- [x] H5 已映射：国内微信支付宝／海外iOS Apple／Android Google
- [x] H5 已映射：成功／失败／取消／确认超时／取消但后端已生效
- [x] H5 已映射：合计与权益说明；价格不是当前真实报价

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：支付 SDK 和后端激活状态分别模拟；只有确认生效才开放权益。不是可付款页面。

## 设备订阅详情 — `subscription-device`

源码：`lib/pages/main/me/subscription_device_detail_page.dart`

- [x] H5 已映射：状态、套餐、有效期、自动续费、能力可用性
- [x] H5 已映射：有效订阅禁用购买；可订阅设备去结算
- [x] H5 已映射：源码有路由但未找到内部跳入入口，保留评审目录预览

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：已声明路由，未找到业务页内部跳入入口；保留目录预览。

## 订阅历史 — `subscription-history`

源码：`lib/pages/main/me/subscription_history_page.dart`

- [x] H5 已映射：待支付／待确认／确认失败／生效／关闭／退款
- [x] H5 已映射：待支付继续支付；确认中同步状态
- [x] H5 已映射：有效订阅防重复支付；订单详情

浏览器验收：repay-history：待支付历史订单完成模拟支付后仍停留历史，状态更新已生效

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 订单详情 — `subscription-order-detail`

源码：`lib/pages/main/me/subscription_order_detail_page.dart`

- [x] H5 已映射：订单号、金额、渠道、方式、时间、状态、设备
- [x] H5 已映射：可同步状态订单的同步入口
- [x] H5 已映射：无数据与加载失败

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 订阅管理 — `subscription`

源码：`lib/pages/main/me/subscription_page.dart`

- [x] H5 已映射：按设备展示未开通／体验／已订阅／过期／取消续费
- [x] H5 已映射：国内只读与查看者限制
- [x] H5 已映射：完全重合待支付订单跳历史；部分重合二选一
- [x] H5 已映射：订阅、历史、续费、恢复购买入口；查看者有效订阅可查看只读续费页

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：套餐、价格、权益数据来自接口，H5 值仅供演示。国内入口受开关控制；平台恢复购买仅模拟。

## 自动续费管理 — `subscription-renewal`

源码：`lib/pages/main/me/subscription_renewal_management_page.dart`

- [x] H5 已映射：只列开启自动续费的可访问设备
- [x] H5 已映射：取消后当前已付周期继续可用说明
- [x] H5 已映射：国内及查看者隐藏平台管理入口
- [x] H5 已映射：海外平台取消返回后更新模拟状态

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：只列 autoRenewEnabled 设备；国内与查看者不显示平台管理入口。平台取消不会立即终止已付周期。

## 订阅成功 — `subscription-success`

源码：`lib/pages/main/me/subscription_success_page.dart`

- [x] H5 已映射：设备、套餐、截止日期
- [x] H5 已映射：查看订阅详情与返回首页
- [x] H5 已映射：仅确认激活后进入，不把支付发起当成成功

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 切换家庭 — `switch-family`

源码：`lib/pages/main/me/switch_family_page.dart`

- [x] H5 已映射：所有家庭与角色、数量、当前选中
- [x] H5 已映射：切换后孩子和设备上下文同步
- [x] H5 已映射：切换失败维持原家庭

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 版本详情 — `version-detail`

源码：`lib/pages/main/me/version_detail_page.dart`

- [x] H5 已映射：版本标签、日期与说明
- [x] H5 已映射：无说明与加载失败重试

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 版本历史 — `version-history`

源码：`lib/pages/main/me/version_history_page.dart`

- [x] H5 已映射：版本列表、无历史版本、失败重试
- [x] H5 已映射：版本详情入口；版本列表为示例

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 作品详情 — `artwork-detail`

源码：`lib/pages/main/photos/artwork_detail_page.dart`

- [x] H5 已映射：作品、风格、日期、原始照片跳转
- [x] H5 已映射：删除确认与列表同步
- [x] H5 已映射：保存／分享原生结果模拟

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 相册物种分类 — `category-species`

源码：`lib/pages/main/photos/category_species_page.dart`

- [x] H5 已映射：保留当前源码固定空列表
- [x] H5 已映射：区分 me/species_category 的有效列表实现

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：源码 _loadData 只置空列表。保留空态，不能用另一物种分类页的有效列表替代。

## 照片详情 — `photo-detail`

源码：`lib/pages/main/photos/photo_detail_page.dart`

- [x] H5 已映射：照片、时间地点设备、识别物种
- [x] H5 已映射：对话及关联作品跳转
- [x] H5 已映射：删除确认与删除后列表同步
- [x] H5 已映射：保存／分享原生结果模拟

浏览器验收：delete-return：删除示例照片后返回原聊天详情，照片关联卡消失

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。

## 相册 — `photos`

源码：`lib/pages/main/photos/photos_page.dart`

- [x] H5 已映射：照片／作品切换；孩子切换
- [x] H5 已映射：时间筛选；瀑布流列表与空状态
- [x] H5 已映射：详情与原始照片关系；模拟分页结束

浏览器验收：已在浏览器打开；初始按钮已进行隔离 DOM 事件检查，未逐分支浏览器点击。

边界：接口数据使用可重置的离线样本；源码结构与条件已映射，未做 Flutter 真机逐屏视觉或后端结果等价验收。
