<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-CN">
  <id>https://webmux.rainbit.net/changelog/</id>
  <title>WebMux 更新日志</title>
  <subtitle>WebMux 每个版本的发布说明</subtitle>
  <link rel="self" type="application/atom+xml" href="https://webmux.rainbit.net/changelog.xml"/>
  <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/"/>
  <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases"/>
  <updated>2026-11-03T05:56:42Z</updated>
  <author><name>mzdluo123</name><uri>https://github.com/mzdluo123</uri></author>
  <icon>https://webmux.rainbit.net/favicon.svg</icon>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.10.2/</id>
    <title>WebMux v0.10.2</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.10.2/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.10.2"/>
    <published>2026-11-03T05:56:42Z</published>
    <updated>2026-11-03T05:56:42Z</updated>
    <content type="html">&lt;h2&gt;What&apos;s Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;feat(tray): 增加按用户安装的 Windows 安装程序与托盘 quit 子命令 by @RuabbitX in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/245&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/245&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;feat(web): migrate the file reader to @pierre/diffs by @pullfrog[bot] in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/253&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/253&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;feat(hybrid): 支持 Claude Code 混合会话 by @mzdluo123 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/251&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/251&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;fix(hybrid): 聊天端使用 ACP 会话标题 by @pullfrog[bot] in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/250&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/250&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ci: 拆分 Go 缓存并按变更裁剪测试 job by @pullfrog[bot] in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/254&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/254&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;feat(launch): 支持选择 Bash / Zsh 启动文件 by @pullfrog[bot] in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/248&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/248&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;feat(chat): 显示回合实时与最终耗时 by @mzdluo123 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/258&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/258&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;feat(release): 提供 Linux deb/rpm 安装包与包内 systemd 用户服务 by @RuabbitX in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/256&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/256&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;chore(openspec): 归档 add-windows-installer 与 add-linux-packages by @RuabbitX in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/259&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/259&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;fix(hybrid): 持久化并展示可恢复会话标题 by @mzdluo123 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/257&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/257&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix superseded snapshot replay ending the current replay window early by @mzdluo123 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/261&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/261&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;docs: 文档守卫不再豁免表格行，并将超宽表格改为列表 by @mzdluo123 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/262&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/262&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;test(web): 嵌入资源测试适配预压缩的 .br/.gz 布局 by @mzdluo123 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/263&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/263&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;docs: 文档导航治理、README 首页重写与可达性/链接校验 by @mzdluo123 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/264&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/264&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;New Contributors&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;@RuabbitX made their first contribution in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/245&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/245&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;/strong&gt;: &lt;a href=&quot;https://github.com/mzdluo123/webmux/compare/v0.10.1...v0.10.2&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/compare/v0.10.1...v0.10.2&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.10.1/</id>
    <title>WebMux v0.10.1</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.10.1/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.10.1"/>
    <published>2026-11-02T04:55:35Z</published>
    <updated>2026-11-02T04:55:35Z</updated>
    <content type="html">&lt;h2&gt;What&apos;s Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;fix(web): 统一会话创建入口与默认行为 by @myot233 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/244&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/244&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;/strong&gt;: &lt;a href=&quot;https://github.com/mzdluo123/webmux/compare/v0.10.0...v0.10.1&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/compare/v0.10.0...v0.10.1&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.10.0/</id>
    <title>WebMux v0.10.0</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.10.0/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.10.0"/>
    <published>2026-11-01T16:49:16Z</published>
    <updated>2026-11-01T16:49:16Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;p&gt;v0.10.0 新增 Codex CLI 混合模式、资源管理器文件操作与九款 CLI 启动配置；独立代码窗口改为独立实例；终端重绘风暴与会话恢复闪屏得到修复。&lt;/p&gt;
&lt;h3&gt;新功能&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;混合模式支持 Codex CLI，并检查第三方 ACP 连接器是否已安装（#217）。&lt;/li&gt;
&lt;li&gt;代码资源管理器右键菜单支持上传、下载、ZIP、重命名、复制、移动与删除；复制与 ZIP 限 100 MiB / 10000 项，递归删除遇 &lt;code&gt;.git&lt;/code&gt; 或嵌套仓库会拒绝（#224）。&lt;/li&gt;
&lt;li&gt;启动配置补齐九款 CLI 及其品牌图标，图标在本地打包（#219）。&lt;/li&gt;
&lt;li&gt;独立代码窗口改为在 iframe 中运行独立实例，弹出和收回时保留完整阅读状态（#237）。&lt;/li&gt;
&lt;li&gt;统一 WebMux Logo 与应用图标（#218）。&lt;/li&gt;
&lt;li&gt;聊天视图提供快捷指令入口，指令插入消息输入框。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;终端&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;调整尺寸引起的重绘风暴改为按帧合并输出，并消除整屏重新测量（#240）。&lt;/li&gt;
&lt;li&gt;同步输出与回放期间，终端文字与 Kitty 图片在同一帧切换，会话恢复时不再闪屏（#239，#241）。&lt;/li&gt;
&lt;li&gt;重连期间重新显示“正在恢复…”提示（#232）。&lt;/li&gt;
&lt;li&gt;锁定终端尺寸后保持网格并显示滚动条（#221）。&lt;/li&gt;
&lt;li&gt;输出队列按积压字节限制，PTY reader 发布输出后让出调度，持续或突发的小块输出不再误断开慢客户端。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;修复&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;慢速 Git 发现不再误报超时，并保留上次快照（#233）。&lt;/li&gt;
&lt;li&gt;长按结束的点击不再误选弹出面板中的操作（#225）。&lt;/li&gt;
&lt;li&gt;首页默认恢复输出预览（#216）。&lt;/li&gt;
&lt;li&gt;独立代码窗口中 diff 行号范围选择失效（#215）。&lt;/li&gt;
&lt;li&gt;托盘“远程访问”子菜单不再出现重复的远程 URL。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;内部&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;agent 的 ACP / 终端差异收拢到适配器接口（#230）；前端路由匹配与懒加载组件抽出（#242）；隧道设置去重（#235）。&lt;/li&gt;
&lt;li&gt;CI 提速，并消除偶发失败的测试（#231，#243）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;升级须知&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;替换二进制后需重启服务；重启会结束当前所有终端会话，混合会话可从首页“可恢复”分组恢复。&lt;/li&gt;
&lt;li&gt;新安装不再预置 Gemini CLI 启动配置（上游已停止服务个人账号）。已有 &lt;code&gt;launch-configs.json&lt;/code&gt; 不会被改写。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;完整变更：&lt;a href=&quot;https://github.com/mzdluo123/webmux/compare/v0.9.1...v0.10.0&quot; rel=&quot;noopener&quot;&gt;v0.9.1...v0.10.0&lt;/a&gt;。&lt;/p&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;发布提交：&lt;code&gt;f1d2579&lt;/code&gt;，tag &lt;code&gt;v0.10.0&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/41327919109&quot; rel=&quot;noopener&quot;&gt;Release 工作流&lt;/a&gt;：Go race 与跨平台构建通过。&lt;/li&gt;
&lt;li&gt;下载全部 9 项载荷后与 SHA256SUMS 逐项比对通过；Linux amd64 二进制运行输出 &lt;code&gt;webmux 0.10.0&lt;/code&gt;；&lt;code&gt;install.sh&lt;/code&gt; 语法检查通过。&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.9.1/</id>
    <title>WebMux v0.9.1</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.9.1/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.9.1"/>
    <published>2026-10-31T04:34:25Z</published>
    <updated>2026-10-31T04:34:25Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;p&gt;v0.9.1 修复终端逐字回显和 AI / 日志流式输出一顿一顿的问题（#214）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;取消服务端输出合并时固定的 50 ms 等待，有输出即可发送，只合并当前已排队的字节。&lt;/li&gt;
&lt;li&gt;保留 64 KiB 合并上限、控制消息顺序、慢客户端保护和退出前排空。&lt;/li&gt;
&lt;li&gt;新增真实 PTY / WebSocket 逐字回显延迟回归，以及 14 万字节连续输出的完整性与退出顺序回归。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;高频小块输出会增加 WebSocket / TLS 帧数与封装开销，实际流量增幅取决于每块大小和输出频率；终端内容字节数不变。&lt;/p&gt;
&lt;h2&gt;升级须知&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;替换二进制后需重启服务；重启会结束当前所有终端会话，混合会话可从首页“可恢复”分组恢复。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;发布提交：&lt;code&gt;664c1586e625a41d8956886bccdd1710894fd08e&lt;/code&gt;，tag &lt;code&gt;v0.9.1&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/41168227968&quot; rel=&quot;noopener&quot;&gt;主分支 Test 工作流&lt;/a&gt;：全部检查通过，覆盖 Linux / macOS Go race、桌面 / 手机 E2E、Vitest、Storybook、性能、格式与构建检查。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/41168796778&quot; rel=&quot;noopener&quot;&gt;Release 工作流&lt;/a&gt;：Go race、跨平台构建、SHA256SUMS 与 Linux 版本号校验通过，8 个二进制、安装脚本及校验清单均已上传。&lt;/li&gt;
&lt;li&gt;发布后复核：9 项载荷的 GitHub 上传摘要与 SHA256SUMS 一致；另从 GitHub 下载 macOS arm64 二进制、安装脚本及清单，独立校验 SHA-256。macOS arm64 二进制运行返回 &lt;code&gt;webmux 0.9.1&lt;/code&gt;，安装脚本语法检查通过。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;完整变更：&lt;a href=&quot;https://github.com/mzdluo123/webmux/compare/v0.9.0...v0.9.1&quot; rel=&quot;noopener&quot;&gt;v0.9.0...v0.9.1&lt;/a&gt;。&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.9.0/</id>
    <title>WebMux v0.9.0</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.9.0/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.9.0"/>
    <published>2026-10-30T17:07:46Z</published>
    <updated>2026-10-30T17:07:46Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;p&gt;v0.9.0 新增会话交互物临时文件夹（上传与 agent 产物的统一落点，可在代码栏查看，并可一键插入使用说明提示词），强化代码工作区的 Markdown 预览并新增 HTML / 表格 / JSON / PDF 预览，软键栏支持 Shift 修饰键，终端新增快捷键参考。&lt;/p&gt;
&lt;h3&gt;会话临时文件夹&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;每个会话拥有一个交互物临时文件夹 &lt;code&gt;$TMPDIR/webmux-artifacts-&amp;lt;uid&amp;gt;-&amp;lt;实例摘要&amp;gt;/&amp;lt;会话ID&amp;gt;&lt;/code&gt;，首次需要时创建，权限 0700；路径已被符号链接、他人目录或共享权限目录占用时拒绝使用且不改动它（#213）。&lt;/li&gt;
&lt;li&gt;代码栏导航顶部新增“工作区 | 临时文件夹”切换，可浏览、搜索、预览和下载其中文件；临时文件夹没有“修改”与 Diff（#213）。&lt;/li&gt;
&lt;li&gt;⚡ 快捷指令菜单顶部固定“插入临时文件夹提示词”，把说明临时文件夹用法的提示词（含真实路径）插入终端或草稿，不自动回车；模板可在“设置 → 快捷指令”中编辑、恢复默认并跨设备同步（新设置键 &lt;code&gt;artifactPrompt&lt;/code&gt;）（#213）。&lt;/li&gt;
&lt;li&gt;新接口 &lt;code&gt;POST /api/sessions/{id}/artifacts&lt;/code&gt; 返回文件夹路径（#213）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;代码工作区&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Markdown 预览：相对链接在代码面板内打开文件或定位目录，标题锚点与“目录”，工作区相对图片懒加载，围栏代码块语法高亮；文件预览与聊天消息使用独立的净化规则（#210）。&lt;/li&gt;
&lt;li&gt;新增 HTML（隔离静态渲染）、CSV/TSV 表格、JSON 与 PDF 预览（#210）；修复 PDF 页码框输入时被滚动覆盖的问题（#212）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;终端与界面&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;软键栏新增 Shift：点按一次性生效，长按约 0.5 秒锁定；支持 Shift+Tab、Shift+方向键等组合（#206）。&lt;/li&gt;
&lt;li&gt;终端右上角新增“快捷键”参考面板，说明键位、平台差异与生效范围（#207）。&lt;/li&gt;
&lt;li&gt;聊天输入框下方的会话选项统一收为图标控件，横向滚动不再挤压输入框（#205）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;文档&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;文档单行宽度守卫收紧至 300 显示列，并对超长段落做语义改写（#211）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;升级须知&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;替换二进制后需重启服务；重启会结束当前所有终端会话，混合会话可从首页“可恢复”分组恢复。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;上传文件位置变化&lt;/strong&gt;：上传改存到会话临时文件夹的 &lt;code&gt;uploads/&lt;/code&gt;，同名文件追加 &lt;code&gt; (2)&lt;/code&gt; 等序号。升级前留在草稿或待发送聊天附件中的旧 &lt;code&gt;webmux-upload-*&lt;/code&gt; 路径会被拒绝，需要重新上传。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;上传文件随会话清理&lt;/strong&gt;：普通会话移除后其临时文件夹（含上传文件）随之删除；混合会话保留到删除其可恢复记录为止；服务启动时清扫不再属于任何可恢复会话的文件夹。以前上传文件会保留到服务停止。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;artifactPrompt&lt;/code&gt; 为 &lt;code&gt;null&lt;/code&gt;（使用内置模板）时不写入 &lt;code&gt;settings.json&lt;/code&gt;。若保存过自定义模板，回退到旧版本前请在设置页点击“恢复默认”，否则旧版本会把设置文件判为损坏（503）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;发布提交：&lt;code&gt;3ca88de72073c270577e00cd4cad48e4addebc74&lt;/code&gt;，tag &lt;code&gt;v0.9.0&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/41093913925&quot; rel=&quot;noopener&quot;&gt;主分支 Test 工作流&lt;/a&gt;：全部检查通过。首次运行中 macOS E2E 分片因与本次变更无关的 &lt;code&gt;split-background.spec.ts&lt;/code&gt; 偶发失败（重试通过，CI 视 flaky 为失败），重跑失败分片后通过；本地对该用例重复 40 次全部通过。&lt;/li&gt;
&lt;li&gt;本地在发布提交上运行 &lt;code&gt;make check&lt;/code&gt; 与完整 &lt;code&gt;make test&lt;/code&gt;：Go race、Vitest 单元 544 / 浏览器 375、Storybook 332、E2E 255（27 跳过）、性能 16 全部通过。&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.8.0/</id>
    <title>WebMux v0.8.0</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.8.0/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.8.0"/>
    <published>2026-10-29T04:50:50Z</published>
    <updated>2026-10-29T04:50:50Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;p&gt;v0.8.0 增加 ACP 混合会话（同一段 OpenCode / omp 对话在聊天视图与原生 TUI 之间切换）、聊天附件、tmux 风格终端分屏和锁定终端尺寸，并收紧启动配置校验、修复会话迁移后回放与状态轮询加锁问题。&lt;/p&gt;
&lt;h3&gt;混合会话（聊天 ↔ 终端）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;新增 ACP 混合会话：OpenCode 与 omp 的同一段对话可以在原生 TUI 与聊天视图之间来回切换，webmux 会话 ID 不变，历史由 agent 自己保存。会话页头部用“聊天 | 终端”控件切换，正在执行的回合先中断再切换，失败自动回到原来的一端（#181、#187、#190）。&lt;/li&gt;
&lt;li&gt;聊天视图支持多设备共享队列、插话、权限请求与表单、空闲休眠（&lt;code&gt;chatIdleSleepMinutes&lt;/code&gt;，默认 30 分钟）和重启后从首页“可恢复”分组恢复；CLI &lt;code&gt;ls&lt;/code&gt; 显示所在端，&lt;code&gt;attach&lt;/code&gt; 在聊天端时被动分离或拒绝。&lt;/li&gt;
&lt;li&gt;聊天端可选择权限模式（每次询问 / 自动批准），默认自动批准（#181）。点击上下文用量环可查看 Token 使用详情（#181）。&lt;/li&gt;
&lt;li&gt;切到终端时一直显示进度，直到新 TUI 在本页输出第一屏，切换窗格淡入；“减少动态效果”下不播放动画（#192）。&lt;/li&gt;
&lt;li&gt;聊天视图支持上传文件与图片（选择、拖放、粘贴），上传中可取消（#194、#197）；agent 声明相应能力时，图片以 ACP &lt;code&gt;image&lt;/code&gt; 块、其他文件以 &lt;code&gt;resource&lt;/code&gt; 块直接发送，能力不足时退回为服务器路径并提示（#196、#198）。&lt;/li&gt;
&lt;li&gt;新安装首次启动预置的启动配置默认自动批准（Claude Code、Codex CLI、Gemini CLI、Open Code、omp），其中 Open Code 与 omp 默认开启混合模式；已有 &lt;code&gt;launch-configs.json&lt;/code&gt; 不会被改写（#191）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;终端与界面&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;支持 tmux 风格分屏：同一页面左右/上下嵌套最多 8 个窗格，拖动调整比例，Ctrl+B 前缀切换、放大和关闭窗格；布局保存在本机，窄于 768px 时一次显示一个窗格（#199）。&lt;/li&gt;
&lt;li&gt;终端菜单新增“锁定尺寸”：移动端弹出软键盘或地址栏变化时不再改变 PTY 行列，避免 TUI 重绘卡顿（#184、#185）。&lt;/li&gt;
&lt;li&gt;软键栏增加 &lt;code&gt;#&lt;/code&gt; 和 &lt;code&gt;!&lt;/code&gt; 按键（#182、#183）。&lt;/li&gt;
&lt;li&gt;会话卡片在当前标签页打开终端，修饰键点击保留浏览器默认行为；会话页顶栏、首页会话卡片信息行和聊天输入框焦点样式重新整理，大字号窄卡片不再横向溢出。&lt;/li&gt;
&lt;li&gt;创建 worktree 时“起始提交”显示 commit 标题，并标明本地/远程分支（#200）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;可靠性与修复&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;修复 &lt;code&gt;MoveClients&lt;/code&gt; 之后浏览器请求回放会吞掉“已迁移”消息、连接停在无输出状态的问题；状态轮询读取 &lt;code&gt;/proc&lt;/code&gt; 时不再持有 &lt;code&gt;Manager&lt;/code&gt; 锁；关闭服务时等待状态与伴随进程协程退出（#201）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DELETE /api/sessions/{id}&lt;/code&gt; 按错误类型返回 404 / 409 / 400 / 503 / 500，不再一律 404（#201）。&lt;/li&gt;
&lt;li&gt;macOS 上读取进程可执行文件路径恒为空的问题已修复（#187）。&lt;/li&gt;
&lt;li&gt;修复若干不稳定测试；文档与 spec 增加单行长度守卫（#193、#195）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;升级须知&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;替换二进制后需重启服务；重启会结束当前所有终端会话，仓库登记与磁盘工作树保留。混合会话在重启后标记为已中断，可从首页“可恢复”分组恢复到聊天或终端（排队消息不保留）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;启动时校验更严格&lt;/strong&gt;：&lt;code&gt;listen&lt;/code&gt; 端口无效（如 &lt;code&gt;:99999&lt;/code&gt;），或 &lt;code&gt;allowed_origins&lt;/code&gt; 中有不是精确小写 &lt;code&gt;scheme://host[:port]&lt;/code&gt; 形式的条目（带路径、末尾斜杠、默认端口、大写字母或缺少 scheme）时，服务直接启动失败。这些条目在旧版本中本来就无法匹配、请求会被 403 拒绝；升级前请先修正配置（#201）。&lt;/li&gt;
&lt;li&gt;新增状态文件 &lt;code&gt;hybrid-sessions.json&lt;/code&gt;（及其锁），只保存会话对应关系、命令快照与状态，不含环境变量值、消息或 token；损坏时只禁用混合会话，普通会话不受影响。&lt;/li&gt;
&lt;li&gt;启动配置的 &lt;code&gt;hybrid&lt;/code&gt; 字段只在勾选时写入，文件仍为版本 &lt;code&gt;2&lt;/code&gt;。回退到旧版本前先取消所有混合勾选，否则旧版本会报告启动配置文件损坏。&lt;/li&gt;
&lt;li&gt;新安装的预置 agent 配置带有自动批准参数（如 &lt;code&gt;--dangerously-skip-permissions&lt;/code&gt;、&lt;code&gt;--dangerously-bypass-approvals-and-sandbox&lt;/code&gt;、&lt;code&gt;--yolo&lt;/code&gt;），agent 执行命令不再逐条确认；需要逐条确认时在“设置 → 启动配置”中删除这些参数。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;发布提交：&lt;code&gt;27b88ac4b1215431ca8032151e03a7681700f3a5&lt;/code&gt;，tag &lt;code&gt;v0.8.0&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/40818861278&quot; rel=&quot;noopener&quot;&gt;主分支 Test 工作流&lt;/a&gt;：全部检查（Go race、Vitest、Storybook、性能、Ubuntu 与 macOS E2E 分片）和最终汇总通过。发布前修复了 &lt;code&gt;TestFakeAgentProfiles&lt;/code&gt; 在 CI 上偶发失败的测试竞态（只改测试）。&lt;/li&gt;
&lt;li&gt;本地 &lt;code&gt;make check&lt;/code&gt;（构建、类型、格式、文档守卫、Oxlint、前端架构守卫、Go 架构守卫、&lt;code&gt;go vet&lt;/code&gt;、golangci-lint）与 &lt;code&gt;make test-fast&lt;/code&gt;（Go race 全部包、479 个单元、326 个浏览器用例）通过。&lt;/li&gt;
&lt;li&gt;本地 &lt;code&gt;make release VERSION=0.8.0&lt;/code&gt;：8 个 Linux、macOS、Windows 产物的架构和 &lt;code&gt;SHA256SUMS&lt;/code&gt; 校验通过，Linux 二进制报告 &lt;code&gt;webmux 0.8.0&lt;/code&gt;；&lt;code&gt;allowed_origins&lt;/code&gt; 带末尾斜杠时启动失败并给出原因。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/40819544698&quot; rel=&quot;noopener&quot;&gt;Release 工作流&lt;/a&gt;：前端构建、Go race、全部产物、SHA256 校验和版本检查通过。&lt;/li&gt;
&lt;li&gt;已重新下载线上全部文件并通过 &lt;code&gt;SHA256SUMS&lt;/code&gt;；线上 Linux 二进制版本、源码修订号与 &lt;code&gt;CGO_ENABLED=0&lt;/code&gt; 正确。隔离实例冒烟：未认证 401、创建会话并读到输出预览、删除会话、首页静态资源；新状态目录预置 6 条启动配置，Open Code 与 omp 为混合模式。&lt;/li&gt;
&lt;li&gt;混合会话的真实 agent 验收（omp 18.13.2、OpenCode 2.1.4）在 #187 中完成；本次发布未重复真实 agent、Windows 实机托盘和 iOS/Android 真机手工验收。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;table tabindex=&quot;0&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;文件&lt;/th&gt;
&lt;th&gt;用途&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;code&gt;install.sh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Linux/macOS 一键安装脚本&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-linux-{amd64,arm64}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Linux 服务端，也用于 WSL 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-darwin-{amd64,arm64}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;macOS 服务端&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-windows-{amd64,arm64}.exe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Windows 控制台客户端&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-tray-windows-{amd64,arm64}.exe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Windows 托盘，管理 WSL 中的服务&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SHA256SUMS&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;全部文件的 SHA256 校验值&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h2&gt;What&apos;s Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;feat(web): 软键栏增加 # 和 ! 按键 by @pullfrog[bot] in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/183&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/183&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;docs(openspec): 归档 add-program-status-signals by @mzdluo123 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/188&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/188&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;feat(web): 增加锁定终端尺寸选项 (#184) by @pullfrog[bot] in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/185&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/185&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;feat: ACP 混合会话——聊天视图与原生 TUI 之间切换 (#181) by @mzdluo123 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/187&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/187&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;fix(hybrid): 修正 #187 合入后 main 上的不稳定测试与两处状态发布时序 (#181) by @mzdluo123 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/190&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/190&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;feat(launch): 预置 agent 配置默认自动批准，OpenCode 与 omp 默认混合模式 by @mzdluo123 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/191&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/191&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;feat(web): 切到终端时显示进度直到新 TUI 首屏输出，切换窗格淡入 by @mzdluo123 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/192&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/192&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;docs: 为文档与 spec 增加单行长度守卫 by @pullfrog[bot] in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/195&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/195&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;feat(web): 聊天模式支持上传文件与图片并插入路径 (#194) by @pullfrog[bot] in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/197&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/197&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;feat(hybrid): 聊天附件以 ACP 图片/嵌入资源块发送 by @pullfrog[bot] in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/198&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/198&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;fix(web): show commit titles for worktree starting points by @myot233 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/200&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/200&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;feat(web): 支持 tmux 风格的终端分屏 by @myot233 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/199&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/199&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;fix: address code quality scan findings (session replay, error mapping, config validation, a11y) by @mzdluo123 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/201&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/201&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;/strong&gt;: &lt;a href=&quot;https://github.com/mzdluo123/webmux/compare/v0.7.3...v0.8.0&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/compare/v0.7.3...v0.8.0&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.7.3/</id>
    <title>WebMux v0.7.3</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.7.3/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.7.3"/>
    <published>2026-10-27T13:58:59Z</published>
    <updated>2026-10-27T13:58:59Z</updated>
    <content type="html">&lt;h2&gt;升级注意&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;webmux run --launch-config&lt;/code&gt; / &lt;code&gt;--config-id&lt;/code&gt; 现在按&lt;strong&gt;配置名称&lt;/strong&gt;选择（区分大小写），不再接受配置 ID（#176）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;webmux run -- COMMAND&lt;/code&gt;（Linux/macOS）现在默认&lt;strong&gt;继承调用方 shell 的环境&lt;/strong&gt;，&lt;code&gt;--env&lt;/code&gt; 覆盖同名值；终端身份变量、&lt;code&gt;WEBMUX_SESSION_ID&lt;/code&gt;、&lt;code&gt;PWD&lt;/code&gt;/&lt;code&gt;OLDPWD&lt;/code&gt; 不继承。Windows 客户端与启动配置不受影响（#180）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What&apos;s Changed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;fix: 给出 Tailscale 所有权未知时的精确恢复命令 (#174) by @pullfrog[bot] in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/178&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/178&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;feat(cli): webmux run 按名称选择启动配置 by @mzdluo123 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/176&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/176&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;feat(tray): 将所有复制链接收拢到单一菜单 (#177) by @mzdluo123 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/179&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/179&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;feat(cli): webmux run 默认继承调用方环境 (#175) by @mzdluo123 in &lt;a href=&quot;https://github.com/mzdluo123/webmux/pull/180&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/pull/180&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;/strong&gt;: &lt;a href=&quot;https://github.com/mzdluo123/webmux/compare/v0.7.2...v0.7.3&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/compare/v0.7.2...v0.7.3&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.7.2/</id>
    <title>WebMux v0.7.2</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.7.2/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.7.2"/>
    <published>2026-10-27T12:03:41Z</published>
    <updated>2026-10-27T12:03:41Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;p&gt;v0.7.2 是小版本更新：新增 &lt;code&gt;webmux start&lt;/code&gt; 后台启动；所有已授权的 HTTPS 入口都可以开启推送；终端支持用 Ctrl+C 复制选中内容。&lt;/p&gt;
&lt;h3&gt;CLI&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;新增 &lt;code&gt;webmux start&lt;/code&gt;：没有 systemd/launchd 时也能在后台运行，启动命令立即返回，并打印 PID、本机地址和日志路径。日志默认写到 &lt;code&gt;&amp;lt;state_dir&amp;gt;/webmux.log&lt;/code&gt;。服务已在运行时重复执行不会再启动一份，可用 &lt;code&gt;webmux stop&lt;/code&gt; / &lt;code&gt;webmux status&lt;/code&gt; 停止和查看（#164、#172）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;推送&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;只要页面来自已授权的 HTTPS 入口，就可以开启推送，包括 Tailscale Serve/Funnel、Cloudflare Named Tunnel，以及 &lt;code&gt;allowed_origins&lt;/code&gt; 里配置的 HTTPS 地址。如果反向代理在非 443 端口上转发、并去掉了 Host 里的端口号，通知链接会按配置的端口生成。本机回环地址仍可开启；Quick Tunnel 和非本机的普通 HTTP 地址仍不支持，并会说明原因（#154、#173）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;终端&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;有选中内容时按 Ctrl+C 复制选区，没有选中时照常发送 SIGINT，与 Windows Terminal 一致（#170、#171）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;升级说明&lt;/h3&gt;
&lt;p&gt;替换二进制后需要重启服务。重启会结束当前所有终端会话，仓库登记和磁盘上的工作树会保留。&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.7.1/</id>
    <title>WebMux v0.7.1</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.7.1/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.7.1"/>
    <published>2026-10-27T10:07:34Z</published>
    <updated>2026-10-27T10:07:34Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;p&gt;v0.7.1 是小版本更新：增加一键安装脚本与 CLI 使用 Web 端启动配置，改进 PWA 前台重连、安装入口与浏览器标签页运行指示，并修复 Home Screen 应用中设置导航遮挡顶栏的问题。&lt;/p&gt;
&lt;h3&gt;安装与 CLI&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;新增 POSIX &lt;code&gt;install.sh&lt;/code&gt; 一键安装脚本，作为 Release 资产发布，不依赖 &lt;code&gt;raw.githubusercontent.com&lt;/code&gt;：支持 Linux/macOS 的 amd64/arm64，先直连 GitHub，失败后按 &lt;code&gt;WEBMUX_MIRRORS&lt;/code&gt; 回退镜像；二进制与同源 &lt;code&gt;SHA256SUMS&lt;/code&gt; 校验通过才原子替换，失败保留旧文件；可用 &lt;code&gt;WEBMUX_VERSION&lt;/code&gt;、&lt;code&gt;WEBMUX_INSTALL_DIR&lt;/code&gt;、&lt;code&gt;WEBMUX_SHA256&lt;/code&gt; 固定版本、目录与摘要。脚本只安装二进制，不修改配置、服务或 shell（#163、#166）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;webmux run --launch-config ID&lt;/code&gt;（别名 &lt;code&gt;--config-id&lt;/code&gt;）直接使用 Web 端保存的启动配置，argv 与环境变量由服务端解析；与 &lt;code&gt;--&lt;/code&gt; 后命令、&lt;code&gt;--env&lt;/code&gt; 互斥，空 ID 和冲突别名在创建会话前拒绝（#168）。&lt;/li&gt;
&lt;li&gt;会话环境统一终端身份：移除宿主终端/多路复用器（Kitty、tmux、Warp、iTerm、WezTerm、Ghostty、Windows Terminal 等）变量，默认设置 &lt;code&gt;TERM=xterm-256color&lt;/code&gt;、&lt;code&gt;COLORTERM=truecolor&lt;/code&gt;、&lt;code&gt;TERM_PROGRAM=webmux&lt;/code&gt;、&lt;code&gt;TERM_PROGRAM_VERSION&lt;/code&gt; 与 &lt;code&gt;WEBMUX_SESSION_ID&lt;/code&gt;；显式启动环境仍可覆盖（#168）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Web 与 PWA&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;健康的终端连接回到前台时先探测并保留，不再无条件重连；设置页新增“安装应用”分区，显示安装状态与非安全上下文提示；manifest 增加 &lt;code&gt;id&lt;/code&gt;/&lt;code&gt;lang&lt;/code&gt;，推送授权只请求一次（#161、#165）。&lt;/li&gt;
&lt;li&gt;当前终端或首页任一会话处于运行中时，浏览器标签页标题加 &lt;code&gt;▶&lt;/code&gt; 前缀并播放本地生成的 favicon 动画；等待、空闲、退出时恢复静态图标，&lt;code&gt;prefers-reduced-motion&lt;/code&gt; 下保持静态（#162、#167）。&lt;/li&gt;
&lt;li&gt;Home Screen 应用中设置页吸顶分区导航按实际顶栏高度定位，不再遮挡顶栏（#157、#159）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;升级说明&lt;/h3&gt;
&lt;p&gt;替换二进制后需重启服务；重启会结束现有终端会话，仓库登记与磁盘工作树保留。&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.7.0/</id>
    <title>WebMux v0.7.0</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.7.0/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.7.0"/>
    <published>2026-10-27T02:28:48Z</published>
    <updated>2026-10-27T02:28:48Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;p&gt;v0.7.0 增加 Tailscale Serve / Funnel 托管、跨设备服务端偏好同步、统一配置与状态持久化，并修复原生附着、响应契约和浏览器失败路径问题。&lt;/p&gt;
&lt;h3&gt;Tailscale 安全入口&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;支持检测 Tailscale 状态，并通过配置文件或设置页创建、切换和关闭 Serve / Funnel HTTPS 入口；保存后立即生效，无需重启或结束终端会话（#144、#145）。&lt;/li&gt;
&lt;li&gt;支持 Linux/macOS、WSL 原生 Tailscale 和显式选择的 Windows 主机 provider；Windows provider 要求 WSL mirrored 网络，自动模式不会代管 Windows 节点。&lt;/li&gt;
&lt;li&gt;按精确端口和目标记录所有权，启动时对账，退出或切换时只移除本实例入口，不执行全局 reset；端口冲突、状态损坏或目标不明时失败关闭。&lt;/li&gt;
&lt;li&gt;Host / Origin 按 Cloudflare 与 Tailscale 来源及端口独立授权。Funnel 默认关闭，开启前需要风险确认；状态接口不返回 token、其他入口目标或原始 CLI 输出。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;跨设备偏好与配置诊断&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;新增服务端偏好存储及 REST / WebSocket 同步：主题、终端字号、输出预览、代码阅读、快捷指令、主页工作树和软键盘偏好可在桌面与手机间即时同步（#119、#146、#147）。&lt;/li&gt;
&lt;li&gt;更新带修订号并原子提交，冲突返回 409；客户端按操作意图重读并最多重放一次，断线通过快照恢复，慢客户端不会阻塞其他连接。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;webmux config show&lt;/code&gt; 默认只读显示磁盘配置，&lt;code&gt;--live&lt;/code&gt; 显示运行进程的已验证内存快照、字段来源、实例和存储健康；凭据只显示是否配置，磁盘与活进程诊断不相互回退。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;持久化与可靠性&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;统一 JSON 存储的权限、跨进程生命周期锁、严格有界解码、原子替换和目录同步；损坏文件保留并按领域隔离，提交结果不确定时冻结写入，不广播虚构成功。&lt;/li&gt;
&lt;li&gt;新增全平台持久化清单守卫，核对存储描述符、文件写入入口、锁和文档，防止新增状态文件绕过统一治理。&lt;/li&gt;
&lt;li&gt;原生 &lt;code&gt;run&lt;/code&gt; / &lt;code&gt;attach&lt;/code&gt; 在退出或分离前取消并等待输入、输出和尺寸协程，不再遗留 stdin 读取或误关持久会话；Unix 处理信号中断重试，Windows 使用可取消同步读取。&lt;/li&gt;
&lt;li&gt;必填响应数组和映射稳定编码为 &lt;code&gt;[]&lt;/code&gt; / &lt;code&gt;{}&lt;/code&gt;，并增加 Go wire 快照到前端 Zod 的契约测试；推送存储失败记录内部原因，同时保持固定、脱敏的客户端错误。&lt;/li&gt;
&lt;li&gt;改进中途 401 恢复、上传 413/500/中断后的重试、重复提交防护、列表断线恢复、代码标签键盘导航、路由焦点、深色首屏和 reduced-motion 行为（#149、#152）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;工程与本地测试&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;新增 Go / 前端质量基线，CI 固定运行 golangci-lint、全仓 vet、类型感知 Oxlint、Svelte 推荐规则、严格索引和测试目录类型检查（#148、#150）。&lt;/li&gt;
&lt;li&gt;新增 &lt;code&gt;make test-fast&lt;/code&gt;（Go race + Vitest 单元/组件），&lt;code&gt;make test&lt;/code&gt; 保持完整门禁；本地 E2E 默认最多 2 个 worker，可用 &lt;code&gt;WEBMUX_E2E_WORKERS&lt;/code&gt; 和 &lt;code&gt;GO_TEST_PARALLEL&lt;/code&gt; 调整（#151、#153）。&lt;/li&gt;
&lt;li&gt;E2E 与性能套件共用一次预构建运行时；CI 保持原有分片和 worker 配置，并缓存 Playwright 的 Linux 系统依赖、忽略等待同轮运行产物时的失败 API 响应。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;升级须知&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;替换服务端二进制并重启后生效；服务重启会结束当前 PTY 会话，请先处理正在运行的任务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;先停止全部旧实例并备份配置与状态目录。&lt;/strong&gt; 新旧版本不得共用同一状态目录并发运行；锁文件统一为完整数据文件名加 &lt;code&gt;.lock&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tunnel.json&lt;/code&gt; 改为 &lt;code&gt;tunnel-settings.json&lt;/code&gt;，Tailscale 所有权记录改为 &lt;code&gt;tailscale-ownership.json&lt;/code&gt;。旧 &lt;code&gt;tailscale.json&lt;/code&gt; 会阻止启动：先核实或撤销旧版本创建的外部入口，不要直接删除记录后遗忘仍存在的入口。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;launch-configs.json&lt;/code&gt; 仅接受版本 2；版本 1 文件会保留并使启动配置不可用。升级前用旧版本保存为 v2，或备份后重建。&lt;/li&gt;
&lt;li&gt;旧浏览器偏好不会自动上传；首次使用时在设置页重新确认。Token、Web Push 身份、草稿和最近目录仍保留在本机，不纳入跨设备同步。&lt;/li&gt;
&lt;li&gt;Serve 仅 tailnet 可达；Funnel 会公开到互联网。公网入口仍要求 WebMux token，链接与 token 泄露等同于命令执行权限。Windows 实机托盘、真实公网 Funnel、Linux/macOS 原生 Tailscale 和 iOS/Android 真机未做本次手工验收。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;发布提交：&lt;code&gt;b43fc684eac930687c4889c2d4c2c93d5ed5e09a&lt;/code&gt;，tag &lt;code&gt;v0.7.0&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/40437842851&quot; rel=&quot;noopener&quot;&gt;主分支 Test 工作流&lt;/a&gt;：全部检查和最终汇总通过。合并后首轮发现设置页/快照契约交叉集成问题及一项 Go 测试 lint，已修复并在最终提交重新完整验证。&lt;/li&gt;
&lt;li&gt;本地 &lt;code&gt;make check&lt;/code&gt;、&lt;code&gt;make test-fast&lt;/code&gt;（421 个单元、264 个浏览器用例）和完整桌面/Pixel 7 Chromium E2E（194 通过、20 按平台条件跳过）通过；8 个 Linux、macOS、Windows 产物的架构、SHA256 和托盘内嵌服务端摘要检查通过，Linux 二进制报告 &lt;code&gt;webmux 0.7.0&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;隔离实例手工验收：认证与 Origin 拒绝、磁盘/实时配置诊断、REST/WebSocket、PTY 输入输出、重连回放、退出清理、原生 &lt;code&gt;run&lt;/code&gt;/&lt;code&gt;attach&lt;/code&gt; 分离后继续运行、服务定义 dry-run。&lt;/li&gt;
&lt;li&gt;桌面与 Pixel 7 双客户端偏好双向同步、重启持久化、409/非法请求、损坏设置文件保留与 503 降级均通过；偏好损坏时真实终端创建、命令、回放和退出仍可用。&lt;/li&gt;
&lt;li&gt;真实 WSL2 mirrored + Windows Tailscale Serve 10000：设置页应用、HTTPS 页面、认证、Origin、WebSocket、状态脱敏和精确清理通过；既有 443/8444 入口保持不变。Funnel 风险确认与取消通过，未创建真实公网 Funnel。&lt;/li&gt;
&lt;li&gt;上传 413、500、网络中断后第四次重试成功；深色首屏、reduced-motion、中途 401 恢复、路由焦点、代码标签方向键/Home/End、桌面/移动布局手工验收通过。&lt;/li&gt;
&lt;li&gt;Release 工作流：&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/40438363353&quot; rel=&quot;noopener&quot;&gt;构建与发布全部通过&lt;/a&gt;，包括前端构建、Go race、全部 8 个产物、SHA256 校验和版本检查。&lt;/li&gt;
&lt;li&gt;已重新下载线上全部 8 个文件并通过 &lt;code&gt;SHA256SUMS&lt;/code&gt;；线上 Linux 二进制的版本、源码修订号与 &lt;code&gt;CGO_ENABLED=0&lt;/code&gt; 正确，认证、WebSocket、PTY 和重连冒烟再次通过。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;table tabindex=&quot;0&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;文件&lt;/th&gt;
&lt;th&gt;用途&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-linux-{amd64,arm64}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Linux 服务端，也用于 WSL 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-darwin-{amd64,arm64}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;macOS 服务端&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-windows-{amd64,arm64}.exe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Windows 控制台客户端&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-tray-windows-{amd64,arm64}.exe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Windows 托盘，管理 WSL 中的服务&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SHA256SUMS&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;全部 8 个文件的 SHA256 校验值&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;完整变更：&lt;a href=&quot;https://github.com/mzdluo123/webmux/compare/v0.6.0...v0.7.0&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/compare/v0.6.0...v0.7.0&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.6.0/</id>
    <title>WebMux v0.6.0</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.6.0/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.6.0"/>
    <published>2026-10-26T11:08:08Z</published>
    <updated>2026-10-26T11:08:08Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;p&gt;v0.6.0 增加终端图片、程序主动状态报告、按需文件树、Markdown 预览和启动配置级预览，并改进首次启动与移动端交互。&lt;/p&gt;
