The main distinction is not the feature list, but what the control plane is allowed to trust and execute. See Architecture and Security for the full design.
Device identity
The device's private key is generated locally and never transmitted. A CSR is signed during short-lived, single-use provisioning. Server↔agent traffic is mutual TLS, and revocation is checked against server state on every authenticated request — not assumed from the handshake alone.
Human authentication
WebAuthn/FIDO2 only. There is no password authentication path in normal operation.
Typed jobs
The current action registry is small and fixed: system.status, systemd.list, systemd.status, apt.list_updates, and systemd.restart. Arbitrary shell execution is a permanent non-goal. Jobs are signed by the control plane and carry a nonce and expiry for replay protection, and systemd.restart only runs when the target device's attestation state is good.
Privilege separation
lg-agent runs unprivileged. Anything needing elevated local rights is dispatched to a separate, narrowly-scoped lg-executor process over a local socket, which independently re-verifies each job's signature before executing it — a compromised agent process doesn't, by itself, grant arbitrary root execution.
Step-up authentication
Server-side FIDO step-up (a freshly re-asserted WebAuthn ceremony, enforced server-side) exists and is wired to device revocation and attestation re-baselining today. Other sensitive actions are named on the roadmap for step-up but are not yet gated by it — don't assume every mutating job currently requires it.
Audit trail
Authentication events and the job lifecycle write to an append-only audit log server-side. There's no dedicated audit UI yet — the trail exists in the backend, not (yet) a browsable view.
Proxmox correlation
Read-only integration against one Proxmox cluster: VM/CT inventory, power state, and correlation against agent connectivity to distinguish hypervisor-reported state from agent-reported state. No start/stop/reboot or other lifecycle actions exist.