Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
df46238
Add backend abstraction layer with database traits
CamonZ Dec 23, 2025
d6a1117
Implement CozoDB backend wrapper for Database trait
CamonZ Dec 23, 2025
b51d6c0
Add SurrealDB backend stub for compilation support
CamonZ Dec 23, 2025
bedd40a
Migrate CLI layer to use Database abstraction (Stage 3)
CamonZ Dec 24, 2025
e7f778b
Configure feature flags for backend selection (Ticket 05)
CamonZ Dec 24, 2025
701978e
Update lib.rs public API exports and documentation (Ticket 06)
CamonZ Dec 24, 2025
ee2d4eb
Create modular schema definitions for both backends
CamonZ Dec 24, 2025
ed6d00e
Implement SurrealDatabase struct with async-to-sync bridge
CamonZ Dec 24, 2025
235437d
Implement SurrealDB type wrappers and scope query tests to backends
CamonZ Dec 24, 2025
2505156
Implement two-phase schema creation and add comprehensive tests
CamonZ Dec 24, 2025
21fb45a
Implement SurrealDB error detection for idempotent schema creation
CamonZ Dec 24, 2025
d30fb92
Add comprehensive tests for SurrealDB backend
CamonZ Dec 24, 2025
534958d
Add comprehensive tests for CozoDB query modules
CamonZ Dec 25, 2025
140523e
Implement SurrealDB test fixtures and fix response deserialization
CamonZ Dec 25, 2025
cb048d0
Implement SurrealDB backend for search module with comprehensive tests
CamonZ Dec 25, 2025
dfedec6
Implement SurrealDB backend for function queries with comprehensive t…
CamonZ Dec 25, 2025
3557c7d
Implement SurrealDB backend for location queries with comprehensive t…
CamonZ Dec 25, 2025
45dcafe
Implement SurrealDB backend for file queries with comprehensive tests
CamonZ Dec 25, 2025
6b20c6a
Add complex SurrealDB test fixture with realistic call graph data
CamonZ Dec 25, 2025
17d2885
Implement SurrealDB backend for struct queries with comprehensive tests
CamonZ Dec 25, 2025
bbecc85
Implement SurrealDB backend for type queries with comprehensive tests
CamonZ Dec 25, 2025
f3832de
Fix SurrealDB call queries to use database-side filtering
CamonZ Dec 25, 2025
549b14b
Implement SurrealDB trace query with graph traversal and regex support
CamonZ Dec 26, 2025
4b473dd
Implement SurrealDB backend for reverse trace with direction-aware tr…
CamonZ Dec 26, 2025
5aa126e
Implement SurrealDB backend for shortest path queries
CamonZ Dec 27, 2025
b0a5413
Implement SurrealDB backend for module dependency queries
CamonZ Dec 27, 2025
2de2dae
Implement SurrealDB backend for hotspots with strong test assertions
CamonZ Dec 27, 2025
51b7183
Update SurrealDB schema and migrate tests to complex fixture
CamonZ Dec 27, 2025
4502809
Pluralize SurrealDB node table names for consistency
CamonZ Dec 27, 2025
b4a3a39
Implement SurrealDB backend for complexity metrics query
CamonZ Dec 27, 2025
c5f4aa5
Implement SurrealDB backend for large functions query
CamonZ Dec 27, 2025
38d30b6
Implement SurrealDB backend for many clauses query
CamonZ Dec 27, 2025
38fb6a8
Implement SurrealDB backend for module clusters query
CamonZ Dec 27, 2025
91c370c
Implement SurrealDB backend for unused functions query
CamonZ Dec 27, 2025
c4ae088
Add call graph cycles to test fixture and update test expectations
CamonZ Dec 27, 2025
ed8e1bf
Implement SurrealDB backend for cycle detection query
CamonZ Dec 27, 2025
3dd2f16
Implement SurrealDB backend for duplicates query
CamonZ Dec 27, 2025
22c9704
Implement SurrealDB backend for accepts query
CamonZ Dec 27, 2025
8abc2b0
Implement SurrealDB backend for returns query
CamonZ Dec 27, 2025
52d63f4
Remove unnecessary documentation files
CamonZ Dec 27, 2025
b1b0105
Implement SurrealDB backend for specs query
CamonZ Dec 27, 2025
a6ba272
Implement SurrealDB backend for struct_usage query
CamonZ Dec 27, 2025
026a0cb
Implement SurrealDB backend for import module
CamonZ Dec 27, 2025
4c70d95
Implement SurrealDB backend for hotspots query
CamonZ Dec 28, 2025
67f1438
Make arity required for path command
CamonZ Dec 28, 2025
d66c9f0
Align trace_calls signature between CozoDB and SurrealDB
CamonZ Dec 28, 2025
98c4bfc
Fix SurrealDB function import and add execute tests
CamonZ Dec 28, 2025
dcceb62
Add acceptance tests using assert_cmd and predicates
CamonZ Dec 28, 2025
ab9106b
Fix SurrealDB hotspots query using GROUP BY on record IDs
CamonZ Dec 29, 2025
ccff4f6
Refactor SurrealDB queries to use QueryParams and exact matching
CamonZ Dec 29, 2025
0e2e53d
Add denormalized fields to functions table for query performance
CamonZ Dec 29, 2025
1ae73aa
Fix find_functions_in_module to return all clause fields for SurrealDB
CamonZ Dec 29, 2025
d15209f
Remove debug print statement
CamonZ Dec 29, 2025
013ec5e
Fix calls-from to display caller function line numbers
CamonZ Dec 29, 2025
4f440bb
Fix trace query to fetch call line numbers and sort output by line
CamonZ Dec 29, 2025
500ab5d
Fix SurrealDB column ordering in path and trace edge lookups
CamonZ Dec 30, 2025
272acb9
Use surrealdb.rocksdb as default database filename for SurrealDB backend
CamonZ Dec 30, 2025
3860d1d
Remove CozoDB backend, standardize on SurrealDB
CamonZ Dec 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,10 @@ target
# Contains mutation testing data
**/mutants.out*/

