# Changelog 本项目的所有重要变更都会记录在此文件。 格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/), 版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。 > **0.x 期间说明**:主版本为 0 时,次版本号(0.**x**.0)可能包含破坏性变更, > 修订号(0.1.**x**)只包含兼容性修复。 ## [Unreleased] ### 计划中 - 场景二:远端会话总览 / 跟随 / 接管(所需远端 API 均已实测) - 取消远端运行中会话的真实链路实测 - 直连模式(无需 SSH,适用于只有域名+令牌的远端) ## [0.1.1] - 2026-10-15 ### 文档 - README(中英)新增「版本与更新」小节:升级命令与固定版本的写法(均经封闭实验实测) - 新增本 CHANGELOG 与 RELEASING.md(发布流程、版本号规则) > v0.1.0 的 tag 在发布当日随修复有过移动,最终包含:首版全部功能、中英 README 分离、 > 双语截图接入、环境行分隔符修复(含回归测试)、GitHub 直装为主线。详见 0.1.0 小节。 ## [0.1.0] - 2026-10-14 首个公开版本。 ### 新增 - **一键接入远端环境**:填 `user@host`,自动探测远端 dsh、读取访问令牌、建立 SSH 隧道并验证 (真实服务器实测约 5 秒接入,读到 38 个远端会话) - **令牌获取四级降级**:服务管理器日志 → 全局 journal → 进程 stdout(`/proc//fd/1`)→ 常见日志文件 - **每环境自动本地工作区**:`$DSH_HOME/workspaces/<环境名>`,重名自动加 `(1)`/`(2)` 后缀; 移除环境只注销登记,绝不删除文件 - **新会话自动绑定远端路由**:在环境工作区里新建会话即自动成为远端会话 - **真流式**:远端回复按 token 流入本地会话(实测 240 字回复,末段 2.6 秒为边生成边显示) - **远端会话配对命名**:远端侧自动命名为 `控制端·<本地标题>`,两边可对账 - **会话行远端标识**:侧栏会话行带标识(视觉需人工验收) - **启动自愈**:重启即修复"环境已连接但缺工作区"的状态,失败原因写入状态文件 - **环境行状态说明**:显示"已有工作区 / 无工作区",失败不再静默 ### 修复(发布当日) - **环境行名字与状态黏连**:面板显示 `cn-dsh2已连接` → 修正为 `cn-dsh2 · 已连接 · …` (摘要自带分隔符;新增会失败的回归测试,已做变异验证) ### 安全 - 不在远端安装/写入任何内容,不管远端进程生命周期;SSH 仅用于只读探测与取令牌 - 令牌仅存于 `$DSH_HOME/dsh-control/state.json`(0600),不进日志、不外发 - 免密未配置时只给出修复命令,绝不保存密码 ### 已知限制 - 远端需已安装 dsh(≥ 0.2.0-rc.2)并运行 web 实例 - 接入依赖 SSH(需免密或已配置密钥) - 取消远端运行中会话:已实现,标注 experimental - 会话行标识与流式观感为人工验收项 ### 测试 - 53 项自动化测试(单元 / 界面契约 / 结构不变式)+ 启动自愈集成脚本 - 结构不变式与集成脚本均做过变异验证(撤掉修复必失败) [Unreleased]: https://github.com/6mt/dsh-control/compare/v0.1.1...HEAD [0.1.1]: https://github.com/6mt/dsh-control/compare/v0.1.0...v0.1.1 [0.1.0]: https://github.com/6mt/dsh-control/releases/tag/v0.1.0