@goodandready/dsh-key-rotation 0.8.34 → 0.8.36

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
@@ -1,8 +1,32 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.8.36
4
+
5
+ ### Fixed
6
+ - **Peer gate on DSH 0.2.0-rc.1** (#58): DSH skips a profile bundle whose `peerDependencies` exclude the running version, so this plugin was absent from the profile with no error in the UI. Every `@deepseek-ai/dsh-*` peer now names both the 0.1.7-rc.2 and 0.2.0-rc.1 lines, because semver does not admit a prerelease of the next minor into a range that does not name it.
7
+
3
8
  All notable changes to `@goodandready/dsh-key-rotation` are documented here.
4
9
  User-facing feature notes also appear in README (en is source of truth).
5
10
 
11
+ ## 0.8.35 - 2026-09-28
12
+
13
+ ### Refactored & Architecture
14
+ - **Frontend Modularization (`lib/client-src/`) (#399, PR #400)**:
15
+ - Decomposed monolithic `lib/client.js` (~152 KiB, 2,691 lines) into 8 clean, domain-focused fragments under `lib/client-src/`:
16
+ - `00-header.js`: Module loader entry, requires, scoped CSS injection.
17
+ - `10-locales.js`: English (`en`) and Chinese (`zh`) translation dictionaries, error boundary, and helper constants.
18
+ - `20-hooks.js`: `useRotationStatus` and `useProbeCache` smart hooks.
19
+ - `30-utils.js`: Formatting utilities, CSS stylesheet, and dynamic locale resolver.
20
+ - `40-components.js`: Micro-components, JSON diff/patch operators, quota utilities, and pool validation.
21
+ - `50-card-main.js`: `KeyRotationSection` main settings surface and live telemetry controls.
22
+ - `60-header-chip.js`: `KeyRotationHeaderChip` session header status widget.
23
+ - `90-apply.js`: Plugin apply lifecycle, slot registrations, and internals exposure.
24
+ - Added deterministic zero-dependency Node build script `scripts/build-client.mjs` matching sister plugin standards (`dsh-cron`).
25
+ - Integrated `build:client` and `pretest` lifecycle triggers into `package.json`.
26
+ - Excluded `lib/client-src/` from distributed npm package tarballs via `files: ["lib/*.js", ...]`.
27
+ - Fixed misplaced updater translation keys, moving them cleanly inside `en` and `zh` dictionaries.
28
+ - Added automated CI regression test `test/build-client.test.mjs`.
29
+
6
30
  ## 0.8.34 - 2026-09-28
7
31
 
8
32
  ### Security & Hardening
package/lib/client.js CHANGED
@@ -209,9 +209,17 @@ window.__ModuleLoader__.load({
209
209
  proactiveGuardHint: 'Pre-emptively pause keys when remaining quota or Retry-After header indicates limit before hitting 429',
210
210
  selfHealingLabel: 'Auto-Unbreak Interval (min)',
211
211
  selfHealingHint: 'Periodic free model check to revive broken keys (0 to disable)',
212
+ updateCheck: 'Check for updates',
213
+ updateAvailable: 'Update available',
214
+ updateNone: 'Plugin is up to date',
215
+ updateRun: 'Update now',
216
+ updateRestart: 'Update installed. Restart DSH to load the new version.',
217
+ updateRunning: 'Updating…',
218
+ updateFailed: 'Update failed',
219
+ currentVersion: 'Current version',
220
+ latestVersion: 'Latest version',
212
221
  };
213
222
 
214
-
215
223
  const zh = {
216
224
  title: '密钥轮换',
217
225
  'header.title': '密钥轮换与故障转移',
@@ -382,6 +390,15 @@ window.__ModuleLoader__.load({
382
390
  proactiveGuardHint: '当响应中的剩余配额或 Retry-After 头提示即将超限时,预先冷却密钥以防触发 429',
383
391
  selfHealingLabel: '自愈检查间隔 (分钟)',
384
392
  selfHealingHint: '定期轻量探测以自动恢复损坏密钥 (0 为禁用)',
393
+ updateCheck: '检查更新',
394
+ updateAvailable: '有可用更新',
395
+ updateNone: '插件已是最新版本',
396
+ updateRun: '立即更新',
397
+ updateRestart: '更新已安装。请重启 DSH 以加载新版本。',
398
+ updateRunning: '更新中…',
399
+ updateFailed: '更新失败',
400
+ currentVersion: '当前版本',
401
+ latestVersion: '最新版本',
385
402
  };
386
403
 
387
404
  // Codes worth switching on. Host list is DEFAULT_SWITCH_CODES; config may
@@ -2668,24 +2685,4 @@ window.__ModuleLoader__.load({
2668
2685
  }
2669
2686
  return module.exports;
2670
2687
  },
2671
- updateCheck: 'Check for updates',
2672
- updateAvailable: 'Update available',
2673
- updateNone: 'Plugin is up to date',
2674
- updateRun: 'Update now',
2675
- updateRestart: 'Update installed. Restart DSH to load the new version.',
2676
- updateRunning: 'Updating…',
2677
- updateFailed: 'Update failed',
2678
- currentVersion: 'Current version',
2679
- latestVersion: 'Latest version',
2680
-
2681
- updateCheck: '检查更新',
2682
- updateAvailable: '有可用更新',
2683
- updateNone: '插件已是最新版本',
2684
- updateRun: '立即更新',
2685
- updateRestart: '更新已安装。请重启 DSH 以加载新版本。',
2686
- updateRunning: '更新中…',
2687
- updateFailed: '更新失败',
2688
- currentVersion: '当前版本',
2689
- latestVersion: '最新版本',
2690
-
2691
2688
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goodandready/dsh-key-rotation",
3
- "version": "0.8.34",
3
+ "version": "0.8.36",
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": [
@@ -30,7 +30,7 @@
30
30
  "./cordis.patch.yml": "./cordis.patch.yml"
31
31
  },
32
32
  "files": [
33
- "lib",
33
+ "lib/*.js",
34
34
  "cordis.patch.yml",
35
35
  "README.md",
36
36
  "README.zh.md",
@@ -58,12 +58,14 @@
58
58
  "peerDependencies": {
59
59
  "@deepseek-ai/cordis": "^4.0.1",
60
60
  "@deepseek-ai/schemastery": "^3.18.1",
61
- "@deepseek-ai/dsh-llm": "^0.1.0-rc.6"
61
+ "@deepseek-ai/dsh-llm": "^0.1.7-rc.2 || ^0.2.0-rc.1"
62
62
  },
63
63
  "scripts": {
64
64
  "test": "node tools/test.mjs",
65
65
  "test:core": "node tools/test.mjs --core",
66
- "check": "node tools/check.mjs"
66
+ "check": "node tools/check.mjs",
67
+ "build:client": "node scripts/build-client.mjs",
68
+ "pretest": "node scripts/build-client.mjs"
67
69
  },
68
70
  "devDependencies": {
69
71
  "react": "18.3.1",