fix(honcho): update SDK and restore CI coverage

This commit is contained in:
Erosika 2026-07-10 16:37:29 -04:00 committed by Teknium
parent 1c051d1df9
commit 29e0471708
7 changed files with 22 additions and 17 deletions

View file

@ -510,21 +510,21 @@ def _ensure_sdk_installed() -> bool:
pass
print(" honcho-ai is not installed.")
answer = _prompt("Install it now? (honcho-ai>=2.0.1)", default="y")
answer = _prompt("Install it now? (honcho-ai==2.2.0)", default="y")
if answer.lower() not in {"y", "yes"}:
print(" Skipping install. Run: pip install 'honcho-ai>=2.0.1'\n")
print(" Skipping install. Run: pip install 'honcho-ai==2.2.0'\n")
return False
print(" Installing honcho-ai...", flush=True)
from hermes_cli.tools_config import _pip_install
result = _pip_install(["honcho-ai>=2.0.1"])
result = _pip_install(["honcho-ai==2.2.0"])
if result.returncode == 0:
print(" Installed.\n")
return True
else:
print(f" Install failed:\n{(result.stderr or '').strip()}")
print(" Run manually: uv pip install 'honcho-ai>=2.0.1'\n")
print(" Run manually: uv pip install 'honcho-ai==2.2.0'\n")
return False

View file

@ -183,7 +183,7 @@ pty = [
# any existing `pip install hermes-agent[pty]` invocations resolve cleanly
# without pulling in extra packages.
]
honcho = ["honcho-ai==2.0.1"]
honcho = ["honcho-ai==2.2.0"]
# Cloud memory providers — opt-in, lazy-installed via tools/lazy_deps.py
# (memory.supermemory / memory.mem0) at first use. Exact pins MUST match the
# LAZY_DEPS pins (enforced by tests/test_project_metadata.py). Deliberately

View file

