@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 +8 -1
- package/README.md +28 -1
- package/package.json +1 -1
- package/src/pii.js +6 -1
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
|
-
|
|
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 (
|
|
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.
|
|
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 }))
|