Files
Arseniy Klempner 33383063de harness W1: lib primitives, target providers, register scenario
- lib/{json,lgx,daemon,wallet,chain}.sh: the proven helpers from the
  modules-repo e2e script and the mix orchestrator, re-expressed over the
  node_call seam (host daemons now, containers later). daemon env keeps the
  env -i isolation; die tails the failing node's log.
- artifacts.sh: env override -> nix build from the flake pins; assembles
  E2E_MODULES_DIR; pin-consistency gate (rln-modules' rln-layouts rev must
  equal the locked lez-rln rev — decode skew otherwise reads as chain bugs).
- targets/local.sh: dev.sh lifecycle (process-group kill, RPC readiness,
  900s first-boot budget) or E2E_DEVNET=external attach; fresh faucet
  provisioning via the checkout's tools, verify.sh on every path, staged
  fixture -> contract env, per-stage timings. targets/testnet.sh: committed
  descriptor + liveness assert, no checkout needed (store-path stage.sh).
- scenarios/register: the full membership lifecycle (claim -> register ->
  active -> merkle proof + registry cross-check -> generate/verify proof +
  tampered-signal invalid), all budgets from the contract, registry id
  logos:${E2E_TARGET}:<config-hex>. R2/R4 diagnostics kept.
- harness/selftest.sh: no-chain gate — artifacts, lgx install, daemon boot,
  module load, JSON plumbing. PASSES on darwin-arm64.
- devShell + coreutils (timeout); contract.md gains the target-input table.
2026-08-10 19:46:16 -06:00
..