[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