&lt;h3&gt;终端图片与 agent 状态&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;支持 Kitty 图形协议的直接传输：PNG、RGB、RGBA、分块传输、裁剪、放置与删除；图片跟随终端滚动，普通屏幕与备用屏幕隔离，并限制解码和画布资源。修复 omp 重绘、局部文字擦除和历史回放导致图片丢失的问题（#130、#140）。&lt;/li&gt;
&lt;li&gt;新安装预置的 omp 启动配置包含 &lt;code&gt;PI_FORCE_IMAGE_PROTOCOL=kitty&lt;/code&gt;。已有启动配置不会被覆盖，需要时可自行添加这个环境变量。&lt;/li&gt;
&lt;li&gt;支持 OSC 7501 程序状态报告和服务端探测应答，无浏览器附着时也能应答。按程序状态、Warp 事件、普通通知和响铃的来源优先级合并提醒，减少结构化 agent 的误报；新增默认开启的 &lt;code&gt;program_status&lt;/code&gt; 配置（#143）。&lt;/li&gt;
&lt;li&gt;改进截断历史的安全回放与重绘，修复 Android 收起键盘后触摸终端意外重新弹出键盘的问题。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;代码工作区与会话总览&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;文件导航改为类似 VS Code 的按需文件树，支持展开、折叠、分页加载和当前文件定位（#126）。&lt;/li&gt;
&lt;li&gt;代码语法高亮按需加载；新增经过清洗的 Markdown 预览，预览中的外部图片与资源不自动加载。&lt;/li&gt;
&lt;li&gt;启动配置支持独立的预览行数和跳过末尾行数，未设置时沿用浏览器的全局预览（#139）。&lt;/li&gt;
&lt;li&gt;启动配置支持本地打包的 agent 图标；旧配置可以自动匹配图标（#137）。&lt;/li&gt;
&lt;li&gt;普通浏览器点击会话行时在新标签页打开终端，首页继续接收更新；主屏幕应用继续使用应用内导航（#136）。&lt;/li&gt;
&lt;li&gt;终端字体下限降为 8px（#135）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;首次启动与工程支持&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;默认配置文件缺失时，首次启动自动创建私有配置并保存随机 Token；已有配置不自动改写（#131）。&lt;/li&gt;
&lt;li&gt;新安装首次创建启动配置时，提供 Shell、Claude Code、Codex CLI、Gemini CLI、Open Code 和 omp 的可编辑配置。&lt;/li&gt;
&lt;li&gt;新增文档与规格的行数、体积和目录结构检查，协议与用户故事文档按主题拆分（#142）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;升级须知&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;替换服务端二进制并重启后生效；服务重启会结束当前 PTY 会话，请先处理正在运行的任务。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;launch-configs.json&lt;/code&gt; 的当前写入格式为版本 2，兼容读取版本 1；已有启动配置和用户删除后的空配置均不会被重新预置。&lt;/li&gt;
&lt;li&gt;OSC 7501 状态默认启用，可用 &lt;code&gt;program_status = false&lt;/code&gt; 关闭。agent 在阻塞状态被强制结束、且 shell 未发送 &lt;code&gt;OSC 133;A&lt;/code&gt; 时，状态可能持续显示等待，详见使用指南。&lt;/li&gt;
&lt;li&gt;Kitty 图形暂不支持文件/共享内存传输、动画、Unicode 占位符和相对父放置。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;发布提交：&lt;code&gt;7b7a37569372a8ecb5a9f5a4dc7549730bb06cde&lt;/code&gt;，tag &lt;code&gt;v0.6.0&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/40310251012&quot; rel=&quot;noopener&quot;&gt;主分支 Test 工作流&lt;/a&gt;：全部检查和最终汇总通过；首轮有两项 Chromium 安装超时，重跑未完成项后通过。&lt;/li&gt;
&lt;li&gt;本地预发布构建：8 个 Linux、macOS、Windows 产物的架构、SHA256 和托盘内嵌服务端摘要检查通过，Linux 二进制报告 &lt;code&gt;webmux 0.6.0&lt;/code&gt;，示例配置校验通过。&lt;/li&gt;
&lt;li&gt;使用发布二进制启动隔离实例：认证、Origin 拒绝、内嵌页面与脚本、WebSocket、PTY 输入输出、断线重连、历史回放、退出与清理冒烟通过；终端与提醒的桌面/Pixel 7 Chromium E2E 为 25 项通过、3 项按平台条件跳过。&lt;/li&gt;
&lt;li&gt;Release 工作流：&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/40312285383&quot; rel=&quot;noopener&quot;&gt;构建与发布全部通过&lt;/a&gt;，包括前端构建、Go race、全部 8 个产物、SHA256 校验和版本检查。&lt;/li&gt;
&lt;li&gt;已重新下载线上全部 8 个文件并通过 &lt;code&gt;SHA256SUMS&lt;/code&gt;；线上 Linux 二进制的版本、源码修订号与 &lt;code&gt;CGO_ENABLED=0&lt;/code&gt; 正确，认证、WebSocket、PTY 和重连冒烟再次通过。&lt;/li&gt;
&lt;li&gt;未进行 Windows 实机托盘交互或 iOS/Android 真机验收；手机测试使用 Chromium 设备模拟。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;table tabindex=&quot;0&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;文件&lt;/th&gt;
&lt;th&gt;用途&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-linux-{amd64,arm64}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Linux 服务端，也用于 WSL 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-darwin-{amd64,arm64}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;macOS 服务端&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-windows-{amd64,arm64}.exe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Windows 控制台客户端&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-tray-windows-{amd64,arm64}.exe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Windows 托盘，管理 WSL 中的服务&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SHA256SUMS&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;全部 8 个文件的 SHA256 校验值&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;完整变更：&lt;a href=&quot;https://github.com/mzdluo123/webmux/compare/v0.5.0...v0.6.0&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/compare/v0.5.0...v0.6.0&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.5.0/</id>
    <title>WebMux v0.5.0</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.5.0/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.5.0"/>
    <published>2026-10-25T10:35:13Z</published>
    <updated>2026-10-25T10:35:13Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;p&gt;本版本把启动方式统一为用户自定义的启动配置，移除内置启动预设；新增终端输出查找、网页端公网隧道设置（持久化、无需重启）、代码工作区图片预览与下载，以及响应式设置分区导航。终端与代码工作区在窄屏上更紧凑。后端完成控制器 / 服务分层重构，并由架构测试与线上 JSON 快照约束。&lt;/p&gt;
&lt;h3&gt;⚠ 升级须知&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;移除内置启动预设&lt;/strong&gt;：不再提供 Shell、Claude Code、Codex CLI、omp 等内置预设，TOML 中的 &lt;code&gt;[[presets]]&lt;/code&gt; 与 &lt;code&gt;shell&lt;/code&gt; 不再生效（旧配置仍可加载，这两项被忽略）。请在“设置 → 启动配置”中保存需要的命令；新安装没有任何启动配置，也可在新建会话时“手动填写”一次性命令。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API 不兼容&lt;/strong&gt;：删除 &lt;code&gt;GET /api/presets&lt;/code&gt;；&lt;code&gt;POST /api/sessions&lt;/code&gt; 不再接受 &lt;code&gt;preset&lt;/code&gt; / &lt;code&gt;args&lt;/code&gt;，传入会返回 400（&lt;code&gt;unknown field &quot;preset&quot;&lt;/code&gt;），请改用完整 argv 的 &lt;code&gt;cmd&lt;/code&gt; 或 &lt;code&gt;configId&lt;/code&gt;；&lt;code&gt;SessionInfo&lt;/code&gt; 去掉 &lt;code&gt;preset&lt;/code&gt; 字段；&lt;code&gt;webmux config show --json&lt;/code&gt; 不再输出 &lt;code&gt;presets&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;客户端需一起升级&lt;/strong&gt;：v0.4.0 及更早版本的 &lt;code&gt;webmux run&lt;/code&gt; 与 Windows 控制台客户端会发送 &lt;code&gt;preset&lt;/code&gt; 字段，连接 v0.5.0 服务端时创建会话会失败（400）。请同时更新服务端与各客户端二进制。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;隧道配置来源&lt;/strong&gt;：在网页“设置 → 公网访问”第一次保存后，配置写入 &lt;code&gt;&amp;lt;state_dir&amp;gt;/tunnel.json&lt;/code&gt; 并优先于 TOML &lt;code&gt;[tunnel]&lt;/code&gt;；&lt;code&gt;--tunnel&lt;/code&gt; / &lt;code&gt;--tunnel=false&lt;/code&gt; 只覆盖本次启动。“恢复配置文件设置”会删除网页配置并关闭隧道。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;自定义启动配置&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;新建会话的“启动命令”分为“预先输入”（选择已保存的配置，显示名称、命令和环境变量数量）与“手动填写”（一次性命令，不写入服务端）两个 Tab，切换时保留各自输入，并记住上次成功使用的选择。&lt;/li&gt;
&lt;li&gt;启动配置新增“加载 ~/.bashrc”选项：勾选后以交互式 Bash 包装原命令，从 &lt;code&gt;~/.bashrc&lt;/code&gt; 获取 PATH 与环境变量；再次编辑时显示原命令，不会重复包裹。&lt;/li&gt;
&lt;li&gt;“启动位置”改为 Tab，仓库与工作树改用主题一致的下拉框。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;查找终端输出&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;终端菜单“查找终端输出”或 &lt;code&gt;Ctrl+Shift+F&lt;/code&gt;（macOS &lt;code&gt;⌘F&lt;/code&gt;）打开查找；支持区分大小写、全词、正则，&lt;code&gt;Enter&lt;/code&gt; / &lt;code&gt;Shift+Enter&lt;/code&gt; 导航，&lt;code&gt;Esc&lt;/code&gt; 关闭。查找输入不会发送到 PTY。&lt;/li&gt;
&lt;li&gt;范围是浏览器 xterm 当前保留的缓冲（普通终端最多 10000 行，全屏程序仅当前屏幕）；服务端历史已截断时会提示。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;网页端公网隧道设置&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;新增“设置 → 公网访问”（&lt;code&gt;/settings/tunnel&lt;/code&gt;）：选择 Quick Tunnel 或填写 Named Tunnel 凭据与主机名，保存并启用，无需重启、不结束会话。开关与配置跨重启保留。&lt;/li&gt;
&lt;li&gt;凭据只写不读；启用前确认风险，并要求 WebMux 登录 Token 至少 43 字符。存储损坏或锁冲突时保持本地服务可用且公网关闭；关闭操作即使无法落盘也会立即撤销公网访问。&lt;/li&gt;
&lt;li&gt;新增 &lt;code&gt;GET /api/tunnel&lt;/code&gt;、&lt;code&gt;PUT /api/tunnel/settings&lt;/code&gt;、&lt;code&gt;PUT /api/tunnel/enabled&lt;/code&gt;、&lt;code&gt;DELETE /api/tunnel/settings&lt;/code&gt;；Windows 托盘的隧道开关与网页设置共享同一持久化状态。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;代码工作区&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;预览 PNG、JPEG、GIF、WebP、AVIF、BMP、ICO 图片（适应窗口、1:1、缩放、拖动，手机双指缩放），并可按原始字节下载文件（#108）。&lt;/li&gt;
&lt;li&gt;Diff 根据宽度自动切换并排 / 统一布局，“完整文件”合并为一个菜单；引用来源按选中行自动推断（#114）。&lt;/li&gt;
&lt;li&gt;工具栏与标签栏合并；窄屏把文档栏收进代码菜单（#112）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;界面与性能&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;设置页新增分区导航：桌面在左侧，手机为顶部横向吸顶导航，支持键盘、地址片段直达与前进后退。&lt;/li&gt;
&lt;li&gt;窄于 640px 时终端顶栏只保留常用操作，全屏、上传、滚动到最新移入菜单；翻看历史时出现“回到最新”按钮。iPhone 主屏幕 Web App 不再显示无效的全屏入口（#112）。&lt;/li&gt;
&lt;li&gt;设置与管理表单按需加载，会话输出更新时保持列表顺序稳定，大量会话下筛选更流畅（#121）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;架构与工程&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;后端按控制器 / 服务 / 共享层分层，&lt;code&gt;internal/archtest&lt;/code&gt; 以规则 R0–R10 强制约束；所有 REST / WebSocket JSON 由 &lt;code&gt;internal/contract&lt;/code&gt; 类型定义，并以线上快照测试固定（#117）。&lt;/li&gt;
&lt;li&gt;服务端内部消息编码失败时以关闭码 &lt;code&gt;1011&lt;/code&gt; 仅断开当前连接，会话继续运行。&lt;/li&gt;
&lt;li&gt;前端新增架构守卫 &lt;code&gt;pnpm --dir web check:arch&lt;/code&gt;（设计系统规则、依赖层级、重复代码、未用导出），基线已清零（#118）。&lt;/li&gt;
&lt;li&gt;状态文件统一原子写入；托盘、服务与运行时记录现在也会 fsync 文件与目录（#115）。&lt;/li&gt;
&lt;li&gt;CI：E2E 分片复用同一份构建，整体时长缩短（#109、#113、#116）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;发布提交：&lt;code&gt;651687bdfca3b84ad8a33524e5070833f067167c&lt;/code&gt;，tag &lt;code&gt;v0.5.0&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;发布提交上的 &lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/40184914943&quot; rel=&quot;noopener&quot;&gt;Test 工作流&lt;/a&gt;全部通过。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/40185202125&quot; rel=&quot;noopener&quot;&gt;Release 工作流&lt;/a&gt;通过：前端构建、Go race 测试、&lt;code&gt;CGO_ENABLED=0&lt;/code&gt; 下全部 8 个产物构建，&lt;code&gt;SHA256SUMS&lt;/code&gt; 校验与版本检查。&lt;/li&gt;
&lt;li&gt;本地冒烟：含 &lt;code&gt;shell&lt;/code&gt; / &lt;code&gt;[[presets]]&lt;/code&gt; 的旧 TOML 可正常启动；&lt;code&gt;GET /api/presets&lt;/code&gt; 返回 404；带 &lt;code&gt;preset&lt;/code&gt; 的创建请求返回 400，仅带 &lt;code&gt;cmd&lt;/code&gt; 的请求返回 201。&lt;/li&gt;
&lt;li&gt;未在 Windows 实机上验证托盘发布产物，也未在 iOS / Android 真机上验证本版本的窄屏布局与终端查找。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;table tabindex=&quot;0&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;文件&lt;/th&gt;
&lt;th&gt;用途&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-linux-{amd64,arm64}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Linux 服务端（也用于 WSL 2）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-darwin-{amd64,arm64}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;macOS 服务端&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-tray-windows-{amd64,arm64}.exe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Windows 托盘，管理 WSL 中的 WebMux&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-windows-{amd64,arm64}.exe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Windows 控制台客户端（建议改名为 &lt;code&gt;webmux.exe&lt;/code&gt; 并放入 &lt;code&gt;PATH&lt;/code&gt;）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SHA256SUMS&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;全部 8 个文件的 SHA256 校验值&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;完整变更&lt;/strong&gt;：&lt;a href=&quot;https://github.com/mzdluo123/webmux/compare/v0.4.0...v0.5.0&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/compare/v0.4.0...v0.5.0&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.4.0/</id>
    <title>WebMux v0.4.0</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.4.0/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.4.0"/>
    <published>2026-10-24T07:30:07Z</published>
    <updated>2026-10-24T07:30:07Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;p&gt;本版本加入服务端启动配置和多条暂存，设置页可查看公网隧道的运行状态，并提供 Named Tunnel 配置指引。默认监听地址改为 &lt;code&gt;0.0.0.0:7681&lt;/code&gt;：未配置 token 且监听地址不是 loopback 时，每次启动自动生成强 token。原生终端附着会把本地终端的明暗配色报告给会话，Claude Code 与 Codex CLI 预设也会加载 &lt;code&gt;~/.bashrc&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;⚠ 升级须知&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;默认监听所有接口，并自动生成 token&lt;/strong&gt;：默认 &lt;code&gt;listen&lt;/code&gt; 从 &lt;code&gt;127.0.0.1:7681&lt;/code&gt; 改为 &lt;code&gt;0.0.0.0:7681&lt;/code&gt;。未配置 &lt;code&gt;token&lt;/code&gt; 且监听地址不是 loopback（包括默认值）时，每次启动生成 256 位随机 token，并在终端打印带 &lt;code&gt;#token=&lt;/code&gt; 的本地链接；以 systemd / launchd 运行时该链接会写入 journal 或日志，且每次重启更换。需要固定 token 时，请执行 &lt;code&gt;webmux config init&lt;/code&gt;（&lt;code&gt;webmux service install&lt;/code&gt; 初始化的配置已带 token）。只有仅监听 loopback 且未启用隧道时，空 token 才表示不认证。正在运行的实例可通过 &lt;code&gt;webmux status --json --reveal-token&lt;/code&gt; 读取当前 token。配置中显式写了 &lt;code&gt;listen&lt;/code&gt; 的用户不受默认值变化影响。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;agent 预设改为经交互式 bash 启动&lt;/strong&gt;：默认 &lt;code&gt;claude&lt;/code&gt;、&lt;code&gt;codex&lt;/code&gt; 预设与 omp 一样以 &lt;code&gt;bash -ic &apos;exec &amp;lt;agent&amp;gt; &quot;$@&quot;&apos; &amp;lt;agent&amp;gt;&lt;/code&gt; 启动。配置中已声明 &lt;code&gt;[[presets]]&lt;/code&gt; 的用户需要手动修改对应 &lt;code&gt;cmd&lt;/code&gt;；已保存的启动配置是命令副本，不会随之改变。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;启动配置（#103）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;设置页新增“启动配置”：把“名称 + 完整命令 + 环境变量”保存在服务端，换浏览器或设备后仍可使用；可从内置预设填入命令，名称默认取预设标签。环境变量值默认遮挡，列表与新建会话页只显示变量个数。&lt;/li&gt;
