first commit

This commit is contained in:
douboer
2026-03-21 18:57:10 +08:00
commit c49aa1a5e9
570 changed files with 107167 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
# RemoteConn MiniProgram稳定基线 v3.0.1
状态:`已对齐核心功能,当前稳定基线为 v3.0.1`
目标版本:`v3.0.1`
本次 `v3.0.1` 主要收口小程序使用手册与主题口径使用手册补成图文版正文前置“为什么需要这个APP并接入 `guide-mobile-*` 配图;主题预设补齐到与 Web 一致的 `21` 套,主题名称支持随语言切换且尽量压短为单词短名。当前版本不引入新的同步协议、终端协议或配置字段,继续沿用 `v3.0.0` 已明确的能力边界。
## 1. 当前已完成范围
1. 页面骨架:`connect``server settings``terminal``logs``records``settings``plugins`
2. 数据基础层:服务器/设置/闪念以“本地 storage + Gateway 同步”双层持久化,日志与插件运行记录仍保留本地存储;已补齐 `updatedAt / category / contextLabel / processed / discarded`
3. 传输:`wx.connectSocket` 网关连接、心跳、收发、断开。
4. 分页:日志与闪念均为 15 条/页。
5. 语音区Frame2256 交互 + `/ws/asr` 实时采集上行 + 结果回填,支持分类选择、未连接可记录闪念、写入 `服务器名称-项目名` 快照。
6. 闪念页:搜索、分类过滤、左滑废弃 / 已处理 / 复制 / 删除、正文编辑、分类快速改写、导出。
7. 配置页:`记录 -> 闪念分类` 管理,支持新增、设默认、删除、按住拖动排序。
8. 服务器:配置页支持自定义标签(逗号分隔),服务器卡片底部展示项目标签与自定义标签,并支持左滑复制 / 删除单台服务器。
9. 插件:运行时启停/重载/移除、JSON 导入导出、命令执行、运行日志。
10. 资源:图标路径统一版本 query`v=2026022701`)。
11. 终端:已按 xterm 风格完成 cell 光标模型重构,补齐真实 `cols/rows`、宽字符 continuation、自绘 caret、固定列宽渲染与双 probe 宽度测量,当前中文/英文混排输入已稳定。
12. 会话续接:终端页返回其他页面后默认保活 `15` 分钟,可在设置页调到 `1~60` 分钟;回到同一服务器会优先复用原会话并恢复尾部缓冲。首次恢复优先使用保存时的 `lines + bufferCols / bufferRows` 还原当前屏幕,仅在后续真实几何变化时再使用 `replayText` 重建,避免顶部空白与裸露 `5;2H` 一类控制串回归。
13. 连接反馈:服务器列表“连接”按钮与底栏 `shell` 按钮在活动连接态统一切到高饱和实底高亮,便于快速识别当前连接状态。
14. 跳转主机:服务器配置页已支持跳板机主机、端口、用户名、认证方式与独立凭据;目录选择与终端连接链路均可透传第一跳/第二跳配置。
15. AI 快速启动:服务器列表 `AI` 按钮和终端左上角 AI 按钮都会按“全局配置 -> 连接 -> AI连接”的默认 AI 直接启动;终端页支持 Codex 目录预检、二进制预检与连接后自动启动。当前同一条终端会话内新增了 AI 前台互斥保护AI 运行期间重复点击会直接提示而不再把启动命令写进前台 TUI当 Codex / Copilot 正常退出回到 shell 后,保护会自动解除。
16. 终端语音与主题视觉已继续收口:展开语音区按钮默认全透明、分类胶囊改为贴文字高度、录音中输入框上方新增脉冲提示;终端顶栏与语音区按钮继续按 UI / Shell 双域规则渲染。
## 2. 当前说明
1. 机读对齐清单已更新为 `done`,见 `apps/miniprogram/parity.v2.6.0.json`
2. 小程序终端 VT 能力已进入 P0 基线:双缓冲、备用屏幕切换、`DSR / CPR / DA1 / DA2 / DECSTR`、基础局部重绘和移动端常用原始按键编码已接入。
3. normal buffer 的 live tail 与最大滚动值已统一到同一口径,回到底部后不会再继续把当前命令行往上推。
4. 当前仍建议通过微信开发者工具和真机做交互验收,尤其是服务器卡片左滑复制 / 删除、闪念左滑废弃 / 已处理 / 复制 / 删除、分类切换、语音记录链路,以及 `top / less / vim` 一类终端程序的抽样验证。
5. 终端字号修改后仍存在偶发“吃字/显示不完整”遗留问题,当前版本在设置页增加了“修改字号后建议断开重连”的提示,作为临时规避方案。
6. 当前业务数据采用“双层持久化”:
服务器配置、用户设置与闪念记录会先写入小程序本地 storage并在同步配置完整时通过 Gateway + SQLite 同步到服务端;
日志、插件运行记录与终端会话缓冲仍仅保留在本地。
通过 `npm run mini` 生成的 preview 预览二维码,不作为正式版跨设备同步与本地缓存连续性的验证依据。
7. Gateway 的同步 SQLite 目前启用 `WAL` 模式:
`data/remoteconn-sync.db-wal` 是写前日志,文件体积不直接等于当前有效同步数据量;
需要结合 checkpoint 后的主库体积、`user_settings / user_servers / user_records` 行数与字段大小一起判断。
8. 当前版本最重要的交互修复是:小程序终端在 `Codex` 持续输出期间底部提示块缺行、状态行被裁掉与区域反复闪动的问题已收口normal buffer viewport 会保留光标行之后仍真实存在的 footer`CSI ? 2026 h/l` 同步刷新窗口也已做兼容。
9. 同一轮交互修复还收口了高亮块透底细线问题:像 `> Use /skills to list available skills` 和代码块这类整行统一背景区域,背景优先提升到 line 层绘制,不再在行与行之间露出底色细缝,也没有新增渲染节点。
10. 此前点击 Codex 连接选项后的首回显迟滞与等待期间按钮阻塞问题已收敛,当前版本不再将其作为已知遗留问题保留。
11. 当前另记录一个低频连接时序遗留问题:偶发新连接后首屏只显示光标、提示符稍后才出现;初步定位为 `connected` 状态与光标可见时机早于首个可见 `stdout / prompt`,后续再继续优化。
12. 会话续接恢复口径已明确:首次回到终端页时,以挂起前屏幕快照和当时终端几何作为权威来源;被裁剪过的 `replayText` 不再参与首次恢复,避免历史区顶部空白和定位参数残片再次出现。
13. 时延诊断浮窗已收口成单张双轴平滑曲线图:左轴显示网关响应,右轴显示网络时延;顶部只保留两张摘要卡,面板配色跟随终端主题反相推导,深色终端会自动切到更深的蓝橙曲线与指标色;同一服务器断开重连后会尽量延续最近 `30` 个采样点。
14. 当前小程序终端语音播报仍属于待优化能力:播报文本提取与轮次稳定判定还不够准确,长时间 `Codex` 交互时也会放大小程序端响应压力;现阶段暂不建议默认使用,先作为遗留问题保留。
15. 当前另记录一个 AI 交互期输入遗留问题:在 `Codex` 等 AI 持续输出期间,点击 shell 激活区弹出软键盘后,输入框/激活区仍可能发生跳跃,导致无法稳定连续输入;该问题尚未完成稳定修复,先按已知遗留问题登记。
## 3. 对齐清单
机读清单:`apps/miniprogram/parity.v2.6.0.json`
## 4. 实施依据
1. `docs/records-enhancement-plan-2026-03-06.md`
2. `docs/miniprogram-config-implementation-plan-2026-02-28.md`
3. `docs/xterm-cursor-algorithm-2026-03-07.md`
4. `docs/miniprogram-terminal-cursor-gap-analysis-2026-03-07.md`
5. `docs/ssh-jump-encryption-diagram-2026-03-07.md`
6. `docs/miniprogram-terminal-vt-guardrails-2026-03-08.md`
7. `docs/miniprogram-terminal-vt-implementation-plan-2026-03-08.md`
8. `docs/miniprogram-codex-footer-flicker-optimization-plan-2026-03-11.md`
## 5. 本地调试
1. 使用微信开发者工具打开 `apps/miniprogram` 目录。
2. 如需连通网关,在 `apps/miniprogram/.env` 中配置运维配置:至少包含 `GATEWAY_URL``GATEWAY_TOKEN`(可参考 `apps/miniprogram/.env.example`,该配置不对最终用户展示)。
3. 回到“服务器”页创建服务器并进入终端测试连通性。
## 6. 命令行预览
在仓库根目录可直接使用以下脚本:
1. `npm run mini`
在终端输出小程序预览二维码;若终端二维码首次渲染失败,会自动在 shell 中重画一次。
说明:
1. 该命令会先读取 `apps/miniprogram/.env`,并生成 `apps/miniprogram/utils/opsEnv.js` 供小程序运行时使用。
2. 默认使用仓库根目录私钥:`./private.wxa0e7e5a27599cf6c.key`
3. 执行前,需要在微信公众平台完成上传密钥下载和 IP 白名单配置。