[INFO] cloning repository https://github.com/KSonny4/trader_evaluator [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/KSonny4/trader_evaluator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKSonny4%2Ftrader_evaluator", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKSonny4%2Ftrader_evaluator'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 52e671278543a9f35e3b25790fe283dbc2910daa [INFO] testing KSonny4/trader_evaluator against master#562dee4820c458d823175268e41601d4c060588a for pr-154210 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKSonny4%2Ftrader_evaluator" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/KSonny4/trader_evaluator [INFO] finished tweaking git repo https://github.com/KSonny4/trader_evaluator [INFO] tweaked toml for git repo https://github.com/KSonny4/trader_evaluator written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/KSonny4/trader_evaluator on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/KSonny4/trader_evaluator 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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded sketches-ddsketch v0.3.0 [INFO] [stderr] Downloaded tracing-serde v0.2.0 [INFO] [stderr] Downloaded http-range-header v0.4.2 [INFO] [stderr] Downloaded metrics-exporter-prometheus v0.16.2 [INFO] [stderr] Downloaded askama v0.15.4 [INFO] [stderr] Downloaded basic-toml v0.1.10 [INFO] [stderr] Downloaded uuid v1.20.0 [INFO] [stderr] Downloaded rand_xoshiro v0.7.0 [INFO] [stderr] Downloaded rusqlite v0.37.0 [INFO] [stderr] Downloaded askama_derive v0.15.4 [INFO] [stderr] Downloaded raw-cpuid v11.6.0 [INFO] [stderr] Downloaded opentelemetry-proto v0.27.0 [INFO] [stderr] Downloaded rust_decimal v1.40.0 [INFO] [stderr] Downloaded tracing-opentelemetry v0.28.0 [INFO] [stderr] Downloaded askama_parser v0.15.4 [INFO] [stderr] Downloaded rkyv v0.7.46 [INFO] [stderr] Downloaded aws-lc-rs v1.15.4 [INFO] [stderr] Downloaded opentelemetry_sdk v0.27.1 [INFO] [stderr] Downloaded axum v0.8.8 [INFO] [stderr] Downloaded metrics-util v0.19.1 [INFO] [stderr] Downloaded askama_macros v0.15.4 [INFO] [stderr] Downloaded opentelemetry-http v0.27.0 [INFO] [stderr] Downloaded opentelemetry v0.27.1 [INFO] [stderr] Downloaded metrics v0.24.3 [INFO] [stderr] Downloaded quanta v0.12.6 [INFO] [stderr] Downloaded axum-core v0.5.6 [INFO] [stderr] Downloaded opentelemetry-otlp v0.27.0 [INFO] [stderr] Downloaded rkyv_derive v0.7.46 [INFO] [stderr] Downloaded tokio-rusqlite v0.7.0 [INFO] [stderr] Downloaded libsqlite3-sys v0.35.0 [INFO] [stderr] Downloaded aws-lc-sys v0.37.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e8fe2b6fe7613682af9c25595722d639498492a92a862add02b332efbd78e8a7 [INFO] running `Command { std: "docker" "start" "-a" "e8fe2b6fe7613682af9c25595722d639498492a92a862add02b332efbd78e8a7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e8fe2b6fe7613682af9c25595722d639498492a92a862add02b332efbd78e8a7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e8fe2b6fe7613682af9c25595722d639498492a92a862add02b332efbd78e8a7", kill_on_drop: false }` [INFO] [stdout] e8fe2b6fe7613682af9c25595722d639498492a92a862add02b332efbd78e8a7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b74f49e4b57451d34f7ddf0716f76e58db71cfd9f1777178a73dd313df8707b2 [INFO] running `Command { std: "docker" "start" "-a" "b74f49e4b57451d34f7ddf0716f76e58db71cfd9f1777178a73dd313df8707b2", kill_on_drop: false }` [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling dunce v1.0.5 [INFO] [stderr] Compiling fs_extra v1.3.0 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling aws-lc-rs v1.15.4 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling anyhow v1.0.101 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling unicase v2.9.0 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling openssl-probe v0.2.1 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling rustls-native-certs v0.8.3 [INFO] [stderr] Compiling cc v1.2.55 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling http-range-header v0.4.2 [INFO] [stderr] Compiling matchit v0.7.3 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling socket2 v0.5.10 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling hashlink v0.10.0 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling raw-cpuid v11.6.0 [INFO] [stderr] Compiling rustc-hash v2.1.1 [INFO] [stderr] Compiling rust_decimal v1.40.0 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling rand_xoshiro v0.7.0 [INFO] [stderr] Compiling sketches-ddsketch v0.3.0 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling cmake v0.1.57 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling libsqlite3-sys v0.35.0 [INFO] [stderr] Compiling aws-lc-sys v0.37.0 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling quanta v0.12.6 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling basic-toml v0.1.10 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling metrics v0.24.3 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling prost-derive v0.13.5 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling pin-project v1.1.10 [INFO] [stderr] Compiling opentelemetry v0.27.1 [INFO] [stderr] Compiling axum-core v0.5.6 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling metrics-util v0.19.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling prost v0.13.5 [INFO] [stderr] Compiling askama_parser v0.15.4 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling axum-core v0.4.5 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling tracing-serde v0.2.0 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling chrono v0.4.43 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling rusqlite v0.37.0 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling axum v0.7.9 [INFO] [stderr] Compiling opentelemetry_sdk v0.27.1 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling tower v0.4.13 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling tokio-rusqlite v0.7.0 [INFO] [stderr] Compiling askama_derive v0.15.4 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling tracing-opentelemetry v0.28.0 [INFO] [stderr] Compiling askama_macros v0.15.4 [INFO] [stderr] Compiling askama v0.15.4 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling hyper-timeout v0.5.2 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling metrics-exporter-prometheus v0.16.2 [INFO] [stderr] Compiling tonic v0.12.3 [INFO] [stderr] Compiling opentelemetry-http v0.27.0 [INFO] [stderr] Compiling opentelemetry-proto v0.27.0 [INFO] [stderr] Compiling opentelemetry-otlp v0.27.0 [INFO] [stderr] Compiling common v0.1.0 (/opt/rustwide/workdir/crates/common) [INFO] [stderr] Compiling evaluator v0.1.0 (/opt/rustwide/workdir/crates/evaluator) [INFO] [stderr] Compiling web v0.1.0 (/opt/rustwide/workdir/crates/web) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 17s [INFO] running `Command { std: "docker" "inspect" "b74f49e4b57451d34f7ddf0716f76e58db71cfd9f1777178a73dd313df8707b2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b74f49e4b57451d34f7ddf0716f76e58db71cfd9f1777178a73dd313df8707b2", kill_on_drop: false }` [INFO] [stdout] b74f49e4b57451d34f7ddf0716f76e58db71cfd9f1777178a73dd313df8707b2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 36ab782add6e199118e32796f9c221b5ce99a272c9ef091c66835e60fae3e77f [INFO] running `Command { std: "docker" "start" "-a" "36ab782add6e199118e32796f9c221b5ce99a272c9ef091c66835e60fae3e77f", kill_on_drop: false }` [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling raw-cpuid v11.6.0 [INFO] [stderr] Compiling rusqlite v0.37.0 [INFO] [stderr] Compiling tokio-rusqlite v0.7.0 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling quanta v0.12.6 [INFO] [stderr] Compiling metrics-util v0.19.1 [INFO] [stderr] Compiling tempfile v3.24.0 [INFO] [stderr] Compiling metrics-exporter-prometheus v0.16.2 [INFO] [stderr] Compiling opentelemetry-http v0.27.0 [INFO] [stderr] Compiling opentelemetry-otlp v0.27.0 [INFO] [stderr] Compiling common v0.1.0 (/opt/rustwide/workdir/crates/common) [INFO] [stderr] Compiling web v0.1.0 (/opt/rustwide/workdir/crates/web) [INFO] [stderr] Compiling evaluator v0.1.0 (/opt/rustwide/workdir/crates/evaluator) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 35.51s [INFO] running `Command { std: "docker" "inspect" "36ab782add6e199118e32796f9c221b5ce99a272c9ef091c66835e60fae3e77f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "36ab782add6e199118e32796f9c221b5ce99a272c9ef091c66835e60fae3e77f", kill_on_drop: false }` [INFO] [stdout] 36ab782add6e199118e32796f9c221b5ce99a272c9ef091c66835e60fae3e77f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 9421991eba8c6a7c300b934799d05e440fcf098db5d6594f57460df6ba83133c [INFO] running `Command { std: "docker" "start" "-a" "9421991eba8c6a7c300b934799d05e440fcf098db5d6594f57460df6ba83133c", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.37s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/common-b2b516b7ce50ba73) [INFO] [stdout] [INFO] [stdout] running 41 tests [INFO] [stdout] test config::tests::test_web_config_optional ... ok [INFO] [stdout] test config::tests::test_events_config_trigger_flags ... ok [INFO] [stdout] test config::tests::test_personas_parallelization_defaults ... ok [INFO] [stdout] test config::tests::test_web_config_section ... ok [INFO] [stdout] test config::tests::test_wallet_rules_config_loads ... ok [INFO] [stdout] test config::tests::test_anomaly_config_loads ... ok [INFO] [stdout] test config::tests::test_personas_parallelization_config_loads ... ok [INFO] [stdout] test config::tests::test_copy_fidelity_config_loads ... ok [INFO] [stdout] test config::tests::test_persona_config_loads ... ok [INFO] [stdout] test config::tests::test_load_default_config ... ok [INFO] [stdout] test config::tests::test_events_config_loads_with_defaults ... ok [INFO] [stdout] test config::tests::test_risk_v2_config_loads ... ok [INFO] [stdout] test funnel::tests::test_funnel_stage_infos_include_key_numbers ... ok [INFO] [stdout] test polymarket::tests::test_classify_http_400_deep_offset_as_pagination_offset_cap ... ok [INFO] [stdout] test polymarket::tests::test_classify_http_429_as_rate_limited ... ok [INFO] [stdout] test polymarket::tests::test_classify_json_decode_as_decode ... ok [INFO] [stdout] test polymarket::tests::test_client_constructs_market_trades_url_without_user ... ok [INFO] [stdout] test db::tests::test_async_db_is_clone_and_send ... ok [INFO] [stdout] test polymarket::tests::test_effective_event_slug_from_events_array ... ok [INFO] [stdout] test db::tests::test_pnl_migration_handles_zero_values ... ok [INFO] [stdout] test polymarket::tests::test_parse_fixture_gamma_markets ... ok [INFO] [stdout] test db::tests::test_pnl_migration_copies_realized_to_cashflow ... ok [INFO] [stdout] test polymarket::tests::test_parse_fixture_trades ... ok [INFO] [stdout] test polymarket::tests::test_parse_holders_response ... ok [INFO] [stdout] test polymarket::tests::test_parse_trades_response ... ok [INFO] [stdout] test db::tests::test_async_db_open_runs_migrations ... ok [INFO] [stdout] test types::tests::test_discovery_source_display ... ok [INFO] [stdout] test db::tests::test_async_db_call_returns_error_on_bad_sql ... ok [INFO] [stdout] test types::tests::test_paper_trade_status ... ok [INFO] [stdout] test db::tests::test_wallet_features_daily_has_ag_columns ... ok [INFO] [stdout] test db::tests::test_copy_fidelity_events_table_exists ... ok [INFO] [stdout] test db::tests::test_migrations_create_all_tables ... ok [INFO] [stdout] test db::tests::test_copy_fidelity_events_schema ... ok [INFO] [stdout] test db::tests::test_wallet_features_daily_has_pnl_columns ... ok [INFO] [stdout] test db::tests::test_pnl_migration_handles_negative_values ... ok [INFO] [stdout] test db::tests::test_follower_slippage_schema ... ok [INFO] [stdout] test db::tests::test_pnl_migration_idempotent ... ok [INFO] [stdout] test db::tests::test_migrations_create_expected_indexes ... ok [INFO] [stdout] test db::tests::test_migrations_idempotent ... ok [INFO] [stdout] test polymarket::tests::test_client_constructs_trades_url ... ok [INFO] [stdout] test polymarket::tests::test_fetch_positions_parses_response ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 41 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.51s [INFO] [stdout] [INFO] [stderr] Running tests/db_query_timing.rs (/opt/rustwide/target/debug/deps/db_query_timing-a576393f0c019b20) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test asyncdb_call_named_tracks_queue_depth ... ok [INFO] [stdout] test asyncdb_call_named_records_latency_and_errors ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s [INFO] [stdout] [INFO] [stderr] Running tests/integration_real_apis.rs (/opt/rustwide/target/debug/deps/integration_real_apis-f719813d332c02d8) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test test_fetch_real_markets_and_save_fixture ... ignored [INFO] [stdout] test test_fetch_real_recent_trades_parses ... ignored [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/observability.rs (/opt/rustwide/target/debug/deps/observability-c537d3fdff32ca8a) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] {"timestamp":"2026-03-30T14:22:39.869493Z","level":"ERROR","fields":{"message":"boom","foo":123},"target":"observability"} [INFO] [stdout] test tracing_error_events_counter_increments_on_error_event ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/evaluator-d90135527b425141) [INFO] [stdout] [INFO] [stdout] running 240 tests [INFO] [stdout] test cli::tests::test_parse_retry_failed_events_default_limit ... ok [INFO] [stdout] test cli::tests::test_parse_args_defaults_to_run ... ok [INFO] [stdout] test cli::tests::test_parse_replay_events_with_from_only ... ok [INFO] [stdout] test cli::tests::test_parse_retry_failed_events_unknown_flag ... ok [INFO] [stdout] test cli::tests::test_parse_replay_events_unknown_flag_returns_error ... ok [INFO] [stdout] test cli::tests::test_parse_wallet_command ... ok [INFO] [stdout] test cli::tests::test_parse_replay_events_missing_from_returns_error ... ok [INFO] [stdout] test cli::tests::test_parse_retry_failed_events_invalid_limit ... ok [INFO] [stdout] test cli::tests::test_parse_replay_events_with_all_flags ... ok [INFO] [stdout] test cli::tests::test_parse_retry_failed_events_with_limit ... ok [INFO] [stdout] test event_bus::tests::test_backpressure_policy_default_is_drop_oldest ... ok [INFO] [stdout] test event_bus::tests::test_pipeline_capacity_returns_configured_capacity ... ok [INFO] [stdout] test event_bus::tests::test_pipeline_len_tracks_queued_events ... ok [INFO] [stdout] test event_bus::tests::test_backpressure_warning_emitted_at_threshold ... ok [INFO] [stdout] test event_bus::tests::test_event_bus_fast_path_coalesces_triggers ... ok [INFO] [stdout] test event_bus::tests::test_backpressure_warning_not_emitted_below_threshold ... ok [INFO] [stdout] test event_bus::tests::test_drop_oldest_policy_overwrites_old_events_when_full ... ok [INFO] [stdout] test event_bus::tests::test_drop_newest_policy_drops_new_event_when_full ... ok [INFO] [stdout] test event_bus::tests::test_event_bus_pipeline_lagged_subscriber_receives_missed_events ... ok [INFO] [stdout] test event_bus::tests::test_with_backpressure_policy_sets_policy ... ok [INFO] [stdout] test event_bus::tests::test_event_bus_supports_multiple_pipeline_subscribers ... ok [INFO] [stdout] test event_bus::tests::test_event_bus_publishes_pipeline_events_to_subscribers ... ok [INFO] [stdout] test event_bus::tests::test_event_bus_publishes_operational_events ... ok [INFO] [stdout] test event_bus::tests::test_with_warn_threshold_pct_sets_threshold ... ok [INFO] [stdout] test event_bus::tests::test_event_bus_fast_path_starts_at_generation_zero ... ok [INFO] [stdout] test event_bus::tests::test_event_bus_returns_error_when_no_subscribers ... ok [INFO] [stdout] test cli::tests::test_query_markets_today_returns_rows ... ok [INFO] [stdout] test events::replay::tests::test_query_event_log_filters_by_type ... ok [INFO] [stdout] test cli::tests::test_query_wallets_returns_rows ... ok [INFO] [stdout] test events::replay::tests::test_query_event_log_returns_empty_for_no_match ... ok [INFO] [stdout] test events::replay::tests::test_query_event_log_single_date_uses_from_as_to ... ok [INFO] [stdout] test events::dlq::tests::test_record_failed_event_increments_retry_count_on_duplicate ... ok [INFO] [stdout] test events::subscribers::tests::test_accumulator_add_wallet_increases_count ... ok [INFO] [stdout] test events::subscribers::tests::test_accumulator_deduplicates_wallets ... ok [INFO] [stdout] test events::dlq::tests::test_get_pending_failed_events_respects_limit ... ok [INFO] [stdout] test events::subscribers::tests::test_accumulator_new_is_empty ... ok [INFO] [stdout] test events::subscribers::tests::test_accumulator_drain_returns_wallets_and_resets ... ok [INFO] [stdout] test events::replay::tests::test_query_event_log_filters_by_date ... ok [INFO] [stdout] test events::dlq::tests::test_record_failed_event_inserts_row ... ok [INFO] [stdout] test events::dlq::tests::test_record_failed_event_marks_exhausted_after_max_retries ... ok [INFO] [stdout] test events::replay::tests::test_query_event_log_ordered_by_id ... ok [INFO] [stdout] test events::dlq::tests::test_failed_events_table_exists ... ok [INFO] [stdout] test events::dlq::tests::test_mark_event_retried ... ok [INFO] [stdout] test events::dlq::tests::test_different_event_types_are_separate ... ok [INFO] [stdout] test events::replay::tests::test_query_event_log_returns_all_events_in_range ... ok [INFO] [stdout] test events::dlq::tests::test_failed_event_counts_grouped_by_status ... ok [INFO] [stdout] test events::subscribers::tests::test_discovery_trigger_markets_scored_triggers_discovery ... ok [INFO] [stdout] test events::subscribers::tests::test_discovery_trigger_multiple_markets_scored_events ... ok [INFO] [stdout] test events::subscribers::tests::test_discovery_trigger_shuts_down_when_receiver_dropped ... ok [INFO] [stdout] test events::subscribers::tests::test_fast_path_subscriber_triggers_on_trades_ingested ... ok [INFO] [stdout] test events::subscribers::tests::test_fast_path_worker_sends_generation_on_tick ... ok [INFO] [stdout] test events::subscribers::tests::test_fast_path_worker_shuts_down_when_receiver_dropped ... ok [INFO] [stdout] test events::tests::test_fast_path_trigger_default ... ok [INFO] [stdout] test events::tests::test_fast_path_trigger_increments ... ok [INFO] [stdout] test events::tests::test_operational_event_backpressure_serialization ... ok [INFO] [stdout] test events::tests::test_operational_event_job_started_serialization ... ok [INFO] [stdout] test events::tests::test_pipeline_event_json_format ... ok [INFO] [stdout] test events::tests::test_pipeline_event_markets_scored_serialization ... ok [INFO] [stdout] test events::tests::test_pipeline_event_trades_ingested_serialization ... ok [INFO] [stdout] test events::tests::test_pipeline_event_wallet_rules_evaluated_serialization ... ok [INFO] [stdout] test events::tests::test_pipeline_event_wallets_classified_serialization ... ok [INFO] [stdout] test events::tests::test_pipeline_event_wallets_discovered_serialization ... ok [INFO] [stdout] test events::replay::tests::test_replay_events_publishes_operational_events ... ok [INFO] [stdout] test flow_metrics::tests::test_followable_personas_single_source_matches_expected ... ok [INFO] [stdout] test events::replay::tests::test_replay_events_mixed_types ... ok [INFO] [stdout] test events::replay::tests::test_replay_events_skips_unknown_event_type ... ok [INFO] [stdout] test events::replay::tests::test_replay_events_publishes_pipeline_events ... ok [INFO] [stdout] test events::replay::tests::test_replay_events_skips_malformed_data ... ok [INFO] [stdout] test flow_metrics::tests::test_compute_flow_counts_returns_expected_counts ... ok [INFO] [stdout] test events::subscribers::tests::test_logging_subscriber_receives_operational_events ... ok [INFO] [stdout] test events::subscribers::tests::test_logging_subscriber_receives_pipeline_events ... ok [INFO] [stdout] test events::subscribers::tests::test_classification_trigger_accumulates_trades_ingested_events ... ok [INFO] [stdout] test events::subscribers::tests::test_classification_trigger_deduplicates_within_batch ... ok [INFO] [stdout] test events::subscribers::tests::test_discovery_trigger_ignores_non_markets_scored_events ... ok [INFO] [stdout] test events::subscribers::tests::test_fast_path_coalescing_multiple_triggers_one_reaction ... ok [INFO] [stdout] test events::subscribers::tests::test_fast_path_subscriber_ignores_non_trades_events ... ok [INFO] [stdout] test ingestion::tests::test_ingest_trades_gracefully_handles_http_400_at_high_offset ... ok [INFO] [stdout] test ingestion::tests::test_ingest_trades_stops_early_when_all_trades_already_known ... ok [INFO] [stdout] test ingestion::tests::test_ingest_trades_for_wallet_dedup_raw_and_pagination ... ok [INFO] [stdout] test events::subscribers::tests::test_classification_trigger_does_not_fire_when_no_events ... ok [INFO] [stdout] test jobs::ingestion_jobs::tests::test_run_trades_ingestion_emits_events_per_wallet ... ok [INFO] [stdout] test jobs::ingestion_jobs::tests::test_run_trades_ingestion_inserts_rows ... ok [INFO] [stdout] test events::subscribers::tests::test_classification_trigger_ignores_non_trades_events ... ok [INFO] [stdout] test jobs::ingestion_jobs::tests::test_run_trades_ingestion_parallel_processes_all_wallets ... ok [INFO] [stdout] test jobs::ingestion_jobs::tests::test_run_trades_ingestion_no_events_when_bus_is_none ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_compute_whale_concentration_from_holders ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_fetch_wallet_chunk_returns_paginated_wallets ... ok [INFO] [stdout] test events::subscribers::tests::test_classification_trigger_batches_across_window ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_compute_trades_24h_from_db ... ok [INFO] [stdout] test jobs::maintenance::tests::test_sqlite_stats_records_gauges ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_run_event_scoring_once_emits_markets_scored_event ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_persona_classification_skips_when_insufficient_trade_history ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_classification_uses_realized_pnl_not_unrealized ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_run_event_scoring_once_works_without_event_bus ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_run_leaderboard_discovery_inserts_wallets ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_run_market_scoring_persists_ranked_rows ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_run_persona_classification_once_works_without_event_bus ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_run_wallet_discovery_emits_wallets_discovered_events ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_run_persona_classification_once_emits_wallets_classified_event ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_run_market_scoring_uses_db_density_and_whale_concentration ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_run_wallet_discovery_inserts_wallets ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_run_wallet_discovery_processes_all_top_events_markets ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_run_wallet_discovery_updates_progress_during_execution ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_run_wallet_discovery_reports_progress_to_job_status ... ok [INFO] [stdout] test market_scoring::tests::test_mscore_computation ... ok [INFO] [stdout] test market_scoring::tests::test_mscore_zero_liquidity_scores_low ... ok [INFO] [stdout] test market_scoring::tests::test_rank_events_selects_top_events ... ok [INFO] [stdout] test metrics::tests::test_event_bus_metrics_described_and_recorded_in_prometheus_output ... ok [INFO] [stdout] test metrics::tests::test_event_trigger_metrics_described_and_recorded_in_prometheus_output ... ok [INFO] [stdout] test metrics::tests::test_flow_gauges_described_and_recorded_in_prometheus_output ... ok [INFO] [stdout] test metrics::tests::test_install_prometheus_starts_http_listener ... ignored [INFO] [stdout] test metrics::tests::test_prometheus_handle_renders_metric_names ... ok [INFO] [stdout] test persona_classification::tests::test_accumulator_boundary_exact_max_frequency ... ok [INFO] [stdout] test persona_classification::tests::test_accumulator_boundary_exact_min_hold ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_run_wallet_discovery_works_without_event_bus ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_run_wallet_rules_once_candidate_to_paper_trading ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_run_wallet_rules_once_emits_wallet_rules_evaluated_event ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_compute_features_parallel_success ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_run_wallet_scoring_inserts_wallet_scores ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_wallet_discovery_skips_when_no_recent_market_scores ... ok [INFO] [stdout] test persona_classification::tests::test_detect_bot_swarm_micro_extreme_frequency_excludes ... ok [INFO] [stdout] test persona_classification::tests::test_detect_consistent_generalist ... ok [INFO] [stdout] test persona_classification::tests::test_detect_execution_master ... ok [INFO] [stdout] test persona_classification::tests::test_detect_informed_specialist ... ok [INFO] [stdout] test persona_classification::tests::test_detect_jackpot_gambler_pnl_concentration_excludes ... ok [INFO] [stdout] test persona_classification::tests::test_detect_liquidity_provider_two_sided_mid_fills_excludes ... ok [INFO] [stdout] test persona_classification::tests::test_detect_news_sniper_bursty_short_horizon_proxy_excludes ... ok [INFO] [stdout] test persona_classification::tests::test_detect_noise_trader ... ok [INFO] [stdout] test persona_classification::tests::test_detect_patient_accumulator ... ok [INFO] [stdout] test persona_classification::tests::test_detect_sniper ... ok [INFO] [stdout] test persona_classification::tests::test_detect_tail_risk_seller ... ok [INFO] [stdout] test persona_classification::tests::test_exclusion_reason_str_all_variants ... ok [INFO] [stdout] test persona_classification::tests::test_exclusion_reason_strings_include_ag_personas ... ok [INFO] [stdout] test persona_classification::tests::test_execution_master_boundary_at_threshold ... ok [INFO] [stdout] test persona_classification::tests::test_generalist_boundary_exact_max_drawdown ... ok [INFO] [stdout] test persona_classification::tests::test_generalist_boundary_exact_min_markets ... ok [INFO] [stdout] test persona_classification::tests::test_known_bot_excluded_when_in_list ... ok [INFO] [stdout] test persona_classification::tests::test_known_bot_not_excluded_when_not_in_list ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_compute_features_parallel_respects_task_count ... ok [INFO] [stdout] test persona_classification::tests::test_noise_trader_boundary_at_thresholds ... ok [INFO] [stdout] test persona_classification::tests::test_not_accumulator_low_roi ... ok [INFO] [stdout] test persona_classification::tests::test_not_accumulator_short_holds ... ok [INFO] [stdout] test persona_classification::tests::test_not_accumulator_too_frequent ... ok [INFO] [stdout] test persona_classification::tests::test_not_execution_master ... ok [INFO] [stdout] test persona_classification::tests::test_not_generalist_high_drawdown ... ok [INFO] [stdout] test persona_classification::tests::test_not_generalist_low_sharpe ... ok [INFO] [stdout] test persona_classification::tests::test_not_generalist_too_few_markets ... ok [INFO] [stdout] test persona_classification::tests::test_not_generalist_win_rate_too_high ... ok [INFO] [stdout] test persona_classification::tests::test_not_generalist_win_rate_too_low ... ok [INFO] [stdout] test persona_classification::tests::test_not_generalist_zero_resolved ... ok [INFO] [stdout] test persona_classification::tests::test_not_noise_low_frequency ... ok [INFO] [stdout] test persona_classification::tests::test_not_noise_significant_roi ... ok [INFO] [stdout] test persona_classification::tests::test_not_sniper_normal_win_rate ... ok [INFO] [stdout] test persona_classification::tests::test_not_sniper_old_wallet ... ok [INFO] [stdout] test persona_classification::tests::test_not_sniper_too_many_trades ... ok [INFO] [stdout] test persona_classification::tests::test_not_specialist_low_concentration ... ok [INFO] [stdout] test persona_classification::tests::test_not_specialist_low_win_rate ... ok [INFO] [stdout] test persona_classification::tests::test_not_specialist_too_many_active_positions ... ok [INFO] [stdout] test persona_classification::tests::test_not_specialist_zero_resolved_trades ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_wallet_discovery_tracks_new_wallets ... ok [INFO] [stdout] test persona_classification::tests::test_not_tail_risk_seller_low_win_rate ... ok [INFO] [stdout] test persona_classification::tests::test_not_tail_risk_seller_small_losses ... ok [INFO] [stdout] test persona_classification::tests::test_persona_as_str ... ok [INFO] [stdout] test persona_classification::tests::test_persona_follow_mode ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_wallet_scoring_skips_when_insufficient_trades ... ok [INFO] [stdout] test persona_classification::tests::test_sniper_boundary_at_thresholds ... ok [INFO] [stdout] test persona_classification::tests::test_specialist_boundary_exact_max_positions ... ok [INFO] [stdout] test persona_classification::tests::test_specialist_boundary_exact_min_concentration ... ok [INFO] [stdout] test persona_classification::tests::test_stage1_boundary_exact_max_inactive ... ok [INFO] [stdout] test persona_classification::tests::test_stage1_boundary_exact_min_age ... ok [INFO] [stdout] test persona_classification::tests::test_stage1_boundary_exact_min_trades ... ok [INFO] [stdout] test persona_classification::tests::test_stage1_inactive ... ok [INFO] [stdout] test persona_classification::tests::test_stage1_passes ... ok [INFO] [stdout] test persona_classification::tests::test_stage1_too_few_trades ... ok [INFO] [stdout] test persona_classification::tests::test_stage1_too_young ... ok [INFO] [stdout] test persona_classification::tests::test_tail_risk_seller_boundary_at_thresholds ... ok [INFO] [stdout] test scheduler::tests::test_scheduler_can_fire_immediately ... ok [INFO] [stdout] test scheduler::tests::test_scheduler_fires_jobs_at_intervals ... ok [INFO] [stdout] test wallet_discovery::tests::test_discover_wallets_for_market_dedup_and_filter ... ok [INFO] [stdout] test jobs::tracker::tests::test_fail_records_error_message ... ok [INFO] [stdout] test jobs::tracker::tests::test_success_completes_job_with_idle_status ... ok [INFO] [stdout] test jobs::tracker::tests::test_update_progress_updates_metadata_without_completing ... ok [INFO] [stdout] test persona_classification::tests::test_classify_wallet_excluded_insufficient_pnl ... ok [INFO] [stdout] test persona_classification::tests::test_classify_wallet_excluded_noise_trader ... ok [INFO] [stdout] test persona_classification::tests::test_classify_wallet_informed_specialist ... ok [INFO] [stdout] test persona_classification::tests::test_classify_wallet_high_extreme_price_ratio_not_excluded ... ok [INFO] [stdout] test persona_classification::tests::test_classify_wallet_records_traits ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_on_demand_features_spawned_after_discovery ... ok [INFO] [stdout] test persona_classification::tests::test_classify_wallet_unclassified ... ok [INFO] [stdout] test persona_classification::tests::test_known_bot_record_exclusion_persists ... ok [INFO] [stdout] test persona_classification::tests::test_record_exclusion_replaces_not_duplicates ... ok [INFO] [stdout] test persona_classification::tests::test_record_exclusion_persists ... ok [INFO] [stdout] test wallet_features::tests::test_burstiness_and_trades_per_day_computed ... ok [INFO] [stdout] test wallet_features::tests::test_avg_hold_time_hours_from_paired_trades ... ok [INFO] [stdout] test wallet_features::tests::test_buy_sell_balance_computed ... ok [INFO] [stdout] test wallet_features::tests::test_compute_all_time_roi_negative ... ok [INFO] [stdout] test wallet_features::tests::test_compute_all_time_roi_no_trades ... ok [INFO] [stdout] test wallet_features::tests::test_compute_all_time_roi_only_buys ... ok [INFO] [stdout] test wallet_features::tests::test_compute_unrealized_pnl_missing_current_position ... ok [INFO] [stdout] test wallet_features::tests::test_compute_unrealized_pnl_negative_losses ... ok [INFO] [stdout] test wallet_features::tests::test_compute_unrealized_pnl_positive_gains ... ok [INFO] [stdout] test wallet_features::tests::test_compute_all_time_roi_uses_realized_not_cashflow ... ok [INFO] [stdout] test wallet_features::tests::test_compute_all_time_roi_positive ... ok [INFO] [stdout] test wallet_features::tests::test_compute_features_empty_wallet ... ok [INFO] [stdout] test wallet_features::tests::test_compute_features_basic ... ok [INFO] [stdout] test wallet_features::tests::test_compute_features_for_wallet_insufficient_trades ... ok [INFO] [stdout] test wallet_features::tests::test_compute_features_for_wallet_idempotent ... ok [INFO] [stdout] test wallet_features::tests::test_compute_features_for_wallet_success ... ok [INFO] [stdout] test wallet_features::tests::test_compute_recent_pnl_negative ... ok [INFO] [stdout] test wallet_features::tests::test_compute_recent_pnl_no_trades ... ok [INFO] [stdout] test wallet_features::tests::test_compute_recent_pnl_only_buys_no_sells ... ok [INFO] [stdout] test wallet_rules_engine::tests::test_candidate_stays_on_discovery_fail ... ok [INFO] [stdout] test wallet_rules_engine::tests::test_candidate_to_paper_trading_on_discovery_pass ... ok [INFO] [stdout] test wallet_rules_engine::tests::test_discovery_skips_hold_gate_when_hold_proxy_missing ... ok [INFO] [stdout] test wallet_features::tests::test_compute_recent_pnl_only_old_trades ... ok [INFO] [stdout] test wallet_rules_engine::tests::test_slippage_cents_to_bps_conversion ... ok [INFO] [stdout] test wallet_scoring::tests::test_behavior_quality_score ... ok [INFO] [stdout] test wallet_scoring::tests::test_compute_wscore_in_range ... ok [INFO] [stdout] test wallet_scoring::tests::test_full_wscore_all_5_components ... ok [INFO] [stdout] test wallet_scoring::tests::test_low_win_rate_penalty ... ok [INFO] [stdout] test wallet_scoring::tests::test_market_skill_score ... ok [INFO] [stdout] test wallet_scoring::tests::test_positive_edge_scores_higher ... ok [INFO] [stdout] test wallet_scoring::tests::test_score_input_from_features ... ok [INFO] [stdout] test wallet_features::tests::test_compute_recent_pnl_positive ... ok [INFO] [stdout] test wallet_scoring::tests::test_timing_skill_score ... ok [INFO] [stdout] test wallet_scoring::tests::test_unstable_wallet_scores_lower_on_consistency ... ok [INFO] [stdout] test wallet_features::tests::test_compute_recent_pnl_uses_realized_not_cashflow ... ok [INFO] [stdout] test wallet_features::tests::test_extreme_price_ratio_computed ... ok [INFO] [stdout] test wallet_features::tests::test_paired_stats_sums_realized_pnl ... ok [INFO] [stdout] test wallet_features::tests::test_paired_stats_tracks_open_positions ... ok [INFO] [stdout] test wallet_features::tests::test_paired_stats_multiple_markets_mixed ... ok [INFO] [stdout] test wallet_features::tests::test_save_wallet_features ... ok [INFO] [stdout] test wallet_features::tests::test_win_loss_from_actual_pnl_bonder_loses ... ok [INFO] [stdout] test wallet_features::tests::test_win_loss_from_actual_pnl_real_wins ... ok [INFO] [stdout] test wallet_features::tests::test_top_domain_ratio_computed ... ok [INFO] [stdout] test wallet_rules_engine::tests::test_approved_to_stopped_on_live_fail ... ok [INFO] [stdout] test wallet_features::tests::test_realized_pnl_is_cashflow_not_fifo ... ok [INFO] [stdout] test wallet_rules_engine::tests::test_paper_trading_to_approved_on_onchain_pass ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_persona_classification_parallel_vs_serial ... ok [INFO] [stdout] test jobs::pipeline_jobs::tests::test_run_persona_classification_updates_progress_incrementally ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 239 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.89s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/web-2f267f950a784deb) [INFO] [stdout] [INFO] [stdout] running 89 tests [INFO] [stdout] test models::tests::test_job_status_row_progress_display_no_metadata ... ok [INFO] [stdout] test models::tests::test_job_status_row_progress_display_holders_snapshot ... ok [INFO] [stdout] test models::tests::test_job_status_row_progress_display_activity_ingestion ... ok [INFO] [stdout] test models::tests::test_job_status_row_progress_display_fallback_raw_json ... ok [INFO] [stdout] test models::tests::test_job_status_row_progress_display_persona_classification_in_progress ... ok [INFO] [stdout] test models::tests::test_job_status_row_progress_display_trades_ingestion ... ok [INFO] [stdout] test models::tests::test_job_status_row_progress_display_wallet_discovery_completed ... ok [INFO] [stdout] test models::tests::test_job_status_row_progress_display_persona_classification_completed ... ok [INFO] [stdout] test models::tests::test_job_status_row_progress_display_wallet_discovery_in_progress ... ok [INFO] [stdout] test models::tests::test_shorten_wallet ... ok [INFO] [stdout] test queries::tests::test_age_seconds_date_only_format ... ok [INFO] [stdout] test queries::tests::test_age_seconds_datetime_format ... ok [INFO] [stdout] test queries::tests::test_age_seconds_unknown_format ... ok [INFO] [stdout] test models::tests::test_funnel_stages_zero_markets ... ok [INFO] [stdout] test models::tests::test_funnel_stages_have_info_tooltips ... ok [INFO] [stdout] test models::tests::test_funnel_stages_count ... ok [INFO] [stdout] test models::tests::test_funnel_last_stage_no_dropoff ... ok [INFO] [stdout] test queries::tests::test_system_status_empty_db ... ok [INFO] [stdout] test queries::tests::test_recent_wallets_with_trade_count ... ok [INFO] [stdout] test queries::tests::test_funnel_counts_empty_db ... ok [INFO] [stdout] test queries::tests::test_top_markets_with_data ... ok [INFO] [stdout] test queries::tests::test_persona_funnel_counts_with_data ... ok [INFO] [stdout] test queries::tests::test_system_status_phase_detection ... ok [INFO] [stdout] test queries::tests::test_top_markets_empty ... ok [INFO] [stdout] test queries::tests::test_rankings_ordered_by_wscore ... ok [INFO] [stdout] test queries::tests::test_suitable_personas_counts_evaluated_requires_30d_trade_age ... ok [INFO] [stdout] test queries::tests::test_db_query_timing_metrics_emitted_for_funnel_counts ... ok [INFO] [stdout] test queries::tests::test_system_status_phase_paper_trading ... ok [INFO] [stdout] test queries::tests::test_paper_summary_calculates_pnl ... ok [INFO] [stdout] test queries::tests::test_funnel_counts_with_data ... ok [INFO] [stdout] test queries::tests::test_top_events_with_data ... ok [INFO] [stdout] test queries::tests::test_follow_worthy_rankings_with_trade_counts_and_pnl ... ok [INFO] [stdout] test queries::tests::test_top_events_empty ... ok [INFO] [stdout] test queries::tests::test_wallet_activity_from_activity_raw ... ok [INFO] [stdout] test queries::tests::test_unified_funnel_counts_wallet_age_filtering ... ok [INFO] [stdout] test queries::tests::test_wallet_overview_counts_sources ... ok [INFO] [stdout] test queries::tests::test_wallet_active_positions_only_positive_shares ... ok [INFO] [stdout] test tests::test_dashboard_contains_htmx_partials ... ok [INFO] [stdout] test tests::test_dashboard_with_real_db ... ignored [INFO] [stdout] test queries::tests::test_tracking_health_empty ... ok [INFO] [stdout] test queries::tests::test_wallet_journey_includes_scores ... ok [INFO] [stdout] test queries::tests::test_wallet_positions_summary_direct ... ok [INFO] [stdout] test queries::tests::test_wallet_journey_graceful_without_data ... ok [INFO] [stdout] test queries::tests::test_wallet_journey_rules_events_in_timeline ... ok [INFO] [stdout] test tests::test_funnel_info_icon_uses_css_tooltip_data_tip ... ok [INFO] [stdout] test queries::tests::test_wallet_journey_includes_traits ... ok [INFO] [stdout] test queries::tests::test_wallet_journey_includes_features ... ok [INFO] [stdout] test queries::tests::test_wallet_positions_active_and_closed_split ... ok [INFO] [stdout] test queries::tests::test_wallet_journey_score_history ... ok [INFO] [stdout] test tests::test_index_returns_200 ... ok [INFO] [stdout] test tests::test_index_contains_dashboard_title ... ok [INFO] [stdout] test queries::tests::test_wallet_positions_summary_respects_limit ... ok [INFO] [stdout] test tests::test_access_with_valid_cookie ... ok [INFO] [stdout] test tests::test_access_with_auth_cookie_comma_joined_succeeds ... ok [INFO] [stdout] test tests::test_auth_disabled_when_no_password ... ok [INFO] [stdout] test tests::test_auth_redirects_to_login_without_cookie ... ok [INFO] [stdout] test tests::test_login_with_comma_joined_cookie_header_succeeds ... ok [INFO] [stdout] test tests::test_events_partial_empty_shows_message ... ok [INFO] [stdout] test tests::test_events_partial_returns_200 ... ok [INFO] [stdout] test tests::test_login_succeeds_even_if_user_submits_from_older_tab ... ok [INFO] [stdout] test tests::test_login_page_shows_without_auth ... ok [INFO] [stdout] test tests::test_excluded_page_paginates_latest_per_wallet ... ok [INFO] [stdout] test tests::test_excluded_page_returns_200 ... ok [INFO] [stdout] test tests::test_login_repeated_get_does_not_rotate_csrf_token ... ok [INFO] [stdout] test tests::test_login_with_csrf_cookie_in_second_cookie_header_succeeds ... ok [INFO] [stdout] test tests::test_login_with_correct_password_sets_cookie ... ok [INFO] [stdout] test tests::test_journey_unknown_wallet_returns_404 ... ok [INFO] [stdout] test tests::test_journey_known_wallet_returns_200 ... ok [INFO] [stdout] test tests::test_login_with_valid_password_missing_cookie_returns_csrf_error ... ok [INFO] [stdout] test tests::test_login_with_wrong_csrf_cookie_returns_csrf_error ... ok [INFO] [stdout] test tests::test_login_with_wrong_password_shows_error ... ok [INFO] [stdout] test tests::test_logout_clears_cookie ... ok [INFO] [stdout] test tests::test_markets_partial_empty_shows_message ... ok [INFO] [stdout] test tests::test_no_auth_redirects_when_no_password ... ok [INFO] [stdout] test tests::test_rankings_partial_empty_shows_message ... ok [INFO] [stdout] test tests::test_markets_partial_returns_200 ... ok [INFO] [stdout] test tests::test_paper_traded_wallets_partial_returns_200 ... ok [INFO] [stdout] test tests::test_paper_traded_wallets_partial_empty_shows_message ... ok [INFO] [stdout] test tests::test_rankings_partial_returns_200 ... ok [INFO] [stdout] test tests::test_personas_summary_partial_returns_200_and_counts ... ok [INFO] [stdout] test tests::test_status_partial_returns_200 ... ok [INFO] [stdout] test tests::test_status_partial_contains_phase ... ok [INFO] [stdout] test tests::test_suitable_personas_partial_returns_200 ... ok [INFO] [stdout] test tests::test_unified_funnel_partial_contains_stages ... ok [INFO] [stdout] test tests::test_unified_funnel_partial_returns_200 ... ok [INFO] [stdout] test tests::test_wallets_partial_contains_table_or_empty_message ... ok [INFO] [stdout] test tests::test_login_not_blocked_by_slow_db_queries ... ok [INFO] [stdout] test tests::test_wallets_partial_returns_200 ... ok [INFO] [stdout] test tests::test_all_partials_return_200 ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 88 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.82s [INFO] [stdout] [INFO] [stderr] Doc-tests common [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "9421991eba8c6a7c300b934799d05e440fcf098db5d6594f57460df6ba83133c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9421991eba8c6a7c300b934799d05e440fcf098db5d6594f57460df6ba83133c", kill_on_drop: false }` [INFO] [stdout] 9421991eba8c6a7c300b934799d05e440fcf098db5d6594f57460df6ba83133c