@goodandready/dsh-plugin-notify 0.3.0 → 0.3.1
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/CHANGELOG.md +13 -0
- package/README.md +2 -1
- package/README.ru.md +1 -0
- package/README.zh.md +1 -0
- package/lib/client.js +23 -3
- package/package.json +13 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,19 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [0.3.1] - 2026-09-19
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
- **Settings reachable again**: the card registered into `settings.plugin.item`, a
|
|
11
|
+
slot the current DSH core (0.1.6-alpha.2) no longer renders, so the plugin's
|
|
12
|
+
settings were unreachable. The surface now registers into the Plugins page row
|
|
13
|
+
seat `plugins.row.config`, keyed `@goodandready/dsh-plugin-notify#plugin-notify`
|
|
14
|
+
— the row id `cordis.patch.yml` declares is `plugin-notify`, not the directory
|
|
15
|
+
name. The plugin's row gains a configure control whose page is the settings form
|
|
16
|
+
(`view: 'page'`, open and without our card chrome — the host page draws the title,
|
|
17
|
+
icon, crumb and padding) plus a one-line state for `view: 'summary'`. The legacy
|
|
18
|
+
seat stays registered as a fallback for older cores.
|
|
19
|
+
|
|
7
20
|
## [0.3.0] - 2026-09-18
|
|
8
21
|
|
|
9
22
|
### Added
|
package/README.md
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
<h3>Remote IM webhooks for turn done, errors, and approval waits</h3>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
+
<a href="https://www.npmjs.com/package/@goodandready/dsh-plugin-notify"><img src="https://img.shields.io/npm/v/@goodandready/dsh-plugin-notify.svg?style=for-the-badge&color=6366f1&labelColor=1e1b4b" alt="npm version"></a>
|
|
8
9
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-10b981.svg?style=for-the-badge&labelColor=064e3b" alt="license"></a>
|
|
9
10
|
<a href="https://github.com/topics/dsh-plugin"><img src="https://img.shields.io/badge/DSH-Plugin-8b5cf6.svg?style=for-the-badge&labelColor=2e1065" alt="DSH Plugin"></a>
|
|
10
11
|
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node-20%2B-f59e0b.svg?style=for-the-badge&labelColor=451a03" alt="Node version"></a>
|
|
@@ -88,7 +89,7 @@ graph TD
|
|
|
88
89
|
|
|
89
90
|
## Install
|
|
90
91
|
|
|
91
|
-
|
|
92
|
+
Install via the DSH web profile:
|
|
92
93
|
|
|
93
94
|
```sh
|
|
94
95
|
dsh plugin --profile web add @goodandready/dsh-plugin-notify
|
package/README.ru.md
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
<h3>Удалённые IM-webhook уведомления о завершении хода, ошибке и ожидании approval</h3>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
+
<a href="https://www.npmjs.com/package/@goodandready/dsh-plugin-notify"><img src="https://img.shields.io/npm/v/@goodandready/dsh-plugin-notify.svg?style=for-the-badge&color=6366f1&labelColor=1e1b4b" alt="npm version"></a>
|
|
8
9
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-10b981.svg?style=for-the-badge&labelColor=064e3b" alt="license"></a>
|
|
9
10
|
<a href="https://github.com/topics/dsh-plugin"><img src="https://img.shields.io/badge/DSH-Plugin-8b5cf6.svg?style=for-the-badge&labelColor=2e1065" alt="DSH Plugin"></a>
|
|
10
11
|
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node-20%2B-f59e0b.svg?style=for-the-badge&labelColor=451a03" alt="Node version"></a>
|
package/README.zh.md
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
<h3>回合完成、出错、等待审批时发送远程 IM Webhook 通知</h3>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
+
<a href="https://www.npmjs.com/package/@goodandready/dsh-plugin-notify"><img src="https://img.shields.io/npm/v/@goodandready/dsh-plugin-notify.svg?style=for-the-badge&color=6366f1&labelColor=1e1b4b" alt="npm version"></a>
|
|
8
9
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-10b981.svg?style=for-the-badge&labelColor=064e3b" alt="license"></a>
|
|
9
10
|
<a href="https://github.com/topics/dsh-plugin"><img src="https://img.shields.io/badge/DSH-Plugin-8b5cf6.svg?style=for-the-badge&labelColor=2e1065" alt="DSH Plugin"></a>
|
|
10
11
|
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node-20%2B-f59e0b.svg?style=for-the-badge&labelColor=451a03" alt="Node version"></a>
|
package/lib/client.js
CHANGED
|
@@ -4,6 +4,11 @@ window.__ModuleLoader__.load({
|
|
|
4
4
|
var module = { exports: {} }
|
|
5
5
|
const React = require('react')
|
|
6
6
|
const NS = '@goodandready/dsh-plugin-notify'
|
|
7
|
+
// Plugins page row seat (DSH 0.1.6-alpha.2): key = '<package name>#<row id>'.
|
|
8
|
+
// The row id declared by cordis.patch.yml is 'plugin-notify' (not the folder name).
|
|
9
|
+
const PKG = '@goodandready/dsh-plugin-notify'
|
|
10
|
+
const ROW_ID = 'plugin-notify'
|
|
11
|
+
const ROW_CONFIG_KEY = PKG + '#' + ROW_ID
|
|
7
12
|
const CHANNELS = ['feishu', 'wecom', 'dingtalk', 'slack', 'discord', 'custom']
|
|
8
13
|
|
|
9
14
|
const en = {
|
|
@@ -574,8 +579,15 @@ window.__ModuleLoader__.load({
|
|
|
574
579
|
: null,
|
|
575
580
|
)
|
|
576
581
|
|
|
577
|
-
|
|
578
|
-
|
|
582
|
+
// Row seat (plugins.row.config): the host page draws title/icon/crumb and the
|
|
583
|
+
// padding, so the summary is a one-liner and the page drops our card chrome.
|
|
584
|
+
if (props && props.view === 'summary') {
|
|
585
|
+
return React.createElement('span', { className: 'pn-sub' }, t('subtitle'))
|
|
586
|
+
}
|
|
587
|
+
const page = !!(props && props.view === 'page')
|
|
588
|
+
|
|
589
|
+
return React.createElement(page ? 'div' : 'li', { className: page ? 'pn-page' : 'pn-card' },
|
|
590
|
+
React.createElement('button', { type: 'button', className: 'pn-head', style: page ? { display: 'none' } : undefined, 'aria-expanded': page ? true : open, onClick: () => setOpen((v) => !v) },
|
|
579
591
|
React.createElement('span', { style: { display: 'flex', flexDirection: 'column' } },
|
|
580
592
|
React.createElement('span', { className: 'pn-title' }, t('title')),
|
|
581
593
|
React.createElement('span', { className: 'pn-sub' }, t('subtitle')),
|
|
@@ -668,6 +680,14 @@ window.__ModuleLoader__.load({
|
|
|
668
680
|
ctx.effect(() => ctx.locale.register(NS, { en, zh }), 'dsh-plugin-notify: dictionaries')
|
|
669
681
|
|
|
670
682
|
try {
|
|
683
|
+
// Row seat first (the seat the current core renders), legacy seat kept as a
|
|
684
|
+
// fallback for older cores.
|
|
685
|
+
ctx.slots.inject('plugins.row.config', () => {
|
|
686
|
+
ctx.slots.register(
|
|
687
|
+
{ name: 'plugins.row.config', key: ROW_CONFIG_KEY, locale: NS, order: 40, inject: () => ({ ctx }) },
|
|
688
|
+
(props) => React.createElement(NotifyCard, { ...props, ctx }),
|
|
689
|
+
)
|
|
690
|
+
})
|
|
671
691
|
ctx.slots.inject('settings.plugin.item', () => {
|
|
672
692
|
ctx.slots.register(
|
|
673
693
|
{ name: 'settings.plugin.item', key: NS, locale: NS, order: 40, inject: () => ({ ctx }) },
|
|
@@ -675,7 +695,7 @@ window.__ModuleLoader__.load({
|
|
|
675
695
|
)
|
|
676
696
|
})
|
|
677
697
|
} catch (e) {
|
|
678
|
-
console.warn('[dsh-plugin-notify] settings
|
|
698
|
+
console.warn('[dsh-plugin-notify] settings seats failed', e)
|
|
679
699
|
}
|
|
680
700
|
|
|
681
701
|
let currentSettings = {}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goodandready/dsh-plugin-notify",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "DSH plugin: audio chimes, cross-session toasts, desktop push, and IM webhooks for turn completion, errors, and approvals.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -56,5 +56,16 @@
|
|
|
56
56
|
},
|
|
57
57
|
"publishConfig": {
|
|
58
58
|
"access": "public"
|
|
59
|
-
}
|
|
59
|
+
},
|
|
60
|
+
"author": "GooDAnDReaDY <support@goodandready.app>",
|
|
61
|
+
"keywords": [
|
|
62
|
+
"dsh",
|
|
63
|
+
"dsh-plugin",
|
|
64
|
+
"deepseek-harness",
|
|
65
|
+
"notifications",
|
|
66
|
+
"webhooks",
|
|
67
|
+
"desktop-push",
|
|
68
|
+
"audio-chimes",
|
|
69
|
+
"toasts"
|
|
70
|
+
]
|
|
60
71
|
}
|