Skip to content

Releases

dsh-plugin-galaxy 0.1.37

Choose a tag to compare

@AndyPBI AndyPBI released this 12 Oct 04:42

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.ts 3 条路由级用例
    (无 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

Choose a tag to compare

@AndyPBI AndyPBI released this 12 Oct 04:27

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

Choose a tag to compare

@AndyPBI AndyPBI released this 12 Oct 01:07

dsh-plugin-galaxy 0.1.35

修复桌面版报告的「4508 个插件 / 没有甄选 / 没有分类筛选」。

原因:两条数据原因叠加(不是缓存,也不是没装上)

  1. 该 profile 没配 catalogUrl → 回落到内置公共目录 awesome-dsh-plugin.com/plugins.json
    (实测正好 4508 条、无 ranking 块)→「推荐」按设计退化为「未安装」,甄选自然没有;
  2. 那份目录的分类词表是映射形状({ "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

Choose a tag to compare

@AndyPBI AndyPBI released this 12 Oct 00:48

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

链接