@ -87,6 +87,8 @@ AUTHOR_MAP = {
"iganapolsky@gmail.com": "IgorGanapolsky", # PR #62125 salvage (compaction anti-thrash threshold verification)
"275853971+aeyeopsdev@users.noreply.github.com": "aeyeopsdev", # PRs #36035/#36068 salvage (google-chat: http inbound without pubsub; clarify cards)
"tturney1@gmail.com": "TheTom", # PR #62696 salvage (gateway: expand @ context references under runtime/session model resolution)
"1822947159@qq.com": "ljy-2000", # PR #62204 adopted in #62282
"xwolf.live@gmail.com": "vizi0uz", # PR #59795 adopted in #62282
"wilsonkinyuam@gmail.com": "WilsonKinyua", # PR #62052 (tui: persist unflushed conversations on disconnect/restart)
"humphreysun98@gmail.com": "HumphreySun98", # PR #61142 salvage (web: null web/backend config value guards)
"sonxi@nous.local": "17324393074", # PR #53196 salvage (tools_config: known_plugin_toolsets null guard; commit under unlinked local identity)

View file

@ -22,6 +22,9 @@ def _configured_hybrid_config() -> _FakeHonchoConfig:
base_url="http://127.0.0.1:8000",
recall_mode="hybrid",
init_on_session_start=False,
injection_frequency="every-turn",
context_cadence=1,
dialectic_cadence=1,
dialectic_depth=1,
dialectic_depth_levels=None,
reasoning_heuristic=True,

View file

@ -27,7 +27,7 @@ class TestSpecSafety:
@pytest.mark.parametrize("spec", [
"mistralai>=2.3.0,<3",
"elevenlabs>=1.0,<2",
"honcho-ai>=2.0.1,<3",
"honcho-ai>=2.2.0,<3",
"boto3>=1.35.0,<2",
"mautrix[encryption]>=0.20,<1",
"google-api-python-client>=2.100,<3",
@ -253,13 +253,13 @@ class TestIsSatisfiedVersionAware:
monkeypatch.setattr(_md, "version", _version)
def test_exact_pin_match_returns_true(self, monkeypatch):
self._fake_version(monkeypatch, {"honcho-ai": "2.0.1"})
assert ld._is_satisfied("honcho-ai==2.0.1") is True
self._fake_version(monkeypatch, {"honcho-ai": "2.2.0"})
assert ld._is_satisfied("honcho-ai==2.2.0") is True
def test_exact_pin_mismatch_returns_false(self, monkeypatch):
# Installed 2.0.0, spec requires 2.0.1 → False (needs upgrade).
self._fake_version(monkeypatch, {"honcho-ai": "2.0.0"})
assert ld._is_satisfied("honcho-ai==2.0.1") is False
# Installed 2.1.2, spec requires 2.2.0 → False (needs upgrade).
self._fake_version(monkeypatch, {"honcho-ai": "2.1.2"})
assert ld._is_satisfied("honcho-ai==2.2.0") is False
def test_range_within_returns_true(self, monkeypatch):
self._fake_version(monkeypatch, {"slack-bolt": "1.27.0"})

View file

@ -139,7 +139,7 @@ LAZY_DEPS: dict[str, tuple[str, ...]] = {
"image.fal": ("fal-client==0.13.1",),
# ─── Memory providers ──────────────────────────────────────────────────
"memory.honcho": ("honcho-ai==2.0.1",),
"memory.honcho": ("honcho-ai==2.2.0",),
"memory.hindsight": ("hindsight-client==0.6.1",),
# supermemory + mem0 are opt-in cloud memory providers with their own
# SDKs. On the published Docker image the agent venv is sealed
@ -495,7 +495,7 @@ def _pkg_name_from_spec(spec: str) -> str:
def _specifier_from_spec(spec: str) -> str:
"""Extract just the version-specifier portion of a pip spec.
``"honcho-ai==2.0.1"`` ``"==2.0.1"``
``"honcho-ai==2.2.0"`` ``"==2.2.0"``
``"mautrix[encryption]>=0.20,<1"`` ``">=0.20,<1"``
``"package"`` ``""`` (no version constraint)
"""

8
uv.lock generated
View file

@ -1791,7 +1791,7 @@ requires-dist = [
{ name = "hermes-agent", extras = ["web"], marker = "extra == 'termux-all'" },
{ name = "hermes-agent", extras = ["youtube"], marker = "extra == 'all'" },
{ name = "hindsight-client", marker = "extra == 'hindsight'", specifier = "==0.6.1" },
{ name = "honcho-ai", marker = "extra == 'honcho'", specifier = "==2.0.1" },
{ name = "honcho-ai", marker = "extra == 'honcho'", specifier = "==2.2.0" },
{ name = "httpx", extras = ["socks"], specifier = "==0.28.1" },
{ name = "jinja2", specifier = "==3.1.6" },
{ name = "lark-oapi", marker = "extra == 'feishu'", specifier = "==1.6.8" },
@ -1898,16 +1898,16 @@ wheels = [
[[package]]
name = "honcho-ai"
version = "2.0.1"
version = "2.2.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "httpx" },
{ name = "pydantic" },
{ name = "typing-extensions", marker = "python_full_version < '3.12'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/93/30/d30ba159404050d53b4b1b1c4477f9591f43af18758be1fb7dab6afbfe7d/honcho_ai-2.0.1.tar.gz", hash = "sha256:6fdeebf9454e62bc523d57888e50359e67baafdb21f68621f9c14e08dc00623a", size = 46732, upload-time = "2026-02-09T21:03:26.99Z" }
sdist = { url = "https://files.pythonhosted.org/packages/f2/1d/322649dbc8e9b21726a3a3e9b6a4975f2d122ca4b2450612f9ff2a9023b6/honcho_ai-2.2.0.tar.gz", hash = "sha256:16e16825afac51f2fdd59670dd4a6e44d04a3fa2c8eb466b1767dcc96706b7a0", size = 49979, upload-time = "2026-07-02T17:04:33.13Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/e2/de/83fda0c057cfa11d6b5ed532623184591aa7dcff4a067934ba6811026229/honcho_ai-2.0.1-py3-none-any.whl", hash = "sha256:94887e61d59f353e1e1e20b395858040780f5d67ca1e9d450538646544e4e42f", size = 56780, upload-time = "2026-02-09T21:03:25.992Z" },
{ url = "https://files.pythonhosted.org/packages/d0/c6/66af5f7ba3d75796f4523eac1e069fbdc759c3f0b8adab9fb7ae04e15784/honcho_ai-2.2.0-py3-none-any.whl", hash = "sha256:32f098a4c8bcfe4288f0994ddab0bc52a68dc87069d0f2ce2c8758ee2a1761f2", size = 60305, upload-time = "2026-07-02T17:04:33.967Z" },
]
[[package]]