# 本地修复结果 日期:2026-09-14。默认保护仍为“初代兼容”。本次只修改和验证本地源码,没有连接、部署或更新服务器,没有迁移生产数据库或改动生产账号。 ## 已修复的账号保护问题 | 问题 | 本次结果 | | --- | --- | | HTTP 与原生 WSS 身份不一致 | 原生 WS 首帧、后续帧和握手头使用共享身份转换;安装 ID 的两种写法同步,session/thread 等别名按同一策略处理。本地真实 WSS 回显已验证 mode1、mode2、legacy。 | | 不同会话复用不兼容连接 | 已启用保护的 device 策略也将会话、线程和会话头纳入 WS 连接池兼容条件。最小兼容和 TLS 对照策略新增回归。 | | 切换策略失败后关闭保护 | 在内存中计算还原及目标策略,最后仅提交一次更新;写入时在数据库行锁下比较账号版本,冲突返回 409。配置更新与调度 outbox 同一事务,失败不发布中间关闭状态。 | | 无标记旧快照覆盖新保护 | 最终保存始终读取锁定后的当前保护字段,取消按旧对象是否含标记决定跳过检查的分支。 | | mode2、批量更新等保护不一致 | 所有已注册策略共享受管字段规则;单账号、JSONB 局部更新和批量更新均保留策略、身份、TLS 与并发限制。真实数据库逐一测试全部可应用策略。 | | 不支持的平台仍能应用专属策略 | 后端在修改前校验平台、类型、影子及代理条件,前端过滤不适用策略。非法模式继续返回明确错误。 | | 预览只显示模板,无法解释实际路径 | 预览新增配置目标、有效传输计划、全局开关/插件覆盖原因和有效并发。没有握手记录时明确标为未观测。兼容读取旧 mode1 v2 的 nodejs24 配置。 | | 智能测试无法还原执行条件 | 每次测试固定一份账号副本,执行快照保存策略/版本、身份、有效 TLS、模板摘要、代理引用、并发、实际模型、账号版本及输入摘要;写入既有 config_snapshot JSONB,不需要新表迁移。普通连通性测试与智能测试均应用已选保护身份。 | 前一轮已修复的默认选择、TLS 完整还原、generic 识别和未知策略拒绝继续保留。存量已开启策略不会因默认值改变而自动换成初代兼容。 ## 其他已处理问题 - 系统更新、回滚、重启增加超级管理员校验,并接入现有二次验证;普通管理员不会进入这些操作。 - 管理员 Key 与订阅的变更在最终数据库写入阶段检查资源所有者和操作者角色,并与角色变更共用事务锁。已验证普通管理员不能修改管理员资源,以及等待期间被降级的操作者不能继续写入。 - 定制发行版构造的更新服务停止访问原版更新源;在线更新和回滚接口返回明确的托管升级要求,避免替换定制程序。后续使用验证过的源码/镜像更新。 - Live 新会话在 handler 与 service 两层被阻止,管理页面禁用新开启入口,能力接口返回不可用,防止继续产生未结算会话。 - 恢复 pnpm 审计豁免检查脚本:无效 JSON/审计失败、缺少详情、过期豁免和未知高危项都无法通过。增加 9 项脚本测试。 - CI 增加专用 PostgreSQL job,配置保护、角色、用户清理和智能测试 DSN;该 job 缺少环境时失败,不再悄悄跳过。前端 CI 改为执行全量测试。 - 修复旧测试的认证 store 初始化、实际翻译断言、供应商数量及 API 契约字段。首页 URL 测试改为验证危险地址的实际处理和渲染。 - TLS 构造器测试验证配置复制隔离;备份进程测试使用跨平台辅助进程,消除 Windows 对 sh 的依赖。 - 补齐 MiniMax 在前端/域模型已声明、但后端遗漏的协议与默认地址分支;账号测试与正常转发使用相同模型别名归一化。Grok 资格测试保留“未证明付费额度就不放行”的行为,没有为通过测试放宽资格判断。 ## 验证结果 | 检查 | 结果 | | --- | --- | | 前端全量测试 | 278 文件、2039 项通过,0 失败 | | 后端全量单元测试 | 19339 个测试/子测试通过,0 失败;26 个按测试条件跳过 | | 独立 PostgreSQL 专项 | 79 个测试/子测试通过,0 失败、0 跳过 | | 后续 WS/保护/权限定向回归 | 686 个测试/子测试通过,0 失败、0 跳过 | | 原专项复现场景 | 原 14 个叶子场景全部通过;包含父测试后报告为 17 个通过 | | 静态及构建检查 | 前端类型检查、全量 ESLint、生产构建通过;后端目标包 go vet、编译通过;Wire 接线重新生成通过 | | 审计脚本与工作流 | 9 项脚本测试通过;现有审计文件校验通过;工作流 YAML 解析通过 | 后端 JSON 汇总位于 `verification/account-protection-review/final-*.json`,保留修改前及中间阶段的失败日志。后续新增连接池隔离检查在定向回归中执行;没有反复扩大与本次变更无关的测试。 数据库验证使用本机新建、仅监听 127.0.0.1:56439 的 PostgreSQL 16.15 实例与合成数据,每个测试使用独立 schema。验证完成后实例已停止,未连接现有数据库。 本地编译产物:后端 `C:/Users/30214/AppData/Local/Temp/sub2-protection-repairs.exe`;前端 `C:/Users/30214/AppData/Local/Temp/sub2-protection-repairs-frontend`。它们是验证产物,没有发布或替换服务器程序。 ## 仍需明确的限制 1. **Live 目前暂停开放。** 未结算消耗入口已封堵,但完整的预占、扣费、异常中断结算和对账尚未实现。本次没有自行设定价格或对任何用户计费。 2. **在线原地更新/回滚目前关闭。** 独立发行渠道没有在本次建立,采用源码/镜像部署流程。 3. 尚未验证真实上游账号、真实支付回调、模型输出质量或服务器运行状态;不能由本地 WSS/数据库测试推断这些已经通过。 4. 没有执行完整的 Docker 集成测试、race 或 golangci-lint;已完成的检查如上。CI 配置已修改,但本次没有触发远程 CI、提交或发布。现有审计文件校验不等同于一次最新依赖漏洞扫描。 原审查记录保留用于追溯;当前修复状态以本文件为准。