Repository navigation
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The package lacks a root-level provider registration hook, preventing catalog-only installs from activating memory.provider: upstash.
1 open issue
What changed in this PR
Prepares the existing Python memory provider for Hermes plugin catalog installation alongside its pip entry point.
Changes:
- Adds a plugin manifest and directory entry point.
- Caps the Redis dependency below version 2 and documents telemetry behavior.
- Extends release-version synchronization and adjusts Python tooling for the plugin layout.
| File | Description |
|---|---|
uv.lock |
Records the Redis dependency upper bound. |
scripts/sync-version.mjs |
Synchronizes optional plugin manifest versions. |
python/hermes-memory/tests/test_version.py |
Checks manifest and package version alignment. |
python/hermes-memory/README.md |
Discloses telemetry and its opt-out setting. |
python/hermes-memory/pyproject.toml |
Caps upstash-redis below version 2. |
python/hermes-memory/plugin.yaml |
Declares plugin identity, Hermes compatibility, and required credentials. |
python/hermes-memory/__init__.py |
Adds the directory-install entry point. |
pyproject.toml |
Adjusts lint and test imports for plugin roots. |
CLAUDE.md |
Documents plugin manifest version synchronization. |
.changeset/hermes-catalog-prep.md |
Records the Python package patch release. |
Review effort: Balanced
Comment on lines
+1
to
+10
| """Entry point for directory installs (the Hermes plugin catalog). | ||
|
|
||
| The catalog clones this directory and imports its `__init__.py`, so it re-exports `register` from | ||
| the package under `src/`. pip installs skip this file and use the `hermes_agent.memory_providers` | ||
| entry point in pyproject.toml. | ||
| """ | ||
|
|
||
| from .src.upstash_hermes_memory import register | ||
|
|
||
| __all__ = ["register"] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Gets
python/hermes-memoryready to be listed in the Hermes plugin catalog. Today it only works as a pip entry point, which the catalog doesn't use. Rules: catalog submission guide · plugin-catalog/README.md · memory provider guideWhat each change is for:
plugin.yaml: the catalog requires "aplugin.yamlmanifest plus at least one entrypoint Hermes loads" at the pinned commit (guide, "Before you submit"). It includesrequires_hermes: ">=0.19"because rule 14 says to "declare the same floor inplugin.yamlas well, because older Hermes versions enforce only that one". It also includesrequires_envfor the two Upstash credentials. Nameupstash= the existing entry-point /memory.providername.__init__.pyat the plugin root: this is the Python entrypoint a directory install imports (__init__.py # MemoryProvider implementation + register()in the memory provider guide's directory layout). It re-exportsregisterfromsrc/upstash_hermes_memory, so the code isn't duplicated. The wheel is unchanged.upstash-redis>=1.8.0,<2: rule 10 says "bare floors (>=Xwith no upper bound) and floors on the newest release get a request for the oldest API-compatible floor plus an upper bound". 1.8.0 is still the newest release, so a reviewer may also ask for a lower floor.Upstash-Telemetry-Sdkheader, off withUPSTASH_DISABLE_TELEMETRY). Expect a reviewer to ask us to flip it.sync-version.mjs+ test: stamps the release version intoplugin.yamltoo, so the manifest can't drift from PyPI (rule 14: "versionmatches the pinned code").pyproject.toml: ruffN999ignore forpython/*/__init__.py(the folder name is hyphenated) and pytest--import-mode=importlib(the new root__init__.pymade the default mode fail to importpython/hermes-memory).Verified:
pnpm py:lint,pnpm py:test(29 passed, 19 Redis tests skipped without creds),sync-version.mjs --check, wheel contents unchanged.hermes plugins validate <dir> --install-depsfrom hermes-agent main passes every check (manifest, loadable, capability probe, security scan: safe, no core override).Next, by a human: once this merges, open a PR to NousResearch/hermes-agent adding
plugin-catalog/upstash.yamlwithsubdir: python/hermes-memoryand the merge commit's full SHA.Linear: https://linear.app/upstash/issue/DX-3182/agentkit-add-python-package-support-to-the-monorepo
🤖 Generated with Claude Code