Skip to content

ci(hermes-compat): run the compat venv on Python 3.14 - #4769

Merged
nicoloboschi merged 2 commits into
mainfrom
fix/hermes-compat-py314
Sep 25, 2026
Merged

nicoloboschi merged 2 commits into
mainfrom
fix/hermes-compat-py314

Conversation

@nicoloboschi

Copy link
Copy Markdown
Collaborator

test-hermes-compat fails on every PR with ModuleNotFoundError: No module named 'ruamel'.

Cause: Hermes main now supports only Python 3.14 and marks every dependency python_version >= '3.14'. Our script built the venv on 3.12, so Hermes installed with none of its deps.

Fix: build the venv on 3.14. On Linux Hindsight already resolves litellm>=1.93.0, which supports 3.14. (On macOS litellm is capped to 1.91.x, which does not, so the script only runs on Linux — same as CI.)

Hermes now supports only 3.14 and gates every dependency on
python_version >= '3.14'. On the 3.12 venv, Hermes installed with none
of its deps and the CLI crashed with ModuleNotFoundError: ruamel.
@nicoloboschi
nicoloboschi merged commit 1ae73c2 into main Sep 25, 2026
226 of 228 checks passed
@nicoloboschi
nicoloboschi deleted the fix/hermes-compat-py314 branch September 25, 2026 12:33
allyblockcast Bot added a commit to Blockcast/hindsight that referenced this pull request Oct 18, 2026
…26.9.21 (BLO-47316) (#33)

Hermes main moved the hindsight provider out of its tree and gated every core
dependency on Python 3.14, so #32 pinned the gate to v2026.9.21. Upstream
(vectorize-io/hindsight) already redesigned the gate for exactly this and it
passes against Hermes main (e.g. run job 117087267621, hermes-agent@848fc0ad,
2026-10-16). Port it rather than re-derive it:

- scripts/test-hermes-compat.sh from vectorize-io main (vectorize-io#4575, vectorize-io#4769, vectorize-io#4838):
  3.14 venv, default ref main, installs THIS checkout's
  hindsight-integrations/hermes as an external plugin, runs
  `hermes plugins validate`, asserts the loaded provider is ours, asserts the
  four Hindsight distributions are the locally built wheels, and drives the
  MemoryProvider contract (step 7; skipped with an explicit message when no
  LLM key is present).
- hindsight-embed _http_probe fix from vectorize-io#4575: 0.10.0's probe cleared the
  caller's event loop, breaking local_embedded between two client calls.
- test.yml job changes from vectorize-io#4575 (integrations-hermes trigger, 60m timeout,
  LLM key env).

No PM-runtime redesign is needed: the plugin is loaded from
$HERMES_HOME/plugins inside a venv where Hermes and this checkout's wheels
were co-resolved, which is the compatibility property the gate exists for.

Signed-off-by: PlatformSREEngineer <platformsreengineer@paperclip.blockcast.net>
Co-authored-by: PlatformSREEngineer <platformsreengineer@paperclip.blockcast.net>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant