From 836170d05016c2a5d90a6231920084b0432825c9 Mon Sep 17 00:00:00 2001 From: JarbasAi Date: Tue, 1 Sep 2026 18:11:45 +0100 Subject: [PATCH] fix(deps): raise floor pins to the proven-working HiveMind stack; drop stale bus-client cap Bumps the hivescope e2e floor to >=0.8.0a1 and syncs the vendored tests/e2e/test_bridge1_conformance.py to the shipped session model: hivemind-core >=4.13.18a1 NATs a non-admin's declared session_id to conn_nonce:declared before it reaches the bus, so the inbound test now checks session CONTENTS via assert_session_inbound_preserved (no session_id) and the NAT itself via the new assert_session_id_natted helper (hivescope 0.8.0a1). e2e conformance: 8 passed, 1 skipped, 1 xpassed (was failing test_session_inbound_preserved on the old expected_session shape). --- pyproject.toml | 18 +++++++++--------- tests/e2e/test_bridge1_conformance.py | 12 ++++++++---- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 352abd4..e0ea36c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,24 +11,24 @@ license = { text = "Apache-2.0" } requires-python = ">=3.10" dynamic = ["version"] dependencies = [ - # HiveMind bus 2.x stack — prerelease floor pins (resolved with no --pre) - "hivemind-bus-client>=0.9.2a1", - "hivemind-presence>=0.0.2a2", - "ovos-bus-client>=2.0.0a3", + # HiveMind bus stack — prerelease floor pins (resolved with no --pre) + "hivemind-bus-client>=1.0.16a1", + "hivemind-presence>=0.0.5a2", + "ovos-bus-client>=2.9.1a1", "ovos-spec-tools>=0.8.0a1", ] [project.optional-dependencies] # End-to-end test stack: hivescope boots a real hivemind-core master in-process # (loopback WebSocket) and drives the real CLI client over a real bus client. -# Prerelease floor pins keep the whole graph on the bus-client 2.x stack with no +# Prerelease floor pins keep the whole graph on the bus-client stack with no # --pre flag required. e2e = [ "pytest", - "hivescope>=0.5.2a1", - "hivemind-core>=4.6.2a1", - "hivemind-plugin-manager>=0.6.0a1", - "hivemind-ovos-agent-plugin>=0.3.0a1", + "hivescope>=0.8.0a1", + "hivemind-core>=4.13.18a1", + "hivemind-plugin-manager>=0.9.0a7", + "hivemind-ovos-agent-plugin>=0.3.10a1", ] # License-compliance test deps (license_tests.py). license = [ diff --git a/tests/e2e/test_bridge1_conformance.py b/tests/e2e/test_bridge1_conformance.py index 5ce65f4..8d2ede1 100644 --- a/tests/e2e/test_bridge1_conformance.py +++ b/tests/e2e/test_bridge1_conformance.py @@ -21,6 +21,7 @@ assert_source_stamped, assert_destination_routed, assert_session_inbound_preserved, + assert_session_id_natted, assert_session_outbound_preserved, assert_fifo_order, assert_session_propagated_unchanged, @@ -169,10 +170,12 @@ def test_destination_routed(): # ───────────────────────────────────────────────────────────────────────────── def test_session_inbound_preserved(): - """Satellite's session fields are preserved into bus context.session. + """Satellite's session fields are preserved into bus context.session, + and its declared session_id is NATted to the connection's per-message + Layer-1 id (a non-admin's declared id is never used verbatim on the bus). - Spec: BRIDGE-1 §4.1 (inbound) - Helper: assert_session_inbound_preserved + Spec: BRIDGE-1 §4.1 (inbound) / §4 (per-connection session NAT) + Helpers: assert_session_inbound_preserved, assert_session_id_natted """ b = _topology_with_utterance() b.start_all() @@ -191,8 +194,9 @@ def test_session_inbound_preserved(): assert_session_inbound_preserved( m, s, - expected_session={"session_id": sid, "lang": sess.serialize().get("lang")}, + expected_session={"lang": sess.serialize().get("lang")}, ) + assert_session_id_natted(m, s, sid) finally: b.stop_all()