@dadigua/web-terminal 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/API.md CHANGED
@@ -12,6 +12,10 @@ HTTP 请求使用 `Authorization: Bearer <token>`。GET /api/auth 验证 token
12
12
 
13
13
  WebSocket 同源 /ws,不使用 query token。连接后 5 秒内发送 `auth`(`protocol: 2`);服务端先发送 `snapshot`(画面、行列数、尺寸控制权),再发送 `ready`,后续增量为 `output`。快照与增量必须顺序写入 xterm。终端查询由服务端统一响应,浏览器拦截自动响应,避免多端重复回传。
14
14
 
15
+ 标签状态使用独立只读订阅:发送 `{type:"auth",protocol:2,token,scope:"sessions"}`,接收 `{type:"sessions",sessions:SessionInfo[]}`。订阅覆盖全部会话,不连接 PTY、不占用尺寸控制权。`running` 表示后端 Shell 存活,`outputActive` 由后端在真实 PTY 输出时置为 true,800ms 无输出后置为 false;历史快照不会触发。创建、退出、删除及输出活动变化立即推送,前台命令和目录每 5 秒刷新。连接和重连先收到当前完整状态,前端不再根据本地终端连接或输出计时推断标签状态。
16
+
17
+ `title` 来自 CLI 的 OSC 0/2 标题序列,前端保留原文。可选 `progress:{state:1|2|3|4,value:number}` 来自 OSC 9;4:1 为百分比进度、2 为错误、3 为不确定进度、4 为暂停或警告,value 为 0–100。状态 0、终端重置或 Shell 退出清除 progress;服务重启不恢复旧进度。进度与 outputActive 独立,随会话状态推送并在重连时返回当前值。
18
+
15
19
  第一个连接控制尺寸。`resize` 更新该窗口期望尺寸,只有控制窗口会改变 PTY;`claim` 在用户操作时转交控制权。所有窗口按服务端行列数显示,窄窗口可滚动,尺寸变化发送新快照。键盘使用 `input`;文字、图片路径使用 `paste`(`text`、`submit`),由服务端按当前粘贴模式编码,提交回车在粘贴结束标记之外。
16
20
 
17
21
  未认证关闭码为 4401,协议版本不匹配为 4406(刷新页面),会话结束为 4404。断网自动指数退避重连;已访问会话切换时保留连接。
package/README.md CHANGED
@@ -62,6 +62,8 @@ CLI 只停止自己登记且启动标识匹配的进程,不接管 `pnpm start`
62
62
 
63
63
  会话首次选中时加载终端和连接,之后切换只隐藏或显示,不重新连接;各会话独立保留草稿、滚动位置、上传和文件预览。隐藏会话继续接收输出,不抢焦点或上报尺寸;关闭会话或退出登录时释放资源。
64
64
 
65
+ 标签栏采用 12px 文字和紧凑间距。右键标签或点击标签上的“⋯”,可创建分组、移至已有分组或移出分组;分组可编辑名称和颜色,点击组名折叠或展开。拖动标签和组名可排序,拖到组名上加入分组;菜单还提供置前和前后移动。分组、顺序及折叠状态只保存在当前客户端,各设备独立定制,刷新后保留;折叠和取消分组均保留终端运行及草稿。
66
+
65
67
  底部草稿区默认一行,随内容向上浮动展开,最多约 10 行,超出后内部滚动;输入区和上传提示不挤占终端高度。Enter 发送、Shift+Enter 换行;发送成功清空后缩回一行,断线时保留草稿。工具栏提供图片上传、Esc 和 Ctrl+C,触屏设备另提供 Tab 和方向键。
66
68
 
67
69
  图片支持 PNG、JPEG、WebP、GIF,每张最多 20 MiB;解码限制为 6400 万像素。上传路径插入与 Codex 识别成附件是两个阶段;遇到 CLI 未自动附加的情况,可以在提示中明确要求读取该绝对路径。服务不读取或同步系统剪贴板,上传由浏览器的粘贴/拖拽动作触发。
@@ -119,7 +121,7 @@ pnpm electron
119
121
  pnpm package:electron:win
120
122
  ```
121
123
 
122
- 开发命令打开桌面客户端;Windows 命令生成 `release/Web-Terminal-0.1.4-win-x64.zip`,解压后运行 `Web Terminal.exe`。菜单“连接 → 打开连接配置”打开 `client.yaml`,只需修改 `serverUrl`,再选择“重新加载服务器”;“重启后台服务”通过全局 CLI 重启。`client.yaml` 的 `runtime` 可选 auto、native、wsl,`cliPath` 可指定本机 CLI 路径。也可用 `WEB_TERMINAL_URL` 临时覆盖地址。Linux 目录包通过 `pnpm package:electron:linux` 生成。
124
+ 开发命令打开桌面客户端;Windows 命令生成 `release/Web-Terminal-0.1.5-win-x64.zip`,解压后运行 `Web Terminal.exe`。菜单“连接 → 打开连接配置”打开 `client.yaml`,只需修改 `serverUrl`,再选择“重新加载服务器”;“重启后台服务”通过全局 CLI 重启。`client.yaml` 的 `runtime` 可选 auto、native、wsl,`cliPath` 可指定本机 CLI 路径。也可用 `WEB_TERMINAL_URL` 临时覆盖地址。Linux 目录包通过 `pnpm package:electron:linux` 生成。
123
125
 
124
126
  浏览器、VS Code、Electron 各自首次在同一 Web 登录页输入 token,验证后保存在各自 Webview 的持久 localStorage 中。客户端配置不保存 token。Electron 远程页面开启 sandbox/contextIsolation、关闭 Node 集成;VS Code 通过专用 `/?embed=vscode` 入口加载,普通入口仍禁止 iframe 嵌入。
125
127