Leadaxe:singbox-launcher 已能按协议过滤订阅节点,但还没有编辑界面

在「能否像安卓应用那样在订阅层面按协议过滤节点」的功能请求(#133)下,Leadaxe 答复「部分可以——引擎层面已有,界面还没有」。现有能力分两类:一是每个订阅/来源在启动器状态里都有 skip 列表,条目内的键全部匹配即丢弃该节点,支持的键为 scheme(协议:vless、vmess、trojan、ss、hy2 等)、tag、host、label、fragment、comment,写法支持 literal、!literal、/regex/i、!/regex/i,例如 "skip": [ { "scheme": "trojan" }, { "tag": "/test/i" } ] 可隐藏全部 Trojan 节点以及标签含 test 的节点,格式见仓库 docs/ParserConfig.md;二是方向过滤(Wizard → Directions → 某个方向的过滤),对节点标签做正则并可反向,这一项有正式界面,但只能按标签过滤,不能按协议,见 docs/DIRECTION_FILTERS.md。问题在于第一类没有表单:目前只能直接编辑来源的 JSON(state.json 或导入 LX Backup)来写,实际是隐藏功能。缺失的是来源设置里的过滤器编辑器(Wizard → Sources → 编辑 → Settings):协议勾选框加标签/主机正则,写入已有的 skip 字段;这正是该 issue 请求的功能,因此保持 open。

作者原文

Partly, yes — the engine has it, the UI doesn't yet.

What exists today

  • Per-source skip filters. Every subscription/source in the launcher state has a skip list; each entry drops nodes matching all its keys. Supported keys: scheme (protocol: vless, vmess, trojan, ss, hy2, …), tag, host, label, fragment, comment. Patterns: literal, !literal, /regex/i, !/regex/i. Example that hides all Trojan and every node whose tag mentions "test":
    json "skip": [ { "scheme": "trojan" }, { "tag": "/test/i" } ]
    Reference: docs/ParserConfig.md — sections on filter keys and pattern format.
    The catch: there is no form for it in the Wizard. Right now it can only be set by editing the source in JSON (state.json / LX Backup import), so in practice it's a hidden feature.
  • Per-Direction filters (Wizard → Directions → a direction's filter): regex on the node tag, with an "invert" switch — this one has a proper UI, but it filters by tag only, not by protocol. See docs/DIRECTION_FILTERS.md.

What's missing — a filter editor in the source settings (Wizard → Sources → edit → Settings): protocol checkboxes plus tag/host regex, writing into the existing skip field. That is the enhancement this issue asks for; keeping it open as such.