Skip to content

v0.3.4 — memory that stays small, and warnings you can trust

Latest

Choose a tag to compare

@riponcm riponcm released this 02 Oct 23:48
· 1 commit to main since this release

Three community reports, three community fixes, and six more bugs found by checking them. Each report was reproduced end to end before it was fixed, and every fix was reviewed by someone other than its author.

pip install -U projectmem

Then run pjm init once in each project. Older projects keep the AI_INSTRUCTIONS.md and git hooks of the release that created them; re-running init now refreshes both. Your previous instructions are kept as AI_INSTRUCTIONS.md.bak, and anything of yours outside projectmem's block in a hook is left untouched.

Fixed

  • The summary no longer grows forever (#19, #25). Recent issues and Decisions listed everything ever logged. Every open issue is still shown — the newest 20 in full, older ones by id — while fixed issues are capped at the newest 10 and decisions at the newest 15, each with a line saying what was left out. On a test project with 25 issues and 60 decisions the summary went from about 2,900 tokens to about 1,100.
  • Commits are filed under the code they change (#20, #23). Auto-capture used the first path in git's sort order — usually the regenerated .projectmem/summary.md — so valid memories were flagged stale. The location is now the source file the commit is about; deletions, renames, merges and a repository's first commit are handled. Events already filed under .projectmem/ stop warning, with nothing to run.
  • Stale warnings no longer depend on your time zone — a regression in 0.3.3. The 0.3.3 speed-up compared git's local-time commit dates with UTC event times as text: west of UTC, recent stale memories were never flagged; east of UTC, fresh ones were flagged at once.
  • The guidance names the tools' real arguments (#18, #22). precheck_file and get_issue were shown with the wrong argument names, and search_events without its required query. A test now checks every call shown to an agent against the tool's actual signature.
  • One mistyped issue id no longer breaks every later command. An attempt against an id with no issue behind it made every following summary rebuild crash. Unknown ids are refused before anything is written.
  • pjm precheck stops warning about projectmem's own files, and a memory file is no longer called "safe to modify".
  • Fixes to the git hooks now reach existing projects — including the 0.3.3 Windows / GitHub Desktop hook fix, which only new projects had received.

Changed

  • The guidance states what reading memory costs: a few hundred to ~1,500 tokens, measured, instead of "~500".
  • Python 3.13 and 3.14 are declared and tested.
  • The README was checked line by line against the code; the comparison table was rebuilt from each project's own docs as of 2026-10-02.

Verified

356 automated tests pass on Python 3.10, 3.11, 3.12, 3.13 and 3.14. An end-to-end acceptance run — real git hooks and commits in Dhaka, Denver and Kiritimati time zones, an aged project, a mistyped issue id, and an upgrade from 0.3.3 — passes 19 of 19 against the installed wheel (the same run fails 14 of 19 on 0.3.3). A fresh MCP client calling every tool exactly as the instructions show it gets all 18 calls accepted.

Thank you

Fixes for #18 and #20 were contributed by Rohan Tiwari, and the first cap for #19 by hylin. #18 and #19 were reported by @medium-effort, #20 by @bigfree.

Full changelog: CHANGELOG.md · PyPI: projectmem 0.3.4