hyperhive/docs
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas dfadacd45f feat(job-queue): promote the meta-repo deploy window to a queue resource
The two-phase approval deploy keeps a bumped `flake.lock` staged
uncommitted for the whole container build, so no other meta mutation may
land inside that span — until now enforced by a process-global
`meta::exclusive()` mutex held inside each executor fn.

A `MutexGuard` cannot outlive the fn that takes it, which is what blocks
decomposing the opaque `ApprovalDeploy` node into scheduler-visible
sub-nodes: the window has to span them. Replace the mutex with
`Resource::MetaWindow`, a global capacity-1 queue resource declared by
every meta-mutating node kind (`NodeKind::needs_meta_window`). Resources
are held by a subtree root across its whole subtree, so a later increment
can hang the deploy's phases under one window-holding parent.

Same global serialisation as before, and the scheduler now blocks a node
from being claimed rather than parking a worker on a mutex.

Split the rebuild's meta preamble out of `Prebuild` into a new `MetaSync`
node. `Prebuild` must NOT hold the window: the old mutex was deliberately
scoped to drop before the multi-minute toplevel build, which only reads
the store, and a cap-1 global held across it would serialise every
agent's rebuild behind every other's. `MetaSync` is a sibling root that
`Prebuild` deps `AfterOk` on — not its parent, since a parent's resource
covers its whole subtree and would reintroduce exactly that problem.

Queue tests: shape assertions gain the extra node, which is the point of
the change (phases become nodes). The concurrency invariants are intact
but observed one step later — the `MetaSync` heads take turns on the
window, exactly as the runtime mutex made them, so those tests now
complete the heads before asserting that the prebuilds overlap.
2026-07-25 21:20:56 +02:00
..
tools feat(#2659): serve hive-matrix-mcp over persistent streamable-http, drop stdio bridge 2026-07-24 12:44:39 +02:00
turn-loop remove hive-agent-wake — no shipped consumer 2026-07-25 20:05:32 +02:00
web-ui feat(#2659): serve hive-bash-mcp over persistent streamable-http, drop stdio bridge 2026-07-23 18:01:20 +02:00
agent-hierarchy.md remove hive-agent-wake — no shipped consumer 2026-07-25 20:05:32 +02:00
approvals.md docs(#2502): meta flake input is the forge config repo, deploy overrides to local applied 2026-07-17 01:48:27 +02:00
boundary.md feat(#2641): sudoless hivectl via a hive-admin group on the host socket 2026-07-22 22:50:27 +02:00
ci.md docs(#2415): update docs/ci.md for c0re-owned runner registration 2026-07-16 15:30:34 +02:00
conventions.md docs(#2552): never add #[allow(clippy::...)] — fix lints instead 2026-07-20 19:38:56 +02:00
coordinator.md feat(job-queue): promote the meta-repo deploy window to a queue resource 2026-07-25 21:20:56 +02:00
forge.md fix(#2593): mark forge notifications read on broker-delivery 2026-07-19 18:41:51 +02:00
gateway.md route gateway htpasswd management through a daemon wire command (#2504) 2026-07-15 23:23:47 +02:00
github.md fix(#1970): bake token path into gh/git wrappers — env var didn't reach claude's bash-tool context 2026-07-11 14:12:25 +02:00
gotchas.md docs: reflect the new nix layout and removed options 2026-07-13 22:23:20 +02:00
knowledge.md docs(security): ci netns, knowledge .git tmpfs, matrix id/secret split 2026-07-10 19:17:17 +02:00
matrix.md refactor: nix/host-modules + nix/agent-modules layout, update doc paths 2026-07-13 22:05:49 +02:00
network.md docs(#1977): drop exposeHostPorts proxy history from network.md 2026-07-17 01:08:42 +02:00
observability.md feat(#2007): export per-agent container cpu/mem/disk via otel 2026-07-15 22:51:31 +02:00
persistence.md feat(#2659): serve hive-matrix-mcp over persistent streamable-http, drop stdio bridge 2026-07-24 12:44:39 +02:00
security.md refactor: nix/host-modules + nix/agent-modules layout, update doc paths 2026-07-13 22:05:49 +02:00
setup.md refactor(#2416): remove the non-pr config-change flow (request_apply_commit / applycommit) 2026-07-15 21:03:52 +02:00
swarm.md feat(#1997): add prettier markdown formatter to treefmt 2026-07-02 23:33:11 +02:00
terminal-rendering.md refactor(#2416): remove the non-pr config-change flow (request_apply_commit / applycommit) 2026-07-15 21:03:52 +02:00
turn-loop.md remove hive-agent-wake — no shipped consumer 2026-07-25 20:05:32 +02:00
web-ui.md feat: rename matrix-accounts page to credentials, add github PAT tab 2026-07-11 12:40:13 +02:00