Skip to content

Commit 28883a3

Browse files
committed
release: v0.5.21 - add recursion guards across all parsers
- add check_recursion_depth() call to all language parsers (TypeScript, Python, Rust, Go, PHP, C++, C#) - each parser now accepts depth parameter in extract_symbols_from_node() - prevents stack overflow on deeply nested AST structures - MCP tools tested: semantic_search_with_context, find_symbol, analyze_impact, find_callers, get_calls verified - CLI retrieve commands tested: symbol, calls, callers, search, describe, implementations with --json flag - cross-file resolution working correctly in all scenarios
1 parent 5541258 commit 28883a3

33 files changed

Lines changed: 225 additions & 63 deletions

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.5.21] - 2025-10-03
9+
10+
### Added
11+
- Recursion depth guards across all language parsers
12+
- `check_recursion_depth()` prevents stack overflow on deeply nested AST structures
13+
- All parsers (TypeScript, Python, Rust, Go, PHP, C++, C#) now track depth in `extract_symbols_from_node()`
14+
- Safely handles pathological code with excessive nesting (tested on Qt keyboard at depth 3521)
15+
16+
### Changed
17+
- **PERFORMANCE**: Optimized resolution pipeline for large codebases
18+
- Indexed method calls as HashMap for O(1) lookup instead of linear search
19+
- Added symbol lookup cache to eliminate duplicate Tantivy queries
20+
- Qt qtbase (8,508 files, 413K symbols): 7m38s total, relationship resolution processes 4.68M relationships with 4,778 resolved, 4.39M skipped
21+
- Skipped relationships: external symbols not in index (Qt framework dependencies, system libraries)
22+
- Parser method signatures updated to accept depth parameter
23+
- Audit reports and grammar analysis regenerated for all languages
24+
825
## [0.5.20] - 2025-10-02
926

1027
### Added

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "codanna"
3-
version = "0.5.20"
3+
version = "0.5.21"
44
authors = ["Angel Bartolli <bartolli@gmail.com>"]
55
edition = "2024"
66
description = "Code Intelligence for Large Language Models"
@@ -14,10 +14,10 @@ categories = ["development-tools", "command-line-utilities", "parsing", "text-pr
1414
autoexamples = false
1515

1616
[profile.release]
17-
# opt-level = 3
18-
# lto = true
19-
# codegen-units = 1
20-
# strip = true
17+
opt-level = 3
18+
lto = true
19+
codegen-units = 1
20+
strip = true
2121

2222
[dependencies]
2323
anyhow = "1.0.98"

contributing/parsers/c/AUDIT_REPORT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# C Parser Coverage Report
22

3-
*Generated: 2025-10-02 22:34:05 UTC*
3+
*Generated: 2025-10-03 21:46:34 UTC*
44

55
## Summary
66
- Nodes in file: 145

contributing/parsers/c/GRAMMAR_ANALYSIS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# C Grammar Analysis
22

3-
*Generated: 2025-10-02 22:34:05 UTC*
3+
*Generated: 2025-10-03 21:46:34 UTC*
44

55
## Statistics
66
- Total nodes in grammar JSON: 132

contributing/parsers/c/node_discovery.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
=== C Language ABI-15 COMPREHENSIVE NODE MAPPING ===
2-
Generated: 2025-10-02 22:34:05 UTC
2+
Generated: 2025-10-03 21:46:34 UTC
33
ABI Version: 15
44
Node kind count: 145
55

contributing/parsers/cpp/AUDIT_REPORT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# C++ Parser Coverage Report
22

3-
*Generated: 2025-10-02 22:34:05 UTC*
3+
*Generated: 2025-10-03 21:46:34 UTC*
44

55
## Summary
66
- Nodes in file: 131

contributing/parsers/cpp/GRAMMAR_ANALYSIS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# C++ Grammar Analysis
22

3-
*Generated: 2025-10-02 22:34:05 UTC*
3+
*Generated: 2025-10-03 21:46:34 UTC*
44

55
## Statistics
66
- Total nodes in grammar JSON: 223

contributing/parsers/cpp/node_discovery.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
=== C++ Language ABI-15 COMPREHENSIVE NODE MAPPING ===
2-
Generated: 2025-10-02 22:34:05 UTC
2+
Generated: 2025-10-03 21:46:34 UTC
33
ABI Version: 14
44
Node kind count: 131
55

contributing/parsers/csharp/AUDIT_REPORT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# C# Parser Coverage Report
22

3-
*Generated: 2025-10-02 22:46:39 UTC*
3+
*Generated: 2025-10-03 21:46:34 UTC*
44

55
## Summary
66
- Nodes in file: 108

0 commit comments

Comments
 (0)