Martin Vogel
ce96ecc085
Add comprehensive smoke test: version + index + search + trace + folder integrity
2026-03-17 22:25:26 +01:00
Martin Vogel
18fa9979ee
Replace vmem with mimalloc global allocator, add extraction-phase prescan, fix __init__.py QN collision
...
Memory management:
- Vendor mimalloc v2.1.9 as global allocator (MI_OVERRIDE=1 in prod)
- New mem.h/mem.c: RSS-based budget tracking via mi_process_info()
- Remove vmem.c/vmem.h (mmap-based budget tracking)
- Remove slab tier2 bump allocator (~300 LOC); >64B goes to mimalloc
- Slab tier1 pages from malloc (= mimalloc) instead of vmem
- Arena blocks from malloc instead of vmem
- Budget raised from 35% to 50% RAM (no more untracked C++ heap)
Extraction-phase prescan (eliminates disk re-reads):
- HTTP call sites: keyword check + URL extraction during extraction
- HTTP routes: decorator + source-based extraction during extraction
- Config file refs: regex scan during extraction
- httplinks: 41.8s → 13ms on Linux kernel (3,212x faster)
- configlink: 41.4s → 0.8s on Linux kernel (54x faster)
- Linux kernel fast-mode total: 2m38s → 1m18s
Bug fixes:
- __init__.py Module QN no longer collides with Folder QN
- index.ts same fix for JS/TS packages
- 13 regression tests for QN collision at FQN + extraction layers
- search_graph/search_code default limit raised from 10 to 500k
- Resolve all clang-tidy, cppcheck, and clang-format warnings
Repo cleanup:
- tree-sitter-form, tree-sitter-magma moved to tools/
- .gitignore: build/, node_modules/, graph-ui/dist/, TEST_PLAN.md
2026-03-17 22:05:57 +01:00
Martin Vogel
6f0910278b
Remove all Go code — project is now pure C
...
Delete Go MCP server, CGo bridges, Go pipeline, store, tools, watcher,
cypher engine, language specs, and all Go tests. Replace Go pre-commit
hook with C-only linting (clang-tidy, cppcheck, clang-format, tests).
Tree-sitter extraction engine (internal/cbm/*.c) retained for C pipeline.
2026-03-15 20:32:19 +01:00
Martin Vogel
94a9a92f83
Add C-native pipeline with blocking clang-tidy, cppcheck, clang-format linting
...
Complete C implementation of the indexing pipeline (src/), parallel worker
pool, graph buffer with merge support, SQLite writer, and 1893-test suite.
Linter setup: zero warnings from clang-tidy (all checks enabled, no NOLINT
suppressions), cppcheck, and clang-format. All issues fixed at source —
proper headers for external linkage, GROW_ARRAY macro restructured to
eliminate type parameter, null-deref paths guarded, named intermediates
for suspicious-argument checks.
2026-03-15 19:26:12 +01:00
Martin Vogel
bd6bbc2ab1
Add Go LSP hybrid type resolver, config store, and supporting infrastructure
...
- Go LSP cross-file type resolution engine (internal/cbm/lsp/) with C-based
type registry, scope tracking, and Go stdlib data (30K+ definitions)
- lsp_bridge.go: CrossFileDef struct and RunGoLSPCrossFile CGo bridge
- config.go: persistent ConfigStore (SQLite) for auto_index, mem_limit settings
- CLI config subcommand for get/set/list/delete operations
- Store: edge batch upsert, project config columns, goleak test harness
- Pipeline: prefetch parallelism, resolver improvements, memleak tests
- CI: dry-run workflow improvements, vendor-grammar.sh enhancements
2026-03-12 13:26:13 +01:00
Chitral Verma
d248e7348f
Fix binary move command in setup script ( #16 )
2026-03-06 21:19:38 +01:00
Martin Vogel
5b25f885d7
Add smoke-test.sh for CI binary validation
2026-03-06 18:27:51 +01:00
Martin Vogel
05a35ac9b1
v0.5.1: Fix C/C++/CUDA/GLSL function extraction, add config linker and tests
...
- Fix extract_defs.c declarator chain traversal for C-family function_definition
nodes (off-by-one in field name length, missing depth traversal)
- Add resolve_func_name() support for CommonLisp defun, Makefile rule, VimScript,
Julia, Elm value_declaration, Groovy field_function methods
- Add config linker pipeline: 3 strategies linking config keys to code symbols,
dependency manifest entries to imports, and config file path references
- Add regression tests (~150 cases across 50+ languages), language failure tests,
and config extraction tests
- Refactor discover.go, configures.go, configlink_strategies.go to reduce
cognitive complexity (extract helpers for gocognit compliance)
- Fix Louvain community detection: use map lookup instead of O(N) scan
2026-03-06 17:50:18 +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
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
b86738acfb
Fix setup.sh: Apple Silicon detection under Rosetta and tmpdir cleanup
...
- detect_platform() now checks hw.optional.arm64 sysctl on macOS to
pick the arm64 binary even when bash runs under Rosetta (uname -m
reports x86_64 in that case)
- Move tmpdir to a global CLEANUP_DIR so the EXIT trap does not hit
an unbound variable error from set -u after the function returns
2026-02-25 10:19:32 +01:00
Martin Vogel
3c6ad62ed0
Add cross-platform setup scripts and CI release workflow
...
- GitHub Actions workflow builds native binaries for 5 platforms:
darwin-arm64, darwin-amd64, linux-amd64, linux-arm64, windows-amd64
- Windows build uses MSYS2 UCRT64 toolchain for CGO compatibility
- setup.sh: macOS/Linux installer (binary download or --from-source)
- setup-windows.ps1: Windows installer (native .exe or -FromSource via WSL)
- Both scripts offer interactive Claude Code MCP auto-configuration
- Release includes checksums.txt with SHA-256 hashes
- PS5.1-compatible JSON handling (no -AsHashtable dependency)
2026-02-25 10:07:45 +01:00