视觉按最新原型,业务按已确认PRD。现有代码为满足设计而改造。执行见按设计实施与任务卡;当前代码与验证范围见消费者功能页。
Web 邀请页独立复审
本页目录
验证范围P2-01:畸形成功数据可显示虚假已到账(已关闭)P2-02:新规则覆盖旧承诺的页面说明(已关闭)P3-01:语言事件与迟到响应使新按钮保持禁用(已关闭)P3-02:短集条件与比例文案不精确(已关闭)其他接入边界上线界限复审日期:2026-10-03。本复审员不是本轮 Web 邀请接入作者,只读业务代码,以实际模块和隔离浏览器故障替身复验;业务修复由主 Agent 完成。
结论:本轮发现的 2 项 P2、2 项 P3 均已修复并完成限定范围复验,没有发现尚未关闭的 P1/P2。邀请页能区分请求失败与真实已绑定/申诉记录,旧活动关闭后仍保留原承诺规则。此结论限于 Web 接入,不表示真实视频观看自动发奖、生产审核与 worker 已完成。
验证范围
阅读 internal/webui/consumer-referral-api.js、consumer-referrals.js、邀请 API 测试、consumer-auth-api.js、consumer-auth.js、consumer-shell.js、index.html 与邀请页样式,交叉核对实际邀请领域 DTO。
- 独立重跑 Node 9/9:邀请 API 4 项,既有邮箱认证 API 5 项。没有把主 Agent 的全量测试或真实联合测试计入本轮独立数量。
- 独立 VM 使用实际邀请 API 源码复现异常 DTO;原两个错误接受结果均由
true变为false。 - Playwright 在独立 Chrome 会话与随机本机端口加载实际 Web 邀请模块/API 模块,检查绑定响应丢失、申诉响应丢失、语言事件与迟到响应、关闭活动旧快照、新旧规则差异、短集比例及最新 401 登录入口。替身身份和 HTTP 返回按真实 DTO 形状提供,没有连接生产账号或发奖。
- 本次浏览器替身不包含完整生产导航、Better Auth/Go/PG 链路。账号生命周期主要按实际代码读审,完整链路由主 Agent另行验证。本报告不将主 Agent 的 21 项联合测试声称为本复审员的独立测试。
复现与日志保存在 work/existing-project/web-referral-*;本轮未修改业务源码、未发送外部邮件、未访问真实上游媒体。
P2-01:畸形成功数据可显示虚假已到账(已关闭)
修复前,实际 validReferralSummary 接受 state=rewarded、qualifiedEpisodes=0、奖励 999999 的关系,同时缺少活动 ID、规则版本、绑定时间、奖励 TTL 与审核超时字段。关系宣称门槛 1 集、奖励 999999 集,但快照实际为门槛 2 集、奖励 3 集。规则校验也接受日上限 100000、月上限 1、余额上限 1 的不可达组合。
影响是客户端把损坏或不匹配的 200 DTO 当成真实到账信息;这不代表客户端能够改变服务端账本或自行发奖。
主 Agent 修复后,对关系身份、活动版本、时间/申诉字段、快照一致性、达标状态最低证据数量和成熟领域数值边界逐项校验。仍允许合格集数超过门槛、拒绝关系保有已产生证据,以及统计总数大于截断列表长度,避免误拒真实后台记录。
独立复验:原畸形关系与不可能规则均拒绝;新增实际形状、超过门槛、截断列表正例通过。HTTP 200 不再单凭 status=bound 或 qualified=true 成为成功。
P2-02:新规则覆盖旧承诺的页面说明(已关闭)
原页面只说明当前活动规则,关系记录仅列合格数量和奖励。用户已按旧活动绑定后,后台调整规则会让页面说明变成新门槛;关闭活动则完全隐藏规则说明。用户无法从自己的记录确认原有效观看时限、每集时长、倍速、奖励有效期与截止时间。这属于实际可达的产品规则误导,不是服务端奖励快照被修改。
主 Agent 为每条关系增加原生折叠“规则详情”,直接使用该关系的 rules 与 windowEndsAt,当前活动有旧绑定时标为“新邀请规则”。关闭活动也保留已有关系详情。
独立 Chrome 验证:当前活动为 48 小时、2 集、奖励 3 集、7 天有效;旧关系仍显示原 1 小时、1 集、奖励 4 集、5 天有效、每集 3 秒、最高 1 倍及原截止时间。关闭活动后同一旧详情仍可展开,网络记录仅读取 summary,没有请求新邀请码。原因 qualification_not_met 也有简短对应文案。
P3-01:语言事件与迟到响应使新按钮保持禁用(已关闭)
原实现对旧按钮设置 busy;语言重渲染替换 DOM 后,迟到的绑定响应只启用已脱离页面的旧按钮。独立 Chrome 延迟响应复现:页面已显示同设备不可获奖,但新复制、确认和刷新按钮均保持 disabled。
**可达性限制:**本次通过宿主语言事件注入复现。当前原生邀请 dialog 打开时,外部语言工具栏处于 inert,普通用户不能直接点击该工具栏触发此时序。因此按 P3 记录语言事件契约问题,不宣称当前常规用户路径存在 P2 阻塞。
主 Agent 改为 busy 状态更新当前内容内按钮;迟到响应须同时匹配 owner、generation 与仍打开的 dialog。独立重跑相同时序,迟到的 same_device 响应到达后,新按钮均恢复可用。剪贴板回调同样检查当前身份、代际及节点连接,读审确认不会向已关闭或更换账号的页面写入旧提示。
P3-02:短集条件与比例文案不精确(已关闭)
原简化文案未说明短集判定及前台时长取整;百分比直接整数取整会把后台 0.904 显示成 90%。
修复后的详情明确:普通集达到最小有效前台时长;若集长除以规则最高倍速小于该时长,则覆盖规则比例内容,并达到对应部分时长除以最高倍速、向上取整到秒的前台时长;离线观看不计。最高允许倍速仍按该关系规则显示。
独立 Chrome 验证旧快照比例 0.904 显示 90.4%,而不是 90%;当前实现保留到六位小数。本轮验证特定规则输入和文案,不扩展为媒体可信证明算法验收。
其他接入边界
| 检查 | 限定范围证据 |
|---|---|
| 绑定未知结果 | HTTP 替身先持久化 observed 关系再断开响应。页面提示暂不可用,不宣称已绑定;手动刷新成功 GET summary 后显示真实记录。一次 bind POST,没有自动换码或自造 pending 归属协议。 |
| 申诉未知结果 | 替身先保存 open 申诉再断开响应。页面不凭失败响应显示提交成功;刷新 summary 后显示“申诉处理中”,不再提供重复提交按钮。 |
| 规则与状态 | 七个展示状态取自实际领域状态:待有效观看、核对中、待审核、复核中、待到账、已到账、未通过。数字和规则取后端 DTO;没有客户端 qualified 或 credit 操作。 |
| 活动切换 | enabled 活动的 code 与 summary 必须相同 campaignId/版本;不匹配按失败处理。关闭活动继续读取旧关系,不能新建邀请码。 |
| 账号切换及关闭 | 读审确认所有绑定、申诉和加载响应检查 owner/generation/dialog;关闭或身份变化递增代际并 abort,身份变化关闭邀请 dialog。未把这一源码检查描述为真实多账号浏览器联合验证。 |
| 登录失效 | 主 Agent 最新统一失败处理增加 401/login_required 登录入口。独立 Chrome 先显示旧私人邀请记录,再让刷新返回 401:旧记录、邀请码和可写输入被清除;点击登录按钮关闭邀请 dialog,并调用既有 auth.open 恰好一次。绑定/申诉使用同一处理函数由源码核对;account_terminal 有既有停用文案。 |
| 注册 URL | 实际邮箱 OTP 提交只增加当前 URL 中合法的 24 字符随机邀请码。客户端不传邀请人/用户身份、资格或奖励;注册归因与重登录不重新归因由成熟认证 hook 和领域校验负责。 |
| 下载引导 | 邀请页只使用 consumer shell 已配置的发布 URL;空配置本次 Chrome 没有下载链接。shell 过滤无效/含凭据/本机/非 HTTPS 等 URL;不生成占位下载地址。并未实际访问应用商店或验证外部链接已发布。 |
| 导航与资源 | 只读确认新 dialog 位于既有 navigation 脚本之前,供原扫描器登记。主 Agent 另修 logo PNG embedding 和资产测试;本复审替身没有 logo,故未将其作为独立视觉验证结果。 |
上线界限
本轮接通的是消费者查看邀请、取码、绑定与申诉入口。真实源签名/交付证明、收件水位适配器、生产 worker、管理员审核/结案流程仍应按领域报告中的后续阶段验收。活动默认关闭,页面不能以可见邀请记录代替实际观看自动发奖能力。未进行生产吞吐、真实邮件投递或应用下载验收。