docs(claude): sintra's nightly also fails on the timeout; the push-cache rule, the pnpm hash rule, the activation PATH rule

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.
This commit is contained in:
Padreug 2026-10-10 22:09:39 +02:00
commit 23bd54738d

View file

@ -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 .#<model>-installed --target-host <model> --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
```