indelible-mcp 5.8.5 → 5.8.7

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.
@@ -774,6 +774,35 @@ protected; `indelible-mcp strongbox run` protects the current session now (it ne
774
774
  than one transcript matches, pass `--session <id>`). It is local-only and free — the chain save is the
775
775
  provable record, the strongbox is the raw material.
776
776
 
777
+ **Disk, and the duplicate-copy defect fixed in 5.8.5.** Every version up to and including 5.8.3 wrote a
778
+ fresh copy each time the host rotated the session id, so a machine that has been running a while can be
779
+ holding many duplicates of the same few conversations — anywhere from tens of megabytes up to gigabytes
780
+ on a heavily-used machine, accumulating in bursts rather than steadily, with nothing surfacing it.
781
+ ⚠️ **We do not have a typical-customer number, so do not quote a magnitude as if it were theirs** —
782
+ the two measured piles were 2 GB and 276 GB and both were builder machines. Report what
783
+ `strongbox_status` says about THEIR machine and nothing more.
784
+ 5.8.5 fixes the writer and reports the number on the next save. To clear what is already
785
+ there: `indelible-mcp strongbox clean` **only looks** and deletes nothing;
786
+ `indelible-mcp strongbox clean --write` acts.
787
+
788
+ **You have this as tools, not only as a shell command** (5.8.5), which is what makes it reachable from a
789
+ client with no terminal: `strongbox_status` is read-only and safe to call whenever disk comes up;
790
+ `strongbox_consent` records the customer's answer and must be called only after they have actually
791
+ answered; `strongbox_clean` acts, and refuses unless a consent was recorded by that separate, earlier
792
+ call. You cannot grant that permission yourself — recording it is a distinct step from acting on it, on
793
+ purpose, so that a yes cannot be manufactured in the same breath as the deletion.
794
+
795
+ ⚠️ **What makes the deletion safe is the containment proof, not the consent gate.** A copy is removed
796
+ only after being shown byte-for-byte to be an earlier, shorter version of a copy that is kept (transcripts
797
+ only ever grow, so an older snapshot is a literal prefix of a newer one). That check reads every byte;
798
+ there is no sampling. One complete verified copy of every conversation always survives, and if any file in
799
+ a group cannot be proven redundant the whole group is left alone rather than partly cleaned.
800
+
801
+ ⚠️ **A client reads the tool list once, when it starts.** After a customer upgrades, the server process
802
+ already running is still the old code, so the strongbox tools will not appear until their assistant is
803
+ restarted. If someone says they just updated and you cannot see `strongbox_status`, that is the reason:
804
+ tell them to quit and reopen their assistant. Do not tell them the feature is missing.
805
+
777
806
  Auto-save is your seatbelt. The daily MD is your actually-arriving-somewhere.
778
807
 
779
808
  ## 10.2 Bank at milestones, not at the end
