{"id":1838,"date":"2026-10-10T10:36:18","date_gmt":"2026-10-10T13:36:18","guid":{"rendered":"https:\/\/www.linuxpro.com.br\/?p=1838"},"modified":"2026-10-10T10:48:49","modified_gmt":"2026-10-10T13:48:49","slug":"ai-memory-a-evolucao-da-2-4-a-2-6-3","status":"publish","type":"post","link":"https:\/\/www.linuxpro.com.br\/en\/2026\/10\/ai-memory-a-evolucao-da-2-4-a-2-6-3\/","title":{"rendered":"ai-memory: the evolution from 2.4 to 2.6.3"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/10\/ai-memory-evolucao-2-4-2-6-3.webp\" alt=\"Mascote LinuxPro instala um m\u00f3dulo de mem\u00f3ria em um laborat\u00f3rio, acompanhado do caramelo ciborgue, com o logo ai-memory ao fundo.\" width=\"1486\" height=\"856\" \/><\/p>\n<p>A memory for agents doesn't improve only when it learns to store more text. It needs to discover which project is in use, preserve what matters, retrieve the right context, and not turn internal messages into its own preferences. The evolution of <a href=\"https:\/\/github.com\/akitaonrails\/ai-memory\">ai-memory<\/a>, by F\u00e1bio Akita, between 2.4.0 and 2.6.3 covers precisely these problems.<\/p>\n<p>This article follows the main features and fixes of each release in that interval, focusing on the impact for those using agents on Linux. To install or update, follow the <a href=\"\/en\/2026\/09\/ai-memory-instalar-configurar-agentes-linux\/\">ai-memory tutorial on Linux<\/a>, revised for 2.6.3. Here, the goal is to understand the evolution, not to repeat the installation.<\/p>\n<div style=\"background:#fff8e1;border-left:4px solid #8b1a1a;padding:.8em 1em;margin:1em 0\"><strong>Scope as of 10\/10\/2026:<\/strong> the most recent stable version consulted is <a href=\"https:\/\/github.com\/akitaonrails\/ai-memory\/releases\/tag\/v2.6.3\">2.6.3<\/a>. The dates below follow the changelog. There is an important difference in the last milestone: it records 09\/10, while GitHub published the artifacts on 10\/10, at 03:34 UTC. Features only planned are not treated as delivered.<\/div>\n<h2>The starting point: memory beyond a single conversation<\/h2>\n<p>ai-memory combines a Markdown wiki with an MCP-accessible server. Hooks feed in session observations; agents consult decisions and resume work via handoffs. Pages are readable outside the application, but a complete backup also needs to store the database state, not just copy the wiki. These foundations already existed before 2.4.<\/p>\n<p>It is also worth separating the layers: hooks are not full transcripts, embeddings are not a generative LLM, and consolidation is not synonymous with truth. A retrieved note remains historical evidence, subject to error and revision \u2014 never an authorization to execute instructions contained in it.<\/p>\n<figure><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/10\/ai-memory-arquitetura-refinada-v3.webp\" alt=\"Arquitetura do ai-memory: hooks enviam eventos, MCP consulta e opera a mem\u00f3ria, e o servi\u00e7o local mant\u00e9m p\u00e1ginas Markdown, SQLite e embeddings; o envio para uma LLM externa \u00e9 opcional.\" width=\"1200\" height=\"1000\" loading=\"lazy\" \/><figcaption>Three distinct flows: capture via hooks, operations via MCP, and optional external processing. The project scope and trust boundaries must be preserved across all of them.<\/figcaption><\/figure>\n<h2>21\/09 \u2014 2.4.0: taking care of memory that ages<\/h2>\n<p>A <a href=\"https:\/\/github.com\/akitaonrails\/ai-memory\/blob\/v2.4.0\/CHANGELOG.md\">2.4.0<\/a> expanded the handling of old and repetitive pages. Instead of simply accumulating sessions, it began offering mechanisms to compact episodic content and group near-duplicates. Deduplication of old groups uses existing embeddings, without text generation by LLM, and is disabled by default.<\/p>\n<p>The <em>dream pass<\/em> it follows another path: an LLM can rewrite a group of pages into a coherent synthesis during idle periods. It requires explicit activation, provider, and embeddings. Merged sources are superseded, with recoverable history, instead of being simply deleted.<\/p>\n<p>Evidence-based confidence and warnings about possible contradictions also came in. The score does not change ranking by default; the lint is consultive and does not prove that two statements actually contradict each other. Outside the memory engine, the menu bar companion for macOS arrived, as well as the MCP transport update to handle security warnings.<\/p>\n<h2>25\/09 \u2014 2.4.1: more reliable restoration and timeline<\/h2>\n<p>A <a href=\"https:\/\/github.com\/akitaonrails\/ai-memory\/blob\/v2.4.1\/CHANGELOG.md\">2.4.1<\/a> attacked a concrete operational risk: <code data-no-translation=\"\">restore --force<\/code> it could remove active data before discovering that the backup was corrupted. The restore now extracts and validates in a temporary area next to the data, before swapping the directories.<\/p>\n<p>The <code data-no-translation=\"\">backfill<\/code>, used to import previous sessions, now leverages the timestamps of the transcript events. Previously, an old conversation could appear as if it had occurred on the day of the import. The fix improves historical readability; it does not mean that all previously imported records are automatically corrected.<\/p>\n<p>Another relevant fix removed the parameter <code data-no-translation=\"\">temperature<\/code> of requests to 6 GPT models on the affected providers. Rejecting that parameter was breaking consolidation, lint, and bootstrap. There were also fixes in the interpretation of pages with CRLF line endings and in the OMP tools registration.<\/p>\n<h2>29\/09 \u2014 2.4.2: sanitize before cutting<\/h2>\n<p>A <a href=\"https:\/\/github.com\/akitaonrails\/ai-memory\/blob\/v2.4.2\/CHANGELOG.md\">2.4.2<\/a> fixed the processing order of the notes titles. A secret cut off before sanitization could become a fragment too short for the detector to recognize. The solution was to clean first and apply the size limit afterwards.<\/p>\n<p>Queries with <code data-no-translation=\"\">workspace<\/code> and <code data-no-translation=\"\">project<\/code> explicit clauses also began receiving the reserved global scope preferences. This brought the behavior of static clients closer to the documented contract, without turning an ordinary query into an unrestricted search across all projects.<\/p>\n<p>The release also expanded the documentation for OpenRouter and for Git mirror backups. Here there is an important editorial distinction: documenting a compatible endpoint does not mean creating a new provider, and a private repository is not the same as an encrypted backup.<\/p>\n<h2>30\/09 \u2014 2.5.0: daily operation and identity of projects<\/h2>\n<p>A <a href=\"https:\/\/github.com\/akitaonrails\/ai-memory\/blob\/v2.5.0\/CHANGELOG.md\">2.5.0<\/a> brought the native updater <code data-no-translation=\"\">ai-memory upgrade<\/code> for release-based installations, checking checksum and reapplying registered hooks. RPMs for Fedora and a web page for triaging improvement proposals also arrived.<\/p>\n<p>In identifying projects, the Git remote gained a central role: clones of the same repository no longer depend solely on the folder name. This helps those who switch between checkouts and worktrees, but does not eliminate the need to check the resolved scope.<\/p>\n<p>For Portuguese content, configurable stopwords appeared in textual search and a safety margin for the approximate token budget of the consolidation. This is not a universal promise of quality: they are controls to adapt retrieval and limits to the corpus.<\/p>\n<p>For old imports with wrong dates, <code data-no-translation=\"\">repair-backfill-timestamps<\/code>, with simulation by default. Managed execution gained environment options and optional integration with <a href=\"https:\/\/github.com\/akitaonrails\/ai-jail\">ai-jail<\/a>. The companion <code data-no-translation=\"\">ai-memory-relay<\/code> added a local queue for external event producers. Sandbox and relay are optional components, not prerequisites of the local server.<\/p>\n<h2>01\/10 \u2014 2.5.1 and 2.5.2: permissions, isolation, and recovery<\/h2>\n<p>A <a href=\"https:\/\/github.com\/akitaonrails\/ai-memory\/blob\/v2.5.1\/CHANGELOG.md\">2.5.1<\/a> fixed arguments and warnings of the integration with ai-jail. It also removed claims of protection that the mode <code data-no-translation=\"\">--true-yolo<\/code> did not deliver. Disabling agent confirmations is not a security mechanism; the client's own rules remain relevant.<\/p>\n<p>On the capture side, POSIX paths starting with two slashes could be confused with Windows UNC paths and bypass exclusions. Classification started taking the host into consideration. There was also improved handling for resuming an execution after an interruption leaves a temporary usage lease active.<\/p>\n<p>A <a href=\"https:\/\/github.com\/akitaonrails\/ai-memory\/blob\/v2.5.2\/CHANGELOG.md\">2.5.2<\/a> added explicit selection of capabilities and credentials for ai-jail and fixed the Git index of wiki checkpoints. More importantly in multi-user installations: browsing related pages started filtering authorization at each hop. The flaw exposed metadata of restricted pages, not their bodies. Sending messages via the CLI also started adhering to the same admission policy applied in MCP.<\/p>\n<h2>07\/10 \u2014 2.6.0: preferences span across projects<\/h2>\n<p>The highlight of <a href=\"https:\/\/github.com\/akitaonrails\/ai-memory\/blob\/v2.6.0\/CHANGELOG.md\">2.6.0<\/a> was the cross-project profile: recurring work patterns can follow the user when switching repository or agent. It is enabled by default on the single-operator server; the multi-user scenario requires specific configuration. These preferences have lower priority than current instructions, repository rules, and project memory.<\/p>\n<p>The commands <code data-no-translation=\"\">backup-agents<\/code> and <code data-no-translation=\"\">restore-agents<\/code> started taking care of client configurations, skills, plugins, and instructions \u2014 a different set from the memory backup. Agent restoration starts in simulation mode.<\/p>\n<p>Handoffs gained controls to prevent automatic consumption at launch and automatic creation at shutdown. Managed runs can now start with a warning when the server is unavailable; <code data-no-translation=\"\">--require-server<\/code> restores the connectivity requirement.<\/p>\n<p>Project-scoped Claude Code hooks, coordinate diagnostics, project listing, and the exporter also arrived. <code data-no-translation=\"\">ai-memory-wikisync<\/code>. The latter is still one-way: it does not delete files nor run Git. The release also fixed the updater that was rejecting auxiliary files from official packages.<\/p>\n<h2>08\/10 \u2014 2.6.1: protect the capture and the curated content<\/h2>\n<p>A <a href=\"https:\/\/github.com\/akitaonrails\/ai-memory\/blob\/v2.6.1\/CHANGELOG.md\">2.6.1<\/a> extended the \u201csanitize before truncate\u201d logic to observation bodies, native spool, and the event log of managed runs. The goal was to prevent a secret split by the size limit from surviving as an unrecognized fragment.<\/p>\n<p>Session pages written by the agent and marked as consolidated by it are now preserved on shutdown and in checkpoints. Previously, an automatic summary could overwrite that work.<\/p>\n<p>There were also improvements to the event queue during server unavailability, handling of temporary responses in shell and PowerShell hooks, and filters for expired pages in graph relations. The profile also became more conservative: a single-project \u201calways do this\u201d sentence should not become a general preference without sufficient evidence or explicit global scope.<\/p>\n<h2>08\/10 \u2014 2.6.2: separate the human request from internal noise<\/h2>\n<p>A <a href=\"https:\/\/github.com\/akitaonrails\/ai-memory\/blob\/v2.6.2\/CHANGELOG.md\">2.6.2<\/a> fixed handoffs that were confusing internal agent notifications with the user's last request. Context passing now looks for the request actually written by the person in the cases covered by the fix.<\/p>\n<p>The version also resolved compound workspace\/project labels in documented situations and adjusted the Pi integration schemas for Moonshot\/Kimi providers that were rejecting JSON Schema references.<\/p>\n<p>The most important warning for those who were already using 2.6.0 came in the profile documentation: <code data-no-translation=\"\">profile rebuild<\/code> does not clean old entries. Updating the software does not automatically undo preferences learned improperly. The guidance is to review and individually remove what does not represent the user.<\/p>\n<h2>09\/10 \u2014 2.6.3: isolation and integrity in real-world use<\/h2>\n<p>A <a href=\"https:\/\/github.com\/akitaonrails\/ai-memory\/blob\/v2.6.3\/CHANGELOG.md\">2.6.3<\/a> closes gaps that appear when there are many projects and sessions:<\/p>\n<ul>\n<li><strong>MCP messages:<\/strong> send, consume, or cancel messages no longer accepts a project merely inferred by the server, with no link to the session. Static clients must declare the scope.<\/li>\n<li><strong>Session deletion:<\/strong> delayed events must not recreate a purged session; associated profile candidates are also removed.<\/li>\n<li><strong>Workspace change:<\/strong> messages, evidence, and other records follow the project's movement.<\/li>\n<li><strong>Profile:<\/strong> client-injected instructions and history blocks are no longer treated as the user's words in the fixed cases.<\/li>\n<li><strong>Hooks:<\/strong> the installer fixes missing auxiliary files; TypeScript plugins now keep events in the face of temporary responses, such as HTTP 429.<\/li>\n<li><strong>Large histories:<\/strong> the search for transcripts prioritizes the requested ID, avoiding losing sessions outside the old scan window.<\/li>\n<\/ul>\n<p>There are also fixes in the tool capture of Cursor and Kiro. The practical effect is to reduce empty context, incorrect scope, and event loss \u2014 not to promise infallible memory.<\/p>\n<h2>Timeline<\/h2>\n<figure><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/10\/ai-memory-evolucao-versoes-v3.webp\" alt=\"Evolu\u00e7\u00e3o do ai-memory nas s\u00e9ries 2.4, 2.5 e 2.6, separando os principais marcos das corre\u00e7\u00f5es posteriores at\u00e9 a 2.6.3.\" width=\"1200\" height=\"1100\" loading=\"lazy\" \/><figcaption>Summary view of the evolution: memory maintenance in 2.4, operational controls in 2.5, and continuity between projects in 2.6. Updating does not automatically clean up old profile preferences.<\/figcaption><\/figure>\n<ul>\n<li><strong>21\/09\/2026 \u2014 2.4.0:<\/strong> handling of old memory, optional dream pass, and evidence diagnostics.<\/li>\n<li><strong>25\/09\/2026 \u2014 2.4.1:<\/strong> restore validated before swapping and real timestamps in backfill.<\/li>\n<li><strong>29\/09\/2026 \u2014 2.4.2:<\/strong> title sanitization before trimming and global preferences on explicit queries.<\/li>\n<li><strong>30\/09\/2026 \u2014 2.5.0:<\/strong> native upgrade, per-repository identity, and new operational controls.<\/li>\n<li><strong>01\/10\/2026 \u2014 2.5.1:<\/strong> permission, path, and resume fixes.<\/li>\n<li><strong>01\/10\/2026 \u2014 2.5.2:<\/strong> ai-jail controls and authorization on related-pages navigation.<\/li>\n<li><strong>07\/10\/2026 \u2014 2.6.0:<\/strong> profile across projects, agent backup, and wiki export.<\/li>\n<li><strong>08\/10\/2026 \u2014 2.6.1:<\/strong> sanitization and preservation of curated content.<\/li>\n<li><strong>08\/10\/2026 \u2014 2.6.2:<\/strong> more faithful handoffs and clarification on profile review.<\/li>\n<li><strong>09\/10 in the changelog; publishing in 10\/10\/2026 \u2014 2.6.3:<\/strong> message scope, session integrity, and hook reliability.<\/li>\n<\/ul>\n<h2>What this evolution changes for Linux users<\/h2>\n<p>My reading of this cycle is that the center of gravity has shifted from \u201cstore and summarize\u201d to \u201cmaintain useful context under concurrency, failures, and trust boundaries.\u201d The best new feature isn't always a new tool: it can be preventing a message from going out to the wrong project or preserving a summary the agent has already reviewed.<\/p>\n<p>To adopt the current version, back up, check the install method, update the server and integrations, restart the clients, and review the profile. Don't enable every consolidation mechanism just because they exist. Opt-in resources call for evaluating the produced content, the costs, and the privacy.<\/p>\n<p>The project is made available under <a href=\"https:\/\/github.com\/akitaonrails\/ai-memory\/blob\/v2.6.3\/LICENSE\">MIT license<\/a>. The descriptions above come from the official notes, not from our own benchmarks. To put it into practice, see the <a href=\"\/en\/2026\/09\/ai-memory-instalar-configurar-agentes-linux\/\">install and upgrade guide<\/a>; to compare approaches, read about <a href=\"\/en\/2026\/09\/alternativas-claude-mem-go-rust-c\/\">alternatives to Claude-Mem<\/a> and <a href=\"\/en\/2026\/09\/engram-memoria-persistente-para-agentes-no-linux\/\">Engram on Linux<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>From old memory management to cross-project profiling: the main features, fixes and care tips of ai-memory between versions 2.4.0 and 2.6.3.<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[115,2,25],"tags":[394,426,116,311,427,158],"class_list":["post-1838","post","type-post","status-publish","format-standard","hentry","category-ia","category-linux","category-noticias","tag-agentes","tag-ai-memory","tag-ia","tag-mcp","tag-memoria-persistente","tag-rust"],"_links":{"self":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/1838","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/comments?post=1838"}],"version-history":[{"count":3,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/1838\/revisions"}],"predecessor-version":[{"id":1846,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/1838\/revisions\/1846"}],"wp:attachment":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/media?parent=1838"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/categories?post=1838"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/tags?post=1838"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}