github DeusData/codebase-memory-mcp v0.3.2

latest releases: 0.8.0, 0.7.0, 0.6.1...
3 months ago

What's New in v0.3.2

Architecture Overview (get_architecture)

New tool that provides instant codebase orientation in a single call. Returns 12 selectable aspects:

  • languages: Language breakdown by file count
  • packages: Top packages with node counts
  • entry_points: Main/init functions (test functions filtered out)
  • routes: HTTP endpoints with handlers
  • hotspots: Most-called functions by fan-in (test functions filtered out)
  • boundaries: Cross-package call volumes
  • services: Cross-service HTTP/async links
  • layers: Package-level layer classification (entry/core/internal)
  • clusters: Louvain community detection across CALLS, HTTP_CALLS, and ASYNC_CALLS edges
  • file_tree: Condensed directory structure
  • adr: Stored Architecture Decision Record

Use get_architecture(aspects=["all"]) for full orientation or select specific aspects to reduce output.

Architecture Decision Records (manage_adr)

Persist architectural decisions across AI sessions with structured, validated records:

  • 6 fixed sections: PURPOSE, STACK, ARCHITECTURE, PATTERNS, TRADEOFFS, PHILOSOPHY
  • Section filtering: manage_adr(mode="get", include=["STACK", "PATTERNS"]) returns only needed sections
  • Partial updates: manage_adr(mode="update", sections={"PATTERNS": "..."}) patches one section, preserves the rest
  • Validation: Store rejects content missing any section; update rejects non-canonical keys
  • ADR discovery: When no ADR exists, hints about existing architecture docs found in the repo (ARCHITECTURE.md, docs/adr/*, etc.)
  • Max 8000 chars (up from 4000)

Louvain Community Detection

Renamed from "Leiden" to accurately reflect the algorithm (simplified Louvain, not actual Leiden which requires CPM-based refinement). The clusters aspect in get_architecture uses Louvain to discover hidden functional modules across packages.

Case-Insensitive Search

search_graph and search_code are now case-insensitive by default. Set case_sensitive=true for exact matching.

Bug Fixes

  • qnToPackage: Fixed extraction of sub-package from qualified names — packages now show meaningful names (e.g., "store", "pipeline") instead of collapsing to top-level directory ("internal")
  • Test filtering: Entry points, hotspots, and routes now exclude test functions via is_test property + file path pattern matching
  • Boundary filtering: Limited to Function/Method/Class nodes (previously included all node types)
  • Removed unused tools: read_file and list_directory removed — handled natively by coding agents

Files Changed

  • New: internal/store/architecture.go, internal/store/architecture_test.go, internal/store/louvain.go, internal/tools/architecture.go
  • Modified: internal/tools/tools.go, internal/pipeline/communities.go, README.md, and 9 other files
  • Removed: internal/store/leiden.go (renamed to louvain.go)

Don't miss a new codebase-memory-mcp release

NewReleases is sending notifications on new releases.