Repository navigation
Releases: juraj-jumic/memdebug
Releases · juraj-jumic/memdebug
Release list
memdebug 0.6.2
Added
memdebug checkandwatchnow say where an Open WebUI write came from. Until now that evidence (the app's owncreated_bylabel and how close a chat
message was) was shown only in the viewer. For each added or edited memory, up to three are listed under the summary line ("where it came from: ... created_by=agent,
type=user; ... a chat was active at the time"), with a line counting any more and a reminder that it is evidence, not proof. The text is cleaned for display like
everything else memdebug shows. Other kinds of store describe no source and print nothing new.
Documented
- Open WebUI: a memory the model saves itself looks like one added by hand. Tried on a real installation: a memory saved by the model through Open WebUI's
nativeadd_memorytool carries the samecreated_by: manuallabel as one added in Settings, and in a Temporary Chat the timing line says "consistent with being
added by hand". The label and the timing cannot separate the two (docs/agents.md, docs/threat-model.md).memdebug watchstill records every add, edit and removal. - Why an Open WebUI model may never save a memory, and an example router that fixes it (docs/open-webui-tools.md). A router (Pipe) function
that rebuilds the request to Ollama drops thetoolslist, so the model can only pretend to save. The page describes what was seen and what was tried, and
docs/examples/open-webui-smart-router.py is a router that forwards the tools. It is an example, not part of memdebug, and CI does not run it.
Fixed
- A git store with a very long history is no longer called quiet. memdebug reads at most 100,000 file changes of a git store's history, and at most
100,000,000 characters of old and new text (every edit counts both versions, so a note of about 20 KB edited 2,500 times reaches the second limit first).
Past either limit the reader stops, the newest history is the part that is missing, and the check for notes edited behind git's back is switched off: such an
edit is neither flagged nor recorded.memdebug checkstill said "quiet, nothing new" with exit code 0, with only a warning after the summary. It now says
"NOT READ IN FULL: ... the history is too long to read in full, so edits made outside git are NOT being checked" and exits 1. The gap itself remains: reading
only the commits since the last look is not built yet. See docs/threat-model.md.
memdebug 0.6.1
Added
- Double-clicking the stand-alone Windows program now explains itself. Before, it printed its help and exited, so the console window opened and closed
at once and nobody could read anything. Now, opened by double-click (a stand-alone build on Windows, no arguments, a console of its own, nothing redirected),
it says that memdebug is a command-line program, shows three commands to type in PowerShell with the real file name, and waits for Enter. Started from a
terminal, or with any argument, it behaves as before. The release smoke test starts the program like that on Windows and fails if it exits at once.
Documentation
- The Windows notes now describe the SmartScreen warning as it appears for a browser download of the stand-alone program ("Run anyway" / "Don't run" at
once, publisher "Unknown publisher"), and say how to check the file first.
memdebug 0.6.0
Added
- Stand-alone programs. The release workflow now builds
memdebugfor Windows (x64), Linux (x64) and macOS (arm64) as a single file that needs no Python
(PyInstaller), smoke-tests each on its own operating system, and attaches them to a GitHub release with aSHA256SUMSfile and a build attestation. CI
builds and tests them on every push. They are not code-signed (SmartScreen or Gatekeeper may warn), do not include Mem0, and still need git. See
docs/releasing.md.
Fixed
memdebug selftestin a build without its own Python: the tripwire checks could not start their tripwire and said SKIP, and "a hung process tree is killed"
passed without testing anything (it started a program that exits at once). A stand-alone build now starts a hiddenselftest-helpercommand with a fixed set
of jobs instead. A source install is unchanged.