Watch
0
0
Fork
You've already forked hyperhive
0
hyperhive/hive-c0re/src
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 978e66790c fix(#3892): a corrupt power-intent row is an error, not an absent one
`PowerStore::get` ended `Ok(row.and_then(|s| Wanted::parse(&s)))`, so a
row holding an unparseable value collapsed into the same `Ok(None)` as
no row at all. Its doc comment stated the narrower case as the whole one
("`None` when the agent has no row yet"), which is what kept the gap
invisible.

The damage is not that a caller reads the wrong value. `get_or_seed`
takes `None` to mean "never seeded" and writes
`Wanted::from_running(running)` — so a corrupted row silently
**overwrote itself** with whatever the container happened to be doing at
that moment, which is precisely the inference an authoritative intent
store exists to prevent. Its own comment says the DB is authoritative
once seeded.

The error arm was already in the signature; this makes it reachable.
Every caller already handles `Result`: the two `get_or_seed` paths
propagate, so a corrupt row now fails that agent's boot reconcile
instead of erasing itself, and `workers::wanted` already skips an agent
whose intent could not be read.

The second test is the one that matters — it asserts the row still holds
its original bytes afterwards, because the overwrite, not the read, was
the bug. Both tests carry a valid and an absent row alongside, so
neither can pass by breaking `get` for everything.

Found by argus reviewing #3891, which reads this store but does not
write it.
2026-09-01 17:11:32 +02:00
..
agent_config hive-c0re: drop stale 'question' example from check_size doc 2026-08-30 03:42:57 +02:00
dashboard remove the 1NFR4 dashboard panel and the now-writer-less audit log 2026-08-31 00:18:21 +02:00
forge hive-c0re: seed an agent's proposed config from the forge when it exists 2026-08-31 00:17:41 +02:00
job_queue feat(#3124): converge the hive onto the agent set the swarm declares 2026-09-01 13:07:54 +02:00
lifecycle remove the 1NFR4 dashboard panel and the now-writer-less audit log 2026-08-31 00:18:21 +02:00
socket_server remove hive-level infra-container restart from web ui and agents 2026-08-31 00:18:21 +02:00
stats Fix nix references in prose that no longer resolve 2026-08-30 14:30:27 +02:00
stores fix(#3892): a corrupt power-intent row is an error, not an absent one 2026-09-01 17:11:32 +02:00
workers fix(#3124): close AgentState — an unknown value is not a partial instruction 2026-09-01 14:05:30 +02:00
actions.rs refactor(#2916): destroy submits a DAG instead of an imperative teardown 2026-08-14 00:24:45 +02:00
container_view.rs Fix nix references in prose that no longer resolve 2026-08-30 14:30:27 +02:00
coordinator.rs remove the 1NFR4 dashboard panel and the now-writer-less audit log 2026-08-31 00:18:21 +02:00
dashboard_events.rs remove the 1NFR4 dashboard panel and the now-writer-less audit log 2026-08-31 00:18:21 +02:00
gateway_nginx.rs Fix nix references in prose that no longer resolve 2026-08-30 14:30:27 +02:00
loose_ends.rs docs/hive-c0re: fix ask/answer removal doc gaps argus caught on #3741 2026-08-30 03:02:31 +02:00
main.rs remove the 1NFR4 dashboard panel and the now-writer-less audit log 2026-08-31 00:18:21 +02:00
matrix.rs deploy: move the matrix homeserver toggle out of swarm 2026-08-30 15:17:02 +02:00
meta.rs deploy: move the hive CA's knobs to deploy.hive-controller.tls 2026-08-30 20:52:00 +02:00
migrate.rs refactor(#2916): drop the two obsolete startup migrations 2026-08-02 01:41:37 +02:00
paths.rs Fix nix references in prose that no longer resolve 2026-08-30 14:30:27 +02:00
priv_client.rs remove hive-level infra-container restart from web ui and agents 2026-08-31 00:18:21 +02:00
server.rs deploy: move the matrix homeserver toggle out of swarm 2026-08-30 15:17:02 +02:00
snapshot_push.rs refactor(#2862): one snapshot store per swarm, not one per peer 2026-07-31 22:15:37 +02:00
swarm_notices.rs swarm-queue-based lifecycle notices, replacing push_todo(MANAGER_AGENT) 2026-08-24 14:34:37 +02:00
swarm_queue.rs swarm-queue-based lifecycle notices, replacing push_todo(MANAGER_AGENT) 2026-08-24 14:34:37 +02:00
swarm_status.rs feat(#3124): converge the hive onto the agent set the swarm declares 2026-09-01 13:07:54 +02:00
test_env.rs test(hive-c0re): one crate-wide lock for env-mutating tests 2026-08-19 01:38:54 +02:00
webhook_secret.rs chore(#2510): bump indicatif/tower-http/hmac/sha2 to latest majors 2026-07-16 10:42:30 +02:00