Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
815 commits
Select commit Hold shift + click to select a range
b2e62ca
perf: remove unnecessary isinstance(Node) checks in class ingest mixin
vitali87 Mar 29, 2026
c566cc4
perf: defer call_starts and func_node_starts list creation until needed
vitali87 Mar 29, 2026
2b4449f
perf: use f-string Path construction instead of Path.__truediv__ in f…
vitali87 Mar 29, 2026
8acf636
perf: add single-entry fast path cache for get_cached_query consecuti…
vitali87 Mar 29, 2026
50e30f3
perf: use MD5 instead of SHA256 for file content hashing
vitali87 Mar 29, 2026
e245860
perf: use open+read instead of Path.read_bytes in file hashing
vitali87 Mar 29, 2026
a4dacfb
perf: skip builtin and cpp operator resolution for non-matching langu…
vitali87 Mar 29, 2026
bb9a6ed
perf: use bisect-based method filtering for Rust impl blocks too
vitali87 Mar 29, 2026
64bcde5
perf: parallel pre-parsing with ThreadPoolExecutor for changed files
vitali87 Mar 29, 2026
b61e4ec
perf: replace ThreadPoolExecutor pre-parsing with serial parsing usin…
vitali87 Mar 29, 2026
045b190
perf: trust combined_captures dict to skip redundant separate queries
vitali87 Mar 29, 2026
285fdef
fix: resolve type errors and formatting issues from CI
vitali87 Mar 29, 2026
5ace6d9
fix: address review findings from Greptile
vitali87 Mar 29, 2026
9990b23
fix: resolve CI test failures
vitali87 Mar 29, 2026
9c56c9f
fix: mark MD5 as usedforsecurity=False to resolve SonarCloud hotspots
vitali87 Mar 29, 2026
6c66f4b
fix: address Greptile P1/P2 findings from re-review
vitali87 Mar 29, 2026
f5c90c3
docs(readme): swap <picture> for single <img> for bitbucket rendering
vitali87 Apr 22, 2026
6be5a91
docs(readme): comment out github-dependent and mseep badges for bitbu…
vitali87 Apr 22, 2026
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
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
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
9 changes: 3 additions & 6 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
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://codeberg.org/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
url: https://codeberg.org/vitali87/code-graph-rag/src/branch/main/docs/claude-code-setup.md
about: Setup Code-Graph-RAG as an MCP server with Claude Code
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ body:
attributes:
label: URL (if applicable)
description: Link to the documentation page
placeholder: "https://github.com/vitali87/code-graph-rag/blob/main/..."
placeholder: "https://codeberg.org/vitali87/code-graph-rag/src/branch/main/..."

- type: textarea
id: current-state
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://codeberg.org/vitali87/code-graph-rag/issues) with the `question` label.

- type: textarea
id: question
Expand Down
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)
46 changes: 41 additions & 5 deletions .github/workflows/build-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,14 @@ on:
release:
types: [created]

permissions: read-all

jobs:
build:
name: Build ${{ matrix.platform }}-${{ matrix.arch }}
runs-on: ${{ matrix.os }}
permissions:
contents: write
timeout-minutes: 30
strategy:
fail-fast: false
Expand All @@ -32,18 +36,18 @@ jobs:

steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
submodules: recursive

- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "3.12"

- name: Install uv
uses: astral-sh/setup-uv@v4
uses: astral-sh/setup-uv@e4db8464a088ece1b920f60402e813ea4de65b8f # v4
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
Expand All @@ -66,7 +70,7 @@ jobs:
fi

- name: Upload binary artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: code-graph-rag-${{ matrix.platform }}-${{ matrix.arch }}
path: dist/code-graph-rag-*
Expand All @@ -75,7 +79,39 @@ jobs:

- name: Upload to release
if: startsWith(github.ref, 'refs/tags/v')
uses: softprops/action-gh-release@v2
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2
with:
files: dist/code-graph-rag-*
fail_on_unmatched_files: true

sign-release:
name: Sign Release Artifacts
if: startsWith(github.ref, 'refs/tags/v')
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
steps:
- name: Install cosign
uses: sigstore/cosign-installer@ba7bc0a3fef59531c69a25acd34668d6d3fe6f22 # v4.1.0

- name: Download all artifacts
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
path: artifacts
merge-multiple: true

- name: Sign artifacts
shell: bash
run: |
for f in artifacts/*; do
[ -f "$f" ] || continue
cosign sign-blob --yes --bundle "${f}.sigstore.json" "$f"
done

- name: Upload signatures to release
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2
with:
files: artifacts/*.sigstore.json
fail_on_unmatched_files: false
Loading