September 18, 2026

hermes-memory-pgvector v0.5.4: A Release With No Code In It

hermes-memory-pgvector v0.5.4: A Release With No Code In It

hermes-memory-pgvector is the open-source plugin that gives a fleet of hermes-agent agents shared, durable memory on PostgreSQL and pgvector. Version 0.5.4 is out on PyPI, and it contains no new features and no code changes whatsoever. Here is why it shipped anyway.

A release with no code in it

v0.5.4 moves exactly two dependency floors:

psycopg[binary]>=3.3.6,<4
psycopg-pool>=3.3.2,<4

That is the entire change. Upstream published psycopg 3.3.6 and psycopg-pool 3.3.2 on 18 September 2026, both patch releases with no API changes. Defaults are untouched, there is no migration, and nothing in the plugin's own source moved.

The pool fix is the reason

psycopg-pool 3.3.2 propagates cancellation and other base exceptions raised during a connection check. That sounds like a footnote until you look at how this plugin is built.

It opens one ConnectionPool, shared between the agent thread and the async-writer drain thread. Before the pool hands out a connection, it checks that the connection is still healthy. If that check is interrupted — a cancellation, a shutdown, anything deriving from BaseException rather than Exception — the older behaviour could swallow it rather than let it travel. A memory write that should have failed loudly instead disappears quietly.

For a component whose entire job is to not lose what an agent remembers, silent is the worst failure mode there is. That single upstream fix is worth a release on its own.

What else 3.3.6 brings

  • A cancelled query no longer waits forever when the server has stopped responding. This one needs libpq 17 or newer — the binary wheels ship libpq 18, so it takes effect rather than sitting dormant.
  • The running query is cancelled on SystemExit. That matters the moment a worker takes a SIGTERM mid-query: previously the statement could keep running server-side after the process was already on its way out.
  • Prepared statements are discarded on DEALLOCATE ALL, which avoids "prepared statement does not exist" surprises when something reissues DISCARD between checkouts.
  • Lower async-wait overhead, and support for Python 3.15.

The pin lives in four places, and that is deliberate

The psycopg requirement appears in pyproject.toml, in hermes_pgvector/plugin.yaml, in scripts/install.sh, and in the install command printed in the README. All four moved together in this release, and that is not housekeeping pedantry.

A full-codebase review on 7 September found the README and the install script still pinning >=3.3.4 while pyproject.toml had already moved to >=3.3.5. Anyone following the documented install path was being handed the exact version the previous release existed to move off. The drift survived an entire release cycle without anyone noticing.

So the rule now is that the four move as one, every time, or the release does not go out.

Upgrading

pip install -U hermes-memory-pgvector

No migration, no config change, no behavioural difference you will notice — which is precisely the point of a release like this one.

Source and the full configuration reference are on GitHub:

👉 github.com/andreab67/hermes-memory-pgvector