Releases: 0xCarbon/cratedex
Releases · 0xCarbon/cratedex
v0.5.3
Fixes
- Phase 2 DB/meta inversion —
should_index_packageis now gated behindis_crate_indexed, preventing stale meta files from silently skipping DB insertion (critical search breakage) - Target dir contention —
cargo rustdocnow 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 likeChecking lance v0.38.2 - PathBuf display — fixed format string after
Utf8Path→Pathmigration
Tests
- Added 4 unit tests for
extract_generation_error_reason
v0.5.2
Fix
cratedex updateno 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
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 viatry_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
What's new
fts5raw query mode forsearch_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
- Column filters:
v0.4.0
What's new
cratedex updatecommand — self-update viacargo installwith 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
--systemflag to target only the system-level service
v0.3.1
Fix
- Failure reason extraction:
failure_reasonsnow reports the actualerror: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
What's Changed
Core Indexing
- Workspace-only Phase 1 — only runs
cargo rustdocfor 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
warnwith 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_docsdefaults tomax_depth=1(workspace + direct deps) when project-scoped (Issue 9)
Status & Metrics
- Accurate indexed count —
get_index_statusreports actualindexedcount from DB, not just processed attempts (Issue 1) - Failure reasons exposed —
failure_reasonsmap in status output (Issue 10)
Diagnostics UX
- Cargo warnings array —
get_diagnosticsreturns fullcargo_warningsobjects instead of just a count (Issue 2) - Filter removed deps —
get_outdated_diagnosticshides "Removed" entries by default; passinclude_removed: trueto see them (Issue 3)
Cleanup
- Dropped legacy schema migration and Turso FTS index cleanup
Breaking Changes
get_index_status:indexedreplacesprocessed,failure_reasonsaddedget_diagnostics:cargo_warningsarray replacescargo_warning_countget_outdated_diagnostics: newinclude_removedparametersearch_docs: newmax_depthparameter (defaults to 1 when project-scoped)
v0.2.1
Full Changelog: v0.2.0...v0.2.1
v0.2.0
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 statusget_build_diagnostics— paginated build diagnosticsget_outdated_diagnostics— paginated outdated depsget_security_diagnostics— paginated security advisories
Changes
get_diagnosticsis now summary-only (counts, not full items)search_docssupportsmode(auto|text|symbol) andkinds[]filter- Symbol queries (e.g.
tokio::spawn) no longer cause SQL errors - Progress model:
status=queued|indexing|ready|failedwithpercent,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