Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ See [CONTRIBUTING.md](./CONTRIBUTING.md).

## Roadmap and status

**Current release: v0.3.1.**
**Current release: v0.3.2.**

See [SCOPE.md](./SCOPE.md) for the current project boundary.
See [ROADMAP.md](./ROADMAP.md) for the full plan.
Expand Down
14 changes: 14 additions & 0 deletions docs/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,20 @@ Check that `notes_path` points to the vault root (the folder containing your `.m

The JabRef adapter resolves file links relative to the `.bib` file location. If your PDFs are in a different directory tree, use absolute paths in your JabRef file links, or symlink the PDFs next to the `.bib` file.

## "index lock is held by another process"

Since v0.3.2, one `partial-recall index` writer runs per vector DB. A
second `index` / `index --extend` against the same DB exits immediately
with this error instead of duplicating embedding spend — the check runs
before the model loads, so the failed command costs nothing.

Wait for the running index to finish (or stop it), then rerun. The lock
lives in a `<vector-db>.indexlock` file next to your vector DB and is
released automatically when the indexing process exits — including
crashes and `kill -9` — so there is never a stale lock to clean up.
Deleting the `.indexlock` file does not force-release anything; the
lock is held by the running process, not the file's existence.

## I want to use partial-recall offline / on a plane

That's the default. With `[embedding] provider = "local-onnx"` and
Expand Down
2 changes: 1 addition & 1 deletion docs/walkthrough/five-minute-walkthrough.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Check:

```zsh
partial-recall --version
# → partial-recall 0.3.1
# → partial-recall 0.3.2
```

If you get `command not found: partial-recall`, see
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "partial-recall"
version = "0.3.1"
version = "0.3.2"
Comment thread
skishchampi marked this conversation as resolved.
description = "Semantic memory for your scholarly corpus. Multilingual, offline-first, free."
readme = "README.md"
license = {text = "AGPL-3.0-or-later"}
Expand Down
2 changes: 1 addition & 1 deletion src/partial_recall/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
"""partial-recall — semantic memory for your scholarly corpus."""

__version__ = "0.3.1"
__version__ = "0.3.2"
17 changes: 17 additions & 0 deletions tests/test_cli_init.py
Original file line number Diff line number Diff line change
Expand Up @@ -177,3 +177,20 @@ def test_version_flag() -> None:
result = runner.invoke(app, ["--version"])
assert result.exit_code == 0
assert "partial-recall" in result.stdout


def test_version_matches_package_metadata() -> None:
"""`--version` prints partial_recall.__version__, which is set by hand
and can silently diverge from pyproject.toml at release time (it did
in the 0.3.2 release PR; caught by review). Keep them locked."""
import tomllib

import partial_recall

pyproject = Path(__file__).resolve().parents[1] / "pyproject.toml"
with pyproject.open("rb") as fh:
declared = tomllib.load(fh)["project"]["version"]
assert partial_recall.__version__ == declared

result = runner.invoke(app, ["--version"])
assert declared in result.stdout
Loading