@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 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
- This package is private (GitHub Packages). After you have registry access:
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
- return React.createElement('li', { className: 'pn-card' },
578
- React.createElement('button', { type: 'button', className: 'pn-head', 'aria-expanded': open, onClick: () => setOpen((v) => !v) },
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.plugin.item failed', e)
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.0",
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
  }