@reumbra/forge 0.3.7 → 0.3.8

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.
@@ -4,13 +4,17 @@ export declare function enablePlugin(pluginName: string): void;
4
4
  export declare function disablePlugin(pluginName: string): void;
5
5
  export declare function isPluginEnabled(pluginName: string): boolean;
6
6
  /**
7
- * Remove stale plugin data from Claude Code's internal cache.
7
+ * Remove stale plugin data from Claude Code's internal state.
8
8
  *
9
9
  * After `forge install/update`, the marketplace has the new version, but
10
- * Claude Code may still load the old version from its cache. This function:
10
+ * Claude Code may still load the old version. This function clears all
11
+ * three layers of Claude Code's plugin state:
11
12
  * 1. Removes the plugin entry from `installed_plugins.json` so Claude Code
12
13
  * treats the plugin as newly enabled on next restart.
13
- * 2. Deletes all cached version directories under `cache/reumbra/<plugin>/`
14
+ * 2. Deletes cached version directories under `cache/reumbra/<plugin>/`
14
15
  * so Claude Code re-copies from the updated marketplace.
16
+ * 3. Deletes the "active copy" at `~/.claude/plugins/<plugin>/` which
17
+ * takes priority over cache — without this, Claude Code loads the
18
+ * stale active copy and never checks cache for newer versions.
15
19
  */
16
20
  export declare function invalidatePluginCache(pluginName: string): void;
@@ -1,6 +1,6 @@
1
1
  import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
2
2
  import { dirname, join } from "node:path";
3
- import { claudeInstalledPluginsPath, claudeKnownMarketplacesPath, claudePluginCacheDir, claudeSettingsPath, MARKETPLACE_DIR, } from "./paths.js";
3
+ import { claudeInstalledPluginsPath, claudeKnownMarketplacesPath, claudePluginCacheDir, claudePluginDir, claudeSettingsPath, MARKETPLACE_DIR, } from "./paths.js";
4
4
  const MARKETPLACE_NAME = "reumbra";
5
5
  // --- known_marketplaces.json ---
6
6
  export function registerMarketplace() {
@@ -57,14 +57,18 @@ export function isPluginEnabled(pluginName) {
57
57
  }
58
58
  // --- cache invalidation ---
59
59
  /**
60
- * Remove stale plugin data from Claude Code's internal cache.
60
+ * Remove stale plugin data from Claude Code's internal state.
61
61
  *
62
62
  * After `forge install/update`, the marketplace has the new version, but
63
- * Claude Code may still load the old version from its cache. This function:
63
+ * Claude Code may still load the old version. This function clears all
64
+ * three layers of Claude Code's plugin state:
64
65
  * 1. Removes the plugin entry from `installed_plugins.json` so Claude Code
65
66
  * treats the plugin as newly enabled on next restart.
66
- * 2. Deletes all cached version directories under `cache/reumbra/<plugin>/`
67
+ * 2. Deletes cached version directories under `cache/reumbra/<plugin>/`
67
68
  * so Claude Code re-copies from the updated marketplace.
69
+ * 3. Deletes the "active copy" at `~/.claude/plugins/<plugin>/` which
70
+ * takes priority over cache — without this, Claude Code loads the
71
+ * stale active copy and never checks cache for newer versions.
68
72
  */
69
73
  export function invalidatePluginCache(pluginName) {
70
74
  // 1. Remove entry from installed_plugins.json
@@ -82,6 +86,11 @@ export function invalidatePluginCache(pluginName) {
82
86
  if (existsSync(cacheDir)) {
83
87
  rmSync(cacheDir, { recursive: true, force: true });
84
88
  }
89
+ // 3. Remove stale "active copy" (highest priority in Claude Code's loading)
90
+ const activeCopy = join(claudePluginDir(), pluginName);
91
+ if (existsSync(activeCopy)) {
92
+ rmSync(activeCopy, { recursive: true, force: true });
93
+ }
85
94
  }
86
95
  // --- JSON helpers ---
87
96
  function readJsonSafe(filePath, fallback) {
@@ -1 +1 @@
1
- {"version":3,"file":"claude-integration.js","sourceRoot":"","sources":["../../src/lib/claude-integration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-integration.js","sourceRoot":"","sources":["../../src/lib/claude-integration.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reumbra/forge",
3
- "version": "0.3.7",
3
+ "version": "0.3.8",
4
4
  "description": "CLI for installing and managing Forge plugins for Claude Code",
5
5
  "type": "module",
6
6
  "bin": {