Skip to content

fix: 保留字体设置并升级安全相关依赖 - #118

Closed
realmx wants to merge 33 commits into
rust-kotlin:mainfrom
realmx:master
Closed

realmx wants to merge 33 commits into
rust-kotlin:mainfrom
realmx:master

Conversation

@realmx

@realmx realmx commented Aug 30, 2026 •

Copy link
Copy Markdown
Contributor

摘要

本 PR 汇总当前分支相对 upstream/main 的剩余差异,重点修复字体设置持久化与终端缩放行为,并升级存在安全风险或已过时的依赖。

  • 修复 UI 与终端字号在重启后被恢复为默认值的问题。
  • 统一设置按钮与 Cmd/Ctrl + 滚轮缩放的整像素步进。
  • 升级 SSH、PTY、通知、窗口 API 及基础依赖,更新锁文件并降低依赖图中的已知安全告警。
  • 适配新版 russh、Windows 窗口句柄和通知回调 API。
  • 修复 Windows 长时间运行或后台终端持续输出后,任务栏与任务切换无法唤醒窗口的问题。

详细变更

字号持久化与缩放

  • 移除将 18px 终端字号和 16px UI 字号视为旧默认值并强制迁移的逻辑,保留用户显式配置。
  • 在反序列化、配置加载、读取与写入路径统一归一化终端字号:限制为 10–24px 的有限整像素值,无效值回退到 12px。
  • 设置面板的终端字号按钮改为每次增减 1px,并在更新后立即刷新窗口。
  • 行滚轮每次触发一个缩放步进;高精度像素滚轮按 20px 累积为一个步进,方向变化时重置残余量。
  • 终端渲染、单元格宽度和行高统一使用归一化后的字号。

Windows 窗口响应性

  • 为后端事件泵增加单轮时间、事件数和输出字节预算,并合并相邻终端输出,避免持续输出独占 UI 线程。
  • 恢复窗口边界变化后的 500ms 防抖后台保存,关闭或退出时保留同步兜底。
  • 将 Windows 通知历史清理迁移到独立 WinRT 工作线程,避免窗口激活回调同步等待系统服务。
  • 增加事件预算、输出合并边界和通知清理队列测试。

依赖与兼容性

  • 将最低 Rust 版本从 1.85.0 同步到 1.92.0。
  • 升级 russh、portable-pty、rfd、windows、通知组件及多项基础依赖,并更新 Cargo.lock。
  • 适配新版 SSH 认证结果、私钥算法构造和服务端密钥回调类型。
  • 适配新版 Windows HWND/HICON 指针类型及通知激活回调签名。
  • 移除不再需要的直接 async-trait 与 ssh-key 依赖。

回归覆盖

  • 增加配置序列化后重新加载仍保留 UI 与终端字号的测试。
  • 增加奇数像素保留、旧半像素归一化及反序列化归一化测试。
  • 增加按钮步进、行滚轮步进和高精度滚轮累积测试。

影响范围

  • 共修改 14 个文件,1668 行新增、988 行删除;主要行数变化来自锁文件刷新及 Windows 响应性修复。
  • 未增加新的配置字段;已有半像素终端字号会在读取时归一到最接近的整像素。

验证

  • \u0060git diff --check upstream/main...master\u0060:通过。
  • 本次 Windows 修复涉及文件的定向 \u0060rustfmt --check\u0060:通过。
  • 未执行编译、打包或测试;按仓库要求仅完成静态差异与格式检查。

关联问题

Fixes #117

Fixes #119

realmx added 30 commits August 20, 2026 14:54
- 合并 master 相对 main 的全部代码与配置修改为单个提交
- 在顶部栏移动时进入原生窗口移动循环\n- 保留标签和顶部栏按钮的点击行为
- 新增 Windows PowerShell、PowerShell 7、CMD 和 Git Bash 配置

- 持久化默认 shell 并在不可用时自动回退

- 接入本地终端新建、恢复、拆分和重试流程

- 支持 CMD 与 Git Bash 当前目录同步
- 失焦时隐藏终端光标\n- 等待真实尺寸后启动 Windows 本地终端\n- 异步投递 Windows 窗口拖拽消息
- 传递窗格焦点状态到终端元素\n- 补充光标显示条件测试
- 清理 ConPTY 启动阶段产生的空白 scrollback\n- 保留真实终端输出并补充回归测试
- 远程服务器拒绝 rename 覆盖时回退到原位写入\n- 保留原子替换优先策略并清理临时文件
- 清理应用内通知、状态和未读徽标并增加标签红点\n- 增加 Windows x64 单目标远程安装包任务
- 点击系统通知时激活窗口并切换到对应标签
- 非当前标签使用闪动铃铛保留未读提醒
- 应用已激活且通知来自当前标签时不提醒
- 激活窗口时清除当前应用的 macOS 通知中心消息

- 激活窗口时清除当前应用的 Windows Toast 历史

- 启用 Windows UI Notifications API
- 合并面板、搜索和系统监控中的重复遍历与状态处理
- 移除未使用的传输进度字段和冗余分屏参数
- 补充面板树、搜索分组与磁盘排序回归测试
- 修正垂直居中终端的鼠标行坐标换算\n- 支持 macOS Option 与 Windows Alt 点击定位命令行光标\n- 解析 OSC 133 提示符边界并补充回归测试
- 接入跨平台 Shell Integration,标记主提示符与续行边界
- 按逻辑行计算点击位移,并处理快速连续点击的光标预测
- 兼容 Vim 鼠标上报以及 Windows PowerShell、CMD 和 Git Bash
- 将 Shell Integration 临时目录中的 HISTFILE 恢复到用户目录
- 补充 zsh 历史路径回归测试
- 允许从设置弹窗打开连接导出确认并恢复原弹窗状态

- 移除连接列表编辑状态下的连接按钮
- 支持关键词前景和背景高亮并正确处理反色、隐藏字符与宽字符

- 使用缓冲区坐标提取命令并过滤滚动和补全残留
- 标签 Loading 仅响应后台标签最近两秒的真实输出
- 排除 OSC 控制序列并补充终端活动状态回归测试
- 修正 URL 在中文标点和未配对括号后的高亮范围
- 修复界面与终端字号在重启后恢复默认值的问题
- 保持终端字号按钮 1px 步进并立即刷新设置面板
- 补充配置重新加载的字号持久化回归测试

Fixes #117
- 升级 russh、通知、PTY 与基础依赖版本
- 适配 SSH 认证结果及 Windows API 变化
- 更新锁文件并将最低 Rust 版本同步为 1.92
- 降低当前依赖图中的已知安全告警
- 归一化终端字号并保留奇数像素设置

- 统一设置按钮和滚轮缩放的整像素步进

- 补充字号反序列化与缩放行为测试
- 保留终端字号偏好并统一整像素缩放步进

- 补充字号归一化、反序列化与滚轮缩放测试
- 升级 SSH、通知、PTY 与基础依赖版本

- 合入相关 API 适配、锁文件及最低 Rust 版本调整
realmx added 3 commits August 30, 2026 22:41
- 将 russh 加密后端切换为 ring
- 移除 Windows x64 和 x86 对 NASM 的构建依赖
- 限制后端事件单轮处理预算并合并终端输出
- 恢复窗口布局防抖保存,避免阻塞 UI 线程
- 异步清理 Windows 通知历史并补充回归测试
- 增加 SSH 主机密钥确认、信任记录和过期请求过滤
- 完善 SSH、SFTP 与串口连接的取消、超时和资源回收
- 修复旧连接回包污染新会话及传输状态失真问题
- 加强远程文件保存、删除确认、传输取消和目录打包处理
- 修复删除确认弹窗捕获外层 window 导致的生命周期编译错误
- 保留各标签页最后聚焦的面板,并支持随布局保存和恢复
- 修复终端搜索空格与 Unicode 匹配,避免保存未回显的敏感输入
- 补充配置只读降级、传输记录延迟保存和同步取消处理
- 更新中英文文案、CI 格式检查和原生目标回归测试

验证:cargo fmt --all -- --check、git diff --check 通过。
按要求未主动编译打包;新增 Rust 回归用例未运行。
@realmx realmx closed this by deleting the head repository Sep 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0.5.1版本会在后台(win10)卡住,无法切换出来 最新版本的终端字体大小修改

1 participant