feat(workbench): 支持 Desktop 与 WebUI 的多会话和终端分屏 - #662
Open
yovinchen wants to merge 14 commits into
Open
Conversation
将终端 Pane、运行时绑定与租约、拖拽状态机和窗口布局迁入 @liveagent/ui,桌面端保留宿主注入与兼容导出。 统一侧栏、Right Dock 和 SSH Overlay 的拖拽起点,并修复多 Pane 聚焦时的 composer 引用与草稿状态切换。
为 Gateway WebUI 增加稳定的会话 Pane 宿主、终端 Pane 运行时与窗口级 Workbench 控制器,支持会话和终端并行操作。 接通侧栏、项目与 Right Dock 的拖拽/菜单入口,并按 conversationId 隔离草稿、上传、审批、队列和流式订阅。
补充 Web 多会话流隔离、草稿转正、终端租约、拖放 CAS 与关闭联动测试。 同步桌面端 composer 聚焦、终端恢复、画布契约和拖拽安全回归断言。
yovinchen
marked this pull request as ready for review
August 28, 2026 20:04
7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
关联 Issue
Closes #659
功能摘要
@liveagent/ui,Desktop 与 WebUI 复用同一套核心语义。conversationId隔离历史、流式订阅、Composer、发送/停止、队列、上传、工具审批、模型与轨迹状态;草稿转正式会话时原位重绑。data-file-upload-conversation-id和对应工作目录路由,不再误投到当前焦点会话。paneId作为唯一 Host 解析键,会话与项目身份只读取注册表;拖拽提交、焦点同步或恢复期间短暂保留的旧 Host 不再因双重身份校验触发整页 Error Boundary。VITE_LIVEAGENT_SESSION_WORKBENCH=0回退路径,关闭后继续使用原有单 Pane WebUI。改动范围
agent-ui、agent-gui、agent-gateway/webcrates/agent-ui/src/lib/workbench/**crates/agent-ui/src/components/workbench/**crates/agent-ui/src/components/chat/ChatHistorySidebar*crates/agent-ui/src/components/project-tools/RightDock*crates/agent-ui/src/components/workspace-editor/**crates/agent-gui/src/pages/chat/workbench/**crates/agent-gui/src/pages/chat/surfaces/**crates/agent-gui/src/pages/ChatPage.tsxcrates/agent-gateway/web/src/app/GatewayApp*crates/agent-gateway/web/src/app/hooks/fileUploadDropRouting.tscrates/agent-gateway/web/src/app/workbench/**crates/agent-gateway/web/test/**截图与运行预览
WebUI 会话与终端分屏
本地 WebUI 实测:
Terminal input,5 秒后仍保持可见和可交互。Desktop 与 WebUI 的 Pane 样式和交互骨架来自共享
@liveagent/ui组件;跨端回归测试覆盖共享布局、拖放和终端租约语义。本 PR 不将 Web 截图冒充 Desktop 原生截图。验证结果
make check-allpaneId获取权威注册身份,已移除 Pane 返回可恢复的空解析,不再因旧 identity props 崩溃。git diff --check origin/main...HEAD:通过。origin/main的dbca2cd1,不存在剩余冲突。提交前检查