Skip to content

1.3.8

Latest

Choose a tag to compare

@github-actions github-actions released this 19 Aug 07:07
· 11 commits to main since this release

RemoteBridge v1.3.8 发行版

发布日期:2026-08-19
桌面端:v1.3.8 | 服务端:v1.0.0 | Web:v1.0.0


桌面端 UI/UX 全面升级(apps/desktop/src/renderer/)

  • 无障碍(a11y)增强:为文件列表、对话框、面包屑添加 ARIA live region、role="dialog"aria-modalaria-labelledby 语义属性;对话框支持 Escape 关闭、点击外部关闭、焦点锁定(focus lock),满足 WCAG 2.1 AA 标准(App.tsxMessages.tsxSettings.tsxcomponents/FileList.tsxcomponents/Breadcrumb.tsx
  • 对比度修复mutable-foreground 色值在暗色/亮色模式下均调整至 ≥4.5:1 对比度,符合 WCAG AA 要求(globals.css
  • 动效与主题令牌:新增 CSS 变量滚动条、prefers-reduced-motion 全局尊重、selection 颜色、--transition-standard 等动效令牌;状态指示灯改用语义化 CSS 变量(--status-online / --status-offline / --status-connecting),与 Tailwind 主题令牌对齐(globals.csstheme.ts

桌面端系统字体栈替换(apps/desktop/src/、packages/shared/src/ui-fonts.ts)

  • 移除 Google Fonts 依赖:将 next/font/google 的 Inter 字体替换为跨平台系统字体栈(SF Pro → Segoe UI → Roboto → Noto Sans CJK → PingFang SC / Microsoft YaHei → emoji),零网络依赖,原生渲染,首屏加载更快且无 FOIT/FOUT(web/src/app/layout.tsxweb/tailwind.config.tsdesktop/tailwind.config.tsglobals.css

桌面端内置本地中继服务器(apps/desktop/src/main/local-relay.ts)

  • 修复设置页修改配置后本地中继未重启:修改本地中继端口或自动启动选项后,自动停止旧进程并以新配置重启,避免配置与实际运行状态不一致(local-relay.tsSettings.tsx

生产环境 Docker / 服务端加固(多文件)

  • Relay Server 开启 trustProxy: true:修复部署在 Caddy 反向代理之后时,@fastify/rate-limit 按代理 IP 而非真实客户端 IP 计数的问题,限流重新按真实客户端 IP 生效(apps/server/src/index.ts
  • 新增 1 MB 请求体大小上限bodyLimit: 1_048_576,防止恶意大请求耗尽服务端内存(apps/server/src/index.ts
  • 两个 Dockerfile 新增非 root 运行用户:server 镜像创建 uid 1001 relayuser,web 镜像创建 uid 1001 nextjs,容器被攻破时攻击者权限降至最小(apps/server/Dockerfileapps/web/Dockerfile
  • Web 容器新增 HEALTHCHECKnode -e 内联检查 / 路由返回码 <500,30s 间隔、5s 超时、20s 启动宽限期、3 次重试(apps/web/Dockerfile
  • depends_on 改用 condition: service_healthy:Caddy 仅在 server 和 web 的 HEALTHCHECK 通过后接受流量,避免启动期间 502(docker-compose.yml
  • 所有容器添加资源上限与日志轮转:server ≤1 CPU / 512 MB、web ≤0.5 CPU / 256 MB;日志 max-size: 10m / max-file: 3~5,防止磁盘耗尽(docker-compose.yml
  • 所有容器添加 no-new-privileges 安全选项:阻止容器内进程通过 SUID 二进制提权(docker-compose.yml
  • Caddyfile 补全安全响应头:HSTS(max-age=31536000; includeSubDomains; preload)、X-Content-Type-Options: nosniffX-Frame-Options: DENYReferrer-Policy: strict-origin-when-cross-originPermissions-Policy 关闭摄像头/麦克风/地理位置等、-Server 隐藏 Caddy 版本信息(Caddyfile
  • Next.js 响应头同步补全Content-Security-PolicyX-Content-Type-OptionsX-Frame-OptionsReferrer-PolicyPermissions-Policy 双层防御(apps/web/next.config.mjs

安全修复与代码质量(多文件)

  • 路径校验 case-sensitive 修复:Windows 路径大小写不敏感匹配逻辑错误,现在统一按平台语义处理(packages/shared/src/security.ts
  • 符号链接逃逸防护:共享目录内符号链接指向允许目录外时,realpathSync 解析后校验,防止目录穿越(packages/shared/src/security.ts
  • RATE_LIMIT_CONFIG NaN 守卫:环境变量缺失或非数字时回退默认值,避免 NaN 导致限流失效(packages/shared/src/security.ts
  • 文件隧道帧长度校验file-tunnel-codec.ts 解码时验证帧长度字段,防止恶意/损坏帧导致缓冲区越界
  • Host JWT 从 URL 移至 Authorization 头:桌面端连接 WebSocket 时不再在 URL 中携带 token,改为 Authorization: Bearer 头,避免 token 泄露到日志/历史记录(apps/desktop/src/main/ws-client/client.ts
  • 移除 dlopen ABI 回退electron-binding.ts 不再尝试按 Node.js ABI 版本回退加载,直接使用 Electron 预编译二进制,避免加载错误版本导致崩溃
  • 上传分块边界校验CMD_UPLOAD_FILE_CHUNK 处理时验证分块偏移与大小,防止越界写入
  • 僵尸 WebSocket 清理:桌面端断线时彻底清理 WebSocket 实例与事件监听器,防止内存泄漏
  • streamDownload AbortController:下载流支持 AbortController 主动中止,避免组件卸载后仍继续下载
  • 隧道编解码器校验file-tunnel-codec.ts 编码/解码时验证版本与 flags 字段,拒绝不兼容帧

CI / DevOps

  • 修复 HOST_TOKEN_ROTATION_THRESHOLD_DAYS 缺失packages/shared/src/security.tsJWT_CONFIG 新增 HOST_TOKEN_ROTATION_THRESHOLD_DAYS: 30,桌面端 token-rotator 现在正确触发 30 天轮换阈值
  • shared 包 fs 懒加载packages/shared/src/fs 改为 getNodeFs() 懒加载 + webpack fs: false 回退,修复 shared 包在浏览器端打包时 fs 模块报错(next.config.mjs
  • 生产部署指南全面重写生产环境部署与使用指南.md 版本号、rate limit 变量、端口覆盖逻辑、桌面端本地中继、自动更新、安装包获取方式、数据保留策略等全面核实更新

下载

平台 文件
Windows (x64) RemoteBridge-Setup-1.3.8.exe
macOS (Apple Silicon) RemoteBridge-1.3.8-arm64.dmg
Linux (x64) RemoteBridge-1.3.8.AppImage