5725d635b22c2bc4144d0158f7636280fdfe2887
Two live-deployment bugs found during end-to-end verification: 1. server.py: ContextVars set in adapter.connect() do not propagate into aiohttp handler tasks, so hermes_bridge._current_server()/_current_adapter() resolved to None inside message handlers (conversation.list returned empty snapshots, broadcast fan-out and notification paths silently no-oped). Bind both contextvars at the top of _handle_ws — the per-connection task owns the context for all its handler dispatch and agent-thread bridges. 2. hermes_bridge.py: create_conversation passed two extra positional args to SessionStore.get_or_create_session() (source, False, False) — the actual signature is (source, force_new=False). TypeError was swallowed by the guard, so pre-creating an empty Hermes session at conversation.create always failed; sessions were only created on first message. Verified live against the running gateway: full 11-point E2E (auth 401, hello/ready, conversation list/create/delete with persistence, chat.send round-trip through the agent, run lifecycle events, models.current, reasoning.current). 46/46 unit tests pass.
Root README redirects to the docs; kept short so the repo landing page
links straight to the important files.
Pheby — Hermes Platform Adapter/Plugin
Private Hermes Agent platform plugin serving the Pheby WebSocket/HTTPS protocol for a native Android client.
- Start here: docs/README.md — architecture, install, Caddy, security, limitations
- Protocol spec: docs/PROTOCOL.md — every message type with JSON examples (Kotlin client reference)
- Original product spec: docs/spec-source/
Install: copy plugin/pheby/ into ~/.hermes/plugins/, set PHEBY_SECRET
in ~/.hermes/.env, enable in config.yaml, restart the gateway. See
docs/README.md.
Tests: .venv/bin/python -m pytest tests/ -o addopts= -q --asyncio-mode=auto
Description
Languages
Python
100%