Files
remoteconn-gitea/release.md
2026-03-21 18:57:10 +08:00

1251 lines
56 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Release Notes
规则:新版本内容放在最后
## v1.1.0
发布时间2026-02-26
版本定位Terminal 语音输入全链路 + 网关语音代理 + Web 稳定性增强
### 变更亮点
- 终端语音输入能力落地:
- 新增 `TerminalVoiceInput` 组件,支持“按住说话、松开停止、点击发送才提交”;
- 增加 `voice/cancel/clear-input/sent` 图标与操作流;
- 支持按钮拖动、防丢手势收尾、连续多轮语音输入聚合到同一输入框。
- 网关新增语音 WebSocket 入口 `/ws/asr`
- 统一 `start/audio/stop/cancel/ping` 协议;
- 对接豆包 ASR火山引擎并补齐 `ready/result/error/round_end` 回传语义;
- 上游异常与非标准返回增加兼容解析(文本 JSON、NDJSON、粘包 JSON
- 生产稳态优化:
- 网关与语音上游默认关闭 `permessage-deflate`
- `result` 默认不回传完整 raw payload降低下行负载可通过开关临时启用
- 空文本结果告警按连接限次,避免日志风暴。
- 前端容错增强:
- 路由懒加载失败自动恢复(识别动态导入失败文案后单次自动刷新);
- 15 秒窗口内仅允许一次自动恢复,避免刷新死循环;
- 全局缩放防护补齐双击路径(与 pinch/ctrl+wheel 共同生效)。
### 新增配置
- `apps/gateway/.env.example` 新增:
- `ASR_PROVIDER`
- `ASR_APP_ID`
- `ASR_ACCESS_TOKEN`
- `ASR_SECRET_KEY`
- `ASR_RESOURCE_ID`
- `ASR_CLUSTER`
- `ASR_WS_URL`
- `ASR_INCLUDE_RAW_RESULT`
- `ASR_EMPTY_TEXT_WARN_LIMIT`
### 新增模块与测试
- Gateway 新增:
- `apps/gateway/src/voice/clientProtocol.ts`
- `apps/gateway/src/voice/volcAsrProtocol.ts`
- `apps/gateway/src/voice/asrText.ts`
- `apps/gateway/src/voice/upstreamPayload.ts`
- 及对应测试文件 `*.test.ts`
- Web 新增:
- `apps/web/src/components/TerminalVoiceInput.vue`
- `apps/web/src/utils/dynamicImportGuard.ts`
- `apps/web/src/utils/dynamicImportGuard.test.ts`
### 涉及文件(核心)
- `apps/web/src/components/TerminalPanel.vue`
- `apps/web/src/components/TerminalVoiceInput.vue`
- `apps/web/src/styles/main.css`
- `apps/web/src/main.ts`
- `apps/gateway/src/server.ts`
- `apps/gateway/src/config.ts`
- `docs/terminal-voice-input-plan-2026-02-26.md`
- `question-solved.md`
## v1.0.1
发布时间2026-02-23
版本定位生产架构版稳定性更新Web 终端 + Gateway + 插件运行时)
### 里程碑与亮点
- 完成 `apps/web``apps/gateway``packages/shared``packages/plugin-runtime` 的多包工程闭环,主链路可用。
- 完成终端中文输入修复:覆盖 IME 组合态、网关输入归一化和 zsh 兼容初始化。
- 新增移动端触摸焦点状态机策略,改善“滚动/选区/弹键盘”互相抢占的问题。
- 新增统一运维脚本 `scripts/gatewayctl.sh`,支持 `ensure-env/build/install/restart/health/deploy` 全流程。
- 增加 Gateway 与 TTYD 双链路性能基线压测脚本,便于回归与容量评估。
### 核心特性
- 服务器管理与凭据管理Web 端 IndexedDB + AES-GCM 受限存储)。
- 终端会话状态机(`connecting/auth_pending/connected/reconnecting/disconnected/error`)。
- 网关双向转发(`init/stdin/stdout/stderr/resize/control`)。
- Codex 模式编排(`cd` -> `command -v codex` -> `codex --sandbox`)。
- 会话日志记录与脱敏导出。
- 插件运行时manifest 校验、权限白名单、生命周期管理、单插件熔断)。
### 基础功能
- 终端连接页、终端页、日志页、设置页、插件管理页。
- 终端顶部支持连接状态反馈与“断开/重连”切换。
- 输入链路支持键盘与辅助输入协同,降低移动端输入法异常提交影响。
- 主题系统支持预设切换与对比度优化。
- iOS Capacitor SSH 插件工程骨架已接入(`ios/plugin/RemoteConnSSHPlugin`)。
### 技术实现
- 前端Vue3 + TypeScript + xterm.js`fit/webgl/search/unicode11`)。
- 网关Node.js + WebSocket + SSH2支持 `keyboard-interactive -> password` 显式回退策略。
- 共享层:统一模型、状态机、主题与日志脱敏能力。
- 可观测性:新增 IO HEX 调试链路与统一日志格式,便于定位输入输出编码问题。
- 运维:`systemd`/`launchd` 双通道托管,脚本化安装、重启与健康检查。
### 项目结构
- `apps/web`Web 客户端与终端 UI。
- `apps/gateway`WSS -> SSH 网关服务。
- `packages/shared`共享模型、Codex 编排、主题与安全工具。
- `packages/plugin-runtime`:插件系统运行时。
- `ios/plugin/RemoteConnSSHPlugin`iOS 原生 SSH 插件骨架。
- `scripts/gatewayctl.sh`:网关服务部署与运维脚本。
### 设计理念
- 稳定优先:先保证 SSH 主链路与输入链路可靠,再迭代交互细节。
- 安全优先:凭据最小暴露、日志默认脱敏、插件权限显式声明。
- 小步迭代:以可验证的小改动推进,避免一次性大范围重构。
- 可扩展优先:通过共享包与插件运行时降低后续多端扩展成本。
## v1.0.3
发布时间2026-02-23
版本定位iOS 触摸焦点状态机稳定性修复
### 变更亮点
- 修复 iPhone 上点击激活带后软键盘弹出立刻收起的问题。
- 修复 iOS 长按选中后继续移动手指选区消失的问题(第二层根因)。
- `visualViewport` 键盘收起检测升级为两阶段状态机,彻底规避 iPhone 地址栏折叠误判。
- 新增 `touchmove` capture 保护层,在系统 `pointercancel` 接管后仍能阻断 xterm 清除原生选区。
### Bug 修复
#### iPhone 软键盘弹出后立刻收起
**根因 1标志时序**`focusKeyboardInProgress = true` 原先在 `ae.blur()` 之后设置,而 iOS blur 事件**同步**触发——`ae.blur()` 返回前 `onTextareaBlur` 已执行flag 仍为 `false``readOnly=true` 立即打断键盘激活。
**根因 2visualViewport 误判)**iPhone Safari 键盘弹出前地址栏会短暂折叠,`visualViewport.height` 先短暂**增大**,原来"高度一增大就判定键盘收起"的逻辑将此误判为键盘收起,触发 `readOnly=true + blur()`iPad 无地址栏折叠行为,不受影响。
**修复**
1.`focusKeyboardInProgress = true` 移到 `ae.blur()` 调用**之前**。
2. cleanup 定时器从 60ms 延长至 **400ms**(覆盖 iPhone 键盘动画全程约 300ms同时承担 focus 重试ID 保存在 `focusKeyboardTimerId``touchstart` 取消。
3. `visualViewport.resize` 检测改为**两阶段状态机**`keyboardViewportShrinkDetected`):先检测到"明显缩小">120px才接受"明显增大">120px为键盘收起小幅抖动一律忽略。
#### 长按选区移动时选区消失
**根因**iOS 长按进入系统选区后先触发 `pointercancel`(系统接管),后续以 `touchmove` 驱动放大镜/手柄。`pointercancel` 后 pointer 门控已重置,`touchmove` 直达 xtermxterm 调用 `removeAllRanges()` 清空选区。
**修复**
1. 新增 `touchmove` capture 拦截器:终端区域内存在原生选区时执行 `stopImmediatePropagation()`,不调用 `preventDefault()`(不影响滚动)。
2. `pointercancel` 中:若已有原生选区,将 `lastTouchAction` 置为 `PASS_NATIVE`,确保后续合成 `mousedown/click` 也受保护。
### 涉及文件
- `apps/web/src/components/TerminalPanel.vue`
## v1.0.5
发布时间2026-02-23
版本定位iPhone 触摸滚动动量阶段性优化
### 变更亮点
- 修复 iPhone 上“快速滑动只滚动一两行”的主要问题:触摸速度估算改为按时间归一化,不再依赖低频事件间隔下的位移直算。
- 新增 `touchend/touchcancel` 动量续滚链路RAF 指数衰减),手指抬起后可继续平滑滚动。
- 保留原生选区优先级:存在系统选区时禁用动量续滚,避免影响长按选区与手柄拖拽。
### 参数调整(本次)
- `TOUCH_SCROLL_DAMPING`: `0.93 -> 0.95`
- `TOUCH_SCROLL_STOP_THRESHOLD`: `0.4 -> 0.2`
- `TOUCH_SCROLL_MAX_SPEED`: `80 -> 120`
- 新增 `TOUCH_SCROLL_BOOST = 1.35`
### 当前状态
- 快速滑动体验已明显改善。
- 仍存在“未达到原生 iOS 完全一致手感”的差距,后续通过参数微调(`BOOST / DAMPING / MAX_SPEED`)继续迭代。
### 涉及文件
- `apps/web/src/components/TerminalPanel.vue`
## v1.0.6
发布时间2026-02-24
版本定位Console 触摸工具区可点击性与误触防护优化
### 变更亮点
- 对齐 Figma `frame 2248/2251` annotation将工具区交互保护范围扩展为更大命中区`2251` 语义层),同时保持 `2248` 视觉布局。
- 工具菜单展开时:保护区内点击不再透传到 shell降低误触输入与误聚焦。
- 工具菜单展开时:点击保护区外自动折叠菜单;折叠状态不启用保护区,不影响终端正常点击。
- 全应用按钮点击区域统一向四周扩展 `8px`,提升手机/Pad 点击容错(例如 `22x22 -> 38x38`)。
### 交互细节
- 保护区仅在 `touchToolsExpanded=true` 生效;折叠态仅保留键盘按钮自身命中。
- 外部点击折叠通过 `pointerdown capture` 实现,不改变既有按钮视觉样式与布局。
- 按钮命中扩展采用样式层实现,视觉尺寸不变,仅增加可点击面积。
### 涉及文件
- `apps/web/src/components/TerminalPanel.vue`
- `apps/web/src/styles/main.css`
## v1.0.8
发布时间2026-02-24
版本定位:配置中心稳定性与运维配置落地
### 变更亮点
- 修复全局设置刷新丢失:定位并修复 IndexedDB `DataCloneError`(写入对象改为纯快照),主题与其它配置可稳定持久化。
- 配置页交互改进:恢复“保存设置”显式提交入口,同时保留自动保存与离页强制保存兜底。
- 新增 UI 模式切换:用户界面支持 `深色/浅色` 模式,并与主题预设联动重算颜色。
- 统一主题可读性规则:按钮色采用“背景与文本之间、偏向文本侧”的自动推导逻辑。
- 落地网关运维配置文件:支持读取 `apps/gateway/config/runtime.json`,并按 `Env > runtime.json > 默认值` 合并(`GATEWAY_TOKEN` 仅 Env
### 涉及文件
- `apps/web/src/views/SettingsView.vue`
- `apps/web/src/stores/settingsStore.ts`
- `apps/web/src/services/storage/db.ts`
- `apps/web/src/styles/main.css`
- `apps/gateway/src/config.ts`
- `apps/gateway/config/runtime.json`
## v1.0.9
发布时间2026-02-25
版本定位:连接体验治理 + 服务器列表交互与移动端触控优化
### 变更亮点
- Codex 启动链路提示治理
- 点击“连接”后立即关闭“启动 Codex”窗口
- 预检阶段吞掉内部命令回显,不向终端泄漏探测细节;
- 仅在真实失败时提示 `codex工作目录不存在 / 服务器未装codex`,正常启动不提示失败 toast。
- 会话续接体验增强
- 页面刷新触发 WS 短断后,网关保留 SSH 会话等待续接;
- 前端“可续接窗口”状态高亮(强调色)并支持会话恢复显示。
- 认证信息安全显示优化
- 私钥内容不明文回显;
- 已保存私钥改为 16 位圆点掩码回显(仅覆盖占位,不泄露密钥)。
- 我的服务器列表新增拖拽排序能力(手柄拖动重排 + 持久化顺序恢复)。
- 拖拽交互增强:按住 `move.svg` 后卡片凸起,拖动时卡片跟随手指移动,落点高亮更明显。
- 服务器管理页新增 AI 按钮,图标资源统一迁移到 `apps/web/public/assets/icons/`
- 图标配色与主题规范对齐:
- `ai.svg` 使用按钮色(`--btn`
- `move.svg` 使用强调色(`--accent`
- 交互防误触增强:
- 服务器管理页文本禁止选择;
- 全页面禁用双指缩放iOS gesture + 多点 touchmove + Ctrl+wheel 兜底)。
### 关键修复
#### 1) 拖拽排序“看起来无效/偶发不生效”
根因:
1. 原 HTML5 `dragstart/drop` 链路在部分 WebView/触屏环境稳定性较差。
2. 向下拖到相邻项时,插入索引计算回到原位,表现为“松手后没变化”。
3. `elementFromPoint` 在某些场景命中浮层/伪元素,导致目标项识别失败。
修复:
1. 改为 Pointer 事件链路(`pointerdown/move/up/cancel`)。
2. 加入 `window + document(capture)` 双监听兜底,避免丢 move/up 事件。
3. 目标命中增加 y 坐标回退逻辑。
4. 调整重排算法:向下拖拽插到目标后,向上拖拽插到目标前。
#### 2) 服务器页误选文字
根因:拖拽/长按过程中,浏览器可能触发原生文字选择高亮。
修复:服务器管理页作用域内统一 `user-select: none`
#### 3) 双指缩放未完全禁用
根因:仅 `meta viewport` 在部分设备/容器下不足以完全拦截缩放手势。
修复:在启动入口增加多层手势防缩放守卫:
1. 拦截 `gesturestart/gesturechange/gestureend`iOS
2. 拦截多触点 `touchmove`
3. 拦截 `Ctrl + wheel`
#### 4) Codex 启动成功却提示“未安装/目录不存在”
根因:
1. 启动预检输出与真实失败信号混在同一输出流,存在“命令回显文本误判为失败”的风险。
2. 连接切换/旧连接残留输出会干扰当前连接提示,导致误报 toast。
3. 交互上“点击连接后弹窗仍停留”与用户预期不一致。
修复:
1. 引入独立 token 行判定(目录不存在 / codex 缺失 / ready不再按普通文本 contains 误判。
2. 预检阶段拦截并净化输出,仅在当前活跃连接且真实失败时发 warn toast。
3. 点击“连接”后立即关闭启动窗口,后续仅通过 toast 表达结果。
#### 5) 刷新后会话断开感知强、续接状态不清晰
根因:
1. WS 关闭码处理过窄会导致可续接场景未进入驻留窗口。
2. 前端缺少显式“可续接”状态表达,用户难判断当前是否可恢复。
修复:
1. 网关将 `1001/1006` 等短断码纳入驻留续接窗口(默认 20s
2. 前端新增 `isServerResumable` 判定并在连接按钮上使用强调态显示。
### 涉及文件
- `apps/web/src/views/ConnectView.vue`
- `apps/web/src/styles/main.css`
- `apps/web/src/main.ts`
- `apps/web/src/views/TerminalView.vue`
- `apps/web/src/stores/sessionStore.ts`
- `apps/web/src/views/ServerSettingsView.vue`
- `apps/gateway/src/server.ts`
- `apps/web/public/assets/icons/ai.svg`
- `apps/web/public/assets/icons/move.svg`
---
## 下载和安装
```bash
git clone <repo-url>
cd remoteconn
npm install
```
### 系统要求
- Node.js LTS仓库未在 `package.json` 强制 `engines`,建议使用当前 LTS 版本)。
- npm workspace 可用(根脚本依赖 `npm run --workspaces`)。
- 若需网关守护进程部署Linux 需 `systemd`macOS 需 `launchd`
### 快速开始
```bash
npm run dev:gateway
npm run dev:web
```
默认地址:
- Web`http://localhost:5173`
- Gateway`http://localhost:8787`
- Gateway WS`ws://localhost:8787/ws/terminal`
### 生产构建
```bash
npm run build
```
网关运维(非 Docker
```bash
scripts/gatewayctl.sh ensure-env
scripts/gatewayctl.sh install-service $USER
scripts/gatewayctl.sh deploy
```
### 支持和反馈
- 终端中文输入修复细节:`docs/terminal-chinese-input-fix-2026-02-22.md`
- 触摸焦点状态机方案:`docs/touch-focus-state-machine-plan-2026-02-23.md`
- 问题反馈建议附带:终端日志、网关日志、复现步骤与设备信息(系统/浏览器/输入法)。
## v2.0.0
发布时间2026-02-27
版本定位语音输入交互定稿Figma 对齐)+ 闪念记录闭环 + 文档与发布规范统一
### 变更亮点
- 语音输入区 UI 对齐 Figma`Frame 2253 / Frame 2256`
- `voice + record + send` 形成单手操作组,展开态联动;
- 几何约束统一,`send` 最右边到 `clear` 左边固定 `16px`
- 新增整块 `Frame 2256` 背景层,圆角 `16px`
- 背景透明度规则:常态 `40%`,按住 voice 录音态 `100%`
- 与输入框重叠区域放在输入框层级之下,避免遮挡与误触。
- 语音闪念能力上线:
- `record` 记录写入本地 `IndexedDB`
- 新增 `RecordsView`支持分页15 条/页)、导出、删除;
- 底栏新增闪念入口(`recordmanager.svg`),除 records 页面外统一展示。
- 日志页可读性增强:
- `LogsView` 改为分页15 条/页);
- 增加总数与空态提示,移动端列表浏览更稳定。
- 资产与缓存治理:
- 关键 SVG 引用统一增加版本 query避免同名资源替换后缓存命中旧图
- Web 静态资源缓存策略补齐文档与问题清单记录。
- 交互一致性修正:
- 底部工具条 `config.svg` 统一排到最后,跨页面顺序一致。
### 涉及文件(核心)
- `apps/web/src/components/TerminalVoiceInput.vue`
- `apps/web/src/views/RecordsView.vue`
- `apps/web/src/views/LogsView.vue`
- `apps/web/src/App.vue`
- `apps/web/src/styles/main.css`
- `apps/web/src/stores/voiceRecordStore.ts`
- `apps/web/public/assets/icons/record.svg`
- `apps/web/public/assets/icons/recordmanager.svg`
- `docs/terminal-voice-records-plan-2026-02-27.md`
- `question-solved.md`
- `README.md`
- `release.md`
## v2.2.0
发布时间2026-03-06
版本定位:闪念增强定稿版(分类/编辑/查询/快速整理)+ 配置页精修
### 变更亮点
- 闪念清单升级为可整理工作流:
- 支持分类、编辑、关键字搜索、分类过滤、快速改分类;
- 新增 `updatedAt / category / contextLabel` 数据字段;
- 导出内容补齐分类、上下文快照与更新时间。
- 语音输入与闪念联动增强:
- 未连接时可继续语音输入并记录闪念;
- `record` 动作支持当前分类与上下文快照;
- 上下文格式固定为 `服务器名称-项目名`
- 全局配置增加闪念分类治理:
- `全局配置 -> 记录 -> 闪念分类` 支持新增、设默认、删除、排序;
- 分类管理使用统一操作按钮与拖拽排序。
- 文档基线统一到 `v2.2.0`
- 闪念实现基线改写为面向小程序的最终对齐依据;
- 小程序版本审计改为相对 `Web v2.2.0` 的真实差异说明。
## v2.3.0
发布时间2026-03-06
版本定位:小程序大范围能力对齐版 + Web 交互与稳定性小修复
### 变更亮点
- 小程序完成本轮较大能力对齐:
- 补齐 `connect / server settings / terminal / logs / records / settings / plugins` 主页面链路;
- 闪念支持分类、搜索、分类过滤、编辑、快速改分类与导出;
- 语音输入支持分类写入、未连接可记录闪念、写入 `服务器名称-项目名` 上下文快照;
- `记录 -> 闪念分类` 管理支持新增、设默认、删除、按住拖动排序;
- 服务器配置支持标签维护,服务器卡片底部展示项目标签与自定义标签;
- 目录选择“长时间加载后超时”问题修复,目录命令改为更稳的 `sh -lc '...'` 外层调用方式。
- Web 端继续精修现有能力:
- 配置页控件密度、卡片层级和记录页交互细节继续收敛;
- 闪念卡片滑动操作、快速改分类弹层、编辑弹框与分类视觉语义完成多轮细调;
- 终端输入与语音记录联动补齐边界行为。
### 文档更新
- 文档口径统一升级到 `v2.3.0`
- 根 README、发布说明、小程序 README 同步更新;
- 小程序对齐审计调整为 `done`
- 配置实现方案、闪念实现基线、机读 parity 清单统一切到 `v2.3.0`
### 涉及文件(文档与清单)
- `README.md`
- `release.md`
- `apps/miniprogram/README.md`
- `apps/miniprogram/parity.v2.3.0.json`
- `docs/miniprogram-v2.0.0-alignment-audit-2026-02-27.md`
- `docs/miniprogram-config-implementation-plan-2026-02-28.md`
- `docs/records-enhancement-plan-2026-03-06.md`
## v2.6.0
发布时间2026-03-07
版本定位:小程序跳板机链路 + AI 快速启动 + v2.4.0 基线并档
### 变更亮点
- 小程序终端补齐后台续接链路:
- 终端页返回其他页面后,会话默认继续保活 `15` 分钟,可在设置页配置为 `1~60` 分钟;
- 再次进入同一服务器时优先复用原会话,并恢复终端尾部缓冲,修复“只有光标没有 prompt”问题
- 网关补齐 `resumeGraceMs` 驻留时长透传,并增加服务端上限保护。
- 小程序服务器列表继续收敛连接反馈:
- 连接态按钮保持亮色高亮;
- 新增外圈描边,视觉语义与 `copy` 按钮风格保持一致。
- 小程序终端渲染稳定性继续收敛:
- 保持真实 `cols/rows` 计算、xterm 风格 cell 模型、自绘 caret 与宽字符 continuation 渲染;
- 中文/英文混排输入与多页面切换场景下的终端显示一致性继续提升。
- 修复 Linux 服务器连接/重连后 caret 纵向逐次偏移、`clear` 后才恢复的问题;
- 空白 buffer 行高度、滚动状态读取与 overlay 同步时序重新对齐,减少首屏 banner 较长时的光标错位。
- Web 与小程序补齐 SSH 跳转主机链路:
- 服务器配置页新增“跳转主机”卡片,支持第一跳/第二跳独立认证配置;
- 网关支持通过第一跳 SSH 的 `direct-tcpip` 转发建立第二跳 SSH
- 主机指纹按基础信息服务器与跳转主机分别上报,便于可信校验与落库。
- 小程序补齐 AI 快速启动链路:
- 服务器列表 `AI` 按钮可直接进入终端页并自动打开 AI 面板;
- 终端页在未连接、连接中、已连接三种状态下统一支持 AI 启动意图消费;
- Codex 启动前增加目录存在性与二进制存在性预检,失败时用明确提示代替隐式卡住。
- 小程序终端交互继续收敛:
- 断开态提示改为显式展示,便于识别“已挂起可恢复”与“真实断开”;
- 语音悬浮按钮在展开、拖动、键盘开合与收起后的定位规则继续收敛。
- 小程序闪念页补齐一组数据丢失与操作闭环问题:
- 编辑弹窗改为自动保存,关闭弹窗、切后台、离开页面时都会立即 flush避免修改内容后忘记点保存而丢失
- 编辑弹窗收口为右下角关闭按钮,减少原底部双按钮布局对内容区的挤压;
- 快速改分类弹层与分类展示样式继续收敛,减少记录整理时的跳转负担。
### 文档更新
- 文档口径统一升级到 `v2.6.0`
- 根 README、发布说明、小程序 README、对齐审计、配置实现方案、闪念实现基线同步更新
- 新增 `apps/miniprogram/parity.v2.6.0.json` 作为当前机读对齐清单;
- 新增 `docs/ssh-jump-encryption-diagram-2026-03-07.md` 说明跳板机加密链路;
-`v2.4.0` 的已发布内容并入当前 `v2.6.0`,不再单列维护当前版本口径。
### 涉及文件(文档与清单)
- `README.md`
- `release.md`
- `apps/miniprogram/README.md`
- `apps/miniprogram/parity.v2.6.0.json`
- `docs/miniprogram-v2.0.0-alignment-audit-2026-02-27.md`
- `docs/miniprogram-config-implementation-plan-2026-02-28.md`
- `docs/records-enhancement-plan-2026-03-06.md`
- `docs/terminal-voice-records-plan-2026-02-27.md`
- `docs/ssh-jump-encryption-diagram-2026-03-07.md`
## v2.6.1
发布时间2026-03-08
版本定位:小程序终端字号问题临时收口版
### 变更亮点
- 小程序设置页增加终端字号使用提示:
- 在“字号”配置项下新增小字提示“修改字号后建议断开重连”;
- 作为当前版本对“修改字号后偶发吃字/显示不完整”的临时规避方案。
- 小程序设置页与服务器配置页补了一组输入稳定性修复:
- 设置页数字输入改为“编辑阶段保留草稿,保存时再归一化”,不再边输入边被即时纠正;
- 服务器配置页和跳板机端口同样改为保留原始输入,避免输入中被自动裁剪、补默认值;
- 终端字体收敛到已验证稳定的等宽字体集合,历史不安全字体自动回退,减少因为比例字体导致的横向错位。
- 设置页增加字体配置兜底:
- 若字体配置模块异常或安全字体列表取值失败,设置页仍能正常打开;
- 会自动回退到最小可用的等宽字体集合,避免整页因为字体选项异常而崩掉。
- 小程序终端保留当前较稳定实现,不再继续扩大修复范围:
- 将字号导致的偶发吃字问题明确记录为遗留问题;
- 当前版本以“略有改善、可继续使用”为准,后续单独排期处理彻底修复。
- 清理排查阶段调试输出:
- 移除终端排查期间新增的 `terminal.wrap` 调试日志;
- 保留正式错误告警与必要运行日志,不再持续打印定位信息。
- 小程序版本口径统一更新为 `v2.6.1`
- 应用入口、插件运行时默认版本、项目说明与相关文档同步更新。
### 已知遗留问题
- 小程序终端在修改字号后,仍可能出现偶发“吃字/显示不完整”。
- 当前建议:修改字号后手动断开并重连终端会话。
### 文档更新
- 根 README、小程序 README 与发布说明同步记录 `v2.6.1`
- 标注该问题为当前遗留项;
- 说明临时使用建议;
- 保持当前版本为稳定基线。
### 涉及文件(核心)
- `apps/miniprogram/pages/settings/index.wxml`
- `apps/miniprogram/pages/settings/index.wxss`
- `apps/miniprogram/pages/terminal/index.js`
- `apps/miniprogram/app.js`
- `apps/miniprogram/utils/pluginRuntime.js`
- `apps/miniprogram/project.config.json`
- `apps/miniprogram/pages/plugins/index.wxml`
- `README.md`
- `apps/miniprogram/README.md`
- `release.md`
## v2.6.5
发布时间2026-03-08
版本定位:小程序终端 VT P0 基线收口版
### 变更亮点
- 小程序终端 VT 最小可用能力继续推进并收口到当前基线:
- 双缓冲与备用屏幕切换已进入当前实现,`47 / 1047 / 1048 / 1049``DSR / CPR / DA1 / DA2 / DECSTR`、基础局部重绘与原始按键编码已接入;
- normal buffer 与 alternate screen 的渲染语义已分离,后续补更完整 VT 能力时可以继续在现有基线上迭代;
- 当前 P0 主链路已基本打通,后续重点转向 parser 完整度、P1 边界精修与高级交互能力。
- 小程序终端视口与滚动边界补齐了一轮稳定性修复:
- normal buffer 的 live tail 与最大滚动值改为同源;
- 历史内容回到底部后,不再继续把当前命令行往上推;
- 相关纯函数测试已补齐,避免后续 VT 扩展把该问题带回。
- 文档与版本口径统一更新为 `v2.6.5`
- 根 README、小程序 README、发布说明、小程序项目描述与运行时默认版本已同步
- 当前进展、核心缺口与后续迭代顺序已写入终端 VT 实施方案文档,便于后续继续接续。
### 当前仍需补充完善的核心能力
- 终端 parser 仍是轻量实现,距离更完整的 VT500 状态机还有差距。
- `reverseWraparound``applicationKeypad``sendFocus``insertMode` 等模式位尚未补齐。
- `scroll region / insert-delete / origin mode` 仍需继续做 P1 级语义精修。
- `DECSCUSR` 光标样式、focus reporting、mouse reporting 与 alt screen 挂起恢复策略仍待后续迭代。
### 已知遗留问题
- 小程序终端在修改字号后,仍可能出现偶发“吃字/显示不完整”。
- 当前建议:修改字号后手动断开并重连终端会话。
### 文档更新
- 当前版本说明与终端 VT 实施进展已同步更新到:
- `README.md`
- `apps/miniprogram/README.md`
- `docs/miniprogram-terminal-vt-implementation-plan-2026-03-08.md`
- `docs/miniprogram-terminal-vt-guardrails-2026-03-08.md`
### 涉及文件(核心)
- `README.md`
- `release.md`
- `apps/miniprogram/README.md`
- `apps/miniprogram/app.js`
- `apps/miniprogram/app.wxss`
- `apps/miniprogram/project.config.json`
- `apps/miniprogram/pages/plugins/index.wxml`
- `apps/miniprogram/utils/pluginRuntime.js`
## v2.6.6
发布时间2026-03-09
版本定位:小程序本地存储口径澄清与遗留问题登记版
### 变更亮点
- 文档口径统一升级到 `v2.6.6`
- 根 README、小程序 README、Changelog 与发布说明同步更新;
- 当前小程序稳定基线口径统一收敛到 `v2.6.6`
- 小程序本地存储验证边界补充说明:
- 当前业务数据仍以微信小程序本地 storage 持久化;
- 通过 `npm run mini` 生成的 `miniprogram-ci preview` 二维码,默认按“预览链路”看待;
- 预览链路下是否能看到正式版历史缓存,不作为正式版本地缓存连续性的判断依据。
### 已知遗留问题
- 使用 preview 预览二维码进入小程序时,不能假设其一定继承正式版历史缓存可见性。
- 当前阶段不以 preview/开发链路的缓存表现,作为正式版本地数据是否连续的唯一判断依据。
- 后续考虑补充更直接的 storage 调试与备份能力,降低排查成本。
### 文档更新
- `README.md`
- `apps/miniprogram/README.md`
- `CHANGELOG.md`
- `release.md`
## v2.7.0
发布时间2026-03-09
版本定位:小程序配置跨设备同步落地版
### 变更亮点
- 小程序配置类数据改为“双层持久化”:
- `settings / servers / records` 在本地 storage 之外,新增通过 Gateway 写入 SQLite 的服务端保存;
- 同一微信账号在新设备登录后,可通过同步链路恢复设置、服务器配置和闪念记录。
- 第一阶段同步链路正式接入:
- Gateway 已提供 `POST /api/miniprogram/auth/login``GET /api/miniprogram/sync/bootstrap``GET/PUT /api/miniprogram/sync/settings``GET/PUT /api/miniprogram/sync/servers``GET/PUT /api/miniprogram/sync/records`
- 小程序已接入启动 `bootstrap`、日常异步推送,以及服务器和闪念删除的 `tombstone` 合并。
- 服务端存储边界明确:
- 服务器受保护字段拆分为加密后的 `secret_blob` 保存SSH 密码、私钥、口令与证书不以明文写入 SQLite
- 终端会话缓冲仍不纳入第一阶段同步。
### 文档更新
- `README.md`
- `apps/miniprogram/README.md`
- `CHANGELOG.md`
- `release.md`
- `docs/miniprogram-about-page-review-plan-2026-03-09.md`
- `docs/miniprogram-terminal-vt-guardrails-2026-03-08.md`
- `docs/miniprogram-terminal-vt-implementation-plan-2026-03-08.md`
### 涉及文件(文档与对外版本展示)
- `README.md`
- `apps/miniprogram/README.md`
- `CHANGELOG.md`
- `release.md`
- `apps/miniprogram/app.js`
- `apps/miniprogram/project.config.json`
- `apps/miniprogram/utils/aboutContent.js`
- `apps/web/src/content/about.ts`
- `apps/miniprogram/pages/plugins/index.wxml`
- `apps/miniprogram/utils/pluginRuntime.js`
### 涉及文件(文档)
- `README.md`
- `apps/miniprogram/README.md`
- `CHANGELOG.md`
- `release.md`
## v2.7.1
发布时间2026-03-10
版本定位:小程序同步 SQLite/WAL 口径澄清版
### 变更亮点
- 文档与对外版本展示统一升级到 `v2.7.1`
- 根 README、小程序 README、Changelog、Release、关于页与小程序版本展示统一更新
- 当前对外稳定基线口径收敛到 `v2.7.1`
- 同步边界说明补齐:
- 当前跨设备同步仍只覆盖 `settings / servers / records`
- 服务器受保护字段继续以加密后的 `secret_blob` 保存;
- `logs`、插件运行时日志与终端会话缓冲仍不纳入第一阶段同步。
- 同步配置开关行为补齐:
- 小程序全局配置的“连接配置”页已增加“同步配置云端”开关;
- 关闭后,`settings / servers / records` 仅保留本地保存,不再发起云端 bootstrap 和日常异步推送;
- 重新打开后,会先强制拉取一次 `bootstrap`,按现有 `updatedAt / tombstone` 规则合并本地与云端,再补推当前合并结果,避免直接用关闭期间的本地快照覆盖远端。
- SQLite WAL 行为说明补齐:
- `remoteconn-sync.db-wal` 是写前日志,文件体积不直接等于当前有效同步数据量;
- 执行 checkpoint 后,已提交页会回写到 `remoteconn-sync.db`
- 排查同步库大小时,应优先看主库内容、表行数与字段体积,而不是仅看 `-wal` 文件大小。
### 已知遗留问题
- 当前小程序终端仍存在明显交互卡顿:
- 点击 Codex 连接选项后,约 `10` 秒才出现首个回显;
- 等待期间除上下滑动外,其余按钮基本阻塞、无即时响应;
- 当前先按“已登记遗留问题”处理,后续需继续定位主线程阻塞点与终端渲染/连接链路的耗时来源。
### 文档更新
- `README.md`
- `apps/miniprogram/README.md`
- `CHANGELOG.md`
- `release.md`
- `docs/miniprogram-sync-sqlite-plan-2026-03-09.md`
- `apps/miniprogram/utils/aboutContent.js`
- `apps/web/src/content/about.ts`
### 涉及文件(文档与对外版本展示)
- `README.md`
- `apps/miniprogram/README.md`
- `CHANGELOG.md`
- `release.md`
- `docs/miniprogram-sync-sqlite-plan-2026-03-09.md`
- `apps/miniprogram/app.js`
- `apps/miniprogram/app.wxss`
- `apps/miniprogram/project.config.json`
- `apps/miniprogram/pages/plugins/index.wxml`
- `apps/miniprogram/utils/pluginRuntime.js`
- `apps/miniprogram/utils/aboutContent.js`
- `apps/web/src/content/about.ts`
## v2.8.0
发布时间2026-03-10
版本定位:小程序 Terminal `Codex` 交互卡顿重大优化版
### 变更亮点
- 重点解决小程序终端在 `Codex` 交互期间的三类高感知问题:
- 点击 `Codex` 连接项后,首个可见回显有时需要数秒到 `10s+`
- 等待与输出洪峰期间,除上下滑动外,右上角连接按钮、工具按钮、输入区聚焦等交互容易出现无响应或超长延时;
- 右上角时延显示会被拉高到 `10s+`,但该值本质上混入了主线程阻塞后的消息处理延迟,不等于真实网络 RTT。
- 小程序 Terminal 写入链路已参考 `xterm` 思路完成第一阶段重构:
- `stdout` 先合批,再进入单飞渲染调度,避免 `scroll-view` 与 overlay 刷新风暴;
- `stdout` 处理改为“安全切片 + 时间片推进”,不再一次性同步吃完整个输出洪峰;
- 用户刚点击按钮、聚焦输入区、发送控制键时,后续 `stdout` slice 会更快让出主线程,降低交互饿死概率。
- 终端 VT/状态写回热路径继续减重:
- `CSI / OSC / DCS / ESC / CRLF` 不再被从中间切断,避免切片后控制序列语义损坏;
- `stdout` 运行态改为“任务创建时复制一次,后续 slice 复用”,减少 `normal/alt buffer` 重复深拷贝;
- 页面层发布活动 buffer 时改为引用发布,显著压低 `cloneCostMs / stateApplyCostMs`
- 过程日志补齐:
- 新增 `stdout.slice / stdout.slice.long`
- `stdout.append` 增加 `chunkCount / sliceCount / carryBytes / renderReason`
- 继续保留 `main_thread_lag / layout.refresh / overlay.sync`,便于后续跟踪极端输出长尾。
### 解决结果
- `Codex` 启动后的首个可见回显等待时间已显著缩短,不再长期停留在“点击后数秒到十秒以上无反馈”的状态。
- 输出洪峰期间,按钮、工具区、输入区聚焦的阻塞感已明显下降,主问题按“已解决”收口。
- 右上角时延显示不再频繁被主线程卡顿拉高;文档口径同步明确,先前的 `10s+` 更多是“消息处理延迟”而非真实网络 RTT。
### 当前边界
- 极端大输出、长时间连续洪峰下,主线程仍有继续压缩长尾的空间;
- 后续优化重点会继续落在 `applyTerminalOutput` 的增量化、字符串/字节统计成本与更细粒度的 stdout 时间片调度。
### 相关文档
- `release.md`
- `question-solved.md`
- `docs/miniprogram-terminal-xterm-stall-optimization-plan-2026-03-10.md`
### 涉及文件(核心实现)
- `apps/miniprogram/pages/terminal/index.js`
- `apps/miniprogram/pages/terminal/vtParser.js`
- `apps/miniprogram/pages/terminal/terminalBufferState.js`
- `apps/miniprogram/pages/terminal/terminalBufferSet.js`
- `apps/miniprogram/pages/terminal/terminalRenderScheduler.js`
- `apps/miniprogram/utils/gateway.js`
## v2.8.1
发布时间2026-03-10
版本定位:终端语音区视觉收口与 VT 主题背景修正版
### 变更亮点
- 终端语音区视觉继续收口:
- 展开语音区按钮默认改为全透明,仅保留 SVG 本体颜色;
- 分类胶囊改为贴文字高度,选中态背景切到更明显的实色;
- 录音中的输入框上方新增更显眼的双环脉冲提示,文案更新为“正在收音,松开后发送或记录闪念”。
- 终端主题与按钮配色规则补齐:
- 小程序按钮继续收口到 `UI / Shell` 双域规则;
- terminal 顶栏与语音区 SVG 图标按主题运行时着色,不再只看按钮外圈背景。
- 小程序 VT 语义继续修正:
- `OSC 10 / 11 / 12` 查询已返回真实 shell 主题色;
- `alt screen``CSI J / K / X` 与滚动区插删行产生的空白位统一继承当前擦除背景,不再出现“文字块有底色、周围空白仍是主题底色”的裂屏。
- 此前终端交互卡顿问题已收敛:
- 点击 Codex 连接选项后首回显明显迟滞、等待期间按钮基本阻塞的问题已解决;
- 当前版本不再把该问题列为已知遗留问题。
- 文档与版本口径统一升级到 `v2.8.1`
- 小程序 README、关于页、项目描述、插件页基线提示、VT 方案文档与语音输入方案说明统一同步到当前版本。
### 已知遗留问题
- 小程序终端当前仍存在一个低频连接时序问题:
- 偶发新连接后首屏只显示光标,提示符会稍后才出现;
- 初步定位为前端 `connected` 状态与自绘光标已提前进入可见态,但首个可见 `stdout / prompt` 仍晚到;
- 当前先按“已登记遗留问题”处理,后续再优化连接就绪判定与 prompt 首屏兜底。
### 文档更新
- `README.md`
- `CHANGELOG.md`
- `release.md`
- `apps/miniprogram/README.md`
- `apps/miniprogram/app.js`
- `apps/miniprogram/app.wxss`
- `apps/miniprogram/project.config.json`
- `apps/miniprogram/pages/plugins/index.wxml`
- `apps/miniprogram/utils/aboutContent.js`
- `apps/web/src/content/about.ts`
- `docs/miniprogram-config-implementation-plan-2026-02-28.md`
- `docs/miniprogram-terminal-vt-guardrails-2026-03-08.md`
- `docs/miniprogram-terminal-vt-implementation-plan-2026-03-08.md`
- `docs/terminal-voice-input-plan-2026-02-26.md`
## v2.8.2
发布时间2026-03-10
版本定位:连接态高亮强化与 about 页面主题口径统一
### 变更亮点
- 连接态视觉强化:
- 小程序服务器列表 `connect` 按钮与底栏 `shell` 按钮在存在活动连接时,统一改为高饱和实底高亮;
- 连接态不再主要依赖描边反馈,降低“亮了但不够明显”的误判。
- 连接态图标着色规则补齐:
- 连接态 SVG 前景色改为运行时跟随界面前景色;
- 图标落在高亮底色上时,不再继续沿用偏灰按钮色。
- about 页面配色统一:
- 小程序 about 首页、5 个详情页与 `about-app` 改为统一跟随界面配置推导出的主题 token
- Web about 页同步切到同一套主题变量策略,不再单独维护固定浅色板。
- about 反馈遗留问题登记:
- 当前“反馈”按钮仍只复制邮箱地址;
- 暂不支持直接拉起系统发送邮件组件,本轮先按“已登记遗留问题”处理。
- 文档与版本口径统一升级到 `v2.8.2`
- 发布说明、Changelog、README、小程序 README、关于页、项目描述与当前基线文档统一同步到当前版本。
### 已知遗留问题
- 小程序终端当前仍保留一个低频连接时序问题:
- 偶发新连接后首屏只显示光标,提示符稍后才出现;
- 当前继续按“已登记遗留问题”处理,后续再优化连接就绪判定与 prompt 首屏兜底。
- about 页“问题反馈”当前仍只支持复制邮箱:
- 暂不直接拉起系统发送邮件组件;
- 当前继续按“已登记遗留问题”处理,暂不实现。
### 文档更新
- `README.md`
- `CHANGELOG.md`
- `release.md`
- `apps/miniprogram/README.md`
- `apps/miniprogram/app.js`
- `apps/miniprogram/app.wxss`
- `apps/miniprogram/project.config.json`
- `apps/miniprogram/pages/plugins/index.wxml`
- `apps/miniprogram/utils/aboutContent.js`
- `apps/web/src/content/about.ts`
- `docs/miniprogram-config-implementation-plan-2026-02-28.md`
- `docs/miniprogram-terminal-vt-guardrails-2026-03-08.md`
- `docs/miniprogram-terminal-vt-implementation-plan-2026-03-08.md`
- `docs/terminal-voice-input-plan-2026-02-26.md`
## v2.9.0
发布时间2026-03-11
版本定位:小程序 Codex 交互区缺行与闪动修复版
### 变更亮点
- 重点解决小程序终端在 `Codex` 持续输出期间最影响观感的一组交互问题:
- 底部提示块原本应稳定存在的空白行、说明行和状态行会被裁掉;
- 输出过程中该区域会反复上下闪动,偶尔完整出现但大多数时间被截断;
- `> Use /skills to list available skills` 与代码块这类整行高亮区域,还会在行与行之间透出底色细线;
- 用户看到的是“交互区不稳定”,但根因并不在单一样式,而在 viewport、同步刷新控制流与背景承载层级。
- terminal viewport 口径继续收口:
- normal buffer 不再只按 `cursorRow + 1` 生硬裁尾;
- 当光标行之后仍存在真实 footer 时,会继续保留到 `renderRows`
- Codex 同步刷新窗口兼容补齐:
- `CSI ? 2026 h/l` 已按同步刷新边界做收口;
- 高频局部重绘的中间态不再被逐帧暴露到界面,底部块稳定性明显提升。
- 高亮块渲染口径继续收口:
- 整行统一背景优先提升到 line 层绘制;
- 统一背景区域不再在行间透出底色细缝,且没有新增渲染节点。
- 回归验证补齐:
- 新增 2026-03-11 真实 PTY 抓包回放用例;
- footer 保留、同步刷新窗口与高亮背景渲染相关回归测试已补齐。
- 会话续接恢复新增几何快照回归约束:首次恢复以 `lines + bufferCols / bufferRows` 为准,避免截断 `replayText` 在默认 `80x24` 下提前重建出顶部空白和裸露 `5;2H`
### 解决结果
- `Codex` 交互期间,底部提示块与状态行已能稳定显示完整高度,不再长期缺最后几行。
- 持续输出过程中,底部区域的明显上下闪动已显著收敛。
- 统一高亮背景区域不再在行间透出底色细线。
- 返回服务器列表后再次进入同一会话时,历史区首次恢复不再误用被裁剪的 `replayText`,顶部空白与裸露定位串问题已收口。
- 当前版本最重要的对外变化明确收口为“交互问题修复”,而不是单纯样式调整。
### 文档更新
- `README.md`
- `CHANGELOG.md`
- `release.md`
- `apps/miniprogram/README.md`
- `apps/miniprogram/app.js`
- `apps/miniprogram/app.wxss`
- `apps/miniprogram/project.config.json`
- `apps/miniprogram/utils/aboutContent.js`
- `apps/web/src/content/about.ts`
- `question-solved.md`
- `docs/miniprogram-codex-footer-flicker-optimization-plan-2026-03-11.md`
- `docs/miniprogram-config-implementation-plan-2026-02-28.md`
- `docs/miniprogram-terminal-vt-guardrails-2026-03-08.md`
- `docs/miniprogram-terminal-vt-implementation-plan-2026-03-08.md`
- `docs/terminal-voice-input-plan-2026-02-26.md`
## v2.9.1
发布时间2026-03-11
版本定位:小程序续接恢复与同步展示收口版
### 变更亮点
- 会话续接首次恢复口径继续收口:
- 首次回到终端页时,以挂起前保存的 `lines + bufferCols / bufferRows` 作为当前屏幕权威来源;
- 被裁剪过的 `replayText` 不再参与首次恢复,避免返回服务器列表后再次进入时出现历史区顶部空白和裸露 `5;2H`
- 启动同步后的界面刷新链路补齐:
- `bootstrap` 合并远端配置并落地本地后,会主动广播同步已应用事件;
- 首页服务器列表与底栏会立即刷新,不再需要重新进入页面才能看到同步后的配置。
- 小程序审核文案继续收口:
- 用户隐私政策与 about 隐私页同步到最新审核口径;
- 录音用途、处理范围与用户权利说明已补齐,便于重新提审和发布。
### 解决结果
- 返回服务器列表后再次进入同一会话时,历史区首次恢复不再误用被裁剪的 `replayText`,顶部空白与裸露定位串问题已收口。
- 新终端首次打开小程序并完成同步后,首页服务器列表会自动更新,不再需要重进页面才能看到同步后的服务器配置。
- 小程序 about 页、隐私政策文档与发布口径已经对齐到同一审核文案。
### 文档更新
- `README.md`
- `CHANGELOG.md`
- `release.md`
- `apps/miniprogram/README.md`
- `apps/miniprogram/app.js`
- `apps/miniprogram/app.wxss`
- `apps/miniprogram/project.config.json`
- `apps/miniprogram/utils/aboutContent.js`
- `apps/miniprogram/utils/i18nCatalog.js`
- `apps/web/src/content/about.ts`
- `question-solved.md`
- `docs/miniprogram-codex-footer-flicker-optimization-plan-2026-03-11.md`
- `docs/miniprogram-config-implementation-plan-2026-02-28.md`
- `docs/miniprogram-terminal-vt-guardrails-2026-03-08.md`
- `docs/miniprogram-terminal-vt-implementation-plan-2026-03-08.md`
- `docs/terminal-voice-input-plan-2026-02-26.md`
## v2.9.3
发布时间2026-03-11
版本定位:小程序时延诊断面板与主题对比度收口版
### 变更亮点
- 小程序时延诊断浮窗完成一轮结构重做:
- 原先分离的“网关响应 / 网络时延”两张图,已经合并成一张双轴平滑曲线图;
- 左轴保留网关响应量纲,右轴保留网络时延量纲;
- 顶部指标卡统一收口为两张两行摘要卡,固定展示 `min / max / avg`
- 诊断面板内容继续压缩:
- 原“诊断信息”文字卡已删除,只保留图表卡;
- 同一服务器断开重连后,会优先延续已有采样,尽量补足最近 `30` 个点。
- 终端主题融合继续收口:
- 时延面板改为跟随终端主题的反相面板;
- 深色终端单独切换一套更深的蓝橙曲线与指标色,避免浅底上文字和曲线发灰看不清;
- 浅色终端继续保留原来的亮色高光,维持暗底上的对比度。
### 解决结果
- 小程序时延诊断图不再拆成两张折线图,读取趋势时不需要在两张卡之间来回比对。
- 终端深浅主题下,时延面板文字、指标和曲线的可读性口径已经统一。
- 当前版本对外口径明确收口为“诊断图表与主题对比度修正”,而不是新增新的同步或终端协议能力。
### 文档更新
- `README.md`
- `CHANGELOG.md`
- `release.md`
- `apps/miniprogram/README.md`
- `apps/miniprogram/app.js`
- `apps/miniprogram/project.config.json`
- `apps/miniprogram/utils/aboutContent.js`
- `apps/miniprogram/utils/aboutContent.test.ts`
- `apps/miniprogram/utils/i18nCatalog.js`
- `apps/miniprogram/pages/about-app/index.test.ts`
- `apps/web/src/content/about.ts`
- `question-solved.md`
- `docs/miniprogram-codex-footer-flicker-optimization-plan-2026-03-11.md`
- `docs/miniprogram-config-implementation-plan-2026-02-28.md`
- `docs/miniprogram-terminal-vt-guardrails-2026-03-08.md`
- `docs/miniprogram-terminal-vt-implementation-plan-2026-03-08.md`
- `docs/terminal-voice-input-plan-2026-02-26.md`
## v2.9.4
发布时间2026-03-12
版本定位:文档与版本口径同步版
### 变更亮点
- 当前版本不引入额外功能改动:
- 小程序终端、同步链路、时延诊断与主题逻辑均沿用 `v2.9.3` 当前基线;
- 本次仅统一仓库内所有“当前版本”与对外说明口径。
- 文档与展示文案已完成一轮同步:
- Root README、Changelog、Release、问题闭环记录与多份当前基线文档统一升级到 `v2.9.4`
- Web / 小程序关于页、i18n 文案、小程序项目描述与分享标题等版本展示同步更新。
### 解决结果
- 仓库内对外展示的当前版本号已统一为 `v2.9.4`,避免 README、关于页、项目描述与问题记录之间出现版本漂移。
- 当前版本明确为“文档同步版”,不会误导为新增了新的终端、同步或语音行为变更。
### 文档更新
- `README.md`
- `CHANGELOG.md`
- `release.md`
- `apps/miniprogram/README.md`
- `apps/miniprogram/app.js`
- `apps/miniprogram/project.config.json`
- `apps/miniprogram/utils/aboutContent.js`
- `apps/miniprogram/utils/aboutContent.test.ts`
- `apps/miniprogram/utils/i18nCatalog.js`
- `apps/miniprogram/pages/about-app/index.test.ts`
- `apps/web/src/content/about.ts`
- `question-solved.md`
- `docs/miniprogram-codex-gateway-tts-plan-2026-03-11.md`
- `docs/miniprogram-codex-footer-flicker-optimization-plan-2026-03-11.md`
- `docs/miniprogram-config-implementation-plan-2026-02-28.md`
- `docs/miniprogram-terminal-vt-guardrails-2026-03-08.md`
- `docs/miniprogram-terminal-vt-implementation-plan-2026-03-08.md`
- `docs/terminal-voice-input-plan-2026-02-26.md`
## v2.9.5
发布时间2026-03-13
版本定位:文档与遗留问题口径同步版
### 变更亮点
- 当前版本仅同步文档与对外口径:
- 不引入新的功能、协议行为或交互变更;
- 继续沿用 `v2.9.4` 已完成的现有终端、同步与时延诊断能力。
- 新登记一条小程序终端语音播报遗留问题:
- 当前播报文本提取与轮次稳定判定仍不够准确,播报内容存在偏差;
- 长时间 `Codex` 交互时,语音播报链路还会放大小程序端响应压力;
- 现阶段先不建议默认使用,后续继续优化文本提取、触发时机与性能隔离。
- 文档与展示文案已完成一轮同步:
- Root README、Changelog、Release、小程序 README、Web / 小程序关于页、多语言文案、小程序工程描述与当前基线文档统一升级到 `v2.9.5`
- TTS 方案文档同步补充“当前暂不建议默认使用”的遗留问题口径。
### 解决结果
- 仓库内对外展示的当前版本号已统一为 `v2.9.5`,避免 README、关于页、小程序项目描述与当前基线文档之间出现版本漂移。
- 语音播报能力的当前边界已明确:暂列为待优化遗留问题,不再在文档里以“已可默认使用”的口径出现。
### 文档更新
- `README.md`
- `CHANGELOG.md`
- `release.md`
- `apps/miniprogram/README.md`
- `apps/miniprogram/app.js`
- `apps/miniprogram/project.config.json`
- `apps/miniprogram/utils/aboutContent.js`
- `apps/miniprogram/utils/aboutContent.test.ts`
- `apps/miniprogram/utils/i18nCatalog.js`
- `apps/miniprogram/pages/about-app/index.test.ts`
- `apps/web/src/content/about.ts`
- `docs/miniprogram-codex-gateway-tts-plan-2026-03-11.md`
- `docs/miniprogram-codex-footer-flicker-optimization-plan-2026-03-11.md`
- `docs/miniprogram-config-implementation-plan-2026-02-28.md`
- `docs/miniprogram-terminal-vt-guardrails-2026-03-08.md`
- `docs/miniprogram-terminal-vt-implementation-plan-2026-03-08.md`
- `docs/terminal-voice-input-plan-2026-02-26.md`
## v2.9.6
发布时间2026-03-13
版本定位:文档与对外口径同步版
### 变更亮点
- 当前版本仅同步文档与对外口径:
- 不引入新的功能、协议行为或交互变更;
- 继续沿用 `v2.9.5` 已完成的现有终端、同步与时延诊断能力,以及当前语音播报边界口径。
- 文档与展示文案已完成一轮同步:
- Root README、Changelog、Release、小程序 README、Web / 小程序关于页、多语言文案、小程序工程描述与当前基线文档统一升级到 `v2.9.6`
- 当前版本对外展示的版本号与当前基线说明已收口到同一口径。
### 解决结果
- 仓库内对外展示的当前版本号已统一为 `v2.9.6`,避免 README、关于页、小程序项目描述与当前基线文档之间出现版本漂移。
- 当前版本继续保留既有能力边界,不新增新的功能承诺或行为变更说明。
### 文档更新
- `README.md`
- `CHANGELOG.md`
- `release.md`
- `apps/miniprogram/README.md`
- `apps/miniprogram/app.js`
- `apps/miniprogram/project.config.json`
- `apps/miniprogram/utils/aboutContent.js`
- `apps/miniprogram/utils/aboutContent.test.ts`
- `apps/miniprogram/utils/i18nCatalog.js`
- `apps/miniprogram/pages/about-app/index.test.ts`
- `apps/web/src/content/about.ts`
- `docs/miniprogram-codex-gateway-tts-plan-2026-03-11.md`
- `docs/miniprogram-codex-footer-flicker-optimization-plan-2026-03-11.md`
- `docs/miniprogram-config-implementation-plan-2026-02-28.md`
- `docs/miniprogram-terminal-vt-guardrails-2026-03-08.md`
- `docs/miniprogram-terminal-vt-implementation-plan-2026-03-08.md`
- `docs/terminal-voice-input-plan-2026-02-26.md`
## v3.0.1
发布时间2026-03-20
版本定位:使用手册与主题文案同步版。生产可用版本。
### 变更亮点
- 小程序“使用手册”补成图文版:
- 正文前置“为什么需要这个APP把项目介绍中的核心动机放到真正使用说明前面
- 服务器列表、服务器配置、终端、语音、设置、记录、关于等主链路补上 `guide-mobile-*` 配图。
- 小程序主题口径继续收口:
- 主题预设补齐到与 Web 一致的 `21` 套;
- 主题名称支持随语言切换,并统一压短为单词短名,减少设置页列表长度。
- 对外版本口径统一升级到 `v3.0.1`
- Root README、Changelog、Release、小程序 README、项目介绍、相关方案文档与品牌模板统一更新到 `v3.0.1`
### 解决结果
- 当前小程序说明内容从“纯文字审核说明”收口到“图文操作手册”,更接近真实使用路径。
- 当前版本不新增新的同步协议、终端协议或配置字段,继续沿用 `v3.0.0` 已明确的能力边界。
### 文档更新
- `README.md`
- `CHANGELOG.md`
- `release.md`
- `apps/miniprogram/README.md`
- `docs/project-introduction-2026-03-19.md`
- `docs/miniprogram-about-page-review-plan-2026-03-09.md`
- `docs/miniprogram-codex-gateway-tts-plan-2026-03-11.md`
- `docs/miniprogram-codex-footer-flicker-optimization-plan-2026-03-11.md`
- `docs/miniprogram-config-implementation-plan-2026-02-28.md`
- `docs/miniprogram-terminal-vt-guardrails-2026-03-08.md`
- `docs/miniprogram-terminal-vt-implementation-plan-2026-03-08.md`
- `docs/promo-package-template/brand-template.yaml`
- `docs/terminal-voice-input-plan-2026-02-26.md`
## v3.0.0
发布时间2026-03-18
版本定位:终端交互稳定性修复 + shell性能优化+ 文档与版本口径同步。生产可用版本。
### 变更亮点
- shell卡顿性能问题优化。
- 小程序终端新增 caret 稳定窗口:
- 高压 `stdout` 输出期间,页面会优先保留最近稳定的 caret 位置,减少底部后几行行尾来回跳的问题;
- 最终帧与用户输入相关帧仍会立即提交最新 caret避免把真实位置长期冻结。
- 小程序 shell 输入链路补上被动 `blur` 保护:
- 在软键盘仍保持可见时,页面不会因输入法抛出的临时 `blur` 立刻判定失焦;
- 豆包输入法长按语音输入过程中,不应再被页面主动打断录音态。
- 对外版本口径统一升级到 `v3.0.0`
- Root README、Changelog、Release、小程序 README、Web / 小程序关于页、多语言文案、小程序工程描述与当前基线文档统一更新到 `v3.0.0`
### 解决结果
- 终端页当前已把“底部 caret 高频跳动”和“键盘仍在时的被动失焦”分别收口到稳定窗口与键盘可见态保护链路。
- 当前版本不新增新的同步协议、终端协议或配置字段,继续沿用既有数据边界与对外说明。
### 文档更新
- `README.md`
- `CHANGELOG.md`
- `release.md`
- `apps/miniprogram/README.md`
- `apps/miniprogram/app.js`
- `apps/miniprogram/project.config.json`
- `apps/miniprogram/utils/aboutContent.js`
- `apps/miniprogram/utils/aboutContentLocaleOverlays.js`
- `apps/miniprogram/utils/aboutContent.test.ts`
- `apps/miniprogram/utils/i18nCatalog.js`
- `apps/miniprogram/utils/i18nCatalogLocaleOverlays.js`
- `apps/miniprogram/pages/about-app/index.test.ts`
- `apps/web/src/content/about.ts`
- `docs/miniprogram-about-page-review-plan-2026-03-09.md`
- `docs/miniprogram-codex-gateway-tts-plan-2026-03-11.md`
- `docs/miniprogram-codex-footer-flicker-optimization-plan-2026-03-11.md`
- `docs/miniprogram-config-implementation-plan-2026-02-28.md`
- `docs/miniprogram-terminal-vt-guardrails-2026-03-08.md`
- `docs/miniprogram-terminal-vt-implementation-plan-2026-03-08.md`
- `docs/promo-package-template/brand-template.yaml`
- `docs/terminal-voice-input-plan-2026-02-26.md`