
Security News
Deno Goes the Way of the Dinosaur
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.
dsh-favorites
Advanced tools
DSH web plugin: a 收藏夹 (favorites) feature in the conversation header — star the current session, list every favorited session, and open one from an anchored panel. Persisted through the `favorites` settings namespace.
DSH(DeepSeek Harness)Web 插件:会话收藏夹功能。
一个面向 DSH(DeepSeek Harness)Web 界面 打造的原生会话收藏夹插件。它把最常用的会话固定到会话页头,支持一键收藏 / 取消收藏,并通过一个置顶锚定的面板快速跳转到任意已收藏会话,让需要反复回访的会话触手可及。
在使用 DSH Web 时,会话(session)会随着工作场景不断增多。当会话列表变得很长时,找「上一次还在用的那个会话」往往很费劲:
dsh-favorites 把这些痛点收进一个动作:看到喜欢的会话,点一下星标;要回去,点一下右上角的「收藏夹」。 收藏数据持久化,重启 DSH 也不会丢。
| 特性 | 说明 |
|---|---|
| 会话页头入口 | 在会话页头(DSH 官方稳定槽位 conversation.session.header.actions)新增「收藏夹」按钮,始终可见。 |
| 一键收藏 / 取消收藏 | 点星标即可收藏当前会话,再次点击取消收藏。 |
| 收藏数量角标 | 「收藏夹」按钮带实时角标,一眼看到当前已收藏的会话数量。 |
| 置顶锚定面板 | 点击「收藏夹」展开一个锚定在按钮下方的面板,不受页面滚动影响。 |
| 快速打开 | 在面板中点击会话标题即可打开该会话;点击 × 即可从收藏夹移除。 |
| 空态友好 | 没有收藏时面板显示「暂无收藏」提示。 |
| 归档保护 | 已收藏的会话不能被归档(保留重命名 / 派生),避免误归档。 |
| 持久化 | 收藏列表持久化到 favorites 设置命名空间,重启后保留。 |
| 跨版本稳定 | 基于一等公民的 DSH 槽位实现,不依赖固定像素坐标 / CSS-hash / 第三方插件内部实现。 |
lib/index.js主机端只做一件很克制的事:声明并注册 favorites 设置命名空间及它的 schema。
const NAMESPACE = settingsNamespace("favorites");
const SCHEMA = z.object({ sessionIds: z.array(z.string()) });
class FavoritesService extends Service {
constructor(ctx) {
super(ctx, "favorites");
installSettingsSection(ctx, NAMESPACE, SCHEMA, { sessionIds: [] }, {
setSource: () => {},
onChange: () => {}
});
}
}
@deepseek-ai/cordis 的 Service 基类注册 favorites 服务,便于被其他宿主服务依赖。@deepseek-ai/dsh-settings 的 installSettingsSection 声明命名空间,复用 DSH 自带的设置传输层。sessionIds 必须为字符串数组)。lib/client.js客户端通过 window.__ModuleLoader__.load 动态加载,声明模块 id = "dsh-favorites":
React.useSyncExternalStore 构建一个模块级可观察 store,收藏列表在任何组件间即时同步;ctx.get("connection").api.settings.describe({}),并解析 favorites 命名空间的 sessionIds;ctx.get("connection").api.settings.mutate({ ns: "favorites", ops: [{ op: "set", path: ["sessionIds"], value: ids }] });conversation.session.header.actions,贡献两个条目:
favorite:当前会话的星标收藏开关(FavoriteToggle);favorites:展开收藏夹面板的入口(FavoritesAction)。workspaces.archiveSession:当目标会话已收藏时拒绝归档并给出 toast 提示。--dsw-*),深色 / 浅色主题下均协调。实现完全基于 DSH 的 一等公民槽位(conversation.session.header.actions)与 设置命名空间(favorites),布局由 DSH 自身负责排版,不依赖:
因此 DSH 升级后,只要槽位与设置传输层保持兼容,dsh-favorites 无需改动即可继续工作。
已发布到 npm registry。作为 DSH web profile 插件直接安装,在 web profile 目录执行:
dsh plugin --profile web add dsh-favorites
安装后重启 dsh web 并刷新页面,即可在会话页头看到「收藏夹」按钮。
也可以从源码仓库安装预发布 / 最新提交版本:
dsh plugin --profile web add github:andyzhuang233/dsh-favorites
☆ 收藏当前会话(变为 ★),再次点击取消收藏。× → 从收藏夹移除;收藏数据持久化在 DSH 的设置命名空间 favorites 中:
favorites:
sessionIds:
- session-5ea79e32-45f7-4d81-9e5b-1430c7768e94
favorites{ sessionIds: string[] }$DSH_HOME/settings.yaml(由 DSH 设置传输层统一管理)| 包 | 用途 |
|---|---|
@deepseek-ai/cordis | 提供 Service 基类,用于注册宿主服务。 |
@deepseek-ai/dsh-settings | 提供 settingsNamespace / installSettingsSection,用于设置命名空间。 |
@deepseek-ai/schemastery | 提供 z schema 校验。 |
客户端注入运行时的依赖(dsh.client.inject):
@deepseek-ai/dsh-client-runtime(提供 slots / sessions / workspaces 与 React 基础)@deepseek-ai/dsh-client-connection(提供 connection.api.settings.*)@deepseek-ai/dsh-client-ui-conversation(提供会话页头槽位)dsh-favorites/
├── lib/
│ ├── client.js # 客户端:槽位注入 + 收藏夹 UI + 持久化读写
│ └── index.js # 主机端:favorites 设置命名空间声明
├── cordis.patch.yml # DSH bundle patch:插入 `favorites` 宿主服务条目
├── package.json # 插件清单(dsh.bundle / dsh.client 声明)
├── README.md
└── LICENSE
FAQs
DSH web plugin: a 收藏夹 (favorites) feature in the conversation header — star the current session, list every favorited session, and open one from an anchored panel. Persisted through the `favorites` settings namespace.
We found that dsh-favorites demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.

Security News
Anthropic’s free OSS Scanner uses Mythos and other Claude models to find open source vulnerabilities and send maintainers reports with proposed fixes.

Security News
On Front Lines’ Early Adopters: CISO podcast, Andrew Becherer shares lessons from Datadog, weighs the long-term costs of AI-built tools, and explains how founders can actually gain a CISO’s trust.