[INFO] cloning repository https://github.com/GhostXia/AIRP-Core [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/GhostXia/AIRP-Core" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGhostXia%2FAIRP-Core", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGhostXia%2FAIRP-Core'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 8b98491877840263da7532c2fa5303563624cade [INFO] testing GhostXia/AIRP-Core against 1.97.0-beta.6 for beta-1.98-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGhostXia%2FAIRP-Core" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-7-tc1/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/GhostXia/AIRP-Core [INFO] finished tweaking git repo https://github.com/GhostXia/AIRP-Core [INFO] tweaked toml for git repo https://github.com/GhostXia/AIRP-Core written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/GhostXia/AIRP-Core on toolchain 1.97.0-beta.6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/GhostXia/AIRP-Core 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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tower_governor v0.4.3 [INFO] [stderr] Downloaded quanta v0.12.6 [INFO] [stderr] Downloaded spinning_top v0.3.0 [INFO] [stderr] Downloaded uuid v1.23.1 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.71 [INFO] [stderr] Downloaded forwarded-header-value v0.1.1 [INFO] [stderr] Downloaded nonempty v0.7.0 [INFO] [stderr] Downloaded nonzero_ext v0.3.0 [INFO] [stderr] Downloaded futures-timer v3.0.4 [INFO] [stderr] Downloaded sse-stream v0.2.3 [INFO] [stderr] Downloaded rmcp-macros v1.7.0 [INFO] [stderr] Downloaded schemars_derive v1.2.1 [INFO] [stderr] Downloaded pastey v0.2.3 [INFO] [stderr] Downloaded openssl-sys v0.9.116 [INFO] [stderr] Downloaded governor v0.6.3 [INFO] [stderr] Downloaded raw-cpuid v11.6.0 [INFO] [stderr] Downloaded openssl v0.10.80 [INFO] [stderr] Downloaded rmcp v1.7.0 [INFO] [stderr] Downloaded web-sys v0.3.98 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] d9c6c213266a4f355905d2ffcf5296b4114544fec5ca038cb55a963a531bd4de [INFO] running `Command { std: "docker" "start" "d9c6c213266a4f355905d2ffcf5296b4114544fec5ca038cb55a963a531bd4de", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d9c6c213266a4f355905d2ffcf5296b4114544fec5ca038cb55a963a531bd4de", 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" "d9c6c213266a4f355905d2ffcf5296b4114544fec5ca038cb55a963a531bd4de" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d9c6c213266a4f355905d2ffcf5296b4114544fec5ca038cb55a963a531bd4de", 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" "d9c6c213266a4f355905d2ffcf5296b4114544fec5ca038cb55a963a531bd4de" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.186 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling bitflags v2.11.1 [INFO] [stderr] Compiling pkg-config v0.3.33 [INFO] [stderr] Compiling cc v1.2.62 [INFO] [stderr] Compiling litemap v0.8.2 [INFO] [stderr] Compiling writeable v0.6.3 [INFO] [stderr] Compiling icu_normalizer_data v2.2.0 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling zerovec-derive v0.11.3 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling icu_properties_data v2.2.0 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling hashbrown v0.17.1 [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling openssl v0.10.80 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling serde_derive_internals v0.29.1 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling typenum v1.20.0 [INFO] [stderr] Compiling rand_core v0.10.1 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling ref-cast v1.0.25 [INFO] [stderr] Compiling portable-atomic v1.13.1 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling raw-cpuid v11.6.0 [INFO] [stderr] Compiling ref-cast-impl v1.0.25 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling indexmap v2.14.0 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling dyn-clone v1.0.20 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling cpufeatures v0.3.0 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling chacha20 v0.10.0 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling zerofrom v0.1.8 [INFO] [stderr] Compiling openssl-sys v0.9.116 [INFO] [stderr] Compiling yoke v0.8.2 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling zerovec v0.11.6 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling tokio v1.52.3 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling dashmap v5.5.3 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling schemars_derive v1.2.1 [INFO] [stderr] Compiling spinning_top v0.3.0 [INFO] [stderr] Compiling tinystr v0.8.3 [INFO] [stderr] Compiling potential_utf v0.1.5 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling icu_locale_core v2.2.0 [INFO] [stderr] Compiling icu_collections v2.2.0 [INFO] [stderr] Compiling axum-macros v0.4.2 [INFO] [stderr] Compiling pin-project-internal v1.1.13 [INFO] [stderr] Compiling rmcp v1.7.0 [INFO] [stderr] Compiling quanta v0.12.6 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling nonzero_ext v0.3.0 [INFO] [stderr] Compiling matchit v0.7.3 [INFO] [stderr] Compiling schemars v0.8.22 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling futures-timer v3.0.4 [INFO] [stderr] Compiling nonempty v0.7.0 [INFO] [stderr] Compiling icu_provider v2.2.0 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling schemars v1.2.1 [INFO] [stderr] Compiling forwarded-header-value v0.1.1 [INFO] [stderr] Compiling clap_derive v4.6.1 [INFO] [stderr] Compiling pin-project v1.1.13 [INFO] [stderr] Compiling rustls-pki-types v1.14.1 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling rand v0.10.1 [INFO] [stderr] Compiling uuid v1.23.1 [INFO] [stderr] Compiling icu_properties v2.2.0 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling schemars_derive v0.8.22 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling axum-core v0.4.5 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling rmcp-macros v1.7.0 [INFO] [stderr] Compiling sse-stream v0.2.3 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling encoding_rs v0.8.35 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling pastey v0.2.3 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling rand v0.8.6 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling tower-http v0.5.2 [INFO] [stderr] Compiling idna_adapter v1.2.2 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling governor v0.6.3 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling clap v4.6.1 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling tower-http v0.6.11 [INFO] [stderr] Compiling h2 v0.4.14 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling axum v0.7.9 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling tower_governor v0.4.3 [INFO] [stderr] Compiling airp-core v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 31s [INFO] running `Command { std: "docker" "inspect" "d9c6c213266a4f355905d2ffcf5296b4114544fec5ca038cb55a963a531bd4de", 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" "d9c6c213266a4f355905d2ffcf5296b4114544fec5ca038cb55a963a531bd4de" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling bitflags v2.11.1 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling fastrand v2.4.1 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling deadpool-runtime v0.1.4 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling unarray v0.1.4 [INFO] [stderr] Compiling openssl v0.10.80 [INFO] [stderr] Compiling raw-cpuid v11.6.0 [INFO] [stderr] Compiling tower-http v0.6.11 [INFO] [stderr] Compiling tower-http v0.5.2 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling deadpool v0.12.3 [INFO] [stderr] Compiling rand_xorshift v0.4.0 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.9.4 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling schemars v1.2.1 [INFO] [stderr] Compiling quanta v0.12.6 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling governor v0.6.3 [INFO] [stderr] Compiling rmcp v1.7.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling rusty-fork v0.3.1 [INFO] [stderr] Compiling proptest v1.11.0 [INFO] [stderr] Compiling axum v0.7.9 [INFO] [stderr] Compiling wiremock v0.6.5 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling tower_governor v0.4.3 [INFO] [stderr] Compiling airp-core v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 55.38s [INFO] running `Command { std: "docker" "inspect" "d9c6c213266a4f355905d2ffcf5296b4114544fec5ca038cb55a963a531bd4de", 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" "d9c6c213266a4f355905d2ffcf5296b4114544fec5ca038cb55a963a531bd4de" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.49s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/airp_core-c6640298966ef941) [INFO] [stdout] [INFO] [stdout] running 300 tests [INFO] [stdout] test adapter::tests::test_backend_engine_default_is_direct ... ok [INFO] [stdout] test adapter::tests::test_backend_engine_serde_roundtrip ... ok [INFO] [stdout] test adapter::tests::test_chat_message_roundtrip ... ok [INFO] [stdout] test adapter::tests::test_parse_anthropic_delta_line_extracts_text ... ok [INFO] [stdout] test adapter::tests::test_parse_anthropic_delta_line_no_text_returns_none ... ok [INFO] [stdout] test adapter::tests::test_message_role_serde_lowercase ... ok [INFO] [stdout] test adapter::tests::test_parse_openai_delta_content ... ok [INFO] [stdout] test adapter::tests::test_parse_openai_ignores_non_data_lines ... ok [INFO] [stdout] test adapter::tests::test_parse_openai_invalid_json_is_error ... ok [INFO] [stdout] test adapter::tests::test_parse_openai_no_content_delta ... ok [INFO] [stdout] test adapter::tests::test_parse_openai_done_marker ... ok [INFO] [stdout] test agent::tests::max_steps_one_is_single_turn ... ok [INFO] [stdout] test adapter::tests::test_parse_anthropic_delta_line_invalid_json_returns_none ... ok [INFO] [stdout] test agent::tests::subagent_context_has_no_orchestrator_noise ... ok [INFO] [stdout] test auto_converter::tests::test_cf5_does_not_overwrite_existing_md ... ok [INFO] [stdout] test auto_converter::tests::test_cf5_main_lorebook_not_touched ... ok [INFO] [stdout] test auto_converter::tests::test_cf5_legacy_worldbooks_dir_still_scanned ... ok [INFO] [stdout] test auto_converter::tests::test_cf5_extra_dir_scanned ... ok [INFO] [stdout] test chat_pipeline::tests::tests_dx1::test_dx1_empty_user_id_uses_data_root ... ok [INFO] [stdout] test chat_pipeline::tests::tests_dx1::test_dx1_invalid_user_id_rejected ... ok [INFO] [stdout] test chat_pipeline::tests::tests_dx1::test_dx1_no_user_id_uses_data_root ... ok [INFO] [stdout] test chat_pipeline::tests::tests_dx1::test_dx1_different_users_get_different_roots ... ok [INFO] [stdout] test chat_pipeline::tests::tests_dx1::test_dx1_user_id_resolves_under_users_dir ... ok [INFO] [stdout] test chat_pipeline::tests::tests_mls3::test_mls3_history_appended_on_first_call ... ok [INFO] [stdout] test chat_pipeline::tests::tests_mls9::test_ls9_empty_state_object_persisted ... ok [INFO] [stdout] test chat_pipeline::tests::tests_mls9::test_ls9_inject_state_max_from_state_takes_priority ... ok [INFO] [stdout] test chat_pipeline::tests::tests_mls9::test_ls9_extract_persist_inject_roundtrip ... ok [INFO] [stdout] test chat_pipeline::tests::tests_mls3::test_mls3_live_json_overwritten_history_appended ... ok [INFO] [stdout] test chat_pipeline::tests::tests_state_extract::mixed_valid_invalid_takes_last_valid ... ok [INFO] [stdout] test chat_pipeline::tests::tests_state_extract::multiple_tags_last_wins ... ok [INFO] [stdout] test chat_pipeline::tests::tests_state_extract::no_tag_unchanged ... ok [INFO] [stdout] test chat_pipeline::tests::tests_state_extract::single_tag_stripped_and_parsed ... ok [INFO] [stdout] test chat_pipeline::tests::tests_state_extract::invalid_json_block_removed_state_none ... ok [INFO] [stdout] test chat_pipeline::tests::tests_state_extract::unclosed_tag_kept_in_text ... ok [INFO] [stdout] test chat_store::tests::test_jsonl_persistence_layout ... ok [INFO] [stdout] test chat_pipeline::tests::tests_mls3::test_mls3_history_accumulates_multiple_calls ... ok [INFO] [stdout] test chat_store::tests::test_legacy_json_migration ... ok [INFO] [stdout] test chat_store::tests::test_pre_cf2_jsonl_migration ... ok [INFO] [stdout] test config::tests::test_app_config_validate_propagates_volume_failure ... ok [INFO] [stdout] test config::tests::test_env_invalid_port_does_not_panic_keeps_previous ... ok [INFO] [stdout] test chat_store::tests::test_chat_log_crud ... ok [INFO] [stdout] test config::tests::test_env_override_beats_data_settings ... ok [INFO] [stdout] test config::tests::test_invalid_volume_in_settings_caught_by_validate ... ok [INFO] [stdout] test config::tests::test_full_chain_default_then_settings_then_env ... ok [INFO] [stdout] test config::tests::test_merge_data_settings_empty_strings_ignored ... ok [INFO] [stdout] test config::tests::test_merge_data_settings_overrides_non_empty_fields ... ok [INFO] [stdout] test config::tests::test_provider_deserialize_from_settings ... ok [INFO] [stdout] test config::tests::test_volume_config_nested_merge_from_settings ... ok [INFO] [stdout] test config::tests::test_volume_config_validate_ok_on_default ... ok [INFO] [stdout] test config::tests::test_merge_data_settings_ignores_unknown_fields ... ok [INFO] [stdout] test config::tests::test_merge_data_settings_missing_file_is_noop ... ok [INFO] [stdout] test config::tests::test_volume_config_validate_rejects_soft_ge_hard ... ok [INFO] [stdout] test config::tests::test_volume_config_validate_rejects_zero_interval ... ok [INFO] [stdout] test daemon::tests::test_a2_5_constant_time_eq ... ok [INFO] [stdout] test config::tests::test_volume_config_validate_rejects_bad_temperature ... ok [INFO] [stdout] test chat_pipeline::tests::tests_dx1::test_dx1_pipeline_user_id_creates_isolated_root ... ok [INFO] [stdout] test chat_pipeline::tests::tests::prepare_succeeds_with_minimal_inputs ... ok [INFO] [stdout] test chat_pipeline::tests::tests::prepare_rejects_absolute_lorebook_path ... ok [INFO] [stdout] test chat_pipeline::tests::tests::prepare_rejects_malformed_inline_character_card_json ... ok [INFO] [stdout] test chat_pipeline::tests::tests::prepare_rejects_traversal_in_character_card_id ... ok [INFO] [stdout] test chat_pipeline::tests::tests::prepare_resolves_provider_priority_request_over_default ... ok [INFO] [stdout] test daemon::tests::test_audit_10_version_endpoint_returns_metadata ... ok [INFO] [stdout] test daemon::tests::test_audit_10_version_unauthenticated_with_key_set ... ok [INFO] [stdout] test daemon::tests::test_dx2_bearer_prefix_required ... ok [INFO] [stdout] test chat_pipeline::tests::tests_ms6::test_ms6_invalid_scene_id_rejected ... ok [INFO] [stdout] test chat_pipeline::tests::tests_ms6::test_ms6_scene_pipeline_character_id_none_in_finalizer ... ok [INFO] [stdout] test chat_pipeline::tests::tests::prepare_loads_chat_history_when_omitted ... ok [INFO] [stdout] test chat_pipeline::tests::tests::prepare_includes_default_seal_filter ... ok [INFO] [stdout] test chat_pipeline::tests::tests_ms6::test_ms6_scene_pipeline_builds_multi_char_prompt ... ok [INFO] [stdout] test chat_pipeline::tests::tests::prepare_rejects_malformed_inline_lorebook_json ... ok [INFO] [stdout] test daemon::tests::test_dx2_no_key_all_pass ... ok [INFO] [stdout] test daemon::tests::test_ls7_schema_404_when_no_file ... ok [INFO] [stdout] test daemon::tests::test_ls5_history_404_when_no_file ... ok [INFO] [stdout] test daemon::tests_dx4::test_dx4_bearer_token_used_as_key ... ok [INFO] [stdout] test daemon::tests_dx4::test_dx4_ip_used_when_no_auth_header ... ok [INFO] [stdout] test daemon::tests_dx4::test_a2_7_falls_back_to_fixed_key_without_auth_or_connect_info ... ok [INFO] [stdout] test data_dir::security::tests::audit_4_balanced_parent_dirs_stay_under_base ... ok [INFO] [stdout] test daemon::tests_dx4::test_dx4_long_token_truncated_to_32_chars ... ok [INFO] [stdout] test data_dir::security::tests::audit_4_single_dot_components_resolved_under_base ... ok [INFO] [stdout] test data_dir::security::tests::audit_4_unicode_homoglyph_passes_validation ... ok [INFO] [stdout] test data_dir::security::tests::audit_4_empty_after_trim_rejected ... ok [INFO] [stdout] test daemon::tests::test_dx2_missing_header_returns_401 ... ok [INFO] [stdout] test daemon::tests::test_dx2_correct_key_passes ... ok [INFO] [stdout] test daemon::tests::test_ls5_history_limit_param ... ok [INFO] [stdout] test daemon::tests::test_mls3_state_bad_char_id_returns_400 ... ok [INFO] [stdout] test daemon::tests::test_ls7_schema_returns_json ... ok [INFO] [stdout] test data_dir::security::tests::prop_validate_id_accepts_clean_names ... ok [INFO] [stdout] test daemon::tests::test_ms3_add_character_to_scene ... ok [INFO] [stdout] test data_dir::tests::test_cf1_char_analysis_dir ... ok [INFO] [stdout] test data_dir::tests::test_cf1_char_card_dir_creates_and_returns_path ... ok [INFO] [stdout] test daemon::tests::test_ms3_create_and_get_scene ... ok [INFO] [stdout] test daemon::tests::test_mls3_state_404_when_no_live_json ... ok [INFO] [stdout] test daemon::tests::test_ls5_history_returns_reversed_entries ... ok [INFO] [stdout] test data_dir::tests::test_cf1_char_gating_dir_initializes_templates ... ok [INFO] [stdout] test data_dir::tests::test_cf1_char_world_lorebook_path_no_create ... ok [INFO] [stdout] test data_dir::tests::test_cf1_char_history_dir ... ok [INFO] [stdout] test data_dir::tests::test_cf3_migrate_legacy_session_to_memory ... ok [INFO] [stdout] test daemon::tests::test_dx2_wrong_key_returns_401 ... ok [INFO] [stdout] test data_dir::tests::test_cf6_handles_empty_chars_dir ... ok [INFO] [stdout] test data_dir::tests::test_cf6_handles_missing_chars_dir ... ok [INFO] [stdout] test data_dir::tests::test_cf6_lock_prevents_repeat ... ok [INFO] [stdout] test data_dir::tests::test_cf1_char_greetings_dir ... ok [INFO] [stdout] test data_dir::tests::test_cf1_char_world_dir_includes_extra ... ok [INFO] [stdout] test data_dir::tests::test_cf3_no_migration_when_new_has_data ... ok [INFO] [stdout] test data_dir::tests::test_cf3_migrate_named_session_to_memory ... ok [INFO] [stdout] test data_dir::tests::test_list_presets_covers_json_and_md_dedup ... ok [INFO] [stdout] test data_dir::tests::test_cf6_migrate_card_files ... ok [INFO] [stdout] test data_dir::tests::test_cf6_triggers_gating_and_session_migration ... ok [INFO] [stdout] test data_dir::security::tests::prop_validate_id_rejects_null_byte ... ok [INFO] [stdout] test data_dir::tests::test_list_and_create_sessions ... ok [INFO] [stdout] test data_dir::tests::test_pr2_handles_empty_presets_dir ... ok [INFO] [stdout] test data_dir::tests::test_list_presets_dir_form ... ok [INFO] [stdout] test daemon::tests::test_mls3_state_returns_live_json ... ok [INFO] [stdout] test data_dir::tests::test_pr2_idempotent_no_overwrite ... ok [INFO] [stdout] test data_dir::tests::test_pr2_handles_missing_presets_dir ... ok [INFO] [stdout] test data_dir::tests::test_pr2_migrate_flat_md_to_dir ... ok [INFO] [stdout] test data_dir::tests::test_list_sessions_ignores_non_uuid_dirs ... ok [INFO] [stdout] test data_dir::tests::test_pr1_preset_json_path ... ok [INFO] [stdout] test data_dir::tests::test_pr1_preset_dir_creates ... ok [INFO] [stdout] test data_dir::tests::test_resolve_session_dir_default_memory_path_when_none ... ok [INFO] [stdout] test daemon::tests::test_ms3_list_scenes_empty ... ok [INFO] [stdout] test data_dir::tests::test_pr1_preset_regex_dir ... ok [INFO] [stdout] test data_dir::tests::test_pr2_migrate_flat_json_to_dir ... ok [INFO] [stdout] test data_dir::tests::test_safe_resolve_rejects_absolute ... ok [INFO] [stdout] test data_dir::tests::test_safe_resolve_rejects_null_byte ... ok [INFO] [stdout] test data_dir::tests::test_pr2_migrate_handles_both_json_and_md ... ok [INFO] [stdout] test data_dir::tests::test_validate_id_segment_rejects_traversal ... ok [INFO] [stdout] test error::tests::test_error_display ... ok [INFO] [stdout] test data_dir::tests::test_safe_resolve_accepts_subpath ... ok [INFO] [stdout] test data_dir::tests::test_validate_id_segment_accepts_normal ... ok [INFO] [stdout] test data_dir::tests::test_strip_utf8_bom ... ok [INFO] [stdout] test fsm::tests::test_chunk_boundaries ... ok [INFO] [stdout] test data_dir::tests::test_safe_resolve_rejects_traversal_outside_root ... ok [INFO] [stdout] test fsm::tests::test_filtering ... ok [INFO] [stdout] test fsm::tests::test_multibyte_in_buffering_no_panic ... ok [INFO] [stdout] test fsm::tests::test_regex_filter_parser ... ok [INFO] [stdout] test error::tests::test_error_from_io ... ok [INFO] [stdout] test fsm::tests::test_rollback_on_false_positive ... ok [INFO] [stdout] test fsm::tests::test_seal_tag_across_chunks ... ok [INFO] [stdout] test fsm::tests::test_state_tag_across_chunks ... ok [INFO] [stdout] test fsm::tests::test_state_tag_filter ... ok [INFO] [stdout] test fsm::tests::test_variable_replacement ... ok [INFO] [stdout] test data_dir::tests::test_resolve_session_dir_named_memory_path_when_some ... ok [INFO] [stdout] test fsm::tests::test_self_closing_volume_seal_tag ... ok [INFO] [stdout] test index_parser::tests::test_extract_diff_block ... ok [INFO] [stdout] test index_parser::tests::test_apply_diff_append_to_existing ... ok [INFO] [stdout] test index_parser::tests::test_apply_diff_new_entries ... ok [INFO] [stdout] test index_parser::tests::test_extract_volume_number ... ok [INFO] [stdout] test index_parser::tests::test_parse_named_with_paren ... ok [INFO] [stdout] test orchestrator::card::tests::test_invalid_json_returned_asis ... ok [INFO] [stdout] test orchestrator::card::tests::test_legacy_name_not_overriding_v2style ... ok [INFO] [stdout] test data_dir::security::tests::prop_validate_id_rejects_double_dot ... ok [INFO] [stdout] test orchestrator::card::tests::test_shape_card_wins_over_embedded_prompts ... ok [INFO] [stdout] test orchestrator::card::tests::test_shape_preset_prompts_plus_params ... ok [INFO] [stdout] test orchestrator::card::tests::test_shape_unknown_when_ambiguous ... ok [INFO] [stdout] test orchestrator::card::tests::test_shape_v1_flat_card ... ok [INFO] [stdout] test orchestrator::card::tests::test_shape_v1_legacy_card ... ok [INFO] [stdout] test orchestrator::card::tests::test_shape_v2_card ... ok [INFO] [stdout] test orchestrator::card::tests::test_v1_flat_v2style_names_lifted ... ok [INFO] [stdout] test index_parser::tests::test_local_only_not_promoted ... ok [INFO] [stdout] test orchestrator::card::tests::test_v2_card_unchanged ... ok [INFO] [stdout] test orchestrator::card::tests::test_v3_card_unchanged ... ok [INFO] [stdout] test orchestrator::card::tests::test_shape_v3_card ... ok [INFO] [stdout] test orchestrator::gating::tests::test_audit_4_get_current_checkpoint_empty_id ... ok [INFO] [stdout] test orchestrator::gating::tests::test_audit_4_get_current_checkpoint_missing_file ... ok [INFO] [stdout] test orchestrator::gating::tests::test_audit_4_get_current_checkpoint_malformed_returns_default ... ok [INFO] [stdout] test index_parser::tests::test_parse_index_diff ... ok [INFO] [stdout] test orchestrator::card::tests::test_v1_legacy_names_mapped ... ok [INFO] [stdout] test orchestrator::gating::tests::test_audit_4_load_filtered_known_no_known_file_returns_empty ... ok [INFO] [stdout] test orchestrator::gating::tests::test_audit_4_load_filtered_known_no_disclosure_passes_through ... ok [INFO] [stdout] test daemon::tests::test_ms3_get_scene_404 ... ok [INFO] [stdout] test orchestrator::gating::tests::test_audit_4_load_filtered_known_substring_match ... ok [INFO] [stdout] test orchestrator::gating::tests::test_audit_4_load_filtered_known_malformed_disclosure_passes_through ... ok [INFO] [stdout] test orchestrator::gating::tests::test_audit_4_load_filtered_known_empty_forbidden_keys_passes_all ... ok [INFO] [stdout] test orchestrator::gating::tests::test_cf4_template_initialized_when_absent ... ok [INFO] [stdout] test orchestrator::gating::tests::test_gating_filtering ... ok [INFO] [stdout] test orchestrator::lorebook::tests::bench_aho_corasick_vs_naive ... ignored [INFO] [stdout] test orchestrator::lorebook::tests::test_ms5_merge_lorebooks_empty ... ok [INFO] [stdout] test orchestrator::lorebook::tests::test_ms5_merge_lorebooks_preserves_all_unique ... ok [INFO] [stdout] test orchestrator::lorebook::tests::test_ms5_merge_lorebooks_deduplicates_by_content ... ok [INFO] [stdout] test orchestrator::lorebook::tests::trigger_disabled_entry_ignored ... ok [INFO] [stdout] test orchestrator::gating::tests::test_cf4_migrate_legacy_gating_files ... ok [INFO] [stdout] test orchestrator::lorebook::tests::trigger_no_match_returns_empty ... ok [INFO] [stdout] test orchestrator::lorebook::tests::trigger_single_match ... ok [INFO] [stdout] test fsm::tests::test_nested_or_adjacent_patterns ... ok [INFO] [stdout] test orchestrator::gating::tests::test_audit_4_load_filtered_known_unknown_cp_no_filtering ... ok [INFO] [stdout] test orchestrator::lorebook::tests::trigger_priority_sort_desc ... ok [INFO] [stdout] test orchestrator::tests::test_ls4_inject_live_state_injects_block ... ok [INFO] [stdout] test orchestrator::tests::test_ls4_inject_live_state_invalid_json_noop ... ok [INFO] [stdout] test orchestrator::lorebook::tests::trigger_multiple_keys_or_semantic ... ok [INFO] [stdout] test orchestrator::tests::test_ls8_inject_live_state_uses_schema_labels ... ok [INFO] [stdout] test orchestrator::tests::test_ms9_multi_char_prompt_contains_all_character_sections ... ok [INFO] [stdout] test orchestrator::tests::test_ms9_multi_char_prompt_includes_triggered_lore ... ok [INFO] [stdout] test orchestrator::tests::test_ms9_multi_char_prompt_no_cards_uses_ids ... ok [INFO] [stdout] test orchestrator::tests::test_orchestrator_build ... ok [INFO] [stdout] test orchestrator::volume_inject::tests::test_collect_alias_resolves_to_canonical ... ok [INFO] [stdout] test orchestrator::volume_inject::tests::test_collect_length_desc_priority ... ok [INFO] [stdout] test orchestrator::volume_inject::tests::test_collect_non_overlapping_independent_matches ... ok [INFO] [stdout] test orchestrator::tests::test_ls4_inject_live_state_no_file ... ok [INFO] [stdout] test orchestrator::volume_inject::tests::test_inject_current_context ... ok [INFO] [stdout] test orchestrator::volume_inject::tests::test_inject_volume_context_alias_end_to_end ... ok [INFO] [stdout] test data_dir::security::tests::prop_safe_resolve_rejects_absolute ... ok [INFO] [stdout] test orchestrator::lorebook::tests::trigger_skips_empty_keys ... ok [INFO] [stdout] test orchestrator::lorebook::tests::trigger_stress_many_entries ... ok [INFO] [stdout] test orchestrator::gating::tests::test_timeline_and_checkpoint_advancement ... ok [INFO] [stdout] test orchestrator::volume_inject::tests::test_parse_entity_line_basic ... ok [INFO] [stdout] test png_parser::tests::test_rejects_bad_signature ... ok [INFO] [stdout] test png_parser::tests::test_rejects_oversized_chunk ... ok [INFO] [stdout] test png_parser::tests::test_ztxt_compressed_chara ... ok [INFO] [stdout] test png_parser::tests::test_chara_fallback_when_no_ccv3 ... ok [INFO] [stdout] test preset_regex::tests::test_pr4_filter_keeps_only_ai_output_enabled_empty_replace ... ok [INFO] [stdout] test preset_regex::tests::test_pr4_bom_tolerant ... ok [INFO] [stdout] test preset_regex::tests::test_pr4_load_array_format ... ok [INFO] [stdout] test preset_regex::tests::test_pr4_load_empty_dir ... ok [INFO] [stdout] test preset_regex::tests::test_pr4_load_single_object ... ok [INFO] [stdout] test preset_regex::tests::test_pr4_strip_delimiters_bare_pattern ... ok [INFO] [stdout] test preset_regex::tests::test_pr4_strip_delimiters_no_flags ... ok [INFO] [stdout] test preset_regex::tests::test_pr4_strip_delimiters_with_flags ... ok [INFO] [stdout] test quota::tests_dx3::test_check_increments_counter ... ok [INFO] [stdout] test quota::tests_dx3::test_check_rejects_when_limit_reached ... ok [INFO] [stdout] test quota::tests_dx3::test_check_rejects_when_token_limit_reached ... ok [INFO] [stdout] test quota::tests_dx3::test_check_unlimited_always_ok ... ok [INFO] [stdout] test quota::tests_dx3::test_quota_config_default_is_unlimited ... ok [INFO] [stdout] test quota::tests_dx3::test_quota_no_file_is_fresh_start ... ok [INFO] [stdout] test quota::tests_dx3::test_quota_state_resets_on_new_day ... ok [INFO] [stdout] test quota::tests_dx3::test_record_tokens_accumulates ... ok [INFO] [stdout] test scene::tests::test_audit_4_character_role_serializes_snake_case ... ok [INFO] [stdout] test scene::tests::test_audit_4_load_nonexistent_scene_errors ... ok [INFO] [stdout] test scene::tests::test_audit_4_lorebook_merge_serializes_snake_case ... ok [INFO] [stdout] test scene::tests::test_audit_4_primary_returns_first_when_multiple ... ok [INFO] [stdout] test scene::tests::test_audit_4_primary_returns_none_when_only_npcs ... ok [INFO] [stdout] test scene::tests::test_audit_4_save_creates_scene_dir_if_missing ... ok [INFO] [stdout] test preset_regex::tests::test_pr4_load_invalid_json_skipped ... ok [INFO] [stdout] test scene::tests::test_ms2_list_scenes_empty_when_no_dir ... ok [INFO] [stdout] test scene::tests::test_audit_4_scene_load_rejects_malformed_json ... ok [INFO] [stdout] test scene::tests::test_ms2_primary_finds_primary_character ... ok [INFO] [stdout] test orchestrator::preset::tests::test_preset_rendering ... ok [INFO] [stdout] test scene::tests::test_ms2_list_scenes_returns_saved ... ok [INFO] [stdout] test types::tests::character_id_rejects_traversal ... ok [INFO] [stdout] test scene::tests::test_ms2_scene_defaults ... ok [INFO] [stdout] test types::tests::character_id_serde_roundtrip ... ok [INFO] [stdout] test types::tests::character_id_valid ... ok [INFO] [stdout] test types::tests::character_id_serde_rejects_invalid ... ok [INFO] [stdout] test types::tests::preset_id_basic ... ok [INFO] [stdout] test types::tests::scene_id_serde_rejects_invalid ... ok [INFO] [stdout] test orchestrator::volume_inject::tests::test_parse_entity_line_with_aliases ... ok [INFO] [stdout] test types::tests::scene_id_valid ... ok [INFO] [stdout] test types::tests::session_id_parse_invalid ... ok [INFO] [stdout] test types::tests::session_id_parse_valid ... ok [INFO] [stdout] test types::tests::session_id_serde_roundtrip ... ok [INFO] [stdout] test types::tests::session_id_uniqueness ... ok [INFO] [stdout] test types::tests::user_id_rejects_traversal ... ok [INFO] [stdout] test types::tests::user_id_serde_rejects_invalid ... ok [INFO] [stdout] test types::tests::scene_id_serde_roundtrip ... ok [INFO] [stdout] test scene::tests::test_ms2_scene_config_roundtrip ... ok [INFO] [stdout] test data_dir::security::tests::prop_validate_id_rejects_path_separators ... ok [INFO] [stdout] test types::tests::user_id_valid ... ok [INFO] [stdout] test types::tests::user_id_serde_roundtrip ... ok [INFO] [stdout] test volume_manager::tests::test_collect_cross_volume_appearances ... ok [INFO] [stdout] test data_dir::security::tests::prop_validate_id_rejects_windows_reserved ... ok [INFO] [stdout] test volume_manager::tests::test_multi_session_turn_counter_isolation ... ok [INFO] [stdout] test volume_manager::tests::test_parse_appearance_line_missing ... ok [INFO] [stdout] test volume_manager::tests::test_multi_session_current_md_isolation ... ok [INFO] [stdout] test volume_manager::tests::test_parse_appearance_line_basic ... ok [INFO] [stdout] test volume_manager::tests::test_multi_session_isolation_volumes_and_index ... ok [INFO] [stdout] test types::tests::scene_id_rejects_traversal ... ok [INFO] [stdout] test orchestrator::volume_inject::tests::test_inject_volume_context_matches_keyword ... ok [INFO] [stdout] test png_parser::tests::test_ccv3_preferred_over_chara ... ok [INFO] [stdout] test orchestrator::volume_inject::tests::test_inject_volume_context_no_match ... ok [INFO] [stdout] test volume_manager::tests::test_run_maintenance_archives_resolved ... ok [INFO] [stdout] test volume_manager::tests::test_parse_sealing_output_missing_blocks ... ok [INFO] [stdout] test volume_manager::tests::test_parse_seal_signal_missing ... ok [INFO] [stdout] test volume_manager::tests::test_run_maintenance_does_not_duplicate_existing ... ok [INFO] [stdout] test volume_manager::tests::test_substitute_volume_placeholder ... ok [INFO] [stdout] test volume_manager::tests::test_run_maintenance_promotes_cross_volume_entity ... ok [INFO] [stdout] test volume_manager::tests::test_parse_seal_signal_no_attrs ... ok [INFO] [stdout] test volume_manager::tests::test_should_force_seal ... ok [INFO] [stdout] test volume_manager::tests::test_parse_seal_signal_false ... ok [INFO] [stdout] test volume_manager::tests::test_parse_seal_signal_basic ... ok [INFO] [stdout] test volume_manager::tests::test_parse_seal_signal_attr_order_and_quote_styles ... ok [INFO] [stdout] test chat_store::tests::test_chat_log_rolling_truncation ... ok [INFO] [stdout] test volume_store::tests::test_append_and_read_current ... ok [INFO] [stdout] test volume_manager::tests::test_soft_pressure_hint ... ok [INFO] [stdout] test volume_store::tests::test_clear_current ... ok [INFO] [stdout] test data_dir::security::tests::prop_safe_resolve_rejects_null_byte ... ok [INFO] [stdout] test data_dir::security::tests::prop_safe_resolve_for_write_never_escapes ... ok [INFO] [stdout] test volume_manager::tests::test_parse_sealing_output_complete ... ok [INFO] [stdout] test volume_store::tests::test_estimate_tokens ... ok [INFO] [stdout] test volume_store::tests::test_estimate_tokens_documented_bounds ... ok [INFO] [stdout] test xml_unpacker::tests::test_unpacker_basic ... ok [INFO] [stdout] test volume_store::tests::test_volume_write_read_and_header ... ok [INFO] [stdout] test xml_unpacker::tests::test_unpacker_split_tokens ... ok [INFO] [stdout] test volume_store::tests::test_next_volume_number ... ok [INFO] [stdout] test volume_store::tests::test_index_write_read ... ok [INFO] [stdout] test volume_store::tests::test_increment_turn_counter ... ok [INFO] [stdout] test volume_store::tests::test_ensure_session_dirs ... ok [INFO] [stdout] test fsm::tests::proptest_fsm::prop_variable_replacement_chunk_independent ... ok [INFO] [stdout] test fsm::tests::proptest_fsm::prop_no_panic_any_input ... ok [INFO] [stdout] test fsm::tests::proptest_fsm::prop_chunk_boundaries_independent ... ok [INFO] [stdout] test fsm::tests::proptest_fsm::prop_seal_tag_chunk_independent ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 299 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.70s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/airp_core-45a6a2922d8bf8a5) [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] Running tests/openai_compat.rs (/opt/rustwide/target/debug/deps/openai_compat-4bf5eee37a3534d9) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test test_dx7_upstream_error_propagated_as_error_event ... ok [INFO] [stdout] test test_dx7_completions_sse_has_message_events ... ok [INFO] [stdout] test test_dx10_multi_user_quota_isolation ... ok [INFO] [stdout] test test_dx7_completions_returns_sse_200 ... ok [INFO] [stdout] test test_dx10_quota_enforced_per_user ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s [INFO] [stdout] [INFO] [stderr] Running tests/sse_wiremock.rs (/opt/rustwide/target/debug/deps/sse_wiremock-125d843ca594fe0f) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test streaming_api_collects_all_delta_tokens ... ok [INFO] [stdout] test streaming_api_handles_unparsable_sse_line_gracefully ... ok [INFO] [stdout] test streaming_api_propagates_upstream_error_status ... ok [INFO] [stdout] test streaming_api_handles_crlf_line_endings ... ok [INFO] [stdout] test streaming_api_handles_done_marker_only ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.32s [INFO] [stdout] [INFO] [stderr] Doc-tests airp_core [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" "d9c6c213266a4f355905d2ffcf5296b4114544fec5ca038cb55a963a531bd4de", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d9c6c213266a4f355905d2ffcf5296b4114544fec5ca038cb55a963a531bd4de", kill_on_drop: false }` [INFO] [stdout] d9c6c213266a4f355905d2ffcf5296b4114544fec5ca038cb55a963a531bd4de