@goodandready/dsh-key-rotation 0.8.14 → 0.8.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 CHANGED
@@ -3,6 +3,19 @@
3
3
  All notable changes to `@goodandready/dsh-key-rotation` are documented here.
4
4
  User-facing feature notes also appear in README (en is source of truth).
5
5
 
6
+ ## 0.8.15 - 2026-09-20
7
+
8
+ ### Fixed
9
+ - **Settings on the plugin's own page**: the plugin-list seat `plugins.item` is the one
10
+ the current core (0.1.6-alpha.2) renders as the plugin's page with its configuration;
11
+ the row seat alone leaves the page without the form. `KeyRotationCard` is now
12
+ registered there too (`id: 'dsh-key-rotation'`, order 60) with a **static** label —
13
+ the label is resolved while the page renders, and a locale lookup there aborts the
14
+ whole client batch. The row seat and the legacy `settings.plugin.item` card stay as
15
+ fallbacks.
16
+ - The authoring test no longer forbids every hardcoded label: it now requires the
17
+ list-seat label to be static while the card body keeps using `t(...)`.
18
+
6
19
  ## 0.8.14 - 2026-09-19
7
20
 
8
21
  ### Fixed
package/lib/client.js CHANGED
@@ -1815,8 +1815,17 @@ window.__ModuleLoader__.load({
1815
1815
  }
1816
1816
  // #275: card only — no top-level sidebar row. The host sidebar is a
1817
1817
  // shared flat list; a duplicate row wastes a slot and confuses Settings.
1818
- // Row seat first (the seat the current core renders), legacy seat after it.
1818
+ // Plugin-list seat (plugins.item) first: it is what the current core
1819
+ // (0.1.6-alpha.2) renders as the plugin's own page with its configuration. The
1820
+ // label is a static string on purpose — it is resolved while the page renders,
1821
+ // and a locale lookup there would take the whole client batch down with it.
1819
1822
  try {
1823
+ ctx.slots.inject('plugins.item', () =>
1824
+ ctx.slots.register(
1825
+ { name: 'plugins.item', id: ROW_ID, order: 60, label: () => 'Key Rotation', locale: NS, inject: () => ({ ctx }) },
1826
+ KeyRotationCard,
1827
+ ));
1828
+ // Row seat and the legacy seat stay as fallbacks.
1820
1829
  ctx.slots.inject('plugins.row.config', () =>
1821
1830
  ctx.slots.register(
1822
1831
  { name: 'plugins.row.config', key: ROW_CONFIG_KEY, locale: NS, inject: () => ({ ctx }) },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goodandready/dsh-key-rotation",
3
- "version": "0.8.14",
3
+ "version": "0.8.15",
4
4
  "packageManager": "pnpm@10.33.2",
5
5
  "description": "Per-provider API key rotation for DeepSeek Harness: a key pool per provider, auto-created clone routes, and switching to the next key on quota/rate-limit errors. Includes a Settings section (Key Rotation) to edit the key pools, cooldown and switch codes.",
6
6
  "keywords": [