Files
NetMesh/CHANGELOG.md
zhaolei 3c72efcb7f
Some checks failed
build-packages / resolve bundled mosh-client (push) Has been cancelled
build-packages / resolve bundled et-client (push) Has been cancelled
build-packages / build-macos (push) Has been cancelled
build-packages / build-windows (push) Has been cancelled
build-packages / build-linux-x64 (push) Has been cancelled
build-packages / build-linux-arm64 (push) Has been cancelled
build-packages / release (push) Has been cancelled
build-packages / update Nix release metadata (push) Has been cancelled
build-packages / bump homebrew tap (push) Has been cancelled
test / lint-and-test (push) Has been cancelled
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
build-et-binaries / build-linux-x64 (push) Has been cancelled
build-et-binaries / build-linux-arm64 (push) Has been cancelled
build-et-binaries / build-macos-universal (push) Has been cancelled
build-et-binaries / build-windows-x64 (push) Has been cancelled
build-et-binaries / release (push) Has been cancelled
[Init] Initial commit - NetMesh terminal manager
2026-09-13 18:24:01 +08:00

2.9 KiB
Raw Blame History

Changelog

[Unreleased] - 2026-03-11

功能

  • Linux deb/rpm/pacman 安装包启用应用内自动更新;未标记的开发包和 Snap 继续提供手动下载入口
  • 终端新增"粘贴时自动上传剪贴板图片"选项:剪贴板含图片时,在远程会话中粘贴(快捷键/右键/中键)自动通过 SFTP 上传图片到远端 .netcatty-paste-images/ 目录并输入远端路径,否则保持原有文本粘贴行为(设置 > 终端 > 行为,默认关闭)
  • 修复自动更新 IPC 事件仅发送到单个窗口的问题,改为广播所有窗口(主窗口 + 设置窗口均可收到)
  • 统一手动检查更新与自动更新的状态机,消除三套并行状态
  • 手动"检查更新"通过 GitHub API 检测版本,发现更新后异步触发 electron-updater 下载
  • 设置窗口中点击"检查更新"后,下载进度可实时反映在 UI 中
  • 应用启动后 5 秒自动触发 electron-updater 检查更新,无需用户手动点击
  • 发现新版本后自动开始下载(autoDownload=true
  • 下载完成后弹出持久 toast 通知,用户点击"立即重启"即可安装
  • 下载失败时弹出错误 toast提供"打开 Releases"降级入口
  • Settings > System 进度条实时展示自动下载进度,由 useUpdateCheck 统一驱动
  • Linux Snap、未标记的开发包等不支持 electron-updater 的平台自动跳过,保持原有 GitHub API 通知行为

设计原理

  • broadcastToAllWindows 替换 getSenderWindow 单点发送,保证所有窗口都能收到 IPC 事件
  • manualCheckStatus 字段追踪手动检查 UI 状态idle/checking/available/up-to-date/errorautoDownloadStatus 在 UI 层按优先级渲染
  • SettingsSystemTab 不再持有本地 update state单向接收 useUpdateCheck 统一数据
  • 将原有两套独立系统GitHub API 通知 + electron-updater 手动下载)合并为统一状态机:useUpdateCheck 作为唯一事实来源,同时驱动 App.tsx toast 和 SettingsSystemTab 进度条
  • 全局持久化 IPC 监听器在 autoUpdateBridge.init() 时一次性注册,避免每次手动下载请求重复注册/清理监听器
  • autoInstallOnAppQuit=false,不做静默安装,由用户主动触发重启

接口变更SettingsSystemTabProps

  • 移除:autoDownloadStatusdownloadPercent
  • 新增:updateState(完整 UpdateStatecheckNowinstallUpdateopenReleasePage

注意事项

  • checkNow 语义:使用 GitHub APIperformCheck)检测是否有新版本,若发现更新且 electron-updater 尚未开始下载,则异步触发 bridge.checkForUpdate() 启动自动下载流程
  • 此功能仅对打包后的应用Windows NSIS、macOS dmg/zip、Linux AppImage/deb/rpm/pacman生效dev 模式需配合 forceDevUpdateConfig=true + dev-app-update.yml 测试(见 .gitignore
  • hasUpdate 旧 toast 在 autoDownloadStatus !== 'idle' 时自动抑制,避免与新 toast 重复