Goal
Replace regex-based symbol resolution in build_context_chain() with SQLite symbol index lookups for higher accuracy and speed.
Context
- Current:
engine/context/resolver.rs uses regex to extract imports, fn calls, type refs from diff, then resolves via file-system scan (std::fs::read_dir + grep-style matching)
cora index builds a complete symbol index in SQLite (tree-sitter parsed) that is never queried by review/scan pipeline
- This means
cora index data goes unused — symbol resolution is re-done ad-hoc every review
Scope
- Add
resolve_via_index() in engine/context/resolver.rs — query SQLite symbols table instead of regex+fs
- Add
IndexBridge abstraction (engine/index_bridge.rs) — open cora.db if available, graceful degradation if not
- Add
prefer_index: bool to ContextConfig (default: true if index available)
- Fallback to regex-based resolution when index unavailable
Files
src/engine/context/resolver.rs — add index-based resolution
src/engine/context/mod.rs — IndexBridge integration
src/engine/context/types.rs — prefer_index config
- NEW:
src/engine/index_bridge.rs — index availability abstraction
Benefits
- More accurate resolution (tree-sitter parsed vs regex)
- Faster for large repos (SQLite query < file walk)
- No more 400-file scan limit for blast radius
Effort: 3-4 days
Goal
Replace regex-based symbol resolution in
build_context_chain()with SQLite symbol index lookups for higher accuracy and speed.Context
engine/context/resolver.rsuses regex to extract imports, fn calls, type refs from diff, then resolves via file-system scan (std::fs::read_dir+ grep-style matching)cora indexbuilds a complete symbol index in SQLite (tree-sitter parsed) that is never queried by review/scan pipelinecora indexdata goes unused — symbol resolution is re-done ad-hoc every reviewScope
resolve_via_index()inengine/context/resolver.rs— query SQLite symbols table instead of regex+fsIndexBridgeabstraction (engine/index_bridge.rs) — open cora.db if available, graceful degradation if notprefer_index: boolto ContextConfig (default: true if index available)Files
src/engine/context/resolver.rs— add index-based resolutionsrc/engine/context/mod.rs— IndexBridge integrationsrc/engine/context/types.rs— prefer_index configsrc/engine/index_bridge.rs— index availability abstractionBenefits
Effort: 3-4 days