WebMux v0.5.0 更新说明
在 GitHub Release 查看与下载(外部链接)下载最新版本
更新内容
本版本把启动方式统一为用户自定义的启动配置,移除内置启动预设;新增终端输出查找、网页端公网隧道设置(持久化、无需重启)、代码工作区图片预览与下载,以及响应式设置分区导航。终端与代码工作区在窄屏上更紧凑。后端完成控制器 / 服务分层重构,并由架构测试与线上 JSON 快照约束。
⚠ 升级须知
- 移除内置启动预设:不再提供 Shell、Claude Code、Codex CLI、omp 等内置预设,TOML 中的
[[presets]]与shell不再生效(旧配置仍可加载,这两项被忽略)。请在“设置 → 启动配置”中保存需要的命令;新安装没有任何启动配置,也可在新建会话时“手动填写”一次性命令。 - API 不兼容:删除
GET /api/presets;POST /api/sessions不再接受preset/args,传入会返回 400(unknown field "preset"),请改用完整 argv 的cmd或configId;SessionInfo去掉preset字段;webmux config show --json不再输出presets。 - 客户端需一起升级:v0.4.0 及更早版本的
webmux run与 Windows 控制台客户端会发送preset字段,连接 v0.5.0 服务端时创建会话会失败(400)。请同时更新服务端与各客户端二进制。 - 隧道配置来源:在网页“设置 → 公网访问”第一次保存后,配置写入
<state_dir>/tunnel.json并优先于 TOML[tunnel];--tunnel/--tunnel=false只覆盖本次启动。“恢复配置文件设置”会删除网页配置并关闭隧道。
自定义启动配置
- 新建会话的“启动命令”分为“预先输入”(选择已保存的配置,显示名称、命令和环境变量数量)与“手动填写”(一次性命令,不写入服务端)两个 Tab,切换时保留各自输入,并记住上次成功使用的选择。
- 启动配置新增“加载 ~/.bashrc”选项:勾选后以交互式 Bash 包装原命令,从
~/.bashrc获取 PATH 与环境变量;再次编辑时显示原命令,不会重复包裹。 - “启动位置”改为 Tab,仓库与工作树改用主题一致的下拉框。
查找终端输出
- 终端菜单“查找终端输出”或
Ctrl+Shift+F(macOS⌘F)打开查找;支持区分大小写、全词、正则,Enter/Shift+Enter导航,Esc关闭。查找输入不会发送到 PTY。 - 范围是浏览器 xterm 当前保留的缓冲(普通终端最多 10000 行,全屏程序仅当前屏幕);服务端历史已截断时会提示。
网页端公网隧道设置
- 新增“设置 → 公网访问”(
/settings/tunnel):选择 Quick Tunnel 或填写 Named Tunnel 凭据与主机名,保存并启用,无需重启、不结束会话。开关与配置跨重启保留。 - 凭据只写不读;启用前确认风险,并要求 WebMux 登录 Token 至少 43 字符。存储损坏或锁冲突时保持本地服务可用且公网关闭;关闭操作即使无法落盘也会立即撤销公网访问。
- 新增
GET /api/tunnel、PUT /api/tunnel/settings、PUT /api/tunnel/enabled、DELETE /api/tunnel/settings;Windows 托盘的隧道开关与网页设置共享同一持久化状态。
代码工作区
- 预览 PNG、JPEG、GIF、WebP、AVIF、BMP、ICO 图片(适应窗口、1:1、缩放、拖动,手机双指缩放),并可按原始字节下载文件(#108)。
- Diff 根据宽度自动切换并排 / 统一布局,“完整文件”合并为一个菜单;引用来源按选中行自动推断(#114)。
- 工具栏与标签栏合并;窄屏把文档栏收进代码菜单(#112)。
界面与性能
- 设置页新增分区导航:桌面在左侧,手机为顶部横向吸顶导航,支持键盘、地址片段直达与前进后退。
- 窄于 640px 时终端顶栏只保留常用操作,全屏、上传、滚动到最新移入菜单;翻看历史时出现“回到最新”按钮。iPhone 主屏幕 Web App 不再显示无效的全屏入口(#112)。
- 设置与管理表单按需加载,会话输出更新时保持列表顺序稳定,大量会话下筛选更流畅(#121)。
架构与工程
- 后端按控制器 / 服务 / 共享层分层,
internal/archtest以规则 R0–R10 强制约束;所有 REST / WebSocket JSON 由internal/contract类型定义,并以线上快照测试固定(#117)。 - 服务端内部消息编码失败时以关闭码
1011仅断开当前连接,会话继续运行。 - 前端新增架构守卫
pnpm --dir web check:arch(设计系统规则、依赖层级、重复代码、未用导出),基线已清零(#118)。 - 状态文件统一原子写入;托盘、服务与运行时记录现在也会 fsync 文件与目录(#115)。
- CI:E2E 分片复用同一份构建,整体时长缩短(#109、#113、#116)。
验证
- 发布提交:
651687bdfca3b84ad8a33524e5070833f067167c,tagv0.5.0。 - 发布提交上的 Test 工作流全部通过。
- Release 工作流通过:前端构建、Go race 测试、
CGO_ENABLED=0下全部 8 个产物构建,SHA256SUMS校验与版本检查。 - 本地冒烟:含
shell/[[presets]]的旧 TOML 可正常启动;GET /api/presets返回 404;带preset的创建请求返回 400,仅带cmd的请求返回 201。 - 未在 Windows 实机上验证托盘发布产物,也未在 iOS / Android 真机上验证本版本的窄屏布局与终端查找。
下载
| 文件 | 用途 |
|---|---|
webmux-linux-{amd64,arm64} |
Linux 服务端(也用于 WSL 2) |
webmux-darwin-{amd64,arm64} |
macOS 服务端 |
webmux-tray-windows-{amd64,arm64}.exe |
Windows 托盘,管理 WSL 中的 WebMux |
webmux-windows-{amd64,arm64}.exe |
Windows 控制台客户端(建议改名为 webmux.exe 并放入 PATH) |
SHA256SUMS |
全部 8 个文件的 SHA256 校验值 |
完整变更:https://github.com/mzdluo123/webmux/compare/v0.4.0...v0.5.0