From cdba6a5297f19eb6a98d80153a71bd9060c5ae29 Mon Sep 17 00:00:00 2001 From: Ollie Agent Date: Sun, 16 Aug 2026 11:33:33 +0200 Subject: [PATCH] Update evolution history --- doc/evolution.md | 83 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 71 insertions(+), 12 deletions(-) diff --git a/doc/evolution.md b/doc/evolution.md index 54ef10e..3123c4c 100644 --- a/doc/evolution.md +++ b/doc/evolution.md @@ -55,6 +55,10 @@ gantt Feed + observer agents :done, 2026-08-13, 1d BlockOnce/Stream refactor :done, 2026-08-13, 1d Sub-agents via 9P rdwr :done, 2026-08-14, 1d + Code intelligence tools :done, 2026-08-15, 1d + Go file tools + cleanup :done, 2026-08-16, 1d + OptMem persistent memory :done, 2026-08-16, 1d + Markdown parsing + output cap :done, 2026-08-16, 1d ``` ## Phase 1: Monorepo Bootstrap (Apr 11) Started as independent git repos unified under a monorepo with submodules. @@ -1335,10 +1339,75 @@ The turn state machine in `turn.go` was simplified. ~100 lines deleted, control flow is clearer. +## Phase 27: Tree-sitter Code Intelligence (Aug 15) + +Code navigation and structural editing moved into native Go tools backed by +Tree-sitter grammars. The tool set now includes: + +- `codebase_overview` for repository structure +- `code_outline` for one-file declarations +- `code_symbols` for workspace-wide symbol searches +- `code_dependencies` for imports and includes +- `code_query` for syntax-aware searches +- `code_rewrite` for structural rewrites + +The tools support Go, JavaScript, TypeScript, TSX, Python, Rust, C, C++, JSON, +YAML, PHP, and Markdown. Agent prompts now require structural tools for +repository exploration and reserve text search for simple content searches. +This makes targeted edits safer than broad textual replacement. + +## Phase 28: Go File Tools and Tool-Surface Cleanup (Aug 16) + +The core file tools (`file_read`, `file_write`, `file_edit`, `file_grep`, and +`file_glob`) were replaced with Go binaries and shared implementation code. +Tests were added for the file-tool package and existing LSP and web-tool +coverage was expanded. The change removes the old Python implementations from +the runtime path while preserving the same tool contracts. + +Obsolete process-management tools and the `logseq` tool were removed. The +installation recipe was corrected for the compiled file tools. Workspace-path +placeholders were standardized across prompts and tool metadata so agents use +the actual working directory instead of guessed home paths. + +## Phase 29: OptMem Persistent Memory (Aug 16) + +Ollie integrated [OptMem](https://github.com/VictorTaelin/OptMem) as its +persistent memory backend. The legacy `memory_recall` and `memory_remember` +scripts were replaced by metadata-defined tools that invoke the bundled +`third_party/optmem/memo` executable directly. + +OptMem owns the append-only log and bounded B-tree index at +`$XDG_DATA_HOME/ollie/optmem` (default: `~/.local/share/ollie/optmem`). Ollie +does not maintain a second memory format or parallel store. Reads and writes +use the same backend and serialize through the toolsrv path-lock system. + +Both memory tools are auto-loaded by every agent profile. Shared prompt +guidance tells agents to recall relevant prior context before acting and +remember durable decisions, outcomes, preferences, and non-obvious findings. +The OptMem executable is installed under `$XDG_CONFIG_HOME/ollie/optmem` and +explicitly granted `rwx` access by the landrun sandbox. + +This integration keeps memory as an ordinary Ollie tool while giving it a +durable, searchable backend. It requires no MCP server, daemon, or new +control-plane protocol. + +## Phase 30: Markdown Parsing and Bounded Tool Output (Aug 16) + +Tree-sitter Markdown support was added to the code-intelligence layer. `.md` +and `.markdown` files are parsed as Markdown, and headings are available to +structural queries as `atx_heading` and `setext_heading` nodes. This makes +`evolution.md` and other documentation amenable to the same targeted tooling +as source code. + +The maximum tool result included in model context was reduced from 128 KiB to +32 KiB. Large command or file results are therefore less likely to crowd out +the conversation and instructions. + --- -Commit count: ~50 commits over 2 days. Net code change: approximately -800 lines. -The system does more with less. +Commit count: ~60 commits over 3 days. The recent work added native structural +and file tooling, persistent memory, and tighter context bounds while removing +obsolete tool implementations. --- @@ -1559,16 +1628,6 @@ This is mechanically identical to session restore — same function, same data path. The sub-agent knows everything the parent knows without rediscovering it. -### OptMem persistent memory integration (Aug 16) - -Ollie integrated [OptMem](https://github.com/VictorTaelin/OptMem) as its persistent memory backend. The legacy `memory_recall` and `memory_remember` scripts were replaced by metadata-defined tools that invoke the bundled `third_party/optmem/memo` executable directly. - -OptMem owns the append-only log and bounded B-tree index at `$XDG_DATA_HOME/ollie/optmem` (default: `~/.local/share/ollie/optmem`). Ollie does not maintain a second memory format or parallel store. Reads and writes therefore use the same backend and serialize through the toolsrv path-lock system. - -Both memory tools are auto-loaded by every agent profile. Shared prompt guidance tells agents to recall relevant prior context before acting and remember durable decisions, outcomes, preferences, and non-obvious findings. The OptMem executable is installed under `$XDG_CONFIG_HOME/ollie/optmem` and explicitly granted `rwx` access by the landrun sandbox. - -This integration keeps memory as an ordinary Ollie tool while giving it a durable, searchable backend. It requires no MCP server, daemon, or new control-plane protocol. - ### Future work - **Shared toolsrv per host** — currently each session spawns its own toolsrv.