dsh-awesome-hud
dsh-awesome-hud 图标
为 DeepSeek Harness Web / 桌面端聊天页打造的悬浮 HUD 面板:会话状态、上下文占用与一键压缩、git 变更、子代理、任务与 MCP 启停,一目了然。
HUD在dsh中的效果(浅色主题)
alt text
HUD在dsh中的效果(深色主题)
alt text
[!NOTE]
一个 DSH Web 插件(dsh.bundle.patch 通道安装)。浏览页面右上角新增「HUD面板」按钮,点击开合悬浮面板;面板与官方右侧栏及 dsh-better-sidebar 右侧栏互斥协作,互不遮挡、不额外挤占正文。
📑 目录
✨ 功能列表
| 模块 | 说明 |
|---|
| 会话 | 当前工作区名称、会话名称、会话状态(任务中/待审批/空闲中/待回答/等待子任务)、模型提供商/模型名/推理等级;会话名称右侧铅笔按钮可重命名(点击进入编辑态,输入框+取消/确认,确认后保存并自动更新会话列表标题);右上角「HUD 设置」勾选展示模块 |
| 上下文窗口 | 上下文占用进度条(0–40% 绿 / 40–90% 黄 / >90% 红)、底部展示「已用 n · 上限 n · 缓存命中 n%」(缓存命中率保留一位小数;数据不可用时显示 —)、一键「压缩」当前会话上下文 |
| 用量 | DeepSeek 余额、OpenCode Go 三个窗口用量百分比(oc-go 5h/1w/1m)与 Codex 剩余额度百分比(已订阅账号展示 5 小时/周两行;未订阅账号展示 codex 免费额度 单行,两类行互斥;dsh-codex-subscription 返回 gpt-reserve 额度时,追加展示同等样式的 codex gpt-reserve额度 行);行首带对应图标并缩进,点击具体数值直达对应设置页;DeepSeek、OpenCode Go 与 Codex 按各自安装/登录状态独立展示 |
| git | 常驻展示(新建会话页与会话页均默认展示;工作区不是 git 仓库时标题栏右侧提供「初始化仓库」,点击即在该工作区执行 git init,建仓后按钮自动换成分支按钮);当前分支(标题栏右侧分支按钮:下拉列表可切换已有分支、创建新分支并自动切换)、变更文件数量;变更文件按暂存区(staged)与未暂存区(changes)分组展示(组名带灰色计数,无文件的分组自动隐藏);文件行点击可暂存/移除暂存/撤销;「commit」提交暂存区(手动输入或 AI 生成提交信息——按内置本地 git 提交规范 [YYMMDD] 项目名 vX.Y.Z:内容),「revert」撤销全部未暂存变更(已跟踪文件还原内容、未跟踪新建文件与 intent-to-add 预登记文件一并删除;暂存区文件不受影响,无法删除的嵌套仓库/子模块目录会明确提示;破坏性操作均有二次确认与受影响文件清单);「git graph」弹窗(全部引用提交分页展示:每页最多 80 条,滑到底部出现「加载更多」按钮逐页追加,直至全部历史;当前分支标签为蓝底白字,其他分支为灰底黑字;提交行右键菜单可复制短哈希/全哈希/提交标题、从此处创建分支、合并至当前分支,或执行 soft / mixed / hard reset;创建分支为原位输入 + 图标按钮,合并与 reset 为行内二次确认) |
| 子代理任务 | 当前会话全部后代子代理(按层级缩进)、执行中(黄)/已完成(绿)状态,点击在官方右侧栏打开子代理会话,保留主会话;仅在有子代理时展示 |
| 任务 | 当前会话待办任务列表、已完成/待完成状态与计数(如1/3),随任务列表实时刷新;进行中任务显示旋转动画图标,底部展示「已完成/进行中/待处理」三态计数(含 0 恒显);仅在有任务时展示 |
| 计划清单 | 当前会话通过 plan 模式(exit_plan_mode)产出的全部计划:待审批(黄)/已执行(绿)/已废弃(灰、划线淡色)三态标签,标题栏展示计划总数,点击行弹出计划全文弹窗,模块底部展示「已执行/待审批/已废弃」三态计数(含 0 恒显);仅在有计划记录时展示 |
| MCP | 接入的全部 MCP 服务及 dsh 全局启用状态;开关直接启停 dsh 全局的 MCP 服务(写入 profilecordis.patch.yml),切换后页面刷新 |
| 便笺 | 按工作区共享的便笺(同一工作区目录下所有会话共用一份内容,本地持久化);输入框底部拖拽手柄可调整高度(实时持久化),5000 字上限与字符计数,右侧圆点指示内容存在;可一键添加便笺全文至对话输入框;输入框为空时「清空」按钮置灰,有内容时需二次确认后清空;折叠/展开状态持久化 |
| 待办 | 按工作区共享的待办清单(同一工作区目录下所有会话共用一份清单与顺序,本地持久化);勾选完成/恢复、添加/删除、整行拖拽排序(拖动手柄位于行最左侧)、一键清空已完成(二次确认,空列表置灰);底部展示完成计数;折叠/展开状态持久化 |
互斥协作:HUD 面板与官方右侧栏、dsh-better-sidebar 右侧栏互斥协作。右侧栏展开期间,HUD 面板派生隐藏——只是临时不可见,不改写该会话的展开记忆,正文也不会被额外推挤留白;关闭右侧栏后,面板按展开记忆自动恢复(除非此前手动收起过 HUD)。点击「HUD面板」按钮时若右侧栏已打开,则先自动收起侧栏再展示 HUD(若版本兼容性导致自动收起失败,面板保持隐藏,待右侧栏关闭后自动出现)。
🚀 快速开始
方式一:从 GitHub 远程安装(推荐)
# 1. 安装(要求本机 git 可访问 GitHub)
dsh plugin --profile web add github:Ycet/dsh-awesome-hud
# 2. 重启 DSH Web 服务并刷新页面
方式二:从本地源码安装(开发)
# 1. 安装(将 <absolute-path-to-plugin> 替换为本地源码目录绝对路径)
dsh plugin --profile web add "dsh-awesome-hud@link:<absolute-path-to-plugin>"
# 2. 重启 DSH Web 服务并刷新页面
安装完成后,聊天页右上角(「打开工作区」按钮左侧)出现「HUD面板」按钮,点击即可开合。
[!NOTE]
HUD 面板默认展开;每个会话各自记住自己的开合状态(按会话 id 存于 localStorage),在 A 会话收起不会影响 B 会话。新建会话页(尚未开始的空白会话)例外:该页每次进入都从收起状态开始(只改内存态、不写 localStorage,因此不影响任何会话的记忆),并在右上角提供独立的悬浮「HUD面板」按钮用于在该页展开(图片大图预览打开期间该按钮隐藏,避免浮在大图与预览关闭按钮之上)。模块可见性保存于 DSH profile 设置中,跨浏览器/设备随 profile 同步。
桌面端安装(macOS)
当前版本:0.15.7。先完全退出 DeepSeek Harness,再使用桌面应用自带的 CLI 安装;不要用旧 Web CLI 管理 desktop profile。
"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" plugin --profile desktop add "dsh-awesome-hud@link:<absolute-path-to-plugin>"
重新打开应用后,在会话右上角点击「HUD面板」。Codex 额度需要另行安装并登录支持当前 DSH 版本的 dsh-codex-subscription;DeepSeek / OpenCode 数据来自 dsh-account-usage。
[!NOTE]
便笺、待办、折叠和面板开合记忆保存在当前浏览器或桌面应用的 localStorage。安装插件不会自动搬运 Web 浏览器中的这些数据;模型与登录凭据由 DSH 管理。
🧭 使用说明
- HUD 面板:悬浮于聊天页右上角,宽度 300px,高度上限为输入框底部(留 8px 底距),内容超出时面板内部滚动(滚动条仅在滚动时显示,停止 2s 后渐隐);面板可见时聊天内容与输入框自动向左让位,不会重叠;右侧栏展开期间面板隐藏且不推挤正文,关闭后恢复。
- 设置菜单:「会话」模块右上角齿轮打开菜单,可勾选展示「上下文窗口 / 用量 / git / 子代理任务 / 任务 / 计划清单 / MCP」模块(用量仅在其可用时列出),底部「取消 / 确认」按钮丢弃或保存勾选;「会话」模块恒展示。用量可用时,菜单内额外提供「用量模块内容」分组,可分别开关 DeepSeek 余额、OpenCode Go 用量和 Codex 额度。
- 会话模块:会话名称右侧铅笔按钮可重命名会话——点击进入编辑态(输入框 + 取消/确认图标按钮),Enter 提交、Esc 取消,输入为空时确认按钮置灰;确认后保存新名称,会话列表标题自动更新。
- 上下文窗口:进度条颜色随占用率自动切换;底部按「已用 n · 上限 n · 缓存命中 n%」展示,缓存命中率固定保留一位小数(无可用统计时显示
—);「压缩」在会话空闲时可用,运行中按钮禁用并提示原因。
- 用量模块:位于「上下文窗口」模块下方。DeepSeek/OpenCode Go 复用 dsh-account-usage 插件路由,Codex 复用 dsh-codex-subscription 的浏览器 RPC;面板打开时立即加载、之后每 60 秒轮询;数据均缩进展示并带对应图标;模块支持折叠,默认展开(折叠状态经 localStorage 持久化)。
- DeepSeek 余额:展示余额合计(充值 + 赠送),「跳转」按钮弹出选择菜单,可跳转 deepseek 开放平台或 opencode go 用量页;点击具体余额数值可直接打开设置面板「账户」分区的 deepseek 标签页;仅当已配置
DEEPSEEK_PLATFORM_TOKEN 时展示该行。
- OpenCode Go 用量:三行分别展示 oc-go 5h / 1w / 1m 窗口用量百分比,点击具体百分比数值可直接打开设置面板「账户」分区的 opencode go 标签页;仅当已配置 OpenCode Go Key 且订阅有效(
/api/account-usage/opencode 返回 ok + keySource)时展示。
- Codex 额度:订阅账号展示
codex 5h额度 与 codex 周额度 两条剩余额度整数百分比;未订阅(免费)账号的 codex 额度只返回一个约 30 天的月度窗口,此时改为展示一条 codex 免费额度 行(取该窗口剩余百分比),不再展示 5h / 周额度——两类行互斥。订阅状态按额度窗口形状判定(出现 5h 或周窗口即视为已订阅),因为订阅插件的 RPC 不暴露套餐字段;月度窗口时长与预期不符时回退该额度首个可用窗口,保证有数据就不显示 —。三行均使用 ChatGPT 图标,点击百分比数值打开「设置:Codex 订阅」页面。仅当安装并登录 dsh-codex-subscription 时展示;已登录但额度请求暂时失败时按上一次的展示模式保留行并显示 —(订阅账号不会因此误显示为免费额度行),无法确认安装/登录状态时隐藏。
- gpt-reserve 额度:
dsh-codex-subscription 返回 gpt-reserve 额度(/wham/usage 的 additional_rate_limits → rateLimits 中 id 为 base_model_inference、limit_name/name 为 gpt-reserve;插件按 id 或 name 归一化匹配,忽略大小写、下划线、连字符与空格)时,在 5h / 周额度(未订阅时为免费额度)下方追加 codex gpt-reserve额度 行,样式、图标与交互与既有额度行完全一致(取其主窗口剩余百分比;额度带名称时显示为「codex gpt-reserve额度(名称)」)。该额度不存在时不展示该行;存在但窗口数据异常时保留行并显示 —。
- 模块可见性与可配置内容:DeepSeek、OpenCode Go 与 Codex 各自独立;仅已安装/配置/登录的数据源显示对应行,全部不可用时模块与设置项整体隐藏;展示内容可在「用量模块内容」分组中单独开关(host settings 持久化,随 profile 同步)。
🖼️ 界面截图
各模块预览
「会话」模块
alt text
「上下文窗口」模块
alt text
「用量」模块
alt text
「git变更」模块
alt text
「子代理任务」模块
alt text
「任务」模块
alt text
「计划清单」模块
alt text
「MCP」模块
alt text
「便笺」模块
alt text
「待办」模块
alt text
其他界面
HUD 设置菜单
alt text
「git graph」界面
alt text
「git commit」界面
alt text
「计划清单」界面
alt text
⚙️ 兼容性
桌面端测试环境、功能覆盖范围与复验方法见 v0.14.7 桌面兼容性验收记录。
| 项目 | 版本/说明 |
|---|
| DeepSeek Harness | macOS 桌面端 0.2.0-rc.2;保留旧 Web 接口兜底,其他版本仍需验证 |
| dsh-client-ui-subagent | 子代理会话使用官方 subagentchat 资源在右侧栏打开;旧版不具备该接口时显示失败提示,不替换主会话 |
| dsh-plan-mode | 计划清单数据源:会话日志exit_plan_mode 工具调用(tool/call/tool/result/plan/mode 事件);上游审批语义变更时需复查状态推导 |
| dsh-better-sidebar | 0.16.1(通过公开服务 ctx.betterSidebar 监听面板状态,与官方右侧栏共同参与 HUD 派生可见性;点击 HUD 按钮时依赖其折叠按钮 DOM 特征自动收起,失败时面板保持隐藏、待侧栏关闭后恢复,不影响 HUD 独立使用) |
| 平台 | macOS 已验证;Windows/Linux 仅理论兼容(git 命令行为一致) |
| 主题 | 跟随深浅主题(使用--dsw-alias-* 主题 token) |
| 语言 | 简体中文 / English,跟随 DSH locale |
| 图标 | package.json 顶层 icon(包内相对路径 icon.png,448×448 PNG,原始字节 ≤256 KiB);需 DSH 支持 manifest 图标,更旧版本回落默认图标 |
| 数据作用域 | 「便笺」「待办」按工作区目录共享(localStorage);无 cwd 的会话降级为会话级隔离 |
| 面板开合状态 | 按会话 id 独立持久化(dsh-awesome-hud:open,值为 `{ "会话 id": "1" |
🔧 技术栈
| 类别 | 内容 |
|---|
| Host 侧 | Node.js ESM、ctx.webServer 前缀路由、ctx.settings、ctx.subagents、ctx.agents / ctx.commands(压缩命令)、ctx.subprocess、ctx.llm(AI 生成提交信息) |
| Client 侧 | 原生 JavaScript ModuleLoader bundle、React(react.createElement)、Cordis Slots(conversation.session.header.utilities / shell.overlay)、CSS 主题变量;不新增 slot,新建会话页入口复用 shell.overlay |
| 数据来源 | 客户端会话投影(ctx.sessions.list / workspaces / modelDirectories)+ 自有 host API(git / MCP / 子代理 / 计划清单 / 压缩)+ dsh-account-usage 余额/用量路由(复用) |
| 测试 | node --test(git 解析、MCP 解析、状态推导、计划清单推导、设置收敛、信任围栏;位于 test/) |
⬆️ 升级说明(v0.11.x → v0.15.7)
v0.15.7:修复计划清单在「要求修改」后误显示「已执行」:DSH 0.2.1-rc.5 起,计划审查卡片上的「要求修改」只是关闭评审、回到输入框,exit_plan_mode 不再抛错,而是以成功结果 { approved: false } 返回、计划模式仍然生效。HUD 此前把「有结果且非错误」一律当作审批通过,导致该计划在「计划清单」模块里显示为绿色「已执行」。现在成功结果还要按文案区分:含 Plan approved 判为审批通过;含 dismissed the plan review 判为关闭审查(已废弃)。若后续版本改词导致文案无法识别,则用「该结果之后、下一次审查调用之前是否退出 plan 模式」兜底;旧日志没有 plan/mode 事件时沿用原有口径。拒审/要求修改的错误结果、无审批结论后 /plan off 的自动废弃等既有判定不变。补充 test/plans.test.mjs 五项回归,并更新 test/plan-runtime.test.mjs 的真实 DSH 运行时用例(设置 DSH_TEST_INSTALL_ROOT 后运行)。
v0.15.6:修正新建会话页 HUD 入口与聊天会话页位置不一致:新建页的悬浮入口此前固定紧贴右侧栏展开按钮左侧 8px;装有 better-sidebar 时,它在该页把「底部面板」切换按钮以兜底形式放到同一位置,槽位被 HUD 占用后兜底按钮退到 HUD 左侧,顺序变成「底部面板按钮 → HUD → 右侧栏按钮」,与聊天页「HUD → 底部面板按钮 → 右侧栏按钮」相反。现在计算入口位置时识别同排的兜底按钮([data-dsh-dock-fallback])并预留它的宽度与间距,让新建页入口稳定排在右侧按钮簇最左侧,两页的按钮顺序与间距一致;未安装 better-sidebar 或该页渲染了会话页眉时行为不变。同时修正了本次问题的两个触发场景:首帧定位改到 layout 阶段(绘制前校正),并在兜底按钮挂载前就按 better-sidebar 服务是否激活预留同尺寸槽位(挂载后再用真实宽度校正)——刚进入新建页、以及打开再关闭右侧栏后,入口与该按钮都不再短暂重叠。补充 test/new-session-entry.test.mjs 的位置预留回归测试。
v0.15.5:修复 revert 的两类静默问题并补全提示:① git add -N 预登记(intent-to-add,porcelain 显示为 A)的新文件,此前被当成已跟踪文件执行 git restore,导致工作区文件内容被清空且文件保留——现在先 git reset 取消预登记,再按未跟踪文件删除,并回归验证文件确实消失;② 未跟踪目录条目(嵌套仓库/子模块,porcelain 形如 ?? dir/)此前 git clean -f 删不掉却仍返回成功、提示「已撤销」——现在改用 git clean -fd 并校验撤销结果,全部无法撤销时返回明确错误,部分成功时跳过这些条目并把清单回传给界面显示警告;③ 提示语补全:revert 全部确认框会说明「暂存区中的 N 个文件不会被撤销」,staged 组展示常驻说明「已暂存文件不会被 revert 撤销」,结果提示区分「已撤销 + 暂存保留」,单文件确认对 intent-to-add 与「暂存区已有内容」给出专门文案。暂存区文件不在 revert 范围内的既有边界保持不变,host 快照新增 intentToAdd 标记供界面区分。新增 test/git-revert-safety.test.mjs 真实 git 回归与客户端确认/提示链路测试。
v0.15.4:更换插件管理页图标:DSH 插件管理页中本插件的卡片图标与「包含的组件」行图标(此前为默认图标)替换为鲸鱼 HUD 图标,来源为 00_assets/plugin-icons/dsh-awesome-hud/whale-hud-icon-mcp-1k.png,按 DSH 图标规范无损缩放为 448×448 PNG(约 210 KB,≤256 KiB 上限,白色圆角底 + 透明外角),并在 package.json 中以顶层 icon 声明;README 顶部同步展示 96px 图标,中英文文档与版本号更新为 0.15.4。HUD 面板内部图标、host 代码与数据行为均未改动。
v0.15.3:修复右侧栏与 HUD 面板重叠及正文空白占位:新建会话页先展开 HUD、再打开右侧栏、然后发送首条消息时,此前会同时出现「HUD 浮在右侧栏之上」与「正文右侧约 300px 空白」两个问题。根因是面板开合记忆按会话独立、无记录默认展开——作用域从新建页切到真实会话时直接拉起面板,没有与已展开的官方右侧栏对账;而面板布局又会给正文写 margin-right 推挤。现在 HUD 可见性改为派生:可见 = 会话展开记忆 && 右侧栏未展开,侧栏展开只临时隐藏面板、不改写展开记忆,关闭侧栏后自然恢复;推挤样式只在面板可见时应用,并经 layout effect 在同一提交内同步清理,侧栏展开瞬间也不会残留空白帧。新建会话页、切换会话与刷新首帧走同一套判定;手动收起过的 HUD 不会被侧栏开关重新拉起;点击「HUD面板」按钮仍优先收起右侧栏再展示面板。同步改写侧栏互斥、新建页切换会话与真实会话首帧的回归测试。
v0.15.1:修复 Git 模块两处缺陷,并补齐全功能回归:一是冲突文件清单此前会在前端丢失——host 路由的错误分支只回传 error 与 code、客户端 call() 也只复制 code,导致「切换分支失败:以下文件的本地变更会阻止切换:」后面是空的、合并冲突永远显示兜底文案「(无法列出冲突文件)」;现已把结构化错误里的 files 从 host 一路透传到提示文案。二是游离 HEAD(git checkout <提交> 后的 detached 状态)下切换分支会被静默跳过——git/checkout 的守卫在快照 branch 为 null 时跳过了真正的 checkout 却仍返回成功,界面上会误报「已切换」;现已改为只要目标分支与当前分支不同就执行 checkout。另外「点击菜单里的当前分支」不再静默关闭菜单,而是提示「当前已在分支「X」」。本次还新增了两套回归测试:test/git-regression.test.mjs(真实 git + 真实 host 路由,覆盖快照、暂存/取消暂存含跨 500 分批、提交与校验、AI 生成提交信息、撤销、分支创建/切换/合并、提交图分页、reset 三模式与资格校验、中文与空格文件名、越权与非法输入)与 test/git-client-flow.test.mjs(客户端点击链路:切换分支、初始化仓库、文件操作、错误透传)。
v0.15.0:Git 模块常驻展示并支持一键初始化仓库:新建会话页与会话页的「git」模块不再按「工作区是否 git 仓库」隐藏——工作区不是仓库时,模块照常展示,标题栏右侧(与分支按钮同位置)提供「初始化仓库」按钮,点击即在当前工作区执行 git init;成功后模块立即切换为仓库态(按钮变回分支按钮、正文出现 git graph / commit / revert 与变更统计),并沿用随后的 5 秒轮询。已是仓库时该按钮不显示;git init 失败时以提示条回传命令错误并在原按钮上恢复可点击。host 侧新增 git/init 接口(沿用会话 id 解析工作区、信任围栏与超时约束;已是仓库时幂等回传当前快照,不重复 init)。同一版本内还修好了「尚无提交的仓库」下的两处行为:取消暂存(单个与全部)改用 git reset -q -- <路径>(原先的 git restore --staged 需要 HEAD,在刚初始化的空仓库中会报 fatal: could not resolve HEAD);「git graph」在无提交时按空历史返回并显示「当前仓库还没有任何提交」空态,不再把 git log 的原始报错当加载失败。补充命令顺序与幂等性、错误回传、标题栏按钮分流、空仓库取消暂存与空态渲染、以及真实 subprocess 建仓的回归测试。**
v0.14.12:修复新建会话页打开大图预览时「HUD面板」悬浮按钮浮在预览之上的问题:dsh-codex-subscription 的图片查看器是铺满视口的模态浮层(role="dialog" + aria-modal,position: fixed; inset: 0),而 HUD 入口所在的浮层层级远高于它,因此入口会压在大图与右上角预览关闭按钮之上。现按「模态浮层语义 + 视口覆盖率」判定:预览打开期间不渲染该悬浮入口,关闭后自动恢复(面板开合状态不受影响);判定不绑定第三方类名,同时排除小尺寸弹窗、非浮层定位与隐藏浮层,HUD 自身的弹窗(无 aria-modal)不会误触发。补充检测逻辑、浮层开合监听与按 hooks 顺序真实渲染的回归测试。**
v0.14.11:用量模块支持 Codex 免费额度:未订阅(免费)账号的 codex 额度只返回一个约 30 天的月度窗口,此前 HUD 只取 5h / 周窗口,因此该额度既不展示、又留下两条 —。现按额度窗口形状判定订阅状态——出现 5h 或周窗口即展示原有 codex 5h额度 / codex 周额度 两行,两者都没有时改为展示一条 codex 免费额度 行(取该额度窗口剩余百分比),两类行互斥;月度窗口时长与预期不符时回退该额度首个可用窗口,保证有数据就不显示 —。额度请求暂时失败时按上一次的展示模式保留行并把数值显示为 —,订阅账号不会误显示为免费额度行。补充免费额度选择逻辑、浏览器与 Node 镜像一致性、降级保留模式与渲染结构回归测试。**
v0.14.10:修复 Windows 新建会话页的 HUD 入口被原生标题栏遮挡,并兼容全屏切换。主视图明确无会话时不再回退到列表中的旧会话,侧栏恢复守卫共用同一判定。Git、便笺、待办和发送目标使用同一工作区,保留原有 Windows 路径存储键;MCP 独立加载与刷新,无会话或工作区时也可查看和启停。修复 Windows 路径标题与无工作区标题;尚无会话记录时禁用重命名。补充客户端数据流、异常请求及浏览器布局回归测试;Windows 原生桌面仍需实机验收。
v0.14.9:修复计划审批结果的新版消息配对与错误标记识别,避免审批通过后被退出模式误判为废弃,以及拒审后持续待审批;保留旧日志格式兼容,并修复缺少序号时的退出判断。子代理任务改为通过官方 subagentchat 资源在右侧栏打开,携带直接父会话与会话模式,保留主会话。补充状态、导航回归测试及官方桌面计划审批流程集成测试。
v0.14.8:修复输入法确认候选时误添加待办、误保存待办编辑、误重命名会话和误创建 Git 分支。所有文本输入及弹窗/菜单键盘处理统一识别输入法组合状态:选词中的 Enter / Escape 交给输入法;输入完成后再次按 Enter 才执行原有提交操作。Git 图中的分支输入仍只由确认按钮创建。便笺与提交信息输入中的 Escape 不再误关闭相关界面。补充输入法事件顺序与键盘回调回归测试。
v0.14.7:适配桌面端子代理会话导航、账号菜单中的设置跳转与模型快照订阅;OpenCode 跳转使用通用控制台地址。修复合并冲突漏检及空 MCP patch 写入;新建页便笺追加前自动打开目标会话。补充桌面接口行为测试与真实 subprocess 临时仓库测试。
v0.14.6:修复 HUD 面板展开后遮挡提示词导航的问题。
v0.14.5:调整「HUD面板」按钮样式与位置,并修复其在 DSH 插件管理页面也显示的问题。
v0.14.4:修复 HUD 入口与新版 DSH 的兼容问题:会话页按钮位于右上角工具区,可正常开关面板;新建会话页恢复独立悬浮入口,面板仍默认隐藏。官方右侧边栏展开时,入口移至边栏左侧,不再遮挡边栏工具栏。
v0.14.1:修复 git graph 右键菜单无法打开:菜单初始状态缺少「从此处创建分支」输入行字段时会被误判为「已展开」并读取输入内容,抛出 Cannot read properties of undefined (reading 'text') 使整个右键菜单渲染失败。现已显式初始化该字段,并对读取统一做 null / undefined 归一化保护。
v0.14.0:git graph 支持「从此处创建分支」:提交行右键菜单在「合并至当前分支」下方新增该项。点击后原位展开输入框与「取消」/「确认」图标按钮,确认即基于该提交执行 git checkout -b 并跳转到新分支;输入为空时确认按钮置灰,重复分支名与本地修改阻塞均给出提示且保留输入内容,Enter 不触发创建、Escape 取消输入,Git 操作进行中时该项置灰。
v0.13.4:便笺新增安全清空:便笺操作区在「添加至对话」左侧增加「清空」按钮。输入框为空时按钮置灰;有内容时首次点击进入红色二次确认态,确认按钮以红色描边和文字显示,二次点击后清空并同步到同工作区会话。点击确认按钮外区域、按 Escape 或等待 2 秒会取消确认,不改变内容;localStorage 写入失败时保留原内容并提示。
面板开合状态改为按会话独立:旧版本把单一开关状态存在 dsh-awesome-hud:open,升级后该值会迁移为「首个进入的会话」的状态,其余会话各自默认展开并各自记忆。
新建会话页新增悬浮入口:面板位置与真实会话一致(固定贴页面右侧);该页每次进入均为收起状态。
「便笺」「待办」由会话级改为工作区级。升级后首次在某工作区打开面板时,插件会做一次性的自动归并迁移:
- 便笺:取该工作区内候选会话中
updatedAt 最新的一份;
- 待办:按条目 id 去重合并(同 id 以先出现的为准),顺序保持稳定;
- 迁移结果写入工作区键,并记录迁移标记(
dsh-awesome-hud:workspace-migrated),同一工作区只迁移一次;
- 旧的会话级键保留不删除,回滚到旧版本后仍可读到迁移前数据。
如介意旧键占用的空间,可在确认迁移完成后于浏览器控制台执行 localStorage.removeItem("dsh-awesome-hud:workspace-migrated"),再删除 dsh-awesome-hud:notes / dsh-awesome-hud:todos 中「非工作区路径」的旧键(删除后无法再回滚迁移)。
📄 许可证
MIT