Automated release from CI pipeline
Changes:
cog-ha-matter (ADR-116 P3): extract pure publisher-input builder
Adds runtime::build_publisher_inputs(host, port, privacy, identity) —
the side-effect-free helper that turns the cog's CLI surface into the
(MqttConfig, OwnedDiscoveryBuilder) pair ADR-115's publisher::spawn
consumes. Keeps the tokio runtime wiring out of the pure unit so the
mDNS responder + Seed control plane (P4) can build the same inputs
from different sources without going through clap.
8 new tests lock the wire-format invariants:
- host/port round-trip into MqttConfig
- privacy_mode propagation (P1 dossier item 7, FDA Jan 2026)
- discovery_prefix defaults to "homeassistant"
- discovery carries node_id + sw_version + friendly_name
- via_device advertises COG_ID (ADR-101/102 device-registry shape)
- client_id includes node_id (lesson from ADR-115 iter 45-48 session
takeover post-mortem — two publishers sharing a client_id loop) - tls defaults to Off for v1 LAN-only (lock against silent enablement)
- default_identity carries CARGO_PKG_VERSION + PID for uniqueness
Plus the existing 2 manifest tests → 10/10 green
(cargo test -p cog-ha-matter --no-default-features --lib).
Also lands the deep-researcher dossier (docs/research/ADR-116-ha-...)
that the ADR §3+§4 reference — it was produced last iter but only the
ADR was committed; this puts the source-of-truth into the tree so the
ADR's "8 sections, 30+ citations" claim is actually verifiable.
P3 status in the ADR phase table flipped from "pending" to "in progress"
with the helper named; next iter tokio::spawns publisher::run(...) in
main.rs and registers the mDNS responder.
Co-Authored-By: claude-flow ruv@ruv.net
Docker Image:
ghcr.io/ruvnet/RuView:5723f505b7c3cacd376673fa4fb73e84cdc24960