🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

EVA 会话状态色 WhatCannotBeSaid/dsh-session-eva-status

DeepSeek Harness
WhatCannotBeSaid27 天前有提交已提供中文文档扫描:未发现敏感能力

按官方状态给侧栏会话行上色,一眼分清待办与未读

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/8 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add WhatCannotBeSaid/dsh-session-eva-status
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · browser
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 27 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 侧栏会话行按状态上色
  • 区分待办与未读
  • 置顶标题彩虹色

DSH 插件:按会话的官方状态给侧边栏会话行上色,配色是 EVA 风格——橙色=等待交互,红色=当前选中,紫色=已完成但未查看,标题彩虹色=已置顶。

README

由 DeepSeek 最新模型翻译生成
dsh-session-eva-status 按官方会话状态给 DSH 侧栏会话行上色,配色是 EVA 风格。插件不拥有任何状态:只读客户端已有的事实,给每行写一个 data- 属性,再用一张注入的样式表给这个属性上色。 | 行状态 | 读的官方事实 | 画什么 | | 有待处理交互(批准 / 提问 / 计划评审) | uiSession.sessionStatus.pendingInteraction | 橙 #FF5C1A 整行高左轨 + 1.6 秒呼吸 | | 选中(主区域正开着这一个会话) | sessions.list 快照里 retainedBy.mainView > 0 | 红 #FF3B30 整行高左轨,静态 | | 跑完但没看过 | …sessionStatus.completionUnread | 紫 #7A4FD6 整行高左轨 | | 置顶 | workspaces.list 快照里 pinnedSessionIds | 行标题文字变静态六色彩虹(background-clip: text),行本身不画轨 | | 运行中 / 子智能体在跑 / 空闲 / 已归档 / 空白新会话 | — | 不画;官方的转圈点与归档灰化已经说清楚了 | 官方优先级是 等人 > 运行中 > 子智能体 > 完成未读。
展开完整文档(README 剩余 1 节)
dsh-session-eva-status

按官方会话状态给 DSH 侧栏会话行上色,配色是 EVA 风格。插件不拥有任何状态:只读客户端已有的事实,给每行写一个 data- 属性,再用一张注入的样式表给这个属性上色。

| 行状态 | 读的官方事实 | 画什么 |
| 有待处理交互(批准 / 提问 / 计划评审) | uiSession.sessionStatus.pendingInteraction | 橙 #FF5C1A 整行高左轨 + 1.6 秒呼吸 |
| 选中(主区域正开着这一个会话) | sessions.list 快照里 retainedBy.mainView > 0 | 红 #FF3B30 整行高左轨,静态 |
| 跑完但没看过 | …sessionStatus.completionUnread | 紫 #7A4FD6 整行高左轨 |
| 置顶 | workspaces.list 快照里 pinnedSessionIds | 行标题文字变静态六色彩虹(background-clip: text),行本身不画轨 |
| 运行中 / 子智能体在跑 / 空闲 / 已归档 / 空白新会话 | — | 不画;官方的转圈点与归档灰化已经说清楚了 |

官方优先级是 等人 > 运行中 > 子智能体 > 完成未读。跑完但子智能体还在跑时,官方那行显示的是 ongoing 转圈,插件就不画、把转圈让过去,不把这行说成「跑完」。

插件自己的优先级是 等人 > 选中 > 子智能体让位 > 完成未读:要你动手的行压过你正在看的行;选中的行即使子智能体在跑也保留红轨——选中行不隐藏官方转圈,两种读法同时看得见。

配色背后的规则:形状负责表意,颜色与光效负责风格。 图钉与置顶优先排序完全留给官方,这里只给置顶行的标题文字换色,图钉本身不改样式、不加装饰。

安装

与同目录其他本地插件一样,作为 Profile 依赖:把包加进 ~/.dsh/profiles/<profile>/package.json(并加进该 profile 的 dsh.bundles)后重启 DSH,或用插件 CLI 指路径安装:

dsh plugin --profile <profile> add <path-to>/dsh-session-eva-status

配置

随包 cordis.patch.yml 插入 entry 时带上默认值,改那里即可:

| 字段 | 默认 | 含义 |
| hideOfficialDot | true | 在 等人/跑完未读 两种行上隐藏官方状态点(由左轨替代) |
| breatheMs | 1600 | 橙轨的呼吸周期(毫秒,≥ 200) |
| colors | EVA 配色 | 覆盖 pending / selected / unread |

配置不合法会当场抛错,不静默降级。

原理