&lt;li&gt;新建会话页并列显示内置预设与已保存配置，一次性命令收在“临时命令（不保存）”中；上次选择从 &lt;code&gt;lastPreset&lt;/code&gt; 自动迁移为 &lt;code&gt;lastLaunch&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;新增 &lt;code&gt;/api/launch-configs&lt;/code&gt; 增删改查接口：列表只返回 &lt;code&gt;envNames&lt;/code&gt;，变量值经 &lt;code&gt;GET /api/launch-configs/{id}&lt;/code&gt; 读取。&lt;code&gt;POST /api/sessions&lt;/code&gt; 新增 &lt;code&gt;configId&lt;/code&gt;，与 &lt;code&gt;preset&lt;/code&gt;/&lt;code&gt;cmd&lt;/code&gt;/&lt;code&gt;args&lt;/code&gt;/&lt;code&gt;env&lt;/code&gt; 互斥。&lt;/li&gt;
&lt;li&gt;配置保存在 &lt;code&gt;&amp;lt;state_dir&amp;gt;/launch-configs.json&lt;/code&gt;（0600，原子写入），由独立文件锁保护；文件损坏或被同一状态目录的另一实例占用时，该功能返回 503 并在设置页显示原因与路径，内置预设与临时命令照常可用。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;草稿与暂存（#98）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;同一会话可保留多条暂存，分别编辑、排序、取用和删除，与当前草稿互不覆盖；暂存面板以图标操作，显示条数、字符数及满额原因。&lt;/li&gt;
&lt;li&gt;界面图标统一为本地打包的 Iconify（tabler）图标。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;公网隧道（#101、#104）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;设置页区分 Quick / Named Tunnel，按步骤说明创建隧道、获取隧道 token、发布应用、写入配置和重启验证，明确根 token 与隧道 token 的区别及 43 字符要求；新增 &lt;a href=&quot;https://github.com/mzdluo123/webmux/blob/main/docs/cloudflare-tunnel.md&quot; rel=&quot;noopener&quot;&gt;Named Tunnel 配置指南&lt;/a&gt;。&lt;/li&gt;
&lt;li&gt;设置页按运行时状态显示隧道未启用、启动中、已就绪或异常停止；就绪时区分 Quick / Named 并显示公网地址。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;终端与原生附着&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;同步本地终端配色&lt;/strong&gt;：程序已开启明暗报告（DEC 2031）时，&lt;code&gt;webmux attach&lt;/code&gt; / &lt;code&gt;run&lt;/code&gt; 在取得控制后向本地终端查询背景色（OSC 11），按亮度向会话发送 &lt;code&gt;CSI ? 997 ; 1|2 n&lt;/code&gt;，查询应答本身不写入会话。之前从浏览器切到原生终端后，程序会沿用其他设备的配色。分离时关闭本地终端的 2031 模式。本地终端不应答 OSC 11 时不发送报告；Windows Terminal 不支持 2031，附着期间切换主题后需重新附着或按 Enter 重新取得控制。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;agent 预设加载 &lt;code&gt;~/.bashrc&lt;/code&gt;&lt;/strong&gt;：Claude Code、Codex CLI 预设经交互式 bash 启动，&lt;code&gt;~/.bashrc&lt;/code&gt; 中的环境变量与 &lt;code&gt;PATH&lt;/code&gt; 对 agent 可见，追加参数原样传入。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;其他&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;登录页的共享 Token 右侧新增问号提示，说明 token 的用途、生成方式、配置路径和启动参数覆盖（#107）。&lt;/li&gt;
&lt;li&gt;移除工作区底部的两条提示（#102）。&lt;/li&gt;
&lt;li&gt;Node.js 升级到 26.12.1，文档改为直接安装 pnpm（#105）。&lt;/li&gt;
&lt;li&gt;OpenSpec 规格同步并归档全部 14 个变更（#106）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;发布提交：&lt;code&gt;c352ae862c9c9c1270c2563a1ca6a32bd737c547&lt;/code&gt;，tag &lt;code&gt;v0.4.0&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/40074163115&quot; rel=&quot;noopener&quot;&gt;Release 工作流&lt;/a&gt;通过：前端构建、Go race 测试，以及 &lt;code&gt;CGO_ENABLED=0&lt;/code&gt; 下 Linux / macOS 服务端和 Windows 控制台 / 托盘的 amd64、arm64 构建；&lt;code&gt;SHA256SUMS&lt;/code&gt; 校验与版本检查均通过。&lt;/li&gt;
&lt;li&gt;在发布提交上，&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/40073458685&quot; rel=&quot;noopener&quot;&gt;Test 工作流&lt;/a&gt;全部通过：格式与构建、Ubuntu Go race、Vitest 单元与浏览器测试、Storybook、Ubuntu / macOS E2E，以及 CLS 和 4 倍 CPU 降速检查。首次运行中 &lt;code&gt;push.spec.ts&lt;/code&gt; 的 Service Worker 通知用例在 chromium-mobile 上未显示通知（重试通过，按 &lt;code&gt;failOnFlakyTests&lt;/code&gt; 记为失败），重跑失败的作业后全部通过。&lt;/li&gt;
&lt;li&gt;未在 Windows 实机上验证本版本的托盘发布产物；原生附着的配色同步只用模拟终端与 PTY 冒烟测试验证，未在各终端实机上逐一验证。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;table tabindex=&quot;0&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;文件&lt;/th&gt;
&lt;th&gt;用途&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-linux-{amd64,arm64}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Linux 服务端（也用于 WSL 2）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-darwin-{amd64,arm64}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;macOS 服务端&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-tray-windows-{amd64,arm64}.exe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Windows 托盘，管理 WSL 中的 WebMux&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-windows-{amd64,arm64}.exe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Windows 控制台客户端（建议改名为 &lt;code&gt;webmux.exe&lt;/code&gt; 并放入 &lt;code&gt;PATH&lt;/code&gt;）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SHA256SUMS&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;全部 8 个文件的 SHA256 校验值&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;完整变更&lt;/strong&gt;：&lt;a href=&quot;https://github.com/mzdluo123/webmux/compare/v0.3.0...v0.4.0&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/compare/v0.3.0...v0.4.0&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.3.0/</id>
    <title>WebMux v0.3.0</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.3.0/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.3.0"/>
    <published>2026-10-22T16:04:45Z</published>
    <updated>2026-10-22T16:04:45Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;p&gt;本版本加入注意力提醒的 Web Push 推送：会话需要处理时，即使页面已关闭或手机已锁屏也能收到通知。同时主页区分 Shell 报告目录与会话归属，Windows 托盘检查 WSL 中 webmux 的兼容性与版本对应，并修复多项 iOS 体验问题。&lt;/p&gt;
&lt;h3&gt;通知推送（Web Push）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;注意力推送&lt;/strong&gt;（#88）：设备开启推送后，会话需要处理时收到系统通知，页面关闭或手机锁屏后依然有效。页面须从 Cloudflare Named Tunnel 域名（&lt;code&gt;https://&amp;lt;tunnel.hostname&amp;gt;&lt;/code&gt;）或回环地址打开；Quick Tunnel 返回 &lt;code&gt;409 quick_tunnel&lt;/code&gt;，VPN / 局域网地址等其他来源不能订阅。&lt;/li&gt;
&lt;li&gt;加密（RFC 8291 &lt;code&gt;aes128gcm&lt;/code&gt;）和 VAPID（RFC 8292）只使用 Go 标准库，无新增依赖。VAPID 密钥和最多 32 个订阅保存在 &lt;code&gt;&amp;lt;state_dir&amp;gt;/push.json&lt;/code&gt;（0600）；推送服务返回 404 / 410 时删除订阅。日志只记录订阅 ID 和推送服务主机，不记录 endpoint。&lt;/li&gt;
&lt;li&gt;去重：首次快照中已存在的提醒不推送，spinner 输出、来源变化和重连不会重复推送；内部订阅落后重连后，期间产生的提醒只推送一次。&lt;/li&gt;
&lt;li&gt;新增配置段 &lt;code&gt;[push]&lt;/code&gt;：&lt;code&gt;enabled&lt;/code&gt;、&lt;code&gt;subject&lt;/code&gt;、&lt;code&gt;ttl_seconds&lt;/code&gt;、&lt;code&gt;kinds&lt;/code&gt;（&lt;code&gt;bell&lt;/code&gt; 默认关闭）和 &lt;code&gt;include_title&lt;/code&gt;。&lt;code&gt;/local/v1/status&lt;/code&gt; 与 &lt;code&gt;webmux status --json&lt;/code&gt; 新增可选的 &lt;code&gt;push&lt;/code&gt; 字段，契约仍为 v1。&lt;/li&gt;
&lt;li&gt;设置页新增“通知推送”卡片：前置条件不满足时逐项提示（非安全上下文、iOS 未从主屏幕打开、Quick Tunnel、配置未启用、权限被拒等）。Chrome 改用静默权限提示时，卡片说明在地址栏铃铛处允许通知。&lt;/li&gt;
&lt;li&gt;测试通知一次发送到所有已订阅设备，并报告设备数、成功数、移除数和错误；未开启推送的浏览器也能发送，便于在桌面上检查手机后台的显示效果。&lt;/li&gt;
&lt;li&gt;Windows 托盘在隧道项下显示“手机推送”状态和已订阅设备数；“手机推送设置说明…”按是否配置 Named Tunnel 给出设置步骤，不包含 Token。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;会话与代码查看&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Shell 报告目录&lt;/strong&gt;（#89）：解析 shell 通过 OSC 7 报告的当前目录，在会话行中与启动目录分开显示，远端主机的报告带“远端”标记；会话仍按启动目录归属到仓库 / 工作树。&lt;code&gt;SessionInfo&lt;/code&gt; 新增可空字段 &lt;code&gt;reportedCwd&lt;/code&gt;。&lt;code&gt;docs/usage.md&lt;/code&gt; 提供可自行启用的 bash / zsh 片段，WebMux 不改写 shell rc。&lt;/li&gt;
&lt;li&gt;会话菜单可复制 Shell 报告目录（无报告时复制启动目录）。&lt;/li&gt;
&lt;li&gt;代码导航新增“按路径打开”：相对路径以 Shell 报告目录（无报告时用启动目录）为基点，由新增的 &lt;code&gt;GET /api/sessions/{id}/code/locate&lt;/code&gt; 在服务端解析符号链接，只打开代码工作区根内的路径；目录会跳转到文件树。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;omp 预设加载 &lt;code&gt;~/.bashrc&lt;/code&gt;&lt;/strong&gt;（#91）：默认 omp 预设改为 &lt;code&gt;bash -ic &apos;exec omp &quot;$@&quot;&apos; omp&lt;/code&gt;，&lt;code&gt;~/.bashrc&lt;/code&gt; 中的环境变量对 omp 可见，参数边界、进程组和退出码保持不变。配置中已声明 &lt;code&gt;[[presets]]&lt;/code&gt; 的用户需要手动修改 omp 的 &lt;code&gt;cmd&lt;/code&gt;，或执行 &lt;code&gt;webmux config init --force&lt;/code&gt; 重新生成。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Windows（WSL）托盘&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;版本兼容检查&lt;/strong&gt;（#96）：托盘执行 &lt;code&gt;webmux version --json&lt;/code&gt;，先按控制契约判断兼容，再按版本号判断对应，并在菜单状态行指出较旧的一方，例如 &lt;code&gt;托盘 0.3.0 · WSL 0.2.0（WSL 较旧）&lt;/code&gt;。正在运行的实例与已安装文件版本不同时，提示重启后生效（重启会结束所有会话）。&lt;/li&gt;
&lt;li&gt;WSL 中的 webmux 较新且为正式发布版本时，菜单提供“下载托盘 &amp;lt;版本&amp;gt;”，打开对应的 Release 页面。&lt;/li&gt;
&lt;li&gt;契约不兼容的实例仍可启动和停止：托盘按 Windows 侧可达性跟踪，不会误判失败或自动重启，状态行显示“运行中（不兼容，功能受限）”。&lt;/li&gt;
&lt;li&gt;新增 &lt;code&gt;webmux version --json&lt;/code&gt;，输出 &lt;code&gt;{&quot;v&quot;:1,&quot;version&quot;:&quot;…&quot;,&quot;contract&quot;:1}&lt;/code&gt;，不读取配置；&lt;code&gt;webmux version&lt;/code&gt; 的文本输出不变。旧版 webmux 不支持 &lt;code&gt;--json&lt;/code&gt; 时，托盘回退解析文本并视为契约 v1。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;iOS 与移动端&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;点击方向键等软键不再收起 iOS 键盘（#94）。&lt;/li&gt;
&lt;li&gt;添加到主屏幕的 iPhone 应用中，主页和设置页顶栏不再被状态栏和 iOS 26 的边缘模糊遮挡。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;其他&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;项目以 MIT 许可证发布。&lt;/li&gt;
&lt;li&gt;仓库要求随功能变更维护 &lt;a href=&quot;https://github.com/mzdluo123/webmux/blob/main/docs/user-stories.md&quot; rel=&quot;noopener&quot;&gt;User Stories&lt;/a&gt;（#92）。&lt;/li&gt;
&lt;li&gt;4 倍 CPU 降速下的交互延迟阈值从 200 ms 放宽到 300 ms，避免共享 runner 的性能波动导致检查失败。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;发布提交：&lt;code&gt;ff726f04b52577b0ff8531372a5a5838b2b77e2f&lt;/code&gt;，tag &lt;code&gt;v0.3.0&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/39810177392&quot; rel=&quot;noopener&quot;&gt;Release 工作流&lt;/a&gt;通过：前端构建、Go race 测试，以及 &lt;code&gt;CGO_ENABLED=0&lt;/code&gt; 下 Linux / macOS 服务端和 Windows 控制台 / 托盘的 amd64、arm64 构建；构建时确认两个托盘都内嵌了 Linux 服务端摘要。&lt;code&gt;SHA256SUMS&lt;/code&gt; 校验与版本检查均通过。&lt;/li&gt;
&lt;li&gt;在发布提交上，&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/39808175891&quot; rel=&quot;noopener&quot;&gt;Test 工作流&lt;/a&gt;全部通过：格式与构建、Ubuntu Go race、Vitest 单元与浏览器测试、Storybook、Ubuntu / macOS E2E，以及 CLS 和 4 倍 CPU 降速检查。&lt;/li&gt;
&lt;li&gt;未在 Windows 实机上验证本版本的托盘发布产物；CI 无法覆盖推送经 APNs / FCM 的实际送达。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;table tabindex=&quot;0&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;文件&lt;/th&gt;
&lt;th&gt;用途&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-linux-{amd64,arm64}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Linux 服务端（也用于 WSL 2）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-darwin-{amd64,arm64}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;macOS 服务端&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-tray-windows-{amd64,arm64}.exe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Windows 托盘，管理 WSL 中的 WebMux&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-windows-{amd64,arm64}.exe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Windows 控制台客户端（建议改名为 &lt;code&gt;webmux.exe&lt;/code&gt; 并放入 &lt;code&gt;PATH&lt;/code&gt;）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SHA256SUMS&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;全部 8 个文件的 SHA256 校验值&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;手机推送的配置步骤见&lt;a href=&quot;https://github.com/mzdluo123/webmux/blob/main/docs/deployment.md#%E6%89%8B%E6%9C%BA%E6%8E%A8%E9%80%81web-push&quot; rel=&quot;noopener&quot;&gt;部署指南&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;完整变更&lt;/strong&gt;：&lt;a href=&quot;https://github.com/mzdluo123/webmux/compare/v0.2.0...v0.3.0&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/compare/v0.2.0...v0.3.0&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.2.0/</id>
    <title>WebMux v0.2.0</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.2.0/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.2.0"/>
    <published>2026-10-22T01:10:03Z</published>
    <updated>2026-10-22T01:10:03Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;p&gt;本版本加入 Windows（WSL）支持：WebMux 运行在 WSL 2 中，Windows 端提供托盘程序和控制台客户端。同时引入客户端 / 服务端架构，新增原生终端附着和用户级服务管理。&lt;/p&gt;
&lt;h3&gt;Windows（WSL）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;托盘程序&lt;/strong&gt; &lt;code&gt;webmux-tray-windows-{amd64,arm64}.exe&lt;/code&gt;（#82）：在 WSL 2 中启动、监控和停止 WebMux，支持托盘托管与 systemd 两种启动方式；托盘托管的服务意外退出后自动重启（10 分钟内最多 5 次）。支持选择发行版、登录时自动启动，并保证同一用户只运行一个实例，无需管理员权限。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;托盘安装 / 升级 WSL 中的 webmux&lt;/strong&gt;：托盘下载与自身同版本、匹配发行版架构的 Linux 二进制（GitHub 无响应时改用镜像），SHA-256 必须与发布构建时写入托盘的摘要一致才会安装，不会静默自动安装。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;访问入口&lt;/strong&gt;：托盘可以打开 WebMux，也可以复制本机、远程、公网链接或 Token。配置了 Token 时，复制的链接带 &lt;code&gt;#token=&lt;/code&gt;，不进入剪贴板历史和云同步，60 秒后自动清除；通知只显示不含 Token 的地址。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;远程访问&lt;/strong&gt;：WSL NAT 模式下，托盘可以把选定的主机地址（Tailscale 地址优先）转发到 WSL 中的服务，并保留 Host / Origin 校验。Cloudflare 公网隧道可在运行中开关，开启前需要确认，无需重启服务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;控制台客户端&lt;/strong&gt; &lt;code&gt;webmux-windows-{amd64,arm64}.exe&lt;/code&gt;（#84）：在 PowerShell / Windows Terminal 中执行 &lt;code&gt;run&lt;/code&gt;、&lt;code&gt;attach&lt;/code&gt;、&lt;code&gt;ls&lt;/code&gt;、&lt;code&gt;open&lt;/code&gt;、&lt;code&gt;status&lt;/code&gt;。客户端经 &lt;code&gt;wsl.exe --exec webmux bridge&lt;/code&gt; 访问服务，无需 Token，不依赖 WSL 的 localhost 转发或网络模式；当前目录自动换算为 WSL 路径。&lt;/li&gt;
&lt;li&gt;托盘启动的服务会把 &lt;code&gt;~/.local/bin&lt;/code&gt; 等目录加入 &lt;code&gt;PATH&lt;/code&gt;，修复 claude / codex / omp 会话报“找不到可执行文件”的问题。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;命令行与本机 API&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;客户端 / 服务端架构&lt;/strong&gt;（#83）：服务除 TCP 外还监听一个 0600 权限的 Unix 套接字，按对端 UID 认证，并提供 &lt;code&gt;/local/v1/status&lt;/code&gt;、&lt;code&gt;shutdown&lt;/code&gt;、&lt;code&gt;token&lt;/code&gt;、&lt;code&gt;tunnel&lt;/code&gt;。会话内的进程可以创建、列出、附着会话，但不能停止服务、读取 Token 或控制隧道。&lt;/li&gt;
&lt;li&gt;新增子命令 &lt;code&gt;serve&lt;/code&gt;、&lt;code&gt;status&lt;/code&gt;、&lt;code&gt;stop&lt;/code&gt;、&lt;code&gt;bridge&lt;/code&gt; 和 &lt;code&gt;config path|show|validate|check|init&lt;/code&gt;。&lt;code&gt;status&lt;/code&gt; / &lt;code&gt;stop&lt;/code&gt; 支持版本化 JSON 输出，&lt;code&gt;serve&lt;/code&gt; 支持 &lt;code&gt;--log-file&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;原生终端附着&lt;/strong&gt;（#85）：&lt;code&gt;webmux run -- &amp;lt;命令&amp;gt;&lt;/code&gt; 在当前目录创建会话并附着，&lt;code&gt;webmux attach &amp;lt;ID&amp;gt;&lt;/code&gt; 接续会话，&lt;code&gt;ls&lt;/code&gt; / &lt;code&gt;open&lt;/code&gt; 查找会话和链接。&lt;code&gt;Ctrl+]&lt;/code&gt; 分离后会话继续运行，可在浏览器或手机上接管。&lt;/li&gt;
&lt;li&gt;附着修复：浏览器取得控制后，原生终端的自动应答不再抢回控制，只有按 Enter 才会重新接管。在 modifyOtherKeys、kitty 键盘协议和 Windows Terminal win32-input-mode 编码下，也能识别 Enter 和 &lt;code&gt;Ctrl+]&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用户级服务&lt;/strong&gt;（#86）：&lt;code&gt;webmux service install|status|logs|start|stop|restart|uninstall&lt;/code&gt; 以当前用户安装 systemd --user 或 launchd 服务，无需 sudo。&lt;code&gt;--dry-run&lt;/code&gt; 可预览服务文件，&lt;code&gt;--force&lt;/code&gt; 可更新服务定义；卸载时保留配置、日志和状态目录。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;文档&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;README 新增设计理念（第一级别的 WSL 支持、低侵入性、融入现有终端 agent 工作流、高性能低占用）和 Windows（WSL）快速开始。&lt;/li&gt;
&lt;li&gt;新增 &lt;a href=&quot;https://github.com/mzdluo123/webmux/blob/main/docs/user-stories.md&quot; rel=&quot;noopener&quot;&gt;User Stories&lt;/a&gt;，按功能列出用户目的和验收要点（#87）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;发布提交：&lt;code&gt;1a182519ef3ad28177d88f33197b4312f48e05f0&lt;/code&gt;，tag &lt;code&gt;v0.2.0&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/39703740957&quot; rel=&quot;noopener&quot;&gt;Release 工作流&lt;/a&gt;通过：前端构建、Go race 测试，以及 &lt;code&gt;CGO_ENABLED=0&lt;/code&gt; 下 Linux / macOS 服务端和 Windows 控制台 / 托盘的 amd64、arm64 构建。&lt;code&gt;SHA256SUMS&lt;/code&gt; 校验与版本检查均通过。&lt;/li&gt;
&lt;li&gt;下载已发布的 &lt;code&gt;webmux-linux-amd64&lt;/code&gt; 后验证：&lt;code&gt;SHA256SUMS&lt;/code&gt; 校验通过，版本为 &lt;code&gt;0.2.0&lt;/code&gt;；认证请求返回 200，未认证返回 401，非法 Origin 写请求返回 403，创建 shell 会话返回 201；&lt;code&gt;webmux status&lt;/code&gt; 和 &lt;code&gt;webmux ls&lt;/code&gt; 经本机套接字正确显示实例和会话。&lt;code&gt;webmux-tray-windows-amd64.exe&lt;/code&gt; 内嵌的 Linux 服务端摘要与 &lt;code&gt;SHA256SUMS&lt;/code&gt; 一致。&lt;/li&gt;
&lt;li&gt;在发布提交上，&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/39703707884&quot; rel=&quot;noopener&quot;&gt;Test 工作流&lt;/a&gt;中的格式与构建、Ubuntu Go race、Vitest 单元与浏览器测试、Storybook、Ubuntu / macOS E2E 全部通过。“CLS 和 4 倍 CPU 降速”检查中，桌面端 create-and-type 的交互延迟为 248 ms，超过 200 ms 阈值；相同前端代码在 &lt;code&gt;77ab858&lt;/code&gt; 上为 168 ms 并通过，因此判定为 runner 性能波动。&lt;/li&gt;
&lt;li&gt;未在 Windows 实机上验证托盘和控制台客户端。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;table tabindex=&quot;0&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;文件&lt;/th&gt;
&lt;th&gt;用途&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-linux-{amd64,arm64}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Linux 服务端（也用于 WSL 2）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-darwin-{amd64,arm64}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;macOS 服务端&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-tray-windows-{amd64,arm64}.exe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Windows 托盘，管理 WSL 中的 WebMux&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-windows-{amd64,arm64}.exe&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Windows 控制台客户端（建议改名为 &lt;code&gt;webmux.exe&lt;/code&gt; 并放入 &lt;code&gt;PATH&lt;/code&gt;）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SHA256SUMS&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;全部 8 个文件的 SHA256 校验值&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Windows 安装步骤见 &lt;a href=&quot;https://github.com/mzdluo123/webmux#windowswsl&quot; rel=&quot;noopener&quot;&gt;README&lt;/a&gt; 和&lt;a href=&quot;https://github.com/mzdluo123/webmux/blob/main/docs/deployment.md#windowswsl&quot; rel=&quot;noopener&quot;&gt;部署指南&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;完整变更&lt;/strong&gt;：&lt;a href=&quot;https://github.com/mzdluo123/webmux/compare/v0.1.10...v0.2.0&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/compare/v0.1.10...v0.2.0&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.1.10/</id>
    <title>WebMux v0.1.10</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.1.10/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.1.10"/>
    <published>2026-10-21T08:39:24Z</published>
    <updated>2026-10-21T08:39:24Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;h3&gt;新功能&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;代码工作区可弹出到独立窗口：顶栏“刷新全部”右侧新增按钮，把整个代码工作区连同已打开的标签移到单独窗口，引用发送和变化检测照常工作，收起主窗口代码栏也不影响；关闭窗口或点“收回”即回到原位。Chrome / Edge 在 HTTPS 或 localhost 下使用置顶画中画窗口，HTTP 访问、Safari、Firefox 使用普通弹出窗口；手机和平板不显示该按钮。&lt;/li&gt;
&lt;li&gt;通过 Cloudflare Tunnel 远程访问，支持带 Token 的登录链接和二维码（#63）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;界面与交互&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;移动端工作区和代码页的常用按钮从 44px 缩小到 36px，同屏可显示更多内容。&lt;/li&gt;
&lt;li&gt;会话卡片的状态、连接与时间紧凑排列，不再按固定列分散。&lt;/li&gt;
&lt;li&gt;顶栏连接状态和主机名紧贴操作按钮，状态变化不再引起布局跳动。&lt;/li&gt;
&lt;li&gt;终端程序可感知页面的浅色/深色主题切换（DEC 2031）；移除终端下方的黑色条带；worktree 的“启动会话”按钮更易识别。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;稳定性&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;稳定终端相关检查，加快新建会话表单的打开速度（#81）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;发布提交：&lt;code&gt;27dbd12586c09505545fa3916d2104f6ebd20b34&lt;/code&gt;，tag &lt;code&gt;v0.1.10&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;在该提交的独立源码目录运行冻结依赖安装，交叉构建 Linux/macOS 的 amd64、arm64 二进制，&lt;code&gt;CGO_ENABLED=0&lt;/code&gt;；Svelte/TypeScript 检查零错误、零警告。&lt;/li&gt;
&lt;li&gt;Linux amd64 发布产物启动验证通过：版本为 &lt;code&gt;0.1.10&lt;/code&gt;，357 个内嵌资源通过 HTTP 逐字节校验；认证健康检查返回 200，未认证返回 401，非法 Origin 写请求返回 403。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/39570181899&quot; rel=&quot;noopener&quot;&gt;GitHub Actions 全部通过&lt;/a&gt;：格式与构建、Ubuntu Go race、Vitest 单元与浏览器测试、Storybook、Ubuntu/macOS E2E，以及 CLS 和 4 倍 CPU 降速测试。&lt;/li&gt;
&lt;li&gt;四个二进制均通过 &lt;code&gt;SHA256SUMS&lt;/code&gt; 校验。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;p&gt;下载对应系统和架构的二进制，赋予执行权限后运行。&lt;code&gt;SHA256SUMS&lt;/code&gt; 提供四个平台文件的 SHA256 校验值。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;完整变更&lt;/strong&gt;：&lt;a href=&quot;https://github.com/mzdluo123/webmux/compare/v0.1.9...v0.1.10&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/compare/v0.1.9...v0.1.10&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.1.9/</id>
    <title>WebMux v0.1.9</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.1.9/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.1.9"/>
    <published>2026-10-21T03:17:31Z</published>
    <updated>2026-10-21T03:17:31Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;h3&gt;工作区与代码查看&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;支持选择哪些 worktree 显示在首页，简化工作区与会话层级；收紧工具栏，改善窄屏和大字体下的操作可达性（#62、#65、#77）。&lt;/li&gt;
