diff --git a/.gitignore b/.gitignore index 72043ac..57af644 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ # Artifacts **/dist/ +log/ apps/*/log_*.json # Local runtime config files diff --git a/README.md b/README.md index 5aa63cd..b58a8de 100644 --- a/README.md +++ b/README.md @@ -105,20 +105,32 @@ pnpm --filter @ickb/supervisor build pnpm live:supervisor ``` -To rebuild the standard ignored testnet configs from environment variables without printing private keys, set `ICKB_TESTNET_BOT_PRIVATE_KEY` and `ICKB_TESTNET_TESTER_PRIVATE_KEY`, optionally set `ICKB_TESTNET_RPC_URL`, `ICKB_TESTNET_SLEEP_INTERVAL_SECONDS`, `ICKB_TESTNET_MAX_ITERATIONS`, and `ICKB_TESTNET_MAX_RETRYABLE_ATTEMPTS`, then run: +By default the supervisor uses ignored `config/bot-testnet.json` and `config/tester-testnet.json`, writes standalone artifacts under ignored `logs/live-supervisor//` paths, and runs deterministic bounded bot/tester commands only. It does not patch, verify, rebuild, relaunch, or invoke an LLM; external loops and operators consume `summary.json` between runs. + +`pnpm live:preflight -- --config config/bot-testnet.json --role bot` prints public balance evidence for funding checks. Check `balances.CKB.available` together with `balances.CKB.reserve`, `balances.CKB.spendable`, and `capital.minimumCkbCapital`; raw available CKB is not the same as bot-spendable CKB. + +For repeated bounded invocations, keep loop-owned options before `--` and supervisor options after it: ```bash -pnpm live:config-from-env +pnpm live:supervisor:loop --max-runs 1 -- --scenario standard-cycle --max-cycles 1 ``` -By default the supervisor uses ignored `config/bot-testnet.json` and `config/tester-testnet.json`, writes artifacts under ignored `logs/live-supervisor//` paths, and runs deterministic bounded bot/tester commands only. It does not patch, verify, rebuild, relaunch, or invoke an LLM; external loops and operators consume `summary.json` between runs. +Use loop-owned `--child-timeout-seconds` to bound the outer supervisor child process when running long watches; keep it long enough for the whole supervisor invocation, including actor preflights and actor commands, so the supervisor remains alive to enforce its own `--command-timeout-seconds` process-group cleanup. -For repeated bounded invocations, keep loop-owned options before `--` and supervisor options after it: +For continuous live matching, use the dynamic external loop. It reads only tester preflight balance summaries, chooses a fundable tester stimulus (`all-ckb-limit-order` when plain CKB can preserve reserve plus overhead, otherwise `ickb-to-ckb-limit-order` with the smaller live fee when iCKB is available), then runs bounded `scripts/ickb-supervisor-loop.mjs` chunks: ```bash -pnpm live:supervisor:loop -- --scenario standard-cycle --max-cycles 1 +pnpm live:supervisor:dynamic-loop ``` +Dynamic validation sessions default to ignored `log/validation/dynamic-