Skip to content

Releases: mzdluo123/webmux

WebMux v0.10.2

Choose a tag to compare

@github-actions github-actions released this 03 Nov 05:56

What's Changed

  • feat(tray): 增加按用户安装的 Windows 安装程序与托盘 quit 子命令 by @RuabbitX in #245
  • feat(web): migrate the file reader to @pierre/diffs by @pullfrog[bot] in #253
  • feat(hybrid): 支持 Claude Code 混合会话 by @mzdluo123 in #251
  • fix(hybrid): 聊天端使用 ACP 会话标题 by @pullfrog[bot] in #250
  • ci: 拆分 Go 缓存并按变更裁剪测试 job by @pullfrog[bot] in #254
  • feat(launch): 支持选择 Bash / Zsh 启动文件 by @pullfrog[bot] in #248
  • feat(chat): 显示回合实时与最终耗时 by @mzdluo123 in #258
  • feat(release): 提供 Linux deb/rpm 安装包与包内 systemd 用户服务 by @RuabbitX in #256
  • chore(openspec): 归档 add-windows-installer 与 add-linux-packages by @RuabbitX in #259
  • fix(hybrid): 持久化并展示可恢复会话标题 by @mzdluo123 in #257
  • Fix superseded snapshot replay ending the current replay window early by @mzdluo123 in #261
  • docs: 文档守卫不再豁免表格行,并将超宽表格改为列表 by @mzdluo123 in #262
  • test(web): 嵌入资源测试适配预压缩的 .br/.gz 布局 by @mzdluo123 in #263
  • docs: 文档导航治理、README 首页重写与可达性/链接校验 by @mzdluo123 in #264

New Contributors

Full Changelog: v0.10.1...v0.10.2

WebMux 开发版

WebMux 开发版 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 03 Nov 12:23
569dc54

main 上通过 CI 的最新开发版,版本见 SHA256SUMS.minisig 的可信注释。安装:curl -fsSL https://github.com/mzdluo123/webmux/releases/download/dev/install.sh | WEBMUX_CHANNEL=dev sh

WebMux v0.10.1

Choose a tag to compare

@github-actions github-actions released this 02 Nov 04:55

What's Changed

  • fix(web): 统一会话创建入口与默认行为 by @myot233 in #244

Full Changelog: v0.10.0...v0.10.1

WebMux v0.10.0

Choose a tag to compare

@github-actions github-actions released this 01 Nov 16:49
f1d2579

更新内容

v0.10.0 新增 Codex CLI 混合模式、资源管理器文件操作与九款 CLI 启动配置;独立代码窗口改为独立实例;终端重绘风暴与会话恢复闪屏得到修复。

