Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
- Added Svelte symbol indexing — components (from filename), props, $state, $derived, functions via TS delegation (#375)

### Added

- **Dart symbol indexing.** `cora index` now extracts classes, mixins, enums, extensions, functions, getters, and typedefs from `.dart` files. Closes #373.

## [0.8.1] - 2026-07-24

Expand Down
90 changes: 89 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 17 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "cora-code"
version = "0.8.1"
version = "0.8.2"
edition = "2024"
description = "CLI-first AI code review — BYOK, diff/scan/branch, pre-commit hooks"
license = "MIT"
Expand Down Expand Up @@ -69,6 +69,14 @@ tree-sitter-rust = { version = "0.24", optional = true }
tree-sitter-go = { version = "0.25", optional = true }
tree-sitter-python = { version = "0.25", optional = true }
tree-sitter-typescript = { version = "0.23", optional = true }
tree-sitter-java = { version = "0.23", optional = true }
tree-sitter-c = { version = "0.24", optional = true }
tree-sitter-cpp = { version = "0.23", optional = true }
tree-sitter-c-sharp = { version = "0.23", optional = true }
tree-sitter-ruby = { version = "0.23", optional = true }
tree-sitter-php = { version = "0.24", optional = true }
tree-sitter-scala = { version = "0.26", optional = true }
tree-sitter-javascript = { version = "0.25", optional = true }

[features]
default = []
Expand All @@ -78,6 +86,14 @@ tree-sitter = [
"dep:tree-sitter-go",
"dep:tree-sitter-python",
"dep:tree-sitter-typescript",
"dep:tree-sitter-java",
"dep:tree-sitter-c",
"dep:tree-sitter-cpp",
"dep:tree-sitter-c-sharp",
"dep:tree-sitter-ruby",
"dep:tree-sitter-php",
"dep:tree-sitter-scala",
"dep:tree-sitter-javascript",
]

[dev-dependencies]
Expand Down
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
- ⚡ **Native Rust** — fast binary, no runtime dependencies, cross-platform
- 🪝 **Pre-commit hooks** — catch issues before they reach CI
- 📋 **SARIF output** — upload to GitHub Code Scanning
- 🛡️ **Deterministic scanners** — 11 security patterns + 12 secret detection patterns that run without LLM
- 🛡️ **Deterministic scanners** — 12 built-in rules + 13 security patterns + 15 secret detection patterns that run without LLM
- 🧠 **Language-specific analysis** — tailored review guidance for Dart/Flutter, Svelte, TypeScript, Go, Rust, Python
- 🚧 **Quality gate** — configurable pass/fail thresholds for CI enforcement
- 📐 **Quality profiles** — strict, balanced, or lax presets for different project needs
Expand All @@ -31,8 +31,9 @@
- 🔍 **Code Intelligence** — index symbols across 15 languages, call graph, trace, impact analysis
- 🧠 **Brain Mode** — hybrid semantic search (FTS5 + vector KNN + graph) with RRF fusion
- 🗄️ **Multi-project database** — one global index, search across all your repos at once
- 🌳 **tree-sitter** (opt-in) — AST-based call graph extraction for Rust, Go, Python, TypeScript
- 🔌 **MCP server** — 15 tools for AI agents (review, search, brain, debt, trace, ...)
- 🌳 **Tree-sitter** (opt-in) — AST-based symbol extraction for 12 languages: Rust, Go, Python, TypeScript/TSX, Java, C, C++, C#, Ruby, PHP, Scala, JavaScript
- 📄 **Svelte support** — review Svelte components with specialized analysis
- 🔌 **MCP server** — 15 tools for AI coding agents (review, search, brain, debt, trace, ...)
- 💾 **Diff-hash caching** — skip repeat reviews automatically
- 🔧 **Configurable** — per-project `.cora.yaml`, global `~/.cora/config.yaml`, or env vars

Expand Down
79 changes: 77 additions & 2 deletions docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,79 @@ All notable changes to cora-code are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.8.2] - 2026-07-24

### Added — Code Intelligence

