fix(plugin): declare python_dependencies for PM-built environments
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sun, 4 Oct 2026 14:04:25 +0000 (17:04 +0300)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sun, 4 Oct 2026 14:04:25 +0000 (17:04 +0300)
Hermes Agent now assembles its runtime from PM dependency
generations instead of the legacy in-tree venv, so every update
produced a fresh environment without sqlite-vec and model2vec and
the provider reported itself unavailable until they were
reinstalled by hand.

Declare both runtime dependencies in plugin.yaml with upper bounds
per the Hermes dependency policy. PM reads the declaration of the
active memory.provider plugin and includes the packages in every
generation it builds, keeping the provider available across
updates without manual intervention.

Bump plugin metadata to 1.1.1, sync the AGENTS.org metadata table
and layout notes, and fix a wording slip in Documentation/index.org.

AGENTS.org
Documentation/index.org
plugin.yaml

index 35652a9..421bbdc 100644 (file)
@@ -12,7 +12,7 @@
 | Language         | Python 3 (PEP 668 host — always use a venv, never system pip)  |
 | Runtime deps     | =model2vec=, =sqlite-vec=                                      |
 | Embedding model  | =minishlab/potion-multilingual-128M= (~540 MB, cached offline; the repo's unused ONNX export is skipped) |
-| Plugin metadata  | plugin.yaml (version 1.1.0)                                    |
+| Plugin metadata  | plugin.yaml (version 1.1.1)                                    |
 | Public docs site | https://www.svjatoslav.eu/projects/ (served from Documentation/) |
 
 * Purpose
@@ -39,7 +39,7 @@ installer.
 
 #+begin_example
 retinue/
-├── plugin.yaml                  # Hermes plugin metadata (name, version, hooks)
+├── plugin.yaml                  # Hermes plugin metadata (name, version, hooks, python_dependencies)
 ├── __init__.py                  # Plugin entry point: register(ctx)
 ├── src/retinue/
 │   ├── __init__.py
index 9136657..7932efb 100644 (file)
@@ -31,8 +31,8 @@ not find a solution that:
 - Is lightweight (runs fast using CPU-only compute, with no need for a
   GPU)
 
-It is built on =model2vec= static embeddings and =sqlite-vec=, so it
-runs offline, requires no server, and stores everything in a single
+Retinue is built on =model2vec= static embeddings and =sqlite-vec=, so
+it runs offline, requires no server, and stores everything in a single
 SQLite database.
 
 
index 5c63698..650776f 100644 (file)
@@ -1,6 +1,13 @@
 name: retinue
-version: 1.1.0
+version: 1.1.1
 description: "Semantic memory provider for Hermes Agent using model2vec and sqlite-vec."
 hooks:
   - sync_turn
   - shutdown
+# Consumed by Hermes PM (pm/plugin_declarations.py) and `hermes plugins doctor`:
+# every dependency generation (hermes update) is built WITH these packages,
+# so Retinue's is_available() keeps passing after updates. Keep upper bounds
+# per the Hermes dependency policy.
+python_dependencies:
+  - "sqlite-vec>=0.1.9,<0.2"
+  - "model2vec>=0.9,<0.10"