hyperhive/hive-c0re/src
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 7f920718f2 refactor(#2815): drop the imperative transient path entirely
mara on !2910: "also remove imperative path for the things that are not
nodes yet, file follow up issue to fix that".

`TransientGuard`, the stored map and both manual set/clear are gone.
`transient_snapshot()` is derived and nothing else — destroy and
migration show no pill, because there is no node to derive one from. The
pill returns for free when they become nodes.

What those three guards were actually doing, though, was suppressing the
crash watcher, not drawing a pill. `migrate.rs` said so in its own
comment: without it, `crash_watch` fires `ContainerCrash` for every
migrated agent and the manager tries to recover containers that were
stopped on purpose. Destroy is the same — the container disappears
deliberately and nothing in the graph says so.

Deleting them outright would therefore have traded a dashboard pill for
false crash alerts on every destroy and every migration. So the
suppression survives as its own thing, `suppress_crash_watch`, with a
name that says what it is. It is still RAII, and still held for the
operation rather than stamped once, because the crash watcher's grace
window is finite and a destroy is not — a single tombstone would expire
mid-operation. The drop stamps the tombstone, covering the poll that
lands just after.

That leaves RAII in the codebase for exactly one purpose instead of two.
Untangling the pill from the suppression is what made the transient layer
deletable at all.

Follow-up issue for making destroy + migration real queue nodes to
follow; at that point this guard goes too.

Checked with clippy (`--all-targets -D warnings`), `cargo test -p
hive-c0re -p hive-jobq` (322 + 41 passed) and `nix fmt`.
2026-08-01 18:15:27 +02:00
..
agent_config feat: derive BUN_JSC_forceRAMSize from effective per-agent MemoryMax= 2026-07-26 21:56:25 +02:00
dashboard refactor(#2815): derive the transient snapshot, don't mirror it 2026-08-01 17:47:08 +02:00
forge fix(#2860): drop hive-c0re's hardcoded localhost forge fallbacks 2026-07-31 22:53:59 +02:00
job_queue refactor(#2815): derive the transient snapshot, don't mirror it 2026-08-01 17:47:08 +02:00
lifecycle refactor(#2754): make the container weights Option, not a 0 sentinel 2026-07-27 10:55:29 +02:00
socket_server hive-c0re: list_descendants reads cached container snapshot instead of live systemctl calls 2026-08-01 15:30:57 +02:00
stats feat(#2899): add host.arch + service.version to container metrics 2026-08-01 14:21:10 +02:00
stores hive-c0re: annotate remaining dashboard routes with utoipa 2026-07-31 23:37:05 +02:00
workers refactor(#2815): drop the imperative transient path entirely 2026-08-01 18:15:27 +02:00
actions.rs refactor(#2815): drop the imperative transient path entirely 2026-08-01 18:15:27 +02:00
container_view.rs resource_limits: read the override map once per SSE scan 2026-07-26 14:56:36 +02:00
coordinator.rs refactor(#2815): drop the imperative transient path entirely 2026-08-01 18:15:27 +02:00
dashboard_events.rs refactor(#2815): derive the transient pill from the running node 2026-08-01 16:06:06 +02:00
gateway_nginx.rs sweep: wire gateway-nginx reload + config-repo branch-protection into warning banners 2026-07-16 00:05:29 +02:00
loose_ends.rs feat(#2635): wire harness-local questions mirror (inc2 pt2) 2026-07-26 02:07:33 +02:00
main.rs feat(#2899): add host.arch + service.version to container metrics 2026-08-01 14:21:10 +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
meta.rs fix(#2898): carry hive/swarm display names as build-time options 2026-08-01 12:35:50 +02:00
migrate.rs refactor(#2815): drop the imperative transient path entirely 2026-08-01 18:15:27 +02:00
paths.rs hivectl: add agent <name> watch to follow live events from the CLI 2026-07-27 21:04:00 +02:00
priv_client.rs feat(#2862): push a snapshot to a peer hive's store over the mesh 2026-07-31 22:15:37 +02:00
questions.rs delete c0re-side reminder plumbing (#2635 inc 1 commit 6) 2026-07-23 00:12:30 +02:00
server.rs refactor(#2862): one snapshot store per swarm, not one per peer 2026-07-31 22:15:37 +02:00
snapshot_push.rs refactor(#2862): one snapshot store per swarm, not one per peer 2026-07-31 22:15:37 +02:00
webhook_secret.rs chore(#2510): bump indicatif/tower-http/hmac/sha2 to latest majors 2026-07-16 10:42:30 +02:00