LOCAL_REPAIR_RESULTS_2026-09-14.md 6.2 KB

本地修复结果

日期: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、提交或发布。现有审计文件校验不等同于一次最新依赖漏洞扫描。

原审查记录保留用于追溯;当前修复状态以本文件为准。