Skip to content

v0.6.0

Choose a tag to compare

@dannote dannote released this 17 May 15:51
· 71 commits to main since this release

New

  • mix exograph.index.hex — download and index Hex.pm packages in a streaming pipeline
    • Streaming: tarball → tmpdir → index → cleanup. Disk = concurrency × 1 package.
    • Resume by default: skips already-indexed packages
    • Modes: --mode latest (all ~21k), --mode top --limit 5000, --mode all (every version)
    • Mirror balancing: --mirror URL with round-robin/random
    • --concurrency 8 for parallel download+index
  • CLI progress — per-package status (✓/○/✗), progress bar, rate, ETA
  • LiveView progress dashboard — real-time at /progress with --web flag
  • Source viewer — click code icon on any result to see full file with highlighted match line
  • pg_trgm indexes on files.source and files.comments_text for fast ILIKE text search

Fixed

  • Removed all full-table-scan fallbacks — ILIKE/regex queries in Postgres instead
  • Deadlock retry for concurrent term inserts (3 retries with random backoff)
  • Non-semver version sorting in Hex registry
  • Source viewer fetches full file from DB (was using fragment snippet)
  • Modal close propagation fixed

Deps

  • hex_core ~> 0.15 (optional) — Hex registry + tarball unpacking
  • req ~> 0.5 (optional) — HTTP client for tarball downloads