Skip to content

Releases: 0xCarbon/cratedex

v0.5.3

16 Feb 17:15
e831cea

Choose a tag to compare

Fixes

  • Phase 2 DB/meta inversionshould_index_package is now gated behind is_crate_indexed, preventing stale meta files from silently skipping DB insertion (critical search breakage)
  • Target dir contentioncargo rustdoc now uses a dedicated per-project target directory under ~/.cratedex/rustdoc-target/, avoiding cargo lock conflicts with diagnostics/file watcher
  • Error extraction — failure reasons now show the last error: line from stderr instead of progress noise like Checking lance v0.38.2
  • PathBuf display — fixed format string after Utf8PathPath migration

Tests

  • Added 4 unit tests for extract_generation_error_reason

v0.5.2

16 Feb 14:22
8b05e28

Choose a tag to compare

Fix

  • cratedex update no longer fails with "Permission denied" when both user and system services are installed. System service operations are now skipped with a clear message when running without --system/sudo.
  • Improved error context for system binary refresh failures.

v0.5.1

16 Feb 14:07
415bafc

Choose a tag to compare

What's Changed

Code quality pass based on Modern Rust Guide (2026) review:

  • Clippy pedantic + nursery lints enabled project-wide with selective allows for noisy lints
  • Defensive patterns: #[serde(deny_unknown_fields)] on all config structs, .expect() over .unwrap() on mutex locks, safe numeric conversions via try_from()
  • README: MCP Tools table updated to list all 11 tools (was missing 5)
  • Code hygiene: unnecessary raw string hashes removed, digit separators on large literals, unnecessary semicolons removed

No behavioral changes — all 49 tests passing, 0 clippy warnings.

v0.4.1

16 Feb 04:05
bf721b7

Choose a tag to compare

What's new

  • fts5 raw query mode for search_docs — pass FTS5 queries directly to SQLite MATCH
    • Column filters: item_name : spawn
    • Phrase matching: text : "error handling"
    • Boolean operators: OR, NOT
    • Prefix queries: term*
    • Proximity: NEAR(a b, N)
    • Schema documented inline in the MCP tool description

v0.4.0

13 Feb 20:44
4ca15c6

Choose a tag to compare

What's new

  • cratedex update command — self-update via cargo install with automatic service refresh
    • Auto-detects installed user and system services across Linux, macOS, and Windows
    • Refreshes the system binary at /usr/local/bin/cratedex (symlink preferred, copy fallback)
    • Restarts all detected services after update
    • --system flag to target only the system-level service

v0.3.1

12 Feb 15:02
662de9f

Choose a tag to compare

Fix

  • Failure reason extraction: failure_reasons now reports the actual error: line from cargo rustdoc stderr instead of the first line (which was often a benign warning like "profiles for the non root package will be ignored").
  • Drop legacy schema migration: Removed backward-compat ALTER TABLE path and Turso FTS index cleanup.

v0.3.0

12 Feb 14:46
a5f8236

Choose a tag to compare

What's Changed

Core Indexing

  • Workspace-only Phase 1 — only runs cargo rustdoc for workspace crates; deps use cache or skip (Issue 7)
  • Index undocumented items — structs/enums/traits without doc comments are now searchable by name (Issue 5)
  • Capture rustdoc stderr — workspace failures logged at warn with details (Issue 6)

Performance

  • Pipelined indexing — Phase 1 (doc generation) and Phase 2 (DB indexing) now run concurrently via mpsc channel (Issue 8)

Search Relevance

  • Dependency depth tracking — BFS depth computed for all crates; search_docs defaults to max_depth=1 (workspace + direct deps) when project-scoped (Issue 9)

Status & Metrics

  • Accurate indexed countget_index_status reports actual indexed count from DB, not just processed attempts (Issue 1)
  • Failure reasons exposedfailure_reasons map in status output (Issue 10)

Diagnostics UX

  • Cargo warnings arrayget_diagnostics returns full cargo_warnings objects instead of just a count (Issue 2)
  • Filter removed depsget_outdated_diagnostics hides "Removed" entries by default; pass include_removed: true to see them (Issue 3)

Cleanup

  • Dropped legacy schema migration and Turso FTS index cleanup

Breaking Changes

  • get_index_status: indexed replaces processed, failure_reasons added
  • get_diagnostics: cargo_warnings array replaces cargo_warning_count
  • get_outdated_diagnostics: new include_removed parameter
  • search_docs: new max_depth parameter (defaults to 1 when project-scoped)

v0.2.1

12 Feb 08:48
30d4406

Choose a tag to compare

Full Changelog: v0.2.0...v0.2.1

v0.2.0

12 Feb 08:33
1497699

Choose a tag to compare

Breaking MCP API redesign

Compact defaults and explicit intent-based calls.

New tools

  • reindex_project — explicit reindex (register_project is now idempotent)
  • get_index_status — per-project index status
  • get_build_diagnostics — paginated build diagnostics
  • get_outdated_diagnostics — paginated outdated deps
  • get_security_diagnostics — paginated security advisories

Changes

  • get_diagnostics is now summary-only (counts, not full items)
  • search_docs supports mode (auto|text|symbol) and kinds[] filter
  • Symbol queries (e.g. tokio::spawn) no longer cause SQL errors
  • Progress model: status=queued|indexing|ready|failed with percent, eta_secs
  • All errors use structured payloads: code, message, stage, retryable, hints
  • Advisories group by ID with nested affected_packages[]

Fixes

  • TOCTOU race in register_project (atomic write lock)
  • reindex_project now aborts old tasks before spawning new ones

v0.1.5

12 Feb 08:32
e66a30c

Choose a tag to compare

Decrease verbosity in progress output