@perrylink/dsh-github 0.7.15 → 0.7.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README-es.md +22 -1
- package/README-hi.md +22 -1
- package/README-pt.md +22 -1
- package/README-zh.md +22 -1
- package/README.md +22 -1
- package/package.json +33 -32
package/README-es.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
# dsh-github
|
|
4
4
|
|
|
5
|
+
> Release stamp: `0.7.16` (2026-10-04).
|
|
6
|
+
|
|
5
7
|
**PRs, revisiones, issues y CI de GitHub para DeepSeek Harness — cada escritura aprobada por un humano y el token nunca registrado.**
|
|
6
8
|
|
|
7
9
|
*Crea, revisa, fusiona y busca en GitHub desde el agente, con una acción compuesta de CI, un bot de revisión por sondeo y una puerta de status-check.*
|
|
@@ -44,11 +46,12 @@
|
|
|
44
46
|
- [Familia de plugins DSH de PerryLink](#perrylink-dsh-plugin-family)
|
|
45
47
|
- [Licencia](#licencia)
|
|
46
48
|
|
|
49
|
+
- [Interoperabilidad con otros plugins de DSH](#interoperabilidad-con-otros-plugins-de-dsh)
|
|
47
50
|
## Compatibilidad
|
|
48
51
|
|
|
49
52
|
| Superficie | Estado |
|
|
50
53
|
|---|---|
|
|
51
|
-
| Harness | DeepSeek Harness `dsh-v0.1
|
|
54
|
+
| Harness | DeepSeek Harness `dsh-v0.2.1-alpha.1` (compatibilidad declarada para `>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0 \|\| >=0.1.6-0 <0.2.0 \|\| >=0.1.7-0 <0.2.0`; 0.1.2-rc.1 adaptado el 2026-09-09): el job de revisión pasa a ser propiedad de un `SessionId` desnudo y la fuente de aviso usa el kind propio del plugin `dsh-github` (la unión `Agent \| SessionId` del host y su `kind: 'plugin'` comodín ya no existen); la tarjeta de configuración se registra en la **página Plugins** (grupo Official, slot `plugins.item`) y se renderiza desde el form que entrega `dsh-client-ui-plugin-manager`, en lugar de enlazar el eliminado `ctx.settingsScope`; el controlador de CI autoaprueba mediante la costura oficial `ctx.approval.setPolicy`; el bot de revisión sondea como tarea en segundo plano `ctx.jobs` con respaldo por temporizador. Actualizado el 2026-09-24 a `0.1.7-rc.2` (typecheck + typecheck:ci + 185 pruebas unitarias en verde). |
|
|
52
55
|
| Node | `^22.19.0 \|\| >=24.0.0` |
|
|
53
56
|
| Plataformas | Todas (plugin host; red saliente a GitHub) |
|
|
54
57
|
| Modelo | Cualquiera (la revisión estática es determinista; `reviewMode: "model"` es opcional) |
|
|
@@ -221,6 +224,24 @@ Todos los plugins de PerryLink pueden explorarse en el mercado integrado de DSH
|
|
|
221
224
|
[Apache License 2.0](LICENSE) © 2026 dsh-github contributors
|
|
222
225
|
|
|
223
226
|
|
|
227
|
+
## Interoperabilidad con otros plugins de DSH
|
|
228
|
+
|
|
229
|
+
Verificado contra **DSH `0.2.0-rc.2`** (el runtime para el que se publica este README) y el conjunto de plugins con más estrellas sondeado el 2026-10-05.
|
|
230
|
+
|
|
231
|
+
Este plugin **no interfiere** con otros plugins, incluidos los de más estrellas:
|
|
232
|
+
|
|
233
|
+
- **Sin colisión de nombres de herramienta.** Todas las herramientas llevan espacio de nombres; ninguna ocupa un nombre desnudo ya perteneciente a una herramienta incluida u otro plugin.
|
|
234
|
+
- **Sin colisión de clave de servicio.** No provee ninguna clave de servicio, así que no puede colisionar en una.
|
|
235
|
+
- **Sin colisión de slot.** No registra ninguna clave de slot de cliente, así que no disputa un asiento `shadows-shipped-ui`.
|
|
236
|
+
- **Sin colisión de ruta HTTP.** No registra ningún prefijo `webServer`.
|
|
237
|
+
- **Sin colisión en la capa de patch.** El patch del bundle solo hace `insert` de su propia fila; nunca sobrescribe el `config` de una fila incluida.
|
|
238
|
+
- **Sin mutación global.** No parchea prototipos, ni reescribe `process.env`, ni reemplaza el dispatcher global de fetch.
|
|
239
|
+
|
|
240
|
+
**Los listeners de eventos compartidos no interfieren por construcción.** Observa los eventos sensibles al orden `tools/pre-execute` con `ctx.on()` — el registro de difusión de Cordis, donde cada listener se ejecuta y ninguno puede dejar sin turno a otro. **Todos los listeners aquí delegan por `next()`**, así que la cadena nunca se cortocircuita:
|
|
241
|
+
- `tools/pre-execute` — also used by `cc-safety-net` (1576★).
|
|
242
|
+
|
|
243
|
+
Evidencia estática: `dsh-plugin-doctor` K10–K13 dan `pass` en todas las comprobaciones de este repositorio.
|
|
244
|
+
|
|
224
245
|
## PerryLink DSH Plugin Family
|
|
225
246
|
|
|
226
247
|
This project is one of the **45 DeepSeek Harness plugins** maintained by [PerryLink](https://github.com/PerryLink). If this one helps you, the others likely will too:
|
package/README-hi.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
# dsh-github
|
|
4
4
|
|
|
5
|
+
> Release stamp: `0.7.16` (2026-10-04).
|
|
6
|
+
|
|
5
7
|
**DeepSeek Harness के लिए GitHub के PR, समीक्षाएँ, issues और CI — हर write मानवीय approval से नियंत्रित, token कभी logged नहीं होता।**
|
|
6
8
|
|
|
7
9
|
*एजेंट से GitHub पर बनाएँ, समीक्षा करें, merge करें और खोजें — CI composite action, polling review bot और status-check gate के साथ।*
|
|
@@ -28,6 +30,7 @@
|
|
|
28
30
|
## 📚 विषय-सूची
|
|
29
31
|
|
|
30
32
|
- [अनुकूलता](#अनुकूलता)
|
|
33
|
+
- [अन्य DSH प्लगइनों के साथ अंतर-संचालनीयता](#अन्य-dsh-प्लगइनों-के-साथ-अंतर-संचालनीयता)
|
|
31
34
|
- [आपको क्या मिलता है](#आपको-क्या-मिलता-है)
|
|
32
35
|
- [त्वरित शुरुआत](#त्वरित-शुरुआत)
|
|
33
36
|
- [स्थापना और अनइंस्टॉल](#स्थापना-और-अनइंस्टॉल)
|
|
@@ -48,7 +51,7 @@
|
|
|
48
51
|
|
|
49
52
|
| सतह | स्थिति |
|
|
50
53
|
|---|---|
|
|
51
|
-
| Harness | DeepSeek Harness `dsh-v0.1
|
|
54
|
+
| Harness | DeepSeek Harness `dsh-v0.2.1-alpha.1` (`>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0 \|\| >=0.1.6-0 <0.2.0 \|\| >=0.1.7-0 <0.2.0` के लिए compat घोषित; 0.1.2-rc.1 2026-09-09 को अनुकूलित): review job अब नंगे `SessionId` का है और notice source plugin का अपना kind `dsh-github` है (host का `Agent \| SessionId` union और उसका catch-all `kind: 'plugin'` दोनों हट गए); settings card **Plugins पेज** (Official समूह, `plugins.item` slot) पर पंजीकृत होता है और `dsh-client-ui-plugin-manager` द्वारा दिए गए owner form से render होता है, हटाए गए `ctx.settingsScope` को bind करने की जगह; CI driver आधिकारिक `ctx.approval.setPolicy` नीति सीम से ऑटो-अनुमोदन करता है; review bot `ctx.jobs` पृष्ठभूमि job के रूप में टाइमर फ़ॉलबैक के साथ पोल करता है। 2026-09-24 को `0.1.7-rc.2` पर अपग्रेड (typecheck + typecheck:ci + 185 यूनिट टेस्ट हरे)। |
|
|
52
55
|
| Node | `^22.19.0 \|\| >=24.0.0` |
|
|
53
56
|
| Platforms | सभी (host plugin; GitHub की ओर outbound network) |
|
|
54
57
|
| Model | कोई भी (static review deterministic है; `reviewMode: "model"` वैकल्पिक है) |
|
|
@@ -212,6 +215,24 @@ scripts/prepare.mjs self-contained git-install build
|
|
|
212
215
|
- [@AraragiEro](https://github.com/AraragiEro) — Plugins settings पेज में GitHub token settings card (#6)।
|
|
213
216
|
- [@alexchenzl](https://github.com/alexchenzl) — DSH Directory पर plugin को सूचीबद्ध करने का निमंत्रण (#5)।
|
|
214
217
|
|
|
218
|
+
## अन्य DSH प्लगइनों के साथ अंतर-संचालनीयता
|
|
219
|
+
|
|
220
|
+
**DSH `0.2.0-rc.2`** (वह रनटाइम जिसके लिए यह README प्रकाशित है) और 2026-10-05 को सर्वे किए गए उच्च-स्टार प्लगइन सेट के विरुद्ध सत्यापित।
|
|
221
|
+
|
|
222
|
+
यह प्लगइन अन्य प्लगइनों में **हस्तक्षेप नहीं करता**, उन उच्च-स्टार प्लगइनों सहित जो व्यापक रूप से इंस्टॉल हैं:
|
|
223
|
+
|
|
224
|
+
- **कोई टूल-नाम टकराव नहीं।** सभी टूल नेमस्पेस युक्त हैं; कोई भी ऐसा नंगा नाम नहीं लेता जो पहले से किसी अंतर्निहित टूल या अन्य प्लगइन का हो।
|
|
225
|
+
- **कोई सर्विस-की टकराव नहीं।** यह कोई सर्विस key प्रदान नहीं करता, इसलिए टकराव संभव नहीं।
|
|
226
|
+
- **कोई स्लॉट टकराव नहीं।** यह कोई क्लाइंट slot key पंजीकृत नहीं करता, इसलिए `shadows-shipped-ui` सीट के लिए प्रतिस्पर्धा नहीं करता।
|
|
227
|
+
- **कोई HTTP रूट टकराव नहीं।** यह कोई `webServer` प्रीफ़िक्स पंजीकृत नहीं करता।
|
|
228
|
+
- **कोई patch-लेयर टकराव नहीं।** बंडल patch केवल अपनी पंक्ति `insert` करता है; कभी किसी अंतर्निहित पंक्ति का `config` ओवरराइड नहीं करता।
|
|
229
|
+
- **कोई वैश्विक परिवर्तन नहीं।** यह प्रोटोटाइप नहीं बदलता, `process.env` नहीं लिखता, और वैश्विक fetch dispatcher प्रतिस्थापित नहीं करता।
|
|
230
|
+
|
|
231
|
+
**साझा ईवेंट लिसनर रचना से ही अहस्तक्षेपी हैं।** यह क्रम-संवेदनशील ईवेंट `tools/pre-execute` को `ctx.on()` से देखता है — Cordis का **ब्रॉडकास्ट** पंजीकरण, जहाँ हर लिसनर चलता है और कोई किसी दूसरे को वंचित नहीं कर सकता। **यहाँ प्रत्येक लिसनर `next()` से डेलिगेट करता है**, इसलिए श्रृंखला कभी शॉर्ट-सर्किट नहीं होती:
|
|
232
|
+
- `tools/pre-execute` — also used by `cc-safety-net` (1576★).
|
|
233
|
+
|
|
234
|
+
स्थैतिक प्रमाण: इस रिपॉज़िटरी पर `dsh-plugin-doctor` के K10–K13 सभी `pass` हैं।
|
|
235
|
+
|
|
215
236
|
## PerryLink DSH Plugin Family
|
|
216
237
|
|
|
217
238
|
This project is one of the **45 DeepSeek Harness plugins** maintained by [PerryLink](https://github.com/PerryLink). If this one helps you, the others likely will too:
|
package/README-pt.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
# dsh-github
|
|
4
4
|
|
|
5
|
+
> Release stamp: `0.7.16` (2026-10-04).
|
|
6
|
+
|
|
5
7
|
**PRs, revisões, issues e CI do GitHub para o DeepSeek Harness — toda gravação aprovada por um humano e o token nunca registrado em log.**
|
|
6
8
|
|
|
7
9
|
*Crie, revise, mescle e pesquise no GitHub a partir do agente, com uma ação composta de CI, um bot de revisão por polling e uma barreira de status-check.*
|
|
@@ -44,11 +46,12 @@
|
|
|
44
46
|
- [Família de plugins DSH da PerryLink](#perrylink-dsh-plugin-family)
|
|
45
47
|
- [Licença](#licença)
|
|
46
48
|
|
|
49
|
+
- [Interoperabilidade com outros plugins do DSH](#interoperabilidade-com-outros-plugins-do-dsh)
|
|
47
50
|
## Compatibilidade
|
|
48
51
|
|
|
49
52
|
| Superfície | Status |
|
|
50
53
|
|---|---|
|
|
51
|
-
| Harness | DeepSeek Harness `dsh-v0.1
|
|
54
|
+
| Harness | DeepSeek Harness `dsh-v0.2.1-alpha.1` (compatibilidade declarada para `>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0 \|\| >=0.1.6-0 <0.2.0 \|\| >=0.1.7-0 <0.2.0`; 0.1.2-rc.1 adaptado em 2026-09-09): o job de revisão passa a pertencer a um `SessionId` puro e a fonte dos avisos usa o kind próprio do plugin `dsh-github` (a união `Agent \| SessionId` do host e o `kind: 'plugin'` genérico deixaram de existir); o cartão de configurações se registra na **página Plugins** (grupo Official, slot `plugins.item`) e renderiza a partir do form entregue por `dsh-client-ui-plugin-manager`, em vez de vincular o removido `ctx.settingsScope`; o driver de CI autoaprova pela costura oficial `ctx.approval.setPolicy`; o bot de revisão pesquisa como job em segundo plano `ctx.jobs` com fallback por temporizador. Atualizado em 2026-09-24 para `0.1.7-rc.2` (typecheck + typecheck:ci + 185 testes unitários verdes). |
|
|
52
55
|
| Node | `^22.19.0 \|\| >=24.0.0` |
|
|
53
56
|
| Plataformas | Todas (plugin host; rede de saída para o GitHub) |
|
|
54
57
|
| Modelo | Qualquer (a revisão estática é determinística; `reviewMode: "model"` é opcional) |
|
|
@@ -221,6 +224,24 @@ Todos os plugins PerryLink podem ser explorados no mercado integrado do DSH Desk
|
|
|
221
224
|
[Apache License 2.0](LICENSE) © 2026 dsh-github contributors
|
|
222
225
|
|
|
223
226
|
|
|
227
|
+
## Interoperabilidade com outros plugins do DSH
|
|
228
|
+
|
|
229
|
+
Verificado contra **DSH `0.2.0-rc.2`** (o runtime para o qual este README é publicado) e o conjunto de plugins com mais estrelas pesquisado em 2026-10-05.
|
|
230
|
+
|
|
231
|
+
Este plugin **não interfere** em outros plugins, incluindo os de mais estrelas:
|
|
232
|
+
|
|
233
|
+
- **Sem colisão de nome de ferramenta.** Todas as ferramentas têm namespace; nenhuma ocupa um nome puro já pertencente a uma ferramenta embutida ou a outro plugin.
|
|
234
|
+
- **Sem colisão de chave de serviço.** Não fornece nenhuma chave de serviço, portanto não pode colidir em uma.
|
|
235
|
+
- **Sem colisão de slot.** Não registra nenhuma chave de slot de cliente, então não disputa um assento `shadows-shipped-ui`.
|
|
236
|
+
- **Sem colisão de rota HTTP.** Não registra nenhum prefixo `webServer`.
|
|
237
|
+
- **Sem colisão na camada de patch.** O patch do bundle apenas faz `insert` da própria linha; nunca sobrescreve o `config` de uma linha embutida.
|
|
238
|
+
- **Sem mutação global.** Não altera protótipos, não reescreve `process.env` nem substitui o dispatcher global de fetch.
|
|
239
|
+
|
|
240
|
+
**Listeners de eventos compartilhados não interferem por construção.** Observa os eventos sensíveis à ordem `tools/pre-execute` com `ctx.on()` — o registro de difusão do Cordis, onde cada listener executa e nenhum pode privar outro do turno. **Todos os listeners aqui delegam via `next()`**, então a cadeia nunca é curto-circuitada:
|
|
241
|
+
- `tools/pre-execute` — also used by `cc-safety-net` (1576★).
|
|
242
|
+
|
|
243
|
+
Evidência estática: `dsh-plugin-doctor` K10–K13 retornam `pass` em todas as verificações deste repositório.
|
|
244
|
+
|
|
224
245
|
## PerryLink DSH Plugin Family
|
|
225
246
|
|
|
226
247
|
This project is one of the **45 DeepSeek Harness plugins** maintained by [PerryLink](https://github.com/PerryLink). If this one helps you, the others likely will too:
|
package/README-zh.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
# dsh-github
|
|
4
4
|
|
|
5
|
+
> Release stamp: `0.7.16` (2026-10-04).
|
|
6
|
+
|
|
5
7
|
**把 GitHub 的 PR、审查、issue 与 CI 接入 DeepSeek Harness —— 每个写操作都经人类审批,token 永不落日志。**
|
|
6
8
|
|
|
7
9
|
*在 agent 中创建、审查、合并与搜索 GitHub,附带 CI 复合动作、轮询式审查机器人与状态检查门禁。*
|
|
@@ -43,6 +45,7 @@
|
|
|
43
45
|
- [目录结构](#目录结构)
|
|
44
46
|
- [主题](#主题)
|
|
45
47
|
- [贡献者](#贡献者)
|
|
48
|
+
- [与其他 DSH 插件的互操作](#与其他-dsh-插件的互操作)
|
|
46
49
|
- [PerryLink DSH Plugin Family](#perrylink-dsh-plugin-family)
|
|
47
50
|
- [许可证](#许可证)
|
|
48
51
|
|
|
@@ -50,7 +53,7 @@
|
|
|
50
53
|
|
|
51
54
|
| 界面 | 状态 |
|
|
52
55
|
|---|---|
|
|
53
|
-
| Harness | DeepSeek Harness `dsh-v0.1
|
|
56
|
+
| Harness | DeepSeek Harness `dsh-v0.2.1-alpha.1`(兼容声明覆盖 `>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0 \|\| >=0.1.6-0 <0.2.0 \|\| >=0.1.7-0 <0.2.0`;0.1.2-rc.1 于 2026-09-09 已适配):评审任务改由裸 `SessionId` 归属、通知来源改为插件自有的 `dsh-github` kind(宿主的 `Agent \| SessionId` 联合与兜底 `kind: 'plugin'` 均已移除);设置卡注册在 **Plugins 页**(Official 组,`plugins.item` 槽),并从 `dsh-client-ui-plugin-manager` 提供的 owner form 渲染,不再绑定已删除的 `ctx.settingsScope`;CI 驱动器通过官方 `ctx.approval.setPolicy` 策略缝自动放行;评审机器人以 `ctx.jobs` 后台任务轮询,并带定时器降级。2026-09-24 升级至 `0.1.7-rc.2`(typecheck + typecheck:ci + 185 项单元测试全绿)。 |
|
|
54
57
|
| Node | `^22.19.0 \|\| >=24.0.0` |
|
|
55
58
|
| Platforms | 全部(host 插件;出站网络访问 GitHub) |
|
|
56
59
|
| Model | 任意(静态审查是确定性的;`reviewMode: "model"` 为可选) |
|
|
@@ -214,6 +217,24 @@ scripts/prepare.mjs self-contained git-install build
|
|
|
214
217
|
- [@AraragiEro](https://github.com/AraragiEro) —— 插件设置页的 GitHub token 设置卡片(#6)。
|
|
215
218
|
- [@alexchenzl](https://github.com/alexchenzl) —— 邀请本插件收录到 DSH Directory(#5)。
|
|
216
219
|
|
|
220
|
+
## 与其他 DSH 插件的互操作
|
|
221
|
+
|
|
222
|
+
已对照 **DSH `0.2.0-rc.2`**(本 README 面向的运行时)与 2026-10-05 实测的高星插件集验证。
|
|
223
|
+
|
|
224
|
+
本插件**不干扰**其他插件,包括广泛安装的高星插件:
|
|
225
|
+
|
|
226
|
+
- **无工具名冲突。** 所有工具都带命名空间,不占用任何已被内置工具或其他插件持有的裸名。
|
|
227
|
+
- **无服务键冲突。** 不提供任何服务键,因此不存在服务键冲突。
|
|
228
|
+
- **无 slot 冲突。** 不注册客户端 slot key,因此不参与 `shadows-shipped-ui` 座位争抢。
|
|
229
|
+
- **无 HTTP 路由冲突。** 不注册任何 `webServer` 前缀。
|
|
230
|
+
- **无 patch 层冲突。** 组合包 patch 只 `insert` 自己那一行,从不覆写内置行的 `config`。
|
|
231
|
+
- **无全局改写。** 不改原型、不改写 `process.env`、不替换全局 fetch dispatcher。
|
|
232
|
+
|
|
233
|
+
**共享事件监听器在构造上就不互相干扰。** 它用 `ctx.on()` 监听顺序敏感事件 `tools/pre-execute` —— Cordis 的**广播**语义:每个监听器都会运行,任何一个都无法饿死其他监听器。**此处每个监听器都通过 `next()` 委托**,因此链条绝不会被短路;改写作用在 `next()` 产出的值上,而不是用它顶替返回:
|
|
234
|
+
- `tools/pre-execute` — also used by `cc-safety-net` (1576★).
|
|
235
|
+
|
|
236
|
+
静态证据:`dsh-plugin-doctor` 的 K10–K13 在本仓全部为 `pass`。
|
|
237
|
+
|
|
217
238
|
## PerryLink DSH Plugin Family
|
|
218
239
|
|
|
219
240
|
This project is one of the **45 DeepSeek Harness plugins** maintained by [PerryLink](https://github.com/PerryLink). If this one helps you, the others likely will too:
|
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
3
|
# dsh-github
|
|
4
|
+
|
|
5
|
+
> Release stamp: `0.7.16` (2026-10-04).
|
|
4
6
|
[](https://gitee.com/perrylink/dsh-github)
|
|
5
7
|
[](https://dshfind.com/plugins/PerryLink/dsh-github?ref=badge)
|
|
6
8
|
[](https://api.securityscorecards.dev/projects/github.com/PerryLink/dsh-github)
|
|
@@ -42,6 +44,7 @@
|
|
|
42
44
|
- [Known limitations](#known-limitations)
|
|
43
45
|
- [Development](#development)
|
|
44
46
|
- [Repository layout](#repository-layout)
|
|
47
|
+
- [Interoperability with other DSH plugins](#interoperability-with-other-dsh-plugins)
|
|
45
48
|
- [Topics](#topics)
|
|
46
49
|
- [Contributors](#contributors)
|
|
47
50
|
- [PerryLink DSH Plugin Family](#perrylink-dsh-plugin-family)
|
|
@@ -51,7 +54,7 @@
|
|
|
51
54
|
|
|
52
55
|
| Surface | Status |
|
|
53
56
|
|---|---|
|
|
54
|
-
| Harness | DeepSeek Harness `dsh-v0.1
|
|
57
|
+
| Harness | DeepSeek Harness `dsh-v0.2.1-alpha.1` (compat declared for `>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0 \|\| >=0.1.6-0 <0.2.0 \|\| >=0.1.7-0 <0.2.0`; 0.1.2-rc.1 adapted 2026-09-09): the review job is owned by a bare `SessionId` and a notice source is the plugin-owned kind `dsh-github` (the host's `Agent \| SessionId` union and its catch-all `kind: 'plugin'` are both gone); the settings card registers on the **Plugins page** (Official group, `plugins.item` slot) and renders from the owner form `dsh-client-ui-plugin-manager` supplies, instead of binding the removed `ctx.settingsScope`; the CI driver auto-approves through the official `ctx.approval.setPolicy` policy seam; the review bot polls as a `ctx.jobs` background job with a timer fallback. Upgraded 2026-09-24 to `0.1.7-rc.2` (typecheck + typecheck:ci + 185 unit tests green). |
|
|
55
58
|
| Node | `^22.19.0 \|\| >=24.0.0` |
|
|
56
59
|
| Platforms | All (host plugin; outbound network to GitHub) |
|
|
57
60
|
| Model | Any (static review is deterministic; `reviewMode: "model"` is optional) |
|
|
@@ -205,6 +208,24 @@ cordis.patch.yml bundle patch (one insert row)
|
|
|
205
208
|
scripts/prepare.mjs self-contained git-install build
|
|
206
209
|
```
|
|
207
210
|
|
|
211
|
+
## Interoperability with other DSH plugins
|
|
212
|
+
|
|
213
|
+
Verified against **DSH `0.2.0-rc.2`** (the runtime this README ships for) and the high-star plugin set surveyed on 2026-10-05.
|
|
214
|
+
|
|
215
|
+
This plugin **does not interfere** with other plugins, including the widely installed high-star ones:
|
|
216
|
+
|
|
217
|
+
- **No tool-name collision.** Every tool is namespaced; no bare name owned by a shipped tool or another plugin is registered.
|
|
218
|
+
- **No service-key collision.** It provides no service key at all, so it cannot collide on one.
|
|
219
|
+
- **No slot collision.** It registers no client slot key, so it cannot contend for a `shadows-shipped-ui` seat.
|
|
220
|
+
- **No HTTP route collision.** It registers no `webServer` prefix.
|
|
221
|
+
- **No patch-layer collision.** The bundle patch only `insert`s its own row; it never overrides a built-in row's `config`.
|
|
222
|
+
- **No global mutation.** It does not patch prototypes, rewrite `process.env`, or replace the global fetch dispatcher.
|
|
223
|
+
|
|
224
|
+
**Shared event listeners are non-interfering by construction.** It observes the ordering-sensitive event `tools/pre-execute` with `ctx.on()` — Cordis's broadcast registration, where every listener runs and none can starve another. **Every listener here delegates through `next()`**, so the chain is never short-circuited, and a mutation is applied to the value `next()` produced rather than returned in its place:
|
|
225
|
+
- `tools/pre-execute` — also used by `cc-safety-net` (1576★).
|
|
226
|
+
|
|
227
|
+
Static evidence: `dsh-plugin-doctor` K10–K13 report `pass` for every check on this repository.
|
|
228
|
+
|
|
208
229
|
## Topics
|
|
209
230
|
|
|
210
231
|
`dsh` · `dsh-plugin` · `deepseek-harness` · `github` · `pull-request` · `code-review` · `issue-tracker`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@perrylink/dsh-github",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.17",
|
|
4
4
|
"description": "Official-grade GitHub CI for DeepSeek Harness: composite action (review PRs / fix CI / report), polling PR review bot with idempotent inline comments, a status-check gate, and approval-gated PR/issue/repo/file tools",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
},
|
|
63
63
|
"engines": {
|
|
64
64
|
"node": "^22.19.0 || >=24.0.0",
|
|
65
|
-
"dsh": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0"
|
|
65
|
+
"dsh": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0"
|
|
66
66
|
},
|
|
67
67
|
"packageManager": "pnpm@11.7.0",
|
|
68
68
|
"dsh": {
|
|
@@ -103,7 +103,8 @@
|
|
|
103
103
|
"filesystem:write"
|
|
104
104
|
],
|
|
105
105
|
"compatibility": {
|
|
106
|
-
"dshVersions": ["0.1.2-rc.1","0.1.5-rc.2","0.1.7-rc.1", "0.1.7-rc.2"
|
|
106
|
+
"dshVersions": ["0.1.2-rc.1","0.1.5-rc.2","0.1.7-rc.1", "0.1.7-rc.2",
|
|
107
|
+
"0.2.1-alpha.1"]
|
|
107
108
|
},
|
|
108
109
|
"capability": {
|
|
109
110
|
"id": "gh-ci",
|
|
@@ -119,23 +120,23 @@
|
|
|
119
120
|
}
|
|
120
121
|
},
|
|
121
122
|
"dependencies": {
|
|
122
|
-
"@deepseek-ai/schemastery": "^3.18.
|
|
123
|
+
"@deepseek-ai/schemastery": "^3.18.5-alpha.1"
|
|
123
124
|
},
|
|
124
125
|
"peerDependencies": {
|
|
125
|
-
"@deepseek-ai/cordis": "^4.0.
|
|
126
|
-
"@deepseek-ai/dsh-agent": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
|
|
127
|
-
"@deepseek-ai/dsh-client-ui-plugin-manager": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
|
|
128
|
-
"@deepseek-ai/dsh-client-ui-primitives": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
|
|
129
|
-
"@deepseek-ai/dsh-client-ui-settings": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
|
|
130
|
-
"@deepseek-ai/dsh-credentials": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
|
|
131
|
-
"@deepseek-ai/dsh-jobs": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
|
|
132
|
-
"@deepseek-ai/dsh-llm": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
|
|
133
|
-
"@deepseek-ai/dsh-session": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
|
|
134
|
-
"@deepseek-ai/dsh-settings": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
|
|
135
|
-
"@deepseek-ai/dsh-subagent": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
|
|
136
|
-
"@deepseek-ai/dsh-tool-jobs": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
|
|
137
|
-
"@deepseek-ai/dsh-tools": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
|
|
138
|
-
"@deepseek-ai/dsh-user-approval": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0",
|
|
126
|
+
"@deepseek-ai/cordis": "^4.0.5-alpha.1",
|
|
127
|
+
"@deepseek-ai/dsh-agent": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
|
|
128
|
+
"@deepseek-ai/dsh-client-ui-plugin-manager": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
|
|
129
|
+
"@deepseek-ai/dsh-client-ui-primitives": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
|
|
130
|
+
"@deepseek-ai/dsh-client-ui-settings": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
|
|
131
|
+
"@deepseek-ai/dsh-credentials": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
|
|
132
|
+
"@deepseek-ai/dsh-jobs": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
|
|
133
|
+
"@deepseek-ai/dsh-llm": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
|
|
134
|
+
"@deepseek-ai/dsh-session": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
|
|
135
|
+
"@deepseek-ai/dsh-settings": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
|
|
136
|
+
"@deepseek-ai/dsh-subagent": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
|
|
137
|
+
"@deepseek-ai/dsh-tool-jobs": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
|
|
138
|
+
"@deepseek-ai/dsh-tools": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
|
|
139
|
+
"@deepseek-ai/dsh-user-approval": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
|
|
139
140
|
"react": "^18.0.0 || ^19.0.0"
|
|
140
141
|
},
|
|
141
142
|
"peerDependenciesMeta": {
|
|
@@ -153,20 +154,20 @@
|
|
|
153
154
|
}
|
|
154
155
|
},
|
|
155
156
|
"devDependencies": {
|
|
156
|
-
"@deepseek-ai/dsh-util-values": "0.1
|
|
157
|
-
"@deepseek-ai/dsh-agent": "0.1
|
|
158
|
-
"@deepseek-ai/dsh-attachment": "0.1
|
|
159
|
-
"@deepseek-ai/cordis": "^4.0.
|
|
160
|
-
"@deepseek-ai/cordis-plugin-loader": "^1.0.
|
|
161
|
-
"@deepseek-ai/dsh-credentials": "0.1
|
|
162
|
-
"@deepseek-ai/dsh-jobs": "0.1
|
|
163
|
-
"@deepseek-ai/dsh-llm": "0.1
|
|
164
|
-
"@deepseek-ai/dsh-session": "0.1
|
|
165
|
-
"@deepseek-ai/dsh-settings": "0.1
|
|
166
|
-
"@deepseek-ai/dsh-subagent": "0.1
|
|
167
|
-
"@deepseek-ai/dsh-tools": "0.1
|
|
168
|
-
"@deepseek-ai/dsh-user-approval": "0.1
|
|
169
|
-
"@deepseek-ai/schemastery": "^3.18.
|
|
157
|
+
"@deepseek-ai/dsh-util-values": "0.2.1-alpha.1",
|
|
158
|
+
"@deepseek-ai/dsh-agent": "0.2.1-alpha.1",
|
|
159
|
+
"@deepseek-ai/dsh-attachment": "0.2.1-alpha.1",
|
|
160
|
+
"@deepseek-ai/cordis": "^4.0.5-alpha.1",
|
|
161
|
+
"@deepseek-ai/cordis-plugin-loader": "^1.0.6-alpha.1",
|
|
162
|
+
"@deepseek-ai/dsh-credentials": "0.2.1-alpha.1",
|
|
163
|
+
"@deepseek-ai/dsh-jobs": "0.2.1-alpha.1",
|
|
164
|
+
"@deepseek-ai/dsh-llm": "0.2.1-alpha.1",
|
|
165
|
+
"@deepseek-ai/dsh-session": "0.2.1-alpha.1",
|
|
166
|
+
"@deepseek-ai/dsh-settings": "0.2.1-alpha.1",
|
|
167
|
+
"@deepseek-ai/dsh-subagent": "0.2.1-alpha.1",
|
|
168
|
+
"@deepseek-ai/dsh-tools": "0.2.1-alpha.1",
|
|
169
|
+
"@deepseek-ai/dsh-user-approval": "0.2.1-alpha.1",
|
|
170
|
+
"@deepseek-ai/schemastery": "^3.18.5-alpha.1",
|
|
170
171
|
"@types/node": "^22.0.0",
|
|
171
172
|
"@types/react": "18.3.31",
|
|
172
173
|
"@vitest/coverage-v8": "3.2.0",
|