8 Commits
Author SHA1 Message Date
emil 3d0e087ebd v0.4.3: agent-friendly MCP tool descriptions with step-by-step workflow 2026-05-16 18:47:09 +03:00
emil 974aba45eb v0.4.2: configurable max_depth for recursive split 2026-05-16 18:41:30 +03:00
emil 4c4742a755 v0.4.1: recursive split — descent into sub-subdirs until they fit budget; conservative VRAM profile 2026-05-16 17:54:32 +03:00
emil a245602d3a v0.4.0: adaptive VRAM — auto-detect max n_ctx based on free GPU memory 2026-05-16 17:41:29 +03:00
emil 3866eaf3fd v0.3: split-digest — per-subdirectory caching for large repos 2026-05-16 17:35:18 +03:00
emilandClaude Opus 4.7 fe5642e0f2 v0.2: full repurpose — codebase exploration with per-directory cache
BREAKING. memwalk is no longer a personal-activity recorder; it's
an AI tool for asking questions about any codebase, with cached
SSM state per directory.

What's gone
-----------
- sources/git.py, sources/bash.py — personal activity collectors
- snapshot.py — daily snapshot rotation
- ingest.py — orchestration tied to git+bash use case
- standup / update CLI commands
- All v0.1 config keys (scan_paths, bash settings, bootstrap_days)

What's new
----------
- corpus.py        — walk a codebase, filter source files, build a single
                     ingest-ready text block with a stable manifest hash
                     for cache invalidation.
- cache.py         — per-directory cached state + sidecar metadata JSON.
                     Cache key = sha256(abs_path)[:16]; freshness check =
                     manifest hash over (rel_path, size, mtime_ns).
- engine.py        — shared digest/ask orchestration used by both CLI
                     and MCP server.
- cli.py           — init, digest, ask, list, drop, status, mcp.
- mcp_server.py    — tools: digest, ask, list_caches, drop_cache, status.
- config.py        — drastically simplified (just model+inference defaults).

The MCP server still ships as `memwalk mcp` and works the same way with
Claude Code / opencode.

Validated on memwalk's own source: digest in ~4s, ask answers in ~3s
(model+state load) including "list CLI commands", "where is cache
stored, what filename pattern", "how does cache invalidation work" —
all accurate down to specific details (sha256 length, file extensions,
metadata field semantics).

memba dep installed via git URL until both packages reach PyPI.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 14:52:43 +03:00
emilandClaude Opus 4.7 9877edd610 Add MCP server: expose memwalk as tools for Claude Code / opencode / agents
New `memwalk mcp` subcommand starts a stdio MCP server exposing four
tools: ask, standup, status, update. The underlying memba Session is
loaded lazily on the first call that needs the model, then reused for
the lifetime of the process — first query ~2s, subsequent <500ms.

- memwalk/mcp_server.py — Server + tool list/dispatch using mcp SDK
- memwalk/cli.py        — `memwalk mcp` subcommand wires it up
- pyproject.toml        — mcp>=1.0.0 dependency
- README.md             — setup instructions for Claude Code and opencode

Verified locally: tools/list returns all 4, tools/call status returns
the expected JSON without loading the model.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 14:04:25 +03:00
emilandClaude Opus 4.7 b873144b69 Initial v0.1: memwalk CLI on top of memba
- Config in ~/.memwalk/config.toml (typer init writes it)
- Sources: git log walker + bash history parser with secret/noise filters
- Ingest orchestrator feeds events into a memba Session and saves
  ~/.memwalk/current.memb via the rewritten Session.chat() that preserves
  loaded state (raw eval+sample, no KV-cache reset)
- Daily snapshot rotation under ~/.memwalk/snapshots/
- CLI commands: init, update, ask, standup, status, prune

Validated on Nemotron-3-Nano-4B Q4_K_M end-to-end: ingest 304 events
(303 commits + 1 shell session) in 2.8s on GPU, recall in fresh process
returns accurate per-project summaries.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 13:40:46 +03:00