Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
833 commits
Select commit Hold shift + click to select a range
259f5c6
test: add 34 tests covering uncovered patch lines for optimization PR
vitali87 Mar 29, 2026
c1a4c8f
Merge perf/graph-build-optimization: ~4.7x faster graph build
vitali87 May 15, 2026
19c6206
docs: swap github.com/vitali87 URLs to codeberg.org and disable GitHu…
vitali87 May 15, 2026
cb2794c
feat(query): guard against unbounded Cypher path queries with validat…
vitali87 May 15, 2026
1a475d2
feat(cypher): allow read-only MAGE procedures and teach LLM to call t…
vitali87 May 15, 2026
051d121
chore(pre-commit): exclude vendored grammars and query_modules from t…
vitali87 May 18, 2026
f02b335
test(embeddings): expect batched embed_code_batch dispatch in graph u…
vitali87 May 18, 2026
8be64d3
perf(embeddings): batch model forward passes via embed_code_batch in …
vitali87 May 18, 2026
58be3e6
test(embedder): expect _select_device helper and MPS fallback in get_…
vitali87 May 18, 2026
a1978ec
perf(embedder): use MPS device when CUDA unavailable via _select_devi…
vitali87 May 18, 2026
c5ba9b0
test(embedder): expect EMBEDDING_DEFAULT_BATCH_SIZE of at least 64
vitali87 May 18, 2026
afd9873
perf(embedder): raise default model batch size from 32 to 64
vitali87 May 18, 2026
a68835f
test(vector_store): expect QDRANT_URL setting to switch client to rem…
vitali87 May 18, 2026
cff9110
perf(vector_store): switch QdrantClient to remote mode when QDRANT_UR…
vitali87 May 18, 2026
48d5c4c
fix(graph_updater): skip unreadable files instead of crashing on dang…
vitali87 May 18, 2026
600a45a
refactor: remove C# language support (was demo)
vitali87 May 18, 2026
d9b9680
feat(permissions): add shift-tab toggle for YOLO mode bypassing appro…
vitali87 May 18, 2026
a5957dd
fix(approvals): hide approval banner and prompt in YOLO mode while ke…
vitali87 May 18, 2026
3f3b833
feat(ui): pin status bar with git branch in agnoster colors as persis…
vitali87 May 18, 2026
4d2c229
feat(ui): show cumulative token usage in status bar with color thresh…
vitali87 May 18, 2026
67f4867
feat(ui): replace cumulative token counter with Anthropic count_token…
vitali87 May 18, 2026
471049d
refactor(ui): attach images and PDFs inline via BinaryContent and rem…
vitali87 May 19, 2026
2580d48
fix(tokens): handle multimodal UserPromptPart and surface response bo…
vitali87 May 19, 2026
a85427c
fix(approvals): wire Shift+Tab toggle into approval and feedback prompts
vitali87 May 19, 2026
c75e823
fix(tokens): only count context when the conversation is balanced (no…
vitali87 May 19, 2026
7ab5c45
feat(ui): accept Shift+Tab toggle and live-refresh status bar while a…
vitali87 May 19, 2026
ae69253
fix(ui): auto-fence unfenced unified diffs in assistant output so the…
vitali87 May 19, 2026
1a4f863
fix(approvals): use prompt_async to avoid nested asyncio.run inside a…
vitali87 May 19, 2026
7fb622a
fix: avoide nested async agent loops
vitali87 May 19, 2026
cd0c7ac
feat(cli): add delete-project command to drop a single project from t…
vitali87 May 19, 2026
b0a5845
feat(orchestrator): load .cgr.md instructions (global plus per repo) …
vitali87 May 19, 2026
345da72
feat(status-bar): surface models, edit/instructions flags, target rep…
vitali87 May 19, 2026
590b2b3
fix(tests): unpack tuple from create_rag_orchestrator in tool_calling…
vitali87 May 19, 2026
895e2da
feat(ui): left-align markdown headings in agent response panel
vitali87 May 19, 2026
601b0b3
fix(token-counter): map RetryPromptPart to tool_result error block to…
vitali87 May 20, 2026
31b9555
perf(anthropic): enable prompt caching for instructions, tool definit…
vitali87 May 20, 2026
508b491
fix(ui): style feedback prompt with prompt_toolkit markup so it no lo…
vitali87 May 20, 2026
bb6b680
fix(chat): inject synthetic tool_result for orphaned tool_use when ru…
vitali87 May 20, 2026
42d0c92
feat(ui): add Ctrl+E as alt submit shortcut for terminals that reserv…
vitali87 May 20, 2026
cafb7cc
fix(prune): scope module delete to containment edges and skip inline-…
vitali87 May 20, 2026
8a0f1dc
fix(embedder): use 4D attention mask in unixcoder forward for transfo…
vitali87 May 20, 2026
e27e1d2
chore(qdrant): add dockerized qdrant service and bump client to 1.18.0
vitali87 May 20, 2026
8673f1e
feat(cgr): default repo-path to CWD, stable project_name slug, memgra…
vitali87 May 23, 2026
0e43e56
feat(cgr): add shared docker stack manager with cgr daemon up/down/st…
vitali87 May 23, 2026
92dd89e
feat(cgr): auto-sync graph on cgr start, add --no-sync flag
vitali87 May 23, 2026
b0e9acf
feat(cgr): scope agent to active projects via --projects flag and pro…
vitali87 May 23, 2026
a27ed47
feat(cgr): add workspaces with cgr workspace and --workspace flag
vitali87 May 23, 2026
3a01aba
feat(cgr): add cgr stop / cgr status and record per-project sync time…
vitali87 May 23, 2026
77e3b3f
docs(cgr): document system-wide install and isolate CGR_HOME in tests
vitali87 May 23, 2026
f8b73d2
docs(cgr): document treesitter-full and semantic extras in install in…
vitali87 May 23, 2026
ff88796
fix(cgr): show configuration table before auto-sync output in cgr start
vitali87 May 23, 2026
63e381b
feat(cgr): run auto-sync inside chat loop with status bar visible
vitali87 May 23, 2026
7007126
perf(graph-updater): skip all passes when hash cache matches every file
vitali87 May 23, 2026
9a32971
perf(graph-updater): stat-first fast-path skip and visible skipped/el…
vitali87 May 23, 2026
11fdb04
feat(graph-updater): surface fast-path bail reason in cgr sync output
vitali87 May 23, 2026
f12a58c
feat(graph-updater): add fast-path stage timings (load_cache/walk/sta…
vitali87 May 23, 2026
7dfcec9
perf(graph-updater): drop Path/relative_to from eligible-file walk ho…
vitali87 May 23, 2026
3aea903
perf(graph-updater): skip walk on fast path via cached directory mtimes
vitali87 May 23, 2026
112b286
perf(graph-updater): skip file reads in slow path when mtime predates…
vitali87 May 23, 2026
3f88525
perf(graph-updater): tolerate spurious dir mtime changes via lazy sca…
vitali87 May 23, 2026
edded44
fix(graph-updater): skip symlinks to directories in fast-path scandir…
vitali87 May 24, 2026
ef9bab6
refactor(graph-updater): drop fast-path diagnostic prints and timing …
vitali87 May 24, 2026
ceae0f7
style(cli): differentiate sync result line from prompt with dim/plain…
vitali87 May 24, 2026
6c53027
fix(llm): replace deprecated output_retries with AgentRetries dict an…
vitali87 May 24, 2026
d40a1e5
Merge pull request 'feat/cgr-system-wide' (#4) from feat/cgr-system-w…
May 24, 2026
5540ffc
fix(cgr): bundle docker-compose inside package so stack manager resol…
vitali87 Jun 5, 2026
fb98fe3
fix(cgr): probe memgraph bolt handshake in health check instead of tc…
vitali87 Jun 5, 2026
dfbd630
fix(graph): delete stale module entities on incremental reparse of ch…
vitali87 Jun 19, 2026
4aad883
chore(release): bump version to 0.0.185
vitali87 Jun 19, 2026
7c7f9b6
fix(mcp): ensure constraints and flush ingestor around index/update runs
vitali87 Jun 19, 2026
80282c0
chore(release): bump version to 0.0.186
vitali87 Jun 19, 2026
7b7108f
fix(mcp): close qdrant client on server shutdown to release embedded …
vitali87 Jun 19, 2026
bc4a3bf
chore(release): bump version to 0.0.187
vitali87 Jun 19, 2026
fdef21b
fix(parser): keep both definitions when a qualified name is defined t…
vitali87 Jun 19, 2026
31343de
feat(evals): add L1 structure-eval harness comparing cgr's graph to a…
vitali87 Jun 19, 2026
0cbce54
Merge pull request 'fix/duplicate-qn-definitions' (#5) from fix/dupli…
Jun 19, 2026
0f5efeb
fix(parser): keep both class and method definitions when a qualified …
vitali87 Jun 19, 2026
0298eb1
feat(parser): capture function-local class definitions behind CGR_CAP…
vitali87 Jun 19, 2026
62de4e3
fix(parser): attach nested functions and classes to their enclosing s…
vitali87 Jun 19, 2026
70072a5
feat(evals): score INHERITS edges against an ast oracle (L2)
vitali87 Jun 19, 2026
26920b4
fix(parser): capture INHERITS from attribute-style base classes like …
vitali87 Jun 19, 2026
5bed958
feat(evals): score IMPORTS as the internal module dependency graph (L2)
vitali87 Jun 19, 2026
bbbf958
fix(parser): resolve root-level relative imports (from . import X) in…
vitali87 Jun 19, 2026
74350c6
fix(parser): resolve relative imports in __init__.py against the pack…
vitali87 Jun 19, 2026
79b46b5
feat(cli): add dead-code command reporting functions and methods unre…
vitali87 Jun 19, 2026
c6244a9
Merge pull request 'feat(cli): add dead-code command reporting unreac…
Jun 19, 2026
f2d0a14
fix(parser): treat bare absolute imports as external when the repo ro…
vitali87 Jun 19, 2026
57465a5
fix(graph): prune orphaned external import-target modules on incremen…
vitali87 Jun 19, 2026
e890898
feat(evals): add L3 CALLS recall via execution tracing (TraceEval-sty…
vitali87 Jun 19, 2026
c66cd5f
fix(parser): resolve constructor calls (X()) to the class __init__ me…
vitali87 Jun 19, 2026
168f3e2
feat(parser): resolve @property getter accesses as CALLS edges to the…
vitali87 Jun 19, 2026
2999b6e
feat(parser): resolve calls through local function aliases (g = self.…
vitali87 Jun 20, 2026
54ce205
feat(parser): infer instance-attribute types from __init__ for self.a…
vitali87 Jun 20, 2026
b5eb83b
feat(parser): prefer concrete overrides over @abstractmethod stubs wh…
vitali87 Jun 20, 2026
3fa6c48
feat(parser): seed self.property types from declared return type for …
vitali87 Jun 20, 2026
32fa74a
feat(parser): resolve calls through callable parameters and eager hig…
vitali87 Jun 20, 2026
098eb19
fix(parser): redirect Protocol-typed method calls to the concrete imp…
vitali87 Jun 20, 2026
98bff12
feat(parser): resolve calls through callable NamedTuple/dataclass fie…
vitali87 Jun 20, 2026
4c096d7
fix(parser): resolve chained-attribute, sibling-mixin, and protocol-t…
vitali87 Jun 20, 2026
e525201
feat(parser): capture operator-dispatch dunder calls (subscript, memb…
vitali87 Jun 20, 2026
9df762f
feat(parser): resolve operator dunders via local-alias chains, truthi…
vitali87 Jun 20, 2026
b3828e8
Merge pull request 'wip/fix-properties' (#7) from wip/fix-properties …
Jun 20, 2026
bc3bf90
feat(evals): harden L3 recall with richer Python fixture and decorato…
vitali87 Jun 20, 2026
c4f1076
fix(parser): resolve calls through conditionally-aliased bound method…
vitali87 Jun 20, 2026
f2a6208
feat(evals): extend L3 fixture to all 11 supported languages
vitali87 Jun 20, 2026
007bdba
feat(parser): resolve getattr(obj, name) dynamic dispatch via string-…
vitali87 Jun 20, 2026
eacb2fd
feat(parser): propagate callables through pass-through parameters via…
vitali87 Jun 20, 2026
7b63189
Merge pull request 'feat(evals): harden L3 CALLS recall across all la…
Jun 20, 2026
d096974
feat(parser): capture function-local class definitions by default
vitali87 Jun 20, 2026
122bbb8
Merge pull request 'feat(parser): capture function-local class defini…
Jun 20, 2026
0929c07
docs(evals): publish committed L1/L3 result snapshots and a results s…
vitali87 Jun 20, 2026
f5b6fed
Merge pull request 'docs(evals): publish committed eval result snapsh…
Jun 20, 2026
748fa2d
feat(parser): capture Go struct/interface/defined-type declarations a…
vitali87 Jun 20, 2026
838b56e
feat(parser): ingest Go receiver methods as Method nodes bound to the…
vitali87 Jun 20, 2026
bc9c571
Merge pull request 'feat(parser): full Go structure capture (types + …
Jun 20, 2026
2be5e5d
fix(parser): scope C++ out-of-class method resolution to C/C++ classe…
vitali87 Jun 20, 2026
261f97a
Merge pull request 'fix(parser): stop C++ out-of-class methods from s…
Jun 20, 2026
dafd100
fix(parser): disambiguate module qualified names for same-basename fi…
vitali87 Jun 20, 2026
c3984ab
Merge pull request 'fix(parser): disambiguate module qualified names …
Jun 20, 2026
12130f6
fix(parser): derive class and function qualified names from the resol…
vitali87 Jun 21, 2026
736feb1
Merge pull request 'fix(parser): derive class and function qns from t…
Jun 21, 2026
54511e3
fix(evals): grade IMPORTS only against real in-repo .py modules, excl…
vitali87 Jun 21, 2026
b36fc85
Merge pull request 'fix(evals): grade IMPORTS only against real in-re…
Jun 21, 2026
24ca2a0
fix(evals): capture functions and classes defined inside except handl…
vitali87 Jun 21, 2026
3f315c1
Merge pull request 'fix(evals): capture defs inside except handlers a…
Jun 21, 2026
70ffde5
feat(evals): add a native syn-based Rust structure oracle and fix the…
vitali87 Jun 21, 2026
d74efba
Merge pull request 'feat(evals): add a native syn-based Rust structur…
Jun 21, 2026
0bb722b
feat(evals): add a native TypeScript structure oracle via the TypeScr…
vitali87 Jun 21, 2026
33f284e
feat(evals): add a JavaScript structure oracle reusing the TypeScript…
vitali87 Jun 21, 2026
a88d2fc
feat(evals): add a native Java structure oracle via the JDK Compiler …
vitali87 Jun 21, 2026
36f79ff
fix(evals): grade Java anonymous-class methods as Function, matching …
vitali87 Jun 21, 2026
cade426
feat(evals): add a native Lua structure oracle via luaparse
vitali87 Jun 21, 2026
972377d
feat(evals): add a native PHP structure oracle via php-parser
vitali87 Jun 21, 2026
04e198f
Merge pull request 'feat(evals): add a native TypeScript structure or…
Jun 21, 2026
3a03410
Merge pull request 'feat(evals): add a JavaScript structure oracle (T…
Jun 21, 2026
6a0df27
Merge pull request 'feat(evals): add a native Java structure oracle v…
Jun 21, 2026
2b5d224
Merge pull request 'feat(evals): add a native Lua structure oracle vi…
Jun 21, 2026
d05d17c
Merge pull request 'feat(evals): add a native PHP structure oracle vi…
Jun 21, 2026
08db1e7
feat(evals): grade Go containment edges and fix cross-file receiver-m…
vitali87 Jun 21, 2026
5e4cc8d
Merge pull request 'feat(evals): grade Go containment edges and fix c…
Jun 21, 2026
8490aed
fix(parser): label DEFINES_METHOD with the container's real node labe…
vitali87 Jun 21, 2026
f5f6fef
Merge pull request 'fix(parser): label DEFINES_METHOD with the contai…
Jun 21, 2026
a0098dd
feat(evals): grade Rust containment edges and fix nested-module conta…
vitali87 Jun 21, 2026
60f38cc
Merge pull request 'feat(evals): grade Rust containment edges and fix…
Jun 21, 2026
56e8fc9
feat(evals): grade Java containment edges against the JDK Compiler Tr…
vitali87 Jun 21, 2026
a488ef0
Merge pull request 'feat(evals): grade Java containment edges against…
Jun 21, 2026
17f1072
fix(parser): scope TypeScript namespace classes by including internal…
vitali87 Jun 21, 2026
d66d6c2
Merge pull request 'fix(parser): scope TypeScript namespace classes b…
Jun 21, 2026
b447076
feat(evals): grade TypeScript/JavaScript containment edges and bind f…
vitali87 Jun 21, 2026
4e493b6
Merge pull request 'feat(evals): grade TypeScript/JavaScript containm…
Jun 21, 2026
3fbdf22
feat(evals): grade PHP containment edges against the php-parser oracle
vitali87 Jun 21, 2026
4a5d4fd
Merge pull request 'feat(evals): grade PHP containment edges against …
Jun 21, 2026
e43a891
feat(evals): grade Lua containment edges against the luaparse oracle
vitali87 Jun 21, 2026
6d47e4a
Merge pull request 'feat(evals): grade Lua containment edges against …
Jun 21, 2026
e30c69d
feat(evals): grade Java inheritance edges and capture interface-exten…
vitali87 Jun 21, 2026
78daa69
Merge pull request 'feat(evals): grade Java inheritance edges and cap…
Jun 21, 2026
20b5689
feat(evals): grade TypeScript inheritance edges and capture class imp…
vitali87 Jun 21, 2026
80808dd
Merge pull request 'feat(evals): grade TypeScript inheritance edges a…
Jun 21, 2026
2516168
feat(evals): grade PHP inheritance edges and capture extends/implemen…
vitali87 Jun 21, 2026
6055e68
Merge pull request 'feat(evals): grade PHP inheritance edges and capt…
Jun 21, 2026
f8675fa
feat(evals): grade Rust inheritance edges and capture impl-trait IMPL…
vitali87 Jun 21, 2026
aff7424
Merge pull request 'feat(evals): grade Rust inheritance edges and cap…
Jun 21, 2026
b30f89a
fix(rust): bind impl/trait-method closures to their enclosing method …
vitali87 Jun 21, 2026
a7a5402
Merge pull request 'fix(rust): bind impl/trait-method closures to the…
Jun 21, 2026
18da515
feat(evals): grade Rust node spans (end_line) against the syn oracle
vitali87 Jun 21, 2026
1f605f0
Merge pull request 'feat(evals): grade Rust node spans (end_line) aga…
Jun 21, 2026
11f37e4
feat(evals): grade Go node spans (end_line) against the go/ast oracle
vitali87 Jun 21, 2026
573f985
Merge pull request 'feat(evals): grade Go node spans (end_line) again…
Jun 21, 2026
5ac6700
feat(evals): grade TypeScript node spans (end_line) against the tsc o…
vitali87 Jun 21, 2026
8646244
Merge pull request 'feat(evals): grade TypeScript node spans (end_lin…
Jun 21, 2026
c5388f4
feat(evals): grade JavaScript node spans (end_line) against the tsc o…
vitali87 Jun 21, 2026
60c9a1f
Merge pull request 'feat(evals): grade JavaScript' (#39) from feat/ja…
Jun 21, 2026
10b3e68
feat(evals): grade Java node spans against the JDK oracle
vitali87 Jun 21, 2026
d54c9f0
feat(evals): grade PHP node spans against the php-parser oracle
vitali87 Jun 21, 2026
3a7a5bc
feat(evals): grade Lua node spans against the luaparse oracle
vitali87 Jun 21, 2026
baa6f6f
Merge pull request 'feat(evals): grade Java node spans' (#40) from fe…
Jun 21, 2026
4122aa4
Merge pull request 'feat(evals): grade PHP node spans' (#41) from fea…
Jun 21, 2026
d2e2626
Merge pull request 'feat(evals): grade Lua node spans against the lua…
Jun 21, 2026
1667c3f
feat(evals): grade Python node spans against the ast oracle
vitali87 Jun 21, 2026
df63bd7
Merge pull request 'feat(evals): grade Python node spans against the …
Jun 21, 2026
9c3b4c1
feat(evals): add a libclang C/C++ oracle driven by compile_commands.json
vitali87 Jun 21, 2026
f7effe3
Merge pull request 'feat(evals): add libclang C/C++ oracle' (#44) fro…
Jun 21, 2026
7b74de7
feat(evals): grade C/C++ inheritance edges and scope grading to compi…
vitali87 Jun 21, 2026
2430c03
Merge pull request 'feat(evals): grade C/C++ inheritance edges and sc…
Jun 21, 2026
1254960
fix(cpp): attribute out-of-line method call edges to the method node
vitali87 Jun 21, 2026
520df83
Merge pull request 'fix(cpp): attribute out-of-line method call edges…
Jun 21, 2026
a60f0be
feat(cpp): add libclang C++ frontend engine emitting macro-accurate s…
vitali87 Jun 21, 2026
273363f
Merge pull request 'feat(cpp): add libclang C++ frontend structure en…
Jun 21, 2026
812438f
feat(cpp): wire libclang C++ frontend into indexing behind CPP_FRONTEND
vitali87 Jun 21, 2026
9c9eeda
feat(cpp): emit CALLS edges in the libclang frontend via referenced c…
vitali87 Jun 21, 2026
2d18f16
Merge pull request 'feat/cpp-frontend-reconcile' (#52) from feat/cpp-…
Jun 22, 2026
95cc753
test(cpp): assert libclang frontend emits Type nodes for using/typede…
vitali87 Jun 22, 2026
1d1780f
feat(cpp): emit Type nodes for using and typedef aliases in the libcl…
vitali87 Jun 22, 2026
b2ca134
Merge pull request 'feat/cpp-frontend-types' (#53) from feat/cpp-fron…
Jun 22, 2026
1356517
chore: relocate analysis reports and TODO into docs, suppress from mk…
vitali87 Jun 22, 2026
3bac7cb
docs: exclude relocated reports and TODO from mkdocs nav
vitali87 Jun 22, 2026
16f3932
chore(deps): declare griffe runtime dependency for pydantic-ai
vitali87 Jun 27, 2026
eb1c8bb
Merge pull request #534 from vitali87/chore/deps-griffe-grammars
vitali87 Jun 27, 2026
cdfa0a6
fix(parser): scope module CALLS to top-level calls and capture Rust t…
vitali87 Jun 27, 2026
6d80f91
fix(parser): detect C function-body calls via declarator-aware name e…
vitali87 Jun 27, 2026
744b40d
fix(parser): restrict macro calls to parenthesized token-trees and ke…
vitali87 Jun 27, 2026
d1584b7
chore(deps): bump the uv group across 1 directory with 12 updates
dependabot[bot] Jun 27, 2026
e503a7a
fix(parser): keep file-scope initializer calls module-attributed by i…
vitali87 Jun 27, 2026
a854764
Merge pull request #535 from vitali87/feat/module-call-attribution
vitali87 Jun 27, 2026
6a7dd02
feat(evals): add L2 module-call attribution metric with ast oracle
vitali87 Jun 27, 2026
7774b54
fix(java): resolve field-access chains as method receivers and nested…
vitali87 Jun 27, 2026
6ecae40
fix(java): resolve this/super-rooted nested field-access chains and f…
vitali87 Jun 27, 2026
4be59ca
fix(java): walk inheritance chain when resolving field types for chai…
vitali87 Jun 27, 2026
149bf60
fix(java): resolve this/super receivers via lexical class for direct …
vitali87 Jun 27, 2026
3fd72cb
fix(java): preserve full scoped superclass name in type extraction
vitali87 Jun 27, 2026
d7fbd84
fix(java): resolve inherited fields through nested superclasses in fi…
vitali87 Jun 27, 2026
6ccde60
fix(evals): model deferred and annotation calls in module-call oracle…
vitali87 Jun 27, 2026
30a3f8d
fix(java): resolve nested superclass for super-rooted field-access ch…
vitali87 Jun 27, 2026
a492353
fix(evals): treat the outermost generator iterable as an eager module…
vitali87 Jun 27, 2026
caa81dd
fix(java): extract base name from generic scoped superclasses
vitali87 Jun 27, 2026
963b3a2
Merge pull request #533 from vitali87/fix/java-field-access-method-re…
vitali87 Jun 27, 2026
42dab8d
Merge pull request #537 from vitali87/eval/module-call-attribution
vitali87 Jun 27, 2026
7fee58b
feat(parser): emit module-load CALLS edges for bare decorators
vitali87 Jun 27, 2026
20d5b40
Merge pull request #536 from vitali87/dependabot/uv/uv-7b568e2a07
vitali87 Jun 28, 2026
ee497ab
fix(parser): emit module-load decorator edges for classes and resolve…
vitali87 Jun 28, 2026
9b09ec2
Merge pull request #540 from vitali87/feat/decorator-call-edges
vitali87 Jun 28, 2026
aa6cd1b
feat(dead-code): treat module-load callees as reachability roots
vitali87 Jun 28, 2026
6e01cf6
fix(dead-code): use portable size() module-root clause and exclude te…
vitali87 Jun 28, 2026
46fc7b9
feat(cli): validate --repo-path exists, is a directory, and warn if n…
vitali87 Jun 28, 2026
48e9f95
Merge pull request #541 from vitali87/feat/dead-code-module-roots
vitali87 Jun 28, 2026
ccf5fde
feat(dead-code): report unreachable classes via INSTANTIATES and INHE…
vitali87 Jun 28, 2026
b3cf96d
feat(cli): add --output-format json to wrap single-query agent output…
vitali87 Jun 28, 2026
2456d95
docs(dead-code): clarify base classes are kept live only by a reachab…
vitali87 Jun 28, 2026
ef69b18
feat(dead-code): report unreachable classes via INSTANTIATES and INHE…
vitali87 Jun 28, 2026
a82c995
chore: add local release script for manual PyPI publishing
vitali87 Jun 28, 2026
1c7e8f6
chore: sync server.json version to 0.0.187
vitali87 Jun 28, 2026
aeb9959
chore: sync server.json version in release script
vitali87 Jun 28, 2026
be94e2d
chore: remove unreferenced tree-sitter.txt dump
vitali87 Jun 29, 2026
b05f2ae
docs: relocate community-health files to .github and link canonical c…
vitali87 Jun 29, 2026
2227d63
chore: standardize project URLs and security reporting on GitHub
vitali87 Jun 29, 2026
25a6d38
feat(evals): add graph-vs-grep retrieval benchmark (#546)
vitali87 Jun 29, 2026
adc5cd7
feat(evals): add nine eval dimensions and fix four cgr bugs they surf…
vitali87 Jun 29, 2026
1e198ed
feat(evals): add Rust multi-language retrieval eval and fix two cgr b…
vitali87 Jun 29, 2026
7f783c2
feat(evals): add Java multi-language retrieval eval and fix three Jav…
vitali87 Jun 29, 2026
98ef508
feat(evals): add TypeScript multi-language retrieval eval and fix two…
vitali87 Jun 29, 2026
ff4f0a1
fix(js-ts): model class-field arrow members and resolve their body ca…
vitali87 Jun 29, 2026
d96ab68
feat(evals): add PHP multi-language retrieval eval and fix plain PHP …
vitali87 Jun 29, 2026
f951a96
feat(evals): add Lua multi-language retrieval eval and attribute call…
vitali87 Jun 29, 2026
32e50f5
perf(query): reuse Memgraph connection in semantic search tools (#505…
ChetanyaRathi Jun 29, 2026
9e12ad3
feat(evals): add C multi-language retrieval eval graded against an ab…
vitali87 Jun 30, 2026
56cbc9b
feat(evals): add C++ multi-language retrieval eval and fix namespace-…
vitali87 Jun 30, 2026
572fb0d
fix(evals): try remaining libclang candidates when one fails to load
vitali87 Jul 1, 2026
25a2491
fix(evals): return unavailable instead of raising when clang bindings…
vitali87 Jul 1, 2026
84ba195
fix(evals): grade C++ calls only when libclang resolves the callee fi…
vitali87 Jul 1, 2026
96d2cbd
Merge pull request #556 from vitali87/eval/cpp-multilang-retrieval
vitali87 Jul 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
23 changes: 23 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
.git
__pycache__
*.py[oc]
.venv
.env
.envrc
.ruff_cache
.mypy_cache
.pytest_cache
.claude
.coverage
.DS_Store
build
dist
wheels
*.egg-info
docs
site
.github
.qdrant_code_embeddings
CLAUDE.md
AGENTS.md
PROJECT.md
22 changes: 22 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,17 @@
# CYPHER_MODEL=gemini-2.5-flash
# CYPHER_API_KEY=your-google-api-key

# Example 6: LiteLLM with custom provider
# ORCHESTRATOR_PROVIDER=litellm_proxy
# ORCHESTRATOR_MODEL=gpt-oss:120b
# ORCHESTRATOR_ENDPOINT=http://litellm:4000/v1
# ORCHESTRATOR_API_KEY=sk-your-litellm-key

# CYPHER_PROVIDER=litellm_proxy
# CYPHER_MODEL=openrouter/gpt-oss:120b
# CYPHER_ENDPOINT=http://litellm:4000/v1
# CYPHER_API_KEY=sk-your-litellm-key

# Thinking budget for reasoning models (optional)
# ORCHESTRATOR_THINKING_BUDGET=10000
# CYPHER_THINKING_BUDGET=5000
Expand All @@ -68,9 +79,20 @@
MEMGRAPH_HOST=localhost
MEMGRAPH_PORT=7687
MEMGRAPH_HTTP_PORT=7444
# Memgraph authentication credentials
# Leave MEMGRAPH_USERNAME empty (or omit it) if your Memgraph instance doesn't require authentication
# If authentication is enabled, provide both username and password
# Common defaults: username=neo4j, password=password (or your custom credentials)
MEMGRAPH_USERNAME=
MEMGRAPH_PASSWORD=
LAB_PORT=3000
MEMGRAPH_BATCH_SIZE=1000

# Qdrant settings
# Leave QDRANT_URL unset to use local file mode (only suitable below ~20k embeddings)
# For larger codebases, run the bundled docker-compose service and point at it:
# QDRANT_URL=http://localhost:6333

# Repository settings
TARGET_REPO_PATH=.

Expand Down
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @vitali87
128 changes: 128 additions & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
eheva87@gmail.com.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series
of actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
the community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
3 changes: 1 addition & 2 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,4 @@
github: vitali87
buy_me_a_coffee: vitali87

# Uncomment and add username when you set up Patreon:
# patreon: YOUR_USERNAME
patreon: vitali87
7 changes: 2 additions & 5 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
blank_issues_enabled: false
blank_issues_enabled: true
contact_links:
- name: 💬 Discussions
url: https://github.com/vitali87/code-graph-rag/discussions
about: Ask questions and discuss ideas with the community
- name: 📚 Documentation
url: https://github.com/vitali87/code-graph-rag#readme
url: https://github.com/vitali87/code-graph-rag
about: Read the documentation and setup guides
- name: 🎓 MCP Server Setup
url: https://github.com/vitali87/code-graph-rag/blob/main/docs/claude-code-setup.md
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/question.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ body:
- type: markdown
attributes:
value: |
Thank you for your question! For general discussions or open-ended questions, consider using [GitHub Discussions](https://github.com/vitali87/code-graph-rag/discussions).
Thank you for your question! Please keep questions concrete; for broader topics, prefer opening an [issue](https://github.com/vitali87/code-graph-rag/issues) with the `question` label.

- type: textarea
id: question
Expand Down
46 changes: 46 additions & 0 deletions .github/SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Security Policy

## Supported Versions

| Version | Supported |
| ------- | ------------------ |
| 0.0.x | :white_check_mark: |

As the project is in early development (pre 1.0), only the latest release receives security updates. Please ensure you are running the most recent version before reporting a vulnerability.

## Reporting a Vulnerability

**Please do not report security vulnerabilities through public issues, pull requests, or any other public channels.**

Instead, please use GitHub's private vulnerability reporting: go to the [Security tab](https://github.com/vitali87/code-graph-rag/security/advisories/new) and click **Report a vulnerability**. This keeps the details confidential between you and the maintainers until a fix is available.

When reporting, please include:

- A description of the vulnerability and its potential impact
- Steps to reproduce or a proof of concept
- The version(s) affected
- Any suggested fix, if available

## What to Expect

- **Acknowledgement** within 72 hours of your report
- **Status update** within 7 days with an initial assessment
- **Resolution target** of 30 days for confirmed vulnerabilities, though critical issues will be prioritized for faster turnaround

If the vulnerability is accepted, we will work on a fix, coordinate disclosure with you, and credit you in the release notes (unless you prefer to remain anonymous).

If the vulnerability is declined, we will provide a clear explanation of why.

## Scope

This policy applies to the `code-graph-rag` Python package and its official repository. Third party dependencies are outside the direct scope of this policy, though we use Dependabot to monitor and update them.

## Security Measures in This Project

- **Dependency scanning**: Dependabot is enabled for automated dependency updates
- **Secret scanning**: GitHub secret scanning is active on this repository
- **Branch protection**: The `main` branch requires pull request reviews before merging

## Preferred Languages

We accept security reports in English.
16 changes: 16 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"

- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"

- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
38 changes: 38 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
## Summary

<!-- What does this PR do? Keep it brief: 1-3 bullet points. -->

-

## Type of Change

<!-- Check all that apply. -->

- [ ] Bug fix
- [ ] New feature
- [ ] Performance improvement
- [ ] Refactoring (no functional changes)
- [ ] Documentation
- [ ] CI/CD or tooling
- [ ] Dependencies

## Related Issues

<!-- Link related issues: "Fixes #123", "Closes #456", or "Related to #789" -->

## Test Plan

<!-- How was this tested? Check all that apply. -->

- [ ] Unit tests pass (`make test-parallel` or `uv run pytest -n auto -m "not integration"`)
- [ ] New tests added
- [ ] Integration tests pass (`make test-integration`, requires Docker)
- [ ] Manual testing (describe below)

## Checklist

- [ ] PR title follows [Conventional Commits](https://www.conventionalcommits.org/) format
- [ ] All pre-commit checks pass (`make pre-commit`)
- [ ] No hardcoded strings in non-config/non-constants files
- [ ] No `# type: ignore`, `cast()`, `Any`, or `object` type hints
- [ ] No new comments or docstrings (code should be self-documenting)
Loading