- Fix grep -qE calls to handle variables starting with '-' (add -- separator)
- Remove local declarations at top level by wrapping main body in main() function
- Replace bounded-worker scheduler with simpler temp file + wait -n pattern
- Fix per-node fan-out to capture function output instead of re-calling
- Add stub-curl integration tests that catch all three original issues
- Add fixture compose files for avalanche, op-node+beacon, geth testing
- Update test path-blacklist.txt to include entry starting with -
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Implements node-facts.sh that emits JSON documents for monitoring and inventory:
- Reads COMPOSE_FILE from .env and iterates only those compose files
- Fails fast with JSON error when .env missing or COMPOSE_FILE empty (exit 2)
- Uses --max-time for all curl calls (5s general, 10s for peers)
- Bounded parallel worker count for node processing
- Supports avalanchego, op-node/kona, beacon REST, geth-family, besu, reth/op-reth
- Includes fixture-only test-node-facts.sh with schema validation
- Adds README entry for the new script
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>