Skip to content

Sync plugins to D1 自 2026-09-03 起每日 cancelled(卡在 probe:install),api-edge 目录产物已 11 天未重新生成 #40

Description

@hmr-BH

先说明来意:我是来投稿插件的,按 README「提交你的插件」给我的仓库加了 dsh-plugin topic,等了两轮刷新都没出现,顺藤摸瓜查到了下面的问题。所以这个 issue 不是「我的插件没被收录」,而是一个会影响所有新插件的同步故障。

现象

Sync plugins to D1 自 2026-09-03 起,每天定时运行都是 cancelled,最后一次成功是 2026-09-02T07:07:43Z(run 33602047675),至今已 11 天。

拉取了最近 35 次运行:cancelled 25 次、success 9 次、failure 1 次。

2026-09-13T07:29:35Z  schedule  cancelled
2026-09-12T07:11:06Z  schedule  cancelled
2026-09-11T07:18:38Z  schedule  cancelled
2026-09-10T07:19:54Z  schedule  cancelled
2026-09-09T07:24:51Z  schedule  cancelled
2026-09-08T07:16:01Z  schedule  cancelled
2026-09-07T07:21:23Z  schedule  cancelled
2026-09-06T07:08:55Z  schedule  cancelled
2026-09-05T06:57:13Z  schedule  cancelled
2026-09-04T07:15:30Z  schedule  cancelled
2026-09-03T07:12:04Z  schedule  cancelled
2026-09-02T07:07:43Z  schedule  success   ← 最后一次成功

卡在哪一步

每次都是同一个位置(以今天的 run 34745362396 为例,job 从 07:29:38Z 跑到 07:49:54Z,正好吃满 timeout-minutes: 20):

step: Set up job                               -> success
step: Run actions/checkout@v4                  -> success
step: Run pnpm/action-setup@v4                 -> success
step: Run actions/setup-node@v4                -> success
step: Run pnpm install --frozen-lockfile       -> success
step: Run pnpm sync:db --skip-contributors     -> success
step: Run pnpm probe:install --deadline 8      -> cancelled   ← 断点
step: Run pnpm gen:plugins                     -> skipped
step: Generate api-edge catalog artifacts      -> skipped
step: Deploy api-edge worker (…)               -> skipped
step: Warn when the api-edge deploy … missing  -> skipped
step: Commit refreshed snapshots …             -> skipped

影响

pnpm sync:db 本身是成功的,所以 D1 里应该已经有较新的行;但生成目录产物、部署 api-edge worker、提交快照这三步全被跳过,因此 api.dshfind.com 对外提供的目录一直没有重新生成——桌面端社区市场读的就是这份产物。

具体到我的例子:

GET https://api.dshfind.com/v1/plugins?per_page=20&q=dsh-round-rightclick   → total=0
GET https://api.dshfind.com/v1/plugins?per_page=20&q=hmr-BH                 → total=0
GET https://api.dshfind.com/v1/plugins?per_page=20&q=modlens                → total=11   (对照组,说明查询参数正常)

hmr-BH/dsh-round-rightclick 是 2026-09-13 创建的公开仓库,已带 dsh-plugin topic,package.json 声明了 dsh.bundle.patch: ./cordis.patch.yml,并且已发布到 npm(dsh-round-rightclick@0.1.1)。按 README 的规则它就该被收录,但因为产物没重新生成,它进不去。任何在 09-02 之后加上 topic 的仓库应该都一样。

一点观察(供参考,不是要求)

工作流注释里其实已经两次记录过同一类问题:

  • 贡献者数那步:「2026-08-22 起连续四天的 cancelled 全是这个」→ 用 --skip-contributors 修掉了;
  • probe:install 那步:「配额一空这步就会在 120s 退避里耗死,把 20 分钟 job 预算占光……(2026-08-27 整轮同步就断在这里)」。

--deadline 8 的收工设计本身是合理的(没探到的保持旧 probed_at、下轮接着探),但它现在的问题是:探测超时会把整条 job 一起带走,导致后面那些与探测无关的产物生成和部署也跑不到。9 月初之后配额似乎更紧张了,于是 --deadline 兜不住了。

可能的缓解方向,供你们判断(我完全不了解你们内部的配额与调度约束,只是把观察列出来):

  1. 把 probe:install 拆成独立 job,或让它 continue-on-error,使探测超时不再阻断产物生成与部署;
  2. 后续的 gen:plugins / 生成 api-edge 产物 / 部署步骤加 if: always()(或在 probe 失败时仍执行),保证目录至少能按上轮探测结果重新生成;
  3. 给 probe 用配额更高的 token,或进一步缩小每轮探测范围(例如新收录仓库优先),把单轮请求量压到 Actions token 配额之下。

如果你们已经知道这件事、只是在排期,请忽略上面这段,只需告诉我大概什么时候恢复就好——我这边等目录恢复后再确认插件是否被收录,不需要额外为我做任何事。


TL;DR (English): Sync plugins to D1 has been cancelled every day since 2026-09-03 (last success: 2026-09-02, run 33602047675). Every run dies at pnpm probe:install --deadline 8 after consuming the full 20-minute job budget, which skips gen:plugins, the api-edge catalog artifact generation, the edge deploy, and the snapshot commit. sync:db itself succeeds, but because the served catalog artifacts are never regenerated, api.dshfind.com is frozen and repos that gained the dsh-plugin topic since 2026-09-02 never appear — e.g. hmr-BH/dsh-round-rightclick (public, topic set, dsh.bundle declared, published to npm) returns total=0 while the control query q=modlens returns 11.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    review: mediumghfind author score; see https://ghfind.com

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions