Skip to content

fix(maven): property resolution, DashMap deadlock, progress improvements#62

Merged
bug-ops merged 4 commits intomainfrom
feature/maven-ecosystem
Feb 22, 2026
Merged

fix(maven): property resolution, DashMap deadlock, progress improvements#62
bug-ops merged 4 commits intomainfrom
feature/maven-ecosystem

Conversation

@bug-ops
Copy link
Copy Markdown
Owner

@bug-ops bug-ops commented Feb 22, 2026

Summary

  • Switch version fetching from Solr API to maven-metadata.xml CDN (50-150ms vs 300-800ms)
  • Fix DashMap deadlock in HttpCache by releasing shard lock before awaiting conditional requests
  • Channel-based progress architecture to prevent LSP transport backpressure stalling fetches
  • Maven property resolution from <properties> section including built-in project.version, project.groupId, project.artifactId
  • Skip diagnostics during loading to prevent false "Unknown package" warnings
  • Fall back to latest pre-release when no stable version exists
  • Add language column to ecosystem tables in README

Test plan

  • 1064 tests pass (cargo nextest run --workspace)
  • clippy clean (cargo clippy --workspace --all-targets --all-features -- -D warnings)
  • fmt clean (cargo +nightly fmt --check)
  • Manual test: open large pom.xml with 112 dependencies, all fetched in ~150ms
  • Property resolution verified for ${property} references

…etching

Replace Maven Central Solr search API (300-800ms per request) with
direct maven-metadata.xml fetch from CDN (50-150ms). Static XML files
are CDN-cached and support strong ETag validation, significantly
reducing cold start latency for pom.xml files with many dependencies.
Solr API retained for package search only.
…s reporting

Switch progress system to channel-based architecture to avoid LSP
transport backpressure stalling registry fetches. Fix DashMap deadlock
in HttpCache by releasing shard lock before awaiting conditional
requests.

Add Maven property resolution from <properties> section including
built-in project.version, project.groupId, project.artifactId.
Skip diagnostics while versions are still loading to prevent false
"Unknown package" warnings. Fall back to latest pre-release when no
stable version exists.
Add language column to ecosystem tables for clarity. Document
DashMap deadlock fix, channel-based progress, property resolution,
and pre-release fallback in CHANGELOG. Downgrade verbose info
traces to debug level.
@github-actions github-actions Bot added documentation Improvements or additions to documentation rust Rust code changes lsp Language Server Protocol parser Parser changes needs-review Needs review size: XL 500-1000 lines changed labels Feb 22, 2026
@github-actions github-actions Bot added the tests Test changes label Feb 22, 2026
@bug-ops bug-ops merged commit 91bf46b into main Feb 22, 2026
20 checks passed
@bug-ops bug-ops deleted the feature/maven-ecosystem branch February 22, 2026 17:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation lsp Language Server Protocol needs-review Needs review parser Parser changes rust Rust code changes size: XL 500-1000 lines changed tests Test changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant