Github List

[v2.2.5] - 2026-03-02

✨ 新功能

  • 内核操作编排器 - 新增生命周期编排队列,统一串行处理 start/stop/restart/auto_manage,减少并发竞态
  • 状态快照接口 - 新增 kernel_get_snapshot 命令,前端初始化可先拉取快照再订阅增量事件
  • 操作事件通道 - 新增 kernel-operation-started / kernel-operation-finished / kernel-operation-failed 事件,便于追踪内核操作链路
  • 升级后订阅自动刷新 - 应用版本升级时自动尝试刷新当前激活订阅,失败后后台重试并通知前端手动处理

🔧 优化改进

  • 生命周期一致性 - 自动托管逻辑改为复用统一编排路径,不再绕过生命周期入口直接启停
  • 状态语义增强 - 内核状态事件与状态查询返回补充 kernel_statestate_version(以及操作返回中的 op_id 元信息)
  • 启动稳定性校验 - 内核启动后增加短窗口稳定性检查,减少“返回启动成功但立即退出”的假成功体验
  • 前端状态同步 - KernelStore 初始化改为“先快照后订阅”,并基于 state_version 忽略过期状态覆盖
  • 设置保存策略调整 - 前端自动保存配置默认仅持久化到数据库,不再自动触发运行态重配,避免编辑设置时频繁触发内核重启/配置覆盖
  • 订阅切换即时生效 - 切换活动配置路径时显式触发运行态应用,确保 active_config_path 与内核实际使用配置保持一致
  • 下载出站默认值统一 - singbox_download_detour 默认值统一为 direct,与当前下载链路策略保持一致
  • 内核更新入口降级 - 设置页保留手动内核更新能力,但标记为“高级维护”并弱化主操作入口,默认引导使用内嵌推荐内核
  • 错误事件结构化 - kernel-error 事件补充 code/message/details/source/recoverable/timestamp 字段,并保留兼容 error 字段
  • 全局错误提示与去重 - 前端新增内核失败全局提示中心,统一消费 kernel-errorkernel-operation-failed,同文案 10 秒内去重

🐛 问题修复

  • 事件中继清理 - 中继任务清理从仅 abort 调整为 abort + await,降低重启窗口残留任务风险
  • 启停并发冲突 - 修复手动启停、快速重启、自动托管可能并发触发导致状态漂移的问题
  • 更新安装包匹配修复 - 修复安装包优先级提前退出条件,避免部分平台/架构场景下选择到错误安装包
  • sing-box 1.13 DNS 配置迁移 - 配置生成全面切换至新 DNS server 格式,移除 legacy address/address_resolverdns.servers[].strategy
  • Domain Strategy 迁移修复 - 移除 dns.strategy/default_domain_strategy 等 legacy 选项,统一迁移到 domain_resolver/default_domain_resolver 对象格式
  • DNS detour 兼容修复 - 避免输出 dns.servers[].detour=direct,修复新内核报错 detour to an empty direct outbound makes no sense
  • 启动前配置预检增强 - 启动前执行 sing-box check --config,对常见迁移错误输出可操作中文提示(legacy DNS / legacy domain strategy)
  • 失败状态可见性修复 - 前端状态展示新增 failed/crashed,不再将内核失败统一折叠为 stopped
  • 守护失败漏报修复 - 修复守护重启失败(非 sudo 场景)仅日志不通知前端的问题
  • 自动拉起失败提示修复 - 应用启动自动管理内核失败时,前端可立即收到错误提示

🔧 优化改进

  • 目标内核资源映射 - 构建时改为 bundle.resources 对象映射,只注入当前 --target 对应的 sing-box(.exe)version.txt
  • CI 构建入口统一 - Release 工作流显式使用 pnpm run tauri build(wrapper 脚本),确保多平台构建遵循同一内核资源注入策略
  • Latest 拉取稳健性增强 - fetch-kernel 新增 release 页面兜底解析;当 GitHub API 波动时仍可自动解析最新版本
  • CI 鉴权拉取最新内核 - Release 工作流透传 SING_BOX_GITHUB_TOKEN 给内核下载脚本,降低匿名请求触发限流的概率
  • 脚本回归测试补齐 - 新增 scripts/kernel-targets.test.mjs,覆盖目标资源映射与不支持目标兜底行为

📚 文档更新

  • 开发文档补充 - 明确“仅当前目标平台内核随包分发”的资源注入机制,以及 CI 自动拉取 latest 的执行链路

🐛 问题修复

  • Release CI 编译修复 - 修复 sudo_service 在 Linux/macOS 目标构建时缺少 tauri::Manager trait 导入导致的编译失败