- 行锚点:[data-row-key="session:<id>"],由 @deepseek-ai/dsh-client-ui-workspace 渲染。
- 标题锚点:置顶彩虹加在行内第 2 个子元素上。行首那格永远渲染,标题位次因此稳定,不必匹配官方哈希类名。
- 状态源:客户端自己的 ctx.uiSession.sessionStatus(HostObservable<ReadonlyMap<SessionId, SessionStatus>>,含 running / pendingInteraction / completionUnread),外加 ctx.sessions.list 里的两件事:子智能体目录(判断官方的「子智能体运行中」)与 retainedBy.mainView > 0(官方行自己的 selected 就是这么算出来的);置顶集合来自 ctx.workspaces.list 的 pinnedSessionIds。不轮询、不嗅探事件、不需要宿主半边。
- 行上画什么:状态只由左轨一条 ::before 伪元素表达,行自身的背景完全不动:官方 hover 与选中反馈照旧。左轨刻意不用 inset box-shadow:inset 阴影是贴着边框内缘的一条带,会跟着官方行的圆角一路拐弯,两端拐成朝右的大弯钩,看上去像中括号而不是一条直轨;绝对定位的伪元素不受行圆角裁剪,才是整行高、两端直角的一条直轨。
- React 安全:标记写成 data-eva-state 属性(React 不管它,重渲染冲不掉),观察器只过滤 data-row-key,行挂载/卸载/换身份时重新对账。
- 卸载即净:订阅、观察器、行属性、样式表、调试入口一起清掉。

致谢与参考

这里没有任何整段抄来的代码。下面逐条说明每个来源贡献了什么。

借用的代码手法

- enterhalf/dsh-session-colorful-unread-pin-jobs — DSH Web 插件浏览器半边的骨架:window.__ModuleLoader__.load({ id, factory }) 信封与具名 apply / inject、用 [data-row-key^="session:"] 认会话行、用合并到一个微任务的 MutationObserver 在 React 重渲染后补画、以及给注入样式表预打标记(dataset.plugin / dataset.pluginCss)以免被兄弟插件的热重载认领并删除。它的 2 秒轮询、自建未读存储与标题渐变染色没有沿用。
- dsh-ledger-cn(本机 C:\DSH\plugins\dsh-ledger-cn,未发布)— 本插件的包结构照它来:private: true、main: lib/index.js、. / ./client 一对导出、插入自己 Loader 行的 cordis.patch.yml,以及测试手法(在假 window.__ModuleLoader__ 与最小 DOM stub 之后加载浏览器束)。
- Tencent/BrowserSkill — @wxg-prc-cpg/browser-skill-dsh-plugin — 外部包的 dsh 清单参照:dsh.bundle.patch、dsh.client.platform、dsh.client.inject 与 files 列表。

从官方 Harness 读到的契约(deepseek-ai/deepseek-harness)

- packages/client/ui-workspace — 会话行的 DOM(data-row-key、行首 16px 格、标题、时间、图钉)、行自身几何(Rows.module.css:高 32px、border-radius: var(--dsw-radius-md))以及行内席位(SlotMap)的声明。
- packages/client/ui-session — 本插件读的 ctx.uiSession.sessionStatus(HostObservable<ReadonlyMap<SessionId, SessionStatus>>)。
- packages/client/ui-primitives — StateDot,它的状态集合定义了官方行点的含义。
- packages/client/ui-schedule — 占用 sidebar.session.row.leading 与 sidebar.session.row.hover 席位的现成例子(尚未使用,留给计划中的 hover 读数)。

本包不含官方包的任何代码、样式或文案:插件只读它们渲染出来的 DOM 与公开的客户端服务。

已知限制

- 隐藏官方点用行上的 > :first-child:等人/跑完未读 行的这个 16px 格里只有状态点(sidebar.session.row.leading 席只在行 idle 时渲染),所以今天不会误伤;若将来官方在该格放别的占用者,会被一起隐藏。
- 归档行不画:官方已经把标题压到 caption 档,而且归档行的行首格本来就不画状态点。
- 选中轨是叠在官方选中高亮(行自身背景)之上的加法,不是替换。
- 置顶彩虹只染文字(background-clip: text),不往行里插 DOM;卸载时属性与规则一起消失。
- 配色刻意不跟随主题品牌色;不给行铺底色,所以明暗主题下同一组颜色读起来一样。
- 将来官方若改名 data-row-key,插件只是不再上色,不会影响别的功能。
- 没有任何模型可见面:不注册工具、命令、提示词或上下文。

测试

node --test test/client.test.mjs

许可

MIT
预览分享卡片长什么样 ↓WhatCannotBeSaid/dsh-session-eva-status
分享 · DeepSeek Harness Hub
WhatCannotBeSaid/dsh-session-eva-status

按官方状态给侧栏会话行上色,一眼分清待办与未读

这是你的仓库?认领条目

回到顶部