hyperhive/hive-c0re/src/agent_config
Repository files (latest commit first)
Filename Latest commit message Latest commit date
iris 27bed74d42 hive-c0re: accept friendly MemoryMax size spellings, normalize for systemd
mara hit this directly: setting an agent's memory cap to "16GB"
fails with 'invalid MemoryMax "16GB": expected a size such as
"8G"...'. Confirmed directly against a running systemd 260
(systemd-run -p MemoryMax=<value>): systemd's own parser accepts a
bare byte count, <digits>B, or <digits> plus exactly one uppercase
K/M/G/T, and rejects both "16GB" (redundant B after a multiplier)
and "16g" (lowercase) with "Invalid argument". So the prior
rejection of "16GB" matched systemd, but is bad UX for input a
human reasonably expects to work.

validate_memory_max now returns the value to store (not just an
ok/err verdict): it accepts 8gb/8Gb/8GB/8g/8G interchangeably and
normalizes all of them to systemd's own 8G form before it is ever
persisted or passed downstream. Also fixes the adjacent bug the same
investigation turned up: the old validator incorrectly accepted
lowercase (8g) even though systemd itself rejects it.

Updated both call sites (server.rs, dashboard/lifecycle_ops.rs) to
use the normalized return value. New test
friendly_size_spellings_normalize_to_systemds_own_form; flipped the
old "8GB should be rejected" assertion, which encoded the
human-hostile behavior this fixes.
2026-09-19 15:07:52 +02:00
..
capabilities.rs capabilities: read() filters but no longer persists the prune 2026-09-18 03:03:30 +02:00
limits.rs refs: repoint seven comments that name files which have moved 2026-09-02 08:58:31 +02:00
mod.rs feat: per-agent CPU and memory limits 2026-07-26 14:15:05 +02:00
resource_limits.rs hive-c0re: accept friendly MemoryMax size spellings, normalize for systemd 2026-09-19 15:07:52 +02:00
tool_groups.rs remove as_str() legacy wrappers, callers use .into() directly 2026-09-12 00:06:31 +02:00
topology.rs refactor(hive-c0re): drop the request_init_config tool and InitConfig approval 2026-09-14 19:03:44 +02:00