hyperhive/hivectl/src
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 170fd817ea fix(hivectl): ask the daemon whether an agent exists
The agents root is 0700 and owned by the daemon's user, so hivectl's
client-side existence guard hit EACCES on traversal for anyone not root.
It reported that as "this command needs root; re-run with sudo", which
turned three verbs' pre-flight check into a permission error about the
wrong thing: `choom`, `subvol upgrade` and `subvol snapshot create` all
failed at the guard rather than at whatever they actually needed.

The daemon runs as the owning user and already answers this question for
its own provisioning paths, so expose it on the host socket as
`AgentExists` and have hivectl ask. Operators reach that socket through
the `hive-admin` group, so the guard now works without sudo.

`choom` still needs root for `machinectl shell` — we ship no polkit rule
granting those actions — so it now checks the effective uid and says so
directly instead of failing later inside systemd's authorisation.
2026-07-27 09:34:43 +02:00
..
agents.rs refactor(hivectl): move quota + subvol under agents 2026-07-26 18:26:27 +02:00
approvals.rs split hivectl main.rs into per-domain modules (#2509) 2026-07-16 11:28:43 +02:00
choom.rs fix(hivectl): ask the daemon whether an agent exists 2026-07-27 09:34:43 +02:00
cli.rs refactor(hivectl): move quota + subvol under agents 2026-07-26 18:26:27 +02:00
client.rs hivectl: say which of the three socket failures actually happened 2026-07-26 17:35:44 +02:00
completions.rs split hivectl main.rs into per-domain modules (#2509) 2026-07-16 11:28:43 +02:00
dag_progress.rs fix: add parent field to NodeView test helper in hivectl 2026-07-26 03:14:52 +02:00
forge.rs refactor(#2302): type socket wire fields as ident, validated by serde on deserialize 2026-07-20 21:46:18 +02:00
gateway.rs split hivectl main.rs into per-domain modules (#2509) 2026-07-16 11:28:43 +02:00
github.rs refactor(#2302): type socket wire fields as ident, validated by serde on deserialize 2026-07-20 21:46:18 +02:00
main.rs fix(hivectl): ask the daemon whether an agent exists 2026-07-27 09:34:43 +02:00
matrix.rs refactor(#2302): type socket wire fields as ident, validated by serde on deserialize 2026-07-20 21:46:18 +02:00
open.rs hivectl: say which of the three socket failures actually happened 2026-07-26 17:35:44 +02:00
power.rs split hivectl main.rs into per-domain modules (#2509) 2026-07-16 11:28:43 +02:00
quota.rs refactor(hivectl): move quota + subvol under agents 2026-07-26 18:26:27 +02:00
subvol.rs fix(hivectl): ask the daemon whether an agent exists 2026-07-27 09:34:43 +02:00
util.rs fix(hivectl): ask the daemon whether an agent exists 2026-07-27 09:34:43 +02:00
wg.rs hivectl: say which of the three socket failures actually happened 2026-07-26 17:35:44 +02:00