0.4.6
- 容器默认名由 qwrt-transparent 改为 qwrt-transparent-container（与应用名区分，更直观）。仅默认值变化，QWRT_CONTAINER_NAME 仍可在 WebUI/.env 覆盖；归属标签与回环规则不依赖容器名，行为不变。

0.4.5
- 镜像完整性校验改为只锁 dl.naixi.net tarball 的 sha256（唯一恒定锚点），移除不可靠的 image ID 校验。实测同一 tarball 在不同 Docker 引擎版本（29.4.1/28.3.3）load 出的 image ID 不同（DockerTarBuilder OCI 归档被 containerd image store 重算 config），image ID 不能跨设备当锚点。本地已有镜像直接复用（性能优化，容器每次 docker run 从只读镜像重建回基线，类比 OpenWrt rootfs），下载/缓存复用前校验 sha256，不匹配丢弃重下。威胁模型：能替换本地镜像需宿主 root，而 iKuai 不开 root shell、Docker WebUI 无特权模式，真正可控的边界是下载来源，sha256 已守住。

0.4.4
- 为 wan99 gateway + iKuai type=0 WAN 转发增加保护：启动/修复 wan99 后，如果没有任何真实 WAN 勾选默认网关，则优先自动把 wan1 设为默认网关（没有 wan1 时选第一个真实 WAN），并强制 wan99.default_route=0。这样 wan99 可以保留 gateway=QWRT_INGRESS_IP 供 type=0 转发使用，同时避免在用户真实 WAN 未勾默认网关时抢系统默认出口。

0.4.3
- 恢复 wan99 虚拟 WAN 的 gateway=QWRT_INGRESS_IP（默认 10.99.99.1），让 iKuai WebUI 中选择 wan99 的 type=0 WAN 转发规则可以把流量真正送到 QWRT。当前 iKuai 4.0.301 实测该 gateway 不会抢默认路由；wan99 仍保持 internet=0/default_route=0。
- 明确 transparent 业务分流建议先只分 TCP。若分流 UDP，必须排除 DNS（UDP/53 或客户端 DNS 路径），否则客户端 DNS 解析可能被送入 QWRT/代理路径导致解析故障。

0.4.2
- 修正 transparent 容器 LAN 形态为标准 OpenWrt/VM 风格：入口 veth 仍名为 lan，但 network.lan 现在创建 br-lan 桥并把 lan 作为成员，IP 10.99.99.1 配在 br-lan。这样 SSR Plus+ / OpenClash 等按 br-lan 识别 LAN 的 QWRT 插件能正常挂透明代理规则。

0.4.1
- 修复 LuCI 状态页 /admin/status/iptables 崩溃：兼容层 wrapper 对只读列表命令（iptables -L/--list）过滤 iKuai 私有 ccnt/fcnt/fastid 列，保持 OpenClash 写规则仍走 uClibc iptables，同时让 LuCI iptparser 看到标准 OpenWrt 输出。
- 修正 qwrt-loop 防回环持久分流规则优先级：stream_ipport.prio 从 1 改为 0，确保该规则最高优先级命中，避免 QWRT WAN 回程流量被其它分流规则再次送回 wan99。

0.4.0
- 核心能力：让容器内 OpenClash 跟虚拟机一样能正常工作。QWRT 是 musl，其 iptables/nft 无法对接 iKuai 的 uClibc 私有 netfilter（fastid/match:loop 列、APPMARK/IKQUEUE/FULLCONENAT 私有扩展），用户在 LuCI 里一开 OpenClash 透明代理就段错误崩溃——这正是 wan99 当初断网的死因。本版在容器启动时静默注入 uClibc iptables 兼容层：从宿主 /lib+/usr/lib+/usr/sbin 收集 iKuai 自己的 uClibc iptables 工具链，docker cp 进容器构建 chroot sysroot，内核按二进制写死的 PT_INTERP（/lib/ld64-uClibc.so.0）加载，容器内 iptables 调用经 wrapper 转发进 chroot，规则正确落进 iKuai 内核。装上插件后进 QWRT 自己的 LuCI 配置 OpenClash（订阅/节点/启用）即可，体验与物理路由器/VM 一致。
- 边界：本插件只做平台适配（网络形态 + 兼容层），不碰代理应用层——不拉订阅、不改 OpenClash 配置、不替你启用代理。代理怎么配是用户在 QWRT LuCI 里自己的事。transparent=iKuai 上级路由（分流送 wan99 进来）；sidecar=旁路由（客户端主动指向），两个独立插件各司其职。
- 兼容层默认开（QWRT 镜像走 dl.naixi.net 自有源，形态可控）。隐藏 .env 开关 QWRT_ENABLE_COMPAT=0 可关闭退回纯网关（仅排障用，不进 WebUI）。
- stop.sh 增加优雅清理：停止 clash 进程、卸载 chroot /proc 绑定（chroot 与 wrapper 随容器 docker rm 一并消失，无需还原宿主文件）。

