3.6 KiB
AgenticCode Roadmap — Open Tasks
This is a living task list of the remaining work. Completed features have
been moved to x-docs/features.md (with full implementation notes); this file
tracks only items that are still open.
All remaining items are postponed as of 2026-07-13 (43 auto-invalidation, 24/25 ingest-all performance, 26 MCP session reliability). No active roadmap work is scheduled; revisit when prioritised.
Lazy / deferred ingest (three-tier model)
Reworks ingest from eager whole-project parsing into a lazy, on-demand model.
Three tiers: Tier 1 = cheap eager reference index (per file: nodes,
identifiers, coarse call/DB references — no deep bodies); Tier 2 = lazy deep
ingest (control flow, statement-level dataflow, precise reads/writes) triggered
on demand; Tier 3 = source served from the filesystem, no longer stored on
nodes. Reverse queries (callers, search_identifier, flow_backward) stay
answerable because Tier 1 pre-indexes coarse references globally.
Items 36–42 are done (Tier-1 reference index + tri-state status, Tier-2 lazy
deep-ingest, depth/node caps, unresolved-reference nodes, Tier-3 source-from-disk
with stale check, and the refresh surface) — see x-docs/features.md. The only
open item in this track:
- 43. Automatic invalidation (deferred) — file-watch / hash-based
staleness detection that auto-transitions changed modules back to
not-ingested. Deferred;refresh(item 42) covers the gap until then. Would also address the current gap where a whole-projectrefreshMERGEs current files but does not remove nodes for deleted files (orphans linger until a clean wipe + re-ingest).
Ingest performance
-
24.
ingest-allperformance: parallel parse phase — the parse phase ofingestAllis sequential, butJavaParser.parse()/NaturalParser.parse()are stateless (a freshcom.github.javaparser.JavaParserper call; method-local node/edge lists), so files can be parsed concurrently (Java 21 virtual threads are enabled). Parse all candidates in parallel, keep duplicate-detection and thepersist/finalizeProjectphases sequential. Especially impactful for Java, where building a fullCompilationUnitis the CPU-heavy step. Note: ingest log ordering becomes non-deterministic; consider a configurable parallelism bound via@ConfigProperty. Depends on item 23 (done). -
25.
ingest-allperformance: batch persist transactions —persiststill opens one transaction/session per file. Batch the node/edge MERGEs across many files into fewer, larger transactions (UNWIND), cutting per-file transaction round-trip overhead. Lower impact than items 23/24; do last.
Agent API / MCP tooling gaps
- 26. MCP session reliability (investigated 2026-07-07, not fixed —
see below) —
mcp__agenticcode__module_functions(and potentially other MCP tools) intermittently failed with"the first message from the client must be initialize: tools/call"after a sequence of prior successful MCP calls in the same session, forcing a fallback to the equivalent REST endpoint. Findings: no session/idle-timeout is configured server-side (quarkus.http.idle-timeoutunset), andapplication.propertiesonly setsquarkus.mcp.server.server-info.*. The error shape (client senttools/callwithout a freshinitialize) points at the MCP client's reconnect handling on a new SSE stream, not a server-side bug this codebase's config can fix. Left open pending either aquarkus-mcp-server-sseversion bump with related fixes, or evidence this is in fact server-triggered.