Files
ShadowsocksX-NG/docs/design/proxy-rules-ui-simplification.md
T

2.4 KiB

代理规则浏览 UI 简化

状态:已按用户确认设计实现;本文记录本次调整,实现现状以当前代码为准。

已确认

  • 右侧规则列表顶部不再展示来源详情。
  • 有元信息的选中来源在左侧来源列表下半部自动展示版本摘要、许可证和报告入口;全部规则、自定义规则、固定本地策略不预留空白详情区域。完整版本、上游出处和归属说明放在报告窗口,保留完整可复制内容。
  • 快照制作时的转换报告改为独立窗口展示,正文可滚动、可选择复制,窗口标题标明来源。
  • 只保留一个报告窗口。主列表切换来源不改变已打开报告;明确打开另一来源的报告时,复用窗口并切换内容。
  • 底部关系解释仅在单选规则存在同行动覆盖或相反行动遮蔽时展示,包含部分重叠及固定本地策略覆盖;无关系或多选时隐藏。
  • 每种关系标题只出现一次,下方列出相关规则的匹配内容、类型和行动;固定策略仅列出相关范围。不重复选中规则的列信息,也不级联展示来源元信息或转换报告。
  • 主窗口关闭后,报告窗口可以继续存在;最后一个应用窗口关闭后才回到菜单栏形态。
  • 报告保持打开时的快照,主页面刷新不自动替换内容;再次点击报告入口时更新并置前。

实现前代码核实

  • 列表已有匹配内容、类型、行动、来源与状态;底部额外提供具体覆盖者及固定策略范围。
  • 自定义规则和固定本地策略没有快照元信息,但当前仍占用 160 点顶部区域。
  • 当前转换报告包含制作时统计和说明,不是当前集合分析或运行时状态。

本轮不建立新 ADR;已有 ADR-0017 追加独立报告窗口的生命周期修订。领域术语沿用并补充到 CONTEXT.md。

本次验证

  • 750 项 hostless 测试通过,无签名 Debug 构建通过,格式与 lint 检查通过(保留既有文件长度警告)。
  • 隔离的原生 SwiftUI 窗口验证使用打包来源快照:报告打开、切换内容时复用、查询与刷新不替换报告、关闭后重开,以及两个关闭顺序均通过;没有创建代理控制器或写入系统代理。
  • 原生验证仍记录已有 NSTableView 重入警告,未发生崩溃。单元测试与本次窗口验证不作为真实代理运行验证。
  • Standards 与 Spec 两轴审查无剩余发现。