Releases: xswt442-cmd/dsh-instance-manager
Releases · xswt442-cmd/dsh-instance-manager
Release list
v0.9.12
修复
- 自动选端口改为先实际尝试监听再返回,且重试会跳过上一次失败的那个端口。此前端口在扫描时看起来空闲、子进程监听时却报 EADDRINUSE,换口重试又挑中同一个端口,形成子进程反复启动即死、面板一直停在「启动中…」的循环。
- 面板的「启动中…」状态改为在请求结束后无条件复位,后续刷新失败不再把按钮永久留在禁用态。
完整变更: v0.9.10...v0.9.12
v0.9.10
新增
- 启动新实例可指定端口:留空沿用自动选择;指定端口被占用时返回
port_in_use且不换口启动;非整数或超出 1–65535 返回 400,不静默回退。 - 丢失扫描/绑定竞态的重试只对自动选择生效,指定端口失败不再换口重试。
变更
- 停止确认态改为橙色描边 + 「确认?」。红色表示已发生的错误,而停止尚未执行、仍可撤销。未确认时仍是红色描边「停止」。
完整变更: v0.9.9...v0.9.10
v0.9.9
修复
- 停止的两步确认此前只对当前实例生效,其他实例一次点击即执行。现在所有可停止的本地实例都先进入确认态。
- 确认态文案由「确认结束?」改为「再次点击结束」,确认窗口 4 秒后自动取消。
变更
- README 抬头统一为一致徽章行。
完整变更: v0.9.8...v0.9.9
v0.9.8
修复
- 行的
:端口链接改指?action=open&port=:宿主从server-<port>.out.log读出该实例当前进程的 token 并返回 303。DSH 要求实例根 URL 携带每进程 token,原先的裸根地址必然 401。 - token 每次进程启动重新生成,同一端口重启后日志中会累积多行,因此只取最后一条。
- 日志行按 URL 解析并校验协议、回环主机、端口、根路径与 token;任一项不符即视为无 token。
- 无 token 可读(实例不由本机 launcher 启动或日志已轮转)时返回 409
launch_token_unavailable,不再跳到裸根地址。 - 远程实例行的端口链接由该 peer 自身的面板执行同一换取流程。
安全
- token 只出现在 303 响应的
Location头,带cache-control: no-store与referrer-policy: no-referrer,不进面板状态也不进链接href。 action=open与list/logs/sessions走同一浏览器认证门。
完整变更: v0.9.7...v0.9.8
v0.9.7
维护
- 共享片段的 CI 校验改为在本仓执行(
loopback:check/guard:check),不再跨仓比对。 - LICENSE 版权署名统一为
xswt442-cmd。
完整变更: v0.9.6...v0.9.7
v0.9.6
安全
- 修复同源校验的一处绕过:
Host头存在但解析不出主机名时(例如写成未加方括号的 IPv6 主机::1:3080,RFC 7230 不允许这种写法),此前会整段跳过白名单校验。现在这类请求一律按非回环拒绝。 - IPv4-mapped IPv6 回环
[::ffff:127.0.0.1]现在在 Origin 路径上也能被识别为回环。此前它只出现在 Host 白名单里,而 URL 解析器会把这种写法规范化成[::ffff:7f00:1],导致 Origin 校验永远匹配不上。
修复
- 通过 IPv6 回环地址(
::1)访问时不再被拒绝。
完整变更: v0.9.5...v0.9.6
v0.9.5
变更
- 适配 DSH 0.1.2-rc.1 的 Connection 鉴权:浏览器 API 与 SSE 使用签名 cookie,内部实例探测保留严格 loopback 通道;Connection 拒绝或卸载时不再降级放行。
- 网页面板启动的新实例会打开 DSH 的一次性 token URL 完成 cookie 交接;Agent 工具启动仍使用
--no-open,并统一采用显式--profile web参数。 - 面板语言跟随 DSH 全局 locale,移除独立的
dshim-langlocalStorage 偏好与语言按钮;旧 DSH 仍按浏览器语言降级。 - 兼容检查覆盖
0.1.2-rc.1与 latest。
修复
- 请求守卫改用 TCP 对端地址判定本地性。对于旧版或自定义的远程监听,此前远端来源伪造
Host: 127.0.0.1即可通过守卫并绕过 fleet bearer,执行 start / stop / stop-all / stop-self。 - 对端地址缺失或为空白时按未知来源拒绝,不再视为本地请求。
- 服务运行在 HTTP 默认端口 80 时,省略端口的同源 Origin(如
http://127.0.0.1)不再被误判为跨源。
完整变更: v0.9.4...v0.9.5
v0.9.4
变更
- Dock 片段改由
dsh-mini-utility-dock同步;插件发布物仍可独立运行。 - Dock 统一过滤外部 SVG 图标,并为无效图标显示文本回退。
完整变更: v0.9.3...v0.9.4
v0.9.3
新增
- 配置迁移至 settings,区分即时生效与重启生效的选项,并保留 env 作为默认层。
- Fleet token 作为 secret 存储;无效配置自动回退到 schema 默认值。
修复
- 修复缺少 token 时远程请求返回 500;现在按预期返回 403。
完整变更: v0.9.2...v0.9.3
v0.9.2
变更
DSH Instance与 TreeKeeper 接入带版本的 Mini Utility Dock 协议。- Dock 注册支持 HMR 所有权保护;打开一个面板会关闭同级面板。
修复
- 中英文面板标题统一为
DSH Instance。
完整变更: v0.9.1...v0.9.2