stifler-memex-mcp 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +52 -13
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -1,14 +1,20 @@
1
- # memex — temporal knowledge graph memory for AI coding agents
1
+ # memex — trusted engineering context for agentic software engineering
2
2
 
3
3
  <!-- mcp-name: io.github.STiFLeR7/memex -->
4
4
 
5
- > Persistent memory and codebase context for AI coding agents, served over MCP. A bitemporal knowledge graph of your repository — modules, symbols, decisions, problems — for Claude Code, Cursor, Codex, Gemini CLI, and any MCP-compatible agent.
5
+ > A protocol-neutral engineering-context layer for AI coding agents. memex
6
+ > builds a bitemporal knowledge graph of your repository — modules, symbols,
7
+ > decisions, problems, evidence, and code evolution — and exposes bounded,
8
+ > provenance-aware context through Hermes MemoryProvider or MCP.
6
9
 
7
- A daemon and MCP server that turns every commit and every file change into structured graph state: modules, symbols, decisions, problems, lockfile facts. Sessions stop starting blind. Agents stop re-discovering the same refactor every time you `/clear`.
10
+ A daemon and MCP server that turns commits and file changes into structured
11
+ engineering knowledge. Agents can receive relevant repository context before a
12
+ task, with freshness and provenance preserved, without making memex a source of
13
+ personal memory or raw session state.
8
14
 