package/CLI_HANDBOOK.md CHANGED
@@ -430,6 +430,11 @@ you say yes. (That works through three tools: `strongbox_status` looks, `strongb
430
430
  records your answer, and `strongbox_clean` acts. Your assistant cannot grant your permission for
431
431
  you — recording it is a separate step from doing it, on purpose.)
432
432
 
433
+ ⚠️ **Just upgraded? Restart your assistant before you ask.** Every MCP client reads the list of
434
+ available tools once, when it starts. If you updated Indelible while it was running, it is still
435
+ holding the old list and will tell you the cleanup does not exist. Quit and reopen whatever app you
436
+ run Indelible in — Claude Desktop, Claude Code, Cursor, or any other MCP client — and ask again.
437
+
433
438
  **What "safe" means here, exactly, because it is a deletion.** A copy is removed only if it has
434
439
  been proven byte-for-byte to be an earlier, shorter version of a copy that is kept — transcripts
435
440
  only ever grow, so an older snapshot is a literal prefix of a newer one. That check reads every
@@ -63,6 +63,14 @@ removed.) This is what each one does and why it is there.
63
63
 
64
64
  **PreCompact (strongbox)** and **SessionEnd (strongbox)** keep a verified, byte-exact local copy of your raw transcript in `~/.indelible/transcript-vault/` before your host's own cleanup (~30 days by default) can delete it. That is the strongbox: your transcript's local vault, separate from the chain save — free, local, no wallet needed. `indelible-mcp strongbox` shows what it holds; `indelible-mcp strongbox run` protects the current session on demand.
65
65
 
66
+ **A bug that was filling your drive, and how to clear it.** Every version up to and including 5.8.3 saved a fresh copy of a conversation each time your session id rotated, which happens more often than you would think. It builds up in bursts rather than steadily, so a machine that has been running a while can be holding a great many copies of the same few conversations — anything from tens of megabytes to several gigabytes, with nothing telling you. That is fixed now, and after you update, the next time you save, Indelible tells you what your own machine is holding.
67
+
68
+ **To clear what is already there, just ask.** Say to your assistant: "clean up my Strongbox." It will show you exactly what is safe to remove first, and nothing is deleted until you say yes. You do not need a terminal for this. (It works through three tools: one looks, one records your answer, one acts — and the one that acts refuses unless your answer was recorded by the separate earlier step. Your assistant cannot give your permission on your behalf, on purpose.) If you would rather do it yourself, `indelible-mcp strongbox clean` only looks and deletes nothing, and `indelible-mcp strongbox clean --write` acts.
69
+
70
+ **What "safe to remove" means, because this is a deletion.** A copy is removed only after being proven, byte for byte, to be an earlier and shorter version of a copy that is kept. Transcripts only ever grow, so an older snapshot is a literal prefix of a newer one. That check reads every byte; there is no sampling. One complete verified copy of every conversation always survives, and if any file in a group cannot be proven to be a duplicate, that whole group is left alone rather than partly cleaned.
71
+
72
+ ⚠️ **Just updated? Restart your assistant before you ask.** Quit and reopen whatever app you run Indelible in — Claude Desktop, Claude Code, Cursor, or any other MCP client. It reads the list of things it can do once, when it starts, so if you updated while it was running it is still holding the old list and will tell you the cleanup does not exist. Restart, then ask again.
73
+
66
74
  Free tier and the hooks: every hook runs for everyone. Restore, the time card, style loading, and Guardrails are fully free. The pre-compaction **save** is the one piece that needs Pro. On a free wallet the hook still fires, but instead of saving it prints the plain notice that saving is a Pro feature. That is not an error. Your reads, diary, and recall keep working.
67
75
 
68
76
  Hook installation is idempotent. If you ever suspect the hooks are missing, run:
package/README.md CHANGED
@@ -15,6 +15,11 @@ npm install -g indelible-mcp
15
15
  indelible-mcp
16
16
  ```
17
17
 
18
+ **Upgrading from an earlier version?** Same command — and then **restart your assistant**: quit and
19
+ reopen whatever app you run Indelible in (Claude Desktop, Claude Code, Cursor, or any other MCP
20
+ client). Every one of them reads the list of available tools once, when it starts, so anything new in
21
+ the release stays invisible until you restart.
22
+
18
23
  ## Setup
19
24
 
20
25
  ### 1. Install & Connect Your Wallet
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "indelible-mcp",
3
- "version": "5.8.5",
3
+ "version": "5.8.7",
4
4
  "description": "Blockchain-backed memory and code storage for Claude Code. Save AI conversations and source code permanently on BSV.",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
package/src/index.js CHANGED
@@ -23454,7 +23454,7 @@ init_wall_stub();
23454
23454
  init_wall_stub();
23455
23455
  init_wall_stub();
23456
23456
  var PROJECT_ROOT_FOR_CLONE_CHECK = resolve5(dirname25(fileURLToPath2(import.meta.url)), "../..");
23457
- var INDELIBLE_VERSION = "5.8.5";
23457
+ var INDELIBLE_VERSION = "5.8.7";
23458
23458
  var VERSION_CACHE_MS = 24 * 60 * 60 * 1e3;
23459
23459
  var REGISTRY_URL = process.env.INDELIBLE_REGISTRY_URL || "https://registry.npmjs.org";
23460
23460
  var versionCachePath = () => join52(homedir36(), ".indelible", "version-check.json");
@@ -26217,7 +26217,7 @@ Answer THAT message and nothing else \u2014 the wire also carries unrelated conv
26217
26217
  }
26218
26218
  function printHelp() {
26219
26219
  console.log(`
26220
- Indelible MCP \u2014 Blockchain memory for Claude Code (v5.8.5)
26220
+ Indelible MCP \u2014 Blockchain memory for Claude Code (v5.8.7)
26221
26221
 
26222
26222
  Setup:
26223
26223
  indelible-mcp Set up interactively (recommended \u2014 your key is never written to shell history)