Skip to content

Commit e02e664

Browse files
committed
release: v0.5.20 - C# support, fuzzy search, bug fixes
- C# language parser with symbol extraction and relationship tracking - File extensions: .cs, .csx, .cshtml auto-configured in codanna init - Fuzzy search now handles missing character typos in full symbol names - Dual fuzzy strategy: ngram tokens + whole word matching - BREAKING: Tantivy schema name field changed from TEXT to STRING (requires reindex) - Automatic reverse relationship creation for bidirectional navigation - Fixed file ID counter race condition during batch operations - Fixed Windows file locking with retry logic and error logging - C# node_discovery.txt generation added to exploration tests All tests passing (447 total) BREAKING CHANGE: Requires full reindex with 'codanna index --force'
1 parent ff303a4 commit e02e664

36 files changed

Lines changed: 473 additions & 1893 deletions

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,36 @@ 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.20] - 2025-10-02
9+
10+
### Added
11+
- C# language support with full parser implementation (PR#39)
12+
- Symbol extraction for classes, interfaces, structs, enums, methods, properties, fields
13+
- Relationship tracking for inheritance, interface implementation, and method calls
14+
- XML documentation comment extraction
15+
- File extensions: `.cs`, `.csx`, `.cshtml`
16+
- Fuzzy search on non-tokenized name field for whole-word typo tolerance
17+
- Handles missing character typos in full symbol names (e.g., "ArchivService" finds "ArchiveService")
18+
- Dual fuzzy strategy: ngram tokens for partial matches + whole words for full name typos
19+
20+
### Changed
21+
- **BREAKING**: Tantivy schema `name` field changed from TEXT to STRING
22+
- Enables exact matching without tokenization for fuzzy search
23+
- Requires full reindex: `codanna index --force`
24+
- **PERFORMANCE**: Batch commits every 100 files instead of per-file commits
25+
- 10-50x faster indexing (varies by platform and file count)
26+
- macOS: ~10x improvement on typical projects
27+
- Windows: 25-50x improvement (1-2 files/s → 46 files/s on 4,453 file project)
28+
- Reduces disk I/O, segment creation, and cache rebuilds
29+
- Automatic reverse relationship creation for bidirectional graph navigation
30+
- Implements ↔ ImplementedBy, Extends ↔ ExtendedBy, Calls ↔ CalledBy, Uses ↔ UsedBy
31+
32+
### Fixed
33+
- File ID counter race condition during batch operations
34+
- Pending counter prevents stale committed values from causing duplicate IDs
35+
- Windows file locking issues with proper retry logic and error logging
36+
- Symbol cache and persistence layer handle OS error 1224 and permission denied
37+
838
## [0.5.19] - 2025-10-01
939

1040
### 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: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "codanna"
3-
version = "0.5.19"
3+
version = "0.5.20"
44
authors = ["Angel Bartolli <bartolli@gmail.com>"]
55
edition = "2024"
66
description = "Code Intelligence for Large Language Models"

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 21:49:28 UTC*
3+
*Generated: 2025-10-02 22:34:05 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 21:49:28 UTC*
3+
*Generated: 2025-10-02 22:34:05 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 21:49:28 UTC
2+
Generated: 2025-10-02 22:34:05 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 21:49:28 UTC*
3+
*Generated: 2025-10-02 22:34:05 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 21:49:28 UTC*
3+
*Generated: 2025-10-02 22:34:05 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 21:49:28 UTC
2+
Generated: 2025-10-02 22:34:05 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 21:49:28 UTC*
3+
*Generated: 2025-10-02 22:46:39 UTC*
44

55
## Summary
66
- Nodes in file: 108

0 commit comments

Comments
 (0)