claude-memory-admin 1.4.0 → 1.5.1

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/README.md CHANGED
@@ -19,8 +19,6 @@ and this README were written by Claude Code, with a human directing the design
19
19
  and reviewing what landed. Fitting for a tool about what Claude writes for
20
20
  itself, and worth saying out loud.
21
21
 
22
- <sub>Brought to you by [BitSpire](https://bitspire.ch/).</sub>
23
-
24
22
  ---
25
23
 
26
24
  ### Prune: see what MEMORY.md actually costs you
@@ -80,7 +78,9 @@ project is to the cliff, and makes it quick to get back under it.
80
78
  session transcripts on a retention period but never touches `memory/`, so a
81
79
  project eventually loses the only proof of what it was called. **Remember
82
80
  path** records one you confirm, and is the single thing this app writes
83
- outside a `memory/` directory.
81
+ outside a `memory/` directory. It is now offered *before* that happens: the
82
+ project header counts down the days until the last transcript naming the
83
+ project is swept, rather than waiting until the name is already gone.
84
84
  - **Where the store is** is read the way Claude Code reads it: `autoMemoryDirectory`
85
85
  from any settings layer, managed policy through project and local, not just
86
86
  `~/.claude/settings.json`. A value that is neither absolute nor `~/`-prefixed
@@ -96,13 +96,28 @@ project is to the cliff, and makes it quick to get back under it.
96
96
  - **Prune** (see below).
97
97
  - **Graph** the wikilinks between memories. Hovering dims everything that is not
98
98
  a neighbour, which is the only practical way to read a dense cluster.
99
+ - **Where each memory came from.** Claude Code stamps `originSessionId` into a
100
+ memory's frontmatter, and the transcript it names sits next to the store until
101
+ the sweep takes it. The memory reads *written in "Release process notes", on
102
+ `main`* while that transcript is there, and says so plainly once it is gone:
103
+ a swept id is struck through in red, like a dead wikilink, because why the
104
+ memory exists can no longer be traced from anything on disk.
105
+ - **Sessions**: the transcripts beside a store, with the retention window drawn
106
+ the way MEMORY.md's cutoff is - each session a tick, the sweep line where it
107
+ falls. Titles are the ones Claude Code generated, falling back to the session
108
+ slug and then the opening prompt; a session that names itself nowhere in the
109
+ part read is shown by id rather than given an invented name. Only the head of
110
+ each file is ever read, so a 200MB store of transcripts costs a quarter of a
111
+ second, and nothing on this tab deletes one.
99
112
  - **Health**: orphans, dangling pointers, broken wikilinks, files linked only
100
113
  mid-sentence, `name` fields that disagree with the filename, two files claiming
101
114
  one `name`, a file bulleted twice, a blank `description`, a `type` outside the
102
115
  four documented ones, a memory that is frontmatter and little else, a hook that
103
116
  only restates the description it points at, a heading with nothing under it, and
104
- entries that spill onto a second line. An orphan can be given the `MEMORY.md`
105
- bullet it is missing without leaving the page.
117
+ entries that spill onto a second line, a memory whose origin transcript has
118
+ been swept, a project whose last proof of its own path is about to be, and
119
+ sessions that produced no memory at all while auto memory was on. An orphan
120
+ can be given the `MEMORY.md` bullet it is missing without leaving the page.
106
121
  - **Every count is visible before you click.** Each tab carries a badge, coloured
107
122
  amber for something to tidy and red for something actively broken, and the
108
123
  sidebar gives each store a dot of its worst severity - memory, instructions and
@@ -312,6 +327,11 @@ claude-memory-admin --root /tmp/memory-snapshot
312
327
  chain, unless you switch on the path check above, which then also walks that one
313
328
  project's directory. It only ever reads: no path a memory names is opened, only
314
329
  looked up in an index built from the project itself.
330
+ - Session transcripts are read at the head only, 16KB and then at most 128KB, and
331
+ never deleted or rewritten. A transcript here reaches 13MB and the app has no
332
+ reason to hold one in memory. A session id read out of frontmatter is matched
333
+ against a strict id shape before it is joined to a path, and only ever looked
334
+ for in the store's own directory.
315
335
  - Every write target must resolve to a plain `.md` file inside that project's own
316
336
  `memory/` directory. `..`, absolute paths and subdirectories are refused.
317
337
  - One exception, and only when you ask for it: **Remember path** writes
@@ -355,6 +375,7 @@ ready to serve and never builds anything. After editing the source, run
355
375
  | `src/projects.mjs` | Project discovery, slug → real path resolution |
356
376
  | `src/settings.mjs` | Layered reads of Claude Code's settings files, and the report behind the Settings tab |
357
377
  | `src/pathcache.mjs` | The opt-in record of confirmed project paths |
378
+ | `src/sessions.mjs` | Session transcripts: bounded head reads, retention, provenance |
358
379
  | `src/stores.mjs` | Store discovery: the user scope, auto memory and the three agent scopes |
359
380
  | `src/instructions.mjs` | CLAUDE.md chain, `@` imports and rules resolution |
360
381
  | `src/parse.mjs` | `MEMORY.md` and frontmatter parsers, wikilinks |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-memory-admin",
3
- "version": "1.4.0",
3
+ "version": "1.5.1",
4
4
  "description": "Browse, audit and prune the auto memory Claude Code keeps under ~/.claude/projects",
5
5
  "keywords": [
6
6
  "claude",