Files
ShadowsocksX-NG/docs/adr/0040-keep-settings-recovery-simple.md

1.2 KiB

设置损坏接受人工恢复,保持处理简单

状态:已接受(2026-10-19)。

代理设置的加载、校验、保存与失败处理职责应集中,避免各调用路径重复解释同一状态;集中职责不意味着新增恢复 module、通用存储抽象或恢复流程。仅在能够消除实际重复时收拢实现,不为此机械拆分 settings.json。

对极端的设置文件损坏,接受应用无法继续工作,必要时由用户手动清空配置目录后恢复;不要求应用内提供部分恢复、自动修复、备份或重置向导,也不要求主动让应用崩溃。我们接受这一人工恢复成本,避免为低概率场景增加复杂的状态、交互和测试组合,长期承担维护成本。

正常输入校验,以及保存与运行状态收敛分离的保证继续保留。文件保存继续保证原子替换、保存失败不发布新快照;按 ADR-0041 分离到 UserDefaults 的偏好采用普通偏好的保存语义,不再保留文件写入失败的报错与回滚路径。测试聚焦这些日常契约,不为极端损坏建设复杂恢复场景矩阵。本决定仅约束代理设置的恢复设计,不修改服务器库等其他存储的既有恢复约定。