# 变更记录 本项目遵循 [语义化版本](https://semver.org/lang/zh-CN/)。1.0.0 起,破坏性改动会升主版本。 ## 1.0.0 — 首个正式版本 **功能**(0.1.0 起逐步建成) - 右侧栏**单个「SSH 控制台」宿主标签** + 插件自建的可滚动二级标签条(常驻「控制台」首页、`▾` 下拉、`Ctrl+Alt+←/→`) - 本机 `ssh` 跑在**真实 PTY**:复用 `~/.ssh/config`、密钥、ssh-agent、ProxyJump,密码/2FA 在终端里交互 - 用户与 AI **共用同一条会话**:双向可见、输入权互斥、一键「收回控制」(真 Ctrl+C) - 9 个 AI 工具 + **三级权限**(仅可看 / 问答 / 完全)+ 危险命令**可取消的告知窗口** - 用户→AI 三种留言(提问 / 报错附最近输出 / **仅记录**,零 token) - **JSONL 审计日志**:命令全量、输出截断并标注、口令打码、按一次交互合并、历史可浏览、按会话分文件 - 日志生命周期:超阈值自动 gzip 归档(支持 `12h` 这类小时级与小数天)、可配保留期、活跃会话永不被移动 - 断线**原地重连**、浏览器端连接记忆、跨平台(PTY 由宿主提供,代码无平台分支) - 自带 **九套 253 项自检**(含真 PTY/真 ssh/真 Cordis 集成与一致性检查)与日志度量脚本 **Windows / ConPTY 适配**(0.1.1 → 1.0.0,来自三份实机验证报告) - `\r` 按"重写当前行"投射、连续空行折叠:整屏重绘不再灌满输出环与日志(字节/行 15.0 → 38+) - 空闲重绘帧去重;resize 触发的**重放**即使在命令执行中也丢弃 - `ssh_read` 在投射后的可见行上分页;诊断字段 `session.resize` / `visibleBytes` / `repaintsSkipped` 等 - 哨兵三方言(posix / cmd / PowerShell)+ `remoteShell: auto` 自动探测 - **cmd 哨兵独立行**(同行 `%ERRORLEVEL%` 会在整行解析期取到旧值) - **Windows 上明文哨兵**(`markerMode: auto`):ConPTY 会吃掉"打印后立刻擦行"的内容,隐藏无害、擦行致命 - token 匹配容忍折行插入的 `\b`/`\n` - 回显剥离只做**块级删除**(提示符+命令回显 / 哨兵脚本回显 / 取值行 / 尾部提示符),不依赖方言顺序 - 哨兵连续失败后**降级快速失败**并标注 `markerUnavailable`;`revokedSource` 区分打断来源 **验证状态**(重要) | 环境 | 状态 | |---|---| | Linux(作者本机,真 sshd + 真 Cordis) | ✅ 九套 253 项全绿 | | Windows 10 22H2 + DSH 桌面版 0.2.0-rc.2(第三方实测) | ✅ 0.1.3 起 POSIX 哨兵打通、cmd 退出码正确;**1.0.0 的块级删除修复(源自 0.1.3 报告)尚未在 Windows 复测** | | macOS | ⚠️ 未实测(代码无平台分支) | ## 0.1.4 - 修掉 0.1.3 在 cmd 上"正文恒空"的回归:0.1.3 假设"单行命令的输出必在哨兵回显之后",只对 posix 成立 - 改为**只做块级删除**,不再依赖任何顺序假设;折行残片(`' $?`)一并清除 - 补 **cmd 顺序** fixture(正是这个缺口让回归逃过 53 项自检) - 修正 plumbing 判定:`seq 1 400` 这类纯数字输出不再被误删 ## 0.1.3 - Windows 上改用**明文哨兵**(`\033[K` 擦行会被 ConPTY 吃掉;隐藏无害) - token 匹配容忍折行;`markerMode` / `markerFailThreshold` / `degradedTimeoutMs` 配置 - `revokedSource`;内置 `tools/log-metrics.mjs` ## 0.1.2 - cmd 哨兵改为**独立行**(同行 `%ERRORLEVEL%` 解析期展开,`call` 救不回来) - 哨兵取值只认「本 token 回显之后」的匹配,杜绝重放旧值 - resize 触发的整屏重放即使在命令执行中也丢弃;审批条改**覆盖层**;客户端 resize 去抖 ## 0.1.1 - `\r` 重写语义 + 空行折叠 + 空闲重绘去重(ConPTY 噪声不再灌满日志与分页) - `ssh_read` 按投射后的可见行分页;`session.resize` 与重绘计数进入审计与 `ssh_status` - 顺带修掉:多行命令自身行被当作回显误删真实输出;尾随 `\r` 清空整行 ## 0.1.0 - 首个完整版本:共享 PTY、三级权限、危险告知、审计日志、历史归档、原地重连