0.3.9
- 修复防回环规则 qwrt-loop 源地址不生效（重要）：iKuai 的 stream_ipport.src_addr 字段要求 JSON 结构 {"custom":["IP"],"object":{}}，而插件之前写的是裸 IP 字符串 172.18.20.202。裸串虽然能存进库，但分流引擎解析不了，WebUI 显示源地址为空、按源地址匹配失效——qwrt-loop 实际未生效，QWRT WAN 口回程流量没被焊死走 wan1，存在被分流策略再次怼回 wan99 的回环风险。现改为写正确的 JSON 结构。旧安装升级重启后，apply_persistent_rules 会先删旧规则再按新格式重插，自动纠正。

0.3.8
- 修复装上插件后 iKuai 宿主断网（重要）：wan99 原本被配置了 gateway=10.99.99.1，iKuai 见 WAN 口有网关就为其下发默认路由 default via 10.99.99.1 dev wan99（metric 0，优先级高于真实 wan1），宿主及未分流流量被导入 QWRT 形成黑洞而全部断网，需删 wan99 才恢复。实测确认 default_route 字段无效、真正诱因是 gateway 字段。修法：wan99 不再配 gateway（gateway 留空、default_route=0），实测宿主出网恢复、wan99 链路/IP 仍在、QWRT 容器出网与分流入口均不受影响。QWRT_SET_DEFAULT_ROUTE 标志随之废弃（保留定义仅向后兼容）。

0.3.7
- 默认上游 DNS 改为阿里主备双解析：223.5.5.5 223.6.6.6（原仅 223.5.5.5）。

0.3.6
- 新增 appmarket 选项「上游 DNS」（QWRT_EGRESS_DNS，默认 223.5.5.5）：用户可在 UI 直接改成 8.8.8.8 8.8.4.4 等，支持空格分隔填多个。该值通过 --dns 注入容器 resolv.conf，无需手改 .env。

0.3.5
- 修复容器内 ping 域名解析失败（ping IP 通、ping 域名挂）：QWRT 跑在 docker 里，/etc/resolv.conf 被 Docker embedded DNS 接管为 127.0.0.11，而 start.sh 的 fw3 reload/firewall restart 会冲掉 docker 为 127.0.0.11 装的 DNAT 规则，导致 embedded DNS 哑火。现在 docker run 直接用 --dns 把容器 resolv.conf 指向 QWRT_EGRESS_DNS（默认 223.5.5.5），绕开 embedded DNS，不受 fw3 刷规则影响。支持 QWRT_EGRESS_DNS 配多个（空格分隔）。下游客户端 DNS 不受影响（仍走各自/iKuai 配置）。

0.3.4
- 修复宿主 console 泄漏（QWRT logo/root@QWRT 登录提示出现在 iKuai 物理/VM console）：对齐 qwrt-sidecar 1.0.4 修法。默认 /sbin/init 启动时改用 /bin/sh entrypoint wrapper，先注释 /etc/inittab 中的 askfirst/askconsole，再 exec /sbin/init；自定义 QWRT_INIT_COMMAND 时不启用 wrapper，保持原行为。其余透明网关网络/镜像/UCI 逻辑不变。

0.3.3
- 根治 LuCI 打开地址打不开：172.18.20.202 是 QWRT 的 wan 口（OpenWrt wan zone input=REJECT），浏览器经转发访问被防火墙挡（实测 10.99.99.1 lan 口能正常登录，172.18.20.202 wan 口死活打不开）。现在 appmarket “打开” 地址改用 QWRT 的 lan 口 10.99.99.1（HOST_IP 默认值），天然 input=ACCEPT，直接可登录。
- 彻底解耦 HOST_IP 与 QWRT_BASE_IP：HOST_IP 仅用于 appmarket 打开地址（lan 口 10.99.99.1）；QWRT_BASE_IP 固定 172.18.20.202 独立驱动 wan 出网/容器 IP/NAT 防回环/readiness，互不影响。start.sh、stop.sh 同步修正，避免 .env 回写污染 wan plumbing。

0.3.2
- 修复防火墙放行规则未生效：0.3.1 把 wan zone 放行 LuCI 端口/ICMP 的规则写进了 UCI 但没 reload firewall，导致 uci 配置在但 iptables INPUT 为空（client ping/打开 202 仍不通，只有停用拆防火墙的瞬间能 ping 通）。现在 commit 后执行 firewall reload，并额外用显式 iptables -I INPUT 强制放行管理端口和 ICMP echo，绕开 stock 镜像脏 include 导致 fw3 中断的问题，保证 LuCI/ping 在容器运行时可达。

0.3.1
- 修复 LuCI 打开地址 172.18.20.202:20080 从客户端无法访问：QWRT 的 doc_app_default 侧属于 wan zone（默认 input=REJECT），现在在 wan zone 放行 LuCI 端口和 ICMP echo，使 appmarket 打开按钮和 ping 可达。
- iKuai 分流策略名精简为 WebUI 合法值：源 IP 保留规则 qwrt-srcip，防回环规则 qwrt-loop（线路固定 wan1），均 <=15 字符。
- wan99 线路备注精简为 qwrt（原为过长的 qwrt-transparent virtual ingress）；升级旧安装时会自动纠正备注。

0.3.0
- 参考 QWRT 旁路由版收敛参数：恢复 HOST_IP、APP_PORT_WEB、APP_WEB_LOGIN_URI 作为 appmarket 打开地址配置。
- 简化透明网关拓扑：QWRT 的 WAN/管理/出口使用 doc_app_default（HOST_IP=172.18.20.202，网关 172.18.20.1），只额外挂一条 veth 到 wan99 作为 QWRT lan/分流入口。
- 默认虚拟链路改为 10.99.99.0/24：QWRT lan=10.99.99.1，iKuai wan99=10.99.99.2。
- 移除 qte0h/qte0c/lan1 回程 veth，QWRT 出口由 doc_app_default 直接回 iKuai 再出 wan1。
- 防回环规则对象改为 QWRT doc_app_default WAN IP（HOST_IP），而不是旧的 10.10.10.6。

0.2.0
- 默认入口 WAN 改为 wan99，自动创建未绑定物理口的 iKuai 虚拟 WAN，配置 10.10.99.2/24 并以 QWRT 入口 10.10.99.1 作为网关。
- 启动时保护真实物理 WAN：如果用户指定的 wanX 已绑定 bandif/bandeth，则拒绝复用，避免覆盖真实多 WAN。
- 新增持久 iKuai NAT filter 与防回环 stream_ipport 规则，同时保留运行态 iptables 规则用于即时生效。
- stop.sh 会移除插件创建的 wan99、veth、容器和插件规则，但不会删除用户已有且未标记为插件创建的 WAN。

0.1.1
- 优化本地 QWRT 镜像选择顺序：优先使用当前架构的 coolsnowwolf/qwrt:amd64-latest 或 arm64-latest，本地不存在时才继续 fallback 到 latest/裸镜像、离线 tarball 或 docker pull。
- 修正 app/environment 默认打开地址为 172.18.20.202:20080/cgi-bin/luci/，避免覆盖 .env 后误用 80 端口。

0.1.0
- 新增 QWRT 透明网关专家模式插件，独立于传统旁路由 qwrt-sidecar。
- 通过 veth pair 将 QWRT 容器接入 iKuai 分流入口桥和回程 LAN 桥。
- 首次启动从镜像 seed /etc/config，并持久化到插件可见配置目录 config/etc_config。
- 写入 QWRT ingress/egress UCI 网络、DHCP、防火墙与 LuCI 端口。
- 可选安装运行态 NAT filter 规则保留客户端源 IP，并安装防回环 mark 规则。
- 0.1.0 不自动创建 iKuai wan2 线路对象，不自动导入自定义运营商/分流规则。
