BACKLOG
Engineering Backlog
v0.1.1 — Live hardware increment¶
- background inventory refresh + cache
- material hardware-change event stream (SSE)
- bounded recent event history
- actual IP-address discovery through
ip -j address - RX/TX/error counters from sysfs
- scheduled sensor sampling
- canonical typed sensor sample envelope
- per-plugin poll interval + Nodra publish flag
- plugin absolute-path/executable/world-writable validation
- plugin timeout + stdout size limit
- real LM75/TMP102 I2C temperature reference plugin
- retained Nodra inventory/status topics
- per-sensor + event MQTT topics
- Fleet address projection
- expanded Prometheus metrics
- live Sensors + event Diagnostics UX
- install script scaffold
P0 — Physical reference-hardware acceptance¶
- Select exact reference-hardware SKU and freeze expected device-tree nodes. (needs physical hardware) — software profile
minewing-gw1-r1added; HIL still open. - Install the reference plugin on the physical unit and confirm the real I2C bus/address. (needs physical hardware)
- Add the first RS485/Modbus RTU adapter in
zyvorai/nodra(not Device Agent). - Teach the existing
fleet-agentto merge/api/v1/integrations/fleet/inventory. - Hardware-in-loop test on the physical reference-hardware unit. (needs physical hardware)
- WAN-loss/reconnect demo with Nodra WAL replay. (needs physical hardware)
- Nodra MQTTS scaffolding (
[nodra.tls]) + HTTPS-aware verify/deploy scripts. -
make qualify+ PRODUCTION/QUALIFICATION/TEST-REPORT evidence pack. - Document arm64 supported install = tarball + OCI + native
.deb/.rpm. - Emulator CI scaffolding (vcan / swtpm / v4l2loopback) — see
docs/EMULATOR_CI.md. - Arm64 native
.deb/.rpmviaubuntu-24.04-armCI/release matrix.
P1 — Production hardening¶
- Local bearer protection when binding beyond loopback (v0.1.4).
- Optional plain-TLS listener, self-signed by default (v0.1.5 —
server.tls.enabled, no client certificate required, independent of and composable withauth.mode;src/tls.rs). - Enrollment token + mTLS device certs (v0.1.4 —
auth.mode = "mtls",zyvor-device-agent enroll/identity; client-side only, seedocs/MTLS_ENROLLMENT.mdfor why Device Agent doesn't implement a CA). - TPM2/secure-element-backed key storage (v0.1.4 —
identity.backend = "tpm",--features tpm2, off by default; falls back to a software key at runtime if the TPM can't be opened. Seedocs/TPM2_IDENTITY.md). - Unix-domain-socket API mode (v0.1.4).
- Linux capability/udev policy documentation per bus (v0.1.4 —
docs/HARDWARE_PERMISSIONS.md). - Plugin executable owner allowlist and process resource limits (v0.1.4).
- Signed release artifacts, SBOM, provenance and cosign workflow (v0.1.4).
- Debian/RPM packages and clean uninstall path (v0.1.4 amd64;
cargo-deb/cargo-generate-rpm, both Cargo-metadata-driven; installing never auto-enables/starts the service; config is a conffile/noreplace and survives upgrade/removal). Arm64 native packages: CIpackages-arm64+ release matrix onubuntu-24.04-arm(scripts/package-deb-rpm.sh). - ARM64 smoke test under QEMU in CI (v0.1.4 — and its own smoke-test
command bug, present since it was added, only caught and fixed once
-D warningsmade the CI clippy gate meaningful). - Optional Linux udev/netlink event source to complement polling (v0.1.4
—
--features hotplug; a rawNETLINK_KOBJECT_UEVENTsocket, notudev/libudev.so, so it adds no runtime library dependency). - Configurable thermal/counter health thresholds and alert events (v0.1.4).
- Graceful config reload without a full restart (v0.1.4 —
SIGHUP;server.listen/unix_socket/dashboard_dirand the Nodra/CAN-capture connections still need a restart, everything else applies live). -
seccompprofiles for plugin subprocess execution (v0.1.4 —plugins.seccomp_enabled, a denylist of dangerous syscalls rather than a strict allowlist, since plugins have unknowable syscall needs).
Explicitly outside Device Agent v0.x¶
Kubernetes dependency, industrial protocol meaning, Nodra WAL duplication, a
second Fleet agent, arbitrary remote shell, bootloader/partition OTA logic, or
full EdgeAI NPU inference (HTTP/config scaffold under docs/EDGE_AI.md /
--features edge-ai only). Production CA key custody stays in Fleet; this
repo ships only the enrollment client and a lab fixture CA.
v0.2.0 customer journey (landed)¶
- Secure non-loopback refusal + stream tickets
- TPM
identity.policy - Privilege-separated bus helper (
--features privsep) - Signed passport, flight recorder, support bundles
- Signed Fleet inventory sibling + remediation allowlist
- Rules-based diagnostics (Edge AI remains 501)
- Physical Minewing HIL signed on silicon (
minewing_claimablestill false)