# 会话拖拽与自由分屏 公开预发布版 `0.3.0-dev.26`,运行时代码来自当前桌面已安装实测的 `0.3.0-dev.26.local.14`。兼容 DSH 0.2.1-rc.5。[发布与验证记录](validation/dev26-release.md)。 将侧栏普通会话、普通子会话或可打开的队员拖到某个视图的上、下、左、右边缘,高亮蓝色边框会标出拆分后的区域,不显示文字,松开后只拆分该视图。每个区域都能继续拆分,允许横向与纵向嵌套。没有网格、左右、上下等预设布局选择,也没有原来的四视图上限。 - **调整大小**:拖动分隔线,连续调整相邻区域比例。每条分隔线允许 10%–90%,避免完全隐藏区域;新拆分初始各占一半,之后独立调整。调整窗口大小时保持树结构与比例,不自动改成等分布局。 - **重新停靠**:拖动附加视图的标题到其他视图的边缘,可移动已有视图;主视图可从侧栏拖动当前会话重新停靠。旧位置自动合并,剩余区域的拆分比例继续保留。同一会话不会重复创建输入框。 - **精简交互**:不显示顶部工具栏、下拉框、滑块或操作按钮。直接拖动会话与分隔线完成分屏;分隔线保留键盘调整,方向键每次 2%,Shift 加方向键 10%,Home/End 到达边界。关闭入口为 × 图标,保留无障碍名称。 - **关闭与合并**:每个视图都用 × 关闭。关闭附加视图只合并其分支;关闭主视图时由一个剩余视图接替并保留其草稿,关闭最后一个视图返回原生新会话入口。不归档会话、不发送消息、不停止任务。 - **聊天状态**:各视图复用宿主聊天内容工厂、独立绑定准确会话。重新停靠、拖动分隔线和关闭其他视图不重新挂载存活视图,保留输入框 DOM 和草稿。 - **视图标题与侧栏**:分屏时,每个视图都带自己的原生 DSH 标题栏和视图导航。主会话标题栏随主视图的位置和宽度调整,不横跨其他会话;附加视图复用同一原生标题栏,保留 × 关闭。侧栏同时高亮全部正在展示的会话,关闭附加视图后取消对应高亮,折叠后重新展开也会同步。 - **拖入引用**:把侧栏会话或附加视图标题拖到聊天输入框,松开后插入原生 @ 会话引用,准确绑定会话 ID。输入框内优先引用,不拆分;主视图和各附加视图独立接收。保留已有文字、引用及附件,不覆盖选中文字,不自动发送。原生 @ 菜单继续可用。 - **主会话切换**:从侧栏把附加会话选为主会话时,关闭该会话的重复附加展示。设置等其他面板打开期间不展示分屏;返回后保留当前插件运行期间的拆分结构与比例。 布局仅在当前插件运行期间保留,刷新后重新添加;不支持拖出独立窗口。窄窗口保留用户的拆分关系,过多横向区域会变窄,可重新停靠、调整比例或关闭不需要的区域。 实现以二叉拆分树记录方向、子区域和比例,再计算每个叶子与分隔线的几何位置。附加视图始终作为同级、按会话 ID 稳定挂载;重新停靠只更新坐标。主聊天内容保留在原有宿主父节点,通过自有 CSS 变量定位,不移动宿主节点。 通过 `shell.overlay` 声明独立的严格会话插槽,用宿主 `SessionProvider` 绑定 `sessions.retain` 返回的引用。rc.5 无原生分屏插槽,因此仍使用受限 DOM 桥:按 `data-conversation-content` 与父级 `data-phase` 定位主聊天根节点,以 portal 添加自有画布和布局标记;不读取生成 CSS 类、不写宿主 store。卸载后清理标记和 CSS 变量。宿主升级需重新核对结构。 `npm run check` 覆盖分屏模型、准确父子地址、引用去重与释放、四方向嵌套、局部合并、移动后的草稿与 DOM 保留、拖动取消、键盘调整、主会话切换和卸载清理。 `scripts/validate-session-views.mjs` 使用独立无头浏览器验证四方向真实拖放、嵌套混合轴、实际鼠标拖动横纵分隔线、非等分尺寸、附加和主视图重新停靠、第五个视图、键盘边界、局部关闭、窗口缩放以及引用释放。截图与结果在 `artifacts/session-views/free-split.png`、`free-split-narrow.png` 和 `browser-results.json`。该浏览器验证采用隔离页面及替代会话内容,不证明原生桌面已安装或多个真实模型请求已完整验收。 桌面实测已在三个普通会话验证独立草稿与真实 DeepSeek 回复,完成侧栏拖入、横纵嵌套、分隔线拖动至 41% / 57%、带历史重新停靠、关闭局部合并。发现并修复 Windows/Electron 快速拖动仅开始而没有完整落下事件的问题:直接进入画布的快速手势使用指针路径,普通原生拖放保留其路径,结束点作为补充;取消、外部落点不打开视图,原生 dragend 继续负责清理排序状态。原始证据与日志隔离断言保留在 `artifacts/session-views/desktop/`。 local.6 修复:移除顶部整条控制栏;移除作用于 `.sessivra-pane button` 的广泛样式覆盖,原生统计、消息操作、完成状态、模型选择和发送控件保持宿主样式。外壳样式仅作用于自有类名,关闭采用 × SVG。浏览器新增主视图与附加视图原生控件的计算样式对照回归。 local.7:拖动拆分预览仅显示透明底、3px 高亮蓝色边框,不显示文字;上下左右的边框均与新区域几何位置对应,取消或拖动结束立即移除。 local.8:增加拖入原生输入框插入引用,使用 Host 的 `reference` codec、带修订校验的编辑接口与草稿持久化。桌面实测覆盖主输入框、已有文字与多个引用共存、附加输入框隔离,以及输入框外继续分屏。证据见 `artifacts/session-views/reference-drop/`。 local.14:标题栏统一为 40px 单行;原生“对话、轨迹”导航改由标题旁下拉菜单调用,读取原生完整视图列表,不受标签行隐藏后的宽度裁剪影响。所有视图都显示 ×,包括主视图。关闭主视图时先卸载待接替的附加编辑器,再通过原生导航切换,期间保持会话引用,避免共享编辑器根节点清理导致草稿不可见。关闭最后一个视图返回原生新会话入口,不归档、不停止任务。桌面实测与证据位于 `artifacts/session-views/compact-header/`。