You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Node.js 22.12 or later is now required. Node 18 and Node 20 are both past end of life, and the current releases of mem's runtime dependencies (better-sqlite3, commander) no longer support them. engines is now >=22.12.0 and the bundle is built for node22. CI runs the full suite, including the tests that drive the built bundle, on Node 22 and Node 24 on both Linux and Windows. This replaces the old Node 18 check, which could only smoke-test the bundle because the test toolchain no longer ran there.
better-sqlite3 13 (SQLite 3.53). It ships its native binaries inside the npm package, so npm i -g token-goat-mem no longer downloads a prebuilt binary at install time or, when none matches the running Node, compiles one with node-gyp.
Fixed
Unquoted multi-word text is refused instead of silently truncated.mem remember the build runs on node 22 stored the fact "the" and exited 0, and mem recall build runs searched for "build" alone: the argument parser (commander 12) dropped excess arguments without a word. With commander 15 both exit non-zero with too many arguments, and nothing is stored.
mem doctor reports hooks that run twice. Claude Code merges project and user hooks and skips a duplicate only when its command text is identical. Since 0.5.0 a Windows user hook launches node on the bundle while a project hook still calls mem, so a project with its own mem hooks ran every event twice and received recall twice, while hook-divergence reported the two levels as matching. It is now ok only when the commands are identical, and warns on a launcher-only difference, naming the events and mem init claude-code as the fix (see below); mem uninstall claude-code would also have stripped the CLAUDE.md block.
A project mem init claude-code no longer adds hooks that user-level hooks already cover. The user hooks run in every project, so once ~/.claude/settings.json holds mem's hooks a project install writes only the CLAUDE.md block and removes mem's hooks from the project .claude/settings.json, deleting the file when nothing else is left in it. Without user hooks the project install writes its hooks as before. mem doctor counts a project settings file with no mem hooks as current in that case, and its hook-divergence remedies now name mem init claude-code rather than an uninstall.