- **Tree-sitter AST extraction for 8 additional languages** (#376)
- Java, C, C++, C#, Ruby, PHP, Scala, JavaScript — full AST-based symbol extraction.
- Tree-sitter now covers **12 languages** total (previously: Rust, Go, Python, TypeScript/TSX).
- AST path takes priority when tree-sitter is compiled; regex extractors remain as fallback.

- **Svelte symbol indexing** (#375)
- Svelte components are now indexed (scripts, props, stores, imports).
- Uses TypeScript tree-sitter parser for script blocks.

- **Dart symbol indexing** (#374)
- Classes, mixins, extensions, methods, top-level functions, and enums.

### Changed — Documentation

- Updated README, changelog (v0.8.0 + v0.8.1 entries), roadmap (v0.8 section), CLI reference, and code intelligence docs.

## [Unreleased]

## [0.8.1] - 2026-07-24

### Changed

- **Version bump for crates.io publish** — no functional changes.

## [0.8.0] - 2026-07-16

### Highlights

- **Brain Mode** — hybrid semantic search combining FTS5, vector KNN (usearch), and call-graph BFS with Reciprocal Rank Fusion (RRF). All local, no model download.
- **Tree-sitter AST extraction** — opt-in `--features tree-sitter` builds get accurate symbol extraction and call graph edges for Rust, Go, Python, TypeScript/TSX.
- **Architecture commands** — `cora trace` for call chain tracing, `cora arch` for module/edge overview.
- **VitePress documentation** — migrated from SvelteKit to VitePress at `codecora.dev`.

### Added

- **Brain Mode** — hybrid semantic search (#362)
- Three search signals fused via RRF (k=60): FTS5 keyword, usearch HNSW vector KNN, call-graph BFS.
- `cora brain <query>` command with `--json` and `--limit` flags.
- `cora.brain_search` MCP tool.

- **Static token embedding engine** (#354)
- Zero-dependency bag-of-tokens hashing producing 256d vectors.
- No model download, no GPU, no external service.
- Integrated into `cora index` for vector index population.

- **Tree-sitter AST extraction** (#356)
- Opt-in via `--features tree-sitter` at build time.
- Initial 4 languages: Rust, Go, Python, TypeScript/TSX.
- Schema v3 `edges` table for AST-derived call graph relationships.

- **`cora trace` and `cora arch`** (#358)
- `cora trace <symbol>` — depth-limited BFS call chain tracing (outgoing/incoming).
- `cora arch` — architecture overview showing modules, edge types, and top connectors.

- **Global index database** (#355)
- Migrated from `.cora/index.db` (per-project) to `~/.codecora/cora-code/graph.db` (global).
- Multi-project search: index multiple repos, search across all of them.

- **Code Intelligence documentation** (#365)
- New `docs/code-intelligence.md` covering indexing, search, call graph, and MCP tools.

### Changed

- **Renamed `cora-cli` → `cora-code`** (#338) — crate name, repo description, all references.
- **Security scanner false positives suppressed** (#369) — `sec-hardcoded-url` and `sec-hardcoded-secret/crypto` patterns refined to reduce noise (#357, #364).
- **Uteke memory integration hidden from user-facing docs** (#367) — still functional, just not advertised externally.
- **VitePress docs** — adopted `@codecora-theme`, retired SvelteKit `website/` directory.
- **CI** — decoupled GitHub Release from crates.io publish (#371).

## [0.7.0] - 2026-07-16

### Highlights
Expand Down Expand Up @@ -596,9 +667,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- **Cross-platform** — Linux (x86_64, ARM64), macOS (Apple Silicon), Windows (x86_64)
- **MIT License** — fully open source

[Unreleased]: https://github.com/codecoradev/cora-code/compare/v0.6.1...develop
[Unreleased]: https://github.com/codecoradev/cora-code/compare/v0.8.2...develop
[0.8.2]: https://github.com/codecoradev/cora-code/compare/v0.8.1...v0.8.2
[0.8.1]: https://github.com/codecoradev/cora-code/compare/v0.8.0...v0.8.1
[0.8.0]: https://github.com/codecoradev/cora-code/compare/v0.7.0...v0.8.0
[0.7.0]: https://github.com/codecoradev/cora-code/compare/v0.6.2...v0.7.0
[0.6.2]: https://github.com/codecoradev/cora-code/compare/v0.6.1...v0.6.2
[0.6.1]: https://github.com/codecoradev/cora-code/compare/v0.6.0...v0.6.1
[0.6.0]: https://github.com/codecoradev/cora-code/compare/v0.5.0...v0.6.0
[0.5.0]: https://github.com/codecoradev/cora-code/compare/v0.4.6...v0.5.0
[0.4.6]: https://github.com/codecoradev/cora-code/compare/v0.4.5...v0.4.6
[0.4.5]: https://github.com/codecoradev/cora-code/compare/v0.4.4...v0.4.5
Expand Down
15 changes: 15 additions & 0 deletions docs/cli-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,14 @@ Complete command reference for the cora CLI.
| `cora brain` `--limit N` | Max results (default: 20) |
| `cora index` | Index project symbols into SQLite + usearch |
| `cora index --rebuild` | Rebuild index from scratch |
| `cora index --watch` | Auto-sync file watcher (2s poll interval) |
| `cora index --stats` | Show index statistics (symbol count, languages, DB size) |
| `cora index --prune` | Remove stale entries for deleted files |
| `cora callers` `<symbol>` | Find all callers of a symbol (reverse call graph) |
| `cora callers` `--limit N` | Max callers to return (default: 50) |
| `cora impact` `<symbol>` | Analyze blast radius of changing a symbol |
| `cora impact` `--depth N` | Traversal depth (default: 3) |
| `cora affected` `<files...>` | Find test files affected by source changes |
| `cora completion` `<shell>` | Generate shell completions (bash/zsh/fish) |
| `cora mcp` | Start MCP server for AI coding agents (Claude Code, Cursor, Windsurf) |

Expand Down Expand Up @@ -111,3 +119,10 @@ $ cora brain "TokenEmbedding" --json --limit 5
$ cora trace main
$ cora arch
```

```bash
# Find callers and analyze impact
$ cora callers handle_request
$ cora impact process_order --depth 5
$ cora affected src/order.rs src/payment.rs
```
Loading
Loading