From 40e1ed29675ad7c9e2230867861ecc485df13ecb Mon Sep 17 00:00:00 2001 From: atlas Date: Wed, 12 Aug 2026 17:49:21 +0200 Subject: [PATCH] fix(3167): wire the swarm-ui package from the flake, not a pkgs attr The option defaulted to pkgs.swarm-ui, which does not exist: this project has no overlay - flake.nix's nixosModules.default wires package options with mkDefault from its own package set, and swarm.controller does exactly that. The default would have failed to evaluate on any real deployment, not just in a test harness. Found by the gate forcing .package: the earlier probes passed because they only read option values that never touched it. --- flake.nix | 3 +++ nix/host-modules/swarm-ui.nix | 10 +++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 141187d8..37f2c26a 100644 --- a/flake.nix +++ b/flake.nix @@ -148,6 +148,9 @@ services.hyperhive.swarm.controller.swarmctlPackage = lib.mkDefault self.packages.${pkgs.stdenv.hostPlatform.system}.swarmctl; + services.hyperhive.swarm.ui.package = + lib.mkDefault + self.packages.${pkgs.stdenv.hostPlatform.system}.swarm-ui; services.hyperhive.gateway.swaggerUiTheme = lib.mkDefault self.packages.${pkgs.stdenv.hostPlatform.system}.swagger-ui-theme; diff --git a/nix/host-modules/swarm-ui.nix b/nix/host-modules/swarm-ui.nix index b1da263d..18820162 100644 --- a/nix/host-modules/swarm-ui.nix +++ b/nix/host-modules/swarm-ui.nix @@ -9,7 +9,6 @@ { lib, config, - pkgs, ... }: let @@ -57,12 +56,17 @@ in package = lib.mkOption { type = lib.types.package; - default = pkgs.swarm-ui; - defaultText = lib.literalExpression "pkgs.swarm-ui"; + defaultText = lib.literalExpression "hyperhive.packages.\${system}.swarm-ui"; description = '' Static build of the swarm UI. nginx serves this store path directly — there is no server-side component beyond the controller's own API. + + Wired by default from this flake's own package set (see + `flake.nix`), the same way `swarm.controller.package` is. There + is deliberately **no overlay** in this project, so a + `pkgs.swarm-ui` default here would name an attribute that does + not exist on any real deployment. ''; }; };