Skip to content

feat(chat): support pop-out conversation windows - #815

Open
Is14w wants to merge 2 commits into
Stack-Cairn:mainfrom
Is14w:feat/conversation-popout-window
Open

Is14w wants to merge 2 commits into
Stack-Cairn:mainfrom
Is14w:feat/conversation-popout-window

Conversation

@Is14w

@Is14w Is14w commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Linked issue

Closes #814

Summary

本 PR 为 LiveAgent Desktop 增加“将单个会话弹出为独立窗口”的能力。

用户可以通过会话列表中“更多”菜单的“在新窗口中打开”操作,将一个已保存的历史会话加载到独立的原生窗口中,并继续发送消息、接收流式响应和查看历史内容。

每个 conversation ID 最多对应一个独立窗口。重复打开同一会话时,会聚焦已有窗口,而不会创建第二个可编辑视图。这样可以避免主窗口和独立窗口同时编辑同一会话时产生历史快照过期、并发发送和运行状态竞争。

独立窗口只负责会话展示和交互,不会重复注册托盘、全局快捷键、Gateway bridge、自动化任务、更新检查等应用级后台能力。主窗口继续作为这些全局职责的唯一所有者。

正在运行、取消中或正在切换的会话不会提供弹出入口。关闭独立窗口后,会话仍然可以重新从主窗口或独立窗口打开。

该功能仅影响 Desktop,Gateway WebUI 的行为保持不变。

Change scope

  • Modules: agent-gui / agent-ui / src-tauri
  • Key paths:
    • crates/agent-gui/src-tauri/src/commands/app/app.rs
    • crates/agent-gui/src-tauri/src/lib.rs
    • crates/agent-gui/src/App.tsx
    • crates/agent-gui/src/lib/windowLaunchContext.ts
    • crates/agent-gui/src/pages/ChatPage.tsx
    • crates/agent-gui/src/pages/chat/gateway/useGatewayBridgeListeners.ts
    • crates/agent-gui/src/pages/chat/queue/useChatTurnQueue.ts
    • crates/agent-ui/src/components/chat/ChatHeader.tsx
    • crates/agent-ui/src/components/chat/ChatHistorySidebar.tsx
    • crates/agent-ui/src/components/chat/ChatHistorySidebarRows.tsx
    • crates/agent-ui/src/i18n/translations/enUSCommon.ts
    • crates/agent-ui/src/i18n/translations/zhCNCommon.ts
    • crates/agent-gui/test/chat/conversation-window-context.test.mjs
    • docs/architecture/gui.md
    • docs/features/history-compaction.md

Screenshots / preview

image image

Verification

  • TypeScript 类型检查通过。
  • Vite 生产构建通过。
  • GUI Rust cargo check 通过,包括此前失败的 rquickjs-sys 依赖。
  • 独立会话窗口上下文和路由测试通过。
  • 新增的 4 个窗口相关 Rust 单元测试通过。
  • 全量前端测试已执行,共 332 个测试文件。
  • 全量测试中有 3 个既有的 Windows 换行符/预置脚本一致性用例失败;这些失败与本次独立窗口功能无关。

Pre-submit checklist

  • A requirement issue is linked (or this is a trivial fix that needs no issue, as explained in the summary).
  • Synced with the target branch; no merge conflicts.
  • The change is focused, with no unrelated modifications.
  • No secrets, tokens, or personal data included.
  • Docs are updated for changes affecting user behavior, deployment, or configuration.

@Is14w
Is14w marked this pull request as ready for review September 15, 2026 12:58
@github-actions

github-actions Bot commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

PR governance checks passed. Awaiting human review.

@StackCairn
StackCairn marked this pull request as draft September 15, 2026 12:58
@Is14w
Is14w marked this pull request as ready for review September 15, 2026 13:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] 支持将桌面会话弹出为独立窗口

1 participant