-
Notifications
You must be signed in to change notification settings - Fork 0
ZH Changelog
-
修复 CI publish 版本验证:现在与 repository/release tooling 一样从
Directory.Build.props读取唯一的产品版本,不再错误要求Shadowsocks.WinUI.csproj中存在被项目规则禁止的本地<Version>。GitHub workflow 文件现在也包含在 release-ready 源码归档中并由 validator 检查,防止该契约再次漂移。 -
修复本地化发布验证:现在与运行时目录一样使用 ordinal、区分大小写的键语义。完全相同的英文键仍会阻止发布,而有意区分的
Active/ACTIVE保持合法;多余的仅大小写不同 UI 键已统一并移除。 -
修复了
Validate-Repository.ps1中的 PowerShell 运行时语义错误:XML/包辅助函数不再使用return if (...)(PowerShell 会将其解释为调用名为if的命令)。验证器现在还会拒绝在return后直接使用语句关键字。 -
修复 PowerShell
Set-StrictMode -Version Latest下的 release validator:成功路径中的空集合不再在格式化诊断信息时访问合成的.FullName/.Name;packaging 脚本会在-join前显式投影成员名称,validator 也会阻止该不安全模式再次出现。 -
修复完整测试集暴露的 DNSCrypt 首次使用默认值回归:活动 runtime 仍默认通过 Shadowsocks 路由并要求有效的本地 SOCKS5 endpoint;direct/offline 测试 fixture 会显式关闭该路由;resolver-catalog TOML 只读取预置的已签名缓存,因此不继承活动 runtime 的 proxy 设置。
-
5.2.31 analyzer hotfix:online-config 刷新后的服务器选择恢复现在使用
Configuration.configs实际传入的具体List<Server>,无需 suppression 即清除 CA1859,行为不变。 -
5.2.31 编译 hotfix:服务器编辑器的空状态不再向 WinUI
Border赋值不存在的IsEnabled;现在会禁用实际输入控件,repository validator 也会静态拒绝对已知 non-Control 容器/视觉类型使用IsEnabled。 -
最终路由加固:不完整的 legacy/损坏服务器配置不再参与 Balancing/High Availability、托盘选择和服务器快捷键;HA 与 SIP003 进程跟踪会区分 host/port 相同的不同配置。策略 TCP timeout 取自实际选中的服务器,订阅刷新也会在不与同 endpoint 的本地配置冲突的情况下保持当前选择。
-
5.2.31 hotfix:移除合成的空
Server 1;零服务器现在是合法状态,不完整的草稿服务器不会解锁依赖服务器的功能。 -
在存在完整 Shadowsocks 服务器之前,DNS、PAC 与启用 Windows 系统代理保持禁用;删除最后一个可用服务器时会停止实际的代理/DNS/capture runtime,但保留已选择的 DNS policy,以便添加可用服务器后重新应用。
-
Start on Boot、Administrator capture/UAC 切换以及更新操作现在提供非阻塞的 busy 进度反馈。
-
新建 DNSCrypt 配置首次使用时除 IPv6 外所有选项默认启用。已经持久化的 DNSCrypt 设置会原样保留;schema v3 不迁移也不覆盖这些设置。
-
WinUI 导航、Logs 与 UAC/Administrator 图标改用明确兼容 Windows 10 的 Segoe MDL2 Assets glyph。
-
5.2.31 热修复:DNSCrypt 的 Minisign 验证现在支持官方解析器目录使用的旧版
Ed签名格式,同时继续支持现代预哈希ED格式,并保持对内容和 trusted comment 的完整验证。 -
Self-update 现在会恢复交接更新时记录的实时 shell 状态,而不是沿用进程最初的 startup 参数;因此启动后再打开或隐藏窗口,其状态在应用更新后仍会保留。
-
系统重启/会话恢复现在会保留真实的 shell 状态:Start with Windows 与 Restart Manager 仍保持互斥,但通过
--start-visible/--start-hidden让原先打开的窗口重新打开、原先仅托盘的实例继续留在托盘。WM_QUERYENDSESSION会在系统关闭 HWND 前保存状态;两个 restore 标记也都不会按普通的第二次启动处理,因此重定向的系统恢复不会弹出“已在运行”对话框。 -
修复 DNSCrypt release validator 因
$controllerPath未初始化而在 StrictMode 下失败的问题。 -
清除最后的 DNSCrypt TOML CA1859:private static resolver stamp 序列化与测试 helper 现在使用其实际创建的具体
Dictionary类型,未放宽 analyzer 规则。 -
DNSCrypt 组件的 GitHub release metadata、ZIP 与 Minisign 下载现在通过 Shadowsocks 上的 Cloudflare DoH,并以 Google DoH 作为备用;redirect 主机也通过同一隧道解析,失败会在 rollback 前写入日志,不再暴露原始的
api.github.comsystem-DNS 错误。 -
修复 DNSCrypt 解析器目录 bootstrap 死锁:主路径为 Shadowsocks 上的 Cloudflare DoH,备用为 Shadowsocks 上的 Google DoH;解析器列表 HTTPS 下载也保持在隧道内,发布前执行 Minisign 验证,dnscrypt-proxy 只读取离线本地缓存(
urls = []、bootstrap_resolvers = []、ignore_system_dns = true)。 -
完成 WinUI 本地化、accessibility 与上下文状态的全面审查:应用选择的语言现在也控制内置 Settings 导航项、Hotkeys 的间接动作标签与注册状态提示;Forward Proxy 字段标签覆盖全部 7 个已发布 locale;Servers、PAC/GeoSite、Online Config、Plugins、Games、Hotkeys、Sharing、Traffic 与 Updates 的操作统一按 selection/dirty/busy 状态启用。
-
收紧上下文 UI 逻辑:保存但无效的 Online PAC URL 在页面或 tray 启用前都会要求修正;GeoSite refresh 显示进度并阻止冲突编辑;重复项的 Add 被禁用;更新期间禁用冲突操作;Plugin=None 只隐藏 plugin 专属字段而不会提前清空未保存值;已移除对生成 Local PAC 文件的旧编辑入口,用户规则统一通过
user-rule.txt。 -
修复四个首次使用/界面问题:
ss://导入会提示安装缺失的已知插件,DNSCrypt 首次安装持续显示动画进度,Local PAC 可打开user-rule.txt,Online PAC 模式隐藏 Local managed-routing 卡片。 -
修复过期的 legal-resource 测试:现在断言当前 Adblock Plus-derived network routing notice 文案;fake GitHub plugin release 对 SHA-256 与下载响应复用同一份 ZIP payload,使 digest 验证确定化,并确保 anti-downgrade 测试真正执行版本门控。
Fork-specific 变更记录。历史 upstream Shadowsocks for Windows 记录仍保存在 CHANGES。
-
最终发布审计:处理配置或应用可见 DNSCrypt 设置时,不再改写已持久化的 DNSCrypt 兼容字段;Administrator Mode 的 DNSCrypt 拦截仍会强制执行有效的 fail-closed 保护。同时,保存混合 local/subscription 服务器列表时,即使分组排序改变位置,也会保持实际选中的服务器。
-
修复内置 QTun 从 GitHub Releases 安装失败的问题:Windows asset 现在按 upstream 实际使用的
x86_64-pc-windows-msvcZIP 命名匹配,不再误用仅作为 GitHub Actions artifact 名称的windows-native。 -
修复 UDP Load Balance 在 endpoint hash 为负数时可能生成负服务器索引的问题;现在使用 unsigned modulo 保证索引始终有效。
-
修复 WinUI DNS cancellation ownership 重构后遗留的编译回归:离开手动 resolver 选择时,现在通过当前
_cancelResolverLatencydelegate 取消 latency probing,不再引用已删除的_resolverLatencyCancellation字段。
- 完成 Variant B:Local GeoSite/EasyList/ABP 仅通过 C#
FilterEngine决策。 - 删除
abp.js、compiled-PAC backend、backend selector、executable customabp.txt。 - User Mode 与 Administrator Mode 使用相同 network-filter subset。
- Admin TCP 通过 HTTP Host / TLS SNI late decision,无 MITM。
- Snapshot 原子替换,失败时保留 last-known-good。
- 强化
System、Direct、Proxy、CustomDoh、DnsCrypt。 - Admin Mode 支持 transparent UDP/TCP 53。
- 强化 DNSCrypt install/update/catalog validation。
- Automatic mode 应用 DNSSEC/no-log/no-filter/address-family filters。
- ODoH 禁用。
- Automatic self-update 使用 exact ZIP + SHA-256。
- 增加 staged-updater self-hash、anti-downgrade FileVersion 与 rollback。
- 修复从旧 LocalAppData startup-copy 启动时的更新目标。
- 防止 duplicate Start-with-Windows instance。
- Managed SIP003 packages:
xray-plugin、v2ray-plugin、qtun。 - 支持 ZIP/TAR.GZ manual import。
- Plugin storage 与 trusted release provenance 统一管理;catalog plugin 每天自动检查一次、支持手动 Check updates 与 per-plugin toggle,in-use package 会推迟。Manual import 不 auto-update;任意 repository field 暂列 TODO,等待单独的 trust/asset-selection 设计。
- WinUI 3 保持唯一 presentation stack。
- 改进 Logs、Traffic、PAC/GeoSite、DNS、About & updates。
- License/Third-party explanatory UI 完成本地化。
- 完成 WinUI analyzer/lifetime 后续清理:
App、DnsPage、LogsPage具有明确的 shutdown ownership;cached page 在 controller 之前释放;DNS cancellation source 由对应 async operation 自己拥有并释放;Logs 使用 non-disposable .NETLock串行化设置写入;其余 CA1725/CA1822/CA1834/CA1305/CA1806/CA1859 均直接修复,没有全局抑制 production analyzer。 - 清理 Visual Studio strict-build 后续诊断:修复 TrafficPage 局部变量大小写导致的编译回归;私有 hot path 使用具体类型与 .NET 10 argument helper;更新测试中的 TaskCompletionSource bridge、pointer/culture 处理;DNSCrypt/WinDivert security-pin 测试改为读取运行时常量 metadata。仅在 UnitTests 中关闭 CA1707/CA1861,以保留
Method_Scenario_Result命名和局部 literal fixture 的可读性;production analyzer 仍保持启用。 - Version 集中到
Directory.Build.props。 - 启用 .NET 10 recommended analyzers。
- Release build 使用 warnings-as-errors。
- Validator 简化为 structural/supply-chain checks。
- 修复 legacy public fields、exception API、resource ownership、nullable/cancellation warnings。
- 最终 compile/analyzer cleanup 修正 DNSCrypt resolver array 的长度检查,移除 sealed controller 中无意义的
protected,并让UDPRelay显式实现IDisposable。 - README EN/RU/ZH 同步。
- 新增 EN/RU/ZH 独立语言分支。
- 全局 Home/Sidebar 只显示语言选择。
- 所有主要技术与 release 文档在三种语言下都可访问。