cozo.sqlite
surrealdb.rocksdb
.code_search/
/call_graph.json
!src/fixtures/call_graph.json
.cozo_repl_history
/extracted_trace.json
!src/fixtures/extracted_trace.json
/trade_gym_call_graph.json
Expand Down
8 changes: 4 additions & 4 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ cargo run -p code_search -- describe # Show detailed command documentation
This is a Cargo workspace with two crates:

- **`db/`** - Database library crate
- CozoDB query layer (all `queries/` modules)
- SurrealDB query layer (all `queries/` modules)
- Database utilities (`db.rs`)
- Shared types (`types/`)
- Query builders (`query_builders.rs`)
Expand All @@ -41,14 +41,14 @@ This is a Cargo workspace with two crates:

## Architecture

This is a Rust CLI tool for querying call graph data stored in a CozoDB SQLite database. Uses Rust 2024 edition with clap derive macros for CLI parsing.
This is a Rust CLI tool for querying call graph data stored in a SurrealDB database (RocksDB storage). Uses Rust 2024 edition with clap derive macros for CLI parsing.

**Code organization:**

*Database crate (`db/src/`):*
- `lib.rs` - Public API surface, re-exports
- `db.rs` - Database connection and query utilities
- `queries/<name>.rs` - CozoScript queries and result parsing (31 query modules)
- `queries/<name>.rs` - SurrealQL queries and result parsing (31 query modules)
- `query_builders.rs` - SQL condition builders (`ConditionBuilder`, `OptionalConditionBuilder`)
- `types/` - Shared types (`ModuleGroupResult`, `ModuleGroup`, `Call`, `FunctionRef`, etc.)
- `fixtures/` - Test data (feature-gated)
Expand Down Expand Up @@ -76,7 +76,7 @@ Each command is a directory module with these files:
// Defined in cli/src/commands/mod.rs
pub trait Execute {
type Output: Outputable;
fn execute(self, db: &db::DbInstance) -> Result<Self::Output, Box<dyn Error>>;
fn execute(self, db: &dyn db::backend::Database) -> Result<Self::Output, Box<dyn Error>>;
}
```

Expand Down
Loading