Skip to content

v1.5.0 — PMEntityStore, 10-codebase benchmarks, MCP quality fixes

Choose a tag to compare

@MarcelvanDuijnDev MarcelvanDuijnDev released this 10 Jun 22:14
· 118 commits to main since this release

What's new in v1.5.0

Performance

  • PMEntityStore — eliminates per-entity disk I/O during scans. All entities are buffered in memory and written in a single snapshot at flush time. Scan time on a 723-file project dropped from 394 s → 9 s (97.7% reduction).
  • QueryCache — in-memory entity map cache with thundering-herd protection. Warm query latency: 10–94 ms.
  • MCP server now uses PMEntityStore instead of the old EntityWriter. Previously only the HTTP API used the fast path; MCP stdio users were silently hitting the slow per-entity-file path.

Quality fixes

  • JSDoc extraction for JS/TS_preceding_jsdoc helper strips export/async/declare/abstract keyword wrappers before scanning for /** */ blocks. All four entity types (class, interface, named function, arrow declaration) now carry docstrings.
  • Slim query line numberspm_context stubs now include line so AI can point to exact source locations.
  • Token deduplication_tokenize deduplicates camelCase sub-tokens to avoid inflating similarity scores.
  • pm_context stub formatting_entity_block() now handles both full entities (with sections.*) and flat query stubs. Previously summaries, tags, and properties were silently omitted from pm_context results.
  • Minified file detection — scanner and delta both skip files >250 KB, or >10 000 chars with fewer than 5 newlines. Fixes minified bundles appearing as perpetual "new files" in pm_delta.
  • Windows UTF-8 crash fix — MCP stdio server wraps sys.stdin/sys.stdout/sys.stderr in UTF-8 on Windows so em-dashes in startup logs no longer crash the process on cp1252 consoles.
  • LLM enrichment removed — PM is now purely static-analysis-based. No external API calls during scans.

New documentation

  • docs/howto/ — step-by-step MCP setup guides for Claude Code, Cursor, Antigravity, and Codex (Windows + Linux/Mac paths, before/after JSON, smoke tests).
  • docs/explained/ — plain-language docs: what Project Mapper is, what MCP is, and what PM reads/stores (trust document).

Benchmarks (10 codebases)

Geomean token reduction across Python, Go, TypeScript, Ruby, PHP, Java, C#, C, Rust, and Swift:

Mode Reduction Multiplier
Full 83% ~6×
Slim 92% ~13×

Real-world test on Odysseus (723 files, Gemini Flash 3.5): 95% for structure queries, 99.6–99.8% for impact analysis.

All 8 test cases passed (pathfinding, graceful failure, knowledge contribution, incremental add/delete, impact traversal after contribute).

Supported languages

Python · JavaScript · TypeScript · Go · Ruby · PHP · Java · C · C++ · C# · Rust · Swift