Bundle
@yfwu2020/dsh-full-view
完整视图中保留原会话为可拖动、缩放的聊天小窗,退出时恢复分栏
- Source
- yfwu2020
- License
- MIT
- Updated
- Updated 7 days ago
Readme
# 完整视图 · 悬浮聊天 **把空间留给文件和网页,同时继续和 Agent 对话。** 这是 DeepSeek Harness 的界面插件。点击右侧文件或浏览器面板的「全屏」,工作内容展开到主工作区,当前聊天变成右下角的紧凑输入条。点击输入条外缘,即可展开聊天小窗。你可以一边看预览、一边继续发消息;退出全屏后,聊天回到原来的分栏位置。 [下载安装包](https://github.com/yfwu2020/dsh-full-view/releases/latest) · [报告问题](https://github.com/yfwu2020/dsh-full-view/issues) · [更新记录](#更新记录)  > 本文配图均为 DeepSeek Harness 实际界面截图。0.1.5 交互一节的局部截图来自当前 macOS Desktop 实测;其余分栏与完整视图图片来自 0.1.1,使用公开示例网页,并收起左侧导航。0.1.4 默认显示紧凑输入条,旧图中的标题栏收起状态已被输入条替代。 ## 它能做什么 - **展开工作内容**:让右侧文件、编辑器或网页预览获得更大的显示空间。 - **继续原来的对话**:小窗使用当前会话,保留消息、输入草稿和宿主的聊天操作。 - **移动与调整大小**:拖动输入条外缘或展开后的标题栏移动,展开后拖动右下角调整尺寸。 - 紧凑条外缘用抓手光标表示可拖动,拖动时变为握紧的抓手;操作按钮保持点击手形,左右缩放边缘使用尺寸调整光标。 - **临时收起聊天**:收成紧凑输入条,仍可输入和发送;点击外缘展开聊天。 - **一键回到分栏**:聊天、文件和网页继续使用原来的内容实例。 这个插件只改变完整视图中的呈现方式。左侧导航栏的展开与收起仍由 Harness 管理。 ## 0.1.5 交互 以下交互从 **0.1.5** 起提供。Esc 与解读小窗的配合需要同时升级 `@yfwu2020/dsh-selection-explain` 到 **0.9.1**。文中的旧版截图保留用于说明位置关系,局部图片均为真实 Harness 界面。 - 完整视图中隐藏 `dsh-selection-explain` 的常驻胶囊和悬浮球,避免与鲸鱼球重叠;划词解读 / 引用按钮及解读小窗仍可使用,退出后胶囊恢复。 - 打开解读小窗、点击正文或输入追问,聊天小窗保持展开;关闭解读也不会联动收起聊天。官方共享浮层仍在工作面板和聊天小窗上方,空白区域可操作网页。 - 完整小窗标题右侧的图钉可固定展开。图钉高亮时,点击空白、侧栏或网页不会收起聊天,再点一次解除固定。「−」、外缘、Esc 和返回分栏仍可手动操作;退出完整视图或切换会话后清除固定。 - macOS 下完整视图的首列标签栏随左侧边栏切换留白:侧栏展开时去掉多余空白,收起时避开红黄绿窗口按钮;系统原生全屏和普通分栏遵循 DSH 原有间距。 - 输入框获得焦点时直接展开完整聊天小窗,包含消息、标题和操作栏;没有只展开标题栏的中间模式。点击工作内容或在聊天里按 Esc 收回简洁输入条,鼠标悬停不会展开。 - 点击紧凑输入条上边缘中间的小横条,可主动收成鲸鱼球;不占输入区宽度,没有悬停文字。展开小窗后横条隐藏,继续使用标题栏「−」。等待回应或输入法组词时暂停这个入口。 - 紧凑输入条默认闲置 **90 秒(1 分 30 秒)**后自动收成鲸鱼尾巴小球;在输入条上移动鼠标、点击、输入或滚动会重新计时。菜单打开、拖动、中文输入法组合和待办确认期间暂停回收;展开的完整小窗不自动隐藏。 - 标题栏除操作按钮外都可直接拖动,移除单独的拖拽图标;标题没有悬停背景或拖动阴影,单击不切换形态。点击外缘查看完整聊天;未固定时点击工作内容,或在聊天里按 Esc,可收回输入条。原生菜单打开和中文输入法组合过程中不会误收起。 - 与解读小窗同时打开时,Esc 优先退出最后点击或操作的展开小窗。点标题、消息文字或窗内空白都能激活该小窗,不要求点中输入框;聊天收回紧凑条,解读按设置下拉 / 设置 / 录音 / 面板逐层退出。点击两窗外会清除活动归属,此时先退解读,再按一次收起聊天。每次只退一层,无需重新点击;原生菜单和输入法优先。需要完整视图 0.1.5 与解读插件 0.9.1 配合。 - 点击左上角「−」隐藏整个小窗,只保留无文字的鲸鱼尾巴小球;点击小球直接恢复完整小窗、原草稿和输入焦点,小球也可拖动。 - 输入条统一圆角,模型入口使用脑形图标;点击仍打开 Harness 原有的模型与推理等级菜单。 - 输入框底部的轮数、步数、速度、token、缓存和上下文统计,在完整视图中始终隐藏;回到普通分栏后恢复宿主显示。 - 添加的附件保持在输入框上方,紧凑条、完整小窗和窄窗口都遵循原有排列;删除附件后恢复紧凑高度。 - 小窗内的聊天和长草稿滚动条隐藏,保留滚动能力;取消滚动条预留宽度,紧凑条与完整小窗之间切换时输入框不再横向挪动。 - 完整小窗和紧凑条收成鲸鱼球时使用「连续缩入」:内容先淡出,外框向右下角缩成球,鱼尾在末段出现;点击球反向恢复。原文字不被压缩或重新换行,中途也可恢复。系统启用“减少动态效果”时直接切换。 - 紧凑条上下抓握区各 12px,包含边缘外侧,按住可移动位置;左右端部各有 8px 宽、覆盖整条高度的缩放区,鼠标变成横向双箭头后拖动即可调整宽度。增加部分位于条外,保留输入和按钮操作。悬停在拖动区时紧凑条阴影平滑加深,移开后恢复。展开后可拖动四边和四角缩放。靠近工作区边缘松手会吸附;拖动时按 Esc 取消。角落保持没有角标,双击仍可恢复默认尺寸。 - 运行时在输入框的占位文字位置显示“已处理 23 秒”等真实回合耗时,与按钮同一行,不增加输入条高度。输入草稿时优先显示草稿;不再弹出“有新内容 · 查看”。如果宿主暂未提供开始时间,显示“处理中…”。 - 隐藏后的鲸鱼尾巴使用 Harness 思考时自带的图标和动画;空闲、完成或等待确认时使用 DSH 原生 SVG 静止图,避免高分屏放大动画首帧导致模糊。鱼尾右上角加上与工作区标题一致的状态点:运行时只播放鱼尾动画,不显示小点,完成且未查看时为成功色(通常绿色),点开会话后消失,需要回答、审批或确认计划为提醒色(通常橙色),空闲为宿主空闲色。已收成鲸鱼球时,待办保持球形提醒;点击球展开原待办。紧凑条出现待办仍自动展开,处理后回到之前的形态。 - 窄窗口改用两行输入排列,保留附件、权限、模型和发送按钮。支持键盘移动 / 缩放和系统减少动态效果设置。 **开始时只显示输入条,闲置后变成鲸鱼球**:圆角边缘和脑形模型入口如下。图片直接裁自真实 Harness 窗口,没有重新绘制界面。  **90 秒(1 分 30 秒)没有操作输入条,自动回收**:只留下原生鲸鱼尾巴,点击它直接恢复完整聊天小窗。下图是此前在 Harness 中截取的回收后外观;当前默认等待时间已延长为 90 秒。  **看小点就知道会话状态**:小点位于鲸鱼球内、鱼尾右上角,颜色随 Harness 主题同步。运行时播放宿主鱼尾动画、不显示小点,完成或等待你回应时停止;等待回应优先于运行和完成。完成小点只作未读提醒:点开会话后清除,再收成鲸鱼球不会重复出现;新回合完成会再次提醒。聊天展开时完成视为已查看。下面的历史实机截图展示完成点的外观。  | 会话状态 | 状态点 | 点击鲸鱼球 | | --- | --- | --- | | 正在运行 | 不显示小点,鱼尾动画播放 | 恢复完整聊天 | | 完成且未查看 | 与标题完成标识同色,鱼尾静止 | 查看回复并清除完成点 | | 已查看的完成结果 | 完成点不显示,鱼尾静止 | 继续原来的对话 | | 等待回答、审批或计划确认 | 与标题提醒标识同色,鱼尾静止 | 展开原问题或确认控件 | | 空闲 | 与标题空闲标识同色,鱼尾静止 | 恢复输入 | **连续缩入鲸鱼球**:点击「−」时,小窗外框连续缩到同一右下角的鲸鱼球,鱼尾随后出现;不再先塌成输入条。紧凑条点击上边缘横条主动收起、闲置自动回收也使用同一套动画。下图是本次真实 Harness 缩入完成后的局部截图,静态图片只展示结果状态。  **聚焦时直接展开完整小窗**:消息区和顶部操作栏同时出现。左侧「−」隐藏小窗;按住标题栏的非按钮区域拖动位置,外缘收回输入条;右侧图钉固定展开,分栏图标退出完整视图。下图是此前截取的顶部局部实机截图,其中的点状拖拽图标已在 0.1.5 移除。  **展开后输入框也不显示底部数字**:下图裁自同一个完整小窗的底部,保留原输入控件,隐藏轮数、步数、速度和用量统计。  **切换时输入框保持对齐**:聊天和长草稿的滚动条不显示,仍可以用鼠标或触控板滚动。下面两张图裁自同一位置的真实 Harness 窗口,分别为紧凑条和完整小窗底部;输入框和按钮的横向位置一致。   **处理状态与输入同一行**:运行且输入为空时,原占位文字的位置显示“已处理…”和当前回合耗时。开始输入便显示草稿,清空草稿后继续显示耗时;任务完成或等待确认时恢复原占位文字。最终占位布局已通过自动检查,暂未取得这次布局调整后的运行截图,以上输入条截图来自真实空闲状态。 **隐藏后保留原生鲸鱼尾巴**:小球没有文字,点击恢复聊天;运行时播放 Harness 思考时的原生动画,空闲时静止。下图裁自真实 Harness 的空闲界面;静态图片展示图形,运行状态的动画在实际界面中播放。  已在真实 macOS Harness 窗口中复测主要交互,并修复其他插件的隐藏设置框阻止 Esc / 外部点击收起的问题。实测范围见 [验证记录](VALIDATION.md),详细操作与 DSH 适配见 [交互设计说明](docs/interaction-design.md)。0.1.5 的 Esc 活动窗口规则另经独立预览验证,实机验收由用户完成。 ## 安装 ### 通过 Harness 插件管理页安装 1. 打开 Harness 左侧的 **插件** 页面,点击 **添加插件**。 2. 填写 npm 包名,完成安装: ```text @yfwu2020/dsh-full-view ``` 需要固定版本时填写 `@yfwu2020/dsh-full-view@0.1.6`。也可以使用 GitHub 上的 0.1.6 安装包地址: ```text https://github.com/yfwu2020/dsh-full-view/releases/download/v0.1.6/yfwu2020-dsh-full-view-0.1.6.tgz ``` 3. 在已安装列表中找到 **`@yfwu2020/dsh-full-view`**,打开开关。 4. 回到会话,打开一个右侧文件或浏览器面板,点击面板上的 **全屏**。  图中的插件开关处于关闭状态。安装后请将这一行的开关打开,再进入右侧面板的「全屏」。 也可以在「添加插件」中填写指定版本的源码地址: ```text github:yfwu2020/dsh-full-view#v0.1.6 ``` 仓库和安装包都带有构建好的插件文件,使用者不需要自行编译。如果 GitHub 直链无法访问,可以先从 [Releases](https://github.com/yfwu2020/dsh-full-view/releases/latest) 下载 `.tgz`,解压后在「添加插件」中填写包含插件 `package.json` 的目录绝对路径。 ### 兼容范围 已在 **macOS Desktop** 上验证,内置的 `dsh-client-ui-layout` 和 `dsh-client-ui-sidebar-right` 版本为 **0.2.0-rc.2**。需要宿主提供新版右面板及完整视图布局。 旧版 Harness,以及旧源码中使用 `details` 布局的界面,暂未支持。其他系统和其他版本尚未完成完整验证。 ## 怎么用 ### 1. 先打开右侧面板 正常状态下,聊天和文件或网页预览并排显示。先在 Harness 中打开需要查看的文件或网页,再点击右面板的 **全屏**。  ### 2. 在完整视图里继续聊天 进入完整视图后,预览占据主工作区,右下角默认只显示约 48px 高的紧凑输入条。附件、权限、模型和发送按钮继续使用 Harness 原有控件。多行草稿、附件或必要提示可让输入条自动增高。点击外缘展开后,显示聊天内容和标题栏。左侧导航若已展开,会继续保留。输入框中原有的草稿继续保留,可以接着编辑和发送。  截图来自 0.1.1,用于说明预览与聊天的位置关系。0.1.4 已改为单行胶囊输入框,右下角无角标。 | 小窗上的位置 | 操作 | 结果 | | --- | --- | --- | | 紧凑输入条上边缘中间的小横条(0.1.5) | 单击或键盘 Enter / 空格 | 连续缩入鲸鱼球;点击球恢复完整小窗 | | 输入条或小窗外缘 | 单击 | 展开聊天或收起为输入条 | | 输入条或小窗外缘 | 按住并拖动 | 移动位置,拖动不会触发切换 | | 展开后的顶部标题栏 | 按住并拖动 | 移动聊天小窗;0.1.5 中单击不切换形态 | | 紧凑输入条(0.1.5) | 闲置 90 秒(1 分 30 秒) | 自动收成鲸鱼球;点击小球恢复完整小窗 | | 右下角 | 按住并拖动 | 调整小窗大小 | | 右下角 | 双击 | 恢复默认尺寸,保留当前位置 | | 标题栏减号 | 点击 | 0.1.5:隐藏小窗,保留恢复入口;0.1.4:收起为输入条 | | 标题栏分栏图标 | 点击 | 退出完整视图,回到分栏 | | 顶部标题栏 | 双击 | 恢复默认尺寸和右下角位置 | 展开后的聊天小窗默认宽 **400px**、高 **540px**,会根据可见工作区限制尺寸。默认会记住你调整后的位置和大小。 右下角不显示角标,将鼠标移到那里可拖动缩放;双击则恢复默认尺寸。若已自定义初始尺寸,会恢复为该配置。空间不足时会自动限制尺寸,并调整位置以保持小窗可见。 ### 3. 需要更多空间时,收起聊天 单击小窗最外侧的边缘,即可收起为紧凑输入条,草稿和后台回复保留。0.1.5 中点击或键盘聚焦输入框会直接展开完整小窗,点击外缘也可以展开。输入框底部的统计数字在完整视图中始终隐藏。已发布的 0.1.4 则仍保持点击输入区不切换,展开后显示下方统计。 已发布的 0.1.4 也可用标题栏减号收成输入条。0.1.5 中「−」改为隐藏整个小窗,紧凑输入条可以点击上边缘中间的小横条主动收成鲸鱼球,闲置 90 秒(1 分 30 秒)也会自动回收。点击小球即可恢复完整小窗;标题用于拖动位置,外缘负责展开、收起。 旧版收起状态如下。0.1.4 已改为可继续输入的紧凑输入条。  ### 4. 回到原来的分栏 点击小窗的 **分栏图标**,或者右面板原有的 **退出全屏**。聊天回到原位置,已有草稿、文件和网页内容继续保留。插件切换布局时不会主动重新加载网页。 使用键盘时,将焦点移到外缘切换按钮后,按 `Enter` 或空格可展开、收起。展开后可将焦点移到小窗右下角的调整大小手柄,再用方向键改变尺寸;按住 `Shift` 可加大步长。已发布的 0.1.4 不另外注册 `Esc`;0.1.5 的 Esc 优先退出最后点击或操作的展开小窗,点击两窗外后先退解读、再收起聊天,并让原生菜单和输入法优先处理。 ## 关闭和卸载 **暂时不用**:在 Harness 的插件管理页关闭 `@yfwu2020/dsh-full-view` 的开关。悬浮聊天扩展会停止,面板恢复宿主的显示方式。关闭插件与退出面板全屏是两个独立操作。 **彻底移除**:打开这个插件的详情,在管理页中卸载。当前版本的启用与停用统一跟随 Harness 的插件开关。 如果你是用仓库中的本地安装脚本安装的,也可以在插件目录执行: ```sh node scripts/uninstall-local.mjs desktop ``` 这个脚本删除对应的本地依赖、启用选择和链接,保留其他插件的设置。 ## 常见问题 **已经安装,为什么没有小窗?** 确认插件开关已打开,并且已经进入右侧文件或浏览器面板的「全屏」。普通分栏时不会出现小窗。如果安装后界面尚未加载新插件,重新打开 Harness。仍无效时,请检查上述版本兼容范围。 **我关闭了插件,面板为什么还在全屏?** 插件开关控制悬浮聊天功能;面板的全屏状态由 Harness 自己管理。点击面板的「退出全屏」即可回到分栏。 **开关显示关闭,但小窗仍在,怎么办?** 0.1.1 修复了初版本地安装脚本导致的启停不一致。通过管理页安装的用户可更新到 0.1.1。如果曾用 0.1.0 的 `scripts/install-local.mjs` 安装,请先将 0.1.1 文件更新到原来的本地插件目录,保持目录路径不变,再在该目录重新运行: ```sh node scripts/install-local.mjs desktop ``` 脚本会迁移旧的直接加载条目,保留你当前的开关选择,并备份修改前的配置。迁移后重新检查管理页和界面。 **会保存我的聊天或网页内容吗?** 插件自身只记住小窗的位置和尺寸,不另外保存或上传会话、草稿及网页内容。原会话的数据处理和存储继续由 Harness 管理。 **左侧栏收起后,为什么没有图标竖条?** 当前已验证的 macOS Desktop 版本会将收起后的左侧栏完全隐藏,展开入口移到窗口左上方。这是宿主的布局行为;本插件不修改该逻辑。 **如何反馈兼容问题?** 请在 [Issues](https://github.com/yfwu2020/dsh-full-view/issues) 中说明系统、Harness 版本、是否已开启右侧全屏、复现步骤,并附上能说明布局问题的截图。截图前请遮盖私人会话和敏感内容。 ## 更新记录 ### 0.1.6:插件浮层共存与样式恢复 - 完整视图保留 Harness 公共浮层原来的顺序,解读小窗使用解读插件自己的浮层;最近会话列表保持在解读下面。 - 完整视图不再直接隐藏其他插件的胶囊,由解读插件自行处理完整视图中的隐藏与恢复。请同时升级划词解读到 **0.10.2**、最近会话到 **0.2.3**。 - 样式表明确归属本插件,避免其他插件重载时被误删;意外丢失时自动恢复,卸载后正常清理。 - 保留聊天与解读同时打开、最后操作小窗优先响应 Esc 的交互。 ### 0.1.5:自动回收与标题拖动 - 紧凑条闲置 90 秒(1 分 30 秒)自动收成原生鲸鱼球,保留草稿和真实任务状态。回收时不抢走文件或网页的焦点。 - 标题单击不切换形态,按住直接拖动小窗;保留方向键移动和双击复位。 - 部署配置 `compactIdleSeconds` 可调整回收秒数,设为 `0` 关闭自动回收;范围 `0–3600`。 ### 0.1.5:聊天浮窗交互 - 补齐紧凑操作栏、隐藏与恢复、外部点击 / Esc 收起。 - 补齐边缘与角落缩放、拖动取消、边缘吸附、视口与窄宽度适配。 - 保护 DSH 原生弹出菜单、审批、提问和计划确认,以及内嵌子会话。 - 区分单击和双击,保留角落双击复位;修复输入条按钮排布。 - 修复紧凑输入条的方形背景覆盖圆角,模型入口改为脑形图标;左上角「−」隐藏小窗并保留恢复入口。 - 移除操作栏右侧重复的「×」隐藏按钮,由左上角「−」统一执行隐藏。 - 主操作图标统一为 18px;聚焦输入框直接展开完整小窗,移除只有标题栏和输入条的中间形态。 - 完整视图隐藏输入框下方的统计数字;展开 / 收起与隐藏 / 恢复加入平滑过渡。 - 删除新内容提示,在输入框占位位置显示真实回合耗时;恢复入口改为无文字的 Harness 原生鲸鱼尾巴,运行时播放宿主动画。 - 固定展开图钉、原生鲸鱼状态提示、上边缘主动收球及连续缩入动画。 - 两窗共存时按最后点击或操作的小窗退出;点击两窗外后 Esc 优先退解读。 - 修复 macOS 收起左侧栏时首个标签遮住窗口控制按钮。 ### 0.1.4 - 完整视图默认显示约 48px 高的紧凑输入条,展开后仍使用紧凑输入框。 - 单击外缘展开、收起;拖动外缘移动;支持键盘切换。 - 保留原编辑器、草稿、附件、菜单和发送操作,返回分栏清理所有临时样式。 ### 0.1.3 - 支持双击小窗右下角恢复默认尺寸,并保留当前位置。 - 恢复后的尺寸会继续记忆,原会话和草稿保留。 ### 0.1.2 - 移除聊天小窗右下角的角标,保留拖动调整大小功能。 - 正式 GitHub Release 自动构建、测试并发布到 npm。 ### 0.1.1 - 修复本地安装后「管理页显示关闭、功能实际启用」的问题。 - 本地安装改为遵循 Harness 的标准启用列表。 - 重复安装和旧配置迁移保留用户的启停选择。 - 补充安装、迁移和卸载的回归测试。 ### 0.1.0 - 支持完整视图中的原会话聊天小窗。 - 支持移动、调整大小、收起与展开、返回分栏,以及记忆位置和尺寸。 ## 开发与本地演示 开发和测试使用 Node.js 24。 ```sh npm ci --ignore-scripts --legacy-peer-deps npm run check node scripts/preview.mjs ``` 打开 `http://127.0.0.1:4198` 即可体验用于开发验证的独立演示页。它直接加载构建好的插件,演示消息不会发送给模型。演示服务器只监听本机地址。 需要将源码目录链接到本机 Desktop profile 时,可执行 `node scripts/install-local.mjs desktop`。首次安装会启用,重复执行会保留管理页的选择。使用 Harness CLI 安装 Desktop 插件时,请遵守 CLI 对退出应用的提示。 尺寸配置、实现边界和验证记录见 [技术说明](docs/technical.md) 与 [验证记录](VALIDATION.md)。 维护者发布新版本时,请参阅 [发布指南](docs/releasing.md)。正式 GitHub Release 会触发 npm 发布;普通提交只运行检查。 ## 许可证 [MIT](LICENSE)
Install
dsh plugin --profile web add github:yfwu2020/dsh-full-view
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install yfwu2020-dsh-full-view from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.