@goodandready/dsh-clinebot 0.3.13 → 0.3.15
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 +24 -0
- package/lib/client.js +27 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,30 @@ 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.15] - 2026-09-19
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **The settings form now appears on the plugin's own page.** The seat the Plugins
|
|
12
|
+
page really renders as a plugin page with its configuration is a card in the
|
|
13
|
+
plugin list (`plugins.item`) — the page draws the card's one-liner for
|
|
14
|
+
`view: 'summary'` and the entry itself as the body of that page for
|
|
15
|
+
`view: 'page'`. That is how `@goodandready-private/dsh-agentrouter` and
|
|
16
|
+
`@goodandready/dsh-agent-orchestrator` have always shown their settings, while the
|
|
17
|
+
`plugins.row.config` seat alone left the row without a configure control. The card
|
|
18
|
+
is registered with `id: 'dsh-clinebot'`, order 60 and a static label; the row seat
|
|
19
|
+
and the legacy `settings.plugin.item` card stay as fallbacks.
|
|
20
|
+
|
|
21
|
+
## [0.3.14] - 2026-09-19
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
- **The row-seat key is registered under both spellings.** The core keys a row's
|
|
25
|
+
configuration page as `` `${bundle.name}#${rowId}` `` (`rowConfigKey` in
|
|
26
|
+
`dsh-client-ui-plugin-manager`), and `bundle.name` may be either the package name
|
|
27
|
+
(`@goodandready/dsh-clinebot`) or the short bundle name (`dsh-clinebot`) depending
|
|
28
|
+
on how the manager builds its package view. Both keys are now registered for
|
|
29
|
+
`plugins.row.config`, so the row's configure control appears whichever spelling the
|
|
30
|
+
core compares against; the unused entry is inert.
|
|
31
|
+
|
|
8
32
|
## [0.3.13] - 2026-09-19
|
|
9
33
|
|
|
10
34
|
### Fixed
|
package/lib/client.js
CHANGED
|
@@ -1441,12 +1441,17 @@ function apply(ctx) {
|
|
|
1441
1441
|
}
|
|
1442
1442
|
}
|
|
1443
1443
|
|
|
1444
|
-
//
|
|
1445
|
-
|
|
1444
|
+
// The seat the Plugins page actually renders as the plugin's own page with the
|
|
1445
|
+
// settings form: a card in the plugin list (`plugins.item`), exactly how
|
|
1446
|
+
// @goodandready-private/dsh-agentrouter does it. `view: 'summary'` is the card's
|
|
1447
|
+
// one-liner, `view: 'page'` is the body of that page.
|
|
1448
|
+
registerSlotWhenReady('plugins.item', () =>
|
|
1446
1449
|
ctx.slots.register(
|
|
1447
1450
|
{
|
|
1448
|
-
name: 'plugins.
|
|
1449
|
-
|
|
1451
|
+
name: 'plugins.item',
|
|
1452
|
+
id: NS,
|
|
1453
|
+
order: 60,
|
|
1454
|
+
label: () => 'clinebot',
|
|
1450
1455
|
locale: NS,
|
|
1451
1456
|
inject: () => ({ ctx }),
|
|
1452
1457
|
},
|
|
@@ -1454,6 +1459,24 @@ function apply(ctx) {
|
|
|
1454
1459
|
)
|
|
1455
1460
|
)
|
|
1456
1461
|
|
|
1462
|
+
// Row seat first (the seat the current core renders), legacy seat after it.
|
|
1463
|
+
// The core keys the seat as `<bundle name>#<row id>`; `bundle.name` may be the
|
|
1464
|
+
// package name or the short bundle name depending on the manager's view, so both
|
|
1465
|
+
// spellings are registered — the unused one is inert.
|
|
1466
|
+
for (const key of [ROW_CONFIG_KEY, ROW_ID + '#' + ROW_ID]) {
|
|
1467
|
+
registerSlotWhenReady('plugins.row.config', () =>
|
|
1468
|
+
ctx.slots.register(
|
|
1469
|
+
{
|
|
1470
|
+
name: 'plugins.row.config',
|
|
1471
|
+
key,
|
|
1472
|
+
locale: NS,
|
|
1473
|
+
inject: () => ({ ctx }),
|
|
1474
|
+
},
|
|
1475
|
+
(props) => React.createElement(ErrorBoundary, null, React.createElement(PluginCard, { ...props, ctx: (props && props.ctx) || ctx }))
|
|
1476
|
+
)
|
|
1477
|
+
)
|
|
1478
|
+
}
|
|
1479
|
+
|
|
1457
1480
|
registerSlotWhenReady('settings.plugin.item', () =>
|
|
1458
1481
|
ctx.slots.register(
|
|
1459
1482
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goodandready/dsh-clinebot",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.15",
|
|
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",
|