diff --git a/design/prototype/screens/routing-rules.html b/design/prototype/screens/routing-rules.html index fa8990f..da81d85 100644 --- a/design/prototype/screens/routing-rules.html +++ b/design/prototype/screens/routing-rules.html @@ -154,7 +154,28 @@ -
+

与现有 Settings 页的衔接

+

现在 Settings 里的「Smart routing」是个二元开关。改为渐进式披露入口:变成「分流规则」设置行(显示当前模式 + chevron),点进去就是上面的分流规则屏。休闲用户不用点,行为等价开关开着。

+
+
+
现在(二元开关)
+
Smart routing
Accelerate abroad, direct at home
+
+
+
改后(入口 → 分流规则屏)
+
分流规则
自定义直连 / 走隧道 / 拒绝
智能分流
+
+
+ +

默认规则 vs 自定义规则 · 冲突处理

+

确定性分层 + 顺序,不靠猜:系统强制层永远在最上(用户改不了)→ 用户规则(有序,首命中)→ 智能分流默认 → FINAL。UI 主动标记两类冲突:

+
+
github.com
域名后缀
走隧道
+
github.com/foo
⚠ 已被上面「github.com 走隧道」覆盖,永不命中
直连
+
git.yanmeiai.com
⚠ 该域名由系统强制走隧道(私有服务),此规则不生效
直连
+
+ +

为什么用 v2 真 ui-kit

本屏所有组件(段选 .segswitch、设置行 .setting-row、开关 .toggle、卡片 .card、胶囊 .pill、按钮 .btn)都来自 v2 设计系统真原子,颜色全走 token,与线上 App 一致——不是独立 mockup。动作语义色(直连绿/走隧道橙/拒绝红)是原型内联,实现时收进 atoms。

待你确认(设计层)

①规则粒度够不够 ②要不要分应用代理(per-app,建议后置)③「从文本导入」Phase 1 还是 2 ④档案 per-user 还是 per-device。确认后出 Phase 1 实现计划。

diff --git a/docs/configurable-proxy-spec.html b/docs/configurable-proxy-spec.html index 768518a..b164999 100644 --- a/docs/configurable-proxy-spec.html +++ b/docs/configurable-proxy-spec.html @@ -104,6 +104,23 @@ App ◀────────── 完整 sing-box 配置(含用户规则)
用户规则排在国内分流之前——这样"我要 github 走隧道""我要某国内站走隧道"能压过 geoip-cn 的直连默认。系统层(1-3)永远在用户规则之上,防止用户误配把 DNS/LAN/私有服务弄坏。
+

默认规则 vs 自定义规则 · 冲突处理

+

确定性,不靠猜——冲突由层级 + 顺序唯一裁决:

+ +

UI 主动提示两类冲突(编辑器里实时标记,不静默):

+ + + + +
冲突提示
被前面规则遮蔽、永不命中规则灰掉 + 「已被上面「X」覆盖,永不命中」
撞到锁定的系统目标(如给私有服务域名加规则)「该域名由系统强制走隧道,此规则不生效」
+ +

与现有 Settings「Smart routing」的衔接

+

现在 Settings 的 Smart routing 是二元开关(= builtin.china_direct)。改为渐进式披露入口:该行变成「分流规则」设置行(右侧显示当前模式 + chevron →),点进去即分流规则屏。休闲用户维持"智能分流"不点即可(等价现在开关开着),高级用户点进去自定义。老的二元开关被三模式(全局/智能分流/直连)涵盖。

+

5. 直连是否真"不走 VPN"

direct outbound 让 sing-box 从物理网卡直接出连接。但 TUN strict_route 会把包重新捕回隧道——已有两个机制解决,用户规则复用: