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-modal、aria-labelledby语义属性;对话框支持 Escape 关闭、点击外部关闭、焦点锁定(focus lock),满足 WCAG 2.1 AA 标准(App.tsx、Messages.tsx、Settings.tsx、components/FileList.tsx、components/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.css、theme.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.tsx、web/tailwind.config.ts、desktop/tailwind.config.ts、globals.css)
桌面端内置本地中继服务器(apps/desktop/src/main/local-relay.ts)
- 修复设置页修改配置后本地中继未重启:修改本地中继端口或自动启动选项后,自动停止旧进程并以新配置重启,避免配置与实际运行状态不一致(
local-relay.ts、Settings.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 1001nextjs,容器被攻破时攻击者权限降至最小(apps/server/Dockerfile、apps/web/Dockerfile) - Web 容器新增 HEALTHCHECK:
node -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: nosniff、X-Frame-Options: DENY、Referrer-Policy: strict-origin-when-cross-origin、Permissions-Policy关闭摄像头/麦克风/地理位置等、-Server隐藏 Caddy 版本信息(Caddyfile) - Next.js 响应头同步补全:
Content-Security-Policy、X-Content-Type-Options、X-Frame-Options、Referrer-Policy、Permissions-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.ts的JWT_CONFIG新增HOST_TOKEN_ROTATION_THRESHOLD_DAYS: 30,桌面端 token-rotator 现在正确触发 30 天轮换阈值 - shared 包
fs懒加载:packages/shared/src/中fs改为getNodeFs()懒加载 + webpackfs: 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 |