Skip to content

SenHub Agent 0.4.0

2026-06-22 · the entity model release

This release rounds out the entity model. The host entity now carries a full nameplate — OS, CPU and hardware identity plus capacity, virtualization and chassis attributes (AT10-AT13) — network interfaces become first-class network.interface entities, and Hyper-V guests are enriched as compute.vm. New relations tie the graph together: listeners bound_to an address and listens_on an interface, and local databases and containers runs_on their host. Operators can stamp their own governance attributes on hosts and network devices. The distributed build matrix also drops to Linux amd64/arm64 and Windows amd64 — macOS becomes a local-only dev target.

New

  • New entity The host entity now carries a full nameplate: OS, CPU and hardware identity, plus host.arch, os.version, os.description (#516) and the AT10-AT12 vocabulary — host.cpu.logical.count/physical.count capacity, host.virtualization and host.chassis.type. (#537, #555)
  • New entity Host network interfaces are emitted as first-class network.interface entities with the AT13 descriptive attributes and oper_state; IP-less virtual interfaces (veth and similar) are dropped from the host inventory. (#541)
  • New Hyper-V Hyper-V guests are enriched as compute.vm entities — vCPU count, host.virtualization = "hyperv" and the parent host.name; the guest machine-id anchors identity and power state is emitted as the status stateKey. (#456, #561)
  • New entity Listeners now attach to the graph through two relations: bound_to a network.address and listens_on a network.interface. (#252, #526)
  • New entity Local (loopback) databases and Docker containers anchor to their host through a runs_on relation. (#503, #527)
  • New entity Operators can stamp their own governance attributes on the host entity and on network.device, driven by a shared attribute vocabulary and discovery rules. (#560)
  • New entity Outbound dependency mapping is now opt-in, with a peer CIDR filter (#213) and a configurable depends_on debounce threshold. (#491)
  • New SNMP snmp_poll enriches network.device and interface entities with descriptive attributes, and reconciles a device's neighbour-view back to its canonical id. (#565)

Improved

  • Improved databases Database entities carry richer attributes: db.system.version is threaded onto the Redis (#509), MySQL, PostgreSQL and Oracle (#510) entities; the PostgreSQL role attribute is renamed replication.role (#512); and the MySQL/PostgreSQL environment splits into db.deployment.platform. (#519)
  • Improved entity Service entities emit service.version for NATS, Envoy, nginx and Jenkins (#524); Docker containers emit their status as an entity stateKey. (#514)

Fixed

  • Fixed entity Service and database entities anchor correctly: a monitors edge is emitted for Kubernetes, Modbus and UniFi (#506), and single-key database identity is used for Oracle (#505) and PostgreSQL (#504) so the edge resolves. (#507)
  • Fixed entity The agent's own dependencies are attached to its foundation node instead of floating unanchored. (#494)
  • Fixed entity Host-local IPs are no longer emitted as a shared network.address; container-bridge addresses are also skipped by interface name.
  • Fixed docs License tiers corrected for mysql, postgresql and wifi_signal_strength in the probe catalog.

Changed

  • Changed CI The distributed build matrix is now three platforms — Linux amd64, Linux arm64 and Windows amd64. The macOS test job is dropped and darwin becomes a local-only dev/test target, never built or published by CI. (#531)

Internal

  • Internal SDK Probe SDK exposes AgentInstanceID and HostID to SDK probes. (#528)
  • Internal tests A load harness measures the socket-scan cost of host dependency detection. (#492)
  • Internal docs The probe catalog is rewritten as an interactive tile catalog with official product logos.