@goodandready/dsh-clinebot 0.3.18 → 0.3.19

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
@@ -5,6 +5,11 @@ All notable changes to `@goodandready/dsh-clinebot` will be documented in this f
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## 0.3.19
9
+
10
+ ### Fixed
11
+ - Settings no longer wait on the removed settingsScope service. The client uses configForms (#62).
12
+
8
13
  ## [0.3.18] - 2026-09-22
9
14
 
10
15
  ### Added
package/lib/client.js CHANGED
@@ -839,10 +839,10 @@ function SettingsPage(props) {
839
839
  const t = props?.t || makeT(en, en)
840
840
 
841
841
  const scope = React.useMemo(() => {
842
- const s = (ctx?.get && ctx.get('lanSettings')) || ctx?.settingsScope
843
- if (!s?.bind) return undefined
842
+ const s = (ctx?.get && ctx.get('lanSettings')) || ctx?.configForms
843
+ if (!s?.get) return undefined
844
844
  try {
845
- return s.bind({ namespace: NS })
845
+ return s.get(NS)
846
846
  } catch (_) {
847
847
  return undefined
848
848
  }
@@ -1371,7 +1371,7 @@ function PluginCard(props) {
1371
1371
  function refreshMirrorUntilVisible(ctx) {
1372
1372
  const visible = () => {
1373
1373
  try {
1374
- const s = (ctx?.get && ctx.get('lanSettings')) || ctx?.settingsScope
1374
+ const s = (ctx?.get && ctx.get('lanSettings')) || ctx?.configForms
1375
1375
  const view = s?.describe?.()?.getSnapshot?.()?.view
1376
1376
  return !!view && Array.isArray(view.namespaces) && view.namespaces.some((row) => row.ns === NS)
1377
1377
  } catch (_) {
@@ -1384,7 +1384,7 @@ function refreshMirrorUntilVisible(ctx) {
1384
1384
  if (visible() || tries >= 15) { clearInterval(timer); return }
1385
1385
  tries += 1
1386
1386
  try {
1387
- const s = (ctx?.get && ctx.get('lanSettings')) || ctx?.settingsScope
1387
+ const s = (ctx?.get && ctx.get('lanSettings')) || ctx?.configForms
1388
1388
  s?.describe?.()?.load?.()
1389
1389
  } catch (e) {
1390
1390
  console.debug?.('[dsh-clinebot] Polling settings mirror:', e)
@@ -1494,7 +1494,7 @@ function apply(ctx) {
1494
1494
  )
1495
1495
  }
1496
1496
 
1497
- module.exports = { apply, inject: ['slots', 'locale', 'settingsScope'] }
1497
+ module.exports = { apply, inject: ['slots', 'locale', 'configForms'] }
1498
1498
 
1499
1499
  return module.exports
1500
1500
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goodandready/dsh-clinebot",
3
- "version": "0.3.18",
3
+ "version": "0.3.19",
4
4
  "description": "DeepSeek Harness companion for ClineBot / ClinePass: dynamic subscription models sync, quota exhaustion warnings, session metrics, dedicated settings page, live usage limits, and /cline slash-command.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -49,7 +49,11 @@
49
49
  },
50
50
  "client": {
51
51
  "platform": "web",
52
- "inject": []
52
+ "inject": [
53
+ "@deepseek-ai/dsh-client-ui-slots",
54
+ "@deepseek-ai/dsh-client-locale",
55
+ "@deepseek-ai/dsh-client-ui-settings"
56
+ ]
53
57
  }
54
58
  },
55
59
  "peerDependencies": {