chore(nix): replace tracker tags with prose in nix comments
Part of the tracker-tag cleanup: the hive convention is prose, not issue-tracker tags, in code. Reword the 21 tags in the nix tree (flake.nix + the hive-c0re/ci/gateway/network modules) to describe the thing they pointed at, preserving the context without the tag. Comment-only — no eval or logic change. Validated with nix fmt (no reformatting) and nix flake check --no-build (all checks evaluate clean); the full build check was skipped locally because the shared remote builder is degraded, so CI will exercise the build derivations once the runner recovers.
This commit is contained in:
parent
ac7923e01f
commit
eb61660d35
5 changed files with 24 additions and 25 deletions
27
flake.nix
27
flake.nix
|
|
@ -4,7 +4,7 @@
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
|
||||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||||
# Crane (replaces naersk #538). Stateless — no nixpkgs input to
|
# Crane (replaces the former naersk-based build). Stateless — no nixpkgs input to
|
||||||
# follow; `crane.mkLib pkgs` returns the lib at whatever pkgs we
|
# follow; `crane.mkLib pkgs` returns the lib at whatever pkgs we
|
||||||
# pass it (we use the project's pinned nixpkgs).
|
# pass it (we use the project's pinned nixpkgs).
|
||||||
crane.url = "github:ipetkov/crane";
|
crane.url = "github:ipetkov/crane";
|
||||||
|
|
@ -51,7 +51,7 @@
|
||||||
# cares about" filter (Cargo.toml/Cargo.lock + *.rs). All
|
# cares about" filter (Cargo.toml/Cargo.lock + *.rs). All
|
||||||
# non-rust runtime assets — branding + the claude system
|
# non-rust runtime assets — branding + the claude system
|
||||||
# prompt template + claude-settings.json — live in the
|
# prompt template + claude-settings.json — live in the
|
||||||
# separate `hyperhive-assets` derivation (#555) and are
|
# separate `hyperhive-assets` derivation and are
|
||||||
# loaded by the binaries at runtime from `$HIVE_ASSETS_DIR`.
|
# loaded by the binaries at runtime from `$HIVE_ASSETS_DIR`.
|
||||||
# The unit tests in `hive-ag3nt::prompt` read the same
|
# The unit tests in `hive-ag3nt::prompt` read the same
|
||||||
# `prompts/system.md` directly from the workspace tree at
|
# `prompts/system.md` directly from the workspace tree at
|
||||||
|
|
@ -91,10 +91,10 @@
|
||||||
# sandbox.
|
# sandbox.
|
||||||
# `librsvg` used to live here for `hive-c0re/build.rs`'s
|
# `librsvg` used to live here for `hive-c0re/build.rs`'s
|
||||||
# rsvg-convert call — that whole codepath moved into the
|
# rsvg-convert call — that whole codepath moved into the
|
||||||
# `hyperhive-assets` derivation in #555, so the rust
|
# `hyperhive-assets` derivation, so the rust
|
||||||
# derivation no longer needs the dependency.
|
# derivation no longer needs the dependency.
|
||||||
# `sqlite` required by matrix-sdk's `sqlite` feature
|
# `sqlite` required by matrix-sdk's `sqlite` feature
|
||||||
# (`hive-matrix-mcp` workspace member, #548 phase 3) — the
|
# (`hive-matrix-mcp` workspace member) — the
|
||||||
# matrix-sdk-sqlite + rusqlite stack links against system
|
# matrix-sdk-sqlite + rusqlite stack links against system
|
||||||
# libsqlite3 by default.
|
# libsqlite3 by default.
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
@ -129,7 +129,7 @@
|
||||||
# prompt::tests` reads the production prompt template at test
|
# prompt::tests` reads the production prompt template at test
|
||||||
# runtime through `$HIVE_ASSETS_DIR`, so wiring the env var
|
# runtime through `$HIVE_ASSETS_DIR`, so wiring the env var
|
||||||
# into the build phase here would make the prompt's hash a
|
# into the build phase here would make the prompt's hash a
|
||||||
# build input of `default` (defeats #555's cache goal: a
|
# build input of `default` (defeats the asset-split cache goal: a
|
||||||
# prompt edit would still bust the binary derivation, even
|
# prompt edit would still bust the binary derivation, even
|
||||||
# though no .rs file changed). Keeping tests in a separate
|
# though no .rs file changed). Keeping tests in a separate
|
||||||
# check derivation localises the asset-rebuild blast radius
|
# check derivation localises the asset-rebuild blast radius
|
||||||
|
|
@ -144,12 +144,12 @@
|
||||||
};
|
};
|
||||||
# Bundled browser assets — see ./nix/frontend.nix. Output is
|
# Bundled browser assets — see ./nix/frontend.nix. Output is
|
||||||
# $out/{dashboard,agent}/ which the Rust binaries serve via
|
# $out/{dashboard,agent}/ which the Rust binaries serve via
|
||||||
# tower_http::ServeDir (wired up in Phase 4 of #273).
|
# tower_http::ServeDir.
|
||||||
frontend = pkgs.callPackage ./nix/frontend.nix {
|
frontend = pkgs.callPackage ./nix/frontend.nix {
|
||||||
branding-svg = ./branding/hyperhive.svg;
|
branding-svg = ./branding/hyperhive.svg;
|
||||||
};
|
};
|
||||||
# Static runtime assets the rust binaries read via
|
# Static runtime assets the rust binaries read via
|
||||||
# `hive_sh4re::assets::*` (#555): branding/* + prompts/*,
|
# `hive_sh4re::assets::*`: branding/* + prompts/*,
|
||||||
# plus the rendered agent-configs.png. Split out of the
|
# plus the rendered agent-configs.png. Split out of the
|
||||||
# rust derivation so a tweak to e.g. system.md doesn't bust
|
# rust derivation so a tweak to e.g. system.md doesn't bust
|
||||||
# the cargo cache. Build input of the `cargo-test` check but
|
# the cargo cache. Build input of the `cargo-test` check but
|
||||||
|
|
@ -164,7 +164,6 @@
|
||||||
# spawn dramatically because the heavy lifting (nixpkgs +
|
# spawn dramatically because the heavy lifting (nixpkgs +
|
||||||
# claude-code + hive-ag3nt binary) is already in the store
|
# claude-code + hive-ag3nt binary) is already in the store
|
||||||
# when the meta evaluator goes to build the container.
|
# when the meta evaluator goes to build the container.
|
||||||
# Closes #97.
|
|
||||||
#
|
#
|
||||||
# nixosConfigurations are pinned to x86_64-linux (nixos-
|
# nixosConfigurations are pinned to x86_64-linux (nixos-
|
||||||
# containers only run native arch), so these toplevels are
|
# containers only run native arch), so these toplevels are
|
||||||
|
|
@ -175,7 +174,7 @@
|
||||||
agent-base-toplevel = self.nixosConfigurations.agent-base.config.system.build.toplevel;
|
agent-base-toplevel = self.nixosConfigurations.agent-base.config.system.build.toplevel;
|
||||||
ruth-toplevel = self.nixosConfigurations.ruth.config.system.build.toplevel;
|
ruth-toplevel = self.nixosConfigurations.ruth.config.system.build.toplevel;
|
||||||
|
|
||||||
# Auto-generated nix options reference for hyperhive (#616).
|
# Auto-generated nix options reference for hyperhive.
|
||||||
# `docs` bundles host + agent pages into one tree; the split
|
# `docs` bundles host + agent pages into one tree; the split
|
||||||
# outputs are useful when consumers only want one surface.
|
# outputs are useful when consumers only want one surface.
|
||||||
# All three are pure markdown — no rust or frontend deps in
|
# All three are pure markdown — no rust or frontend deps in
|
||||||
|
|
@ -196,7 +195,7 @@
|
||||||
# is applied (manager + agent containers both apply it via
|
# is applied (manager + agent containers both apply it via
|
||||||
# `mkContainer` further down).
|
# `mkContainer` further down).
|
||||||
hyperhive-frontend = self.packages.${prev.stdenv.hostPlatform.system}.frontend;
|
hyperhive-frontend = self.packages.${prev.stdenv.hostPlatform.system}.frontend;
|
||||||
# Static runtime assets (#555). Exposed alongside the binary
|
# Static runtime assets. Exposed alongside the binary
|
||||||
# so the harness module can wire $HIVE_ASSETS_DIR straight
|
# so the harness module can wire $HIVE_ASSETS_DIR straight
|
||||||
# to `${pkgs.hyperhive-assets}/share/hyperhive`.
|
# to `${pkgs.hyperhive-assets}/share/hyperhive`.
|
||||||
hyperhive-assets = self.packages.${prev.stdenv.hostPlatform.system}.assets;
|
hyperhive-assets = self.packages.${prev.stdenv.hostPlatform.system}.assets;
|
||||||
|
|
@ -243,7 +242,7 @@
|
||||||
hyperhiveNixpkgsUnstable = "path:${nixpkgs-unstable}";
|
hyperhiveNixpkgsUnstable = "path:${nixpkgs-unstable}";
|
||||||
# Per-container toplevels — wired into `system.extraDependencies`
|
# Per-container toplevels — wired into `system.extraDependencies`
|
||||||
# when `services.hyperhive.c0re.preBuildAgentTemplates` is on so the
|
# when `services.hyperhive.c0re.preBuildAgentTemplates` is on so the
|
||||||
# host system closure pre-fetches the heavy build inputs (#97).
|
# host system closure pre-fetches the heavy build inputs.
|
||||||
# Defined only for x86_64-linux because nixosConfigurations are
|
# Defined only for x86_64-linux because nixosConfigurations are
|
||||||
# hardcoded to that system; the option's default keeps the
|
# hardcoded to that system; the option's default keeps the
|
||||||
# extra deps gated so aarch64 hosts don't accidentally pull
|
# extra deps gated so aarch64 hosts don't accidentally pull
|
||||||
|
|
@ -292,7 +291,7 @@
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
cargo
|
cargo
|
||||||
clippy
|
clippy
|
||||||
librsvg # rsvg-convert — hive-c0re/build.rs invokes it (#424)
|
librsvg # rsvg-convert — hive-c0re/build.rs invokes it
|
||||||
pkg-config
|
pkg-config
|
||||||
rust-analyzer
|
rust-analyzer
|
||||||
rustc
|
rustc
|
||||||
|
|
@ -331,7 +330,7 @@
|
||||||
# group from that gate: pedantic is the "extra, opinionated"
|
# group from that gate: pedantic is the "extra, opinionated"
|
||||||
# group the clippy team grows freely, so denying it means
|
# group the clippy team grows freely, so denying it means
|
||||||
# every toolchain bump that adds a new pedantic lint breaks CI
|
# every toolchain bump that adds a new pedantic lint breaks CI
|
||||||
# with zero code changes (#1368). The `pedantic = warn`
|
# with zero code changes. The `pedantic = warn`
|
||||||
# workspace lint (Cargo.toml) keeps it as advisory signal in
|
# workspace lint (Cargo.toml) keeps it as advisory signal in
|
||||||
# local `cargo clippy` — it just no longer blocks the build.
|
# local `cargo clippy` — it just no longer blocks the build.
|
||||||
# (`-A` rather than `-W` here: `-W clippy::pedantic` would
|
# (`-A` rather than `-W` here: `-W clippy::pedantic` would
|
||||||
|
|
@ -361,7 +360,7 @@
|
||||||
cargoTestExtraArgs = "--workspace";
|
cargoTestExtraArgs = "--workspace";
|
||||||
HIVE_ASSETS_DIR = "${self.packages.${system}.assets}/share/hyperhive";
|
HIVE_ASSETS_DIR = "${self.packages.${system}.assets}/share/hyperhive";
|
||||||
};
|
};
|
||||||
# Nix options docs evaluation (#616). Cheap: pulls in
|
# Nix options docs evaluation. Cheap: pulls in
|
||||||
# `nixosOptionsDoc` + the host module's stub eval, no rust or
|
# `nixosOptionsDoc` + the host module's stub eval, no rust or
|
||||||
# frontend deps. CI fails fast if a module change breaks
|
# frontend deps. CI fails fast if a module change breaks
|
||||||
# option declarations or the doc rendering. Reuses the
|
# option declarations or the doc rendering. Reuses the
|
||||||
|
|
|
||||||
|
|
@ -458,7 +458,7 @@ in
|
||||||
Pre-fetch the per-container system closures (agent-base +
|
Pre-fetch the per-container system closures (agent-base +
|
||||||
manager toplevels) into the host's /nix/store as part of this
|
manager toplevels) into the host's /nix/store as part of this
|
||||||
host's NixOS build, instead of letting the first agent spawn
|
host's NixOS build, instead of letting the first agent spawn
|
||||||
do all the work. Closes #97.
|
do all the work.
|
||||||
|
|
||||||
Enabling this adds roughly the full nixpkgs runtime closure +
|
Enabling this adds roughly the full nixpkgs runtime closure +
|
||||||
claude-code + the harness binary to your system closure size
|
claude-code + the harness binary to your system closure size
|
||||||
|
|
@ -612,8 +612,8 @@ in
|
||||||
pkgs.git
|
pkgs.git
|
||||||
];
|
];
|
||||||
|
|
||||||
# Pull the per-container toplevels into the host system closure
|
# Pull the per-container toplevels into the host system closure.
|
||||||
# (#97). `system.extraDependencies` adds paths to the system build
|
# `system.extraDependencies` adds paths to the system build
|
||||||
# without referencing them at runtime — nixos-rebuild fetches /
|
# without referencing them at runtime — nixos-rebuild fetches /
|
||||||
# builds them, they end up in /nix/store, and the first
|
# builds them, they end up in /nix/store, and the first
|
||||||
# nixos-container update + start for an agent has nothing left to
|
# nixos-container update + start for an agent has nothing left to
|
||||||
|
|
|
||||||
|
|
@ -118,7 +118,7 @@ let
|
||||||
# attempt for the full 60s loop, then exits with a misleading
|
# attempt for the full 60s loop, then exits with a misleading
|
||||||
# "core token absent or forge unreachable" — masking the real cause.
|
# "core token absent or forge unreachable" — masking the real cause.
|
||||||
# Fail fast + loudly on 401/403 so the failure mode is legible and
|
# Fail fast + loudly on 401/403 so the failure mode is legible and
|
||||||
# the operator/hive-c0re knows to re-mint forge-core-token (#1475).
|
# the operator/hive-c0re knows to re-mint forge-core-token.
|
||||||
RESP=$(${pkgs.curl}/bin/curl -s -w $'\n%{http_code}' \
|
RESP=$(${pkgs.curl}/bin/curl -s -w $'\n%{http_code}' \
|
||||||
"$FORGE_URL/api/v1/admin/runners/registration-token" \
|
"$FORGE_URL/api/v1/admin/runners/registration-token" \
|
||||||
-H "Authorization: token $CORE_TOKEN" || printf '\n000')
|
-H "Authorization: token $CORE_TOKEN" || printf '\n000')
|
||||||
|
|
@ -287,9 +287,9 @@ in
|
||||||
# `nixos-container@…`. The earlier `nixos-container@hive-ci.service`
|
# `nixos-container@…`. The earlier `nixos-container@hive-ci.service`
|
||||||
# matched no real unit, so before/wantedBy/partOf were silent
|
# matched no real unit, so before/wantedBy/partOf were silent
|
||||||
# no-ops — the partOf never bound, the oneshot stayed
|
# no-ops — the partOf never bound, the oneshot stayed
|
||||||
# `active (exited)`, and the token was never refreshed on restart
|
# `active (exited)`, and the token was never refreshed on restart.
|
||||||
# (a contributor to #1475). Confirmed against the live
|
# Confirmed against the live `container@hive-matrix.service` unit
|
||||||
# `container@hive-matrix.service` unit during the #1465 incident.
|
# during the matrix-outage incident.
|
||||||
partOf = [ "container@hive-ci.service" ];
|
partOf = [ "container@hive-ci.service" ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
|
|
|
||||||
|
|
@ -973,8 +973,8 @@ in
|
||||||
# Hive authoritative records — answer queries for the
|
# Hive authoritative records — answer queries for the
|
||||||
# hive domain + its sub-domains with the bridge IP
|
# hive domain + its sub-domains with the bridge IP
|
||||||
# (where nginx is reachable from container netns once
|
# (where nginx is reachable from container netns once
|
||||||
# #14 lands; today it's the host loopback alias and
|
# per-agent netns isolation lands; today it's the host
|
||||||
# works in either shape).
|
# loopback alias and works in either shape).
|
||||||
#
|
#
|
||||||
# The forge / matrix entries are redundant in the
|
# The forge / matrix entries are redundant in the
|
||||||
# common case where `forge.domain` /
|
# common case where `forge.domain` /
|
||||||
|
|
|
||||||
|
|
@ -97,8 +97,8 @@ in
|
||||||
default = false;
|
default = false;
|
||||||
example = true;
|
example = true;
|
||||||
description = ''
|
description = ''
|
||||||
Flip agent containers from shared host netns to private netns
|
Flip agent containers from shared host netns to private netns.
|
||||||
(#14). When true, each agent container gets a dedicated veth
|
When true, each agent container gets a dedicated veth
|
||||||
pair attached to `bridgeName` and a deterministic IP from
|
pair attached to `bridgeName` and a deterministic IP from
|
||||||
the bridge subnet. The bridge (already up when `enable = true`)
|
the bridge subnet. The bridge (already up when `enable = true`)
|
||||||
becomes the sole routed path between the host and agent
|
becomes the sole routed path between the host and agent
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue