v0.4.0 (2026-07-20)
===================
- 授权升级为二阶段硬件绑定：有效 .tfl 导入后换发本机白盒 AES 本地凭据
- 硬件指纹由稳定 CPU 特征、逻辑核心数、MemTotal 和物理硬盘型号/序列/WWID/CID/容量组成
- 本地凭据采用随机 IV 的白盒 AES-CTR 加密与 CMAC 认证，0600 原子写入
- 换发成功后删除可移植 .tfl；后续启动只验证本地凭据和当前硬件
- CPU、内存或硬盘配置变化、凭据篡改、损坏或过期时停止全部应用并统一降到 L0
- 硬件变化后不会从残留授权自动重新激活，必须重新导入运营方签发的 .tfl
- 兼容 0.3.x：升级时若仅存在有效旧 .tfl，会自动执行一次本地换发迁移
- 保留 0.3.45 的 L2 宿主 root 终端、统一运行等级显示、Ant Design UI、L1/L2 通用授权与远程 enable 门禁

v0.3.45 (2026-07-20)
====================
- L2 调试终端改为直接进入 iKuai 宿主 root，不再进入应用 netns、chroot 或 tf-exec
- L0/L1 终端显示当前统一运行等级，不再把 L2 授权上限误显示成当前 L2
- Web 控制台重做为贴近 iKuai 的 Ant Design 蓝白界面，保留全部管理与审计功能
- L1、L2 授权均支持绑定 GWID 或签发空 GWID 通用授权，信封继续使用 version 1 且不暴露算法字段
- 新增远程 enable 总开关；每次请求附带唯一 ?t=<UnixNano> 以绕过 Cloudflare 缓存
- enable 请求失败、超时、非 200 或内容异常时，停止应用并强制统一锁定 L0
- enable 返回 0 时停止应用，移除 appmarket 注册、入口与安装目录，然后退出
- 修复启动脚本未导出 enable 覆盖参数及读取错误 manifest 路径的问题
- stop.sh 兜底卸载 L2 数据树 bind mount，避免升级迁移持久数据时出现 Device or resource busy
- enable=0 自卸载删除安装目录后，start.sh 立即退出，不再写已删除日志路径
- 补齐新安装所需的 TF_HOST 与 iKuai 官方公钥静态资产，避免仅升级场景可启动

v0.3.44 (2026-07-19)
====================
- L2 每次启动创建 run-id，并采集策略路由、全部路由表、iptables/ip6tables、nft、接口、模块和关键文件基线
- L2 停止时按可执行路径与命令行追踪并终止应用派生进程，不再只依赖 PID 文件
- 记录启动前后网络与关键文件差异，保存完整 run.json 和原始快照
- 定向清理本次新增的策略规则、数字路由表和应用命名防火墙链，不覆盖整套宿主规则
- TestFlight 重启时检测未完成 L2 会话并执行恢复，应用保持停止
- Web 应用卡片新增 L2 监控入口，展示进程、差异和实际还原动作

v0.3.43 (2026-07-19)
====================
- Web 新增统一 L0/L1/L2 运行等级选择器，默认 L0
- 无授权只能选择 L0；L1 授权解锁 L0/L1；L2 授权解锁 L0/L1/L2
- 切换等级时先停止全部应用进程，再把所有应用统一设置到目标等级
- 撤销授权时停止全部应用并强制统一降级到 L0
- L2 切换增加二次风险确认；切换后应用保持停止，由用户手动启动

v0.3.42 (2026-07-19)
====================
- 新增每应用 RuntimeMode：L0 严格沙箱、L1 增强网络沙箱、L2 宿主原生兼容
- L2 在宿主 network/mount/device 环境真实运行标准 iKuai start.sh，不再经过 tf-shim
- L2 要求逐应用风险确认，且拒绝占用非 TestFlight 管理的 /<app> 路径
- L2 停止时执行原生 stop.sh、清理受管 PID 和 bind mount；卸载只删除带管理标记的宿主目录
- 运行模式不能超过当前有效设备授权，切换模式前必须停止应用

v0.3.41 (2026-07-19)
====================
- 对 apps 目录中的应用执行 L0/L1/L2 三级安装、启动、进程、端口和审计回归
- 兼容 manifest.json 直接位于归档根目录的原生 IPKG（如 1Panel、MosDNS）
- 为应用私有 overlay 中常用运行目录预设可写属主，修复 /run、/var/lib、/usr/local、/etc 写入失败
- 允许 native 启动脚本迁移自身 app/.env，同时保持 scripts 和 bin 只读
- 三级矩阵明确区分 TestFlight 兼容性、应用配置缺失和测试机硬件/宿主条件不满足

v0.3.40 (2026-07-19)
====================
- 重构开发者终端，进入后显示应用 ID、版本、IP 与当前 L0/L1/L2 等级
- 新增 tf-help、tf-status、tf-logs、tf-audit、tf-log-files 排错命令
- 将应用 stdout/stderr 暴露为 /data/testflight-app.log，支持实时跟踪
- 终端通过 tf-exec 进入应用实际 netns、chroot、UID 映射和 /data
- 修复交互 Shell 因进程组错误被 SIGTTIN 停止、无提示符且无法执行命令
- 修复 chroot 后继承无效工作目录导致 (unknown) 与 getcwd 错误
- 开发者终端默认从 / 启动，提示符显示应用与当前目录
- 修复 native 应用 environment 文件被错误预建为目录，导致文件 bind mount 返回 not a directory
- tf-exec 现在根据源类型分别创建文件或目录挂载目标，并自动修复旧错误目录
- 修复 Web 反向代理将上游 gzip 压缩 HTML 当明文改写，导致浏览器显示乱码

v0.3.39 (2026-07-19)
====================
- 修复导出提交包 MANIFEST.txt 的 GWID 为空
- 设备信息统一由当前设备报告读取，不再混用应用授权绑定 GWID
- 统一 HTML、JSON 审计报告和提交包中的设备信息来源

v0.3.38 (2026-07-19)
====================
- 修复无 <base> 页面在子目录中的相对资源路径
- 保留上游页面目录，兼容位于 /ui/ 等子路径的 SPA
- 修复 Nuxt 类应用在反向代理前缀下的 baseURL 与导航路径
- 改进 Web 后端地址重写，避免请求脱离 /web/<app>/ 前缀

v0.3.37 (2026-07-19)
====================
- 改进应用 Web 反向代理的 HTML base、src、href 与 Location 重写
- 兼容根目录 Web 应用和子目录 Web 应用
- 修复静态资源错误落到 TestFlight 根路径的问题

v0.3.36 (2026-07-19)
====================
- 修复带绝对资源路径的应用通过 /web/<app>/ 打开后黑屏
- 增加 HTML 资源路径重写与反向代理前缀适配
- 完善 WebSocket、重定向和应用 API 代理兼容

v0.3.35 (2026-07-19)
====================
- 完善应用 Web 入口、APP_PORT_WEB 与 APP_WEB_LOGIN_URI 支持
- 限制根 /api 兼容代理仅对明确应用来源生效
- 改进应用升级时旧进程、netns 与 native PID 清理

v0.3.34 (2026-07-19)
====================
- 实现 manifest RSA 签名有效、无效、未签名三态
- 签名错误可持久化并在 Web 控制台与报告中展示
- 应用 IP 与 UID 使用最低空闲值，升级保留原有分配
- 增加地址池耗尽检查与资源分配测试

v0.3.30–v0.3.33 (2026-07-18)
===========================
- 完善私有 /dev、/proc、netns、真实 PID 和环境持久化
- 应用启动统一通过 tf-exec 进入 user、mount 与 network namespace
- 增强 native 应用目录、配置、缓存、日志和数据 bind 管理
- 改进安装、升级、停止、卸载时的资源回收

v0.3.20–v0.3.29 (2026-07-18)
===========================
- 增加应用 Web 反向代理和 WebSocket 支持
- 增加应用运行状态、端口与 Web 入口识别
- 完善审计事件、等级评估和导出提交包
- 增强远程安装下载限制、重定向校验和 SSRF 防护

v0.3.10–v0.3.19 (2026-07-18)
===========================
- 完善标准 IPKG 与开发包安装、升级和卸载流程
- 增加 overlay 根文件系统、独立 UID、netns、veth 与应用 IP
- 增加包签名状态检查和完整性审计
- 增加应用状态持久化、异常恢复和资源复用

v0.3.1–v0.3.9 (2026-07-18)
==========================
- 稳定 L0/L1/L2 全局激活模型，应用 manifest 权限清单不再参与授权
- 增加激活文件有效期、GWID 绑定、降级和状态展示
- 增加设备与应用限制名单的定时刷新和本地缓存
- 改进权限等级计算、审计结果和控制台展示

v0.3.0 (2026-07-18)
===================
- 新增三层全局激活模型
  * Level 0：默认未激活，仅开放基础沙箱能力
  * Level 1：设备激活，在 L0 基础上开放 network 档能力
  * Level 2：受控解锁，在 L1 基础上开放 host 档能力
- 引入 .tfl 设备激活文件，支持 GWID 绑定、有效期和签发者指纹
- 激活过期、损坏或设备不匹配时自动回退到 Level 0
- 增加设备与应用限制名单

v0.2.4 (2026-07-18)
===================
- 生成 HTML 与 JSON 审计报告
- 导出 IPKG 时附带 audit-report 与 MANIFEST.txt
- 修复重新签名流程，避免污染 manifest 字段顺序

v0.2.3 (2026-07-18)
===================
- 增加审计报告生成
- 增加 export-submission 提交包导出

v0.2.2 (2026-07-18)
===================
- 增加 shim 配置动态管理

v0.2.1 (2026-07-18)
===================
- 审计日志按结果着色
- 优化应用安装流程
