1.10.0
- 管理面板换成上游 OpenGFW 面板的前端（ccqwertyui/luci-app-opengfw），本插件自研面板退役。
  为什么：自研面板是与上游并行的第二套界面与第二套参数定义；上游那套是现成的、功能更全的
  中文界面（域名/IP/端口规则、屏蔽、流量透视、实时日志、环境诊断、规则仿真测试）。
  做法：把它的前端资产（index.html / css / js / i18n）原样内置进本插件，并按它前端实际调用的
  21 个 /api/* 端点实现后端 —— 底层是**本插件自己的引擎**，不是上游的 dashboard 二进制。
  为什么不直接跑上游的 dashboard 二进制：它在启动引擎前检查 /sys/module/nft_queue，
  而 iKuai 把 NFQUEUE 编进内核（不是模块），该前置条件在本固件上永远不成立（实测被拒）；
  它还会用 nftables 自己写防火墙规则，而 iKuai 没有 nftables。
- 调度方式沿用本插件的「内核优先」：内核 DPI 先判，只有内核未能识别的流量才进入本插件队列
  （爱快自身的 appmark/ikverdict 语义），与云防火墙那类内核调度一致，不是把全部转发流量
  都搬到用户态。
- 面板的规则模型（域名/协议开关、IP、端口、屏蔽）由本插件翻译成引擎的表达式规则：
  域名按 DNS 名称 / TLS SNI / HTTP Host 分别生成，子域用 hasSuffix（DNS 名称带末尾点、
  SNI 与 Host 不带，写错就会静默不命中）；生成的规则经引擎编译器校验通过才落盘。
- 面板生成的规则写在 rules.yaml 的标记行之后，标记之前的操作者规则**逐字保留**（含注释与
  格式），面板只重写自己那一段。
- 面板里的「DNS 污染」「反诈 HTTP 跳转」以及屏蔽的「仅记录」模式，本引擎没有对应实现：
  设置会被保存但**在面板上明确说明不生效**，不会假装生效。
- 「安装内核模块」按钮在本固件上如实回答「NFQUEUE 已内建」——上游那一版正是卡在这里。
- 环境诊断给出 iKuai 实际相关的检查项（NFQUEUE 内核接口、iptables 可读性、挂载一致性、
  当前调度方式），只诊断不改内核。
- 原始配置编辑（config.yaml / rules.yaml）保存前先校验，内容非法则拒绝并**还原原文件**。
- 本插件自己的 /api/v1/* 保持不变：发布闸门与验收脚本用它，且它带有面板放不下的字段。
- 面板头部的版本徽标改为显示**本插件**的版本（原来显示上游 dashboard 自己的 v1.1.2-14）。
- 面板总览的统计磁贴接上真实数据，不再恒为 0：
    * 「总分析包」= 内核交给本插件的报文数（读 iKuai iptables 规则自带的 -c 计数，
      读不到时不显示 0 而是保持 0 并在 status 里以 queue_counters_ok 标明"未测到"）；
    * 「已拦截流量包」= 引擎的拦截判定数（本引擎按流判定，用户态拿不到逐包拦截数，
      因此这里给的是判定次数，不是编造出来的包数）；
    * 「全加密代理 / Trojan / SSH」等卡片 = 引擎识别并命中的次数。
  计数在日志等级门禁**之前**累加：否则把日志调到 warn 就会让面板数字变成 0，
  看起来像"没有流量"，这是最坏的一种错。
  说明：fet（全加密流量）无法区分裸 VMess 与 Shadowsocks，两者合并计入
  「全加密代理 (SS / 裸 VMess)」这一张卡，不编造拆分。

1.9.0
