@theglitchking/persistent-planning 3.4.1 → 3.4.2

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.
@@ -6,13 +6,13 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Official marketplace for persistent-planning - Persistent markdown-based planning for Claude Code. Context engineering pattern with task directories, progress tracking, and working memory that persists across sessions.",
9
- "version": "3.4.1"
9
+ "version": "3.4.2"
10
10
  },
11
11
  "plugins": [
12
12
  {
13
13
  "name": "persistent-planning",
14
14
  "description": "Persistent markdown-based planning for Claude Code. Uses on-disk markdown files as working memory for planning, progress tracking, and knowledge storage. Plans persist across sessions and support multiple concurrent tasks.",
15
- "version": "3.4.1",
15
+ "version": "3.4.2",
16
16
  "author": {
17
17
  "name": "TheGlitchKing"
18
18
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "persistent-planning",
3
- "version": "3.4.1",
3
+ "version": "3.4.2",
4
4
  "description": "Persistent markdown-based planning with task directories, progress tracking, and context engineering for multi-step Claude Code workflows",
5
5
  "author": {
6
6
  "name": "TheGlitchKing"
package/CHANGELOG.md CHANGED
@@ -2,6 +2,39 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [3.4.2] - 2026-09-05
6
+
7
+ ### Changed — the local `update` guard moves upstream into the runtime
8
+
9
+ 3.4.0 added a `preAction` guard in `bin/persistent-planning.js` because the
10
+ runtime's `update` resolved installation state from `<cwd>/node_modules` and
11
+ `CLAUDE_PLUGIN_ROOT` only, found neither in a marketplace-only install, and
12
+ exited 0 after an `npm update` that touched nothing. The guard worked, but it
13
+ was a workaround living in one plugin while every sibling stayed broken —
14
+ babel-fish#17 was the same defect reported against babel-fish.
15
+
16
+ Fixed properly in `@theglitchking/claude-plugin-runtime` 0.1.1, which this
17
+ release requires. `resolveInstall()` there probes npm dep → `CLAUDE_PLUGIN_ROOT`
18
+ → the marketplace record in `~/.claude/plugins/installed_plugins.json`, so the
19
+ 26-line guard is deleted rather than reimplemented.
20
+
21
+ The result is strictly better than the guard it replaces. Previously a
22
+ marketplace install satisfied the guard and fell through to a no-op `npm update`
23
+ that exited 0; now it is recognised, named by path, and refused with a pointer
24
+ at `/plugin` — the only thing that can actually update a plugin-cache copy.
25
+
26
+ The dependency floor is `^0.1.1`, not `^0.1.0`: the shared plugin dep tree at
27
+ `~/.claude/plugins/npm-cache` pins the runtime at 0.1.0 in its lockfile, and
28
+ 0.1.0 still satisfies `^0.1.0`, so the broken copy would have survived.
29
+
30
+ ### Fixed — the CLI test depended on the developer's own machine
31
+
32
+ `tests/run.sh` ran `update` in a temp workspace but inherited the real `$HOME`,
33
+ so once the runtime learned to read `~/.claude/plugins/installed_plugins.json`
34
+ the assertion passed or failed depending on whether the person running it
35
+ happened to have the plugin installed. `HOME` is now overridden, and the
36
+ marketplace branch is asserted against a fixture rather than a machine.
37
+
5
38
  ## [3.4.1] - 2026-09-04
6
39
 
7
40
  ### Fixed — the SessionStart hook could not survive a missing runtime (#18)
@@ -55,32 +55,6 @@ program
55
55
  .description("Persistent markdown-based planning for Claude Code.")
56
56
  .version(version);
57
57
 
58
- // The runtime's `update` resolves the installed version, finds none in a
59
- // marketplace-only install, prints "Current: (not installed) / Now: (not installed)"
60
- // and exits 0 -- a clean success for a no-op. Fail before it gets that far, and say
61
- // where we looked. Same defect as runRelink's missing third probe (issue #10, fix #4).
62
- // Deliberately NOT including the package this CLI runs from: under
63
- // `npx --no @theglitchking/persistent-planning update` that copy always exists, which
64
- // is what let the original bug report see a clean exit 0 for a no-op. Only a *managed*
65
- // install -- a project dependency or a marketplace plugin root -- is updatable.
66
- function installCandidates(cwd) {
67
- const out = [join(cwd, "node_modules", "@theglitchking", "persistent-planning", "package.json")];
68
- if (process.env.CLAUDE_PLUGIN_ROOT) out.push(join(process.env.CLAUDE_PLUGIN_ROOT, "package.json"));
69
- return out;
70
- }
71
-
72
- program.hook("preAction", (_thisCmd, actionCmd) => {
73
- if (actionCmd.name() !== "update") return;
74
- const candidates = installCandidates(process.cwd());
75
- if (candidates.some((p) => existsSync(p))) return;
76
- console.error("update failed: no managed install of @theglitchking/persistent-planning found.");
77
- console.error("Looked in:");
78
- for (const p of candidates) console.error(` ${p}`);
79
- console.error("\nInstall it with `npm i -D @theglitchking/persistent-planning`,");
80
- console.error("or update the marketplace plugin with `/plugin` inside Claude Code.");
81
- process.exit(1);
82
- });
83
-
84
58
  registerUpdateCommands(program, {
85
59
  packageName: PKG,
86
60
  pluginName: "persistent-planning",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theglitchking/persistent-planning",
3
- "version": "3.4.1",
3
+ "version": "3.4.2",
4
4
  "description": "Persistent markdown-based planning with task directories, progress tracking, and context engineering for multi-step Claude Code workflows",
5
5
  "type": "module",
6
6
  "bin": {
@@ -55,7 +55,7 @@
55
55
  },
56
56
  "homepage": "https://github.com/TheGlitchKing/persistent-planning#readme",
57
57
  "dependencies": {
58
- "@theglitchking/claude-plugin-runtime": "^0.1.0",
58
+ "@theglitchking/claude-plugin-runtime": "^0.1.1",
59
59
  "commander": "^14.0.0"
60
60
  },
61
61
  "devDependencies": {