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

侧栏面板折叠 yakira-neko/dsh-sidebar-fold

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

把插件加进侧栏的面板收进可折叠分组,按需显示或隐藏

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · browser
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 12 天前
档位由哪些信号合成

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

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

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

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

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

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

README

由 DeepSeek 最新模型翻译生成
dsh-sidebar-fold 把左侧栏里「插件们各自加进来的全局面板」收进一个可折叠的分组,避免入口越装越多时列表失控。 - 折叠组:不是内置面板的入口默认收进一行「展开 N 项面板」后面,点一下整组展开/收起;展开状态记在本机。 - 逐项三态:设置 → 侧边栏里给每个入口选「显示 / 折叠 / 隐藏」。列表是活的 —— 读当前注册的 sidebar.panellist 条目,装一个插件就多一行,谁被收纳由你决定,还能「全部折叠 / 全部显示」。 - 两处开关:面板列表内部的那一行开关;侧边栏底部还有一个快捷折叠按钮。 - 零侵入:不改动、不移动、不卸载 shell 自己的 React 节点,只给行加属性 + 一条 CSS 规则,卸载插件立刻恢复原状。
展开完整文档(README 剩余 1 节)
dsh-sidebar-fold

把左侧栏里「插件们各自加进来的全局面板」收进一个可折叠的分组,避免入口越装越多时列表失控。

- 折叠组:不是内置面板的入口默认收进一行「展开 N 项面板」后面,点一下整组展开/收起;展开状态记在本机。
- 逐项三态:设置 → 侧边栏里给每个入口选「显示 / 折叠 / 隐藏」。列表是活的 —— 读当前注册的 sidebar.panellist 条目,装一个插件就多一行,谁被收纳由你决定,还能「全部折叠 / 全部显示」。
- 两处开关:面板列表内部的那一行开关;侧边栏底部还有一个快捷折叠按钮。
- 零侵入:不改动、不移动、不卸载 shell 自己的 React 节点,只给行加属性 + 一条 CSS 规则,卸载插件立刻恢复原状。

安装

桌面版(Electron)的 desktop profile 由应用独占管理,CLI 会直接拒绝:

error: profile "desktop" is managed exclusively by the Electron application

所以在桌面版里手工装(本机就是这么装的),三步:

1) 把包放进 profile 的 node_modules(junction 也行,改代码免重装) $link = Join-Path $HOME '.dsh\profiles\desktop\node_modules\dsh-sidebar-fold' New-Item -ItemType Junction -Path $link -Target 'D:\code\dsh-plugin\dsh-sidebar-fold'

2) profile/package.json 里加依赖 "dsh-sidebar-fold": "link:D:/code/dsh-plugin/dsh-sidebar-fold"

3) 同一个文件里把包名追加进 dsh.profile.bundles(本包声明了 dsh.bundle.patch,是一层独立 patch;bundles 里没有它,host 半不会成为 Loader 行,client 也不会被下发)

命令行环境(dsh web、自建 profile)可以直接用官方路径,它会自动把包名补进 dsh.profile.bundles:

dsh plugin --profile <name> add link:D:/code/dsh-plugin/dsh-sidebar-fold

改完配置要完全退出并重开 DeepSeek Harness Desktop(客户端 bundle 在启动时随 __DSH_BOOT__ 图一起下发)。

卸载:从 dsh.profile.bundles 删掉 dsh-sidebar-fold,删掉 node_modules/dsh-sidebar-fold,再删 package.json 里那行依赖。本机状态(哪些入口被折叠)存在浏览器 localStorage 的 dsh-sidebar-fold/v1,卸载后可手动清掉。

用法

1. 打开 设置 → 侧边栏。
2. 列表不是写死的:它读的是此刻真正注册到 sidebar.panellist 的条目(ctx.slots.entriesOfSlot('sidebar.panellist')),装了新插件、面板一挂载就会自动多一行,卸载就自动消失。内置 plugins / schedules 默认「显示」,其余默认「折叠」,每个条目都能单独改。
3. 想常驻的选「显示」,想彻底不看见的选「隐藏」,其余留「折叠」;「全部折叠 / 全部显示」是对当前列表一次性批量设置。
4. 左侧栏面板列表底部会出现「展开 N 项面板 / 收起 N 项面板」那一行;点它整组开合,状态会被记住。
5. 顶部的「启用折叠」总开关关掉后,列表回到未折叠的原始形态(逐项「隐藏」也一并失效)。

配置结构

localStorage["dsh-sidebar-fold/v1"]:

{
"enabled": true,
"collapsed": true,
"modes": { "plugins": "show", "ssh": "fold", "dshmarket": "hide" }
}

- enabled:折叠功能总开关。
- collapsed:折叠组当前是否收起。
- modes:按 sidebar.panellist 条目 id 的三态覆盖;缺省时内置面板 show、其余 fold。

实现要点

左侧栏的行由 @deepseek-ai/dsh-client-ui-sidebar 渲染,slot 只提供「一项」的注册位(没有分组位),所以本插件在 shell 渲染完之后做归属标注:

1. 从 ctx.slots.entriesOfSlot('sidebar.panellist') 取当前条目,按 order 升序——这正是 shell 渲染行的顺序。
2. 找到面板列表 nav([data-slot="sidebar.panellist"] 内的第一个带 button 子元素的 nav;老 shell 只有 [data-slot="sidebar"],两种都认),把它的直接 button 子节点与条目配对:先看行的 aria-label(shell 用面板标题写的),对不上再按位置兜底,逐行写 data-dsh-sf-row="<id>"。
3. 需要隐藏的行写 data-dsh-sf-hidden="1",配套只有一条规则:[data-dsh-sf-hidden="1"] { display: none !important }。
4. 折叠开关是自己插入 nav 的一个 div[data-dsh-sf-host](display: contents,order: 10000 视觉置底),里层用 react-dom/client 渲染成和原生行同构的按钮;侧边栏收成 56px 图标栏时自动切成 36×36 图标。
5. MutationObserver 只盯侧边栏子树 + 500ms 轮询兜底(侧边栏晚于插件挂载、或被整体重挂时能接回来),不观察整页。

宿主侧(lib/index.js)没有行为,只为了让这个包成为 profile 里的一条正常 Loader 行,并被 client 扫描发现。

测试

npm test # node --test test/dom.test.mjs
test/dom.test.mjs 用最小 DOM/React 打桩直接跑 lib/client.js,覆盖:配置归一化、默认三态、折叠/隐藏判定、行标注顺序、行与条目的 aria-label/位置配对、展开/关闭总开关、rail 模式识别、侧边栏重挂后重新标注、老 shell 的 [data-slot="sidebar"] 回退、条目减少后的清理、apply() 的座位注册与 CSS 注入。

兼容性

- 针对 @deepseek-ai/dsh-client-ui-sidebar 0.2.1-rc.2 的行结构(nav 的直接 button 子节点 + 一个可选标题 span)。若上游把行包进额外容器,行标注会退化为「不生效」而不是报错——[data-dsh-sf-row] 找不到对应行时干净退出。
- 依赖 ctx.slots(entriesOfSlot / subscribe / inject / register)、ctx.locale、react、react-dom/client,均在 dsh.client.inject 里声明。
预览分享卡片长什么样 ↓yakira-neko/dsh-sidebar-fold
分享 · DeepSeek Harness Hub
yakira-neko/dsh-sidebar-fold

把插件加进侧栏的面板收进可折叠分组,按需显示或隐藏

这是你的仓库?认领条目

回到顶部