WebMux v0.8.0 更新说明
在 GitHub Release 查看与下载(外部链接)下载最新版本
更新内容
v0.8.0 增加 ACP 混合会话(同一段 OpenCode / omp 对话在聊天视图与原生 TUI 之间切换)、聊天附件、tmux 风格终端分屏和锁定终端尺寸,并收紧启动配置校验、修复会话迁移后回放与状态轮询加锁问题。
混合会话(聊天 ↔ 终端)
- 新增 ACP 混合会话:OpenCode 与 omp 的同一段对话可以在原生 TUI 与聊天视图之间来回切换,webmux 会话 ID 不变,历史由 agent 自己保存。会话页头部用“聊天 | 终端”控件切换,正在执行的回合先中断再切换,失败自动回到原来的一端(#181、#187、#190)。
- 聊天视图支持多设备共享队列、插话、权限请求与表单、空闲休眠(
chatIdleSleepMinutes,默认 30 分钟)和重启后从首页“可恢复”分组恢复;CLIls显示所在端,attach在聊天端时被动分离或拒绝。 - 聊天端可选择权限模式(每次询问 / 自动批准),默认自动批准(#181)。点击上下文用量环可查看 Token 使用详情(#181)。
- 切到终端时一直显示进度,直到新 TUI 在本页输出第一屏,切换窗格淡入;“减少动态效果”下不播放动画(#192)。
- 聊天视图支持上传文件与图片(选择、拖放、粘贴),上传中可取消(#194、#197);agent 声明相应能力时,图片以 ACP
image块、其他文件以resource块直接发送,能力不足时退回为服务器路径并提示(#196、#198)。 - 新安装首次启动预置的启动配置默认自动批准(Claude Code、Codex CLI、Gemini CLI、Open Code、omp),其中 Open Code 与 omp 默认开启混合模式;已有
launch-configs.json不会被改写(#191)。
终端与界面
- 支持 tmux 风格分屏:同一页面左右/上下嵌套最多 8 个窗格,拖动调整比例,Ctrl+B 前缀切换、放大和关闭窗格;布局保存在本机,窄于 768px 时一次显示一个窗格(#199)。
- 终端菜单新增“锁定尺寸”:移动端弹出软键盘或地址栏变化时不再改变 PTY 行列,避免 TUI 重绘卡顿(#184、#185)。
- 软键栏增加
#和!按键(#182、#183)。 - 会话卡片在当前标签页打开终端,修饰键点击保留浏览器默认行为;会话页顶栏、首页会话卡片信息行和聊天输入框焦点样式重新整理,大字号窄卡片不再横向溢出。
- 创建 worktree 时“起始提交”显示 commit 标题,并标明本地/远程分支(#200)。
可靠性与修复
- 修复
MoveClients之后浏览器请求回放会吞掉“已迁移”消息、连接停在无输出状态的问题;状态轮询读取/proc时不再持有Manager锁;关闭服务时等待状态与伴随进程协程退出(#201)。 DELETE /api/sessions/{id}按错误类型返回 404 / 409 / 400 / 503 / 500,不再一律 404(#201)。- macOS 上读取进程可执行文件路径恒为空的问题已修复(#187)。
- 修复若干不稳定测试;文档与 spec 增加单行长度守卫(#193、#195)。
升级须知
- 替换二进制后需重启服务;重启会结束当前所有终端会话,仓库登记与磁盘工作树保留。混合会话在重启后标记为已中断,可从首页“可恢复”分组恢复到聊天或终端(排队消息不保留)。
- 启动时校验更严格:
listen端口无效(如:99999),或allowed_origins中有不是精确小写scheme://host[:port]形式的条目(带路径、末尾斜杠、默认端口、大写字母或缺少 scheme)时,服务直接启动失败。这些条目在旧版本中本来就无法匹配、请求会被 403 拒绝;升级前请先修正配置(#201)。 - 新增状态文件
hybrid-sessions.json(及其锁),只保存会话对应关系、命令快照与状态,不含环境变量值、消息或 token;损坏时只禁用混合会话,普通会话不受影响。 - 启动配置的
hybrid字段只在勾选时写入,文件仍为版本2。回退到旧版本前先取消所有混合勾选,否则旧版本会报告启动配置文件损坏。 - 新安装的预置 agent 配置带有自动批准参数(如
--dangerously-skip-permissions、--dangerously-bypass-approvals-and-sandbox、--yolo),agent 执行命令不再逐条确认;需要逐条确认时在“设置 → 启动配置”中删除这些参数。
验证
- 发布提交:
27b88ac4b1215431ca8032151e03a7681700f3a5,tagv0.8.0。 - 主分支 Test 工作流:全部检查(Go race、Vitest、Storybook、性能、Ubuntu 与 macOS E2E 分片)和最终汇总通过。发布前修复了
TestFakeAgentProfiles在 CI 上偶发失败的测试竞态(只改测试)。 - 本地
make check(构建、类型、格式、文档守卫、Oxlint、前端架构守卫、Go 架构守卫、go vet、golangci-lint)与make test-fast(Go race 全部包、479 个单元、326 个浏览器用例)通过。 - 本地
make release VERSION=0.8.0:8 个 Linux、macOS、Windows 产物的架构和SHA256SUMS校验通过,Linux 二进制报告webmux 0.8.0;allowed_origins带末尾斜杠时启动失败并给出原因。 - Release 工作流:前端构建、Go race、全部产物、SHA256 校验和版本检查通过。
- 已重新下载线上全部文件并通过
SHA256SUMS;线上 Linux 二进制版本、源码修订号与CGO_ENABLED=0正确。隔离实例冒烟:未认证 401、创建会话并读到输出预览、删除会话、首页静态资源;新状态目录预置 6 条启动配置,Open Code 与 omp 为混合模式。 - 混合会话的真实 agent 验收(omp 18.13.2、OpenCode 2.1.4)在 #187 中完成;本次发布未重复真实 agent、Windows 实机托盘和 iOS/Android 真机手工验收。
下载
| 文件 | 用途 |
|---|---|
install.sh |
Linux/macOS 一键安装脚本 |
webmux-linux-{amd64,arm64} |
Linux 服务端,也用于 WSL 2 |
webmux-darwin-{amd64,arm64} |
macOS 服务端 |
webmux-windows-{amd64,arm64}.exe |
Windows 控制台客户端 |
webmux-tray-windows-{amd64,arm64}.exe |
Windows 托盘,管理 WSL 中的服务 |
SHA256SUMS |
全部文件的 SHA256 校验值 |
What's Changed
- feat(web): 软键栏增加 # 和 ! 按键 by @pullfrog[bot] in https://github.com/mzdluo123/webmux/pull/183
- docs(openspec): 归档 add-program-status-signals by @mzdluo123 in https://github.com/mzdluo123/webmux/pull/188
- feat(web): 增加锁定终端尺寸选项 (#184) by @pullfrog[bot] in https://github.com/mzdluo123/webmux/pull/185
- feat: ACP 混合会话——聊天视图与原生 TUI 之间切换 (#181) by @mzdluo123 in https://github.com/mzdluo123/webmux/pull/187
- fix(hybrid): 修正 #187 合入后 main 上的不稳定测试与两处状态发布时序 (#181) by @mzdluo123 in https://github.com/mzdluo123/webmux/pull/190
- feat(launch): 预置 agent 配置默认自动批准,OpenCode 与 omp 默认混合模式 by @mzdluo123 in https://github.com/mzdluo123/webmux/pull/191
- feat(web): 切到终端时显示进度直到新 TUI 首屏输出,切换窗格淡入 by @mzdluo123 in https://github.com/mzdluo123/webmux/pull/192
- docs: 为文档与 spec 增加单行长度守卫 by @pullfrog[bot] in https://github.com/mzdluo123/webmux/pull/195
- feat(web): 聊天模式支持上传文件与图片并插入路径 (#194) by @pullfrog[bot] in https://github.com/mzdluo123/webmux/pull/197
- feat(hybrid): 聊天附件以 ACP 图片/嵌入资源块发送 by @pullfrog[bot] in https://github.com/mzdluo123/webmux/pull/198
- fix(web): show commit titles for worktree starting points by @myot233 in https://github.com/mzdluo123/webmux/pull/200
- feat(web): 支持 tmux 风格的终端分屏 by @myot233 in https://github.com/mzdluo123/webmux/pull/199
- fix: address code quality scan findings (session replay, error mapping, config validation, a11y) by @mzdluo123 in https://github.com/mzdluo123/webmux/pull/201
Full Changelog: https://github.com/mzdluo123/webmux/compare/v0.7.3...v0.8.0