← 返回列表
未验证
提问审批或任务完成时高亮任务栏并自动切换会话
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/28 · 已提供中文文档
DSH 插件:???? agent ??/?????,EAC ????(??????)+?????5?+??????
综合分
28.8
GitHub 分
28.8
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add qiyeren/dsh-eac-popup该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-eac-popup
当任意会话的 agent 向用户提问(ask_user_question)或请求审批、或有会话任务完成时,自动把 DeepSeek Harness EAC 的任务栏图标常亮高亮(非闪烁,直到窗口回到前台才熄灭)、自动切换到对应会话;显式点击(提问/审批/通知按钮)时还会把窗口弹到最上层(保持原窗口大小状态)。
当任意会话的 agent 向用户提问(ask_user_question)、请求审批,或会话任务完成时,自动保持 DeepSeek Harness EAC 任务栏图标持续高亮(非闪烁,直到窗口回到前台),切换到对应会话;显式点击(提问/审批/通知按钮)还会将窗口带到最前(保持其先前的大小状态)。
✨ 功能特性 / Features
- 🔔 窗口置顶 — 显式点击场景下 EAC 窗口弹到最上层(仅当最小化时还原;最大化/普通窗口保持原状)
- 💡 任务栏常亮高亮 — 通知弹出/提问/审批时任务栏图标持续高亮(非闪烁)(FlashWindow),直到窗口进入前台自动熄灭
- 🔀 自动切换会话 — 界面自动切到对应会话(sessions.open,含跨工作区)
- 🖱️ 通知弹出即触发 — 会话完成通知一弹出,立即常亮高亮 + 切会话(不抢焦点)
- 🌐 全会话覆盖 — Host 级挂载,任意会话触发均生效
- ♻️ 持久生效 — 随 web-desktop profile 加载,重启 EAC 后依然工作
🎯 触发条件 / Triggers
| 场景 | 事件 |
|---|---|
| 任一会话的 agent 调用提问工具 | tools/pre-execute + exec.name === 'ask_user_question' |
| 任一会话请求审批 | approval/request |
| EAC 会话完成通知弹出 | 主进程补丁调 GET /dsh-eac-popup/activate?sessionId=&pop=0(常亮高亮+切会话,不抢焦点) |
| 窗口聚焦兜底(用户回到 EAC) | 主进程补丁调 GET /dsh-eac-popup/activate?sessionId=&pop=1(弹窗+常亮高亮+切会话) |
常亮高亮带 5 秒防抖(高频提问不刷屏);会话切换每条都生效。
通知联动 / Notification integration
本插件提供 GET /dsh-eac-popup/activate?sessionId=xxx&pop=0|1 端点:pop=1 弹窗+常亮高亮+切会话;pop=0 仅常亮高亮+切会话(不抢焦点)。窗口已在前台时调用会自动恢复高亮(幂等安全)。
需要配套的 EAC 主进程补丁(见仓库 patches/ 或 EAC 定制补丁流程):修改 main.js 的会话完成通知——弹出时立即调 activate?pop=0;窗口聚焦兜底时调 activate?pop=1。
🖥️ 平台要求 / Requirements
- Windows(依赖 user32.dll:SetWindowPos / SetForegroundWindow / FlashWindowEx)
- DeepSeek Harness EAC(web-desktop profile)
- 插件运行在 DSH Host 进程,无需额外依赖
📦 安装 / Install
方式一:EAC 插件市场(推荐)
在 EAC 设置 → 插件 中通过插件市场搜索 dsh-eac-popup 安装。
方式二:dsh 命令行
在你的任意工作目录执行(不要 cd 到 profile 目录)
dsh plugin --profile web-desktop add https://github.com/qiyeren/dsh-eac-popup
然后重启 EAC。
方式三:手动
1. 把本仓库复制到 ~/.dsh/plugins/dsh-eac-popup/
2. 在 ~/.dsh/profiles/web-desktop/cordis.patch.yml 追加:
- insert:
- id: eac-popup
name: dsh-eac-popup
3. 在 profile 的 package.json dependencies 中加入:
"dsh-eac-popup": "file:C:/Users//.dsh/plugins/dsh-eac-popup"
4. 重启 EAC。
🗑️ 卸载 / Uninstall
1. 从 cordis.patch.yml 移除 eac-popup 行
2. 删除 ~/.dsh/plugins/dsh-eac-popup/ 目录
3. 重启 EAC
🔧 工作原理 / How it works
[HOST] tools/pre-execute / approval/request / activate?pop=1(显式点击)
│ /activate?pop=0(通知弹出,不抢焦点)
▼
会话 ID 入队 + spawn PowerShell
│ ▼
│ user32: 弹窗(仅pop=1) + FlashWindow(TRUE)
│ = 任务栏常亮高亮直到窗口回前台
│
[CLIENT] 每 500ms 轮询 /dsh-eac-popup/poll ◄──────┘
│
▼
sessions.open(会话ID) → 界面自动切换(含跨工作区)
- Host 端监听事件,把会话 ID 写入队列,同时 spawn PowerShell:pop=1 时置顶抢前台(AttachThreadInput 绕过 Win11 前台锁),随后 FlashWindow(hwnd, TRUE) 任务栏常亮高亮(非闪烁)直到窗口进入前台(在前台时调用则恢复,幂等安全)
- /dsh-eac-popup/activate 端点供 EAC 主进程调用:通知弹出 pop=0(不抢焦点),窗口聚焦兜底 pop=1
- Client 端(__ModuleLoader__ bundle)每 500ms 轮询取队列,调用 sessions.open(id) 切到对应会话
- 双通道轮询:优先 host.call RPC,无 harness 环境自动回退 HTTP fetch('/dsh-eac-popup/poll');队列非破坏性(按 seq 去重 + 2 分钟保留)
📁 文件结构 / Files
dsh-eac-popup/
├── index.mjs # Host 半端:事件监听 + PowerShell 窗口操作
├── lib/client.js # Client 半端:轮询 + sessions.open
├── cordis.patch.yml # 组合补丁(插件管理器自动应用)
├── package.json
└── README.md
📄 License
MIT扫码进群