Release 0.5.0a6#100
Open
github-actions[bot] wants to merge 37 commits into
Open
Conversation
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix: add warning if websocket connection isnt open * fix: add warning if websocket connection isnt open * 📝 Add docstrings to `fix/ws_open_chck` (#84) * 📝 Add docstrings to `fix/ws_open_chck` Docstrings generation was requested by @JarbasAl. * #83 (comment) The following files were modified: * `hivemind_bus_client/client.py` * Update client.py --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: JarbasAI <33701864+JarbasAl@users.noreply.github.com> * chore: avoid infinite recursion --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
JSON stores encoded values as str, but z85base91 decoders expect bytes. Added _to_bytes() conversion for ciphertext, tag, and nonce before passing to the decoder. This fixes all Z85P encoding roundtrip failures. AI-Generated Change: - Model: Claude Opus 4.6 - Intent: Fix Z85P decode — not an upstream bug, just str/bytes mismatch - Impact: All 7 encoding schemes now roundtrip correctly - Verified via: uv run pytest test_embedded_interop.py (all Z85P tests pass) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: HiveMessage.__init__ nested payload normalization and BitStream bool bug - HiveMessage.__init__ now normalizes nested HiveMessage payloads to dict via as_dict, matching the behavior of the payload setter. - Fix _decode_bitstring_v1 using bool(BitStream) which checks length (always True) instead of .bool which reads the actual bit value. - Replace bare except with except Exception in deserialize(). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: add docs/, FAQ.md, and update README - docs/index.md: overview, quick start, component index - docs/api.md: HiveMessage, HiveMessageType, HiveMessageBusClient, BinaryDataCallbacks, NodeIdentity - docs/cli.md: all hivemind-client CLI commands - docs/examples.md: chat, HTTP, TTS, intercom, broadcast examples - docs/identity.md: NodeIdentity and credential management - docs/installation.md: install and dependencies - FAQ.md: comprehensive Q&A covering connection, messages, encryption, binary protocol, CLI - README.md: fix install command (pip → uv pip) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * test: add unit tests for message, encryption, and serialization - test_message.py: HiveMessage init, payload types, serialization roundtrips, routing, item access (30 tests) - test_encryption.py: AES-GCM, ChaCha20, JSON encrypt/decrypt roundtrips across all encodings (26 tests) - test_serialization.py: bitstring encode/decode for all message types, compression, binary payloads (11 tests) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * build: migrate from setup.py to pyproject.toml - Add pyproject.toml with setuptools backend, dynamic version from hivemind_bus_client.version.VERSION, all deps from requirements.txt - Add VERSION string to version.py for setuptools.dynamic - Update classifiers to Python 3.10-3.13 - setup.py kept for backwards compatibility Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ci: migrate to standard OpenVoiceOS gh-automations@dev workflows Replace custom TigreGotico/gh-automations@master workflows with standard OpenVoiceOS/gh-automations@dev reusable workflows. Added: build-tests, lint, coverage, license_check, pip_audit, release-preview, repo-health, conventional-label Replaced: release_workflow, publish_stable (removed inline PyPI publish and sync jobs — now handled by reusable workflow) Removed: build_tests.yml (old custom), conventional-label.yaml (dup), python-support.yml (deprecated) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: add type hints and docstrings to decorators.py and util.py - decorators.py: full type annotations and docstrings for all classes and decorator functions (HiveMessageListener, HivePayloadListener, on_hive_message, on_mycroft_message, etc.) - util.py: full type annotations and docstrings for all functions, replace bare except with except Exception - version.py: add __version__ alias (OVOS standard) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
#90) * feat: add flood-based PING network discovery and hive topology mapping Add HiveMapper/NodeInfo (hive_map.py) to collect PING responses and render the network topology as ASCII tree or JSON. Satellites now handle PROPAGATE(PING) with flood_id deduplication and respond with their own PING upstream. New `hivemind-client ping` CLI command initiates a flood and displays the reachable hive map. Also fixes: - HiveMessage.__init__ now normalizes nested HiveMessage payloads - BitStream bool() bug in serialization (was always True) - Replace bare except with except Exception - Remove dead downstream forwarding from handle_broadcast/handle_propagate Includes initial docs/ structure, FAQ, and CLI reference. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: address CodeRabbit PR feedback for ping feature - hive_map.py: reject empty flood_id in on_ping(), guard against malformed (non-dict) route hops, rename rtt_ms → latency_ms with docstring clarifying it's clock-diff not true RTT - protocol.py: fix _handle_ping docstring (remove false claim about hive.ping.received emit), replace cache clear() with pop() eviction to avoid re-accepting in-flight duplicates - scripts.py: validate host before adding ws:// scheme so empty host is caught by the RuntimeError check, bail on connection timeout - message.py: guard route property against non-dict entries Skipped: - docs/identity.md fixes (not in this PR scope, addressed in docs branch) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* chore: docs and tests * fix: restore route in HiveMessage.deserialize and clean up docs - Add missing route= parameter in deserialize() so route survives serialization roundtrips - Remove test_intercom_utils.py (imports non-existent module) - Fix docs/index.md to link all new doc files - Fix docs/binary_handlers.md to list only existing callback methods - Fix docs/message_types.md to reference actual module functions instead of non-existent classes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * test: improve coverage 38%→50%, add serialization docs Coverage improvements: - decorators.py: 0% → 100% - identity.py: 81% → 100% - util.py: 62% → 91% (payload2dict, deprecated wrappers) - message.py: 91% → 95% (payload setter, target_peers, hop data) - client.py: 40% → 56% (callbacks, waiters, event routing, binary) - serialization.py: 64% → 70% (mycroft2bitstring, version handling) Bug fix: add missing Message import in serialization.py (mycroft2bitstring) New test files: - test_decorators.py — full coverage of listener classes and decorators - test_client.py — BinaryDataCallbacks, waiters, client properties Docs: - docs/serialization.md — bitstring wire format reference for cross-language implementors Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * . --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
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.
Human review requested!