@vib795/agent-memory 0.5.0 → 0.5.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.
package/HOWTO.md CHANGED
@@ -304,7 +304,7 @@ Everything is in one folder:
304
304
  memory/notes/ your notes, as plain markdown files
305
305
  ```
306
306
 
307
- Three things worth knowing:
307
+ Five things worth knowing:
308
308
 
309
309
  **Nothing leaves your machine.** No server, no account, no telemetry, no background
310
310
  process, nothing to get approved by IT. It is a small program that writes text files.
@@ -322,6 +322,13 @@ nothing to be locked into.
322
322
  **Nothing is ever deleted.** Notes that get replaced or go stale move to an `archive`
323
323
  folder rather than disappearing.
324
324
 
325
+ **Sharing is a separate decision.** If you export your notes to hand to a colleague,
326
+ personal details — phone numbers, card numbers, national IDs, email addresses — are
327
+ stripped on the way out, and the file tells you what was removed. A note that is
328
+ mostly contact details is left out of the file entirely rather than shipped with holes
329
+ in it. Names and addresses written in ordinary prose are not something a pattern can
330
+ find, so ask your assistant to read the file over before you send it.
331
+
325
332
  ---
326
333
 
327
334
  ## 11. When something is wrong
package/README.md CHANGED
@@ -207,6 +207,33 @@ name on it. What this is not: it is not encryption, access control, or a DLP pro
207
207
  It is one command that refuses to hand over identifiers, and it says exactly what it
208
208
  checked.
209
209
 
210
+ ### Independently scanned
211
+
212
+ Public supply-chain scanners index every package published to npm, so this one is
213
+ reviewed by people who owe it nothing. That is worth more than a clean claim from its
214
+ author.
215
+
216
+ [LPM Firewall](https://firewall.lpm.dev/npm/@vib795/agent-memory) currently reports
217
+ **Passed — safe to install**, with no policy match and no flagged code. Its reading of
218
+ the artefact — signed, provenance attached, zero dependencies, no install hooks — is a
219
+ third-party check on what this README says about itself. Four low-signal patterns
220
+ remain, and they are descriptive rather than policy: environment variables, scripts
221
+ present, filesystem, high-entropy strings. That is what a CLI which reads
222
+ `AGENT_MEMORY_HOME` and writes files in your home directory looks like from outside.
223
+
224
+ **It did not start there.** Version 0.3.1 was flagged **Critical — AI Agent Control
225
+ Hijack**, because `postinstall` wrote skill files into `~/.claude`, `~/.codex` and your
226
+ editor's prompt folder. The finding was correct. An install script that grants an AI
227
+ agent new instructions without the user asking is indistinguishable from an attack
228
+ that does exactly that, and good intent is not observable to a scanner. The hook was
229
+ removed in 0.4.0 rather than argued with, which is why `agent-memory setup` is a
230
+ command you type.
231
+
232
+ The 0.3.1 report is still public and still says Critical. Old version pages do not
233
+ come down, and they should not: a supply-chain record that could be edited after the
234
+ fact would be worth nothing. What a project can offer is the next version and the
235
+ reason for it.
236
+
210
237
  ## Engagements
211
238
 
212
239
  If you work for more than one client on one machine, knowledge from one of them is
@@ -472,7 +499,7 @@ is generated state, and the committed value is only a placeholder.
472
499
 
473
500
  Needs Node 22.5 or newer; `doctor` says so plainly if the version is too old.
474
501
 
475
- Run `npm test` for the suite (87 tests, no dependencies). CI runs it on Linux,
502
+ Run `npm test` for the suite (88 tests, no dependencies). CI runs it on Linux,
476
503
  macOS and Windows across Node 22 and 24, and separately installs the packed tarball
477
504
  and exercises it end to end on all three.
478
505
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vib795/agent-memory",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "Durable cross-repo knowledge graph for GitHub Copilot and Claude Code. Markdown source of truth, disposable SQLite index, zero runtime dependencies.",
5
5
  "keywords": [
6
6
  "github-copilot",
package/src/pii.js CHANGED
@@ -228,10 +228,15 @@ export function buildReceipt(results, { scanned }) {
228
228
  const counts = new Map();
229
229
  const withheld = [];
230
230
  for (const r of results) {
231
- for (const f of r.findings) counts.set(f.kind, (counts.get(f.kind) || 0) + f.count);
232
231
  if (r.withheld) {
232
+ // Counted under `withheld`, not under `redacted`. Nothing in a withheld note
233
+ // was redacted, because the note is not in the file; folding its findings into
234
+ // the redaction totals would overstate what the reader is holding, and a
235
+ // governance artifact that overstates is worth less than none.
233
236
  withheld.push({ id: r.id, reason: r.reason, kinds: r.findings.map((f) => f.kind) });
237
+ continue;
234
238
  }
239
+ for (const f of r.findings) counts.set(f.kind, (counts.get(f.kind) || 0) + f.count);
235
240
  }
236
241
  const redactions = [...counts.entries()]
237
242
  .map(([kind, count]) => ({ kind, count }))