From 2e4b1b0879d2db715a00c427e157b501e1295ea5 Mon Sep 17 00:00:00 2001 From: Shun Kakinoki Date: Mon, 21 Sep 2026 11:26:40 +0800 Subject: [PATCH] fix(kamino): give T3 Connect provisioning node and libatomic The unattended dotfiles-updater runs activation without node on PATH or libatomic on the loader path, so the bun t3 shim exits 127 and aborts nix-switch on every Kamino worker. --- named-hosts/kamino/default.nix | 9 ++++++--- tests/eval.nix | 2 ++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/named-hosts/kamino/default.nix b/named-hosts/kamino/default.nix index 30dafc5e7..5f2f37648 100644 --- a/named-hosts/kamino/default.nix +++ b/named-hosts/kamino/default.nix @@ -98,13 +98,16 @@ inputs.home-manager.lib.homeManagerConfiguration { # T3 Connect is provisioned per worker after the npm globals install # puts `t3` on PATH. The first activation authorizes with the OAuth - # device flow; later activations reuse the stored credential. + # device flow; later activations reuse the stored credential. The + # `t3` shim runs under `#!/usr/bin/env node` and its native binary + # links libatomic, neither of which the unattended updater provides. home.activation.provisionKaminoT3Connect = config.lib.dag.entryAfter [ "installNpmGlobals" "startKaminoUserManager" ] '' - export PATH=${config.home.homeDirectory}/.bun/bin:$PATH + export PATH=${config.home.homeDirectory}/.bun/bin:${pkgs.nodejs}/bin:$PATH export XDG_RUNTIME_DIR=/run/user/0 - $DRY_RUN_CMD ${pkgs.bash}/bin/bash ${./activate.sh} t3-connect ${config.home.homeDirectory}/.bun/bin/t3 + LD_LIBRARY_PATH=${pkgs.stdenv.cc.cc.lib}/lib''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} \ + $DRY_RUN_CMD ${pkgs.bash}/bin/bash ${./activate.sh} t3-connect ${config.home.homeDirectory}/.bun/bin/t3 ''; systemd.user.services.herdr-server = { diff --git a/tests/eval.nix b/tests/eval.nix index 9f5ca9a02..315ec6eb6 100644 --- a/tests/eval.nix +++ b/tests/eval.nix @@ -310,6 +310,8 @@ let assert activationPosition "installNpmGlobals" < activationPosition "provisionKaminoT3Connect"; assert lib.hasInfix "t3-connect" cfg.home.activation.provisionKaminoT3Connect.data; assert lib.hasInfix ".bun/bin/t3" cfg.home.activation.provisionKaminoT3Connect.data; + assert lib.hasInfix "${pkgs.nodejs}/bin" cfg.home.activation.provisionKaminoT3Connect.data; + assert lib.hasInfix "LD_LIBRARY_PATH=" cfg.home.activation.provisionKaminoT3Connect.data; assert !(cfg.systemd.user.services ? dolt); assert !(cfg.systemd.user.services ? dolt-federation-sync); assert !(cfg.systemd.user.services ? dolt-linear-sync);