Files
meshtastic/plugin/pyproject.toml
eric 310c0244df
release / contract-test (push) Successful in 54s
release / test-and-release (push) Successful in 11s
fix(plugin): bind adapter to real Hermes gateway API; add contract-test gate
- Resolve the Hermes gateway API lazily via get_adapter_class() so the adapter
  always inherits the real gateway.platforms.base.BasePlatformAdapter instead
  of the ImportError fallback stub (root cause of the AttributeError:
  'set_message_handler' crash at gateway startup).
- Pass Platform('meshtastic') enum to super().__init__ and align
  connect(*, is_reconnect=False) -> bool with the gateway contract.
- Split pure formatting utils into formatting.py; remove the stub fallback.
- Add tests/contract (L0-L3): real-base binding, ABC instantiation, gateway
  run.py wiring replay, signature and event-shape conformance, run against
  hermes-agent pinned to the deployed image source (v2026.8.31).
- Add scripts/contract-test.sh and a contract-test CI job; release publish
  now requires contract tests to pass.
- Untrack stray __pycache__ artifacts.
2026-09-07 20:50:21 -07:00

33 lines
690 B
TOML

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "hermes-meshtastic"
version = "0.1.2"
description = "Meshtastic LoRa mesh gateway adapter plugin for Hermes Agent"
readme = "README.md"
requires-python = ">=3.10"
license = "MIT"
authors = [
{ name = "Eric Liu", email = "eric@ericxliu.me" },
]
dependencies = [
"meshtastic>=2.7.11",
"pypubsub>=4.0.7",
"protobuf>=4.21.0",
]
[project.entry-points."hermes_agent.plugins"]
meshtastic-platform = "hermes_meshtastic"
[tool.hatch.build.targets.wheel]
packages = ["hermes_meshtastic"]
[tool.hatch.build.targets.sdist]
exclude = [
".venv-contract",
".hermes-src",
"tests",
]