9
- [![PyPI](https://img.shields.io/pypi/v/memex-mcp?v=0.3.3)](https://pypi.org/project/memex-mcp/)
15
+ [![PyPI](https://img.shields.io/pypi/v/memex-mcp?v=0.9.0)](https://pypi.org/project/memex-mcp/)
10
16
  [![PyPI downloads](https://img.shields.io/pypi/dm/memex-mcp)](https://pypistats.org/packages/memex-mcp)
11
- [![npm](https://img.shields.io/npm/v/stifler-memex-mcp?v=0.3.3)](https://www.npmjs.com/package/stifler-memex-mcp)
17
+ [![npm](https://img.shields.io/npm/v/stifler-memex-mcp?v=0.9.0)](https://www.npmjs.com/package/stifler-memex-mcp)
12
18
  [![npm downloads](https://img.shields.io/npm/dm/stifler-memex-mcp)](https://www.npmjs.com/package/stifler-memex-mcp)
13
19
  [![Claude Code marketplace](https://img.shields.io/badge/Claude%20Code-marketplace-7c3aed)](https://github.com/STiFLeR7/claude-plugins)
14
20
  [![memex MCP server](https://glama.ai/mcp/servers/STiFLeR7/memex/badges/score.svg)](https://glama.ai/mcp/servers/STiFLeR7/memex)
@@ -24,9 +30,11 @@ A daemon and MCP server that turns every commit and every file change into struc
24
30
  flowchart LR
25
31
  A[Your repository<br/>files + git] --> B[memex watcher<br/>tree-sitter + Gemini]
26
32
  B --> C[Neo4j graph<br/>bitemporal facts]
27
- C --> D[MCP server<br/>stdio / HTTP]
28
- D --> E[AI agent<br/>Claude · Cursor · Codex · Gemini CLI]
29
- E -.->|writes decisions back| C
33
+ C --> D[memex core<br/>ContextPacket selection]
34
+ D --> E[Hermes MemoryProvider<br/>automatic read-only prefetch]
35
+ D --> F[MCP fallback<br/>explicit lookup]
36
+ E --> G[AI coding agent]
37
+ F --> G
30
38
 
31
39
  style B fill:#cfe8ff,stroke:#0066cc,color:#000
32
40
  style C fill:#fff4cf,stroke:#cc9900,color:#000
@@ -59,6 +67,30 @@ npx stifler-memex-mcp watch --repo .
59
67
  npx stifler-memex-mcp serve --repo .
60
68
  ```
61
69
 
70
+ ### Hermes integration
71
+
72
+ The v0.9 Hermes integration is read-only. Hermes retains personal memory, raw
73
+ session state, and execution state. memex supplies repository engineering
74
+ context through a bounded `ContextPacket`; it does not ingest Hermes
75
+ `state.db`, transcripts, prompts, or tool results.
76
+
77
+ Add the memex provider to Hermes' profile configuration:
78
+
79
+ ```yaml
80
+ memory:
81
+ provider: memex
82
+ plugins:
83
+ memex:
84
+ repo_path: /absolute/path/to/repository
85
+ prefetch_timeout_seconds: 7
86
+ max_items: 8
87
+ max_chars: 12000
88
+ ```
89
+
90
+ If Hermes is not installed, use the same context selector through the MCP
91
+ `get_engineering_context` tool. Both paths share the protocol-neutral memex
92
+ core and fail open when retrieval is unavailable.
93
+
62
94
  | Channel | Command |
63
95
  |---|---|
64
96
  | Claude Code marketplace | `/plugin install memex-mcp@stifler-marketplace` |
@@ -86,13 +118,14 @@ initial admin key, and the `down -v` footgun to avoid.
86
118
  |---|---|
87
119
  | Output | A Neo4j graph populated continuously from your repo |
88
120
  | Storage | Neo4j via [Graphiti](https://github.com/getzep/graphiti). Bitemporal — every edge has `created_at` and optional `expired_at` |
89
- | Survives | `/clear`, terminal crashes, machine restarts, teammate handoffs |
90
- | Hands off to | Claude Code, Cursor, Codex, Gemini CLI, any MCP client |
121
+ | Context | Bounded, ranked, provenance-aware `ContextPacket` |
122
+ | Integrations | Hermes MemoryProvider, MCP resources/tools, Claude Code, Cursor, Codex, Gemini CLI |
123
+ | Failure mode | Fail-open; agent execution continues without memex |
91
124
  | Granularity | Scales from 50 to 5000+ modules via hierarchical Leiden clusters |
92
125
  | Synthesis | Gemini Flash distills commits into `Decision` nodes; Pro for grounded synthesis |
93
126
  | Confidence | Computed at query time. Two-regime decay (validated half-life ~139d, unvalidated stale at 30d) |
94
127
  | Write governance | Per-node-type ACL, intent-confirmation on agent writes, explicit `corroborates` / `supersedes` semantics |
95
- | Tests | 333 passing, ~93% coverage |
128
+ | Goal 10 evidence | 8/8 valid paired runs, 0 treatment failures, 0 treatment regressions |
96
129
 
97
130
  ## The lifecycle
98
131
 
@@ -340,7 +373,7 @@ memex/
340
373
  │ ├── memory_tool/ Anthropic memory_20250818 adapter
341
374
  │ ├── watcher/ daemon + git hooks
342
375
  │ └── cli.py init / watch / serve / review / graph / cluster
343
- ├── tests/ 333 passing, ~93% coverage
376
+ ├── tests/ unit, integration, and objective evaluation suites
344
377
  ├── docker/ Neo4j compose
345
378
  ├── npm/ npx wrapper (publishes as stifler-memex-mcp)
346
379
  └── Dockerfile introspection-only image for MCP directory sandboxes
@@ -374,6 +407,12 @@ Hill Patel ([@STiFLeR7](https://github.com/STiFLeR7))
374
407
 
375
408
  ## Contributing
376
409
 
377
- Open an issue or PR. `uv sync --all-extras && uv run pytest tests/` is all the setup you need to run the suite. Version bumps must update **both** `pyproject.toml` and `npm/package.json` and they must agree.
410
+ Open an issue or PR. `uv sync --all-extras` installs the development toolchain.
411
+ Run `uv run pytest -m "not integration"` for the offline suite and `uv run ruff
412
+ check .` before opening a PR. Version bumps must update `pyproject.toml`,
413
+ `npm/package.json`, `server.json`, and the team Docker image tag together.
414
+
415
+ The v0.9 release record is in [`CHANGELOG.md`](CHANGELOG.md), with the
416
+ architecture and evaluation evidence under [`docs/architecture/v0.9/`](docs/architecture/v0.9/).
378
417
 
379
418
  > *Vannevar Bush, 1945:* "Consider a future device for individual use, which is a sort of mechanized private file and library. It needs a name, and to coin one at random, **memex** will do."
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "stifler-memex-mcp",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "mcpName": "io.github.STiFLeR7/memex",
5
- "description": "Developer context continuity system — temporal knowledge graph for AI coding agents via MCP. Inspired by Vannevar Bush's 1945 concept of a machine that remembers everything.",
5
+ "description": "Trusted engineering context for agentic software engineering via Hermes MemoryProvider and MCP.",
6
6
  "bin": {
7
7
  "stifler-memex-mcp": "./bin/memex-mcp.js",
8
8
  "memex-mcp": "./bin/memex-mcp.js",