chore(nodes): run the master+node scopes in parallel and document both layers

Each enrollment scope owns its panels, ports and temp dirs, so the two run
side by side; the only shared state, the process-global database handle the
harness borrows for setup and for simulating a lost inbound, is now behind a
mutex. On Linux the suite drops from 188s to 95s.

CLAUDE.md now names the fast contract layer (node_contract_test.go, in
make test-go) next to the multi-tick nodee2e layer.
This commit is contained in:
MHSanaei
2026-10-05 13:30:18 +02:00
parent f843fe5570
commit dae91276aa
4 changed files with 21 additions and 82 deletions
+4 -2
View File
@@ -195,8 +195,10 @@ That is the *fast* gate, not all of CI. `ci.yml` also runs `make race`,
`make vulncheck`, a live-Postgres job (where a SKIP counts as a failure),
`make node-e2e` (a real master and node panel, `internal/nodee2e/`) and a
30s fuzz smoke on `FuzzParseLink`/`FuzzDecodeCertPin` — run those locally when
you touch DB/dialect, node sync or parser code. A new node-sync behaviour gets
a cell in `internal/nodee2e/node_sync_test.go`.
you touch DB/dialect, node sync or parser code. Node sync has two layers: every
`runtime.Remote` call gets a cell in `internal/web/node_contract_test.go` (fast,
in `make test-go`; a method without one fails it), and a multi-tick flow (cron,
adopt, node down) gets one in `internal/nodee2e/node_sync_test.go`.
Common targets: `make gen` (regenerate Zod/OpenAPI), `make lint` (Go + frontend),
`make test` (Go `-shuffle=on` + frontend), `make race`, `make build`. See `Makefile`.