&lt;li&gt;代码差异支持语法高亮、并排与统一视图，并完善空差异和文本选择提示（#73）。&lt;/li&gt;
&lt;li&gt;统一界面设计、控件和反馈状态，在线状态显示服务端主机名（#66、#75）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;稳定性与性能&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;改善大量终端输出、进程与仓库负载下的会话响应，限制预览重复处理和输入排队时间，减少进程与 Git 查询开销（#64）。&lt;/li&gt;
&lt;li&gt;修复无人值守的 &lt;code&gt;sleep&lt;/code&gt; 被误判为等待输入的问题，覆盖 Linux 和 macOS（#61）。&lt;/li&gt;
&lt;li&gt;减少页面布局跳动，限制启动时可选仓库查询的等待时间，改善慢设备上的创建反馈；增加桌面/移动端 4 倍 CPU 降速回归验证（#79）。&lt;/li&gt;
&lt;li&gt;压缩内嵌前端资源，中文字体改用系统字体，保留打包的拉丁字母、终端符号和图标字体；四个平台的可执行文件约为 11.7–12.5 MB，较 v0.1.8 的约 37.6–38.3 MB 明显缩小（#80）。&lt;/li&gt;
&lt;li&gt;更新 CodeMirror，采用 Oxfmt/Oxlint，并复用构建、并行隔离测试以改善 CI 耗时（#42、#74、#78）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;发布提交：&lt;code&gt;a8a6aed601b6d4a7721596d79753c1455293ef74&lt;/code&gt;，tag &lt;code&gt;v0.1.9&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;使用 Go 1.26.1、Node.js 24.22.0 和 pnpm 12.11.2，从该提交的独立源码目录运行冻结依赖安装，交叉构建 Linux/macOS 的 amd64、arm64 二进制，&lt;code&gt;CGO_ENABLED=0&lt;/code&gt;；Svelte/TypeScript 检查零错误、零警告。&lt;/li&gt;
&lt;li&gt;macOS arm64 发布产物启动验证通过：版本为 &lt;code&gt;0.1.9&lt;/code&gt;，全部 357 个内嵌资源通过 HTTP 逐字节校验；健康检查和认证会话列表返回 200，未认证返回 401，非法 Origin 写请求返回 403，服务正常退出。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/39537222984&quot; rel=&quot;noopener&quot;&gt;GitHub Actions 全部通过&lt;/a&gt;：格式与构建、Ubuntu Go race、Vitest 单元与浏览器测试、Storybook、Ubuntu/macOS E2E，以及 CLS 和 4 倍 CPU 降速测试；独立源码目录的本地 Go race 全套测试也通过。&lt;/li&gt;
&lt;li&gt;四个二进制均通过 &lt;code&gt;SHA256SUMS&lt;/code&gt; 校验。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;p&gt;下载对应系统和架构的二进制，赋予执行权限后运行。&lt;code&gt;SHA256SUMS&lt;/code&gt; 提供四个平台文件的 SHA256 校验值。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;完整变更&lt;/strong&gt;：&lt;a href=&quot;https://github.com/mzdluo123/webmux/compare/v0.1.8...v0.1.9&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/compare/v0.1.8...v0.1.9&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.1.8/</id>
    <title>WebMux v0.1.8</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.1.8/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.1.8"/>
    <published>2026-10-20T15:05:41Z</published>
    <updated>2026-10-20T15:05:41Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;h3&gt;工作区与移动端&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;新增会话实时搜索，支持按会话标题、目录、仓库名称和分支查找；提供全部、运行中、等待中和已退出状态筛选，并显示数量（#59）。&lt;/li&gt;
&lt;li&gt;搜索时自动展开匹配的仓库，提供无匹配结果提示和清除筛选入口（#59）。&lt;/li&gt;
&lt;li&gt;调整会话卡片、终端输出预览和状态展示；增大触控区域，改善窄屏及大字体下的布局（#59）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;终端与构建&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;升级 xterm.js 至 6.0.0，同步升级 fit 和 WebGL 插件；适配触摸滚动，保留 Alt/Option 方向键导航行为，并调整 WebGL 资源释放顺序（#51）。&lt;/li&gt;
&lt;li&gt;升级 Vite 至 8.3.4、Svelte 插件至 7.3.1，保留 Chrome/Edge 107、Firefox 104 和 Safari 16 的构建目标（#56）。&lt;/li&gt;
&lt;li&gt;拆分并行 CI 任务，保留 macOS Go race 与 E2E 覆盖；改善主题切换回归测试的稳定性。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;发布提交：&lt;code&gt;f89f407897e444e0df07e38e95a789070be9e1e6&lt;/code&gt;（tag &lt;code&gt;v0.1.8&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;GitHub Actions 全部通过：格式与构建、Go race、Vitest 单元与浏览器测试、Storybook，以及 Ubuntu/macOS E2E。&lt;/li&gt;
&lt;li&gt;使用 Go 1.26.1、Node.js 24.22.0、pnpm 12.11.2，从 tag 独立构建 Linux/macOS 的 amd64、arm64 二进制；Svelte/TypeScript 检查零错误、零警告。&lt;/li&gt;
&lt;li&gt;macOS arm64 发布产物启动验证通过：版本为 &lt;code&gt;0.1.8&lt;/code&gt;，内嵌网页及入口 JS/CSS 返回 200，已认证健康检查返回 200，会话列表 API 未认证返回 401、认证后返回 200。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;p&gt;选择对应操作系统和架构的二进制，赋予执行权限后运行。&lt;code&gt;SHA256SUMS&lt;/code&gt; 包含四个二进制文件的 SHA256 校验值。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;完整变更&lt;/strong&gt;：&lt;a href=&quot;https://github.com/mzdluo123/webmux/compare/v0.1.7...v0.1.8&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/compare/v0.1.7...v0.1.8&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.1.7/</id>
    <title>WebMux v0.1.7</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.1.7/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.1.7"/>
    <published>2026-10-20T11:47:00Z</published>
    <updated>2026-10-20T11:47:00Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;h3&gt;新功能&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;手机输入与恢复可信化：提交确认、草稿本机保存、断线后增量续接，并引入会话控制端，只有控制端调整 PTY 尺寸，其他客户端按控制端的网格观看（#37）。&lt;/li&gt;
&lt;li&gt;引入 Storybook 及 UI 溢出回归测试（#40）。&lt;/li&gt;
&lt;li&gt;新增持久终端产品能力基线测量工具 &lt;code&gt;cmd/baseline&lt;/code&gt;（#39）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;修复与安全加固&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;API 拒绝不受信任的请求 Host（#25）。&lt;/li&gt;
&lt;li&gt;终端输入超出 WebSocket 发送预算时明确拒绝并提示；resize/resync 控制帧按类型合并，在队列恢复后重试，不会丢失（#33）。&lt;/li&gt;
&lt;li&gt;终端渲染积压时自动恢复（#36）；慢客户端反复重连时退避（#34）。&lt;/li&gt;
&lt;li&gt;代码引用中的 shell 元字符正确加引号（#29）。&lt;/li&gt;
&lt;li&gt;限制预览解析的资源占用：重复指令工作量（#26）、组合字符数量（#27）；丢弃未使用的超链接元数据（#28）。&lt;/li&gt;
&lt;li&gt;限制 Git 输出捕获大小（#32）；代码查看在校验根目录前先获取预算（#30）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;性能&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;进程树分类改为线性遍历（#31）；缓存内嵌静态资源的响应表示（#35）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;依赖与构建&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;从源码构建需要 Go 1.26+&lt;/strong&gt;（golang.org/x/sys v0.49.0，#54）；发布的二进制不受影响。&lt;/li&gt;
&lt;li&gt;Go：BurntSushi/toml v1.6.0、coder/websocket v1.8.15。&lt;/li&gt;
&lt;li&gt;前端：TypeScript 6.0.3、zod 4.6.7、cn 0.5.0、svelte-check 4.7.7、vitest 5.0.5、playwright 1.64.1。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;发布提交：9b492ca960b779e2dd7b27af8a1afb414bb760cc。&lt;/li&gt;
&lt;li&gt;GitHub Actions Test：Ubuntu、macOS 均通过。&lt;/li&gt;
&lt;li&gt;从该提交独立构建 Linux/macOS 的 amd64、arm64 二进制。&lt;/li&gt;
&lt;li&gt;Linux amd64 发布产物启动验证通过，版本为 0.1.7；内嵌网页返回 HTTP 200，会话列表 API 未认证返回 401、认证后返回 200。&lt;/li&gt;
&lt;li&gt;本次发布未执行 iOS/Android 真机验收。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;p&gt;选择对应操作系统和架构的二进制，赋予执行权限后运行。SHA256SUMS 包含四个二进制文件的 SHA256 校验值。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;完整变更&lt;/strong&gt;：&lt;a href=&quot;https://github.com/mzdluo123/webmux/compare/v0.1.6...v0.1.7&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/compare/v0.1.6...v0.1.7&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.1.6/</id>
    <title>WebMux v0.1.6</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.1.6/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.1.6"/>
    <published>2026-10-19T14:00:45Z</published>
    <updated>2026-10-19T14:00:45Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;新增终端快捷命令功能（#10）。&lt;/li&gt;
&lt;li&gt;修复 iOS 输入法提交空格、数字和标点时输入丢失，以及组合输入期间的抖动（#9）。&lt;/li&gt;
&lt;li&gt;改进 agent 等待关注状态：通过终端侧信号保持通知状态，后续输出不会清除，实际用户输入或相关生命周期信号才会清除（#8）。&lt;/li&gt;
&lt;li&gt;调整浏览器测试对亚像素间隙及 resize 期间滚动手势的处理。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;发布提交：949ec3bbde1835199bb1f88b6c2318db0be25fb3。&lt;/li&gt;
&lt;li&gt;GitHub Actions Test：Ubuntu、macOS 均通过。&lt;/li&gt;
&lt;li&gt;从该提交独立构建 Linux/macOS 的 amd64、arm64 二进制。&lt;/li&gt;
&lt;li&gt;Linux amd64 发布产物启动验证通过，版本为 0.1.6；内嵌网页及会话列表 API 返回 HTTP 200。&lt;/li&gt;
&lt;li&gt;本次发布未执行 iOS/Android 真机验收。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;p&gt;选择对应操作系统和架构的二进制，赋予执行权限后运行。SHA256SUMS 包含四个二进制文件的 SHA256 校验值。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;完整变更&lt;/strong&gt;：&lt;a href=&quot;https://github.com/mzdluo123/webmux/compare/v0.1.5...v0.1.6&quot; rel=&quot;noopener&quot;&gt;https://github.com/mzdluo123/webmux/compare/v0.1.5...v0.1.6&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.1.5/</id>
    <title>WebMux v0.1.5</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.1.5/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.1.5"/>
    <published>2026-10-15T12:23:18Z</published>
    <updated>2026-10-15T12:23:18Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;h3&gt;修复：平板上虚拟键盘意外弹出&lt;/h3&gt;
&lt;p&gt;连接手写笔、键盘套或开启桌面模式的平板，浏览器会把主指针报告为“精确指针”，此前被当作桌面设备处理：进入终端即自动聚焦并弹出键盘，软键栏和 &lt;code&gt;⌨&lt;/code&gt; 按钮也被隐藏。&lt;/p&gt;
&lt;p&gt;现在只要设备带触摸屏，就按触摸设备处理：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;只有点击软键栏的 &lt;code&gt;⌨&lt;/code&gt; 才会唤起虚拟键盘&lt;/strong&gt;。进入终端、轻点终端、开启草稿、关闭粘贴 / 复制 / 字体弹窗、读取剪贴板失败、上传完成都不再自动聚焦输入。&lt;/li&gt;
&lt;li&gt;软键栏在所有带触摸屏的设备上默认显示。&lt;/li&gt;
&lt;li&gt;手写笔点击终端与手指一致：可滑动、捏合、长按选择，不会弹出键盘。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;桌面鼠标操作不变，进入终端仍自动聚焦。&lt;/p&gt;
&lt;h3&gt;文档&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;README 重写为项目首页；原设计文档拆分为 &lt;code&gt;docs/&lt;/code&gt; 下的使用指南、部署指南、架构设计与 API 协议，新增 &lt;code&gt;CONTRIBUTING.md&lt;/code&gt; 与 &lt;code&gt;SECURITY.md&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;使用与升级注意&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;带触摸屏的笔记本电脑也会显示软键栏，且用鼠标进入终端时不再自动聚焦，需先点击一次终端。&lt;/li&gt;
&lt;li&gt;重启 WebMux 会结束现有终端会话；升级前请保存工作。仅替换磁盘上的二进制不会让正在运行的进程加载新版本。&lt;/li&gt;
&lt;li&gt;仍须部署在 loopback 或可信 VPN 上；所有 API 与 WebSocket 均受 Token 和 Origin 检查保护。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;p&gt;提供 Linux / macOS 的 amd64、arm64 独立可执行文件，均禁用 CGO，内嵌匹配版本前端。下载对应平台附件后使用 &lt;code&gt;SHA256SUMS&lt;/code&gt; 校验完整性。&lt;/p&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/38732806643&quot; rel=&quot;noopener&quot;&gt;GitHub Actions&lt;/a&gt; 在 Ubuntu 与 macOS 上均通过：格式检查、Go race、前端单元与 Chromium 组件测试及完整 E2E。&lt;/li&gt;
&lt;li&gt;新增 E2E 回归：模拟主指针为精确指针的触摸平板，验证创建会话、从列表进入、手写笔点击、关闭弹窗后均不聚焦输入，仅点击 &lt;code&gt;⌨&lt;/code&gt; 后聚焦；修复前该用例失败。&lt;/li&gt;
&lt;li&gt;Linux amd64 附件实际运行：&lt;code&gt;webmux version&lt;/code&gt; 输出 &lt;code&gt;0.1.5&lt;/code&gt;，内嵌前端页面可访问且包含新的触摸屏样式，未带 Token 的 API 返回 401、带 Token 返回 200。&lt;/li&gt;
&lt;li&gt;所有附件的构建元数据指向发布提交 &lt;code&gt;2cad924&lt;/code&gt;，工作区无未提交修改，CGO 禁用。&lt;/li&gt;
&lt;li&gt;平板行为已由维护者在真实设备上确认；macOS 与 Linux ARM64 附件为交叉编译产物，未在对应平台运行本次附件。&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.1.4/</id>
    <title>WebMux v0.1.4</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.1.4/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.1.4"/>
    <published>2026-10-15T11:19:23Z</published>
    <updated>2026-10-15T11:19:23Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;h3&gt;草稿模式&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;终端顶栏新增“草稿”：左列上下分割为终端与多行草稿面板，可拖动手柄调整高度，同一终端实例通过正常 fit/resize 更新 PTY。&lt;/li&gt;
