From 23bd54738d2a8d6f175d80293518d3183fe0870b Mon Sep 17 00:00:00 2001 From: Padreug Date: Sat, 10 Oct 2026 22:09:39 +0200 Subject: [PATCH] docs(claude): sintra's nightly also fails on the timeout; the push-cache rule, the pnpm hash rule, the activation PATH rule MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The fleet table called sintra a working dev unit; its nixos-upgrade had failed every night 2026-10-06 → 10-09 on the same 60 s atm-app timeout as batm3, so nothing merged that week reached it. Recorded with the interim rule — push-cache after every dev push, because mkAtmApp's src = self makes any commit invalidate the cached toplevel — and the two traps found while applying it: a lockfile change silently reuses a stale pnpmDeps store unless the hash is re-derived, and activation scripts don't have grep/sed on PATH. --- CLAUDE.md | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 31c8393..387e108 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -61,7 +61,7 @@ bitSpire is an independent project under AGPL-3.0 and is not affiliated with Lam | Machine | Reachable | Stack | GPU | Notes | |---|---|---|---|---| -| `sintra` | LAN `192.168.0.252` | dev / LNbits | Braswell `8086:22b0` → crocus | dev unit; ethernet `r8169` | +| `sintra` | LAN `192.168.0.252` | dev / LNbits | Braswell `8086:22b0` → crocus | dev unit; ethernet `r8169`. **Its nightly upgrade failed every night 2026-10-06 → 10-09** on the same 60 s timeout as batm3 (below); nothing merged that week reached it until a cachix push on 10-10 | | `batm3` | wg `10.0.0.5` | dev / LNbits | Haswell GT2 `8086:0412` → crocus | **networks over WiFi**, `iwlwifi` 7260; ethernet down | | `douro` | **down** | — | Bay Trail (Gen7) | needs reflashing with the current image and reconnecting to WireGuard | | `tejo` | wg `10.0.0.3` | **Debian** (`ubilinux4`, kernel 4.9) | Braswell `8086:22b0` | never had bitspire installed; a flake target, not a deployment | @@ -71,9 +71,9 @@ iris — sintra's Braswell does so despite being Gen8. And batm3's only working network path is Intel WiFi, so `intel/iwlwifi` firmware is load-bearing there; trimming it would strand the machine with no way back in. -### batm3's nightly upgrade is currently FAILING +### The nightly upgrade fails on any machine that has to build the app (batm3, and sintra too) -Confirmed 2026-09-24. The run dies at: +Confirmed on batm3 2026-09-24 and on sintra 2026-10-10 (failing since 10-06). The run dies at: ``` 04:03:26 building '…-bitspire-atm-app-0.1.0.drv'... @@ -91,6 +91,25 @@ merged to `dev` reaches it. This is the same class of silent-updater failure as #98, in a new form. The fix is pushing `atm-app-*` to the aiolabs cachix as part of releasing, not raising the timeout — a 60s ceiling on ATM hardware is correct. +**Interim rule (2026-10-10): every push to `dev` is followed by +`./deploy/push-cache.sh sintra && ./deploy/push-cache.sh batm3` from bohm** +(cachix is authenticated there). `mkAtmApp` takes `src = self` — the whole flake +tree — so *any* commit, docs included, changes the app derivation and a cached +toplevel no longer matches what `?ref=dev` resolves to. Three more things that +bit on 10-10: + +- **`pnpm-lock.yaml` changes require re-deriving `pnpmDeps.hash` in + `nix/mkAtmApp.nix`** (blank it, build, paste the `got:` value). Nix reuses the + stale fixed-output store otherwise and the sandboxed `pnpm install --offline` + fails with `ERR_PNPM_NO_OFFLINE_TARBALL`. A passing local `pnpm build` says + nothing about the nix build. +- **Activation scripts run with a minimal PATH** — coreutils yes, `grep`/`sed` + no. Reference `${pkgs.gnugrep}/bin/grep` / `${pkgs.gnused}/bin/sed` by store + path; the `.env` migration printed success and then died 127. +- `nixos-rebuild switch --flake .#-installed --target-host --sudo + --use-substitutes` from bohm is the fast manual path once the cache has the + toplevel: store hit here, closure copied, nothing built on the UP board. + ## Architecture ```