Repository navigation
Releases
dsh-plugin-galaxy 0.1.37
dsh-plugin-galaxy 0.1.37
修复桌面版所有写操作都报 untrusted origin(面板能看、不能安装/更新/启停/卸载)。
原因
报错来自本插件自己的同源守卫(src/api/router.ts,所有 POST 默认 sameOrigin: true)。
打包桌面壳在把应用请求转发给宿主时,会删除 origin/host/cookie/sec-fetch-site 并注入宿主自己的认证 cookie
(apps/desktop/src/web-document.ts → forwardWebRequest)。旧判定要求 Origin 必须存在且与 Host 一致,
于是桌面 UI 的每个写请求都是「裸请求」→ 403。
与国内网络、GitHub 都无关(请求根本没出机器);浏览器形态(开发版 http://127.0.0.1:3080)Origin 正常,
所以开发版没暴露这个问题。macOS 桌面版同样会中,只是之前没测到写操作。
修复
sameOrigin() 在回环前提下多接受两种形态:
| 情形 | 判定 |
|---|---|
Origin 与 Host 一致 |
允许(不变) |
无 Origin 且来自回环 |
允许(桌面壳的转发形态) |
Origin 为 dsh-app:// 协议且来自回环 |
允许(若某些壳版本原样转发 app origin) |
安全性不降级:后两条都额外要求 socket 来自回环;浏览器在跨源 POST 上必然带 Origin,所以「缺失」本身就有意义;
Origin: null(沙箱 iframe / file://)仍拒绝;破坏性路由(重启/自我卸载/备份下载)本来还要求 loopback。
影响面
桌面版的安装、更新、卸载、启停、备注、收藏、快照/恢复、通道/区域、目录来源恢复可用;浏览器形态行为不变。
验证
- 测试 221/221:新增
tests/origin-guard.test.ts(7 条判定)+tests/routes.test.ts3 条路由级用例
(无 Origin + 回环 = 200;无 Origin + 非回环 = 403;Origin 不匹配 = 403) npm run release全门禁通过
附件
| 项 | 值 |
|---|---|
| 文件 | dsh-plugin-galaxy-0.1.37.tgz(621787 字节) |
| SHA-256 | 61e8ccce4b5960d939e437b279e91fd540d9e9be2e130c78ba85322149663af1 |
dsh-plugin-galaxy 0.1.36
dsh-plugin-galaxy 0.1.36
内置默认目录改成官网 —— 桌面版新装即可与官网一致(305 条 + 甄选 + 分类筛选),不再需要手工配置。
改动
DEFAULT_CATALOG_URL→https://www.yhaigc.cn/assets/plugins/catalog.json
(区域表里的目录候选地址同步更新)。优先级不变:DSHG_REGISTRY_URL→ profile 的catalogUrl→ 内置默认。- 「设置 → 目录来源」里"来源"的措辞改为内置默认目录(官网);保存/恢复默认的行为不变。
- 更新说明(
updates.json)仍取聚合源:官网目前不提供该文件(404),指过去只会让「更新日志」变成空内容
(不报错)。两个来源相互独立,DSHG_UPDATES_ORIGIN可单独覆盖;官网若日后自建,按
{ updates: { "<行的 url>": { release|releases, commits } } }形状发布即可切换。
影响面
- 新 profile / 未配置过目录:装上就是官网目录(本次目标)。
- 已显式配置过
catalogUrl的 profile(含环境变量覆盖):行为不变,仍按配置走。 - 发现类数据(分类/甄选/推荐榜/★/下载量)随官网目录快照;更新检查依旧走 npm registry 与 GitHub 提交,
与目录更新节奏无关。
验证
- 测试 211/211(新增:内置默认目录必须是官网;环境变量与 profile 覆盖优先级;空白值回落)
npm run release全门禁通过(产物 / 客户端冒烟 / 合规 / 宿主契约 0.2.1 / 宿主设置 / 真 Chrome 布局)
附件
| 项 | 值 |
|---|---|
| 文件 | dsh-plugin-galaxy-0.1.36.tgz(620495 字节) |
| SHA-256 | 339112c929d3fa341df972766fbbadc2e1b18c349469ad1596f422659898814a |
dsh-plugin-galaxy 0.1.35
dsh-plugin-galaxy 0.1.35
修复桌面版报告的「4508 个插件 / 没有甄选 / 没有分类筛选」。
原因:两条数据原因叠加(不是缓存,也不是没装上)
- 该 profile 没配
catalogUrl→ 回落到内置公共目录awesome-dsh-plugin.com/plugins.json
(实测正好 4508 条、无ranking块)→「推荐」按设计退化为「未安装」,甄选自然没有; - 那份目录的分类词表是映射形状(
{ "agi": { "zh": "…", "en": "…" } }),旧加载器只认数组
→ 词表被丢弃 → 分类选择器与甄选 chip 无处渲染(面板的这两处完全由数据驱动)。
本次改动
- 设置卡片新增「目录来源」:直接填「目录地址 + 官网基址」即可(不必再设环境变量或改 JSON),
并显示"当前生效 + 来源(环境变量 / 本 profile / 内置)"——环境变量优先,所以"保存了却不变"会被解释清楚。
保存后面板通过事件立即重新拉取,不需要手动点刷新。 - 加载器兼容两种词表形状(数组 / 映射),标签按
label → zh → name与labelEn → en读取;
消费侧门禁同步归一,对两类目录都能正确判定。 - 服务端只新增一个
POST /catalog-source(读侧并入/status,保持"每个路径只注册一次"的约定);
校验 http(s)、写入取互斥锁、并使基于旧 origin 的缓存失效。
验证
- 测试 209/209;
npm run release全门禁通过(产物 / 客户端冒烟 / 合规 / 宿主契约 / 宿主设置 / 真 Chrome 布局) - 已在真宿主
0.2.1-alpha.1上跑:HOST SURFACE: PASS、HOST SETTINGS CHECK: PASS、LAYOUT CHECK: PASS
装完请这样配(桌面版)
设置 → 插件星系 → 目录来源:
| 字段 | 值 |
|---|---|
| 目录地址 | https://www.yhaigc.cn/assets/plugins/catalog.json |
| 官网基址 | https://www.yhaigc.cn |
保存后应显示 305 条,并出现甄选 chip 与分类筛选。
附件
| 项 | 值 |
|---|---|
| 文件 | dsh-plugin-galaxy-0.1.35.tgz |
| 大小 | 619767 字节 |
| SHA-256 | 81a8ada09de5e9bbae9f980325c91ac92de16da4d40682af4b0fb3b17b077b78 |
dsh-plugin-galaxy 0.1.34
dsh-plugin-galaxy 0.1.34
装在 DeepSeek Harness 设置对话框里的插件市场:逛、搜、按分类浏览、一键安装,
更新/启停/卸载/备份恢复/诊断都在同一个面板里完成。不占侧栏座位,不往会话里塞命令。
安装
本包不在 npm 上(dsh plugin add dsh-plugin-galaxy 不会成功)。两种方式:
# A. 下载本 Release 的附件后安装
dsh plugin --profile web add ./dsh-plugin-galaxy-0.1.34.tgz
# B. 直接从本 Release 的资产地址安装
dsh plugin --profile web add \
https://github.com/AndyPBI/dsh-plugin-galaxy/releases/download/v0.1.34/dsh-plugin-galaxy-0.1.34.tgz装完需完整重启宿主(插件在宿主启动时装载),然后在 设置 → 插件星系 打开。
要求:DSH >=0.1.5-alpha.1(0.2.x 需 Node ^22.19.0 || >=24.0.0);安装使用宿主的 pnpm,
打包版桌面应用使用其自带运行时。
附件校验
| 项 | 值 |
|---|---|
| 文件 | dsh-plugin-galaxy-0.1.34.tgz |
| 大小 | 612322 字节 |
| SHA-256 | ce28e7596d5f481e5f9fef1106ae0332de7ff629d295c3c8c9a62357a62b0554 |
| 发布物 | 209 项(lib/、client/、src/、cordis.patch.yml、LICENSE;不含 docs/tests/scripts) |
本次亮点
- 分类筛选:工具栏「分类筛选」由官网目录的分类词表生成;词表首个分类(甄选 / Featured)
直接作为 chip 显示在「全部」之后,完整词表在下拉里,可与状态筛选、搜索叠加。官网新增或改名分类,面板自动跟随。 - 工具栏布局:改为三行结构(搜索 / chips / 控件),「分类筛选」与「排序」严格同行,且在任何对话框宽度下
不重叠、不出框(容器查询 + 宽度上限,实测 1044 / 420 / 380px)。 - 两代宿主 + 桌面版:同时支持
0.1.5-rc.2与0.2.1-alpha.1,含 Windows/macOS 桌面版
(打包应用自带 pnpm、profileContext解析 profile、外壳拥有生命周期时禁用自重启)。 - 推荐视图:卡片带官网排名
#1、#2… 与分档、评分构成与"为什么推荐",跳过已安装自动补位。 - 权限与安全:无遥测、凭据不落盘、无 postinstall;变更操作前先快照 profile,失败自动回滚。
验证
- 测试 202/202;
npm run release全门禁通过(产物/客户端冒烟/合规扫描/宿主契约/宿主设置/真 Chrome 布局) - 已在真宿主
0.2.1-alpha.1上验证:HOST SURFACE: PASS、HOST SETTINGS CHECK: PASS、LAYOUT CHECK: PASS - CI:
.github/workflows/ci.yml跑的就是npm run release
链接
- README(中文):
README.md· English:README.en.md - 权限与安全:README §4 · 配置参考:
docs/configuration.md - 宿主兼容性(含 Windows 桌面版说明):
docs/host-compatibility.md