Commit Graph
22 Commits
Author SHA1 Message Date
DeusData 54930c6544 README.md aktualisieren 2026-03-20 01:14:42 +01:00
Martin Vogel 78e1df2021 Refine messaging: seconds for avg repos, clarify AST (64 langs) vs LSP hybrid (Go/C/C++) 2026-03-19 23:44:35 +01:00
Martin Vogel d1ad61fec3 Update README + website: performance-first messaging, graph UI, 8 agents
- Lead with speed (3-min Linux kernel) and plug-and-play static binaries
- Highlight tree-sitter + LSP hybrid quality (Go, C, C++)
- Add graph UI screenshot to README and website hero
- Update agent list to 8 (add Antigravity, KiloCode, Aider)
- Remove all stale Go build references (go build, CGO_ENABLED, golangci-lint)
- Update architecture section to reflect C source layout
- Update comparison table: Visual web UI now Yes
- Fix stats: 14 tools, 64 languages, 8 agents
- Condense feature list and usage examples
2026-03-19 23:35:30 +01:00
Martin Vogel f92fff86d4 Add comprehensive --help, update README with gitignore/LSP hybrid docs
CLI --help now shows:
- All 14 MCP tools with parameter schemas and example JSON payloads
- Layered file ignoring (.gitignore → .cbmignore → .cgrignore)
- 64-language list with Go tree-sitter+LSP hybrid note
- CLI invocation syntax and examples
- Configuration and data storage paths

README updates:
- Replace .cgrignore section with layered ignoring docs
  (.gitignore, .cbmignore, .cgrignore backward compat)
- Add Go tree-sitter + LSP hybrid feature note (coming soon for more languages)
- Update tool count from 12 to 14 (index_status, ingest_traces)
- Update architecture section (discover, cbm/lsp descriptions)
2026-03-12 12:58:14 +01:00
Martin Vogel 3ff579c670 Update language count to 64, add Wolfram to language lists 2026-03-07 18:27:31 +01:00
Martin Vogel ced21194ac Fix Magma import/call extraction, resolve file-path imports in linker
- Add field('path', ...) to Magma load_statement grammar rule so
  parse_generic_imports() finds the import path via field lookup
  instead of the broken text fallback (which only extracted 1 per file)
- Fix passImports() to resolve file-path imports (e.g. "utils.mag",
  "lib/helpers.h") via fqn.ModuleQN() when raw path doesn't match
  any node QN — general fix benefiting any file-path-based import
- Add TestMagmaImport_Regression and TestMagmaCall_Regression
- Update language count 59 → 63 in README, docs/index.html, marketing
2026-03-07 12:55:56 +01:00
Martin Vogel fe20c998f2 Update landing page and README with latest stats
- Languages: 35 -> 59
- Add Gemini CLI, VS Code, Zed to supported clients list
- Update benchmark description to match v7 methodology
- Update meta tags and comparison table
2026-03-06 20:03:00 +01:00
Martin Vogel ff7791613c Update README: 59 languages, correct edge types, cbm architecture
- Token efficiency section: 35 → 59 repos in benchmark description
- Edge types: remove stale (INHERITS, DEPENDS_ON_EXTERNAL, CONTAINS_MODULE),
  add current (ASYNC_CALLS, USAGE, CONFIGURES, WRITES, MEMBER_OF, etc.)
- Architecture: parser/ → cbm/ (vendored C grammars engine)
- Pipeline description: add config links pass
- Benchmark: update scoring terminology and overall score
- Not yet benchmarked: reduce to just Nix, Meson
2026-03-06 18:02:01 +01:00
Martin Vogel 59d40d4035 v0.5: CBM tree-sitter engine, 59 vendored language grammars
- Replace Go-binding tree-sitter with vendored C grammars compiled via
  CGo (internal/cbm/); eliminates all Go module/linker fragility
- Add 32 new languages: Clojure, CMake, COBOL, Common Lisp, CUDA, Elm,
  Emacs Lisp, Fortran, F#, GLSL, GraphQL, INI, JSON, Julia, Makefile,
  Markdown, Meson, Nix, Protobuf, Svelte, Verilog, Vim Script, Vue, XML
  (plus C, C#, Erlang, SQL, YAML quality improvements)
- Adaptive worker concurrency and mmap prefetch for faster indexing
- Graph buffer: batched SQLite writes for 3-5x throughput improvement
- Fix cancellation test: use 50ms timeout (pipeline now indexes 212-file
  Erlang repo in ~400ms, well under the old 2s deadline)
- Fix isTestFunction: add "Test" prefix for C#, "test" prefix for Scala
2026-03-05 22:39:01 +01:00
Martin Vogel ee9f2b259b Add get_architecture, manage_adr tools; rename Leiden to Louvain
New tools:
- get_architecture: codebase architecture overview with 12 selectable aspects
  (languages, packages, entry_points, routes, hotspots, boundaries, services,
  layers, clusters, file_tree, adr)
- manage_adr: CRUD for Architecture Decision Records with 6 fixed sections,
  section filtering, validation, and discovery of existing architecture docs

Architecture analysis fixes:
- Fix qnToPackage extracting segment[2] for meaningful sub-packages instead
  of segment[1] which collapsed everything to top-level dirs
- Filter test functions from entry_points, hotspots, and routes using both
  is_test property (Module/File nodes) and file_path pattern matching
- Filter boundaries to Function/Method/Class nodes only
- Add FindArchitectureDocs for discovering existing architecture documentation

Naming corrections:
- Rename Leiden to Louvain throughout (algorithm is simplified Louvain,
  not actual Leiden which requires CPM-based refinement)
- leiden.go -> louvain.go with all symbols renamed
- Remove unused ClusterInfo.Modularity field (always zero)

Other changes:
- Case-insensitive search by default for search_graph and search_code
- Remove read_file and list_directory tools (handled by coding agents natively)
- Update tool descriptions and README for 8000 char ADR limit
2026-03-02 16:10:57 +01:00
Martin Vogel dc506b4bd0 Release v0.3.1: detect_changes, risk scoring, editor support, SDK upgrade
- Add detect_changes tool: map git diff to affected symbols + blast radius
  with risk classification (unstaged/staged/all/branch scopes)
- Add risk_labels param to trace_call_path: depth-based impact classification
  (CRITICAL/HIGH/MEDIUM/LOW) with impact_summary counts
- Add Cursor + Windsurf MCP config auto-registration (install/uninstall)
- Upgrade go-sdk v1.3.1 → v1.4.0 (security fixes, spec compliance)
- Improve tool descriptions with inline regex examples for AI agents
- Update skills documentation and README
2026-03-02 01:02:00 +01:00
Martin Vogel 3589a1bd1d Fix release binary naming and Codex CLI MCP registration
- Release workflow: build binary as `codebase-memory-mcp` (not
  `codebase-memory-mcp-<os>-<arch>`) inside tarballs. Users extract
  and get the correct name without renaming.
- Codex CLI: replace broken `codex mcp add/remove` calls with direct
  config.toml manipulation. Codex uses [mcp_servers.<name>] sections,
  not CLI subcommands.
- README: add explicit extract-and-move step to Quick Start.
2026-03-01 19:43:07 +01:00
Martin Vogel 5fb14483af Update README numbers: 25 → 35 languages, fresh benchmark stats
- Feature line: list all 35 languages including Obj-C, Swift, Dart,
  Perl, Groovy, Erlang, R, SCSS, SQL, Dockerfile
- Performance section: updated with Django (49K nodes) and Linux
  kernel stress test numbers from the v0.3.0 benchmark
- Architecture section: 25 → 35 language specs
- Token efficiency: reference 35 real-world repos instead of single project
2026-03-01 18:06:27 +01:00
Martin Vogel 355e070b7a Remove root skills/ folder, now embedded in binary
Skills are shipped inside the binary and installed via
`codebase-memory-mcp install`. The standalone skills/ directory
is no longer needed.
2026-03-01 18:04:34 +01:00
Martin Vogel 02bc3b7352 Release v0.3.0: 25 languages, install/update CLI, skills, benchmark
Language expansion (13 → 25):
  Add Ruby, C, Bash, Zig, Elixir, Haskell, OCaml, HTML, CSS, YAML,
  TOML, HCL with tree-sitter grammars and language specs.
  Restore Erlang and SQL with extraction fixes.

CLI install/update/uninstall commands:
  Auto-detect Claude Code and Codex CLI, register MCP server,
  install task-specific skills, self-update with SHA-256 verification.

Embedded skills (4):
  exploring, tracing, quality, reference — auto-trigger in Claude Code
  for graph-first code discovery.

Pipeline improvements:
  Docstring extraction, enrichment pass for params/returns/complexity,
  graceful context cancellation, improved test detection.

35-language benchmark (BENCHMARK.md):
  12 questions × 35 repos, 91.8% overall score, Linux kernel stress
  test (20K nodes, zero timeouts). Replaces old benchmark artifacts.
2026-03-01 18:01:52 +01:00
Martin Vogel 27e0707c6d Fix missing trailing newlines in Kotlin PR files 2026-02-28 02:31:11 +01:00
Gaurav Ratnawat 1c95eb506d feat: add Kotlin language support
Add Kotlin (.kt, .kts) as the 13th supported language with full
tree-sitter parsing, AST node extraction, call resolution, usage
tracking, and string constant propagation.
Changes:
- internal/lang/kotlin.go: Kotlin LanguageSpec registration
- internal/lang/lang.go: Add Kotlin constant and AllLanguages()
- internal/parser/parser.go: Register tree-sitter-kotlin grammar
- internal/pipeline/pipeline.go: Kotlin in isConstantNode(),
  isExported(), extractCalleeName()
- internal/pipeline/resolve.go: resolveKotlin() for val declarations
- internal/pipeline/usages.go: Kotlin reference node types
- Tests: TestParseKotlin, TestResolveKotlinConcat, extension tests
- go.mod: Add tree-sitter-grammars/tree-sitter-kotlin v1.1.0
- README.md: Update language count to 13
2026-02-28 02:25:24 +01:00
Martin Vogel f932e87b6e v0.1.4: CLI mode, query performance optimizations, Go 1.26
Add CLI mode for direct tool invocation from the shell — every MCP tool
can now be called without an MCP client. Useful for testing, scripting,
and CI pipelines.

Query engine rewrite: SQL LIKE pre-filtering extracts literal substrings
from regex patterns before scanning, batch degree counting replaces
per-node queries, and schema queries use id→label maps instead of 3-way
JOINs. Cypher relationship queries up to 600x faster on large graphs.

Incremental reindex 4x faster via content-hash skip optimization.

Upgrade to Go 1.26 (Green Tea GC) and SQLite v1.46.1.
2026-02-26 19:27:27 +01:00
Martin Vogel 860e80c88f Add auto-sync watcher, fix WithTransaction data race, add infra file indexing
Auto-sync: background watcher polls indexed projects for file changes
(mtime+size) and triggers incremental re-indexing automatically. Adaptive
polling interval scales with repo size (1s-60s). Non-blocking — uses
TryLock to skip if manual index_repository is in progress.

WithTransaction: changed signature to return a transaction-scoped Store
instead of mutating the shared querier field. Eliminates a data race
where concurrent read handlers could use a committed transaction.

Infrastructure file indexing: new pipeline pass indexes Dockerfiles,
docker-compose, cloudbuild, .env, Terraform, and YAML config files as
InfraFile nodes with structured properties.

Also includes: indexMu mutex on Server for safe concurrent access,
Claude Code skill file in repo, updated README with auto-sync docs.
2026-02-25 16:05:34 +01:00
Martin Vogel b3acbf8de2 Add comprehensive docs: troubleshooting, Cypher subset, qualified names, .cgrignore
Addresses documentation gaps found during review:
- First Use: clarify repo_path is required, document when to reindex
- Tool tables: add key parameters, scoping notes, pagination details
- New sections: Qualified Names format, Supported Cypher Subset,
  Edge Properties, .cgrignore syntax, Troubleshooting table
- Usage examples: project filter, discover-then-trace pattern, pagination
- CLAUDE.md snippet: add project scoping and discover-then-trace tips
2026-02-25 10:43:59 +01:00
Martin Vogel 1edccf3710 Rewrite installation docs for binary-first onboarding
Lead with pre-built binary download (no toolchain needed), then setup
scripts for automation, then build-from-source for contributors.

- Add platform table with all 5 targets including linux-arm64
- Add Windows SmartScreen guidance for unsigned binary
- Document checksums.txt for integrity verification
- Credit @Flipper1994 for WSL2 workaround (closes #1)
2026-02-25 10:07:52 +01:00
Martin Vogel f63c70865e Initial release: codebase-memory-mcp v0.0.1
MCP server that indexes codebases into a queryable knowledge graph.
Single Go binary, SQLite storage, 12 languages via tree-sitter.

Features: call graph, cross-service HTTP linking, dead code detection,
route nodes, Cypher queries, incremental reindex, JSON config scanning.
2026-02-25 00:10:39 +01:00