# 本地调整结果与后续选项 本轮按“备份留档 → 整体审查 → 本地修复 → 验证”的顺序执行。没有连接或部署远程服务器,没有改写实际业务数据库,也没有调用真实上游账号。 ## 调整前备份 主存档:[完整备份](C:/Users/30214/Desktop/sub2本地/sub2新站-调整前-20260914-213426-complete.tar.gz) 指定目录副本:[桌面 sub2备份 中的副本](C:/Users/30214/Desktop/sub2备份/sub2新站-调整前-20260914-213426-complete.tar.gz) [备份说明与恢复注意事项](C:/Users/30214/Desktop/sub2备份/备份说明-20260914-213426.md) 71,005 个实际文件与 3,162 个链接已逐项回读验证;原始文件共 625,374,688 字节,压缩包 185,027,691 字节。归档包含隐藏文件、源码、已有文档和依赖,内部依赖链接使用相对目标。包内 `BACKUP_MANIFEST.json` 保存逐文件 SHA-256。两份存档在修改前后均核对为同一 SHA-256: `4C7A328E9A265C668451B198D4EF40DFBE66D17C4F3C4B3FDE39BFC5DD20A71A` 这是本地项目文件备份,不包含未读取的服务器数据库。制作过程中未完成的两个临时压缩包已清理,原项目文件没有删除。 ## 本轮已完成 整体审查的原始证据与范围见 [调整前审查](SITE_TUNING_REVIEW_2026-09-14.md)。 1. **429 重试与冷却。** 显式 Retry-After 被识别为等待边界,账号在该时间前不走普通瞬时 429 的立即重试路径;返回给调用方的等待头保留。无明确等待信号的 OAuth 429 重试同时受次数和总时长约束,默认最多三次同账号重试,按逐步延长并加正向随机偏移的间隔执行。不能把上游要求的 90 秒压成 8 秒,也不能为了塞进截止时间而提前请求。 2. **冷却只延长。** 通用 `SetRateLimited` 接入已有的原子“仅延长”写入。并发的短冷却不能覆盖较长冷却;明确的手动恢复入口仍可清除限制。 3. **测试遵守冷却。** 智能测试执行前检查账号限流、过载、临时暂停和所选模型冷却。存在限制时延后排队、显示原因与下次检查时间,不发送上游请求。普通连接测试明确提示稍后重试。共享并发准入继续保留。 4. **成功测试不整体恢复。** 普通连接测试成功后仅报告该次观测,不再清除所有模型或其他请求刚写入的限制。需要恢复时使用已有的手动恢复入口。 5. **排队公平性。** 队列按可执行时间、任务 ID 排序。反复延后的小 ID 任务不会持续压住其他已经在等待的任务;延后写入也校验执行租约是否仍归该 worker 所有。 6. **评分边界修复。** 否定、假设、含糊结论及引用行不再因为出现标准数字就放行;JSON 重复答案键保留全部候选,冲突时需复核。单位规则明确分为“不接受单位”“只接受指定单位”“沿用旧题兼容规则”。 7. **评分版本升级。** 当前规则为 v3,仍属于 B 方案。v2 记录继续显示原判定,可以从详情按新规则重评,原始答复、题目快照和原判定保留。没有自动批量改写历史。 8. **独立完整性控制。** 账号编辑新增关闭、仅观察、严格拦截选项,独立于身份与 TLS。已开启保护的 OpenAI OAuth/Setup Token 默认先观察转换差异;mode1 原有强制检查不能通过普通编辑关闭。选项进入调度缓存与测试执行快照,在已接入的 Responses/WSS 路径执行检查,日志不记录请求正文、凭据或对话内容。 9. **统计诚实性与 CI。** 未实现的分组 stats 接口不再伪装成功返回全部零值,改为明确的 `501 / GROUP_STATS_UNAVAILABLE`;现有分组用量汇总接口仍可使用。数据库专项 CI 纳入 ProtectedProxy、RateLimitObservation 等新增测试前缀。 默认身份策略仍为“初代兼容”。本轮没有把账号切换到其他 TLS/身份策略,也没有给所有账号强加统一的 RPM 数值或自动提高/降低已保存的并发上限。 ## 已完成的验证 | 验证 | 结果 | | --- | --- | | 前端全量 Vitest | 2,054 项通过,0 失败 | | 后端全量单元测试 `-tags=unit ./...` | 19,371 个测试/子测试通过,0 失败,29 跳过 | | 最终独立数据库专项 | 105 个测试/子测试通过,0 失败、0 跳过 | | Vue 类型检查与 ESLint | 通过 | | 后端构建与前端生产构建 | 通过,产物写入本机临时目录 | | 浏览器组件验收 | 冷却原因、下次检查、最近完成结果同时展示;不接受单位时隐藏单位输入;详情显示 legacy + nodejs24 + 仅观察;鹈鹕图片已解码并可显示 | 数据库专项使用仅绑定 127.0.0.1 的新临时 PostgreSQL 和 `relay_tuning_test` 数据库,覆盖冷却并发、队列延后/取消/公平性、保护事务、管理权限、评分重评和用户清理。测试后 PostgreSQL 与本地界面验证服务均已停止,临时验证页已关闭。 测试计数含父测试与子测试,不能把专项与全量相加当作独立用例数。浏览器使用真实组件和明确标注的本地合成答复,API 网络调用被阻断;不据此声称已经验证真实上游握手、限流概率或模型质量。 ## 需要后续选择的策略 | 方面 | 可选方案 | 建议 | | --- | --- | --- | | 严格 RPM | 保持当前软限制;或新增按账号配置的原子硬限制与突发预算 | 先采集每账号请求频率、429 率和等待时间,再决定数值。原子硬限制尚未实现/启用。 | | 自适应并发 | 只提示建议降低;或允许在管理员上限内自动降速、缓慢恢复 | 先采用只提示,避免吞吐在无人知晓时变化。自动调节尚未实现/启用。 | | 完整性拦截 | 仅观察;或对选定账号开启严格拦截 | 控制已实现,默认兼容阶段仅观察。严格拦截可能拒绝尚未纳入允许转换的合法请求,应先核对差异。 | | 完整分组统计 | 用户实际扣费、账面费用、上游账号成本分别展示 | 需要明确字段口径后再实现完整 stats,不能把占位零值当真。 | 这些可选项不阻塞本轮已授权的确定性修复。本轮没有发布、提交 Git 基线、删除测试历史或改变结果公开范围;新 JSON 字段复用现有结构,无新增数据库迁移,但正式上线仍需此前的 `248_intelligent_assessment_v2.sql` 与本轮前后端配套。