&lt;li&gt;只有点击“发送”才提交：先完整粘贴正文，成功后在 bracketed paste 之外追加一次 Enter；框内 Enter 只换行，输入法组合期间禁用发送。粘贴与 Enter 均被本地连接接受后才清空并关闭草稿；失败或部分成功保留正文且不自动补发。&lt;/li&gt;
&lt;li&gt;草稿与模式按会话隔离，仅保存在当前页面内存，刷新、关闭页面或认证失效会丢失。&lt;/li&gt;
&lt;li&gt;开启草稿后，代码位置引用、上传路径与剪贴板文本进入草稿，而非直接输入终端。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;终端与移动端&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;终端程序的 OSC 52 复制写入浏览器剪贴板；不可用时回退到复制文本框。回放历史（重新进入、刷新、重连）不再重复触发复制。&lt;/li&gt;
&lt;li&gt;长文本复制 / 粘贴对话框限制在视口内滚动显示。&lt;/li&gt;
&lt;li&gt;轻点、滑动或缩放终端不再唤起键盘，需输入时点击软键栏 &lt;code&gt;⌨&lt;/code&gt;；软键栏在触摸设备默认显示为单行横向滚动，菜单可“强制显示底部工具栏”。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;代码工作区&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;桌面导航面板可拖动或用方向键调整宽度；打开文件或 Diff 不再自动收起导航。&lt;/li&gt;
&lt;li&gt;修改列表使用彩色 Git 状态图标，只显示文件名，完整路径见悬停提示。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;会话列表&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;会话行按状态着色背景（运行中、可能在等你、空闲、已退出），浅色与深色主题各用对应终端调色板。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;其他&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;修复 xterm 在待执行视口帧前被销毁时抛错。&lt;/li&gt;
&lt;li&gt;前端拆分触摸手势、上传与代码导航模块，行为不变。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;使用与升级注意&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;草稿“发送”会追加回车；目标程序未启用 bracketed paste 时，正文中的换行也可能触发提交。&lt;/li&gt;
&lt;li&gt;重启 WebMux 会结束现有终端会话；升级前请保存工作。仅替换磁盘上的二进制不会让正在运行的进程加载新版本。&lt;/li&gt;
&lt;li&gt;仍须部署在 loopback 或可信 VPN 上；所有 API 与 WebSocket 均受 Token 和 Origin 检查保护。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;p&gt;提供 Linux / macOS 的 amd64、arm64 独立可执行文件，均禁用 CGO，内嵌匹配版本前端。下载对应平台附件后使用 &lt;code&gt;SHA256SUMS&lt;/code&gt; 校验完整性。&lt;/p&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/38725110432&quot; rel=&quot;noopener&quot;&gt;GitHub Actions&lt;/a&gt; 在 Ubuntu 与 macOS 上均通过：格式检查、Go race、前端单元与 Chromium 组件测试及完整 E2E。&lt;/li&gt;
&lt;li&gt;本地 Linux 同样通过：&lt;code&gt;go vet&lt;/code&gt;、Go race、前端单元 41 项 / 组件 41 项、E2E 79 项通过（9 项按设计跳过）。&lt;/li&gt;
&lt;li&gt;Linux amd64 附件实际运行：&lt;code&gt;webmux version&lt;/code&gt; 输出 &lt;code&gt;0.1.4&lt;/code&gt;，内嵌前端页面可访问，未带 Token 的 API 返回 401、带 Token 返回 200。&lt;/li&gt;
&lt;li&gt;所有附件的构建元数据指向发布提交 &lt;code&gt;64a4e24&lt;/code&gt;，工作区无未提交修改，CGO 禁用。&lt;/li&gt;
&lt;li&gt;macOS 与 Linux ARM64 附件为交叉编译产物，未在对应平台运行本次附件。&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.1.3/</id>
    <title>WebMux v0.1.3</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.1.3/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.1.3"/>
    <published>2026-10-15T05:39:20Z</published>
    <updated>2026-10-15T05:39:20Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;h3&gt;终端代码工作区&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;在终端旁浏览工作区文件与 Git 修改，浏览器内计算 Diff；支持展开折叠上下文、查看旧侧 / 新侧完整文件，并把 &lt;code&gt;路径:行号&lt;/code&gt; 位置引用插入终端（不自动回车）。&lt;/li&gt;
&lt;li&gt;Diff 行号栏拆为旧 / 新两列并右对齐，删除行与新增行不再错位；“引用来源”决定引用使用哪一侧版本与行号。&lt;/li&gt;
&lt;li&gt;移动视图更紧凑：文件标签只显示文件名（悬停可见完整路径），文档路径与 Diff 控件合并为可换行的单行区域，查找 / 跳转行改为图标按钮；路径过长时从开头省略并保持左对齐。&lt;/li&gt;
&lt;li&gt;查找栏与跳转行面板改用 shadcn 组件：支持区分大小写、全词、正则、上一个 / 下一个、选中全部匹配；跳转行支持 &lt;code&gt;N&lt;/code&gt;、&lt;code&gt;+N&lt;/code&gt;、&lt;code&gt;-N&lt;/code&gt;、&lt;code&gt;N%&lt;/code&gt;、&lt;code&gt;行:列&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;新增行号栏显示开关，选择保存在当前浏览器。&lt;/li&gt;
&lt;li&gt;夜间模式：行号栏改用主题色，语法高亮新增与终端一致的 GitHub Dark 配色；切换主题即时生效。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;稳定性&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;移动端触摸：点击代码行后点右侧 ＋ 发送位置；终端恢复滚动，并新增“滚动到最新位置”按钮。&lt;/li&gt;
&lt;li&gt;上传完成后等待前台重连与回放结束再插入路径，支持取消，插入失败如实提示。&lt;/li&gt;
&lt;li&gt;修复会话预览在缩窄后再增高时可能因虚假历史偏移导致的崩溃。&lt;/li&gt;
&lt;li&gt;从终端返回会话列表时正确释放本页监听器，列表重新挂载后恢复操作，不刷新整页、不结束会话。&lt;/li&gt;
&lt;li&gt;前端自托管 Inter、Noto Sans SC 与 Maple Mono 字体，不再依赖外部字体服务。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;使用与升级注意&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;代码工作区只读浏览，不修改工作区文件；Diff 中“跳转行”按代码区行序定位，而非左侧显示的 Git 行号。&lt;/li&gt;
&lt;li&gt;重启 WebMux 会结束现有终端会话；升级前请保存工作。仅替换磁盘上的二进制不会让正在运行的进程加载新版本。&lt;/li&gt;
&lt;li&gt;仍须部署在 loopback 或可信 VPN 上；所有 API 与 WebSocket 均受 Token 和 Origin 检查保护。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;p&gt;提供 Linux / macOS 的 amd64、arm64 独立可执行文件，均禁用 CGO，内嵌匹配版本前端。下载对应平台附件后使用 &lt;code&gt;SHA256SUMS&lt;/code&gt; 校验完整性。&lt;/p&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/38687106747&quot; rel=&quot;noopener&quot;&gt;GitHub Actions&lt;/a&gt; 在 Ubuntu 与 macOS 上均通过：格式检查、Go race、前端单元 37 项 / Chromium 组件 33 项及完整 E2E。&lt;/li&gt;
&lt;li&gt;Linux amd64 附件实际运行：&lt;code&gt;webmux version&lt;/code&gt; 输出 &lt;code&gt;0.1.3&lt;/code&gt;，内嵌前端页面可访问，未带 Token 的 API 返回 401、带 Token 返回 200。&lt;/li&gt;
&lt;li&gt;所有附件的构建元数据指向发布提交 &lt;code&gt;9720225&lt;/code&gt;，工作区无未提交修改，CGO 禁用。&lt;/li&gt;
&lt;li&gt;macOS 与 Linux ARM64 附件为交叉编译产物，未在对应平台运行本次附件。&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.1.2/</id>
    <title>WebMux v0.1.2</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.1.2/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.1.2"/>
    <published>2026-10-14T16:07:17Z</published>
    <updated>2026-10-14T16:07:17Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;新增前端设置页，可调整会话预览显示行数和跳过末尾行数；默认显示 10 行、跳过末尾 1 行。设置保存在当前浏览器，提供效果示例和恢复默认。&lt;/li&gt;
&lt;li&gt;终端顶栏新增上传按钮，支持选择文件、拖入文件、桌面粘贴剪贴板文件或图片。上传时显示百分比和进度条，支持取消，完成后自动隐藏进度。&lt;/li&gt;
&lt;li&gt;上传成功后将服务器绝对路径粘贴到当前终端；文件名经过 shell 引号保护，不自动按回车。普通文本粘贴保留 xterm 的 bracketed paste 行为，支持原生 Ctrl+V / Cmd+V 与 Ctrl+Shift+V。&lt;/li&gt;
&lt;li&gt;上传文件流式写入系统临时目录中的独立 &lt;code&gt;webmux-upload-*&lt;/code&gt; 子目录，不写入工作区、不覆盖同名文件；失败、取消或会话退出时清理未完成文件。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;使用与升级注意&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;单文件上限 100 MiB，上传期限 5 分钟。目录 / 文件权限为 0700 / 0600；成功文件保留供终端使用，由用户或系统临时目录策略清理，不自动随会话关闭删除。&lt;/li&gt;
&lt;li&gt;剪贴板权限和可读取的文件类型取决于浏览器与操作系统；读取权限不足时可使用原生粘贴、上传按钮或拖拽。&lt;/li&gt;
&lt;li&gt;预览 JSON 字段仍为 &lt;code&gt;preview&lt;/code&gt;，服务端最多提供当前屏幕底部 100 条非空行，由浏览器按本地设置裁剪；前后端请一起升级。附件已内嵌匹配版本前端。&lt;/li&gt;
&lt;li&gt;重启 WebMux 会结束现有终端会话；升级前请保存工作。仅替换磁盘上的二进制不会让正在运行的进程加载新版本。&lt;/li&gt;
&lt;li&gt;仍须部署在 loopback 或可信 VPN 上；上传接口与其他 API 一样受 Token 和 Origin 检查保护。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;p&gt;提供 Linux / macOS 的 amd64、arm64 独立可执行文件，均禁用 CGO。下载对应平台附件后使用 &lt;code&gt;SHA256SUMS&lt;/code&gt; 校验完整性。&lt;/p&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Linux 下全量 Go race tests 通过；前端单元测试 25 项、Chromium 组件测试 22 项通过。&lt;/li&gt;
&lt;li&gt;桌面 / Pixel 7 Chromium E2E 共 31 项通过、5 项按平台跳过，覆盖文件选择、拖拽、剪贴板图片 / 文件、普通文本粘贴和路径输入。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mzdluo123/webmux/actions/runs/38593995164&quot; rel=&quot;noopener&quot;&gt;GitHub Actions&lt;/a&gt; 在 Ubuntu 与 macOS 上均通过：格式检查、Go race、前端单元 / Chromium 组件及完整 E2E 测试。&lt;/li&gt;
&lt;li&gt;真实浏览器限速上传 2 MiB 文件，约 16 秒完成，观察到实际进度变化并核对了完整文件内容。&lt;/li&gt;
&lt;li&gt;本次 Linux amd64 发布二进制实际运行验证了版本号、内嵌设置页与 HTTP 认证；所有附件的构建元数据均指向发布提交，CGO 禁用。&lt;/li&gt;
&lt;li&gt;macOS 与 Linux ARM64 附件为交叉编译产物，未在对应平台运行本次附件。&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.1.1/</id>
    <title>WebMux v0.1.1</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.1.1/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.1.1"/>
    <published>2026-10-14T14:26:10Z</published>
    <updated>2026-10-14T14:26:10Z</updated>
    <content type="html">&lt;h2&gt;更新内容&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;工作区界面统一使用 shadcn 组件：仓库分组、单层工作树卡片和会话列表行，减少嵌套边框。&lt;/li&gt;
&lt;li&gt;会话行扩大点击范围，终端返回按钮使用 Tabler 图标；菜单操作保持独立。&lt;/li&gt;
&lt;li&gt;已有本地分支改为可搜索、可滚动列表，保留占用限制和目标路径联动。&lt;/li&gt;
&lt;li&gt;终端预览固定显示三行，依据当前屏幕底部三条非空行生成，正确处理光标重绘、擦行、清屏、主/备用屏幕切换和尺寸变化；不再把被覆盖的状态栏当作新增输出。&lt;/li&gt;
&lt;li&gt;原始 PTY 输出、终端回放和输入协议不变；预览解析不向 PTY 发送输入或设备查询响应。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;升级注意&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;会话 JSON 的 &lt;code&gt;lastLine&lt;/code&gt; 已替换为 &lt;code&gt;preview&lt;/code&gt;，前后端必须一起升级；附件中的二进制已内嵌匹配版本的前端。&lt;/li&gt;
&lt;li&gt;重启 WebMux 会结束现有终端会话，升级前请保存工作。仅替换磁盘可执行文件不会使正在运行的进程加载新版本。&lt;/li&gt;
&lt;li&gt;从源码构建需要 Go 1.24+；运行二进制不需要 Go 或 Node.js。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;下载&lt;/h2&gt;
&lt;p&gt;提供 Linux / macOS 的 amd64、arm64 独立可执行文件，均禁用 CGO。下载对应平台文件后，使用 &lt;code&gt;SHA256SUMS&lt;/code&gt; 校验完整性。&lt;/p&gt;
&lt;h2&gt;验证&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Linux 环境下全量 Go race tests 通过。&lt;/li&gt;
&lt;li&gt;前端单元测试 22 项、浏览器组件测试 22 项通过；桌面/移动端 E2E 共 25 项通过、3 项跳过。&lt;/li&gt;
&lt;li&gt;真实 PTY 状态栏重绘后的预览与浏览器 xterm 屏幕一致，并验证了备用屏幕切换、恢复和清屏。&lt;/li&gt;
&lt;li&gt;macOS 与 Linux ARM64 为交叉编译产物，未在对应平台运行验证。&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <id>https://webmux.rainbit.net/changelog/v0.1.0/</id>
    <title>WebMux v0.1.0</title>
    <link rel="alternate" type="text/html" href="https://webmux.rainbit.net/changelog/v0.1.0/"/>
    <link rel="related" type="text/html" href="https://github.com/mzdluo123/webmux/releases/tag/v0.1.0"/>
    <published>2026-10-14T13:05:17Z</published>
    <updated>2026-10-14T13:05:17Z</updated>
    <content type="html">&lt;p&gt;首个发布，对应提交 &lt;code&gt;3c8dd18&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;单用户、可重连的 Web 终端。浏览器断开不会结束服务端 PTY；服务重启会结束会话。命令以服务用户身份运行，不是沙箱。不要暴露到公网；默认只监听 &lt;code&gt;127.0.0.1:7681&lt;/code&gt;。&lt;/p&gt;
&lt;h2&gt;资产&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;CGO_ENABLED=0&lt;/code&gt; 静态二进制，运行端不需要 Node.js 或 Go。&lt;/p&gt;
&lt;table tabindex=&quot;0&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;文件&lt;/th&gt;
&lt;th&gt;平台&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-linux-amd64&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Linux x86_64&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-linux-arm64&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Linux arm64&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-darwin-amd64&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;macOS Intel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webmux-darwin-arm64&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;macOS Apple Silicon&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;用 &lt;code&gt;SHA256SUMS&lt;/code&gt; 校验。&lt;/p&gt;
&lt;pre tabindex=&quot;0&quot;&gt;&lt;code&gt;chmod +x webmux-linux-amd64
./webmux-linux-amd64 version
./webmux-linux-amd64 --listen 127.0.0.1:7681
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;包含&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;持久 PTY、有界回放、共享 token 与 Origin 检查、WebSocket 重连&lt;/li&gt;
&lt;li&gt;会话列表，shell / claude / codex / omp 预设与自定义启动命令&lt;/li&gt;
&lt;li&gt;仓库清单与 git worktree 管理&lt;/li&gt;
&lt;li&gt;桌面与移动端终端（触控滚动、软键）&lt;/li&gt;
&lt;li&gt;Linux 与 macOS（amd64 / arm64）进程探测与清理&lt;/li&gt;
&lt;li&gt;systemd 用户服务与 launchd 示例&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;安装与配置见仓库 README。&lt;/p&gt;
</content>
  </entry>
</feed>
