# Changelog ## 0.3.0 (2026-09-22) - 配置写入采用 revision 校验和串行局部更新,避免导入、设置及看板操作互相覆盖。 - 修复设置就绪状态、旧凭据引用兼容和缺失凭据提示;保留主机身份与指纹绑定。 - 使用宿主真实的 `credentials.unset` 删除主机凭据,清理失败明确反馈。 - 宿主凭据更新后清除对应主机的退避,每次实际采集重新解析凭据,避免持续复用旧密钥。 - 增加仅缓存快照读取;构建强制检查客户端类型,打包前重新构建。 升级时需同时重新加载宿主与客户端;无 revision 的旧客户端配置写入将返回 409。 ## 0.2.0 (2026-09-18) 监控完整性大版本:告警系统、多卡对比、图表放大、主机收起,以及两轮全面代码审查落地的 50+ 项修复与加固。 ### 新功能 - **告警系统**(`/dash/events` 长轮询秒达): - 崩溃告警:GPU 从有训练进程变为无进程并持续 N 分钟(默认 5,设置页「崩溃判定」可调)→ toast + 系统通知(DSH 窗口最小化也可达)+ 🔔 告警中心(本会话历史、点击直达主机/GPU) - 主机失联 / 高温 / 日志停滞同链路推送;通知权限挂在铃铛首次点击(真实用户手势) - **多卡叠图对比**:主机卡曲线区「分卡 ⇄ 叠图」切换——同一指标多卡叠一张共享 Y 轴图(TensorBoard 范式),指标下拉、四色图例点选、十字线并列各卡取值 - **图表丝滑放大**:点击任意图表 FLIP 动画全屏灯箱(240px 高、Esc/背景/✕ 关闭、缩回原位),灯箱内曲线随轮询 **live 更新**;小图悬停微拾升 - **数据导出**:每张图 ⬇ CSV 下载 / ⧉ 剪贴板复制(长格式 series,timestamp,value) - **主机收起**:卡头 📥 收进「其他服务器」——**离线/异常也不再浮回主区**;📤 拉回;热力图 📥 标记 + 淡化;设置页「已收起」标签;持久化 - **GPU 热力总览条 + 舰队徽章**:每主机一行、每卡一色块(点击直达该卡);●N 训练中 / ●N 异常 / ●N 空闲 - **固定不限量**:📌 常驻主机无 4 台上限,异常自动上浮置顶 - **浮动窗口模式**、**右侧栏跟随**(并行会话贡献,一并发布) ### 监控引擎与正确性 - CPU 利用率改两次采样增量(原为开机均值);新增 1 分钟负载 - SSH 连接池:每主机常驻复用(暖轮询 ~470ms → ~125ms)、keepalive、断连重试、SFTP 半死自愈 - 曲线跨重启:冷启动从日志尾部大窗口种子化恢复最近 200 点 - 序列预算按价值紧凑:超参表一次性垃圾不再挤占 loss 曲线 - 日志游标防重:半写行(tqdm 同行续写)与日志轮转自动校正 - 退化帧防护:SSH 丢流帧不覆盖界面(字段级回退) ### 修复(两轮全面审查,50+ 项) - 安全:5 处远端路径 shell 注入(POSIX 单引号转义);凭据派生名防覆盖 + 旧名自愈迁移 - P1:toast 内容丢失、SFTP 通道泄漏(MaxSessions)、假崩溃告警(采集失败冻结倒计时)、半死连接假健康(空读抛错激活重试)、灯箱点击冒泡、events 冷启动死锁 - P2:pollAll/acquireConn 并发竞态、events 游标重放、PUT 半状态 500 语义、图表 O(n²) 重算、隐藏页通知死路(60s 低频轮询) - 大量 P3:死代码清剿、i18n 键对齐(151 键 zh/en 零缺失)、405/500 语义、UTF-8 请求体拼接、卸载清理等 ### 升级说明 - 宿主侧有改动:**需完全重启 DSH**(桌面端托盘退出 / `dsh web`)后生效 - 配置向后兼容:`archived` / `alertIdleMin` 均有默认值,旧配置无需迁移 - 个别主机若显示「认证被拒」:多为服务器侧未部署本机公钥(属环境配置,与插件无关),在服务器 ~/.ssh/authorized_keys 补录即可 ## 0.1.0 (2026-09-11) 首发版本。 ### 服务器看板:SSH 连接多台 GPU 主机,实时展示 GPU/CPU/内存/磁盘、占用进程与训练日志曲线;停滞/离线/高温即时提醒;实验日志零配置自动发现 - 兼容 DeepSeek Harness 0.1.5-rc.2(peer 范围 `^0.1.5-rc.2`) - 单包双半:host 侧(node)+ client 侧(浏览器 bundle) - 全部自定义路由仅接受本机(loopback)访问 - 详见 README ### 已知限制 见 README「已知限制」一节。