mem0ry4ai
Memorie persistenta, local-first, pentru agenti de cod. Asistentul tau AI isi aminteste in sfarsit proiectele intre sesiuni.
Construit pentru Claude Code — si folosibil din orice client MCP
(Gemini CLI, Cursor, OpenCode…) printr-un server MCP integrat.
Python stdlib + PHP 8 · fara Docker, fara baza vectoriala, fara chei API · GPL-2.0
Vezi-l la treaba
O sesiune salveaza o lectie. Alta, mai tarziu, intreaba in cuvinte obisnuite, „why were
requests timing out?”, si primeste inapoi exact lectia de atunci, apoi reia proiectul de
unde ramasese. Fara cloud, fara baza de date vectoriala: un CLI peste fisiere markdown pe care
agentul le citeste la inceputul fiecarei sesiuni.
Ce este mem0ry4ai?
Agentii de cod ca Claude Code uita totul intre sesiuni — fiecare
capcana pe care ati depanat-o impreuna, fiecare decizie luata, fiecare „unde am ramas?"
cand revii la un proiect dupa o luna. mem0ry4ai rezolva asta: stocheaza cunostintele
durabile (capcane, decizii, fapte, comenzi, preferinte, todos, status de proiect)
in markdown simplu versionat cu git si injecteaza automat felia
relevanta la inceputul fiecarei sesiuni — scoped pe proiectul in care lucrezi.
Am studiat intai peisajul existent (claude-mem, basic-memory, mem0, Letta/MemGPT,
Graphiti, serverul oficial MCP de memorie) si am proiectat impotriva esecurilor
recurente: modele care uita sa cheme tool-urile de salvare, baze vectoriale fragile,
memorie care putrezeste silentios si auto-extractie supra-increzatoare.
Foloseste-l din orice agent (MCP)
mem0ry4ai vine cu un server MCP integrat (Model Context Protocol), deci acelasi
store de memorie functioneaza cu orice agent compatibil MCP — nu doar
Claude Code. O singura comanda, python3 mem.py mcp, expune memoria peste stdio
JSON-RPC; indrepti Claude Code, Gemini CLI, Cursor, OpenCode sau orice
alt client MCP spre ea si pot sa-si aminteasca si sa salveze cunostinte durabile la cerere.
- Opt unelte
memory_search, memory_get, memory_list, memory_resume, memory_add, memory_note/memory_promote (working memory) si session_search — recall prin cautare hibrida, browse, un briefing „unde am ramas?”, scrierea de memorii noi (secretele redactate automat), notite de lucru si cautare in conversatiile tale brute din trecut.
- Push si pullClaude Code primeste memoriile push la SessionStart prin hook; orice alt agent le trage la cerere prin MCP. Un singur store, doua cai de livrare.
- Scris de mana, zero dependinteServerul e Python stdlib pur — fara SDK, fara
pip install. Ghidajul pentru model calatoreste prin campul instructions al protocolului.
- Comutator de scriere
memory_add e pornit implicit; pune MEM_MCP_WRITE=0 ca sa faci un client read-only — util cand mai multi agenti impart acelasi store.
Setup-ul e o linie — inregistrezi python3 mem.py mcp ca server MCP in clientul tau
(claude mcp add …, sau o intrare mcpServers in config). In
README
ai comenzile exacte per client.
Functionalitati
- Markdown + git = sursa de adevarAuditabil, diffabil, editabil de mana. Indexul SQLite FTS5 e derivat si regenerabil — il stergi si se reface.
- Merge cu orice agent MCPUn server MCP integrat expune store-ul catre Claude Code, Gemini CLI, Cursor, OpenCode si altele — recall si scriere din orice agent folosesti, la cerere.
- Hooks deterministe de sesiuneHook-urile Claude Code injecteaza memoriile relevante la SessionStart — nu te bazezi pe model sa-si aminteasca sa le ceara.
- Supersedare, nu stergereFaptele invechite se marcheaza superseded, cu link la inlocuitor. Istoria ramane; git pastreaza tot.
- Captura cu gate de incredereAgentul cu context complet scrie direct; extractia optionala cu LLM local (Ollama) trece printr-o coada de review umana — am masurat modelele mici la confidence ~1.0 la orice.
- „Unde am ramas?" din constructieTipuri dedicate
todo si status, afisate primele la injectare si pe pagina fiecarui proiect.
- Cautare rankedFTS5 (bm25) din CLI si din web UI; optional cautare hibrida semantica printr-un embedder local mic (Ollama) cand vrei.
- Cautare in conversatiile din trecut
session_search cauta in istoricul brut de transcripturi — „despre ce am discutat acum cateva saptamani?” — peste un index FTS5 derivat, cu zero cost LLM. Secretele scoase inainte de indexare; indexul ramane doar-al-tau si nu paraseste masina.
- Scrieri constiente de injectionFiindca o memorie stocata e reinjectata in contextul agentului la fiecare sesiune, scrierile sunt semnalate cand contin formulari de tip prompt-injection — o garda non-blocking peste CLI, MCP si web, plus o comanda de audit.
- Web UI cu live updatesDashboard de sistem cu health checks, pagini per proiect, operatii bulk, navigare pe lantul de supersedare, coada de review. Bilingv EN/RO.
- „Ce vede Claude"Pagina de transparenta care randeaza exact injectarea primita de agent, cu marimea in bytes si tokens.
- Zero dependinte grelePython stdlib + PHP 8 + git. Web UI-ul ruleaza pe un launcher
php -S, pornit automat de hook-ul de sesiune.
Impact masurat
Cifre reale din monorepo-ul autorului (30 de sub-proiecte, 217 memorii active) —
inainte si dupa migrarea unui CLAUDE.md monolitic in mem0ry4ai:
- Inainte: 242.956 bytes (1.832 linii) de context incarcat la fiecare pornire de sesiune ≈ ~61k tokens.
- Dupa: ~29KB din radacina repo-ului (≈ ~7,3k tokens) sau ~19KB dintr-un sub-proiect (≈ ~4,8k tokens) — o reducere de 88–92%, scoped pe ce e relevant.
- Overhead: hook-ul de SessionStart costa 69 ms; poll-ul de live-update costa 1–4 ms cand nu s-a schimbat nimic.
- La ritmul masurat al autorului (34 de porniri de sesiune/zi), inseamna aproximativ 1,8M tokens/zi de context care nu se mai incarca — iar recall-ul a devenit mai bun, nu mai slab.
Mentiuni oneste: tokens estimati la ~4 caractere/token; cu prompt caching economiile facturate sunt mai mici decat cifrele brute; e setup-ul unui singur user, nu un studiu controlat.
Capturi de ecran
Dashboard-ul: carduri de status, health checks, activitate recenta cu atribuirea sursei, contoare live.
Pagina Legaturi: sugestii semantice (cele mai apropiate perechi nelegate, confirmate sau respinse manual) deasupra unui graf force-directed cu toate muchiile related-to / blocked-by — noduri colorate pe tip si dimensionate dupa grad, related = linie plina, blocked = intrerupta cu sageata. Fara biblioteci externe.
Proiecte: fiecare proiect dintr-o privire — memorii, todo-uri deschise, status curent. Click → pagina lui.
Pagina „unde am ramas?" per proiect — status si todo (ready vs blocate) primele.
Coada de review. Observa candidatul junk la confidence 0.95 — exact de-asta nimic nu se scrie automat.
„Ce vede Claude": injectarea exacta de la SessionStart, cu costul in bytes si tokens.
Istoric git: timeline-ul memoriei — diff-uri per commit, commit din UI. Toate capturile folosesc date demo.
Instalare
Cerinte: Python 3.9+ si git — atat. Fara PHP, fara Docker, fara pip install.
Ruleaza nativ pe macOS, Linux si Windows.
- Cloneaza repo-ul:
git clone https://github.com/cremenescu/mem0ry4ai.git
cd mem0ry4ai
- Leaga-l de Claude Code (inregistreaza hook-urile cu interpretorul tau Python):
# macOS / Linux
python3 hooks/install.py --target user
# Windows (PowerShell)
py hooks\install.py --target user
apoi reporneste Claude Code (sau /clear). De-acum fiecare sesiune porneste cu memoriile tale
injectate, iar web UI-ul porneste singur la http://127.0.0.1:8841/.
- Le poti rula si manual — web UI:
./mem.py serve (py mem.py serve pe Windows);
CLI: ./mem.py add / list / search / resume.
Walkthrough complet pe Windows — transcript real de instalare (username inlocuit cu xxxxx)
Pe un Windows 11 curat, fara Python si fara git, instaleaza-le cu winget, apoi
inchide si redeschide PowerShell (PATH-ul se actualizeaza doar in ferestre noi):
PS C:\WINDOWS\system32> winget install -e --id Python.Python.3.12
Found Python 3.12 [Python.Python.3.12] Version 3.12.10
Successfully installed
PS C:\WINDOWS\system32> winget install -e --id Git.Git
Found Git [Git.Git] Version 2.54.0
Successfully installed
PS C:\WINDOWS\system32> py --version
Python 3.12.10
PS C:\WINDOWS\system32> git --version
git version 2.54.0.windows.1
PS C:\WINDOWS\system32> cd $env:USERPROFILE
PS C:\Users\xxxxx> git clone https://github.com/cremenescu/mem0ry4ai.git
Cloning into 'mem0ry4ai'...
Receiving objects: 100% (368/368), 4.01 MiB | 6.30 MiB/s, done.
Resolving deltas: 100% (211/211), done.
PS C:\Users\xxxxx> cd mem0ry4ai
PS C:\Users\xxxxx\mem0ry4ai> py hooks\install.py --target user
installed in C:\Users\xxxxx/.claude/settings.json
Restart Claude Code (or /clear) so the hooks get loaded.
Daca nu ai winget (Windows mai vechi), instaleaza Python de pe python.org
— bifeaza „Add python.exe to PATH” — si git de pe git-scm.com,
apoi continua de la verificarea versiunilor.
Daca apoi Claude Code zice „Git is required for local sessions” — rula
inainte sa instalezi git, deci nu stie unde e bash.exe. Indica-i git-bash-ul si
reporneste complet:
# confirma calea (locatia default de instalare)
Test-Path "C:\Program Files\Git\bin\bash.exe"
# daca intoarce True:
[Environment]::SetEnvironmentVariable("CLAUDE_CODE_GIT_BASH_PATH", "C:\Program Files\Git\bin\bash.exe", "User")
# daca git e in alta parte, rezolva bash.exe dinamic:
$bash = Join-Path (Split-Path (Split-Path (Get-Command git).Source)) "bin\bash.exe"
[Environment]::SetEnvironmentVariable("CLAUDE_CODE_GIT_BASH_PATH", $bash, "User")
Apoi inchide Claude Code complet (verifica system tray-ul si Task Manager-ul — citeste
variabila doar la pornire) si redeschide-l. Hook-urile se incarca la urmatoarea sesiune, iar web UI-ul apare la
http://127.0.0.1:8841/.
Windows e first-class — fara WSL, fara PHP. Calea clone + install.py inregistreaza
hook-urile cu interpretorul tau, deci ruleaza fara python3 in PATH. (Instalarea printr-o
comanda — claude plugin install mem0ry4ai@mem0ry4ai — e cea mai rapida pe macOS/Linux/WSL.)
Datele raman ale tale. Totul traieste in store/*.md pe masina ta,
versionat cu git-ul tau local. Fara cloud, fara telemetrie, fara chei API.
Ce nu exista inca
- Sync multi-calculator — partajarea aceluiasi store de memorie intre mai multe PC-uri (gandit, neconstruit inca).
- Autentificare pe web UI (gandit pentru localhost).
- Injectare automata (push) la pornirea sesiunii pentru alti agenti in afara de Claude Code — ei trag memoriile la cerere prin serverul MCP, dar inca nu exista auto-injectare la SessionStart pentru ei.
Licenta & multumiri
mem0ry4ai e publicat sub GPL-2.0-or-later.
Construit cu Python si SQLite FTS5 — si o neincredere sanatoasa in modelele de limbaj supra-increzatoare.
Changelog
Cele mai importante release-uri GitHub — cele mai noi primele. Pe GitHub ai fiecare release de detaliu.
Igiena memoriei — intretinerea de care chiar are nevoie un store care creste de luni de zile.
- Consolidare, cu review obligatoriu —
mem.py consolidate grupeaza memoriile aproape identice si propune fuziunea pe un branch git separat, mem-consolidation. Nimic nu se rescrie pe main pana nu citesti diff-ul si faci tu merge-ul.
- Intretinere programata — un job launchd local reconstruieste indexul, re-embed-uieste ce s-a schimbat, raporteaza notele de lucru ramase in urma si comite store-ul cat timp tu esti in alta parte. Implicit doar raporteaza; stergerea e optionala si reversibila prin git.
- Injectie constienta de acces — memoriile pe care chiar le folosesti urca in capul bugetului de sesiune, iar un plafon per record impiedica o singura nota lunga sa manance toata injectia.
- Provenienta pe sesiune — fiecare memorie retine conversatia care a scris-o, ca sa poti raspunde si peste luni la „de unde vine afirmatia asta?”.
- Ingestie prin HTTP —
POST /api/propose permite agentilor si scripturilor care nu vorbesc nici MCP, nici CLI sa propuna o memorie: doar in coada, redactata si scanata, niciodata direct in store.
v0.15.1
· 2026-07-22
— blocarea injectiei prin memorie stocata
Intarire — o memorie stocata nu mai poate falsifica o regula de incredere.
- Injectie prin memorie stocata, blocata — body-ul sau summary-ul unei memorii putea strecura pana acum chiar delimitatorii de record ai store-ului sau un titlu de sectiune fals, permitand unei scrieri cu incredere redusa (ex.
memory_add al unui agent) sa forjeze un al doilea record, sau sa si-l escaladeze pe al sau, la priority: critical, injectat apoi in capul fiecarei sesiuni. Scrierile neutralizeaza acum acei delimitatori, iar un body injectat nu mai poate forja o sectiune ## Critical rules in contextul de SessionStart. Markdown-ul obisnuit din notele tale ramane neatins.
v0.15.0
· 2026-07-03
— cautare in sesiuni + scanare de injection la scriere
Cauta in conversatiile tale din trecut — si o garda impotriva memoriilor otravite.
- Cautare in sesiuni — o unealta noua
session_search (si mem.py sessions) cauta in istoricul brut al conversatiilor, nu doar in store-ul distilat: „despre ce am discutat acum cateva saptamani?” peste un index FTS5 derivat al transcripturilor, cu zero cost LLM. Secretele sunt scoase inainte de indexare; indexul e doar-al-tau si gitignored. Aduce serverul MCP la opt unelte.
- Scanare de injection la scriere — o memorie e semnalata daca contine formulari de tip prompt-injection („ignora instructiunile si…”), fiindca o memorie stocata e reinjectata in contextul agentului la fiecare sesiune. Un ajutor la scriere non-blocking peste CLI, MCP si web, plus
mem.py audit.
v0.12.0
· 2026-06-18
— o pagina de setari pentru power-useri
O pagina de setari pentru power-useri — si config care ajunge in sfarsit la fiecare proces.
- Pagina de setari in web UI — 20 de parametri reglabili (bugetul si pragurile de injectare, ranking-ul de cautare, garda de duplicate, embeddings, comutatoare de siguranta) grupati, validati si plafonati, fiecare cu o descriere clara, un badge „cand se aplica” si reset-la-implicit. Gata cu editatul codului ca sa schimbi o constanta.
- Config cross-proces — setarile se persista in
.mem-local.env si sunt citite acum de hook, CLI si serverul MCP, nu doar de serverul web. Deci schimbarea bugetului de injectare chiar schimba ce se injecteaza; o valoare exportata in shell are in continuare prioritate la incarcare.
v0.11.0
· 2026-06-17
— Server MCP: foloseste-ti memoria din orice agent
- Server MCP integrat (
mem.py mcp) — store-ul e acum accesibil din orice client MCP (Gemini CLI, Cursor, OpenCode, …), nu doar Claude Code. Cinci unelte (memory_search / get / list / resume / add), scrise de mana pe Python stdlib (fara SDK, fara pip install), cu ghidajul pentru model livrat prin campul instructions al protocolului. Uneltele de citire mereu pornite; scrierea gardata de MEM_MCP_WRITE.
- File-locking intre scriitori — fiecare scriitor de store (CLI, web UI, MCP, mai multi agenti) se serializeaza acum printr-un lock reentrant cu furt de lock invechit pe baza vietii PID-ului, deci scrierile concurente nu se intrepatrund si nu pierd un append.
v0.10.3
· 2026-06-17
— Fuziune de cautare RRF + rerank pe potrivire de fraza
- Ranking-ul keyword (bm25 + recenta) si cel semantic se fuzioneaza acum prin Reciprocal Rank Fusion (k=60) in loc de un blend ad-hoc 0.5/0.5 — robust la nepotrivirea de scala bm25-vs-cosinus. Un rerank usor urca o potrivire exacta de fraza din summary spre varf. Reglabil prin
MEM_RRF_K.
v0.10.0
· 2026-06-17
— pragul de sugestii setabil din UI
- Pagina Legaturi a primit un control Prag pentru „legaturi sugerate”, citit live (fara reload de server) si persistat in
.mem-local.env ca sa supravietuiasca restartului. (v0.10.1–v0.10.2 i-au slefuit stilul.)
v0.9.0
· 2026-06-17
— profil „Despre mine” + redactare pe orice cale de scriere
- Despre mine — un tip de memorie
profile si o pagina web unde te descrii; e injectat primul la fiecare SessionStart ca asistentul sa-si adapteze ajutorul la tine.
- Redactare pe orice cale de scriere —
update_memory redacteaza acum si el secretele (nu doar add), deci editarea unei memorii nu poate scapa un credential in store. (v0.9.1 a adaugat auto-reload al serverului web la schimbarea codului; v0.9.2 arata unde e stocat profilul.)
v0.8.0
· 2026-06-16
— editor CLAUDE.md + fix-ul real pentru „CSRF” in web UI
- Orice mutatie din web UI intorcea „CSRF” de la rescrierea v0.7.0: JS-ul trimitea corpul ca
FormData (multipart), dar serverul parseaza doar urlencoded, deci tokenul nu era citit niciodata. Reparat trimitand URLSearchParams.
- Editor CLAUDE.md in web UI — editezi fisierele
CLAUDE.md ale proiectelor cu scrieri atomice si backup.
v0.7.0
· 2026-06-16
— Web UI numai-Python (PHP scos, nativ pe Windows)
Web UI-ul e acum Python pur — PHP scos, nativ pe macOS, Linux si Windows.
- Web UI rescris din PHP intr-un
http.server stdlib (mem.py serve). Aceleasi pagini, byte-cu-byte, in browser — doar motorul s-a schimbat. Verificat pagina-cu-pagina vs UI-ul PHP vechi, paritate 1:1. Cerintele scad la doar Python 3.9+ si git: fara PHP, fara bash, fara Docker, fara pip install.
- Un singur cod, un singur parser — CLI-ul si web UI-ul folosesc acum un singur parser + strat de scriere Python in
mem.py. Al doilea parser (lib.php) si testul de conformance care-i tinea sincronizati sunt sterse — clasa aia de bug-uri de drift a disparut.
- Windows nativ — fara WSL, fara PHP: clone, apoi
py mem.py serve. Hook-urile se inregistreaza cu interpretorul tau, deci ruleaza fara python3 in PATH.
v0.6.3
· 2026-06-16
— Sugestii grupate pe proiect, flush la compactare, resume
- Sugestii de legaturi grupate pe proiect — pagina Legaturi organizeaza sugestiile in benzi per proiect (doua nuante subtile alternate, nu un curcubeu), ca sa parcurgi suprapunerile unui proiect pe rand. Banda dispare cand legi sau respingi ultima sugestie din ea.
mem.py resume — un briefing „unde am ramas?” pentru un scope (status curent + todo-uri ready/blocate + recente), sau un overview cu o linie per proiect fara --scope. Oglindeste ce injecteaza SessionStart, din terminal.
- Flush la granita de compactare — auto-commit + auto-embed care rulau la final de sesiune ruleaza acum si la PreCompact, deci o sesiune lunga care se compacteaza la mijloc nu pierde nimic, iar cautarea/sugestiile raman la zi — fara sa depinda de un preaviz inainte de compactare.
v0.6.2
· 2026-06-15
— Avertizare duplicat la add + auto-embed la final de sesiune
- Avertizare de duplicat la scriere —
mem.py add cauta acum semantic inainte sa salveze si, daca exista deja un duplicat apropiat de acelasi tip, afiseaza o avertizare (nu blocheaza) cu cele mai apropiate + comanda supersede gata de rulat. Memoriile suprapuse se contopesc in loc sa se adune. Reglabil cu MEM_DUP_THRESHOLD; dezactivabil cu --no-dup-check.
- Auto-embed la final de sesiune — hook-ul SessionEnd reimprospateaza automat vectorii semantici (detasat, non-blocking, incremental), deci cautarea hibrida si sugestiile de pe pagina Legaturi reflecta memoriile scrise in sesiune fara sa rulezi
mem.py embed manual.
v0.6.1
· 2026-06-15
— Beculet auto-detect pt modul de cautare + fix semantic-pe-no-keyword-match
- Beculet de status la cautare — fara bifa de tinut minte. Pagina Memorii auto-detecteaza embedder-ul local si arata ce a facut efectiv fiecare cautare: verde = Ollama e pornit, deci cautarea e keyword + semantic; gri = a revenit la cautare clasica keyword, cu motivul (Ollama oprit / fara vectori) la hover. Panoul de health din dashboard raporteaza si el embedder-ul.
- Fix: cautarea semantica porneste si cand nimic nu prinde keyword — inainte cautarea intorcea gol imediat ce interogarea keyword nu gasea randuri, sarind complet stratul semantic (exact scopul lui). Acum scoate la suprafata potriviri semantice pentru interogari ca
4090 → notitele tale despre GPU, la fel ca mem.py search.
- Robustete — etapele keyword si semantic sunt acum izolate, deci o eroare in stratul semantic nu mai poate eticheta gresit un rezultat keyword bun drept „substring”; iar un store de vectori absent e diferentiat de unul necitibil.
mem.py search afiseaza modul folosit; --no-semantic forteaza keyword.
v0.6.0
· 2026-06-15
— Tip procedural, supersedare bi-temporala, cautare hibrida, sugestii de legaturi
- Sugestii semantice de legaturi — pagina Legaturi propune acum cele mai apropiate perechi nelegate ca muchii
related-to sugerate; tu confirmi sau respingi fiecare. Nimic nu se leaga automat.
- Cautare hibrida (optionala) — cu Ollama + un embedder mic (
all-minilm, ~40 MB), cautarea fuzioneaza scorul keyword cu similaritate cosinus pe vectori locali, asa ca „auth token expiry” gaseste „JWT TTL”. Doar regasire — nu decide si nu scrie, deci nu atinge gate-ul de incredere; fara Ollama, fallback tacut la keyword.
- Supersedare bi-temporala — supersedarea retine acum cand un fapt a incetat sa fie valabil (
invalidated) si de ce (invalid-reason), distinct de created. Istoric complet „ce-am crezut si cand”.
- Tip
procedural pentru runbook-uri reutilizabile, un camp files care leaga o memorie de fisierele pe care le priveste (indexat + chips) si ranking pe recenta ca memoriile mai noi sa castige la egalitate.
v0.5.1
· 2026-06-15
— Un graf vizual al legaturilor
- Pagina Legaturi — muchiile
related-to / blocked-by se deseneaza acum ca graf force-directed: noduri colorate pe tip si dimensionate dupa numarul de legaturi, related = linie plina, blocked = intrerupta cu sageata. Trage ca sa rearanjezi, click pe nod → memoria lui, hover evidentiaza vecinii; lista detaliata dedesubt.
- Fara biblioteci externe — o mica simulare vanilla-JS + SVG, complet offline (fara CDN, fara D3), citind aceleasi date ca lista. Acces printr-un card Legaturi si o intrare in bara de sus.
v0.5.0
· 2026-06-15
— Relatii intre memorii, ready work, web UI restructurat
- Relatii — legi memorii inrudite cu
mem.py link (related-to): un gotcha ↔ decizia care l-a cauzat, un status ↔ todo-urile lui. Deliberat, nu automat.
- Ready work —
blocked-by pe todo-uri + mem.py ready listeaza ce poti ataca acum; pagina de proiect separa ready de blocate.
- Web UI restructurat —
index.php e dashboard, lista in memories.php, o pagina noua projects.php. Bara de sus partajata + breadcrumb peste tot.
v0.4.0
· 2026-06-15
— Injectare cu buget propriu, redactare de secrete, plugin
- Reguli critice + buget de injectare — injectarea de la SessionStart se taie singura sub pragul harness-ului. Regulile
priority: critical intra mereu primele; restul umple MEM_INJECT_BUDGET, iar orice taietura e anuntata.
- Redactare de secrete pe orice cale de scriere (8 pattern-uri) — redactate inainte sa ajunga la LLM-ul local.
mem.py audit raporteaza ce e deja in store.
- Plugin Claude Code —
claude plugin install mem0ry4ai@mem0ry4ai; datele in ~/.mem0ry4ai. Plus cautare pe data si pagina Istoric git live.
v0.3.0
· 2026-06-10
— Checkpoint git automat la finalul sesiunii
- Auto-checkpoint — hook-ul de SessionEnd comite singur
store/; memoriile scrise in sesiune ajung in istoricul git fara nicio actiune manuala.
- Panoul Health: store-ul necomis e o stare gri informativa, nu o eroare rosie — e conditia normala mid-sesiune.
- Butonul de commit din pagina Istoric git ramane pentru checkpoint-uri manuale cu mesaj propriu.
v0.2.0
· 2026-06-10
— Pagina Istoric git
- Pagina Istoric git — timeline-ul store-ului in web UI: fiecare commit care atinge
store/, cu diff colorat incarcat lazy.
- Commit din UI — schimbarile necomise din store sunt listate, cu buton care comite doar fisierele de memorie (autor
mem0ry4ai web, fara signing, nu atinge codul).
- README: sectiunea Measured impact (cifre reale before/after) + galerie de screenshots cu date demo.
v0.1.0
· 2026-06-10
— Primul release public
- Markdown + git ca sursa de adevar — auditabil, supersedare-nu-stergere; indexul SQLite FTS5 e derivat si regenerabil.
- Hooks Claude Code: injectare la SessionStart (scoped per proiect, index plafonat multi-proiect din radacina unui monorepo), captura de pointeri la transcript la SessionEnd/PreCompact.
- Captura cu gate de incredere: agentul cu context scrie direct; extractia offline cu LLM local (Ollama) trece prin coada de review umana.
- Tipuri dedicate
todo si status — primele la injectare si in UI.
- Web UI: dashboard cu health checks si live updates, pagini per proiect, cautare FTS5, operatii bulk, lant de supersedare, preview „Ce vede Claude", coada de review. Bilingv EN/RO.
- Server standalone (
php -S cu PHP_CLI_SERVER_WORKERS), pornit automat de hook-ul de sesiune. Binarele se rezolva din PATH cu override-uri din env.