Watch
0
0
Fork
You've already forked hyperhive
0
hyperhive/hive-types
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 4e7142ae53 swarm-controller: refuse new agents named hive-<anything>
`hive-<hive>` is each hive's read-only forge account, and an agent's forge
account takes the agent's name, so an agent called `hive-<x>` would claim
hive `<x>`'s account. `hive_types::reserved_agent_prefix_violation` names
the rule, and `broken_name_rules` applies it, so both creation paths that
go through it (`POST /api/agents` and placing an undeclared agent on a
hive) refuse such a name for a new agent. An agent already in the roster
keeps its name with a warning, as for every other naming rule.

The email check between hive and agent accounts stays as the second
guard, for agents created before this rule.

Refs #4851
2026-10-07 21:07:17 +02:00
..
src swarm-controller: refuse new agents named hive-<anything> 2026-10-07 21:07:17 +02:00
Cargo.toml docs(#2627): add READMEs for the remaining infra crates 2026-07-23 13:16:29 +02:00
README.md docs: restructure into topic subdirectories, collapse duplicated index 2026-09-02 01:55:37 +02:00

hive-types

Foundational shared newtypes for the hyperhive workspace. A zero-dependency (bar serde) leaf crate, so every wire-type crate (hive-sh4re, hive-host-sock, hive-core-agent-sock) and both binaries (hive-c0re, hivectl) can share them without cross-crate coupling and without growing hive-sh4re.

What's here

  • Ident — a validated agent-name newtype. Typing agent-name fields as Ident (rather than bare String) gets serde-validated parsing at the socket boundary for free: a malformed name is rejected at deserialize time instead of flowing into a handler that has to re-validate by hand.

The crate is deliberately a leaf with the smallest possible dependency footprint so anything in the workspace can depend on it. See docs/process/conventions.md ("identity = socket") for how agent identity is modelled across the sockets.