Repository navigation
Releases
Releases · cspyz/dsh-terse-mode
v1.3.1 + v1.3.0 — 弹层修复、安全加固、README 重写
1.3.1 — ? 现在真的会打开了
点帮助按钮会切换状态,但屏幕上什么都没有。两个原因,同一个根源:面板被画在宿主头部行内部。
- 它继承了那一行的堆叠上下文,层级只有
z-index: 60,而宿主自己的层最高到1100—— 面板其实渲染了,只是被对话区盖住; - 那一行对定宽定位的盒子还有裁剪。
现在面板通过 portal 挂到 document.body 末尾的常驻容器里,层级 z-index: 1200 —— 这是插件市场给自己浮层用的同一条通道。外部点击判断也补上了这个节点,因为它不再是控件的后代。
react-dom 是软解析、容器创建有保护:宿主缺少其中任一项时退回原来的内联渲染,而不是整个控件消失。
升级:重新执行一次 dsh plugin ... add;用脚本安装的到目录里 git pull 后重启一次 DSH(client.js 是宿主模块,不会热重载)。
1.3.0 — 安全加固、选择持久化、README 重写
安全
状态接口(POST /dsh-terse-mode/api/state)现在校验三件事,任一不满足即拒绝:
- Host 必须是回环地址(
127.0.0.1/localhost/[::1])—— 挡 DNS-rebinding; - Origin 必须同源 —— 挡跨站伪造请求;
- Content-Type 必须是 JSON —— 挡表单式跨站提交。
改档位、开关联网这类状态变更,从此只接受本机同源请求。
修复
- 面板选择重启后丢失:之前改完看着生效,重启却回到旧值;现在会落盘,重开仍在。
- 思考强度不再硬塞参数:只发送当前路由确实声明支持的值,避免因模型不支持而整条请求失败。
- 段落解析加入重试与退避,首屏渲染时机不稳定时不再直接失败。
tools.restrict()遇到本版本不认识的工具名不再抛错,改为跳过并记一条告警。- 列上后出现的子代理工具,会在策略生效时一并纳入限制。
文档
README 重写:快速开始、四档说明、思考强度、联网搜索、禁用子代理、设置页入口、桌面端/网页端双部署、可视化面板、实测效果、安全设计、已知边界。修掉「开发」段两处失效路径(错误的 cd terse-mode 与指向不存在文件的设计文档链接)。
测试
95 项全部通过:npm test。CI 在 Node 20 / 22 / 24 上各跑一遍。