[INFO] cloning repository https://github.com/leodo/financial-crisis
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/leodo/financial-crisis" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleodo%2Ffinancial-crisis", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleodo%2Ffinancial-crisis'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6b9fd3dd28466a0a26596714cdf89e2940bc47b4
[INFO] testing leodo/financial-crisis against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleodo%2Ffinancial-crisis" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/leodo/financial-crisis
[INFO] finished tweaking git repo https://github.com/leodo/financial-crisis
[INFO] tweaked toml for git repo https://github.com/leodo/financial-crisis written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/leodo/financial-crisis on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/leodo/financial-crisis 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.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: unused field `repository` in `workspace.package`
[INFO] [stderr]   --> Cargo.toml:53:1
[INFO] [stderr]    |
[INFO] [stderr] 53 | repository = "https://example.invalid/financial-crisis"
[INFO] [stderr]    | ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_workspace_package_fields` is set to `warn` by default
[INFO] [stderr] help: consider removing the field `workspace.package.repository`
[INFO] [stderr] warning: workspace (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7e35bf9ab46e3bdcc7f4580b7188290276cfd97c15b31413f413ca13a4f5aa4a
[INFO] running `Command { std: "docker" "start" "7e35bf9ab46e3bdcc7f4580b7188290276cfd97c15b31413f413ca13a4f5aa4a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7e35bf9ab46e3bdcc7f4580b7188290276cfd97c15b31413f413ca13a4f5aa4a", 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" "7e35bf9ab46e3bdcc7f4580b7188290276cfd97c15b31413f413ca13a4f5aa4a" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7e35bf9ab46e3bdcc7f4580b7188290276cfd97c15b31413f413ca13a4f5aa4a", 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" "7e35bf9ab46e3bdcc7f4580b7188290276cfd97c15b31413f413ca13a4f5aa4a" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused field `repository` in `workspace.package`
[INFO] [stderr]   --> Cargo.toml:53:1
[INFO] [stderr]    |
[INFO] [stderr] 53 | repository = "https://example.invalid/financial-crisis"
[INFO] [stderr]    | ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_workspace_package_fields` is set to `warn` by default
[INFO] [stderr] help: consider removing the field `workspace.package.repository`
[INFO] [stderr] warning: workspace (manifest) generated 1 warning
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling memchr v2.8.1
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling log v0.4.30
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling cc v1.2.63
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling sha1_smol v1.0.1
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling zerocopy v0.8.50
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling http v1.4.1
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling socket2 v0.6.4
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling crc-catalog v2.5.0
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling tinyvec v1.11.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling uuid v1.23.2
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling crc v3.4.0
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling unicode-properties v0.1.4
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]    Compiling flume v0.11.1
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling whoami v1.6.1
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling csv-core v0.1.13
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling csv v1.4.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling tower-http v0.5.2
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[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 fc-domain v0.1.0 (/opt/rustwide/workdir/crates/domain)
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[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 rustls-webpki v0.103.13
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling fc-scoring v0.1.0 (/opt/rustwide/workdir/crates/scoring)
[INFO] [stderr]    Compiling sqlx-core v0.8.6
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling fc-ingestion v0.1.0 (/opt/rustwide/workdir/crates/ingestion)
[INFO] [stderr]    Compiling sqlx-postgres v0.8.6
[INFO] [stderr]    Compiling sqlx-sqlite v0.8.6
[INFO] [stderr]    Compiling sqlx v0.8.6
[INFO] [stderr]    Compiling fc-storage v0.1.0 (/opt/rustwide/workdir/crates/storage)
[INFO] [stderr]    Compiling fc-worker v0.1.0 (/opt/rustwide/workdir/apps/worker)
[INFO] [stderr]    Compiling fc-api v0.1.0 (/opt/rustwide/workdir/apps/api)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 5m 53s
[INFO] running `Command { std: "docker" "inspect" "7e35bf9ab46e3bdcc7f4580b7188290276cfd97c15b31413f413ca13a4f5aa4a", 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" "7e35bf9ab46e3bdcc7f4580b7188290276cfd97c15b31413f413ca13a4f5aa4a" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused field `repository` in `workspace.package`
[INFO] [stderr]   --> Cargo.toml:53:1
[INFO] [stderr]    |
[INFO] [stderr] 53 | repository = "https://example.invalid/financial-crisis"
[INFO] [stderr]    | ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_workspace_package_fields` is set to `warn` by default
[INFO] [stderr] help: consider removing the field `workspace.package.repository`
[INFO] [stderr] warning: workspace (manifest) generated 1 warning
[INFO] [stderr]    Compiling fc-scoring v0.1.0 (/opt/rustwide/workdir/crates/scoring)
[INFO] [stderr]    Compiling fc-domain v0.1.0 (/opt/rustwide/workdir/crates/domain)
[INFO] [stderr]    Compiling fc-ingestion v0.1.0 (/opt/rustwide/workdir/crates/ingestion)
[INFO] [stderr]    Compiling fc-storage v0.1.0 (/opt/rustwide/workdir/crates/storage)
[INFO] [stderr]    Compiling fc-api v0.1.0 (/opt/rustwide/workdir/apps/api)
[INFO] [stderr]    Compiling fc-worker v0.1.0 (/opt/rustwide/workdir/apps/worker)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 2m 18s
[INFO] running `Command { std: "docker" "inspect" "7e35bf9ab46e3bdcc7f4580b7188290276cfd97c15b31413f413ca13a4f5aa4a", 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" "7e35bf9ab46e3bdcc7f4580b7188290276cfd97c15b31413f413ca13a4f5aa4a" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused field `repository` in `workspace.package`
[INFO] [stderr]   --> Cargo.toml:53:1
[INFO] [stderr]    |
[INFO] [stderr] 53 | repository = "https://example.invalid/financial-crisis"
[INFO] [stderr]    | ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_workspace_package_fields` is set to `warn` by default
[INFO] [stderr] help: consider removing the field `workspace.package.repository`
[INFO] [stderr] warning: workspace (manifest) generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.58s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/fc-api/293d94b5525f2a1a/out/fc_api-293d94b5525f2a1a)
[INFO] [stdout] 
[INFO] [stdout] running 162 tests
[INFO] [stdout] test assessment::market_context::tests::data_trust_preserves_core_blocker_warning_for_core_missing_indicator ... ok
[INFO] [stdout] test assessment::market_context::tests::data_trust_warns_auxiliary_when_gdelt_news_is_missing ... ok
[INFO] [stdout] test assessment::market_context::tests::key_indicator_missing_caps_data_trust_below_high_confidence ... ok
[INFO] [stdout] test assessment::context::analogs::tests::prioritized_historical_analogs_keeps_core_crisis_set_in_similarity_order ... ok
[INFO] [stdout] test assessment::market_context::tests::key_indicator_delayed_caps_data_trust_to_medium_high_confidence ... ok
[INFO] [stdout] test assessment::context::backtests::tests::actionable_summary_explains_zero_rate_as_no_action_sample ... ok
[INFO] [stdout] test assessment::mvp_state::tests::mvp_state_downgrades_formal_probability_to_audit_input ... ok
[INFO] [stdout] test assessment::context::analogs::tests::prioritized_historical_analogs_falls_back_to_top_three_when_core_set_missing ... ok
[INFO] [stdout] test assessment::context::backtests::tests::actionable_summary_keeps_positive_rate_numeric ... ok
[INFO] [stdout] test assessment::market_context::tests::key_indicator_stale_caps_data_trust_below_high_confidence ... ok
[INFO] [stdout] test assessment::tests::actionability::actionability_confidence_requires_margin_above_decision_threshold ... ok
[INFO] [stdout] test assessment::tests::actionability::assessment_snapshot_uses_runtime_final_p60d_for_prepare_plateau ... ok
[INFO] [stdout] test assessment::probability::trace::tests::runtime_semantic_fallback_raises_anomalous_horizons_to_heuristic_floor ... ok
[INFO] [stdout] test assessment::tests::evidence::derived_driver_explanation_does_not_call_delta_the_current_level ... ok
[INFO] [stdout] test assessment::mvp_state::tests::mvp_state_promotes_prepare_from_validated_rule_layer_pressure ... ok
[INFO] [stdout] test assessment::tests::evidence::action_evidence_breakdown_does_not_mistake_data_quality_for_risk_evidence ... ok
[INFO] [stdout] test assessment::mvp_state::tests::mvp_state_forces_observe_when_key_indicator_is_stale ... ok
[INFO] [stdout] test assessment::tests::actionability::fused_actionability_preserves_supported_prepare_context ... ok
[INFO] [stdout] test assessment::tests::evidence::top_driver_enrichment_rewrites_derived_base_current_signal_copy ... ok
[INFO] [stdout] test assessment::tests::posture::hedge::posture_guidance_keeps_saturated_hedge_context_with_external_confirmation ... ok
[INFO] [stdout] test assessment::tests::position::position_guidance_governance_enforces_manual_review_and_release_boundaries ... ok
[INFO] [stdout] test assessment::tests::posture::hedge::posture_guidance_requires_multi_signal_context_for_hedge_clause ... ok
[INFO] [stdout] test assessment::mvp_state::tests::mvp_state_flags_delayed_key_indicator_without_forcing_observe ... ok
[INFO] [stdout] test assessment::tests::position::summary_uses_mvp_state_when_probability_is_reference_only ... ok
[INFO] [stdout] test assessment::tests::position::position_guidance_governance_keeps_degraded_active_release_warning ... ok
[INFO] [stdout] test assessment::tests::posture::hedge::posture_guidance_allows_hedge_when_short_and_medium_horizon_context_align ... ok
[INFO] [stdout] test assessment::tests::posture::hedge::posture_guidance_blocks_elevated_long_window_hedge_without_p20_confirmation ... ok
[INFO] [stdout] test assessment::tests::posture::prepare::posture_guidance_blocks_prepare_external_without_probability_companion ... ok
[INFO] [stdout] test assessment::tests::posture::prepare::posture_guidance_blocks_saturated_plateau_without_strong_confirmation ... ok
[INFO] [stdout] test assessment::tests::posture::prepare::posture_guidance_emits_prepare_continuity_bridge_for_long_window_pressure ... ok
[INFO] [stdout] test assessment::tests::posture::prepare::posture_guidance_emits_prepare_external_structural_clause_when_probability_confirms ... ok
[INFO] [stdout] test assessment::tests::posture::prepare::posture_guidance_emits_prepare_for_trigger_dominant_plateau ... ok
[INFO] [stdout] test assessment::tests::posture::prepare::posture_guidance_emits_prepare_probability_plateau_for_long_window_high_probability_regime ... ok
[INFO] [stdout] test assessment::tests::posture::prepare::posture_guidance_keeps_prepare_continuity_bridge_under_low_conviction ... ok
[INFO] [stdout] test assessment::tests::posture::prepare::posture_guidance_does_not_emit_prepare_continuity_bridge_without_support ... ok
[INFO] [stdout] test assessment::tests::posture::prepare::posture_guidance_blocks_prepare_carry_without_noncarry_confirmation ... ok
[INFO] [stdout] test assessment::tests::posture::hedge::posture_guidance_blocks_hedge_when_short_horizon_lacks_overall_confirmation ... ok
[INFO] [stdout] test assessment::tests::posture::prepare::posture_guidance_keeps_structural_plateau_out_of_trigger_dominant_bridge ... ok
[INFO] [stdout] test assessment::tests::posture::prepare::posture_guidance_uses_runtime_derived_plateau_p20d_floor ... ok
[INFO] [stdout] test assessment::tests::actionability::fused_actionability_suppresses_high_confidence_without_context ... ok
[INFO] [stdout] test assessment::tests::posture::prepare::posture_guidance_emits_prepare_probability_plateau_for_relaxed_extreme_context ... ok
[INFO] [stdout] test assessment::tests::posture::prepare::posture_guidance_blocks_saturated_continuity_without_strong_confirmation ... ok
[INFO] [stdout] test assessment::tests::time_bucket::time_to_risk_bucket_does_not_use_trigger_dominant_plateau_for_structural_context ... ok
[INFO] [stdout] test assessment::tests::posture::hedge::posture_guidance_marks_quality_blocked_hedge_clause ... ok
[INFO] [stdout] test assessment::tests::posture::prepare::posture_guidance_describes_low_conviction_as_action_evidence_not_reliability ... ok
[INFO] [stdout] test assessment::tests::actionability::assessment_snapshot_uses_support_actionability_for_prepare_continuity_without_head ... ok
[INFO] [stdout] test assessment::tests::evidence::action_evidence_rises_when_breadth_and_agreement_confirm ... ok
[INFO] [stdout] test assessment::tests::posture::hedge::posture_guidance_blocks_saturated_hedge_context_without_strong_confirmation ... ok
[INFO] [stdout] test assessment::tests::posture::prepare::posture_guidance_ignores_monotonic_only_prepare_crossing ... ok
[INFO] [stdout] test assessment::tests::posture::prepare::posture_guidance_uses_runtime_derived_prepare_continuity_floors ... ok
[INFO] [stdout] test assessment::tests::posture::prepare::posture_guidance_keeps_saturated_plateau_with_extreme_p20d_confirmation ... ok
[INFO] [stdout] test assessment::tests::time_bucket::time_to_risk_bucket_blocks_saturated_months_without_strong_confirmation ... ok
[INFO] [stdout] test assessment::tests::posture::prepare::posture_guidance_uses_support_actionability_for_continuity_without_trigger_head ... ok
[INFO] [stdout] test assessment::tests::time_bucket::time_to_risk_bucket_allows_months_when_probability_and_context_align ... ok
[INFO] [stdout] test assessment::tests::time_bucket::time_to_risk_bucket_does_not_bridge_without_prepare_context_support ... ok
[INFO] [stdout] test assessment::tests::time_bucket::time_to_risk_bucket_keeps_saturated_weeks_with_external_confirmation ... ok
[INFO] [stdout] test assessment::tests::time_bucket::time_to_risk_bucket_promotes_months_for_probability_plateau_without_actionability_support ... ok
[INFO] [stdout] test assessment::tests::time_bucket::time_to_risk_bucket_requires_confirmation_for_months_bucket ... ok
[INFO] [stdout] test assessment::tests::time_bucket::time_to_risk_bucket_ignores_monotonic_only_prepare_crossing ... ok
[INFO] [stdout] test assessment::tests::time_bucket::time_to_risk_bucket_keeps_months_for_long_window_prepare_continuity ... ok
[INFO] [stdout] test assessment::tests::time_bucket::time_to_risk_bucket_blocks_saturated_weeks_without_strong_confirmation ... ok
[INFO] [stdout] test backtest::rolling_audit::tests::rolling_audit_summary_does_not_call_empty_denominator_zero_precision ... ok
[INFO] [stdout] test data_source::tests::shadow_active_release_falls_back_to_heuristic_runtime ... ok
[INFO] [stdout] test data_source::tests::healthy_active_release_loads_formal_bundle ... ok
[INFO] [stdout] test data_source::tests::review_runtime_allows_shadow_release_bundle_loading ... ok
[INFO] [stdout] test assessment::tests::time_bucket::time_to_risk_bucket_promotes_months_for_trigger_dominant_plateau ... ok
[INFO] [stdout] test assessment::tests::time_bucket::time_to_risk_bucket_uses_support_actionability_for_continuity_without_trigger_head ... ok
[INFO] [stdout] test assessment::tests::time_bucket::time_to_risk_bucket_uses_runtime_derived_prepare_continuity_floors ... ok
[INFO] [stdout] test demo::tests::actionable_warning_point_accepts_formal_main_relaxed_strict_p60d_mapping ... ok
[INFO] [stdout] test data_source::tests::review_runtime_allows_candidate_release_bundle_loading ... ok
[INFO] [stdout] test demo::tests::actionable_warning_point_accepts_prepare_bridge_for_persisted_snapshots ... ok
[INFO] [stdout] test data_source::tests::relative_bundle_uri_can_resolve_from_deploy_current ... ok
[INFO] [stdout] test data_source::tests::non_active_bundle_release_falls_back_to_heuristic_runtime ... ok
[INFO] [stdout] test demo::tests::actionable_warning_point_accepts_relaxed_probability_plateau_clause_with_runtime_thresholds ... ok
[INFO] [stdout] test demo::tests::actionable_warning_point_accepts_strong_prepare_clause_for_formal_main ... ok
[INFO] [stdout] test demo::tests::actionable_warning_point_accepts_weeks_trigger_dominant_clause ... ok
[INFO] [stdout] test demo::tests::actionable_warning_point_rejects_weak_probability_plateau_clause_for_formal_main ... ok
[INFO] [stdout] test demo::tests::actionable_warning_point_rejects_weak_weeks_trigger_dominant_clause ... ok
[INFO] [stdout] test demo::tests::bundle_backed_history_keeps_cache_when_method_version_matches ... ok
[INFO] [stdout] test demo::tests::bundle_backed_history_refreshes_when_cached_method_version_is_stale ... ok
[INFO] [stdout] test demo::tests::formal_main_disables_transitional_actionable_bridge ... ok
[INFO] [stdout] test demo::tests::actionable_warning_point_accepts_history_hysteresis_months_structural_carry_clause ... ok
[INFO] [stdout] test demo::tests::actionable_warning_point_accepts_probability_plateau_clause_for_formal_main ... ok
[INFO] [stdout] test demo::tests::actionable_warning_point_rejects_weak_prepare_bridge ... ok
[INFO] [stdout] test demo::tests::actionable_warning_point_rejects_weak_prepare_clause_for_formal_main ... ok
[INFO] [stdout] test demo::tests::formal_main_detection_accepts_trend_feature_set_variants ... ok
[INFO] [stdout] test demo::tests::build_app_data_preserves_existing_history_metadata_when_refreshing_same_day_point ... ok
[INFO] [stdout] test demo::tests::actionable_warning_point_accepts_formal_main_relaxed_strict_p20d_mapping ... ok
[INFO] [stdout] test demo::tests::actionable_warning_point_accepts_prepare_weeks_plateau_hysteresis_clause ... ok
[INFO] [stdout] test demo::tests::formal_main_detection_accepts_versioned_feature_set_variants ... ok
[INFO] [stdout] test demo::tests::actionable_warning_point_disables_prepare_bridge_for_formal_main ... ok
[INFO] [stdout] test assessment::tests::actionability::formal_runtime_does_not_apply_cross_horizon_monotonic_gap ... ok
[INFO] [stdout] test demo::tests::formal_main_method_version_carries_runtime_policy_cache_key ... ok
[INFO] [stdout] test handlers::research_audit::dataset_summary::tests::dataset_summary_wire_allows_missing_optional_arrays ... ok
[INFO] [stdout] test demo::tests::prediction_history_filters_by_release_and_keeps_latest_daily_snapshot ... ok
[INFO] [stdout] test demo::tests::formal_main_runtime_thresholds_preserve_fail_closed_bundle_cutoffs ... ok
[INFO] [stdout] test handlers::research_audit::tests::cooldown_wire_allows_missing_optional_arrays ... ok
[INFO] [stdout] test handlers::research_audit::funding_stress_audit::tests::funding_stress_wire_allows_missing_optional_arrays ... ok
[INFO] [stdout] test demo_seed::sources::tests::live_source_uses_business_day_lag_for_freshness_status ... ok
[INFO] [stdout] test demo::tests::rolling_audit_counts_prepare_signal_within_sixty_days_as_pre_crisis ... ok
[INFO] [stdout] test handlers::research_audit::tests::cooldown_wire_decodes_tradeoff_summary ... ok
[INFO] [stdout] test handlers::research_audit::leadtime_audit::tests::leadtime_wire_allows_missing_optional_arrays ... ok
[INFO] [stdout] test handlers::research_audit::prewarning_gap_audit::tests::prewarning_gap_wire_allows_missing_optional_arrays ... ok
[INFO] [stdout] test demo::tests::rolling_audit_counts_catalog_protected_windows_as_stress ... ok
[INFO] [stdout] test handlers::research_audit::tests::decode_json_artifact_accepts_utf16le_bom ... ok
[INFO] [stdout] test handlers::research_audit::tests::rate_shock_wire_allows_missing_optional_arrays ... ok
[INFO] [stdout] test handlers::research_audit::tests::release_review_wire_allows_missing_optional_audit_fields ... ok
[INFO] [stdout] test handlers::research_audit::tests::scenario_pack_wire_allows_missing_optional_arrays ... ok
[INFO] [stdout] test handlers::research_audit::workstream_audit::tests::workstream_wire_allows_missing_optional_arrays ... ok
[INFO] [stdout] test handlers::source_status::tests::production_source_without_ingestion_run_evidence_is_not_healthy ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_blocks_elevated_long_window_without_confirmation ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_carry_grace_preserves_state_for_next_day_rescue ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_carry_grace_expires_after_one_day ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_does_not_rescue_moderate_probability_drift ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_extreme_carry_does_not_create_new_anchor ... ok
[INFO] [stdout] test handlers::source_status::tests::prototype_source_without_ingestion_run_evidence_keeps_prototype_status ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_extreme_carry_accepts_near_floor_external_support ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_blocks_saturated_long_window_without_confirmation ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_keeps_saturated_long_window_with_extreme_p20d ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_extreme_carry_still_requires_external_support ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_rescues_extreme_carry_after_anchor ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_rescues_structural_carry_near_structural_floor ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_rescues_structural_carry_with_lower_p20d_after_anchor ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_rescues_structural_carry_after_anchor ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_expires_after_support_breaks ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_structural_carry_still_requires_p20d_decay_floor ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_structural_carry_still_requires_structural_floor ... ok
[INFO] [stdout] test history_replay::cache::tests::historical_replay_run_reuse_requires_matching_source_watermark ... ok
[INFO] [stdout] test history_replay::cache::tests::historical_replay_source_watermark_uses_latest_us_observation_date ... ok
[INFO] [stdout] test history_replay::tests::pit_feature_history_source_only_marks_parseable_same_day_snapshots_as_replay ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_requires_prepare_anchor_trigger_code ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_structural_carry_requires_low_trigger_context ... ok
[INFO] [stdout] test handlers::research_audit::tests::decode_json_artifact_accepts_utf8_bom ... ok
[INFO] [stdout] test tests::api_responses_disable_browser_cache ... ok
[INFO] [stdout] test history_builder::tests::history_prepare_hysteresis_promotes_supportive_normal_point_after_prepare_anchor ... ok
[INFO] [stdout] test tests::assessment_history_endpoint_honors_limit_query ... ok
[INFO] [stdout] test tests::app_state_preserves_review_reload_options_across_refresh ... ok
[INFO] [stdout] test tests::assessment_posture_endpoint_returns_upgrade_and_downgrade_rules ... ok
[INFO] [stdout] test tests::assessment_current_includes_runtime_freshness_and_supporting_blocks ... ok
[INFO] [stdout] test tests::assessment_method_endpoint_returns_protected_stress_window_catalog ... ok
[INFO] [stdout] test tests::backtest_timeline_endpoint_returns_window_points ... ok
[INFO] [stdout] test tests::assessment_current_includes_jpy_carry_funding_fields ... ok
[INFO] [stdout] test tests::events_recent_endpoint_returns_event_signals ... ok
[INFO] [stdout] test history_builder::tests::default_mode_heuristic_history_can_still_reuse_persisted_snapshots ... ok
[INFO] [stdout] test history_builder::tests::bundle_history_rebuild_rebuilds_exact_snapshot_when_new_visible_data_arrived ... ok
[INFO] [stdout] test history_builder::tests::default_mode_bundle_release_rebuilds_full_history_when_replay_cache_is_missing ... ok
[INFO] [stdout] test tests::system_reload_endpoint_rejects_unknown_runtime_purpose ... ok
[INFO] [stdout] test history_builder::tests::default_mode_bundle_release_respects_history_limit_window ... ok
[INFO] [stdout] test tests::system_risk_thresholds_endpoint_exposes_config ... ok
[INFO] [stdout] test tests::system_reload_endpoint_returns_refresh_metadata ... ok
[INFO] [stdout] test history_builder::tests::bundle_history_rebuild_does_not_backfill_prediction_snapshots ... ok
[INFO] [stdout] test tests::health_endpoint_works ... ok
[INFO] [stdout] test tests::research_audit_endpoint_returns_runtime_audit_shape ... ok
[INFO] [stdout] test tests::system_reload_endpoint_accepts_strict_rebuild_history_mode ... ok
[INFO] [stdout] test tests::system_reload_endpoint_accepts_history_limit ... ok
[INFO] [stdout] test tests::system_reload_endpoint_accepts_review_runtime_purpose ... ok
[INFO] [stdout] test history_builder::tests::strict_rebuild_bundle_release_bypasses_matching_replay_cache ... ok
[INFO] [stdout] test history_builder::tests::bundle_history_rebuild_materializes_exact_snapshot_when_no_new_visible_data_arrived ... ok
[INFO] [stdout] test history_builder::tests::bundle_history_rebuild_binds_persisted_feature_snapshot_ids_when_available ... ok
[INFO] [stdout] test history_builder::tests::default_mode_bundle_release_ignores_partial_prediction_snapshot_bridge ... ok
[INFO] [stdout] test data_source::tests::sqlite_runtime_prefers_recent_long_replay_history_for_scenario_backtests ... ok
[INFO] [stdout] test data_source::tests::production_formal_runtime_keeps_only_current_prediction_snapshot ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 162 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.76s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/build/fc-api/180a615f36da1908/out/fc_api-180a615f36da1908)
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/fc-domain/e6296234b4fc9e19/out/fc_domain-e6296234b4fc9e19)
[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] [stdout] 
[INFO] [stdout] running 56 tests
[INFO] [stdout] test actionability_gate::tests::trigger_dominant_plateau_is_actionable_with_formal_thresholds ... ok
[INFO] [stdout] test formal_feature::tests::formal_observation_feature_value_from_history_requires_full_lookback ... ok
[INFO] [stdout] test actionability_gate::tests::strict_prepare_thresholds_preserve_fail_closed_formal_floors ... ok
[INFO] [stdout] test actionability_gate::tests::history_hysteresis_months_requires_context_support ... ok
[INFO] [stdout] test actionability_gate::tests::weak_defend_only_runtime_floor_ignores_non_normal_posture ... ok
[INFO] [stdout] test formal_feature::tests::formal_observation_feature_value_resolves_latest_and_tail_change ... ok
[INFO] [stdout] test formal_feature_runtime::tests::build_snapshot_record_adds_runtime_scores_and_coverage ... ok
[INFO] [stdout] test actionability_gate::tests::strict_prepare_p20d_threshold_respects_formal_runtime_floor ... ok
[INFO] [stdout] test actionability_gate::tests::saturated_weeks_plateau_hysteresis_requires_external_confirmation ... ok
[INFO] [stdout] test actionability_gate::tests::actionable_warning_point_accepts_prepare_weeks_plateau_hysteresis ... ok
[INFO] [stdout] test formal_feature::tests::formal_observation_registry_contains_level_and_tail_specs ... ok
[INFO] [stdout] test free_data_source::tests::embedded_catalog_covers_core_key_indicators ... ok
[INFO] [stdout] test free_data_source::tests::usdjpy_has_fred_fallback_alternative ... ok
[INFO] [stdout] test observation_window::tests::history_accepts_visibility_filter ... ok
[INFO] [stdout] test observation_window::tests::history_filters_indicator_and_sorts_by_date ... ok
[INFO] [stdout] test observation_window::tests::tail_difference_requires_full_lookback ... ok
[INFO] [stdout] test probability_bundle::tests::derived_feature_resolver_handles_family_conditional_features ... ok
[INFO] [stdout] test actionability_gate::tests::trigger_dominant_plateau_rejects_structural_external_context ... ok
[INFO] [stdout] test actionability_gate::tests::saturated_structural_carry_hysteresis_requires_external_confirmation ... ok
[INFO] [stdout] test actionability_gate::tests::formal_fail_closed_thresholds_block_plateau_and_history_bypasses ... ok
[INFO] [stdout] test actionability_gate::tests::saturated_plateau_requires_external_confirmation ... ok
[INFO] [stdout] test probability_bundle::tests::interaction_tail_transform_appends_derived_features ... ok
[INFO] [stdout] test probability_bundle::tests::jpy_carry_proxy_keeps_high_funding_unwind_pressure ... ok
[INFO] [stdout] test probability_bundle::tests::jpy_carry_proxy_requires_change_or_external_confirmation ... ok
[INFO] [stdout] test probability_bundle::tests::family_conditional_transform_appends_family_features ... ok
[INFO] [stdout] test probability_bundle::tests::jpy_carry_proxy_suppresses_ordinary_fx_spike_without_systemic_confirmation ... ok
[INFO] [stdout] test probability_bundle::tests::mixed_systemic_proxy_requires_chronic_pressure_anchor ... ok
[INFO] [stdout] test probability_bundle::tests::family_hybrid_transform_reuses_family_feature_expansion ... ok
[INFO] [stdout] test probability_bundle::tests::mixed_systemic_proxy_supports_normalized_score_inputs ... ok
[INFO] [stdout] test probability_bundle::tests::score_tail_features_support_normalized_score_inputs ... ok
[INFO] [stdout] test probability_bundle::tests::horizon_bundle_score_blends_family_overlay_when_gate_is_visible ... ok
[INFO] [stdout] test probability_bundle::tests::shared_probability_scorer_uses_stats_and_fill_values ... ok
[INFO] [stdout] test tests::observation_with_all_optionals ... ok
[INFO] [stdout] test tests::quality_grade_serde_round_trip ... ok
[INFO] [stdout] test tests::risk_contributor_serde_round_trip ... ok
[INFO] [stdout] test tests::risk_dimension_is_structural ... ok
[INFO] [stdout] test tests::frequency_serde_round_trip ... ok
[INFO] [stdout] test tests::data_quality_summary_serde_round_trip ... ok
[INFO] [stdout] test tests::alert_event_serde_round_trip ... ok
[INFO] [stdout] test tests::risk_dimension_labels ... ok
[INFO] [stdout] test tests::observation_serde_round_trip ... ok
[INFO] [stdout] test probability_bundle::tests::formal_probability_features_include_systemic_trend_inputs ... ok
[INFO] [stdout] test stress_window::tests::embedded_catalog_is_sorted_and_non_empty ... ok
[INFO] [stdout] test stress_window::tests::embedded_catalog_keeps_regional_bank_pre_crisis_stress_protected ... ok
[INFO] [stdout] test tests::risk_level_ordering ... ok
[INFO] [stdout] test tests::risk_level_from_score ... ok
[INFO] [stdout] test tests::risk_level_code_and_label ... ok
[INFO] [stdout] test probability_bundle::tests::shared_platt_calibration_clips_to_input_bounds ... ok
[INFO] [stdout] test probability_bundle::tests::derived_feature_resolver_handles_interactions_and_tail_features ... ok
[INFO] [stdout] test tests::risk_level_serde_round_trip ... ok
[INFO] [stdout] test actionability_gate::tests::hedge_posture_requires_p20d_confirmation ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/fc-ingestion/626ef020a3005b56/out/fc_ingestion-626ef020a3005b56)
[INFO] [stdout] test probability_bundle::tests::horizon_bundle_score_without_overlays_matches_base_probability ... ok
[INFO] [stdout] test tests::risk_snapshot_serde_round_trip ... ok
[INFO] [stdout] test probability_bundle::tests::shared_probability_scorer_exposes_feature_contributions ... ok
[INFO] [stdout] test scenario_catalog::tests::embedded_catalog_contains_main_and_extension_sets ... ok
[INFO] [stdout] test scenario_data_coverage::tests::embedded_scenario_data_coverage_catalog_covers_all_scenarios ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 56 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 39 tests
[INFO] [stdout] test connectors::mock::tests::mock_connector_describe_returns_prototype ... ok
[INFO] [stdout] test connectors::gdelt::tests::parses_gdelt_timeline_into_observations_and_alerts ... ok
[INFO] [stdout] test connectors::mock::tests::mock_connector_parse_rejects_empty_json ... ok
[INFO] [stdout] test connectors::mock::tests::mock_connector_parse_rejects_invalid_json ... ok
[INFO] [stdout] test connectors::fred_graph_csv::tests::builds_graph_csv_url_with_requested_dates ... ok
[INFO] [stdout] test connectors::fred_graph_csv::tests::parse_skips_dot_value_rows_as_missing ... ok
[INFO] [stdout] test connectors::sec_edgar::tests::aggregates_sparse_events_without_turning_zero_into_alerts ... ok
[INFO] [stdout] test connectors::gdelt::tests::normalizes_gdelt_density_from_norm_field ... ok
[INFO] [stdout] test connectors::boj::tests::parses_boj_money_market_rows_for_japan_entity ... ok
[INFO] [stdout] test connectors::fred_graph_csv::tests::parse_skips_empty_value_rows_with_warning ... ok
[INFO] [stdout] test connectors::fred_graph_csv::tests::parse_rejects_csv_without_observation_date_column ... ok
[INFO] [stdout] test connectors::fred_graph_csv::tests::parses_graph_csv_and_filters_requested_dates ... ok
[INFO] [stdout] test connectors::boj::tests::builds_boj_fx_url ... ok
[INFO] [stdout] test connectors::fred::tests::builds_observations_url ... ok
[INFO] [stdout] test connectors::fred_graph_csv::tests::parse_returns_empty_batch_for_csv_with_header_only ... ok
[INFO] [stdout] test connectors::fred_graph_csv::tests::parse_rejects_csv_with_non_numeric_value ... ok
[INFO] [stdout] test connectors::fred_graph_csv::tests::builds_graph_csv_url_without_api_key ... ok
[INFO] [stdout] test connectors::boj::tests::parses_boj_fx_csv_and_skips_null_days ... ok
[INFO] [stdout] test connectors::fred_graph_csv::tests::parse_rejects_csv_with_non_iso_date ... ok
[INFO] [stdout] test connectors::treasury_yield::tests::builds_month_url ... ok
[INFO] [stdout] test connectors::treasury_yield::tests::parses_ten_year_two_year_spread_from_treasury_xml ... ok
[INFO] [stdout] test connectors::world_bank::tests::builds_world_bank_indicator_url ... ok
[INFO] [stdout] test connectors::world_bank::tests::parses_world_bank_annual_values ... ok
[INFO] [stdout] test connectors::mock::tests::mock_connector_parse_returns_valid_batch ... ok
[INFO] [stdout] test connectors::sec_edgar::tests::parses_relevant_sec_filing_rows ... ok
[INFO] [stdout] test connectors::sec_edgar::tests::keyword_and_item_rules_drive_severity ... ok
[INFO] [stdout] test connectors::mock::tests::mock_connector_parse_rejects_missing_value ... ok
[INFO] [stdout] test connectors::mock::tests::mock_connector_fetch_returns_valid_payload ... ok
[INFO] [stdout] test contract::tests::connector_error_display_rate_limited ... ok
[INFO] [stdout] test contract::tests::normalized_batch_empty_observations ... ok
[INFO] [stdout] test contract::tests::raw_payload_serialization_round_trip ... ok
[INFO] [stdout] test contract::tests::connector_error_display_schema_changed ... ok
[INFO] [stdout] test contract::tests::source_descriptor_serialization_round_trip ... ok
[INFO] [stdout] test contract::tests::connector_error_display_source_unavailable ... ok
[INFO] [stdout] test contract::tests::connector_error_display_auth_failed ... ok
[INFO] [stdout] test contract::tests::connector_error_display_temporary_network ... ok
[INFO] [stdout] test contract::tests::connector_error_display_parse ... ok
[INFO] [stdout] test contract::tests::fetch_plan_round_trips_via_json ... ok
[INFO] [stdout] test contract::tests::fetch_plan_without_external_code_defaults_to_target_id ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/fc-scoring/f30a272cb771548a/out/fc_scoring-f30a272cb771548a)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test tests::lower_is_riskier_inverts_percentile ... ok
[INFO] [stdout] test tests::rising_fast_series_scores_off_change_not_level ... ok
[INFO] [stdout] test tests::indicator_explanation_names_two_sided_tail ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/fc-storage/f44394c3c7bd4ed4/out/fc_storage-f44394c3c7bd4ed4)
[INFO] [stdout] test tests::higher_is_riskier_uses_percentile ... ok
[INFO] [stdout] test tests::home_price_uses_yoy_signal_not_raw_level ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test tests::formats_enum_values_as_storage_strings ... ok
[INFO] [stdout] test sqlite::tests::prediction_snapshots::sqlite_store_can_prune_prediction_snapshot_history_for_release ... ok
[INFO] [stdout] test sqlite::tests::operational::sqlite_store_summarizes_ingestion_source_health ... ok
[INFO] [stdout] test sqlite::tests::operational::sqlite_store_round_trips_alerts ... ok
[INFO] [stdout] test sqlite::tests::formal_datasets::rows::sqlite_store_round_trips_formal_datasets_and_rows ... ok
[INFO] [stdout] test sqlite::tests::formal_datasets::snapshots::sqlite_store_round_trips_feature_snapshots ... ok
[INFO] [stdout] test sqlite::tests::operational::sqlite_store_links_ingestion_run_to_raw_response ... ok
[INFO] [stdout] test sqlite::tests::prediction_snapshots::sqlite_store_round_trips_prediction_snapshots ... ok
[INFO] [stdout] test sqlite::tests::releases::sqlite_store_round_trips_model_releases_and_active_pointer ... ok
[INFO] [stdout] test sqlite::tests::historical_replay::points::sqlite_store_round_trips_historical_assessment_points ... ok
[INFO] [stdout] test sqlite::tests::historical_replay::runs::sqlite_store_round_trips_historical_replay_run_lookup ... ok
[INFO] [stdout] test sqlite::tests::observations::sqlite_store_loads_latest_observation_lineage ... ok
[INFO] [stdout] test sqlite::tests::observations::sqlite_store_prefers_default_source_for_same_day_observations ... ok
[INFO] [stdout] test sqlite::tests::observations::sqlite_store_round_trips_seeded_observations ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/fc-worker/ca769037cfccb9a9/out/fc_worker-ca769037cfccb9a9)
[INFO] [stdout] 
[INFO] [stdout] running 209 tests
[INFO] [stdout] test commands::refresh::tests::refresh_status_row_uses_user_facing_source_health_terms ... ok
[INFO] [stdout] test commands::dataset::report::summary::tests::main_dataset_rejects_extension_only_scenario_without_protected_context ... ok
[INFO] [stdout] test commands::backfill::options::tests::refresh_frequency_skip_keeps_stale_monthly_series_eligible ... ok
[INFO] [stdout] test commands::pipeline::dataset::formal::tests::topology_repair_promotes_supported_primary_rows_out_of_evaluation ... ok
[INFO] [stdout] test commands::release::guardrails::tests::runtime_sanity_guardrails_reject_latest_20d_horizon_incoherence ... ok
[INFO] [stdout] test commands::backfill::options::tests::refresh_frequency_skip_ignores_daily_but_defers_slow_series_with_recent_watermark ... ok
[INFO] [stdout] test commands::dataset::report::summary::tests::main_dataset_accepts_protected_context_coverage ... ok
[INFO] [stdout] test commands::dataset::report::summary::tests::extension_dataset_accepts_extension_training_coverage ... ok
[INFO] [stdout] test commands::pipeline::dataset::formal::tests::protected_no_positive_main_rows_route_by_phase ... ok
[INFO] [stdout] test commands::release::guardrails::tests::runtime_sanity_guardrails_reject_positive_window_retention_regression ... ok
[INFO] [stdout] test commands::release::guardrails::tests::release_review_count_guardrails_allow_small_runtime_floor_noise ... ok
[INFO] [stdout] test commands::release::lifecycle::tests::approved_degraded_release_can_publish_for_bootstrap_metadata ... ok
[INFO] [stdout] test commands::refresh::tests::refresh_status_row_keeps_latest_error_as_evidence ... ok
[INFO] [stdout] test commands::release::lifecycle::tests::approved_degraded_release_is_activation_eligible_for_bootstrap_metadata ... ok
[INFO] [stdout] test commands::release::lifecycle::tests::approved_healthy_release_can_publish_formally ... ok
[INFO] [stdout] test commands::release::guardrails::tests::release_review_count_guardrails_reject_runtime_floor_hit_regression ... ok
[INFO] [stdout] test commands::release::lifecycle::tests::approved_healthy_release_is_activation_eligible ... ok
[INFO] [stdout] test commands::release::lifecycle::tests::failed_review_allows_restoring_baseline_from_rejected_candidate ... ok
[INFO] [stdout] test commands::release::lifecycle::tests::candidate_shadow_release_requires_review_only_publish ... ok
[INFO] [stdout] test commands::release::lifecycle::tests::shadow_release_is_not_activation_eligible ... ok
[INFO] [stdout] test commands::release::guardrails::tests::runtime_sanity_guardrails_allow_mild_latest_20d_neighbor_gap ... ok
[INFO] [stdout] test commands::release::lifecycle::tests::candidate_release_is_not_activation_eligible ... ok
[INFO] [stdout] test probability::overlay::tests::family_overlay_blocker_labels_match_minimum_support ... ok
[INFO] [stdout] test commands::release::lifecycle::tests::failed_review_blocks_candidate_activation ... ok
[INFO] [stdout] test commands::release::review::summary::tests::recommendation_mentions_baseline_fix_workstreams_without_actionability ... ok
[INFO] [stdout] test probability::overlay::tests::family_overlay_minimum_support_uses_aggregate_support_not_original_split_shape ... ok
[INFO] [stdout] test commands::pipeline::dataset::formal::tests::protected_extension_only_mixed_systemic_primary_routes_to_train ... ok
[INFO] [stdout] test commands::release::lifecycle::tests::release_review_loader_prefers_strict_rebuild_over_newer_default ... ok
[INFO] [stdout] test commands::release::lifecycle::tests::candidate_shadow_release_can_publish_for_review_only ... ok
[INFO] [stdout] test commands::release::guardrails::tests::runtime_sanity_guardrails_reject_60d_positive_window_retention_regression ... ok
[INFO] [stdout] test commands::release::guardrails::tests::actionability_review_skips_heuristic_bundle_read ... ok
[INFO] [stdout] test probability::overlay::tests::family_overlay_split_balanced_fallback_recovers_sparse_topology ... ok
[INFO] [stdout] test commands::pipeline::options::tests::bootstrap_formal_release_rejects_snapshot_dataset_source ... ok
[INFO] [stdout] test probability::overlay::tests::jpy_carry_dataset_builder_merges_duplicate_rows_without_losing_stronger_labels ... ok
[INFO] [stdout] test probability::overlay::tests::family_overlay_split_recovers_positive_and_early_warning_support_across_scenarios ... ok
[INFO] [stdout] test probability::overlay::tests::jpy_carry_proxy_only_audit_counts_protected_rows_as_candidate_support ... ok
[INFO] [stdout] test tests::options::dataset::extension_acute_dataset_min_date_allows_pre1990_history ... ok
[INFO] [stdout] test tests::options::dataset::extension_stress_dataset_allows_1990s_partial_coverage_gate ... ok
[INFO] [stdout] test tests::options::dataset::formal_dataset_slice_defaults_to_ignored_artifact_dir ... ok
[INFO] [stdout] test tests::options::dataset::parses_formal_dataset_summary_options ... ok
[INFO] [stdout] test tests::options::dataset::formal_main_dataset_accepts_pre_stlfsi_snapshot_when_date_effective_gate_is_met ... ok
[INFO] [stdout] test tests::options::dataset::sanitize_filename_component_replaces_windows_reserved_characters ... ok
[INFO] [stdout] test tests::options::dataset::parses_formal_dataset_build_options ... ok
[INFO] [stdout] test tests::options::dataset::parses_formal_dataset_slice_options ... ok
[INFO] [stdout] test tests::options::pipeline::family_hybrid_keeps_60d_base_plain_but_uses_family_overlay_features ... ok
[INFO] [stdout] test tests::options::pipeline::parses_pipeline_train_aux_dataset_keys ... ok
[INFO] [stdout] test tests::options::pipeline::parses_pipeline_train_defaults_to_formal_dataset ... ok
[INFO] [stdout] test release_review::coverage::tests::build_release_review_scenario_coverage_marks_focus_and_backtest_counts ... ok
[INFO] [stdout] test tests::options::dataset::extension_acute_dataset_allows_proxy_feature_gate_without_vix ... ok
[INFO] [stdout] test tests::options::pipeline::parses_pipeline_train_family_conditional_shape ... ok
[INFO] [stdout] test tests::options::pipeline::parses_pipeline_train_dry_run_flag ... ok
[INFO] [stdout] test commands::pipeline::options::tests::bootstrap_formal_release_accepts_formal_dataset_source ... ok
[INFO] [stdout] test tests::options::pipeline::parses_pipeline_train_interaction_tail_shape ... ok
[INFO] [stdout] test tests::options::refresh::parses_refresh_latest_overrides ... ok
[INFO] [stdout] test tests::options::release::parses_release_probability_slice_options ... ok
[INFO] [stdout] test tests::options::release::parses_release_formal_probability_slice_options ... ok
[INFO] [stdout] test tests::options::release::parses_release_publish_options ... ok
[INFO] [stdout] test tests::options::release::parses_release_formal_probability_compare_options ... ok
[INFO] [stdout] test tests::options::release::release_formal_probability_compare_defaults_to_compare_artifact_dir ... ok
[INFO] [stdout] test tests::options::release::release_formal_probability_slice_defaults_to_formal_dataset_artifact_dir ... ok
[INFO] [stdout] test tests::options::release::release_probability_slice_defaults_to_ignored_artifact_dir ... ok
[INFO] [stdout] test tests::options::release::release_review_defaults_to_ignored_artifact_dir ... ok
[INFO] [stdout] test tests::options::pipeline::parses_pipeline_train_snapshot_override ... ok
[INFO] [stdout] test probability::overlay::tests::mixed_systemic_audit_counts_gate_active_rows_with_chronic_pressure_proxy ... ok
[INFO] [stdout] test tests::options::snapshots::parses_feature_snapshot_build_options ... ok
[INFO] [stdout] test tests::options::release::release_publish_rejects_review_only_activate_combination ... ok
[INFO] [stdout] test tests::options::snapshots::parses_feature_snapshot_force_rebuild_option ... ok
[INFO] [stdout] test tests::options::pipeline::parses_pipeline_train_family_hybrid_shape ... ok
[INFO] [stdout] test tests::options::refresh::parses_audit_export_overrides ... ok
[INFO] [stdout] test tests::options::release::parses_release_publish_review_only_option ... ok
[INFO] [stdout] test tests::options::refresh::parses_refresh_latest_defaults ... ok
[INFO] [stdout] test tests::options::dataset::formal_dataset_summary_defaults_to_ignored_artifact_dir ... ok
[INFO] [stdout] test probability::threshold::tests::twenty_day_threshold_score_penalizes_overbroad_thresholds ... ok
[INFO] [stdout] test tests::quality::actionability::actionability_bundle_quality_gate_rejects_overbroad_low_precision_levels ... ok
[INFO] [stdout] test tests::quality::actionability::actionability_calibration_strategy_rejects_inverting_fit ... ok
[INFO] [stdout] test tests::options::release::parses_release_switch_options ... ok
[INFO] [stdout] test tests::options::release::parses_release_review_options ... ok
[INFO] [stdout] test tests::quality::actionability::actionability_summary_distinguishes_advance_late_and_missed_scenarios ... ok
[INFO] [stdout] test tests::quality::probability_threshold_regime_repair::regime_support_adjustment_rejects_prewarning_only_20d_threshold ... ok
[INFO] [stdout] test tests::options::snapshots::parses_prediction_snapshot_query_options ... ok
[INFO] [stdout] test tests::quality::probability_threshold_regime_repair::regime_support_adjustment_rejects_weak_5d_threshold_with_normal_bleed ... ok
[INFO] [stdout] test tests::quality::actionability::actionability_threshold_selection_avoids_zero_hit_fixed_cutoff ... ok
[INFO] [stdout] test tests::quality::probability_threshold_regime_repair::threshold_diagnostics_explain_cooldown_bleed_repair_rejections ... ok
[INFO] [stdout] test tests::quality::actionability::actionability_threshold_selection_raises_cutoff_when_low_threshold_is_overbroad ... ok
[INFO] [stdout] test tests::quality::probability_thresholds::probability_calibration_strategy_keeps_raw_when_calibration_flattens_early_warning ... ok
[INFO] [stdout] test tests::quality::probability_threshold_regime_repair::regime_support_adjustment_rejects_60d_threshold_that_ties_cooldown_hits ... ok
[INFO] [stdout] test tests::quality::probability_threshold_regime_repair::regime_support_adjustment_raises_60d_threshold_to_suppress_cooldown_bleed ... ok
[INFO] [stdout] test tests::quality::probability_threshold_regime_repair::regime_support_adjustment_rejects_soft_20d_repair_when_cooldown_bleeds ... ok
[INFO] [stdout] test tests::quality::probability_thresholds::probability_calibration_strategy_rejects_calibration_that_crushes_evaluation_regime_support ... ok
[INFO] [stdout] test tests::quality::probability_thresholds::probability_decision_threshold_keeps_more_recall_for_60d_when_precision_tradeoff_is_small ... ok
[INFO] [stdout] test tests::quality::probability_thresholds::probability_calibration_strategy_rejects_inverting_fit ... ok
[INFO] [stdout] test tests::quality::probability_thresholds::probability_decision_threshold_allows_low_calibrated_ranges ... ok
[INFO] [stdout] test tests::quality::probability_thresholds::probability_decision_threshold_can_drop_below_one_percent ... ok
[INFO] [stdout] test tests::quality::probability_thresholds::calibration_regime_evidence_surfaces_protected_no_positive_main_episode_rows ... ok
[INFO] [stdout] test tests::quality::probability_thresholds::probability_calibration_strategy_keeps_inverting_fit_for_reversed_raw_ranking ... ok
[INFO] [stdout] test tests::quality::probability_threshold_regime_repair::threshold_diagnostics_count_accepted_soft_repair_candidates ... ok
[INFO] [stdout] test tests::quality::probability_thresholds::probability_decision_threshold_raises_cutoff_when_low_threshold_is_overbroad ... ok
[INFO] [stdout] test tests::quality::probability_thresholds::threshold_selection_excludes_in_crisis_negatives_for_60d_forward_crisis ... ok
[INFO] [stdout] test tests::quality::regime_guardrails::probability_guardrails_reject_cooldown_bleed_on_medium_horizons ... ok
[INFO] [stdout] test tests::quality::probability_threshold_regime_repair::regime_support_adjustment_uses_soft_forward_crisis_targets_for_20d_repair ... ok
[INFO] [stdout] test tests::quality::probability_thresholds::regime_support_adjustment_repairs_sparse_20d_prewarning_hits_at_extreme_threshold ... ok
[INFO] [stdout] test tests::quality::regime_guardrails::offline_regime_summary_records_probability_tail_diagnostics ... ok
[INFO] [stdout] test tests::quality::probability_thresholds::probability_decision_threshold_prefers_precision_over_low_cutoff_noise ... ok
[INFO] [stdout] test tests::quality::regime_guardrails::probability_guardrails_allow_zero_positive_and_cooldown_threshold_hits ... ok
[INFO] [stdout] test tests::quality::regime_guardrails::probability_guardrails_reject_medium_horizon_threshold_when_cooldown_hits_match_positive_window ... ok
[INFO] [stdout] test tests::quality::regime_guardrails::probability_guardrails_reject_medium_horizon_threshold_above_positive_window_average ... ok
[INFO] [stdout] test tests::quality::probability_thresholds::regime_support_adjustment_lowers_60d_threshold_when_base_misses_prewarning_buffer ... ok
[INFO] [stdout] test tests::quality::probability_thresholds::regime_support_adjustment_repairs_over_tight_20d_threshold_without_lift_gate ... ok
[INFO] [stdout] test tests::review::focus::diagnostics::release_review_focus_diagnostic_classifies_prepare_weeks_plateau_gap_as_score_confirmation ... ok
[INFO] [stdout] test tests::quality::probability_thresholds::threshold_diagnostics_rejects_sparse_positive_window_support_as_usable ... ok
[INFO] [stdout] test tests::review::focus::diagnostics::release_review_focus_diagnostic_ignores_weak_defend_only_runtime_floor_blips ... ok
[INFO] [stdout] test tests::review::focus::diagnostics::release_review_focus_diagnostic_includes_runtime_floor_only_scenarios_without_l2 ... ok
[INFO] [stdout] test tests::review::focus::diagnostics::release_review_focus_diagnostic_includes_structural_only_missed_scenarios ... ok
[INFO] [stdout] test tests::quality::regime_guardrails::runtime_regime_classifier_flags_cooldown_bleed ... ok
[INFO] [stdout] test tests::quality::regime_guardrails::runtime_regime_separation_detects_calibration_crush ... ok
[INFO] [stdout] test tests::review::focus::failure_modes::release_review_failure_mode_summary_groups_focus_scenarios ... ok
[INFO] [stdout] test tests::quality::render::render_dataset_csv_includes_scenario_role_columns ... ok
[INFO] [stdout] test tests::quality::render::render_formal_dataset_slice_csv_includes_feature_columns ... ok
[INFO] [stdout] test tests::review::focus::comparison::release_review_backtest_comparison_marks_lost_timely_warning ... ok
[INFO] [stdout] test tests::review::focus::continuity::release_review_focus_diagnostic_counts_posture_continuity_facets ... ok
[INFO] [stdout] test tests::review::focus::diagnostics::release_review_focus_diagnostic_highlights_missing_actionable_window ... ok
[INFO] [stdout] test tests::review::historical_audit::release_review_historical_audit_priorities_refine_residual_signal_gap_reviews ... ok
[INFO] [stdout] test tests::review::focus::diagnostics::release_review_focus_diagnostic_suppresses_candidate_failure_when_l3_is_not_worse ... ok
[INFO] [stdout] test tests::review::historical_audit::release_review_historical_audit_actions_translate_attribution_to_next_step ... ok
[INFO] [stdout] test tests::review::historical_audit::release_review_historical_audit_attribution_distinguishes_shared_and_regression ... ok
[INFO] [stdout] test tests::review::historical_audit::release_review_historical_audit_workstreams_group_priorities ... ok
[INFO] [stdout] test tests::review::historical_audit::release_review_historical_audit_attribution_marks_revealed_next_blocker ... ok
[INFO] [stdout] test tests::quality::regime_guardrails::offline_regime_classifier_uses_positive_window_gap_not_only_buffer_lift ... ok
[INFO] [stdout] test tests::review::historical_audit::release_review_historical_audit_priorities_map_scenarios_to_workstreams ... ok
[INFO] [stdout] test tests::quality::regime_guardrails::offline_regime_tail_top_samples_use_model_contribution_and_deduplicate_context ... ok
[INFO] [stdout] test tests::quality::regime_guardrails::probability_guardrails_reject_zero_usable_early_warning_horizons ... ok
[INFO] [stdout] test tests::review::historical_audit::release_review_historical_audit_takeaways_surface_residual_signal_gap_guidance ... ok
[INFO] [stdout] test tests::review::reporting::write_release_review_report_keeps_history_mode_in_exported_artifact_name ... ok
[INFO] [stdout] test tests::review::runtime::release_review_actionable_diagnostic_uses_runtime_derived_strict_p20d_gate ... ok
[INFO] [stdout] test tests::review::runtime::release_review_runtime_separation_comparison_highlights_60d_floor_gap ... ok
[INFO] [stdout] test tests::review::historical_audit::release_review_historical_audit_takeaways_explain_primary_workstreams ... ok
[INFO] [stdout] test tests::review::runtime::release_review_runtime_separation_takeaways_explain_floor_gap ... ok
[INFO] [stdout] test tests::review::runtime::release_review_structured_signal_counts_accept_history_hysteresis_months_clause ... ok
[INFO] [stdout] test tests::review::reporting::render_release_review_markdown_keeps_runtime_separation_and_dual_counts ... ok
[INFO] [stdout] test tests::review::historical_audit::release_review_historical_audit_workstreams_with_focus_aggregate_gate_gap_point_counts ... ok
[INFO] [stdout] test tests::review::runtime::release_review_structured_signal_counts_distinguish_strict_and_runtime_hits ... ok
[INFO] [stdout] test tests::review::runtime::release_review_structured_signal_counts_accept_probability_plateau_clause_for_formal_main ... ok
[INFO] [stdout] test tests::review::runtime::release_review_structured_signal_counts_require_confirmation_for_saturated_weeks_plateau_hysteresis ... ok
[INFO] [stdout] test tests::review::runtime::release_review_structured_signal_counts_accept_relaxed_strict_p20d_mapping ... ok
[INFO] [stdout] test tests::split_requirements::actionability_guardrails_apply_level_specific_rate_thresholds ... ok
[INFO] [stdout] test tests::review::runtime::release_review_structured_signal_counts_accept_weeks_trigger_dominant_clause ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_broad_score_family_cap_gradient_only_activates_for_family_context_sets ... ok
[INFO] [stdout] test tests::split_requirements::scenario_aware_split_spreads_adjacent_scenarios_across_calibration_and_evaluation ... ok
[INFO] [stdout] test tests::split_requirements::extension_stress_split_uses_20d_60d_prepare_hedge_requirements ... ok
[INFO] [stdout] test tests::split_requirements::probability_decision_threshold_keeps_5d_floor_conservative ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_broad_score_family_caps_only_apply_when_family_context_exists ... ok
[INFO] [stdout] test tests::review::runtime::release_review_structured_signal_counts_accept_history_hysteresis_months_structural_carry_clause ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_curve_caps_apply_to_60d_formal_heads ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_curve_cap_gradient_applies_to_60d_formal_heads ... ok
[INFO] [stdout] test tests::review::runtime::release_review_structured_signal_counts_accept_relaxed_probability_plateau_clause ... ok
[INFO] [stdout] test tests::review::historical_audit::release_review_historical_audit_takeaways_prefer_point_count_signal_for_gate_priority ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_monotonic_interaction_sign_gradient_pushes_wrong_direction_up ... ok
[INFO] [stdout] test tests::split_requirements::actionability_guardrails_flag_narrow_or_zero_hit_reviews ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_rate_shock_family_cap_gradient_pushes_excess_weight_down ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_raw_vix_60d_family_cap_gradient_only_activates_for_family_context_sets ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_rate_shock_family_caps_apply_on_20d_only ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_usdjpy_change_bounds_gradient_pushes_signed_features_to_neutral ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_usdjpy_interaction_family_cap_gradient_only_activates_for_family_context_sets ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_jpy_carry_caps_apply_on_20d_only ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_usdjpy_level_family_cap_only_applies_when_family_context_exists ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_jpy_carry_family_cap_gradient_pushes_excess_weight_down ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_usdjpy_signed_change_is_neutralized_across_horizons ... ok
[INFO] [stdout] test tests::review::runtime::release_review_structured_signal_counts_disable_bridge_for_trend_formal_main ... ok
[INFO] [stdout] test tests::training::scenario_regimes::forward_crisis_training_regime_marks_buffer_crisis_and_cooldown ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_usdjpy_tail_cap_keeps_high_level_tail_auxiliary ... ok
[INFO] [stdout] test tests::training::scenario_regimes::action_window_label_extends_before_crisis_start_and_stays_near_onset ... ok
[INFO] [stdout] test tests::training::scenario_regimes::protected_context_promotes_main_regime_buffer_without_changing_positive_labels ... ok
[INFO] [stdout] test tests::training::scenario_regimes::rate_shock_2022_override_keeps_protected_context_visible_beyond_crisis_start ... ok
[INFO] [stdout] test tests::training::scenario_regimes::formal_main_context_scenarios_include_protected_window_set ... ok
[INFO] [stdout] test tests::training::sign_constraints::forward_crisis_sign_gradient_pushes_wrong_direction_coefficients_toward_zero ... ok
[INFO] [stdout] test tests::training::sign_constraints::forward_crisis_curve_tail_bound_gradient_pushes_too_negative_weight_up ... ok
[INFO] [stdout] test tests::training::scenario_regimes::forward_crisis_label_uses_acute_anchor_for_5d_without_dropping_other_crisis_starts ... ok
[INFO] [stdout] test tests::training::visibility::best_effort_visibility_uses_release_rule_not_backfill_fetch_time_for_fred ... ok
[INFO] [stdout] test tests::training::visibility::strict_visibility_requires_timestamp_to_arrive_before_cutoff ... ok
[INFO] [stdout] test tests::training::sign_constraints::forward_crisis_tail_sign_projection_applies_on_forward_horizons ... ok
[INFO] [stdout] test tests::training::weighting::negative_weights::forward_crisis_negative_weights_and_calibration_scope_follow_regime ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_usdjpy_level_family_cap_gradient_only_activates_for_family_context_sets ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_usdjpy_tail_cap_gradient_applies_across_feature_sets ... ok
[INFO] [stdout] test tests::training::weighting::pairwise::forward_crisis_20d_pairwise_prioritizes_positive_window_over_buffer ... ok
[INFO] [stdout] test tests::training::weighting::pairwise::forward_crisis_pairwise_targets_push_buffer_centroid_above_normal ... ok
[INFO] [stdout] test tests::training::sign_constraints::forward_crisis_sign_projection_clips_wrong_direction_monotonic_interactions ... ok
[INFO] [stdout] test tests::split_requirements::extension_acute_split_allows_two_scenarios_with_single_scenario_evaluation ... ok
[INFO] [stdout] test tests::training::weighting::target_labels::forward_crisis_60d_generic_prewarning_gets_early_warning_weight_without_lifting_cooldown ... ok
[INFO] [stdout] test tests::training::weighting::target_labels::forward_crisis_60d_prepare_buffer_uses_episode_native_objective ... ok
[INFO] [stdout] test tests::training::weighting::target_labels::forward_crisis_soft_positive_targets_receive_training_weight_without_lifting_cooldown ... ok
[INFO] [stdout] test tests::training::weighting::target_labels::forward_crisis_60d_prepare_soft_positive_gets_weight_but_cooldown_stays_negative ... ok
[INFO] [stdout] test tests::training::weighting::target_labels::forward_crisis_training_target_softens_buffer_and_cooldown_negatives ... ok
[INFO] [stdout] test tests::training::weighting::positive_weights::positive_sample_action_weight_prefers_early_role_aligned_systemic_samples_for_60d ... ok
[INFO] [stdout] test tests::training::weighting::target_labels::forward_crisis_20d_protected_no_positive_main_hedge_buffer_uses_conservative_objective ... ok
[INFO] [stdout] test training::pipeline::tests::snapshot_dataset_source_generates_candidate_shadow_release_state ... ok
[INFO] [stdout] test training::pipeline::tests::formal_train_probability_generates_candidate_shadow_release_state ... ok
[INFO] [stdout] test training::pipeline::tests::formal_bootstrap_generates_approved_healthy_release_state ... ok
[INFO] [stdout] test training::pipeline::tests::snapshot_bootstrap_mode_still_generates_candidate_shadow_release_state ... ok
[INFO] [stdout] test training::pipeline::tests::sync_artifact_under_root_copies_to_matching_relative_deploy_path ... ok
[INFO] [stdout] test tests::training::weighting::pairwise::forward_crisis_60d_pairwise_prioritizes_cooldown_suppression ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_raw_trend_family_caps_apply_on_supported_horizons ... ok
[INFO] [stdout] test tests::training::family_constraints::forward_crisis_usdjpy_interaction_family_cap_only_applies_when_family_context_exists ... ok
[INFO] [stdout] test tests::training::weighting::positive_weights::forward_crisis_positive_weight_boosts_extension_role_on_supported_horizon ... ok
[INFO] [stdout] test tests::training::sign_constraints::forward_crisis_sign_projection_clips_wrong_direction_coefficients ... ok
[INFO] [stdout] test commands::snapshot::execute::tests::load_training_snapshots_rejects_formal_release ... ok
[INFO] [stdout] test commands::snapshot::execute::tests::load_training_snapshots_accepts_legacy_heuristic_snapshots_without_release_manifest ... ok
[INFO] [stdout] test commands::snapshot::execute::tests::load_training_snapshots_rejects_legacy_formal_snapshots_without_release_manifest ... ok
[INFO] [stdout] test commands::snapshot::execute::tests::load_training_snapshots_accepts_heuristic_release ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/build/fc-worker/574988d2779727d4/out/fc_worker-574988d2779727d4)
[INFO] [stdout] test tests::quality::probability_threshold_regime_repair::regime_support_adjustment_keeps_20d_threshold_actionable_when_prewarning_separates ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 209 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests fc_api
[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] [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] [stderr]    Doc-tests fc_domain
[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] [stderr]    Doc-tests fc_ingestion
[INFO] [stderr]    Doc-tests fc_scoring
[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] [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] [stderr]    Doc-tests fc_storage
[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] [stderr]    Doc-tests fc_worker
[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" "7e35bf9ab46e3bdcc7f4580b7188290276cfd97c15b31413f413ca13a4f5aa4a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7e35bf9ab46e3bdcc7f4580b7188290276cfd97c15b31413f413ca13a4f5aa4a", kill_on_drop: false }`
[INFO] [stdout] 7e35bf9ab46e3bdcc7f4580b7188290276cfd97c15b31413f413ca13a4f5aa4a
