nexusmem 0.3.3 → 0.5.0

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
@@ -253,6 +253,9 @@ run is the first measurement at the scale that target was always described as ap
253
253
  One thing that is not a percentage: shell commands and conversation turns have no cheap `grep`
254
254
  equivalent. Without something recording them, they are gone, not merely more expensive to find.
255
255
 
256
+ For how these numbers compare to a similar tool's own claims, see
257
+ [`docs/competitor-comparison.md`](docs/competitor-comparison.md).
258
+
256
259
  Latency on a ~530-node corpus, warm, p50 over 10 runs:
257
260
 
258
261
  | Operation | |
@@ -315,10 +318,15 @@ optimizing, and it is somebody else's process.
315
318
  against this repo's own memory, switching to the joint cap moved the section that answered the
316
319
  question up in three of them (the rationale section for "why BM25 before vector search" went from
317
320
  rank 4 to rank 1) and displaced no query's correct top hit.
321
+ - **`forget` is per-repository, not global.** Its deny-list lives in the one `.nexusmem/memory.db` it
322
+ ran against (plus that repo's stale prior identities, same scope `--prune-source` already uses). A
323
+ value that leaked into shell history from several repositories needs `forget` run once per repo —
324
+ there is no shared, machine-wide deny-list across every project you have synced.
318
325
 
319
326
  ## Commands
320
327
 
321
- `init`, `sync`, `query <text>`, `status`, `projects`, `mcp`, and `hook install|remove|status`.
328
+ `init`, `sync`, `query <text>`, `status`, `projects`, `mcp`, `forget <value>`, and
329
+ `hook install|remove|status`.
322
330
 
323
331
  There are also five dry-run previews (`scan-git`, `scan-diff`, `scan-shell`, `scan-docs`,
324
332
  `scan-conversation`)
@@ -331,6 +339,14 @@ transcript source in for one run without persisting it, `--no-embed` skips the v
331
339
  `--link-failures` builds the failure → fix chains described above, and `--rebuild` drops the
332
340
  project's nodes and re-ingests from scratch.
333
341
 
342
+ `sync --prune-source <name>` deletes an entire collector source (e.g. `shell:pwsh`); `forget <value>`
343
+ is the finer-grained complement — it deletes every node matching one exact string (or `--regex`
344
+ pattern) *and* writes a standing deny-list entry so the value can never be re-ingested, even by a
345
+ later `sync --rebuild` re-reading the append-only shell-hook log or a full transcript scan. Every
346
+ removal leaves a hash-only tombstone, never the forgotten content itself. Both are dry-run by
347
+ default; `--yes` confirms. See [`docs/forget-mechanism.md`](docs/forget-mechanism.md) for why this
348
+ exists.
349
+
334
350
  ## Recall across projects
335
351
 
336
352
  `query --all-projects` searches every repository you have run NexusMem in, not just the current one,