[INFO] cloning repository https://github.com/siewong007/ai-trading-platform
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/siewong007/ai-trading-platform" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsiewong007%2Fai-trading-platform", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsiewong007%2Fai-trading-platform'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 37707d0b894f2ec435dd22e523a82989b27aed2d
[INFO] testing siewong007/ai-trading-platform against 1.99.0-beta.8 for beta-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsiewong007%2Fai-trading-platform" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/siewong007/ai-trading-platform
[INFO] finished tweaking git repo https://github.com/siewong007/ai-trading-platform
[INFO] tweaked toml for git repo https://github.com/siewong007/ai-trading-platform written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/siewong007/ai-trading-platform on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/siewong007/ai-trading-platform already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded etcetera v0.11.0
[INFO] [stderr]   Downloaded hashlink v0.11.1
[INFO] [stderr]   Downloaded whoami v2.1.3
[INFO] [stderr]   Downloaded sqlx-macros v0.9.0
[INFO] [stderr]   Downloaded toml v1.1.4+spec-1.1.0
[INFO] [stderr]   Downloaded sqlx-macros-core v0.9.0
[INFO] [stderr]   Downloaded aws-lc-rs v1.18.0
[INFO] [stderr]   Downloaded flume v0.12.0
[INFO] [stderr]   Downloaded sqlx-mysql v0.9.0
[INFO] [stderr]   Downloaded cc v1.4.4
[INFO] [stderr]   Downloaded sqlx-sqlite v0.9.0
[INFO] [stderr]   Downloaded sqlx-core v0.9.0
[INFO] [stderr]   Downloaded h2 v0.4.18
[INFO] [stderr]   Downloaded sqlx-postgres v0.9.0
[INFO] [stderr]   Downloaded hkdf v0.13.0
[INFO] [stderr]   Downloaded sqlx v0.9.0
[INFO] [stderr]   Downloaded libsqlite3-sys v0.37.0
[INFO] [stderr]   Downloaded aws-lc-sys v0.44.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 8b05e882c3e2229fb5cf8a96e20960526357ca1e8f9cfd46316d5aeeaac4c6c8
[INFO] running `Command { std: "docker" "start" "8b05e882c3e2229fb5cf8a96e20960526357ca1e8f9cfd46316d5aeeaac4c6c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8b05e882c3e2229fb5cf8a96e20960526357ca1e8f9cfd46316d5aeeaac4c6c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8b05e882c3e2229fb5cf8a96e20960526357ca1e8f9cfd46316d5aeeaac4c6c8" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8b05e882c3e2229fb5cf8a96e20960526357ca1e8f9cfd46316d5aeeaac4c6c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8b05e882c3e2229fb5cf8a96e20960526357ca1e8f9cfd46316d5aeeaac4c6c8" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling jobserver v0.1.35
[INFO] [stderr]    Compiling find-msvc-tools v0.1.11
[INFO] [stderr]    Compiling pkg-config v0.3.34
[INFO] [stderr]    Compiling generic-array v0.14.9
[INFO] [stderr]    Compiling futures-sink v0.3.34
[INFO] [stderr]    Compiling futures-io v0.3.34
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling log v0.4.34
[INFO] [stderr]    Compiling rustls-pki-types v1.15.1
[INFO] [stderr]    Compiling aws-lc-rs v1.18.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling rustls v0.23.43
[INFO] [stderr]    Compiling event-listener v5.4.2
[INFO] [stderr]    Compiling hashlink v0.11.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling cc v1.4.4
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling futures-channel v0.3.34
[INFO] [stderr]    Compiling http-body v1.1.0
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling spin v0.9.9
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling flume v0.12.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling cmov v0.5.4
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling ipnet v2.12.1
[INFO] [stderr]    Compiling crossbeam-queue v0.3.13
[INFO] [stderr]    Compiling rustls-native-certs v0.8.4
[INFO] [stderr]    Compiling ctutils v0.4.2
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling webpki-roots v1.0.9
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling http-body-util v0.1.5
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling digest v0.11.3
[INFO] [stderr]    Compiling sha1 v0.10.7
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling hmac v0.13.0
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling libsqlite3-sys v0.37.0
[INFO] [stderr]    Compiling aws-lc-sys v0.44.0
[INFO] [stderr]    Compiling futures-executor v0.3.34
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling toml v1.1.4+spec-1.1.0
[INFO] [stderr]    Compiling tokio-stream v0.1.19
[INFO] [stderr]    Compiling zerovec-derive v0.11.6
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling clap_derive v4.6.4
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling zerovec v0.11.8
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling icu_collections v2.3.0
[INFO] [stderr]    Compiling icu_locale_core v2.3.0
[INFO] [stderr]    Compiling clap v4.6.6
[INFO] [stderr]    Compiling icu_provider v2.3.1
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling icu_properties v2.3.0
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling either v1.18.0
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling sqlx-core v0.9.0
[INFO] [stderr]    Compiling hyper v1.11.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling sqlx-sqlite v0.9.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.15
[INFO] [stderr]    Compiling sqlx-macros-core v0.9.0
[INFO] [stderr]    Compiling sqlx-macros v0.9.0
[INFO] [stderr]    Compiling sqlx v0.9.0
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.0
[INFO] [stderr]    Compiling tungstenite v0.28.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.13.4
[INFO] [stderr]    Compiling tokio-tungstenite v0.28.0
[INFO] [stderr]    Compiling trading_platform v0.2.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `sigs`
[INFO] [stdout]    --> src/main.rs:851:17
[INFO] [stdout]     |
[INFO] [stdout] 851 |             let sigs = crate::strategy::generate_signals(&candles, &job.strat);
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_sigs`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 04s
[INFO] running `Command { std: "docker" "inspect" "8b05e882c3e2229fb5cf8a96e20960526357ca1e8f9cfd46316d5aeeaac4c6c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8b05e882c3e2229fb5cf8a96e20960526357ca1e8f9cfd46316d5aeeaac4c6c8" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-sink v0.3.34
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling flume v0.12.0
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling futures-channel v0.3.34
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling h2 v0.4.18
[INFO] [stderr]    Compiling futures-executor v0.3.34
[INFO] [stderr]    Compiling sqlx-core v0.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-tungstenite v0.28.0
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling futures v0.3.34
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper v1.11.0
[INFO] [stderr]    Compiling sqlx-sqlite v0.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling sqlx-macros-core v0.9.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.13.4
[INFO] [stderr]    Compiling sqlx-macros v0.9.0
[INFO] [stderr]    Compiling sqlx v0.9.0
[INFO] [stderr]    Compiling trading_platform v0.2.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/strategy.rs:930:18
[INFO] [stdout]     |
[INFO] [stdout] 930 |     fn candle_ts(i: usize, ts: i64, open: f64, close: f64) -> Candle {
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sigs`
[INFO] [stdout]    --> src/main.rs:851:17
[INFO] [stdout]     |
[INFO] [stdout] 851 |             let sigs = crate::strategy::generate_signals(&candles, &job.strat);
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_sigs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 17.94s
[INFO] running `Command { std: "docker" "inspect" "8b05e882c3e2229fb5cf8a96e20960526357ca1e8f9cfd46316d5aeeaac4c6c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8b05e882c3e2229fb5cf8a96e20960526357ca1e8f9cfd46316d5aeeaac4c6c8" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/strategy.rs:930:18
[INFO] [stderr]     |
[INFO] [stderr] 930 |     fn candle_ts(i: usize, ts: i64, open: f64, close: f64) -> Candle {
[INFO] [stderr]     |                  ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sigs`
[INFO] [stderr]    --> src/main.rs:851:17
[INFO] [stderr]     |
[INFO] [stderr] 851 |             let sigs = crate::strategy::generate_signals(&candles, &job.strat);
[INFO] [stderr]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_sigs`
[INFO] [stderr] 
[INFO] [stderr] warning: `trading_platform` (bin "trading_platform" test) generated 2 warnings (run `cargo fix --bin "trading_platform" -p trading_platform --tests` to apply 2 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.31s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/trading_platform-fc52c8742d3668c7)
[INFO] [stdout] 
[INFO] [stdout] running 148 tests
[INFO] [stdout] test backtest::tests::stop_hit_when_market_crashes_after_entry ... ok
[INFO] [stdout] test backtest::tests::sizing_respects_fixed_risk_then_caps ... ok
[INFO] [stdout] test backtest::tests::attribution_tracked_in_r_multiples ... ok
[INFO] [stdout] test bus::tests::fan_out_reaches_exact_and_wildcard_subscribers ... ok
[INFO] [stdout] test cache::tests::out_of_order_upserts_stay_sorted ... ok
[INFO] [stdout] test bus::tests::full_channel_drops_new_message_and_keeps_oldest ... ok
[INFO] [stdout] test bus::tests::delivers_to_exact_topic_subscriber ... ok
[INFO] [stdout] test backtest::tests::config_file_loads_and_matches_spec_constants ... ok
[INFO] [stdout] test bus::tests::closed_receiver_is_pruned_and_count_shrinks ... ok
[INFO] [stdout] test exchange::tests::live_binance_reachable_and_parses ... ignored
[INFO] [stdout] test backtest::tests::full_run_books_hand_computed_exact_literals ... ok
[INFO] [stdout] test cache::tests::cap_evicts_oldest_at_5000 ... ok
[INFO] [stdout] test bus::tests::publish_without_subscribers_is_silent_drop ... ok
[INFO] [stdout] test cache::tests::duplicate_open_time_replaced_not_appended ... ok
[INFO] [stdout] test backtest::tests::min_notional_skips_dust_signal_but_control_records_trade ... ok
[INFO] [stdout] test bus::tests::delivers_through_prefix_wildcard_only ... ok
[INFO] [stdout] test db::tests::band_columns_round_trip ... ok
[INFO] [stdout] test db::tests::kline_roundtrip_preserves_order ... ok
[INFO] [stdout] test db::tests::config_state_roundtrip ... ok
[INFO] [stdout] test db::tests::budget_charged_once_per_distinct_hash ... ok
[INFO] [stdout] test db::tests::klines_are_isolated_per_interval ... ok
[INFO] [stdout] test db::tests::load_trades_returns_rows_in_insertion_order_with_optional_fields ... ok
[INFO] [stdout] test cache::tests::hydrate_returns_row_count_and_matches_db_order ... ok
[INFO] [stdout] test db::tests::rerunning_a_known_hash_is_free_and_upserts ... ok
[INFO] [stdout] test db::tests::file_db_creates_and_roundtrips ... ok
[INFO] [stdout] test exchange::tests::rate_limit_backoff_honors_retry_after_header ... ok
[INFO] [stdout] test executor::tests::oco_gone_and_exit_fills_register_stopout_and_clear_pos ... ok
[INFO] [stdout] test exchange::tests::paginates_until_short_page ... ok
[INFO] [stdout] test executor::tests::flat_series_yields_no_signal_and_no_orders ... ok
[INFO] [stdout] test indicators::tests::atr_constant_range ... ok
[INFO] [stdout] test indicators::tests::atr_wilder_smoothing_hand_computed_distinct_ranges ... ok
[INFO] [stdout] test executor::tests::live_oco_reports_position_live ... ok
[INFO] [stdout] test indicators::tests::rolling_stats_constant_series_zero_sigma ... ok
[INFO] [stdout] test indicators::tests::ema_matches_hand_computed ... ok
[INFO] [stdout] test indicators::tests::rolling_stats_short_input_all_none ... ok
[INFO] [stdout] test indicators::tests::rolling_stats_hand_computed ... ok
[INFO] [stdout] test indicators::tests::rsi_all_gains_is_100 ... ok
[INFO] [stdout] test indicators::tests::short_input_yields_none ... ok
[INFO] [stdout] test metrics::tests::drawdown_known_case ... ok
[INFO] [stdout] test indicators::tests::rsi_hand_computed_case ... ok
[INFO] [stdout] test metrics::tests::expected_max_normal_known_shapes ... ok
[INFO] [stdout] test metrics::tests::gate_fails_on_low_pf_and_deep_drawdown ... ok
[INFO] [stdout] test metrics::tests::gate_fails_when_zero_pairs_qualify ... ok
[INFO] [stdout] test metrics::tests::gate_fails_without_enough_trades_or_pairs ... ok
[INFO] [stdout] test metrics::tests::gate_counts_only_thick_pairs_as_profitable ... ok
[INFO] [stdout] test metrics::tests::luck_adjusted_uses_dispersion_of_live_pfs ... ok
[INFO] [stdout] test metrics::tests::no_losses_gives_infinite_pf_only_with_profit ... ok
[INFO] [stdout] test metrics::tests::metrics_basic_counts ... ok
[INFO] [stdout] test exchange::tests::retries_on_rate_limit ... ok
[INFO] [stdout] test risk::tests::day_state_roundtrips_through_config_state ... ok
[INFO] [stdout] test risk::tests::degenerate_plan_is_skipped ... ok
[INFO] [stdout] test pipeline::tests::heal_gaps_backfills_from_db_when_behind ... ok
[INFO] [stdout] test risk::tests::flatten_required_at_3_percent_intraday_loss ... ok
[INFO] [stdout] test risk::tests::halted_day_blocks_with_stored_reason_even_if_equity_recovered ... ok
[INFO] [stdout] test risk::tests::halts_after_two_registered_consecutive_stopouts ... ok
[INFO] [stdout] test risk::tests::halts_at_beyond_2_percent_day_loss ... ok
[INFO] [stdout] test risk::tests::ok_at_1_95_percent_day_loss ... ok
[INFO] [stdout] test risk::tests::open_position_blocks_new_entry ... ok
[INFO] [stdout] test risk::tests::qty_floors_to_exchange_step ... ok
[INFO] [stdout] test risk::tests::places_at_exactly_the_notional_cap ... ok
[INFO] [stdout] test risk::tests::roll_day_if_new_resets_counters_and_clears_daily_halt ... ok
[INFO] [stdout] test risk::tests::roll_day_keeps_same_day_untouched_but_preserves_flatten_halt ... ok
[INFO] [stdout] test risk::tests::register_result_tracks_consecutive_stopouts_and_halts_at_two ... ok
[INFO] [stdout] test risk::tests::shrinks_qty_when_notional_would_exceed_cap ... ok
[INFO] [stdout] test risk::tests::unregistered_last_stopout_counts_toward_daily_halt ... ok
[INFO] [stdout] test risk::tests::skips_below_min_notional_on_wide_stop ... ok
[INFO] [stdout] test executor::tests::dry_run_never_places_recovery_oco ... ok
[INFO] [stdout] test signed::tests::fmt_price_no_exponent_trailing_zeros_trimmed ... ok
[INFO] [stdout] test pipeline::tests::published_candles_land_in_cache ... ok
[INFO] [stdout] test signed::tests::from_env_reads_vars_and_errors_name_only_the_missing_var ... ok
[INFO] [stdout] test executor::tests::reconcile_cancels_orphan_entry_without_replacing_it ... ok
[INFO] [stdout] test executor::tests::reconcile_keeps_fresh_untracked_entry_for_its_own_cycle ... ok
[INFO] [stdout] test executor::tests::filled_entry_places_oco_with_exact_legs ... ok
[INFO] [stdout] test executor::tests::flatten_with_nothing_open_is_a_clean_noop ... ok
[INFO] [stdout] test executor::tests::flatten_cancels_confirms_then_market_sells ... ok
[INFO] [stdout] test executor::tests::stale_data_refuses_without_any_order_calls ... ok
[INFO] [stdout] test executor::tests::reconcile_cancels_partial_orphan_and_sells_acquired_base ... ok
[INFO] [stdout] test executor::tests::reconcile_preserves_tracked_fresh_pending_entry ... ok
[INFO] [stdout] test executor::tests::reconcile_places_oco_for_filled_unprotected_entry ... ok
[INFO] [stdout] test executor::tests::fresh_signal_places_limit_with_deterministic_client_id ... ok
[INFO] [stdout] test executor::tests::unfilled_entry_reports_awaiting_fill ... ok
[INFO] [stdout] test signed::tests::rfc_4231_test_case_2_vector ... ok
[INFO] [stdout] test signed::tests::round_qty_to_step_floors_to_step_eight_decimals_safe ... ok
[INFO] [stdout] test signed::tests::get_signs_params_in_given_order_signature_last_api_key_header ... ok
[INFO] [stdout] test signed::tests::tif_display_maps_to_binance_wire_values ... ok
[INFO] [stdout] test strategy::tests::config_hash_changes_when_signal_or_sizing_param_changes ... ok
[INFO] [stdout] test strategy::tests::config_hash_stable_across_identical_configs ... ok
[INFO] [stdout] test strategy::tests::config_parses_from_toml ... ok
[INFO] [stdout] test strategy::tests::cost_overrides_change_hash_but_defaults_do_not ... ok
[INFO] [stdout] test signed::tests::post_and_delete_use_their_methods_with_signed_query ... ok
[INFO] [stdout] test strategy::tests::downtrend_never_signals ... ok
[INFO] [stdout] test strategy::tests::donchian_fires_on_breakout_vetoes_spike ... ok
[INFO] [stdout] test strategy::tests::gen2_registry_grids_are_frozen ... ok
[INFO] [stdout] test strategy::tests::hash_changes_with_band_params_and_defaults_are_stable ... ok
[INFO] [stdout] test strategy::tests::hour_in_window_inclusive_exclusive_and_wrap ... ok
[INFO] [stdout] test strategy::tests::legacy_grid_and_fallback_are_unchanged ... ok
[INFO] [stdout] test strategy::tests::plan_math_is_exact ... ok
[INFO] [stdout] test strategy::tests::option_median_even_length_averages_middle ... ok
[INFO] [stdout] test signed::tests::market_sell_posts_market_params_and_parses_fill ... ok
[INFO] [stdout] test strategy::tests::session_gating_filters_by_candle_hour ... ok
[INFO] [stdout] test signed::tests::get_order_queries_by_orig_client_order_id_and_parses ... ok
[INFO] [stdout] test strategy::tests::uptrend_with_pullback_yields_signal ... ok
[INFO] [stdout] test strategy::tests::zband_config_parses_with_new_fields ... ok
[INFO] [stdout] test strategy::tests::zband_fires_on_gradual_dip_via_dispatch ... ok
[INFO] [stdout] test strategy::tests::zband_quiet_chop_never_fires ... ok
[INFO] [stdout] test strategy::tests::zband_registry_grid_is_frozen_exactly ... ok
[INFO] [stdout] test strategy::tests::zband_warmup_is_none ... ok
[INFO] [stdout] test tests::alert_key_collapses_cycle_numbers_but_keeps_error_identity ... ok
[INFO] [stdout] test tests::base_selection_defaults_to_testnet_and_rejects_conflicting_flags ... ok
[INFO] [stdout] test tests::apply_param_covers_both_families ... ok
[INFO] [stdout] test tests::gate_banner_shows_no_go_on_fail_and_no_gate_result_when_empty ... ok
[INFO] [stdout] test tests::fold_bounds_partitions_evenly_and_covers_span ... ok
[INFO] [stdout] test tests::flatten_subcommand_parses_flags ... ok
[INFO] [stdout] test tests::live_confirmation_requires_the_literal_word_go ... ok
[INFO] [stdout] test strategy::tests::zband_vetoes_single_crash_bar ... ok
[INFO] [stdout] test tests::new_study_unlock_requires_the_literal_phrase ... ok
[INFO] [stdout] test tests::live_trade_permitted_only_on_stored_pass ... ok
[INFO] [stdout] test tests::plateau_verdict_shapes ... ok
[INFO] [stdout] test tests::refuse_live_trade_errors_on_fail_and_missing_without_needing_go ... ok
[INFO] [stdout] test tests::search_subcommand_parses_unlock_flag ... ok
[INFO] [stdout] test tests::refuse_live_trade_ok_on_pass_so_go_prompt_can_run ... ok
[INFO] [stdout] test tests::trade_subcommand_parses_all_flags_with_testnet_default ... ok
[INFO] [stdout] test tests::trades_csv_writes_header_and_blank_exit_cells_for_open_trade ... ok
[INFO] [stdout] test tests::variant_budget_unlock_allows_new_hash_under_cap ... ok
[INFO] [stdout] test tests::variant_budget_unlock_still_refuses_21st_distinct_hash ... ok
[INFO] [stdout] test tests::xorshift_deterministic_and_sample_distinct_exact ... ok
[INFO] [stdout] test types::tests::parses_binance_kline_array ... ok
[INFO] [stdout] test types::tests::rejects_garbage ... ok
[INFO] [stdout] test types::tests::rejects_non_numeric_prices_in_valid_json_shape ... ok
[INFO] [stdout] test tests::variant_budget_lock_allows_known_hash_without_unlock ... ok
[INFO] [stdout] test ws::tests::live_feed_publishes_one_closed_candle_to_bus ... ignored, live network test — manual run only; waits up to ~2 min for one closed 1m candle
[INFO] [stdout] test tests::variant_budget_lock_refuses_new_hash_without_unlock ... ok
[INFO] [stdout] test ws::tests::garbage_frames_never_panic_and_bump_counter ... ok
[INFO] [stdout] test ws::tests::open_candle_is_ignored ... ok
[INFO] [stdout] test ws::tests::parses_closed_combined_frame_into_candle_and_symbol ... ok
[INFO] [stdout] test executor::tests::protection_missing_re_arms_oco_for_remaining_size ... ok
[INFO] [stdout] test signed::tests::my_trades_sends_limit_and_parses_rows ... ok
[INFO] [stdout] test tests::latest_verdict_is_none_when_table_empty_then_reflects_newest_run ... ok
[INFO] [stdout] test signed::tests::place_limit_buy_posts_params_and_client_id_passthrough ... ok
[INFO] [stdout] test signed::tests::balances_parses_plain_and_testnet_wallet_description_shapes ... ok
[INFO] [stdout] test signed::tests::place_limit_post_only_emits_limit_maker_without_time_in_force ... ok
[INFO] [stdout] test signed::tests::symbol_filters_is_public_no_api_key_header_errors_on_unknown_symbol ... ok
[INFO] [stdout] test signed::tests::place_limit_posts_ioc_and_fok_time_in_force ... ok
[INFO] [stdout] test signed::tests::open_orders_parses_array_incl_zero_fill_new_order_and_empty ... ok
[INFO] [stdout] test signed::tests::cancel_all_orders_ok_on_empty_and_on_binance_empty_list_error ... ok
[INFO] [stdout] test signed::tests::non_2xx_surfaces_binance_code_and_msg ... ok
[INFO] [stdout] test signed::tests::symbol_filters_prefers_notional_falls_back_to_legacy_min_notional ... ok
[INFO] [stdout] test signed::tests::place_oco_sell_sends_exact_legs_and_returns_list_id ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 146 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.63s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "8b05e882c3e2229fb5cf8a96e20960526357ca1e8f9cfd46316d5aeeaac4c6c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8b05e882c3e2229fb5cf8a96e20960526357ca1e8f9cfd46316d5aeeaac4c6c8", kill_on_drop: false }`
[INFO] [stdout] 8b05e882c3e2229fb5cf8a96e20960526357ca1e8f9cfd46316d5aeeaac4c6c8
