The canonical workspace is in a recovered v0.2 baseline state. Run commands from
the workspace root, identified by the top-level Cargo.toml.
The deterministic local workflow and v0.2 extensions complete these verification gates before release:
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspaceThe workspace is captured as a v0.2 baseline in git history. The original implementation plan still has 56 unchecked task boxes because that historical plan asked for per-task commits; this recovery records evidence in execution status instead of rewriting the historical checklist.
- Local Rust, Java, TypeScript/TSX, and Python repository indexing with incremental changed-file handling.
- Language-provider chunk extraction for functions, data types, impls/classes, modules, tests, and fallback file sections.
- Public language-provider registry metadata for future parser/plugin discovery.
- SQLite persistence for chunks, source text, symbols, graph edges, and project memories.
- Persistent Tantivy search lifecycle wired into indexing and search, fused with in-memory BM25 by RRF.
- Deterministic local hash-vector retrieval with vector-only and fused-search surfaces.
- Metadata-first search, exact chunk retrieval, reference lookup, context expansion, impact analysis, pre-change context, and post-change impact tools.
- Project memory CRUD/reconciliation and repo-scoped pre-change memory inclusion.
- Public reference-provider registry metadata plus heuristic provider labels, confidence, and evidence.
- Graph call edges for syntactic function/method calls, including Java/TypeScript/Python import-alias and receiver method calls.
- Java import,
extends/implements, JUnit test method, and receiver call hints; TypeScript/Python import-alias, receiver method, and class relationship hints. - Config-driven external reference providers for rust-analyzer/SCIP, Java SCIP, TypeScript, and Python type-checker adapters, loaded as commands during
index_repo. - First-party CLI adapter subcommands for rust-analyzer/SCIP,
scip-java, TypeScript, and Python that invoke the installed tools and speak the external provider protocol. - External provider edges are resolved against indexed symbols, persisted with provider labels, and traversed by reference lookup, context expansion, and impact analysis.
- Windows provider timeout cleanup uses Job Objects when available, and the TypeScript adapter uses the stable TypeScript compiler/language-service API instead of the TypeScript 7 unstable sync checker API.
- Pure Rust
git diff --unified=0parser for post-change impact inputs. - CLI and minimal MCP stdio access to the workflow.
- Documentation for tool contracts, agent workflow, architecture, and CLI usage.
- Impact analysis combines stored provider edges. Precision depends on the configured providers; without an external compiler/type-checker provider, the built-in graph remains heuristic.
- Java/TypeScript/Python heuristic reference resolution handles common local imports, aliases, class implements/extends, and receiver-style method calls. Full type checking, package resolution, overload resolution, and dynamic-language flow analysis require configured external providers.
- The engine now loads external provider commands, and the CLI ships first-party adapters, but deployments still need rust-analyzer,
scip-java, TypeScript, Pyright, Java tooling, and Node installed at known paths. - Local hash-vector retrieval is deterministic feature hashing, not a downloaded embedding model or semantic ML backend.
post_change_impactaccepts diff text through the API/CLI. It does not rungit diffitself.- Context packs contain metadata and estimated token costs; source text is still intentionally fetched through
get_chunk. - Public CLI/MCP tools require a file-backed SQLite database path rather than
:memory:. - Future delivery work can branch from the v0.2 baseline commit.
- Richer evidence, confidence, and test recommendations from provider diagnostics.
- Additional language providers beyond Rust, Java, TypeScript/TSX, and Python.
- Additional compiler/type-checker-backed TypeScript and Python semantics beyond the current lightweight local heuristics.