Release Notes
⚠ Breaking Changes
vipune::Error no longer exposes third-party error types (#273)
- Library API: the enum is
#[non_exhaustive] — add a wildcard arm when matching on it. SQLite, SqliteModule, Json and Chrono are removed. Database failures are Error::Database { message } or Error::DatabaseLocked; call Error::is_locked() rather than matching message text. JSON and date parse failures become Error::InvalidInput. Tokenization, Onnx and HfHub carry a message instead of the third-party error. Error::Io is unchanged.
- CLI and MCP: exit codes and the locked-database text are unchanged — a lock is still reported as "Database is locked. Another process (likely the MCP server) is holding a lock. Stop the MCP server and retry." Two MCP-visible changes ride along: a lock now carries the
data.type discriminator database_locked instead of the generic internal_error, and non-lock database errors now include the underlying SQLite message (previously the bare "Database error").
Database::count_rows_for_project is removed; drive Database::row_counts_by_project — one GROUP BY pass returning Vec<(String, usize)>. It omits projects with zero rows, so use Database::list_all_project_ids for the full project list (#273)
- The minimum supported Rust version is now 1.88, declared as
rust-version in Cargo.toml and gated in CI (#277)
Bug Fixes
- Honour --status on the superseding row of vipune add --supersedes (#264)
- Declare the real MSRV and check it in CI (#277)
Documentation
- AGENTS.md accuracy and completeness follow-ups (#272)
Features
- Let the MCP store_memory tool set a memory's importance (#279)
- Hide third-party error types behind vipune-owned variants in vipune::Error (#273)
Miscellaneous
- Add a cargo-deny dependency advisory gate to CI (#263)
Install vipune 0.17.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/randomm/vipune/releases/download/v0.17.0/vipune-installer.sh | sh
Download vipune 0.17.0