Quan-Robin/dsh-plugin-desktop

Quan-Robin★ 0JavaScript最后同步: 2026-08-18

在 GitHub 打开

README 摘要

dsh-plugin-desktop DSH-desktop-for-Linux 的 官方伴生插件 (独立发布, dsh-plugin 话题)。 定位:大部分桌面端功能 + 小部分插件功能。 原版桌面端保持极简;安装此插件才解锁增强功能。运行在 dsh 服务进程内,一方面把桌面端需要的内部状态以稳定 HTTP 端点暴露出来(替代桌面端过去的 hack),另一方面往 Web UI 注入增强的页内右键菜单与「置顶会话」扩展。 桌面端旧做法 插件做法 嗅探 webRequest 的 /api/session. POST body 判断当前会话 GET /api/state 直接给出 解压 /.dsh/sessions/ /session.jsonl.zstd 估算用量 GET /api/usage 给出事件流实时聚合 (无) 页内完整右键菜单(会话/工作区/正文/链接/输入框)+「置顶会话」扩展(client 注入) 端点 - GET /api/state → { plugin, since, currentSessionId, turn: 'working' 'idle', lastTurnEndSeq, lastSummary } - GET /api/usage → { plugin, since, complete: false, byModel, sessions: [{ id, byModel, userMsgByModel, lastTurnEndSeq, lastSummary, updatedAt }] } - complete: false :仅覆盖插件加载后的事件(dsh 重启后归零)。桌面端用它做当前会话的实时数据,历史总量仍走本地文件扫描(有 mtime+size 缓存,增量代价很小)。 - POST /api/prompt { sessionId?, text } → 全局快捷输入的发送通道; sessionId 缺省用当前会话。 - POST /api/set-session { sessionId } → 桌面壳在用户在 Web UI 中切换会话时调用,让 /api/state 的 currentSessionId 始终跟随用户实际查看的会话(DS-pet 依赖此接口)。 实机验证(2026-08-17) 在真实 dsh + 桌面 Electron 环境中验证了 POST /api/set-session 的端到端链路: 1. 创建两个会话, /api/state 因 session/created 事件暂时指向新会话; 2. 在主页面(webContents 内)发起 fetch('/api/session.history', { method: 'POST', body: JSON.stringify({ payload: { …

在 GitHub 查看完整 README →
工具/开发dsh-pluginweb ui

分类