# 更新日志 本文件记录 dsh-ssh-workspace 的版本变更。0.1.16 之前的版本为未公开的本地迭代,未收录。 ## [0.1.24] - 2026-10-06 ### 安全 - 存储中的密码与私钥口令改为**加密保存**:AES-256-GCM,密文写入 `dsh-ssh.json` 的 `secrets` 段(按别名),密钥是 `$DSH_HOME/dsh-ssh.key`(`0600`)里的 32 字节 随机值,首次保存凭据时生成;`auth` 字段不再携带 `password` / `passphrase`。 - 启动时自动把老版本留下的明文凭据加密回写进 `secrets` 段(best-effort, 迁移条数写入日志),此后 `dsh-ssh.json` 不再出现明文。 - 密钥文件缺失或被更换时,连接明确报错并提示在面板重新保存该主机,而不是 静默认证失败。 ## [0.1.23] - 2026-10-01 ### 修复 - 修复会话中 `@` 远端文件引用点击后预览报「读取失败:Maximum call stack size exceeded」: 远端工作区根下的裸路径会在 `ctx.fs` 路由与本插件之间无限互相委派;`resolve` / `lstat` 现统一经 `remoteSourceOf` 消化两种裸拼写(相对名继承远端 cwd、绝对 POSIX 名按别名映射), 不再回递本地后端。 ## [0.1.22] - 2026-10-01 ### 安全 - 主机密钥 TOFU:首次连接记录指纹,之后不符即拒绝连接;新增 `hosts/forget-key` 路由与面板「忘记主机密钥」入口。 - HTTP 路由增加 Host 头校验(仅接受回环地址)与 POST `Content-Type` 校验(非 JSON 返回 415)。 - 凭据存储文件 0600、目录 0700,临时文件随机命名;写路径(复制 / 删除 / 发布) 接入 realpath 围栏校验。 ### 修复 - `exec` 输出跨块 UTF-8 解码安全,按字节截断不再切坏字符。 - `exec` 连接断开且无输出时自动重连重试一次。 ### 性能 - SFTP 元数据 1.5s TTL 缓存(仅读路径,写 / 删 / 挂载等主动失效)。 - 远端变更监视自适应退避(2s → 5s → 10s)。 - `streamText` 按需启用第二 SFTP 通道,大文件流式读取不占用共用通道。 ### 工程 - 新增 `tests/` 脱敏冒烟套件与运行器、GitHub Actions CI、`package-lock.json`、`.npmrc`。 - 引擎连接参数可配(空闲超时 / 连接超时 / keepalive / 回收扫描间隔)。 - `package.json` 补充 repository / homepage / bugs 元数据。 ## [0.1.21] - 2026-10-01 ### 变更 - 端口转发功能整体屏蔽(面板、工具、公告、路由均注释保留,可随时恢复); 相关文档同步移除,本阶段不发布该功能。 ## [0.1.20] - 2026-10-01 ### 新增 - `@` 文件引用支持远端工作区:输入 `@` 即可搜索并插入远端文件路径。 - 文件进任务:侧边栏文件树支持拖拽到对话框,或右键「添加到任务」,以 `@` 引用形式插入。 ## [0.1.19] - 2026-10-01 ### 修复 - 修复 0.1.18 引入的工作区向上探测崩溃(报 `not a remote workspace path: "ssh://<别名>"`): 路径拼写桥接对裸别名 `ssh://<别名>` 回退原生实现,恢复探测的平静终止。 ## [0.1.18] - 2026-10-01 ### 新增 - 终端命令远程化:会话工作目录为 `ssh://` 时,命令以 POSIX shell 语义在远端执行, 前台 / 后台任务、增量输出与取消等行为与本地一致。 - 远端文件搜索(ripgrep)与 git 变更追踪在远端执行。 - 远端变更监视(轮询式)。 - 大文件流式读取(分块惰性读取,跨块 UTF-8 安全)。 - 端口转发(本地监听 → 远端目标;0.1.21 起屏蔽)。 ## [0.1.17] - 2026-10-01 ### 新增 - 远程路径以 `@` 形式显示:工作区悬停卡片与文件面板路径标签显示 `ssh://<别名>@/<路径>`(仅显示层,功能拼写不变)。 ### 变更 - 发布文件脱敏:示例主机名与用户名替换为占位符;移除已废弃的第三方插件引用; README 与 docs 同步更新。 ## [0.1.16] - 2026-10-01 ### 修复 - 界面文案参数(如 `{ms}`)不再原样输出:插件改为注入 `locale` 服务。 - 对话页工作区按钮标记匹配修复(会话落地前按路径末段匹配、原地文本替换、 整棵子树挂载时补齐扫描)。 - 连接测试结果 toast 调整为顶部居中显示。 ### 变更 - 远程工作区标记图标放大并按图标边界裁剪,16px 下更清晰。 - 界面细节打磨:控件悬停 / 按下与焦点态、菜单与对话框入场动画 (尊重 `prefers-reduced-motion`)、语义化按钮与空 / 加载态、数字等宽排版。