@lotargo/memory_plugin 1.6.7 → 1.6.9

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/CHANGELOG.md CHANGED
@@ -3,133 +3,155 @@
3
3
  All notable changes to `@lotargo/memory_plugin` are documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [Unreleased]
9
-
10
- ### Changed
11
-
12
- - OpenCode's native auto-injection now explicitly suppresses redundant startup `recall` calls while preserving manual recall for inspection, filtering, history, and explicit scopes.
13
- - Added an OpenCode system-prompt overlay policy that treats user-approved personality, behavior, tone, style, preference, and working-convention memories as active personalization instructions rather than passive facts.
14
- - Updated shared prompts and the bundled memory skill to distinguish auto-injected clients from integrations that must initialize with `recall(scope: "all")`.
15
- - OpenCode now separates active `<PERSONAL_AGENT_OVERLAY>` entries from descriptive `<MEMORY_FACTS>` and injects the actual active directives into `experimental.chat.system.transform`.
16
- - `dev:link` now synchronizes managed prompts and bundled skills for non-OpenCode clients in addition to linking the OpenCode source and system CLI.
17
- - Claude Code, Gemini CLI, and Codex setup/uninstall now use each client's native MCP lifecycle command first, verify the resulting registration, and fall back to ownership-checked JSON/TOML editing only when the client CLI is missing, fails, or leaves the expected entry unchanged.
18
- - Gemini CLI is now a separate integration using `~/.gemini/settings.json`, `~/.gemini/GEMINI.md`, and `~/.gemini/skills`; Antigravity keeps its distinct `~/.gemini/config` and optional workspace `.agents` layout.
19
- - Normal OpenCode uninstall now preserves the host package cache. Cache cleanup is explicit through `--purge-cache` and removes only exact package-owned directories, including versioned cache entries.
20
-
21
- ### Added
22
-
23
- - Added `npm run dev:link` / `memory-cli dev-link` for local development. It globally links the repository CLI and points OpenCode at the working tree through a `file://` plugin entry, eliminating npm publication and reinstall cycles during testing.
24
- - Added explicit Notebook `kind: "fact" | "directive"` semantics across MCP and OpenCode `remember` / `update_fact` tools, with `[DIRECTIVE]` recall badges and compatibility for legacy persona/preference tags.
25
- - Added managed persona prompt synchronization for Codex, Claude Code, and Antigravity through `memory-cli sync-persona` / `npm run persona:sync`, including automatic refresh after global directive mutations and cloud pulls.
26
- - Added idempotent `memory-cli migrate-persona [--dry-run]` / `npm run persona:migrate` to permanently classify legacy global personalization entries as `kind:directive` and regenerate managed client prompts.
27
- - Added `memory_plugin uninstall` / `memory-cli uninstall` and the `memory_plugin setup --uninstall` alias with per-client targeting, `--dry-run`, data-preserving defaults, guarded `--purge`, and explicit `--purge-cache` support.
28
- - Added a shared cross-platform client path and CLI execution layer with Windows npm-shim support plus `XDG_CONFIG_HOME`, `XDG_CACHE_HOME`, `OPENCODE_CONFIG_DIR`, and `MEMORY_DIR` handling.
29
-
30
- ### Fixed
31
-
32
- - Fixed `remember_note` omitting the ingestion `blobHash` from its public result, which broke cross-device raw-blob portability consumers and was previously masked by Windows temp-cleanup errors.
33
- - Fixed concurrent `triggerBackgroundSync()` callers returning before the active queue drain completed; callers now join one active promise that includes requested follow-up passes.
34
- - Fixed uninstall ownership checks so foreign `memory-agent` registrations, unrelated OpenCode plugins/cache packages, modified skills, and user-authored content outside managed prompt/persona markers are never removed.
35
- - Fixed Codex TOML cleanup to remove only plugin-owned `memory-agent` tables while preserving unrelated formatting and child sections, and made malformed client configuration fail closed instead of being overwritten.
36
- - Fixed uninstall failure reporting to return a non-zero exit status when any requested cleanup step fails.
37
-
38
- ## [1.6.6] - 2026-08-17
39
-
40
- ### Fixed
41
-
42
- - Fixed npm package distribution files list to include `mcp-server/rag_scope.js` and all server modules.
43
-
44
- ## [1.6.5] - 2026-08-17
45
-
46
- ### Added
47
-
48
- - Added explicit `directory` (and `project` alias) parameter support to Notebook/Memory tools (`remember`, `recall`, `get_fact`, `forget`, `update_fact`, `memory_info`, `link_knowledge`) and RAG tools (`ingest_document`, `query_knowledge_base`, `batch_query_knowledge_base`, `manage_knowledge_base`) across both the MCP server and native OpenCode plugin.
49
-
50
- ### Fixed
51
-
52
- - Fixed cross-directory workspace routing and isolation so operations targeting external project paths work reliably without directory mismatch or leaking npm process `INIT_CWD`.
53
- - Fixed `batch_query_knowledge_base` query execution and result formatting in the MCP server.
54
-
55
- ## [1.6.4] - 2026-08-13
56
-
57
- ### Added
58
-
59
- - `memory_info` now reports whether the current Git identity is `Registry: linked`
60
- or `Registry: unlinked`, enabling agents to register new repositories automatically.
61
- - RAG documents now have explicit global/project scope associations. The default
62
- project scope follows the current linked Git identity, while `scope: "all"`
63
- retrieves only global knowledge plus the current project's knowledge. A source
64
- shared by several scopes is stored once and associated with each scope.
65
- - The native OpenCode plugin now exposes `batch_query_knowledge_base`, bringing it
66
- to all 15 shared tools plus its two OpenCode-only helpers.
67
-
68
- ### Changed
69
-
70
- - OpenCode auto-injected memory now includes complete fact bodies for both global and
71
- current-project stores without the previous ten-fact truncation and instructs the
72
- agent to register an unlinked Git identity. Header-only initialization was removed
73
- because it loses essential context.
74
- - The bundled memory skill now defines full-body session recall, strict project
75
- isolation, agent-resolved conflicts, automatic Git project registration, and
76
- selective RAG curation for important web findings and current technical
77
- documentation, including links from project facts to supporting sources.
78
- - `recall` hides superseded facts by default and exposes history through
79
- `includeSuperseded: true`. Filtered output keeps physical storage indices stable,
80
- so a displayed number always targets the same fact in `forget`.
81
-
82
- ### Fixed
83
-
84
- - Re-ingesting an existing path or URL now preserves its document ID, scope
85
- associations, and fact links while rebuilding chunks, vectors, FTS rows, and
86
- structural graph edges for changed content.
87
- - Snapshot export/import and hybrid cloud synchronization now preserve vectors,
88
- retrieval policies, policy provenance, document scopes, knowledge links, and
89
- structural graph metadata. The hybrid sync worker also drains tasks queued during
90
- an active flush instead of leaving them pending.
91
- - Relinking a Git project now moves its RAG scope associations and fact-to-document
92
- links together with Notebook facts.
93
- - Environment-specific setup flags now update only their requested integration.
94
- Codex setup also synchronizes the skill to both `~/.codex/skills` and the shared
95
- `~/.agents/skills` location.
96
- - Shared documents no longer expose fact-link metadata belonging to another project.
97
- Document deletion now defaults to unlinking only the current project (or global
98
- outside Git); broader `global` / `all` removal must be requested explicitly.
99
- - Updating or forgetting a linked Notebook fact now keeps its knowledge-graph
100
- projection and cloud payload consistent. Line-range graph edges are included in
101
- per-document cloud sync, and superseding legacy facts without IDs assigns distinct
102
- IDs to the old and new versions.
103
- - README tool counts now match the implementations: 15 MCP tools, 17 native
104
- OpenCode tools, and 17 unique tool names across both surfaces. The OpenCode tool
105
- list documents all shared and OpenCode-only helpers explicitly.
106
-
107
- ## [1.6.3] - 2026-08-13
108
-
109
- ### Added
110
-
111
- - `memory_plugin doctor --codex` validates the configured executable and Node.js
112
- version, performs direct MCP `initialize` / `tools/list`, and calls both
113
- `memory_info` and `recall(scope="all")`.
114
- - Codex regression coverage for Windows paths with spaces, legacy config migration,
115
- duplicate removal, standalone MCP protocol smoke testing, two-repository project
116
- isolation, global-only recall outside Git, and prompt idempotency.
117
-
118
- ### Fixed
119
-
120
- - Codex setup no longer launches the memory MCP through `npx` or a Windows `.cmd`
121
- shim. It writes absolute paths for the active Node executable and packaged
122
- `mcp-server/boot.js` entry point after validating Node.js >= 22.5.0.
123
- - Existing plugin-owned `[mcp_servers.memory-agent]` sections, including the legacy
124
- `opencode-memory-plugin` entry, are migrated in place without modifying unrelated
125
- TOML sections or creating duplicates.
126
- - Repeated prompt setup now collapses duplicate plugin-owned blocks while preserving
127
- user-authored AGENTS.md / CLAUDE.md content.
128
- - README tool counts match the v1.6.3 implementations: 15 MCP tools, 16 native
129
- OpenCode tools, and 17 unique tool names across both surfaces. The OpenCode tool
130
- list and the MCP-only status of `batch_query_knowledge_base` are documented explicitly.
131
-
132
- ## [1.6.2] - 2026-08-12
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.6.9] - 2026-09-08
9
+
10
+ ### Fixed
11
+
12
+ - Fixed Turso browser OAuth on Windows: URLs no longer go through `cmd.exe` (which truncated the query string at `&`), browser launch now uses `rundll32.exe url.dll,FileProtocolHandler`. The OAuth loopback server now binds an ephemeral port before the login URL is built, eliminating the listen race and `EADDRINUSE` on the fixed port.
13
+ - Made the `policy_retrieval` unit test offline-deterministic: ingestion now runs with `generateEmbeddings: false` (BM25/policy path only) and DB/temp cleanup is guaranteed via `try/finally`, so a corrupted ONNX model cache no longer fails the suite and blocks the runner.
14
+
15
+ ## [1.6.8] - 2026-08-25
16
+
17
+ ### Changed
18
+
19
+ - Refreshed npm package positioning around local-first memory, hybrid RAG, agent personalization, and coding-agent integrations.
20
+ - Expanded package keywords for agent memory, coding agents, personalization, context engineering, local-first workflows, and Google Jules discovery.
21
+ - Updated package repository, homepage, and issue metadata to the canonical `Lotargo/memory_plugin` repository after the GitHub rename.
22
+ - Updated README hero asset URLs to the canonical repository and added a text H1 covering memory, hybrid RAG, and agent personalization.
23
+ - Updated the spreadsheet parser import to the ESM-compatible SheetJS namespace form.
24
+
25
+ ### Security
26
+
27
+ - Replaced the stale public-npm `xlsx@0.18.5` dependency with SheetJS CE `0.20.3` from the official SheetJS CDN, moving spreadsheet ingestion outside the affected ranges for the known prototype-pollution and ReDoS advisories.
28
+ - Updated dependency-security documentation to distinguish the fixed direct SheetJS exposure from the remaining transitive `sharp` / libvips warning in `@huggingface/transformers`; the project disables the Transformers image-decoding path with `env.sharp = false`.
29
+
30
+ ## [1.6.7] - 2026-08-24
31
+
32
+ ### Changed
33
+
34
+ - OpenCode's native auto-injection now explicitly suppresses redundant startup `recall` calls while preserving manual recall for inspection, filtering, history, and explicit scopes.
35
+ - Added an OpenCode system-prompt overlay policy that treats user-approved personality, behavior, tone, style, preference, and working-convention memories as active personalization instructions rather than passive facts.
36
+ - Updated shared prompts and the bundled memory skill to distinguish auto-injected clients from integrations that must initialize with `recall(scope: "all")`.
37
+ - OpenCode now separates active `<PERSONAL_AGENT_OVERLAY>` entries from descriptive `<MEMORY_FACTS>` and injects the actual active directives into `experimental.chat.system.transform`.
38
+ - `dev:link` now synchronizes managed prompts and bundled skills for non-OpenCode clients in addition to linking the OpenCode source and system CLI.
39
+ - Claude Code, Gemini CLI, and Codex setup/uninstall now use each client's native MCP lifecycle command first, verify the resulting registration, and fall back to ownership-checked JSON/TOML editing only when the client CLI is missing, fails, or leaves the expected entry unchanged.
40
+ - Gemini CLI is now a separate integration using `~/.gemini/settings.json`, `~/.gemini/GEMINI.md`, and `~/.gemini/skills`; Antigravity keeps its distinct `~/.gemini/config` and optional workspace `.agents` layout.
41
+ - Normal OpenCode uninstall now preserves the host package cache. Cache cleanup is explicit through `--purge-cache` and removes only exact package-owned directories, including versioned cache entries.
42
+
43
+ ### Added
44
+
45
+ - Added `npm run dev:link` / `memory-cli dev-link` for local development. It globally links the repository CLI and points OpenCode at the working tree through a `file://` plugin entry, eliminating npm publication and reinstall cycles during testing.
46
+ - Added explicit Notebook `kind: "fact" | "directive"` semantics across MCP and OpenCode `remember` / `update_fact` tools, with `[DIRECTIVE]` recall badges and compatibility for legacy persona/preference tags.
47
+ - Added managed persona prompt synchronization for Codex, Claude Code, and Antigravity through `memory-cli sync-persona` / `npm run persona:sync`, including automatic refresh after global directive mutations and cloud pulls.
48
+ - Added idempotent `memory-cli migrate-persona [--dry-run]` / `npm run persona:migrate` to permanently classify legacy global personalization entries as `kind:directive` and regenerate managed client prompts.
49
+ - Added `memory_plugin uninstall` / `memory-cli uninstall` and the `memory_plugin setup --uninstall` alias with per-client targeting, `--dry-run`, data-preserving defaults, guarded `--purge`, and explicit `--purge-cache` support.
50
+ - Added a shared cross-platform client path and CLI execution layer with Windows npm-shim support plus `XDG_CONFIG_HOME`, `XDG_CACHE_HOME`, `OPENCODE_CONFIG_DIR`, and `MEMORY_DIR` handling.
51
+
52
+ ### Fixed
53
+
54
+ - Fixed `remember_note` omitting the ingestion `blobHash` from its public result, which broke cross-device raw-blob portability consumers and was previously masked by Windows temp-cleanup errors.
55
+ - Fixed concurrent `triggerBackgroundSync()` callers returning before the active queue drain completed; callers now join one active promise that includes requested follow-up passes.
56
+ - Fixed uninstall ownership checks so foreign `memory-agent` registrations, unrelated OpenCode plugins/cache packages, modified skills, and user-authored content outside managed prompt/persona markers are never removed.
57
+ - Fixed Codex TOML cleanup to remove only plugin-owned `memory-agent` tables while preserving unrelated formatting and child sections, and made malformed client configuration fail closed instead of being overwritten.
58
+ - Fixed uninstall failure reporting to return a non-zero exit status when any requested cleanup step fails.
59
+
60
+ ## [1.6.6] - 2026-08-17
61
+
62
+ ### Fixed
63
+
64
+ - Fixed npm package distribution files list to include `mcp-server/rag_scope.js` and all server modules.
65
+
66
+ ## [1.6.5] - 2026-08-17
67
+
68
+ ### Added
69
+
70
+ - Added explicit `directory` (and `project` alias) parameter support to Notebook/Memory tools (`remember`, `recall`, `get_fact`, `forget`, `update_fact`, `memory_info`, `link_knowledge`) and RAG tools (`ingest_document`, `query_knowledge_base`, `batch_query_knowledge_base`, `manage_knowledge_base`) across both the MCP server and native OpenCode plugin.
71
+
72
+ ### Fixed
73
+
74
+ - Fixed cross-directory workspace routing and isolation so operations targeting external project paths work reliably without directory mismatch or leaking npm process `INIT_CWD`.
75
+ - Fixed `batch_query_knowledge_base` query execution and result formatting in the MCP server.
76
+
77
+ ## [1.6.4] - 2026-08-13
78
+
79
+ ### Added
80
+
81
+ - `memory_info` now reports whether the current Git identity is `Registry: linked`
82
+ or `Registry: unlinked`, enabling agents to register new repositories automatically.
83
+ - RAG documents now have explicit global/project scope associations. The default
84
+ project scope follows the current linked Git identity, while `scope: "all"`
85
+ retrieves only global knowledge plus the current project's knowledge. A source
86
+ shared by several scopes is stored once and associated with each scope.
87
+ - The native OpenCode plugin now exposes `batch_query_knowledge_base`, bringing it
88
+ to all 15 shared tools plus its two OpenCode-only helpers.
89
+
90
+ ### Changed
91
+
92
+ - OpenCode auto-injected memory now includes complete fact bodies for both global and
93
+ current-project stores without the previous ten-fact truncation and instructs the
94
+ agent to register an unlinked Git identity. Header-only initialization was removed
95
+ because it loses essential context.
96
+ - The bundled memory skill now defines full-body session recall, strict project
97
+ isolation, agent-resolved conflicts, automatic Git project registration, and
98
+ selective RAG curation for important web findings and current technical
99
+ documentation, including links from project facts to supporting sources.
100
+ - `recall` hides superseded facts by default and exposes history through
101
+ `includeSuperseded: true`. Filtered output keeps physical storage indices stable,
102
+ so a displayed number always targets the same fact in `forget`.
103
+
104
+ ### Fixed
105
+
106
+ - Re-ingesting an existing path or URL now preserves its document ID, scope
107
+ associations, and fact links while rebuilding chunks, vectors, FTS rows, and
108
+ structural graph edges for changed content.
109
+ - Snapshot export/import and hybrid cloud synchronization now preserve vectors,
110
+ retrieval policies, policy provenance, document scopes, knowledge links, and
111
+ structural graph metadata. The hybrid sync worker also drains tasks queued during
112
+ an active flush instead of leaving them pending.
113
+ - Relinking a Git project now moves its RAG scope associations and fact-to-document
114
+ links together with Notebook facts.
115
+ - Environment-specific setup flags now update only their requested integration.
116
+ Codex setup also synchronizes the skill to both `~/.codex/skills` and the shared
117
+ `~/.agents/skills` location.
118
+ - Shared documents no longer expose fact-link metadata belonging to another project.
119
+ Document deletion now defaults to unlinking only the current project (or global
120
+ outside Git); broader `global` / `all` removal must be requested explicitly.
121
+ - Updating or forgetting a linked Notebook fact now keeps its knowledge-graph
122
+ projection and cloud payload consistent. Line-range graph edges are included in
123
+ per-document cloud sync, and superseding legacy facts without IDs assigns distinct
124
+ IDs to the old and new versions.
125
+ - README tool counts now match the implementations: 15 MCP tools, 17 native
126
+ OpenCode tools, and 17 unique tool names across both surfaces. The OpenCode tool
127
+ list documents all shared and OpenCode-only helpers explicitly.
128
+
129
+ ## [1.6.3] - 2026-08-13
130
+
131
+ ### Added
132
+
133
+ - `memory_plugin doctor --codex` validates the configured executable and Node.js
134
+ version, performs direct MCP `initialize` / `tools/list`, and calls both
135
+ `memory_info` and `recall(scope="all")`.
136
+ - Codex regression coverage for Windows paths with spaces, legacy config migration,
137
+ duplicate removal, standalone MCP protocol smoke testing, two-repository project
138
+ isolation, global-only recall outside Git, and prompt idempotency.
139
+
140
+ ### Fixed
141
+
142
+ - Codex setup no longer launches the memory MCP through `npx` or a Windows `.cmd`
143
+ shim. It writes absolute paths for the active Node executable and packaged
144
+ `mcp-server/boot.js` entry point after validating Node.js >= 22.5.0.
145
+ - Existing plugin-owned `[mcp_servers.memory-agent]` sections, including the legacy
146
+ `opencode-memory-plugin` entry, are migrated in place without modifying unrelated
147
+ TOML sections or creating duplicates.
148
+ - Repeated prompt setup now collapses duplicate plugin-owned blocks while preserving
149
+ user-authored AGENTS.md / CLAUDE.md content.
150
+ - README tool counts match the v1.6.3 implementations: 15 MCP tools, 16 native
151
+ OpenCode tools, and 17 unique tool names across both surfaces. The OpenCode tool
152
+ list and the MCP-only status of `batch_query_knowledge_base` are documented explicitly.
153
+
154
+ ## [1.6.2] - 2026-08-12
133
155
 
134
156
  ### Added
135
157
 
@@ -272,5 +294,8 @@ a critical retrieval regression introduced after `v1.5.3`.
272
294
  - `BENCHMARKS.md` tables were re-derived from the stored JSON artifacts; the
273
295
  bge-m3 section had carried e5-small numbers shifted by a column.
274
296
 
275
- [1.6.1]: https://github.com/Lotargo/memory_pugin/releases/tag/v1.6.1
276
- [1.6.0]: https://github.com/Lotargo/memory_pugin/releases/tag/v1.6.0
297
+ [1.6.9]: https://github.com/Lotargo/memory_plugin/releases/tag/v1.6.9
298
+ [1.6.8]: https://github.com/Lotargo/memory_plugin/releases/tag/v1.6.8
299
+ [1.6.7]: https://github.com/Lotargo/memory_plugin/releases/tag/v1.6.7
300
+ [1.6.1]: https://github.com/Lotargo/memory_plugin/releases/tag/v1.6.1
301
+ [1.6.0]: https://github.com/Lotargo/memory_plugin/releases/tag/v1.6.0