@goodandready/dsh-plugin-notify 0.3.1 → 0.3.3

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,22 @@ 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.3
8
+
9
+ ### Fixed
10
+ - The settings card no longer waits for the removed `settingsScope` service. It uses `configForms` on current DeepSeek Harness (#37).
11
+
12
+ ## [0.3.2] - 2026-09-19
13
+
14
+ ### Fixed
15
+ - **Settings reachable again on the plugin's own page**: the current core
16
+ (0.1.6-alpha.2) renders a plugin's configuration page only for entries registered
17
+ in the plugin-list seat `plugins.item` — that is how `dsh-agentrouter` and
18
+ `dsh-agent-orchestrator` show their settings, while the row seat and the legacy card
19
+ alone leave the page without the form. The view-aware card is now registered there
20
+ too (`id: 'plugin-notify'` — the row id from `cordis.patch.yml` — order 40, static
21
+ label); both older seats stay as fallbacks.
22
+
7
23
  ## [0.3.1] - 2026-09-19
8
24
 
9
25
  ### Fixed
package/lib/client.js CHANGED
@@ -500,7 +500,7 @@ window.__ModuleLoader__.load({
500
500
  }
501
501
 
502
502
  const scope = React.useMemo(
503
- () => (ctx && ctx.settingsScope ? ctx.settingsScope.bind({ namespace: NS }) : undefined),
503
+ () => (ctx && ctx.configForms ? ctx.configForms.get(NS) : undefined),
504
504
  [ctx],
505
505
  )
506
506
  const snapshot = React.useSyncExternalStore(
@@ -680,8 +680,17 @@ window.__ModuleLoader__.load({
680
680
  ctx.effect(() => ctx.locale.register(NS, { en, zh }), 'dsh-plugin-notify: dictionaries')
681
681
 
682
682
  try {
683
- // Row seat first (the seat the current core renders), legacy seat kept as a
684
- // fallback for older cores.
683
+ // Plugin-list seat (plugins.item) first: the seat the current core
684
+ // (0.1.6-alpha.2) renders as the plugin's own page with its configuration. The
685
+ // label is a static string on purpose — it is resolved while the page renders,
686
+ // and a locale lookup there would take the whole client batch down with it.
687
+ ctx.slots.inject('plugins.item', () => {
688
+ ctx.slots.register(
689
+ { name: 'plugins.item', id: ROW_ID, order: 40, label: () => 'Notify', locale: NS, inject: () => ({ ctx }) },
690
+ (props) => React.createElement(NotifyCard, { ...props, ctx }),
691
+ )
692
+ })
693
+ // Row seat and the legacy seat kept as fallbacks for older cores.
685
694
  ctx.slots.inject('plugins.row.config', () => {
686
695
  ctx.slots.register(
687
696
  { name: 'plugins.row.config', key: ROW_CONFIG_KEY, locale: NS, order: 40, inject: () => ({ ctx }) },
@@ -699,9 +708,9 @@ window.__ModuleLoader__.load({
699
708
  }
700
709
 
701
710
  let currentSettings = {}
702
- if (ctx.settingsScope) {
711
+ if (ctx.configForms) {
703
712
  try {
704
- const scope = ctx.settingsScope.bind({ namespace: NS })
713
+ const scope = ctx.configForms.get(NS)
705
714
  if (scope && typeof scope.subscribe === 'function') {
706
715
  scope.subscribe(() => {
707
716
  const snap = scope.getSnapshot ? scope.getSnapshot() : null
@@ -728,7 +737,7 @@ window.__ModuleLoader__.load({
728
737
  }
729
738
  }
730
739
 
731
- module.exports = { apply, inject: ['slots', 'locale', 'settingsScope'] }
740
+ module.exports = { apply, inject: ['slots', 'locale', 'configForms'] }
732
741
  return module.exports
733
742
  },
734
743
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goodandready/dsh-plugin-notify",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
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",
@@ -26,7 +26,8 @@
26
26
  "platform": "web",
27
27
  "inject": [
28
28
  "@deepseek-ai/dsh-client-locale",
29
- "@deepseek-ai/dsh-client-ui-settings"
29
+ "@deepseek-ai/dsh-client-ui-settings",
30
+ "@deepseek-ai/dsh-client-ui-slots"
30
31
  ]
31
32
  }
32
33
  },