Highlights
- Parsing Improvements: NODE_SCHEMAS are now parsed into a machine-readable format and PHP
use functionimports are resolved through declared namespaces. - Graph Enhancements: Graph-proximity reranking prototype and scope MCP and CLI graph retrieval to one project have been implemented. Call-site and import-site locations are now stored on graph edges.
- Code Understanding: Scala INHERITS edges from extends/with clauses and declared Markdown front-matter is read onto the Module node.
- Stability & Reliability: The Rust scan-perf test flaking under parallel load has been fixed and unknown model IDs are rejected at startup.
- Feature additions: Transactional multi-file edits with staged verification and undo are now available.
What's Changed
- docs: record the LIBCLANG disposition and correct a false dispatch warning by @vitali87 in #1469
- feat: parse NODE_SCHEMAS into a machine-readable form by @vitali87 in #1468
- feat: indexing-time benchmark on a pinned corpus (#1374 deliverable 4) by @vitali87 in #1470
- feat: Scala INHERITS edges from extends/with clauses (#1186 stage 1) by @vitali87 in #1472
- fix: decode every subprocess as UTF-8, not the locale encoding by @vitali87 in #1455
- feat: graph-proximity reranking prototype by @vitali87 in #1467
- fix: stop the Rust scan-perf test flaking under parallel load (#1473) by @vitali87 in #1476
- docs: say what add-grammar does NOT do (#1368) by @vitali87 in #1479
- fix: make semantic recall@k order-sensitive so reranking can be measured by @vitali87 in #1478
- fix: graph-read MCP handlers hold _ingestor_lock (#1471) by @vitali87 in #1475
- test: separate degree-weighted proximity from a flat any-edge boost by @vitali87 in #1482
- feat: report a measured frame resolution rate on traceback correlation by @vitali87 in #1483
- feat: resolve PHP
use functionimports through declared namespaces by @vitali87 in #1484 - docs: narrow the stale PHP LIMITATION comment by @vitali87 in #1486
- test: guard node properties against the protobuf schema by @vitali87 in #1497
- fix: report a rejected API key as an auth error, not a count failure by @vitali87 in #1496
- feat: read declared Markdown front-matter onto the Module node by @vitali87 in #1488
- fix: reject unknown model ids at startup instead of at first query by @vitali87 in #1501
- test: fail loudly when a provider's catalogue lookup silently misses by @vitali87 in #1505
- feat: expose find_duplicate_code and get_function_source as direct MCP tools by @vitali87 in #1443
- docs: name the UNWIND expression the proximity query actually emits by @vitali87 in #1487
- fix: up arrow recalls the previous message in interactive chat by @vitali87 in #1502
- feat: prune old tool results from conversation history to bound context growth by @vitali87 in #1506
- fix: set the model output budget explicitly by @vitali87 in #1499
- feat: arity TypeError parsing and signature-comparison primitives (#227) by @vitali87 in #1485
- refactor: remove duplicated code found by cgr duplicates by @vitali87 in #1480
- ci: cap the Greptile gate poll at 20 minutes so it stops gating other jobs' logs by @vitali87 in #1510
- test: assert the protobuf parity guard has subjects so it cannot pass vacuously by @vitali87 in #1512
- test: pin that the C++ frontend hints stay silent when they would be noise by @vitali87 in #1516
- docs: state and pin the imports eval's internal-dep granularity by @vitali87 in #1515
- test: pin that a C++ template specialization is unreachable from calls by @vitali87 in #1514
- refactor: share one repository walk so the C++ qn map cannot drift from the indexer by @vitali87 in #1511
- fix: refuse a C++ L1 target whose oracle produced no nodes to grade by @vitali87 in #1517
- feat: grade C++ resolved inheritance against the libclang oracle by @vitali87 in #1513
- feat: scope MCP and CLI graph retrieval to one project by @vitali87 in #1503
- feat: store call-site and import-site locations on graph edges by @vitali87 in #1537
- ci: vet external issues automatically before an agent may implement them by @vitali87 in #1509
- ci: drop the Greptile 5/5 gate by @vitali87 in #1553
- chore: drop the claimed label by @vitali87 in #1555
- feat: concrete-syntax-preserving patchers per language by @vitali87 in #1541
- fix: drop shadowed oracle-missing constants and format the binary by @vitali87 in #1558
- feat: transactional multi-file edits with staged verification and undo by @vitali87 in #1540
- fix: bind an incrementally re-parsed C++ out-of-class method to the class in its unchanged header by @vitali87 in #1559
- fix(evals): emulate the affected-caller query so the incremental emulation re-parses dependents like production by @vitali87 in #1561
- fix: scope MCP queries before the row cap so a scoped request keeps its own rows (#1508) by @vitali87 in #1578
- test: cover the project scope component boundary with a discriminating fixture by @vitali87 in #1579
- feat: import statement rewriting for rename and move by @vitali87 in #1544
- fix: treat IMPLEMENTS like INHERITS on the incremental path so re-indexing an interface keeps its implementors by @vitali87 in #1566
- test: pin GraphUpdater.run's documented resolution-phase order (#1552) by @vitali87 in #1583
- fix: re-parse the dependents of a deleted file on an incremental update by @vitali87 in #1571
- fix: honour .cgrignore on both sides of every eval arm by @vitali87 in #1563
- test: order delegate phases by call site so extracting run's stages cannot make the guard vacuous by @vitali87 in #1588
- chore: retire the issue-vetting scheme and its three labels by @vitali87 in #1587
Full Changelog: v0.0.770...v0.0.820