# Roadmap
Direction, not commitment: items ship when they are ready. Details and discussion live in
the linked issues; anything not listed here is fair game for a proposal.
Reviewed for 0.9.0
## Near term
- **A reproducible agent-lane benchmark harness.** The protocol for measuring what an agent
does with the index is written down, but no lane has been run against the pinned public
corpora, and the agentic row on the scorecard is still a preliminary round measured on an
older build. The lanes' own corpus selection, a one-command in-repo reproduction path beside
[`bench/semantic.sh`](bench/semantic.sh), and fresh figures land together —
[#40](https://github.com/H3xas/devscout-rs/issues/40).
- **A deny-warnings `cargo clippy` gate in CI.** CI builds, tests and runs clippy, but without
`-D warnings`; a local `cargo clippy --all-targets` run still reports a pre-existing baseline
of style-level findings. Rather than silencing them piecemeal, the baseline closes to zero
first and the gate lands already green —
[#41](https://github.com/H3xas/devscout-rs/issues/41).
## TypeScript / JavaScript semantic coverage
TS/TSX/JS files are parsed with tree-sitter and resolved into the graph with a narrower set
of edge kinds than C# (see README → Language support). Three independent stages are open:
1. **The remaining single-file resolution cases** — namespace re-exports
(`export * as ns from`) contribute their import edge but no name mapping, and a bare
specifier that names a workspace package by its `package.json` name is not resolved to
that package. Both are wins on the AST already parsed today, with no new dependency —
[#42](https://github.com/H3xas/devscout-rs/issues/42).
2. **Semantic binding via oxc** — adopt `oxc_parser`/`oxc_semantic`/`oxc_resolver` to replace
name-based reference matching with real scope and symbol binding, and module resolution
rather than the current per-file approximation —
[#43](https://github.com/H3xas/devscout-rs/issues/43).
3. **An optional type-aware sidecar** — chained-call and `.d.ts`-level resolution requires the
TypeScript checker; an optional external collector could feed those edges into the index.
Considered only after stages 1–2 are exhausted —
[#44](https://github.com/H3xas/devscout-rs/issues/44).
## C# resolution depth
Syntax resolution follows a call chain one hop: a member access on the result of `a.M()` is
typed, while a chain more than one hop deep, or one reached through `?.`, stays unrecorded.
Nothing inside an external package is analysed either — the project model reads project files
only, with no NuGet resolution. The opt-in compiler-fact path already resolves the call sites it
covers. Revisited after the TS stages prove out the approach —
[#45](https://github.com/H3xas/devscout-rs/issues/45).