Releases: EasyTZ/dsh-desktop
Release list
v1.4.1 — 插件接口跨源防护、内核更新加固
一次以稳固性为主的维护更新。日常使用看不出变化,但少了几类会在特定情况下咬人的问题。
安全
插件的本地接口加了跨源防护。 Git 面板、终端、余额显示、「在资源管理器中打开」这几个功能都是通过本机回环端口通信的,现在会拒绝来自外部网页的请求(跨源 403,非 JSON 的 POST 415)。
此前只有终端面板有这道防线,而 Git 面板恰恰是唯一带 commit / push / 撤销提交这类会改动你仓库的接口的插件 —— 理论上,你浏览器里打开的一个恶意页面可以隔空触发提交、推送,或把未提交的改动 reset 掉。端口是随机的、攻击者得先扫到它,但「要多花点力气」不是防线。
稳定性
内核更新更保守了。 更新时如果有任何一个插件没装成功,整次更新直接失败并继续用当前能跑的内核,而不是装一半就启用。
以前那种情况下故障会延迟爆发:装失败的插件如果恰好是被你关掉的,它不参与更新前的启动自检,自检照样通过、新内核被启用;等你哪天在插件面板里把它重新打开、重启,才会黑屏 —— 而这时距离那次内核更新已经过去好几天,根本对不上。
修掉内核更新在部分机器上可能一直失败的问题。 装了 Hyper-V / WSL2 / Docker 的机器会被系统动态预留大段端口,更新前的自检撞上就会失败,表现像「新内核是坏的」。与 v1.3.1 修的是同一类问题,这次把最后一条还在用老做法的路径也换掉了。
修掉一类潜在的启动失败。 插件清单里如果出现重复的内部标识,会让内核秒退(黑屏);现在装的时候就会拦下。
不再误删你自己装的插件。 如果你在同一个 dsh 里装过第三方的 dsh- 开头的插件,旧逻辑会把它当成我们的历史遗留删掉。现在改成记账,只清理确实是本程序装过的。
开发侧
- 打包时核对内核版本,与版本库里声明的对不上直接中止 —— 换内核从此是一次有意的、跟着提交走的改动,而不是打包机的环境副作用。
- 发版闸门增加插件版本校验:不只查是否处于联调模式,还要求依赖钉的是固定 tag 而非分支。
dsh-git补上单元测试(18 个用例,覆盖含空格文件名、重命名、二进制文件等解析边界)与 GitHub Actions;纯解析逻辑拆到零依赖的lib/pure.js。- 主仓新增跨仓库一致性测试,强制四个插件的安全防线实现保持一致。
插件版本
dsh-git v0.3.0 · dsh-reveal-explorer v0.1.2 · dsh-ui-balance v0.1.2 · dsh-terminal-panel v0.1.2