Watch
0
0
Fork
You've already forked hyperhive
0
hyperhive/hivectl/src
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 5785c0024c Make agent creation swarm-only and refuse a name placed on another hive
swarm-controller's POST /api/agents now refuses (409) a name the swarm
has already placed on a different hive: a non-Destroyed declaration in
that hive's wanted state, or a SetAgentWanted node still queued for it.
The same name on the same hive is that agent being re-created and goes
through. A wanted state that cannot be read refuses (503/500) instead of
reading as "placed nowhere". Creations are serialised from that read to
the graph insert so two concurrent creations of one name cannot both
pass.

Hive-level creation is removed: hivectl `agent create` / `request-create`,
HostRequest::Spawn / RequestSpawn, the dashboard POST /api/request-spawn
route, and ApprovalKind::Spawn with its approve/resolve arms and the
approval-carrying `templates::spawn`. The swarm path (deploy request or
wanted-state sweep -> queue_first_deploy -> templates::first_deploy) used
none of them. Old `spawn` approval rows are skipped by collect_lenient,
as `init_config` rows were in a3b672d1.

policy.rs's comment on agent_object_name stated swarm-wide name
uniqueness as a fact; it now says where it is enforced and what that
check cannot see.

Refs #4396
2026-09-29 15:47:40 +02:00
..
agents.rs Make agent creation swarm-only and refuse a name placed on another hive 2026-09-29 15:47:40 +02:00
approvals.rs split hivectl main.rs into per-domain modules (#2509) 2026-07-16 11:28:43 +02:00
choom.rs hive-c0re: grant hive-admin group a polkit rule for choom 2026-09-07 23:27:15 +02:00
cli.rs Make agent creation swarm-only and refuse a name placed on another hive 2026-09-29 15:47:40 +02:00
client.rs host.sock: give HostResponse a wire-schema version, warn on mismatch 2026-09-07 14:08:30 +02:00
completions.rs split hivectl main.rs into per-domain modules (#2509) 2026-07-16 11:28:43 +02:00
dag_progress.rs feat(#3245): gate rustdoc in nix flake check, and clear the workspace 2026-08-14 02:30:55 +02:00
forge.rs hivectl: drop forge create-user; SSO makes a human's forge account 2026-09-25 08:29:56 +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 hivectl: drop forge create-user; SSO makes a human's forge account 2026-09-25 08:29:56 +02:00
matrix.rs hivectl, hive-c0re: remove dead matrix create-user/promote-user/reset-password 2026-09-29 13:13:59 +02:00
open.rs deploy: split the homeserver's host decisions out of swarm.matrix 2026-09-07 14:24:52 +02:00
power.rs hivectl: batch QueueNodes polling by id set, drop remaining dag wording 2026-08-03 20:35:24 +02:00
quota.rs hivectl: rename hivectl agents to hivectl agent <name> <verb> 2026-07-27 19:07:18 +02:00
subvol.rs hivectl: batch QueueNodes polling by id set, drop remaining dag wording 2026-08-03 20:35:24 +02:00
util.rs fix(hivectl): ask the daemon whether an agent exists 2026-07-27 09:34:43 +02:00
watch.rs docs: restructure into topic subdirectories, collapse duplicated index 2026-09-02 01:55:37 +02:00
wg.rs deploy: move the wireguard mesh out of the namespace hives read 2026-09-07 14:24:52 +02:00