Skip to content

Latest commit

 

History

History
59 lines (45 loc) · 4.35 KB

File metadata and controls

59 lines (45 loc) · 4.35 KB

Roadmap

Current Baseline

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 --workspace

The 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.

Delivered Scope

  • 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=0 parser for post-change impact inputs.
  • CLI and minimal MCP stdio access to the workflow.
  • Documentation for tool contracts, agent workflow, architecture, and CLI usage.

Known Caveats

  • 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_impact accepts diff text through the API/CLI. It does not run git diff itself.
  • 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.

Future Work

Precise References

  • Richer evidence, confidence, and test recommendations from provider diagnostics.

Multi-Language Support

  • 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.