Repository navigation
v0.9.10
feat: Cross-Maven-group workspace expansion
Root cause: After expanding jdtls workspace to the initial Maven group (e.g., editorial-management/), _workspace_expanded = True permanently blocked add_module_if_new(). Files from other groups (search-engine/, related-content/) were never registered with jdtls via didChangeWorkspaceFolders — jdtls treated them as "non-project files" with no Maven classpath, permanently breaking cross-module navigation.
Fix: Replace _workspace_expanded: bool with _expanded_groups: set[str]. Each new Maven group is expanded on-demand when the user first navigates to a file in it.
Safety
- Hard cap of 5 concurrent groups (
_MAX_EXPANDED_GROUPS) prevents jdtls OOM - No LRU eviction — removing folders causes full re-index thrashing
_find_maven_group_rootcached with@lru_cacheto avoid per-request filesystem I/O- Child modules removed from workspace when their group root is added (prevents double-indexing)
- Path matching uses
Path.is_relative_to()instead ofstartswith()to avoid prefix false-matches
Also includes (from v0.9.9)
- Code-16 non-project-file guard in
_on_jdtls_diagnostics _LIGHTWEIGHT_METHODSfrozenset (documentHighlight, documentSymbol don't signal readiness)- Debug logging in
_ensure_module_and_forward([hot]/[cold] path, module name, null results)