新功能

  • 混合模式支持 Codex CLI,并检查第三方 ACP 连接器是否已安装(#217)。
  • 代码资源管理器右键菜单支持上传、下载、ZIP、重命名、复制、移动与删除;复制与 ZIP 限 100 MiB / 10000 项,递归删除遇 .git 或嵌套仓库会拒绝(#224)。
  • 启动配置补齐九款 CLI 及其品牌图标,图标在本地打包(#219)。
  • 独立代码窗口改为在 iframe 中运行独立实例,弹出和收回时保留完整阅读状态(#237)。
  • 统一 WebMux Logo 与应用图标(#218)。
  • 聊天视图提供快捷指令入口,指令插入消息输入框。

终端

  • 调整尺寸引起的重绘风暴改为按帧合并输出,并消除整屏重新测量(#240)。
  • 同步输出与回放期间,终端文字与 Kitty 图片在同一帧切换,会话恢复时不再闪屏(#239,#241)。
  • 重连期间重新显示“正在恢复…”提示(#232)。
  • 锁定终端尺寸后保持网格并显示滚动条(#221)。
  • 输出队列按积压字节限制,PTY reader 发布输出后让出调度,持续或突发的小块输出不再误断开慢客户端。

修复

  • 慢速 Git 发现不再误报超时,并保留上次快照(#233)。
  • 长按结束的点击不再误选弹出面板中的操作(#225)。
  • 首页默认恢复输出预览(#216)。
  • 独立代码窗口中 diff 行号范围选择失效(#215)。
  • 托盘“远程访问”子菜单不再出现重复的远程 URL。

内部

  • agent 的 ACP / 终端差异收拢到适配器接口(#230);前端路由匹配与懒加载组件抽出(#242);隧道设置去重(#235)。
  • CI 提速,并消除偶发失败的测试(#231,#243)。

升级须知

  • 替换二进制后需重启服务;重启会结束当前所有终端会话,混合会话可从首页“可恢复”分组恢复。
  • 新安装不再预置 Gemini CLI 启动配置(上游已停止服务个人账号)。已有 launch-configs.json 不会被改写。

完整变更:v0.9.1...v0.10.0。

验证

  • 发布提交:f1d2579,tag v0.10.0。
  • Release 工作流:Go race 与跨平台构建通过。
  • 下载全部 9 项载荷后与 SHA256SUMS 逐项比对通过;Linux amd64 二进制运行输出 webmux 0.10.0;install.sh 语法检查通过。

WebMux v0.9.1

Choose a tag to compare

@github-actions github-actions released this 31 Oct 04:34
664c158

更新内容

v0.9.1 修复终端逐字回显和 AI / 日志流式输出一顿一顿的问题(#214)。

  • 取消服务端输出合并时固定的 50 ms 等待,有输出即可发送,只合并当前已排队的字节。
  • 保留 64 KiB 合并上限、控制消息顺序、慢客户端保护和退出前排空。
  • 新增真实 PTY / WebSocket 逐字回显延迟回归,以及 14 万字节连续输出的完整性与退出顺序回归。

高频小块输出会增加 WebSocket / TLS 帧数与封装开销,实际流量增幅取决于每块大小和输出频率;终端内容字节数不变。

升级须知

  • 替换二进制后需重启服务;重启会结束当前所有终端会话,混合会话可从首页“可恢复”分组恢复。

验证

  • 发布提交:664c1586e625a41d8956886bccdd1710894fd08e,tag v0.9.1。
  • 主分支 Test 工作流:全部检查通过,覆盖 Linux / macOS Go race、桌面 / 手机 E2E、Vitest、Storybook、性能、格式与构建检查。
  • Release 工作流:Go race、跨平台构建、SHA256SUMS 与 Linux 版本号校验通过,8 个二进制、安装脚本及校验清单均已上传。
  • 发布后复核:9 项载荷的 GitHub 上传摘要与 SHA256SUMS 一致;另从 GitHub 下载 macOS arm64 二进制、安装脚本及清单,独立校验 SHA-256。macOS arm64 二进制运行返回 webmux 0.9.1,安装脚本语法检查通过。

完整变更:v0.9.0...v0.9.1。

WebMux v0.9.0

Choose a tag to compare

@github-actions github-actions released this 30 Oct 17:07
3ca88de

更新内容

v0.9.0 新增会话交互物临时文件夹(上传与 agent 产物的统一落点,可在代码栏查看,并可一键插入使用说明提示词),强化代码工作区的 Markdown 预览并新增 HTML / 表格 / JSON / PDF 预览,软键栏支持 Shift 修饰键,终端新增快捷键参考。

会话临时文件夹

  • 每个会话拥有一个交互物临时文件夹 $TMPDIR/webmux-artifacts-<uid>-<实例摘要>/<会话ID>,首次需要时创建,权限 0700;路径已被符号链接、他人目录或共享权限目录占用时拒绝使用且不改动它(#213)。
  • 代码栏导航顶部新增“工作区 | 临时文件夹”切换,可浏览、搜索、预览和下载其中文件;临时文件夹没有“修改”与 Diff(#213)。
  • ⚡ 快捷指令菜单顶部固定“插入临时文件夹提示词”,把说明临时文件夹用法的提示词(含真实路径)插入终端或草稿,不自动回车;模板可在“设置 → 快捷指令”中编辑、恢复默认并跨设备同步(新设置键 artifactPrompt)(#213)。
  • 新接口 POST /api/sessions/{id}/artifacts 返回文件夹路径(#213)。

代码工作区

  • Markdown 预览:相对链接在代码面板内打开文件或定位目录,标题锚点与“目录”,工作区相对图片懒加载,围栏代码块语法高亮;文件预览与聊天消息使用独立的净化规则(#210)。
  • 新增 HTML(隔离静态渲染)、CSV/TSV 表格、JSON 与 PDF 预览(#210);修复 PDF 页码框输入时被滚动覆盖的问题(#212)。

终端与界面

  • 软键栏新增 Shift:点按一次性生效,长按约 0.5 秒锁定;支持 Shift+Tab、Shift+方向键等组合(#206)。
  • 终端右上角新增“快捷键”参考面板,说明键位、平台差异与生效范围(#207)。
  • 聊天输入框下方的会话选项统一收为图标控件,横向滚动不再挤压输入框(#205)。

文档

  • 文档单行宽度守卫收紧至 300 显示列,并对超长段落做语义改写(#211)。

升级须知

  • 替换二进制后需重启服务;重启会结束当前所有终端会话,混合会话可从首页“可恢复”分组恢复。
  • 上传文件位置变化:上传改存到会话临时文件夹的 uploads/,同名文件追加 (2) 等序号。升级前留在草稿或待发送聊天附件中的旧 webmux-upload-* 路径会被拒绝,需要重新上传。
  • 上传文件随会话清理:普通会话移除后其临时文件夹(含上传文件)随之删除;混合会话保留到删除其可恢复记录为止;服务启动时清扫不再属于任何可恢复会话的文件夹。以前上传文件会保留到服务停止。
  • artifactPrompt 为 null(使用内置模板)时不写入 settings.json。若保存过自定义模板,回退到旧版本前请在设置页点击“恢复默认”,否则旧版本会把设置文件判为损坏(503)。

验证

  • 发布提交:3ca88de72073c270577e00cd4cad48e4addebc74,tag v0.9.0。
  • 主分支 Test 工作流:全部检查通过。首次运行中 macOS E2E 分片因与本次变更无关的 split-background.spec.ts 偶发失败(重试通过,CI 视 flaky 为失败),重跑失败分片后通过;本地对该用例重复 40 次全部通过。
  • 本地在发布提交上运行 make check 与完整 make test:Go race、Vitest 单元 544 / 浏览器 375、Storybook 332、E2E 255(27 跳过)、性能 16 全部通过。

WebMux v0.8.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 04:50

更新内容

v0.8.0 增加 ACP 混合会话(同一段 OpenCode / omp 对话在聊天视图与原生 TUI 之间切换)、聊天附件、tmux 风格终端分屏和锁定终端尺寸,并收紧启动配置校验、修复会话迁移后回放与状态轮询加锁问题。

混合会话(聊天 ↔ 终端)

  • 新增 ACP 混合会话:OpenCode 与 omp 的同一段对话可以在原生 TUI 与聊天视图之间来回切换,webmux 会话 ID 不变,历史由 agent 自己保存。会话页头部用“聊天 | 终端”控件切换,正在执行的回合先中断再切换,失败自动回到原来的一端(#181、#187、#190)。
  • 聊天视图支持多设备共享队列、插话、权限请求与表单、空闲休眠(chatIdleSleepMinutes,默认 30 分钟)和重启后从首页“可恢复”分组恢复;CLI ls 显示所在端,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,tag v0.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 #183
  • docs(openspec): 归档 add-program-status-signals by @mzdluo123 in #188
  • feat(web): 增加锁定终端尺寸选项 (#184) by @pullfrog[bot] in #185
  • feat: ACP 混合会话——聊天视图与原生 TUI 之间切换 (#181) by @mzdluo123 in #187
  • fix(hybrid): 修正 #187 合入后 main 上的不稳定测试与两处状态发布时序 (#181) by @mzdluo123 in #190
  • feat(launch): 预置 agent 配置默认自动批准,OpenCode 与 omp 默认混合模式 by @mzdluo123 in #191
  • feat(web): 切到终端时显示进度直到新 TUI 首屏输出,切换窗格淡入 by @mzdluo123 in #192
  • docs: 为文档与 spec 增加单行长度守卫 by @pullfrog[bot] in #195
  • feat(web): 聊天模式支持上传文件与图片并插入路径 (#194) by @pullfrog[bot] in #197
  • feat(hybrid): 聊天附件以 ACP 图片/嵌入资源块发送 by @pullfrog[bot] in #198
  • fix(web): show commit titles for worktree starting points by @myot233 in #200
  • feat(web): 支持 tmux 风格的终端分屏 by @myot233 in #199
  • fix: address code quality scan findings (session replay, error mapping, config validation, a11y) by @mzdluo123 in #201

Full Changelog: v0.7.3...v0.8.0

WebMux v0.7.3

Choose a tag to compare

@github-actions github-actions released this 27 Oct 13:58
93492bd

升级注意

  • webmux run --launch-config / --config-id 现在按配置名称选择(区分大小写),不再接受配置 ID(#176)。
  • webmux run -- COMMAND(Linux/macOS)现在默认继承调用方 shell 的环境,--env 覆盖同名值;终端身份变量、WEBMUX_SESSION_ID、PWD/OLDPWD 不继承。Windows 客户端与启动配置不受影响(#180)。

What's Changed

Full Changelog: v0.7.2...v0.7.3

WebMux v0.7.2

Choose a tag to compare

@github-actions github-actions released this 27 Oct 12:03
6772e50

更新内容

v0.7.2 是小版本更新:新增 webmux start 后台启动;所有已授权的 HTTPS 入口都可以开启推送;终端支持用 Ctrl+C 复制选中内容。

CLI

  • 新增 webmux start:没有 systemd/launchd 时也能在后台运行,启动命令立即返回,并打印 PID、本机地址和日志路径。日志默认写到 <state_dir>/webmux.log。服务已在运行时重复执行不会再启动一份,可用 webmux stop / webmux status 停止和查看(#164、#172)。

推送

  • 只要页面来自已授权的 HTTPS 入口,就可以开启推送,包括 Tailscale Serve/Funnel、Cloudflare Named Tunnel,以及 allowed_origins 里配置的 HTTPS 地址。如果反向代理在非 443 端口上转发、并去掉了 Host 里的端口号,通知链接会按配置的端口生成。本机回环地址仍可开启;Quick Tunnel 和非本机的普通 HTTP 地址仍不支持,并会说明原因(#154、#173)。

终端

  • 有选中内容时按 Ctrl+C 复制选区,没有选中时照常发送 SIGINT,与 Windows Terminal 一致(#170、#171)。

升级说明

替换二进制后需要重启服务。重启会结束当前所有终端会话,仓库登记和磁盘上的工作树会保留。

WebMux v0.7.1

Choose a tag to compare

@github-actions github-actions released this 27 Oct 10:07
b34ebdb

更新内容

v0.7.1 是小版本更新:增加一键安装脚本与 CLI 使用 Web 端启动配置,改进 PWA 前台重连、安装入口与浏览器标签页运行指示,并修复 Home Screen 应用中设置导航遮挡顶栏的问题。

安装与 CLI

  • 新增 POSIX install.sh 一键安装脚本,作为 Release 资产发布,不依赖 raw.githubusercontent.com:支持 Linux/macOS 的 amd64/arm64,先直连 GitHub,失败后按 WEBMUX_MIRRORS 回退镜像;二进制与同源 SHA256SUMS 校验通过才原子替换,失败保留旧文件;可用 WEBMUX_VERSION、WEBMUX_INSTALL_DIR、WEBMUX_SHA256 固定版本、目录与摘要。脚本只安装二进制,不修改配置、服务或 shell(#163、#166)。
  • webmux run --launch-config ID(别名 --config-id)直接使用 Web 端保存的启动配置,argv 与环境变量由服务端解析;与 -- 后命令、--env 互斥,空 ID 和冲突别名在创建会话前拒绝(#168)。
  • 会话环境统一终端身份:移除宿主终端/多路复用器(Kitty、tmux、Warp、iTerm、WezTerm、Ghostty、Windows Terminal 等)变量,默认设置 TERM=xterm-256color、COLORTERM=truecolor、TERM_PROGRAM=webmux、TERM_PROGRAM_VERSION 与 WEBMUX_SESSION_ID;显式启动环境仍可覆盖(#168)。

Web 与 PWA

  • 健康的终端连接回到前台时先探测并保留,不再无条件重连;设置页新增“安装应用”分区,显示安装状态与非安全上下文提示;manifest 增加 id/lang,推送授权只请求一次(#161、#165)。
  • 当前终端或首页任一会话处于运行中时,浏览器标签页标题加 ▶ 前缀并播放本地生成的 favicon 动画;等待、空闲、退出时恢复静态图标,prefers-reduced-motion 下保持静态(#162、#167)。
  • Home Screen 应用中设置页吸顶分区导航按实际顶栏高度定位,不再遮挡顶栏(#157、#159)。

升级说明

替换二进制后需重启服务;重启会结束现有终端会话,仓库登记与磁盘工作树保留。