把侧栏底部插件卡片纵向堆叠并拖动排序
30.7/100
综合分
1
GitHub 星标
63
npm 周下载
—/5
用户评分
数据截至 2026/9/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-sidebar-footer-stacknpm 源 · dsh-sidebar-footer-stack 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · browser
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 38 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-sidebar-footer-stack @ 1.5.2
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 17:39:36
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 4 处,展示前 4 条)
- 写入本地文件lib/index.js:20
await mkdir(dirname(LOG), { recursive: true }); - 读取本地文件lib/index.js:21
const existing = await stat(LOG).catch(() => null); - 写入本地文件lib/index.js:23
await appendFile(LOG, text + '\n', 'utf8'); - 发起网络请求lib/client.js:300
fetch(PROBE, { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify(snapshot()) }).catch(function () {});
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 纵向堆叠页脚条目
- 统一卡片外观
- 拖动排序
DeepSeek Harness 插件:把侧边栏页脚槽位条目纵向堆叠,统一卡片外观,还能拖动排序。
README
由 DeepSeek 最新模型翻译生成dsh-sidebar-footer-stack
npm version
npm downloads
license
把 DeepSeek Harness 侧栏底部的插件卡片纵向堆叠、统一卡片外观,并支持拖动换序。
DSH 插件(dsh.client 浏览器半区 + 空宿主半区)。已在 DSH 0.1.7-rc.2 桌面版实测。
它解决什么问题
侧栏底部的 sidebar.footer.action 槽位,是宿主留给插件放「常驻小卡片」的位置(会话费用、记忆入口等)。宿主把该槽位的容器渲染成一行 display:flex,于是装了两个以上插件时,每张卡片各占一半宽度、内容被挤到看不全:
未安装本插件 安装本插件后 ┌───────────┬───────────┐ ┌──────────────────────┐ │ 费用卡片 │ 记忆卡片 │ │ 费用卡片 │ │ (被挤窄) │ (被挤窄) │ ├──────────────────────┤ └───────────┴───────────┘ │ 记忆卡片 │ └──────────────────────┘
本插件做三件事:
| 能力 | 说明 |
| 纵向堆叠 | 槽位内所有条目改为纵向排列、各占满宽;以后新装的插件自动适用,无需再改代码 |
展开完整文档(README 剩余 1 节)
dsh-sidebar-footer-stack
npm version
npm downloads
license
把 DeepSeek Harness 侧栏底部的插件卡片纵向堆叠、统一卡片外观,并支持拖动换序。
DSH 插件(dsh.client 浏览器半区 + 空宿主半区)。已在 DSH 0.1.7-rc.2 桌面版实测。
它解决什么问题
侧栏底部的 sidebar.footer.action 槽位,是宿主留给插件放「常驻小卡片」的位置(会话费用、记忆入口等)。宿主把该槽位的容器渲染成一行 display:flex,于是装了两个以上插件时,每张卡片各占一半宽度、内容被挤到看不全:
未安装本插件 安装本插件后 ┌───────────┬───────────┐ ┌──────────────────────┐ │ 费用卡片 │ 记忆卡片 │ │ 费用卡片 │ │ (被挤窄) │ (被挤窄) │ ├──────────────────────┤ └───────────┴───────────┘ │ 记忆卡片 │ └──────────────────────┘
本插件做三件事:
| 能力 | 说明 |
| 纵向堆叠 | 槽位内所有条目改为纵向排列、各占满宽;以后新装的插件自动适用,无需再改代码 |
| 统一卡面 | 所有条目套用统一卡片外观:1px 边框(--dsw-alias-border-l1)+ 12px 圆角 + --dsw-alias-bg-layer-1 底色;已经自带卡片的条目不会被套上第二层框 |
| 拖动换序 | 按住一张卡片拖到另一张的上半区/下半区松手即可改变顺序;顺序写入 localStorage,刷新与重启后保持 |
安装
方式一:npm
dsh plugin --profile web add dsh-sidebar-footer-stack
方式二:GitHub 仓库
dsh plugin --profile web add github:Daniel92Q/dsh-sidebar-footer-stack
方式三:本地目录(开发调试)
git clone https://github.com/Daniel92Q/dsh-sidebar-footer-stack
dsh plugin --profile web add /absolute/path/to/dsh-sidebar-footer-stack
把 web 换成你自己的 profile 名。桌面版(Electron)用户请走应用内「设置 → 插件 → 添加插件」:官方桌面应用独占 desktop profile,dsh plugin --profile desktop 会被 CLI 明确拒绝。
本插件不含任何构建脚本(纯 JS,装完即可用),因此不会被 pnpm 的 allowBuilds 拦下。
安装后重启该 profile 的 Harness 进程;从 UI 安装并按提示刷新时,刷新即可。
使用
| 操作 | 行为 |
| 拖动卡片 | 光标变抓手;拖到目标卡片的上半区松手 → 插到它前面,下半区 → 插到它后面。只有两张卡片时,这两种就是「互换」 |
| 拖动反馈 | 被拖卡片降到 45% 透明度;目标边缘出现 2px 品牌色提示线 |
| 重置顺序 | 再拖回去即可;或清除 localStorage 键 dsh-sidebar-footer-stack.order |
| 收起侧栏 | 侧栏收成窄轨道时,条目改为居中排列,不套用卡面 |
工作原理
三个关键决定,想改它的人值得先看:
1. 选择器只匹配 CSS module 的类名后缀。
同一个宿主版本,装进应用(app.asar)与 npm 发布副本的类名哈希不一样(应用内是 n_2Q3W_footerActions,发布副本是 hHd-Xa_footerActions)。写死完整类名会静默零命中——不报错,也不生效。所以本插件一律用 [class="footerActions"]。
2. 条目不在容器的第一层。
宿主渲染器在槽位里放了一层无 class、尺寸 0×0 的出口包装元素(display:contents),真正的插件条目是它的子元素。把边框写在第一层,就会画在那个看不见的元素上,表现为「改了完全没反应」。所以卡面规则写两级:> 与 > :not([class]) > ,并显式清掉那层包装自身的边框与底色。
3. 排序用 flex order,不移动 DOM 节点。
槽位是 React 渲染的,命令式移动节点会被下一次 re-render 按插件注册顺序原样还原;而 order 是 React 不接管的样式,能稳定存活。顺序按「条目身份」存进 localStorage——身份取类名,没有类名则取 data-* 属性名(例如 @a9i5k4/dsh-auto-memory 的按钮是 data-dam-sidebar-btn)。
兼容性与失败方式
- 实测:DSH 0.1.7-rc.2(官方桌面版 Electron 应用)。
- 本插件依赖宿主的两处内部结构:槽位容器类名后缀 footerActions,以及「出口包装层 + 条目」的两层 DOM。
- 宿主升级若改了这两处,插件会静默失效:不报错,卡片回到宿主原本的横向并排。它不会破坏宿主,也不会影响你的数据。
- 侧栏收起轨道的观感由宿主与各插件的内联样式决定,本插件只保证不覆盖它们的居中布局。
排查(诊断上报)
诊断上报默认关闭。需要时打开:
localStorage.setItem('dsh-sidebar-footer-stack.debug', '1') // 然后刷新页面
此后浏览器半区会把观测到的 DOM 快照(容器类名、flex-direction、每个条目的 class / order / 计算后边框 / 尺寸)POST 给宿主半区的一条本地路由,落盘到:
~/.dsh/sidebar-footer-stack-probe.ndjson
提 issue 时附上这个文件即可(只含 DOM 结构与样式值,不含任何会话内容;文件超过 1 MB 后不再追加)。
关闭:localStorage.removeItem('dsh-sidebar-footer-stack.debug')。
卸载
dsh plugin --profile remove dsh-sidebar-footer-stack
桌面版从应用内「插件」页卸载。卸载后侧栏底部卡片回到宿主原本的横向排列。
开发
git clone https://github.com/Daniel92Q/dsh-sidebar-footer-stack
dsh plugin --profile web add /path/to/clone # 以 link 方式装进 profile
之后改 lib/client.js,刷新页面即生效
两个实用事实:
- 宿主给客户端 bundle 的版本号由文件 mtime/ctime/size 派生,所以「改文件 → URL 变化 → 浏览器自动重新拉取」,不需要重启应用。
- 宿主会热替换客户端 bundle 而不刷新页面,因此注入样式必须支持「标签已存在就就地更新 textContent」;写成「已存在即 return」会让页面永远沿用旧 CSS,表现为「改了文件毫无反应」。
许可
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Daniel92Q/dsh-sidebar-footer-stack
把侧栏底部插件卡片纵向堆叠并拖动排序
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 270,422已汉化DSH
71.9
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,967已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4
这是你的仓库?认领条目