[INFO] cloning repository https://github.com/croppedtravelleralex/CodexAccountManage
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/croppedtravelleralex/CodexAccountManage" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcroppedtravelleralex%2FCodexAccountManage", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcroppedtravelleralex%2FCodexAccountManage'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2fc994727ea28dbdf87589e051ae29f26d5e6475
[INFO] testing croppedtravelleralex/CodexAccountManage against try#28f95933dc0727396c07b48d0a8cb5211b7fb472 for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcroppedtravelleralex%2FCodexAccountManage" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/croppedtravelleralex/CodexAccountManage
[INFO] finished tweaking git repo https://github.com/croppedtravelleralex/CodexAccountManage
[INFO] tweaked toml for git repo https://github.com/croppedtravelleralex/CodexAccountManage written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/croppedtravelleralex/CodexAccountManage on toolchain 28f95933dc0727396c07b48d0a8cb5211b7fb472
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/croppedtravelleralex/CodexAccountManage 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" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0f4eecb8ac0638d896e20c7c156210d1cccf8e6980327781acdedb1293791ec7
[INFO] running `Command { std: "docker" "start" "-a" "0f4eecb8ac0638d896e20c7c156210d1cccf8e6980327781acdedb1293791ec7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0f4eecb8ac0638d896e20c7c156210d1cccf8e6980327781acdedb1293791ec7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0f4eecb8ac0638d896e20c7c156210d1cccf8e6980327781acdedb1293791ec7", kill_on_drop: false }`
[INFO] [stdout] 0f4eecb8ac0638d896e20c7c156210d1cccf8e6980327781acdedb1293791ec7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 94e9f90ab8e97cc9a78be1ba6ef5c9c3a22f6f381b06ddd867e99a1825b0c23e
[INFO] running `Command { std: "docker" "start" "-a" "94e9f90ab8e97cc9a78be1ba6ef5c9c3a22f6f381b06ddd867e99a1825b0c23e", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling find-msvc-tools v0.1.8
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling zerocopy v0.8.35
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling zmij v1.0.17
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling webpki-roots v1.0.5
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling urlencoding v2.1.3
[INFO] [stderr]    Compiling codexmanager-service v1.0.0 (/opt/rustwide/workdir/crates/service)
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling ascii v1.1.0
[INFO] [stderr]    Compiling chunked_transfer v1.5.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling tiny_http v0.12.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling cc v1.2.54
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tungstenite v0.28.0
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling zstd v0.13.3
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling webbrowser v0.8.15
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tokio-tungstenite v0.28.0
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling rusqlite v0.31.0
[INFO] [stderr]    Compiling codexmanager-core v1.0.0 (/opt/rustwide/workdir/crates/core)
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.19
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 43s
[INFO] running `Command { std: "docker" "inspect" "94e9f90ab8e97cc9a78be1ba6ef5c9c3a22f6f381b06ddd867e99a1825b0c23e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "94e9f90ab8e97cc9a78be1ba6ef5c9c3a22f6f381b06ddd867e99a1825b0c23e", kill_on_drop: false }`
[INFO] [stdout] 94e9f90ab8e97cc9a78be1ba6ef5c9c3a22f6f381b06ddd867e99a1825b0c23e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] caa10d88d66561f29520f112ce76aafb888e521250879a85dd86072c8376299b
[INFO] running `Command { std: "docker" "start" "-a" "caa10d88d66561f29520f112ce76aafb888e521250879a85dd86072c8376299b", kill_on_drop: false }`
[INFO] [stderr]    Compiling codexmanager-core v1.0.0 (/opt/rustwide/workdir/crates/core)
[INFO] [stderr]    Compiling codexmanager-service v1.0.0 (/opt/rustwide/workdir/crates/service)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 25.02s
[INFO] running `Command { std: "docker" "inspect" "caa10d88d66561f29520f112ce76aafb888e521250879a85dd86072c8376299b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "caa10d88d66561f29520f112ce76aafb888e521250879a85dd86072c8376299b", kill_on_drop: false }`
[INFO] [stdout] caa10d88d66561f29520f112ce76aafb888e521250879a85dd86072c8376299b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 05816cf0fd2c1cd6424de8f728a32005143af69159a2e291a134cefa2215bafa
[INFO] running `Command { std: "docker" "start" "-a" "05816cf0fd2c1cd6424de8f728a32005143af69159a2e291a134cefa2215bafa", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.44s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/codexmanager_core-1c2a52f0e2bf9ca5)
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test rpc::types::tests::account_list_result_serialization_includes_pagination_fields ... ok
[INFO] [stdout] test rpc::types::tests::request_log_summary_serialization_includes_trace_route_fields ... ok
[INFO] [stdout] test rpc::types::tests::request_log_list_params_default_to_first_page_with_twenty_items ... ok
[INFO] [stdout] test rpc::types::tests::account_list_params_default_to_first_page_with_five_items ... ok
[INFO] [stdout] test rpc::types::tests::request_log_list_result_serialization_includes_pagination_fields ... ok
[INFO] [stdout] test rpc::types::tests::request_log_filter_summary_serialization_uses_camel_case ... ok
[INFO] [stdout] test rpc::types::tests::account_summary_serialization_matches_compact_contract ... ok
[INFO] [stdout] test storage::request_log_query::tests::prefixed_account_query_supports_alias ... ok
[INFO] [stdout] test storage::migration_tests::api_key_profile_migration_backfills_existing_keys ... ok
[INFO] [stdout] test storage::migration_tests::file_open_enables_wal_and_normal_synchronous ... ok
[INFO] [stdout] test storage::request_log_query::tests::prefixed_field_query_supports_exact_mode ... ok
[INFO] [stdout] test storage::migration_tests::sql_migration_can_fallback_to_compat_when_schema_already_exists ... ok
[INFO] [stdout] test storage::request_log_query::tests::prefixed_field_query_keeps_like_mode_by_default ... ok
[INFO] [stdout] test storage::request_logs::tests::token_stat_failure_still_commits_request_log ... ok
[INFO] [stdout] test storage::migration_tests::account_meta_sql_migration_coexists_with_legacy_compat_marker ... ok
[INFO] [stdout] test storage::migration_tests::init_tracks_schema_migrations_and_is_idempotent ... ok
[INFO] [stdout] test storage::migration_tests::key_hash_index_migration_adds_api_keys_index ... ok
[INFO] [stdout] test storage::request_logs::tests::request_logs_filtered_summary_aggregates_counts_and_tokens ... ok
[INFO] [stdout] test storage::request_logs::tests::request_logs_support_backend_pagination_and_status_filters ... ok
[INFO] [stdout] test storage::request_logs::tests::method_exact_query_matches_composite_index ... ok
[INFO] [stdout] test storage::migration_tests::request_logs_compact_migration_drops_legacy_usage_columns_and_preserves_rows ... ok
[INFO] [stdout] test storage::migration_tests::accounts_sort_index_migration_adds_sort_updated_at_index ... ok
[INFO] [stdout] test storage::migration_tests::usage_snapshot_latest_index_migration_adds_captured_id_index ... ok
[INFO] [stdout] test storage::request_logs::tests::insert_request_log_with_token_stat_is_visible_via_join ... ok
[INFO] [stdout] test storage::request_logs::tests::key_exact_query_matches_composite_index ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/auth.rs (/opt/rustwide/target/debug/deps/auth-7707c9e8689f4acd)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test extract_token_exp_reads_exp_claim ... ok
[INFO] [stdout] test parse_id_token_claims_extracts_email_and_sub ... ok
[INFO] [stdout] test build_authorize_url_matches_codex ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/storage.rs (/opt/rustwide/target/debug/deps/storage-ebee5b94eac7eb9c)
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test request_log_today_summary_reads_from_token_stats_table ... ok
[INFO] [stdout] test storage_can_find_token_and_account_by_account_id ... ok
[INFO] [stdout] test storage_can_update_account_status ... ok
[INFO] [stdout] test latest_usage_snapshots_break_ties_by_latest_id ... ok
[INFO] [stdout] test storage_login_session_roundtrip ... ok
[INFO] [stdout] test storage_updates_account_status_only_when_changed ... ok
[INFO] [stdout] test storage_account_usage_filters_support_sql_pagination ... ok
[INFO] [stdout] test storage_gateway_candidates_exclude_unavailable_or_missing_token_accounts ... ok
[INFO] [stdout] test token_upsert_keeps_refresh_schedule_columns ... ok
[INFO] [stdout] test request_token_stats_can_summarize_total_tokens_by_key ... ok
[INFO] [stdout] test storage_api_keys_include_profile_fields ... ok
[INFO] [stdout] test storage_can_roundtrip_api_key_secret ... ok
[INFO] [stdout] test storage_can_insert_account_and_token ... ok
[INFO] [stdout] test insert_request_log_with_token_stat_writes_both_tables_in_one_call ... ok
[INFO] [stdout] test request_logs_support_prefixed_query_filters ... ok
[INFO] [stdout] test clear_request_logs_keeps_token_stats_for_usage_summary ... ok
[INFO] [stdout] test usage_snapshots_can_prune_history_per_account ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/usage.rs (/opt/rustwide/target/debug/deps/usage-ec1415a4443c0e45)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test usage_snapshot_parsed ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/version.rs (/opt/rustwide/target/debug/deps/version-c08e4c5ba8adf724)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test core_version_is_set ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/codexmanager_service-a9c450cedcb4cd54)
[INFO] [stdout] 
[INFO] [stdout] running 455 tests
[INFO] [stdout] test account::availability::tests::availability_marks_exhausted_secondary_unavailable ... ok
[INFO] [stdout] test account::availability::tests::availability_marks_missing_primary_unavailable ... ok
[INFO] [stdout] test account::availability::tests::availability_marks_missing_secondary_available_when_both_secondary_fields_absent ... ok
[INFO] [stdout] test account::availability::tests::availability_marks_ok_available ... ok
[INFO] [stdout] test account::cleanup::tests::free_plan_detection_accepts_credits_json_marker ... ok
[INFO] [stdout] test account::export::tests::sanitize_file_stem_replaces_windows_invalid_chars ... ok
[INFO] [stdout] test account::export::tests::sanitize_file_stem_trims_tailing_space_and_dot ... ok
[INFO] [stdout] test account::availability::tests::availability_marks_partial_secondary_missing_unavailable ... ok
[INFO] [stdout] test account::import::tests::extract_token_payload_supports_flat_codex_format ... ok
[INFO] [stdout] test account::import::tests::resolve_logical_account_id_distinguishes_workspace_under_same_chatgpt ... ok
[INFO] [stdout] test account::cleanup::tests::free_plan_detection_accepts_common_variants ... ok
[INFO] [stdout] test account::plan::tests::free_plan_detection_rejects_paid_or_unknown_variants ... ok
[INFO] [stdout] test account::plan::tests::extract_plan_type_from_id_token_reads_chatgpt_claim ... ok
[INFO] [stdout] test account::plan::tests::free_plan_detection_accepts_credits_json_marker ... ok
[INFO] [stdout] test account::plan::tests::free_plan_detection_accepts_common_variants ... ok
[INFO] [stdout] test apikey::models::tests::merge_model_options_appends_only_new_models ... ok
[INFO] [stdout] test apikey::models::tests::merge_model_options_keeps_cache_when_remote_has_no_new_items ... ok
[INFO] [stdout] test app_settings::api::current::tests::free_account_max_model_options_fallback_to_curated_defaults ... ok
[INFO] [stdout] test account::plan::tests::single_window_long_usage_snapshot_counts_as_free_like ... ok
[INFO] [stdout] test auth::account::tests::resolve_plan_type_falls_back_to_id_token_when_access_claims_missing ... ok
[INFO] [stdout] test auth::account::tests::resolve_plan_type_prefers_latest_access_token_claims ... ok
[INFO] [stdout] test auth::account::tests::resolve_plan_type_preserves_unknown_raw_value_for_diagnostics ... ok
[INFO] [stdout] test app_settings::api::current::tests::free_account_max_model_options_reuse_cached_model_picker_options ... ok
[INFO] [stdout] test account::import::tests::extract_token_payload_supports_camel_case_fields ... ok
[INFO] [stdout] test auth::callback::tests::callback_error_page_escapes_message ... ok
[INFO] [stdout] test auth::callback::tests::callback_html_response_forces_connection_close ... ok
[INFO] [stdout] test auth::callback::tests::callback_success_page_contains_auto_close_script ... ok
[INFO] [stdout] test auth::callback::tests::login_server_rejects_non_loopback_by_default ... ok
[INFO] [stdout] test auth::callback::tests::login_server_reports_port_in_use ... ok
[INFO] [stdout] test auth::callback::tests::login_start_fails_when_login_server_cannot_bind ... ok
[INFO] [stdout] test auth::callback::tests::oauth_callback_error_message_maps_missing_entitlement ... ok
[INFO] [stdout] test account::import::tests::resolve_logical_account_id_is_stable_when_scope_is_stable ... ok
[INFO] [stdout] test auth::tokens::tests::build_account_storage_id_keeps_login_scope_shape ... ok
[INFO] [stdout] test auth::tokens::tests::ensure_workspace_allowed_accepts_matching_auth_chatgpt_account_id ... ok
[INFO] [stdout] test auth::callback::tests::resolve_redirect_uri_prefers_login_server ... ok
[INFO] [stdout] test auth::tokens::tests::ensure_workspace_allowed_rejects_mismatched_workspace ... ok
[INFO] [stdout] test auth::tokens::tests::format_api_key_exchange_status_error_appends_debug_headers ... ok
[INFO] [stdout] test auth::tokens::tests::format_api_key_exchange_status_error_uses_identity_header_when_body_empty ... ok
[INFO] [stdout] test account::cleanup::tests::free_plan_detection_rejects_paid_or_unknown_variants ... ok
[INFO] [stdout] test auth::tokens::tests::format_token_endpoint_status_error_accepts_raw_error_json_header ... ok
[INFO] [stdout] test auth::tokens::tests::format_token_endpoint_status_error_appends_debug_headers ... ok
[INFO] [stdout] test auth::tokens::tests::format_token_endpoint_status_error_marks_cloudflare_blocked_kind ... ok
[INFO] [stdout] test auth::tokens::tests::format_token_endpoint_status_error_uses_cloudflare_edge_kind_when_only_cf_ray_exists ... ok
[INFO] [stdout] test auth::tokens::tests::format_token_endpoint_status_error_uses_header_only_blocked_signal ... ok
[INFO] [stdout] test auth::tokens::tests::issuer_uses_loopback_host_accepts_local_test_issuers ... ok
[INFO] [stdout] test auth::tokens::tests::issuer_uses_loopback_host_rejects_remote_issuers ... ok
[INFO] [stdout] test account::import::tests::existing_account_index_next_sort_uses_step_five ... ok
[INFO] [stdout] test account::import::tests::import_single_item_prefers_meta_fields_for_new_account ... ok
[INFO] [stdout] test account::plan::tests::free_or_single_window_account_accepts_weekly_single_window_without_plan_claim ... ok
[INFO] [stdout] test account::import::tests::import_single_item_reuses_existing_login_account_by_scope_identity ... ok
[INFO] [stdout] test auth::tokens::tests::next_account_sort_uses_step_five ... ok
[INFO] [stdout] test auth::tokens::tests::parse_token_endpoint_error_prefers_error_description ... ok
[INFO] [stdout] test auth::tokens::tests::parse_token_endpoint_error_preserves_plain_text_for_display ... ok
[INFO] [stdout] test auth::tokens::tests::parse_token_endpoint_error_reads_nested_error_message_and_code ... ok
[INFO] [stdout] test auth::tokens::tests::parse_token_endpoint_error_summarizes_blocked_cloudflare_html ... ok
[INFO] [stdout] test errors::tests::classify_known_messages ... ok
[INFO] [stdout] test gateway::availability_tests::auth_headers::drop_incoming_header_for_failover_strips_session_affinity ... ok
[INFO] [stdout] test gateway::availability_tests::auth_headers::drop_incoming_header_keeps_session_affinity_for_primary_attempt ... ok
[INFO] [stdout] test auth::tokens::tests::parse_token_endpoint_error_summarizes_challenge_html ... ok
[INFO] [stdout] test auth::tokens::tests::parse_token_endpoint_error_summarizes_generic_html ... ok
[INFO] [stdout] test gateway::availability_tests::failover_paths::compute_url_keeps_compact_responses_for_codex_backend ... ok
[INFO] [stdout] test gateway::availability_tests::failover_paths::compute_url_keeps_v1_for_models_on_codex_backend ... ok
[INFO] [stdout] test gateway::availability_tests::failover_paths::models_path_does_not_try_openai_fallback ... ok
[INFO] [stdout] test gateway::availability_tests::failover_paths::normalize_models_path_keeps_existing_query_string ... ok
[INFO] [stdout] test gateway::availability_tests::failover_paths::normalize_models_path_keeps_original_path ... ok
[INFO] [stdout] test gateway::availability_tests::failover_paths::normalize_upstream_base_url_for_chatgpt_host ... ok
[INFO] [stdout] test gateway::availability_tests::failover_paths::normalize_upstream_base_url_keeps_existing_backend_path ... ok
[INFO] [stdout] test gateway::availability_tests::failover_paths::status_fallback_only_triggers_for_responses_path ... ok
[INFO] [stdout] test gateway::availability_tests::auth_headers::resolve_openai_bearer_token_uses_cached_storage_value ... ok
[INFO] [stdout] test auth::tokens::tests::pick_existing_account_requires_exact_scope_when_workspace_present ... ok
[INFO] [stdout] test gateway::availability_tests::fallback_rules::challenge_detection_requires_html_content_type ... ok
[INFO] [stdout] test gateway::availability_tests::fallback_rules::cooldown_reason_maps_status ... ok
[INFO] [stdout] test gateway::availability_tests::fallback_rules::html_content_type_detection ... ok
[INFO] [stdout] test gateway::availability_tests::metrics_tokens::metrics_prometheus_contains_expected_series ... ok
[INFO] [stdout] test gateway::availability_tests::metrics_tokens::rpc_metrics_track_failures_and_duration ... ok
[INFO] [stdout] test gateway::availability_tests::metrics_tokens::token_exchange_lock_reuses_same_account_lock ... ok
[INFO] [stdout] test gateway::availability_tests::metrics_tokens::usage_refresh_metrics_track_success_and_failure ... ok
[INFO] [stdout] test auth::tokens::tests::pick_existing_account_matches_exact_workspace_scope ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_json_response_deduplicates_consecutive_identical_text_blocks ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_json_response_maps_event_stream ... ok
[INFO] [stdout] test auth::tokens::tests::exchange_code_for_tokens_matches_official_login_server_headers ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_json_response_maps_openai_error_body ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_json_response_maps_openai_tool_calls ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_json_response_maps_responses_function_call_input_field ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_messages_request_drops_query_params ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_messages_request_maps_to_responses ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_messages_request_sets_prompt_cache_key ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_request_ignores_unsupported_block_type ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_sse_response_maps_event_stream ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_sse_response_maps_openai_responses_completed_event ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_sse_response_maps_openai_tool_call_deltas ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_sse_response_uses_output_item_done_when_completed_output_empty ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_stream_request_uses_sse_adapter ... ok
[INFO] [stdout] test gateway::availability_tests::failover_paths::failover_on_missing_usage ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_tools_request_accepts_type_only_tool_definition ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_tools_request_maps_to_openai_tools_and_tool_choice ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_tools_request_respects_disable_parallel_tool_use ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_json_response_maps_from_openai_responses_shape ... ok
[INFO] [stdout] test app_settings::ui::tests::codex_cli_default_path_round_trips_and_clears ... ok
[INFO] [stdout] test auth::tokens::tests::obtain_api_key_matches_official_login_server_headers ... ok
[INFO] [stdout] test gateway::availability_tests::protocol_adapter::anthropic_json_response_maps_from_openai_shape ... ok
[INFO] [stdout] test auth::account::tests::export_codex_cli_profile_auth_is_side_effect_free ... ok
[INFO] [stdout] test gateway::availability_tests::fallback_rules::apply_request_overrides_accepts_xhigh ... ok
[INFO] [stdout] test gateway::availability_tests::fallback_rules::apply_request_overrides_maps_extra_high_to_xhigh ... ok
[INFO] [stdout] test gateway::availability_tests::upstream_headers::codex_compact_header_profile_matches_remote_compact_shape ... ok
[INFO] [stdout] test gateway::availability_tests::upstream_headers::codex_header_profile_skips_account_header_when_disabled ... ok
[INFO] [stdout] test gateway::availability_tests::upstream_headers::codex_header_profile_can_disable_affinity_headers ... ok
[INFO] [stdout] test gateway::availability_tests::upstream_headers::codex_header_profile_uses_dynamic_originator_and_residency_requirement ... ok
[INFO] [stdout] test gateway::availability_tests::upstream_headers::codex_header_profile_does_not_forward_conversation_header_even_with_fallback ... ok
[INFO] [stdout] test gateway::availability_tests::upstream_headers::codex_compact_header_profile_omits_session_without_thread_anchor ... ok
[INFO] [stdout] test gateway::cooldown::tests::lookup_evicts_expired_target_entry_without_full_scan ... ok
[INFO] [stdout] test gateway::cooldown::tests::mark_path_cleanup_prunes_expired_entries ... ok
[INFO] [stdout] test gateway::cooldown::tests::non_rate_limited_mark_keeps_existing_behavior_without_offense_count ... ok
[INFO] [stdout] test gateway::cooldown::tests::rate_limit_ladder_maps_to_expected_steps ... ok
[INFO] [stdout] test gateway::cooldown::tests::rate_limited_mark_increments_and_success_clear_decays_offense ... ok
[INFO] [stdout] test gateway::cooldown::tests::rate_limited_offense_resets_after_quiet_period ... ok
[INFO] [stdout] test gateway::error_response::tests::terminal_text_response_sets_error_code_header ... ok
[INFO] [stdout] test gateway::availability_tests::upstream_headers::codex_header_profile_does_not_invent_client_request_id_on_failover ... ok
[INFO] [stdout] test gateway::error_response::tests::with_trace_id_header_appends_trace_header ... ok
[INFO] [stdout] test gateway::http_bridge::aggregate::output_text::tests::bridge_error_message_reports_stream_incomplete_in_chinese ... ok
[INFO] [stdout] test gateway::http_bridge::aggregate::output_text::tests::extract_error_hint_from_body_prefers_json_message ... ok
[INFO] [stdout] test gateway::http_bridge::aggregate::output_text::tests::extract_error_hint_from_body_summarizes_html_body ... ok
[INFO] [stdout] test gateway::http_bridge::aggregate::output_text::tests::extract_error_hint_from_body_summarizes_unsupported_model_detail_json ... ok
[INFO] [stdout] test gateway::http_bridge::aggregate::output_text::tests::extract_error_hint_from_body_summarizes_unsupported_model_json ... ok
[INFO] [stdout] test gateway::http_bridge::aggregate::output_text::tests::limit_upstream_error_hint_truncates_large_body ... ok
[INFO] [stdout] test gateway::http_bridge::aggregate::output_text::tests::summarize_upstream_error_hint_recognizes_challenge_html ... ok
[INFO] [stdout] test gateway::http_bridge::aggregate::output_text::tests::summarize_upstream_error_hint_recognizes_generic_html ... ok
[INFO] [stdout] test gateway::http_bridge::aggregate::output_text::tests::summarize_upstream_error_hint_recognizes_unsupported_model ... ok
[INFO] [stdout] test gateway::http_bridge::aggregate::sse_frame::tests::inspect_sse_frame_keeps_last_event_type_from_header ... ok
[INFO] [stdout] test gateway::http_bridge::aggregate::sse_frame::tests::inspect_sse_frame_keeps_last_event_type_from_json_type ... ok
[INFO] [stdout] test gateway::http_bridge::delivery::tests::compact_header_only_cf_ray_is_classified_as_cloudflare_edge ... ok
[INFO] [stdout] test gateway::http_bridge::delivery::tests::compact_header_only_identity_error_is_normalized_and_classified ... ok
[INFO] [stdout] test gateway::http_bridge::stream_readers::common::tests::classify_upstream_stream_read_error_maps_body_error ... ok
[INFO] [stdout] test gateway::http_bridge::stream_readers::common::tests::classify_upstream_stream_read_error_maps_disconnect ... ok
[INFO] [stdout] test gateway::http_bridge::stream_readers::common::tests::classify_upstream_stream_read_error_maps_timeout ... ok
[INFO] [stdout] test gateway::http_bridge::stream_readers::common::tests::stream_terminal_messages_are_user_friendly ... ok
[INFO] [stdout] test gateway::http_bridge::tests::apply_openai_stream_meta_defaults_fills_missing_chunk_meta ... ok
[INFO] [stdout] test gateway::http_bridge::tests::collect_non_stream_json_from_sse_bytes_backfills_function_call_output_items ... ok
[INFO] [stdout] test gateway::http_bridge::tests::collect_non_stream_json_from_sse_bytes_backfills_reasoning_output_items ... ok
[INFO] [stdout] test gateway::http_bridge::tests::collect_non_stream_json_from_sse_bytes_backfills_response_output_from_deltas ... ok
[INFO] [stdout] test gateway::http_bridge::tests::collect_non_stream_json_from_sse_bytes_extracts_response_done ... ok
[INFO] [stdout] test gateway::http_bridge::tests::collect_non_stream_json_from_sse_bytes_extracts_response_completed ... ok
[INFO] [stdout] test gateway::http_bridge::tests::collect_non_stream_json_from_sse_bytes_synthesizes_chat_completion_chunks ... ok
[INFO] [stdout] test gateway::http_bridge::tests::collect_non_stream_json_from_sse_bytes_supports_event_only_type_frames ... ok
[INFO] [stdout] test gateway::http_bridge::tests::extract_openai_completed_output_text_reads_completed_output_message_text ... ok
[INFO] [stdout] test gateway::http_bridge::tests::inspect_sse_frame_recognizes_chat_completion_finish_reason_as_terminal ... ok
[INFO] [stdout] test gateway::http_bridge::tests::inspect_sse_frame_recognizes_done_marker ... ok
[INFO] [stdout] test gateway::http_bridge::tests::inspect_sse_frame_recognizes_nested_response_error_message ... ok
[INFO] [stdout] test gateway::http_bridge::tests::inspect_sse_frame_recognizes_response_done_as_terminal ... ok
[INFO] [stdout] test gateway::http_bridge::tests::inspect_sse_frame_recognizes_response_failed_as_terminal_error ... ok
[INFO] [stdout] test gateway::http_bridge::tests::live_chat_stream_skips_done_and_message_item_text_events ... ok
[INFO] [stdout] test gateway::http_bridge::tests::live_completion_stream_skips_done_and_message_item_text_events ... ok
[INFO] [stdout] test gateway::http_bridge::tests::normalize_chat_chunk_delta_role_keeps_first_and_removes_later ... ok
[INFO] [stdout] test gateway::availability_tests::upstream_headers::codex_header_profile_regenerates_session_on_failover ... ok
[INFO] [stdout] test auth::account::tests::export_codex_cli_profile_auth_rejects_disabled_account_without_touching_state ... ok
[INFO] [stdout] test gateway::http_bridge::tests::parse_sse_frame_json_infers_type_from_event_name ... ok
[INFO] [stdout] test gateway::availability_tests::upstream_headers::codex_header_profile_sets_required_headers_for_stream ... ok
[INFO] [stdout] test gateway::http_bridge::tests::parse_usage_from_json_merges_response_usage_over_top_level_usage ... ok
[INFO] [stdout] test gateway::http_bridge::tests::parse_usage_from_json_reads_cached_and_reasoning_details ... ok
[INFO] [stdout] test gateway::http_bridge::tests::parse_usage_from_json_reads_response_usage_compat_fields ... ok
[INFO] [stdout] test gateway::http_bridge::tests::parse_sse_frame_json_supports_json_lines_without_data_prefix ... ok
[INFO] [stdout] test gateway::http_bridge::tests::parse_usage_from_sse_frame_reads_response_completed_usage ... ok
[INFO] [stdout] test gateway::http_bridge::tests::parse_usage_from_sse_frame_reads_top_level_and_response_usage ... ok
[INFO] [stdout] test gateway::http_bridge::tests::parse_usage_from_sse_frame_caps_output_text ... ok
[INFO] [stdout] test gateway::availability_tests::upstream_headers::codex_compact_header_profile_omits_subagent_without_explicit_source ... ok
[INFO] [stdout] test gateway::http_bridge::tests::openai_chat_sse_reader_requires_terminal_event_before_success ... ok
[INFO] [stdout] test gateway::http_bridge::tests::synthesize_chat_completion_sse_from_json_emits_done_stream ... ok
[INFO] [stdout] test gateway::http_bridge::tests::synthesize_completions_sse_from_json_emits_done_stream ... ok
[INFO] [stdout] test gateway::incoming_headers::tests::strict_bearer_parsing_matches_auth_extraction_behavior ... ok
[INFO] [stdout] test gateway::incoming_headers::tests::case_insensitive_bearer_parsing_matches_sticky_derivation_behavior ... ok
[INFO] [stdout] test gateway::local_count_tokens::tests::estimate_input_tokens_rejects_invalid_json ... ok
[INFO] [stdout] test gateway::local_count_tokens::tests::estimate_input_tokens_rejects_non_object_payload ... ok
[INFO] [stdout] test gateway::local_count_tokens::tests::estimate_input_tokens_uses_messages_and_system_text ... ok
[INFO] [stdout] test gateway::local_models::tests::build_openai_models_list_outputs_expected_shape ... ok
[INFO] [stdout] test gateway::local_validation::request::tests::anthropic_key_applies_custom_model_and_reasoning ... ok
[INFO] [stdout] test gateway::local_validation::request::tests::anthropic_key_keeps_empty_overrides ... ok
[INFO] [stdout] test gateway::local_validation::request::tests::openai_key_keeps_empty_overrides ... ok
[INFO] [stdout] test gateway::model_picker::request::tests::append_client_version_query_does_not_duplicate_param ... ok
[INFO] [stdout] test gateway::model_picker::request::tests::append_client_version_query_preserves_existing_query ... ok
[INFO] [stdout] test gateway::model_picker::request::tests::build_models_request_headers_match_codex_profile ... ok
[INFO] [stdout] test gateway::model_picker::request::tests::build_models_request_headers_omits_optional_headers_when_not_applicable ... ok
[INFO] [stdout] test gateway::model_picker::request::tests::summarize_models_error_response_includes_identity_error_code ... ok
[INFO] [stdout] test gateway::model_picker::request::tests::summarize_models_error_response_uses_stable_challenge_hint_and_debug_headers ... ok
[INFO] [stdout] test gateway::model_picker::request::tests::append_client_version_query_adds_missing_param ... ok
[INFO] [stdout] test gateway::model_picker::tests::fallback_retry_matches_stable_html_and_challenge_summaries ... ok
[INFO] [stdout] test gateway::openai_fallback::tests::request_affinity_drops_orphan_turn_state_without_conversation_anchor ... ok
[INFO] [stdout] test gateway::openai_fallback::tests::request_affinity_drops_turn_state_without_thread_anchor ... ok
[INFO] [stdout] test gateway::openai_fallback::tests::request_affinity_uses_conversation_anchor_when_prompt_cache_missing ... ok
[INFO] [stdout] test gateway::availability_tests::upstream_headers::codex_header_profile_skips_cookie_when_cpa_no_cookie_mode_enabled ... ok
[INFO] [stdout] test gateway::openai_fallback::tests::request_affinity_uses_thread_anchor_for_fallback_headers ... ok
[INFO] [stdout] test gateway::protocol_adapter::prompt_cache::tests::lru_capacity_evicts_least_recently_seen ... ok
[INFO] [stdout] test gateway::protocol_adapter::prompt_cache::tests::ttl_expires_after_idle_and_is_checked_on_access ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_request::anthropic_messages_are_the_only_path_adapted_to_responses ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_request::anthropic_messages_map_disabled_thinking_to_summary_none ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_request::anthropic_messages_map_text_and_base64_image_to_responses_input ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_request::anthropic_messages_map_thinking_and_output_config_effort_to_responses ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_request::anthropic_messages_map_url_image_to_responses_input ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_request::anthropic_assistant_tool_use_preserves_text_order_in_responses_input ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_request::anthropic_messages_preserve_all_tools_across_multiple_mcp_servers ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_request::anthropic_tool_result_with_image_maps_to_function_call_output_items ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_response::anthropic_chat_completions_still_passthrough ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_response::anthropic_json_response_from_sse_preserves_thinking_block ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_response::anthropic_json_response_maps_cache_usage_fields ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_response::anthropic_json_response_maps_custom_tool_call_output_to_text_block ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_response::anthropic_json_response_maps_custom_tool_call_to_tool_use ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_response::anthropic_json_response_maps_image_generation_call_to_text_block ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_response::anthropic_json_response_maps_local_shell_call_to_text_block ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_request::anthropic_messages_shorten_long_tool_names_and_build_restore_map ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_response::anthropic_json_response_maps_reasoning_item_to_thinking_block ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_response::anthropic_json_response_restores_shortened_tool_name ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_response::anthropic_json_response_maps_web_search_call_to_text_block ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_response::anthropic_sse_response_maps_cache_usage_fields ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_response::anthropic_sse_response_maps_reasoning_deltas_to_thinking_events ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_response::anthropic_sse_response_maps_custom_tool_call_to_tool_use_events ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_response::anthropic_sse_response_maps_web_search_call_to_text_events ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_request::openai_chat_completions_are_adapted_to_responses ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_request::openai_chat_completions_forward_service_tier_to_responses ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_request::openai_chat_completions_forward_text_verbosity_to_responses ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_request::openai_chat_completions_map_dynamic_tools_to_responses_tools ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_request::openai_chat_completions_shortens_tool_names_and_builds_restore_map ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_request::openai_chat_completions_stream_passthrough_is_forwarded ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_request::openai_chat_completions_stream_uses_sse_adapter ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_request::openai_chat_json_response_restores_shortened_tool_name ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_request::openai_chat_stream_chunk_restores_shortened_tool_name ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_request::openai_completions_are_adapted_to_responses ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_request::openai_completions_stream_uses_sse_adapter ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_request::openai_responses_passthrough_keeps_responses_path ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_response_is_converted_from_custom_tool_call_json ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_response_is_converted_from_custom_tool_call_output_json ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_response_is_converted_from_image_generation_call_json ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::anthropic_response::anthropic_sse_response_restores_shortened_tool_name ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_response_is_converted_from_local_shell_call_json ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_response_is_converted_from_openclaw_tool_call_json ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_response_is_converted_from_output_text_item ... ok
[INFO] [stdout] test gateway::availability_tests::upstream_headers::codex_compact_header_profile_skips_cookie_when_cpa_no_cookie_mode_enabled ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_stream_chunk_fallback_maps_unknown_text_event ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_response_is_converted_from_responses_json ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_stream_chunk_maps_function_call_argument_delta ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_response_is_converted_from_web_search_call_json ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_stream_collapse_avoids_done_and_item_text_duplication ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_stream_event_only_completed_still_outputs_text ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_stream_response_accepts_output_item_added_text ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_stream_response_accepts_output_item_done_text ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_stream_response_completed_only_preserves_tool_calls ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_stream_response_completed_only_still_outputs_text ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_stream_response_delta_only_preserves_custom_tool_calls ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_stream_response_delta_only_preserves_tool_calls ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_stream_response_is_collapsed_to_chat_completion_json ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_stream_response_outputs_web_search_summary_text ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_chat_stream_response_done_only_still_outputs_text ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_completions_response_is_converted_from_responses_json ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_completions_stream_completed_only_still_outputs_text ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_completions_stream_done_only_still_outputs_text ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_completions_stream_chunk_fallback_maps_unknown_text_event ... ok
[INFO] [stdout] test gateway::request_gate::tests::different_scope_uses_different_lock_instances ... ok
[INFO] [stdout] test gateway::protocol_adapter::tests::openai_response::openai_completions_stream_event_only_done_still_outputs_text ... ok
[INFO] [stdout] test gateway::request_gate::tests::stale_shared_lock_entry_is_not_reclaimed ... ok
[INFO] [stdout] test gateway::request_gate::tests::stale_unshared_lock_entry_is_reclaimed ... ok
[INFO] [stdout] test gateway::request_log::tests::estimate_cost_falls_back_gpt_5_3_codex_to_gpt_5_2_codex_price ... ok
[INFO] [stdout] test gateway::request_log::tests::estimate_cost_matches_openai_gpt54_large_context_prices ... ok
[INFO] [stdout] test gateway::request_log::tests::estimate_cost_matches_openai_gpt54_prices ... ok
[INFO] [stdout] test gateway::request_gate::tests::same_scope_reuses_same_lock_instance ... ok
[INFO] [stdout] test gateway::request_log::tests::estimate_cost_matches_openai_gpt54_pro_prices ... ok
[INFO] [stdout] test gateway::request_log::tests::estimate_cost_matches_openai_gpt5_family_prices ... ok
[INFO] [stdout] test gateway::request_log::tests::estimate_cost_matches_openai_gpt54_pro_large_context_prices ... ok
[INFO] [stdout] test gateway::request_log::tests::estimate_cost_matches_openai_gpt5_mini_and_52_prices ... ok
[INFO] [stdout] test gateway::request_log::tests::estimate_cost_uses_cached_input_rate_for_gpt_5_1_codex ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::chat_completions_accepts_responses_style_payload ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::chat_completions_normalizes_responses_function_tools ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::chat_completions_stream_enforces_include_usage ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::non_matching_endpoint_keeps_non_json_body ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::chat_completions_stream_preserves_options_while_enabling_usage ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::chat_completions_uses_reasoning_effort_and_drops_non_official_keys ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::responses_compact_defaults_parallel_tool_calls_to_false_for_codex_backend ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::responses_compact_uses_codex_compat_rewrite ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::responses_defaults_empty_include_without_reasoning_for_codex_backend ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::responses_defaults_tool_choice_and_reasoning_include_for_codex_backend ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::responses_dynamic_tools_are_mapped_to_tools_for_codex_backend ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::responses_input_string_normalized_to_list ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::responses_infers_prompt_cache_key_from_conversation_id_for_codex_backend ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::responses_keeps_parallel_tool_calls_missing_when_tools_are_present ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::responses_normalizes_fast_service_tier_to_priority_for_codex_backend ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::responses_overrides_model_and_reasoning_effort ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::responses_passthrough_for_non_codex_upstream ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::responses_retains_service_tier_for_codex_supported_fields ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::responses_stream_passthrough_keeps_client_stream_flag_when_enabled ... ok
[INFO] [stdout] test gateway::route_hint::tests::balanced_mode_keeps_strict_round_robin_by_default ... ok
[INFO] [stdout] test gateway::route_hint::tests::balanced_round_robin_isolated_by_key_and_model ... ok
[INFO] [stdout] test gateway::request_rewrite::tests::responses_stream_and_store_are_forced_for_codex_backend ... ok
[INFO] [stdout] test gateway::availability_tests::upstream_headers::codex_header_profile_uses_fallback_session_when_incoming_missing ... ok
[INFO] [stdout] test gateway::route_hint::tests::balanced_round_robin_rotates_start_by_key_and_model ... ok
[INFO] [stdout] test gateway::route_hint::tests::defaults_to_ordered_strategy ... ok
[INFO] [stdout] test gateway::route_hint::tests::health_p2c_promotes_healthier_candidate_in_ordered_mode ... ok
[INFO] [stdout] test gateway::route_hint::tests::set_route_strategy_accepts_aliases_and_reports_canonical_name ... ok
[INFO] [stdout] test gateway::route_hint::tests::route_state_ttl_expires_per_key_state ... ok
[INFO] [stdout] test gateway::model_picker::tests::sort_model_picker_candidates_prefers_plan_tier_priority ... ok
[INFO] [stdout] test gateway::route_quality::tests::route_quality_penalty_prefers_successful_accounts ... ok
[INFO] [stdout] test gateway::route_hint::tests::manual_preferred_account_is_preserved_when_current_candidates_do_not_include_it ... ok
[INFO] [stdout] test gateway::route_quality::tests::record_path_cleanup_prunes_expired_records ... ok
[INFO] [stdout] test gateway::route_quality::tests::route_quality_penalty_evicts_expired_record ... ok
[INFO] [stdout] test gateway::route_hint::tests::route_state_capacity_evicts_lru_and_keeps_maps_in_sync ... ok
[INFO] [stdout] test gateway::availability_tests::upstream_headers::codex_header_profile_uses_json_accept_for_non_stream ... ok
[INFO] [stdout] test gateway::runtime_config::tests::normalize_model_slug_maps_legacy_gpt_5_4_pro_to_gpt_5_4 ... ok
[INFO] [stdout] test gateway::runtime_config::tests::parse_proxy_list_env_normalizes_socks_entries ... ok
[INFO] [stdout] test gateway::runtime_config::tests::parse_proxy_list_env_limits_to_five_entries ... ok
[INFO] [stdout] test gateway::runtime_config::tests::normalize_model_slug_accepts_auto ... ok
[INFO] [stdout] test gateway::http_bridge::tests::openai_chat_sse_reader_emits_keepalive_chunk_during_idle_gap ... ok
[INFO] [stdout] test gateway::http_bridge::tests::openai_completions_sse_reader_requires_terminal_event_before_success ... ok
[INFO] [stdout] test auth::account::tests::login_with_chatgpt_auth_tokens_force_syncs_manual_preferred_account ... ok
[INFO] [stdout] test gateway::http_bridge::tests::passthrough_sse_reader_captures_raw_html_error_body ... ok
[INFO] [stdout] test gateway::selection::tests::candidate_snapshot_cache_reuses_recent_snapshot ... ok
[INFO] [stdout] test gateway::selection::tests::candidates_follow_account_sort_order ... ok
[INFO] [stdout] test gateway::token_exchange::tests::fallback_to_access_token_uses_runtime_access_token_when_exchange_fails ... ok
[INFO] [stdout] test gateway::token_exchange::tests::same_account_reuses_exchange_lock ... ok
[INFO] [stdout] test gateway::token_exchange::tests::stale_shared_exchange_lock_entry_is_not_reclaimed ... ok
[INFO] [stdout] test gateway::token_exchange::tests::stale_unshared_exchange_lock_entry_is_reclaimed ... ok
[INFO] [stdout] test gateway::trace_log::tests::has_error_text_ignores_empty_and_dash ... ok
[INFO] [stdout] test gateway::trace_log::tests::request_record_ignores_success_without_error ... ok
[INFO] [stdout] test gateway::trace_log::tests::trace_error_state_can_mark_and_clear ... ok
[INFO] [stdout] test gateway::upstream::attempt_flow::fallback_branch::tests::fallback_non_success_5xx_does_not_failover_even_with_more_candidates ... ok
[INFO] [stdout] test gateway::upstream::attempt_flow::fallback_branch::tests::fallback_non_success_auth_and_rate_limit_can_failover_when_candidates_remain ... ok
[INFO] [stdout] test gateway::upstream::attempt_flow::fallback_branch::tests::fallback_non_success_headers_only_summary_includes_debug_headers ... ok
[INFO] [stdout] test gateway::upstream::attempt_flow::fallback_branch::tests::fallback_non_success_headers_only_summary_marks_server_error_without_debug_headers ... ok
[INFO] [stdout] test gateway::upstream::attempt_flow::fallback_branch::tests::fallback_non_success_never_failover_without_more_candidates ... ok
[INFO] [stdout] test gateway::upstream::attempt_flow::fallback_branch::tests::fallback_non_success_summary_includes_debug_headers_and_body_hint ... ok
[INFO] [stdout] test gateway::upstream::attempt_flow::fallback_branch::tests::fallback_non_success_summary_uses_plain_body_when_no_structured_hint_exists ... ok
[INFO] [stdout] test gateway::upstream::attempt_flow::primary_flow::tests::chatgpt_primary_bearer_prefers_access_token ... ok
[INFO] [stdout] test gateway::upstream::attempt_flow::primary_flow::tests::chatgpt_primary_bearer_rejects_empty_access_token ... ok
[INFO] [stdout] test gateway::upstream::attempt_flow::stateless_retry::tests::stateless_retry_disables_403_when_challenge_retry_is_disabled ... ok
[INFO] [stdout] test gateway::upstream::attempt_flow::stateless_retry::tests::stateless_retry_keeps_403_when_challenge_retry_is_enabled ... ok
[INFO] [stdout] test gateway::upstream::attempt_flow::stateless_retry::tests::stateless_retry_respects_session_affinity_guard ... ok
[INFO] [stdout] test gateway::upstream::attempt_flow::transport::tests::encode_request_body_adds_zstd_content_encoding ... ok
[INFO] [stdout] test gateway::upstream::attempt_flow::transport::tests::request_compression_only_applies_to_streaming_chatgpt_responses ... ok
[INFO] [stdout] test gateway::upstream::config::tests::fallback_base_is_disabled_even_when_env_is_set ... ok
[INFO] [stdout] test gateway::upstream::config::tests::fallback_content_type_trigger_is_limited_to_responses_path ... ok
[INFO] [stdout] test gateway::upstream::config::tests::fallback_status_trigger_is_limited_to_responses_path ... ok
[INFO] [stdout] test gateway::upstream::protocol::azure_openai::tests::static_headers_invalid_value_rejected ... ok
[INFO] [stdout] test gateway::upstream::protocol::azure_openai::tests::static_headers_parse_ok_and_detect_api_key ... ok
[INFO] [stdout] test gateway::upstream::protocol::azure_openai::tests::static_headers_without_api_key_returns_false ... ok
[INFO] [stdout] test gateway::http_bridge::tests::passthrough_sse_reader_emits_keepalive_for_responses_stream ... ok
[INFO] [stdout] test gateway::upstream::proxy::tests::exhausted_gateway_error_marks_cooldown_only_skip_kind ... ok
[INFO] [stdout] test gateway::upstream::proxy_pipeline::candidate_state::tests::body_for_attempt_rewrites_model_override ... ok
[INFO] [stdout] test gateway::upstream::support::backoff::tests::jitter_delay_stays_within_cap ... ok
[INFO] [stdout] test gateway::upstream::proxy::tests::exhausted_gateway_error_includes_attempts_skips_and_last_error ... ok
[INFO] [stdout] test gateway::upstream::support::candidates::tests::free_account_model_override_accepts_single_window_weekly_account ... ok
[INFO] [stdout] test gateway::runtime_config::tests::reload_from_env_defaults_account_max_inflight_to_one ... ok
[INFO] [stdout] test gateway::upstream::support::deadline::tests::effective_request_timeout_non_stream_uses_total_only ... ok
[INFO] [stdout] test gateway::upstream::support::deadline::tests::effective_request_timeout_stream_falls_back_when_one_side_missing ... ok
[INFO] [stdout] test gateway::upstream::support::deadline::tests::effective_request_timeout_stream_uses_max_total_and_stream ... ok
[INFO] [stdout] test gateway::upstream::support::candidates::tests::free_account_model_override_uses_configured_model_for_free_account ... ok
[INFO] [stdout] test gateway::upstream::support::candidates::tests::free_account_model_override_skips_rewrite_when_configured_auto ... ok
[INFO] [stdout] test gateway::upstream::support::outcome::tests::challenge_on_last_candidate_keeps_upstream_response ... ok
[INFO] [stdout] test gateway::upstream::support::outcome::tests::challenge_with_more_candidates_triggers_failover ... ok
[INFO] [stdout] test gateway::upstream::support::outcome::tests::status_404_with_more_candidates_triggers_failover ... ok
[INFO] [stdout] test gateway::upstream::support::outcome::tests::status_404_on_last_candidate_keeps_upstream_response ... ok
[INFO] [stdout] test http::backend_router::tests::falls_back_to_gateway_route ... ok
[INFO] [stdout] test http::backend_router::tests::resolves_auth_callback_route ... ok
[INFO] [stdout] test http::backend_router::tests::resolves_metrics_route ... ok
[INFO] [stdout] test http::backend_router::tests::resolves_rpc_route ... ok
[INFO] [stdout] test http::backend_runtime::tests::panic_payload_message_formats_common_payloads ... ok
[INFO] [stdout] test http::backend_runtime::tests::queue_size_has_minimum_guard ... ok
[INFO] [stdout] test http::backend_runtime::tests::worker_count_has_minimum_guard ... ok
[INFO] [stdout] test http::header_filter::tests::request_header_filters_hop_by_hop_and_non_ascii ... ok
[INFO] [stdout] test http::header_filter::tests::request_header_keeps_ascii_turn_metadata ... ok
[INFO] [stdout] test http::header_filter::tests::request_header_keeps_normal_content_type ... ok
[INFO] [stdout] test http::header_filter::tests::response_header_filters_content_length_and_connection ... ok
[INFO] [stdout] test http::proxy_request::tests::build_target_url_keeps_path_and_query ... ok
[INFO] [stdout] test http::proxy_request::tests::filter_request_headers_drops_forbidden_headers ... ok
[INFO] [stdout] test http::proxy_response::tests::merge_upstream_headers_filters_hop_by_hop_and_content_length ... ok
[INFO] [stdout] test http::proxy_response::tests::text_error_response_sets_error_code_header ... ok
[INFO] [stdout] test http::proxy_response::tests::text_response_sets_status_and_plain_text_header ... ok
[INFO] [stdout] test http::proxy_runtime::tests::backend_base_url_uses_http_scheme ... ok
[INFO] [stdout] test gateway::upstream::support::outcome::tests::status_429_on_last_candidate_keeps_upstream_response ... ok
[INFO] [stdout] test gateway::upstream::support::outcome::tests::status_429_with_more_candidates_triggers_failover ... ok
[INFO] [stdout] test http::proxy_runtime::tests::local_backend_client_builds_without_system_proxy ... ok
[INFO] [stdout] test http::rpc_endpoint::tests::normal_rpc_handler_keeps_success_shape ... ok
[INFO] [stdout] test auth::account::tests::login_with_chatgpt_auth_tokens_syncs_codex_auth_file ... ok
[INFO] [stdout] test requestlog::list::tests::normalize_optional_text_trims_blank_values ... ok
[INFO] [stdout] test requestlog::list::tests::normalize_status_filter_accepts_known_values ... ok
[INFO] [stdout] test http::rpc_endpoint::tests::panicking_rpc_handler_returns_structured_json_error ... ok
[INFO] [stdout] test requestlog::list::tests::normalize_upstream_url_keeps_custom_addresses ... ok
[INFO] [stdout] test requestlog::list::tests::normalize_upstream_url_keeps_local_addresses ... ok
[INFO] [stdout] test requestlog::list::tests::normalize_upstream_url_keeps_official_domains ... ok
[INFO] [stdout] test requestlog::list::tests::normalize_upstream_url_trims_empty_values ... ok
[INFO] [stdout] test requestlog::list::tests::request_log_list_params_default_to_first_page_with_twenty_items ... ok
[INFO] [stdout] test gateway::runtime_config::tests::reload_from_env_updates_timeout_and_cookie ... ok
[INFO] [stdout] test gateway::runtime_config::tests::set_originator_updates_env_and_dynamic_user_agent ... ok
[INFO] [stdout] test tests::login_complete_requires_params ... ok
[INFO] [stdout] test gateway::runtime_config::tests::set_request_compression_enabled_updates_env_and_cache ... ok
[INFO] [stdout] test gateway::runtime_config::tests::set_residency_requirement_updates_env_and_cache ... ok
[INFO] [stdout] test usage::account_meta::tests::clean_header_value_trims_and_drops_empty ... ok
[INFO] [stdout] test usage::account_meta::tests::build_workspace_map_from_accounts_uses_preloaded_snapshot ... ok
[INFO] [stdout] test usage::account_meta::tests::patch_account_meta_cached_updates_preloaded_account_without_lookup ... ok
[INFO] [stdout] test usage::aggregate::tests::aggregate_summary_preserves_unknown_counts_per_bucket ... ok
[INFO] [stdout] test usage::aggregate::tests::aggregate_summary_routes_free_single_window_account_to_secondary_bucket ... ok
[INFO] [stdout] test usage::account_meta::tests::patch_account_meta_cached_replaces_subject_style_scope_values ... ok
[INFO] [stdout] test usage::http::tests::classify_refresh_token_auth_error_reason_maps_known_and_unknown_401 ... ok
[INFO] [stdout] test usage::http::tests::refresh_token_auth_error_reason_from_message_tracks_canonical_messages ... ok
[INFO] [stdout] test usage::http::tests::refresh_token_status_error_ignores_headers_for_401_reason_when_body_lacks_code ... ok
[INFO] [stdout] test usage::http::tests::refresh_token_status_error_includes_body_snippet ... ok
[INFO] [stdout] test usage::http::tests::refresh_token_status_error_maps_unknown_401_to_official_message ... ok
[INFO] [stdout] test usage::http::tests::refresh_token_status_error_omits_empty_body ... ok
[INFO] [stdout] test usage::account_meta::tests::build_workspace_map_falls_back_to_chatgpt_account_id ... ok
[INFO] [stdout] test usage::http::tests::refresh_token_status_error_stabilizes_html_and_debug_headers_for_non_401 ... ok
[INFO] [stdout] test usage::http::tests::refresh_token_status_error_uses_header_only_debug_suffix_for_empty_body ... ok
[INFO] [stdout] test usage::http::tests::refresh_token_url_preserves_custom_issuer_and_override ... ok
[INFO] [stdout] test usage::http::tests::refresh_token_url_uses_official_default_for_openai_issuer ... ok
[INFO] [stdout] test usage::http::tests::summarize_usage_error_response_accepts_raw_error_json_header ... ok
[INFO] [stdout] test usage::http::tests::summarize_usage_error_response_stabilizes_html_and_debug_headers ... ok
[INFO] [stdout] test usage::http::tests::refresh_token_status_error_maps_invalidated_401_to_official_message ... ok
[INFO] [stdout] test usage::http::tests::usage_request_headers_use_official_chatgpt_account_header_name ... ok
[INFO] [stdout] test usage::keepalive::tests::keepalive_ignores_expected_idle_errors ... ok
[INFO] [stdout] test usage::refresh::refresh::batch::tests::build_usage_refresh_tasks_skips_disabled_accounts ... ok
[INFO] [stdout] test usage::refresh::refresh::errors::tests::failure_event_throttle_dedupes_within_window ... ok
[INFO] [stdout] test usage::refresh::refresh::errors::tests::failure_event_throttle_isolated_by_error_class ... ok
[INFO] [stdout] test usage::refresh::refresh::errors::tests::usage_refresh_error_class_catches_timeout_and_connection ... ok
[INFO] [stdout] test usage::refresh::refresh::errors::tests::usage_refresh_error_class_groups_by_status_code ... ok
[INFO] [stdout] test usage::account_meta::tests::resolve_workspace_prefers_workspace_then_chatgpt ... ok
[INFO] [stdout] test storage::helpers::tests::open_storage_reuses_cached_connection_in_same_thread ... ok
[INFO] [stdout] test usage::refresh::refresh::status_tests::apply_status_available_preserves_manual_disabled_status ... ok
[INFO] [stdout] test usage::refresh::refresh::status_tests::apply_status_missing_snapshot_keeps_account_status ... ok
[INFO] [stdout] test usage::refresh::refresh::status_tests::apply_status_skips_db_and_event_when_status_unchanged ... ok
[INFO] [stdout] test usage::http::tests::usage_http_client_is_cloneable ... ok
[INFO] [stdout] test usage::refresh::refresh::status_tests::refresh_retry_filter_matches_auth_failures ... ok
[INFO] [stdout] test usage::refresh::refresh::status_tests::mark_usage_unreachable_does_not_override_manual_disabled_status ... ok
[INFO] [stdout] test gateway::runtime_config::tests::set_upstream_proxy_url_normalizes_socks_scheme ... ok
[INFO] [stdout] test usage::refresh::refresh::status_tests::mark_usage_unreachable_only_marks_401_as_unavailable ... ok
[INFO] [stdout] test usage::refresh::refresh::status_tests::refresh_token_forbidden_without_invalid_grant_keeps_account_active ... ok
[INFO] [stdout] test usage::refresh::refresh::status_tests::refresh_token_auth_error_marks_account_unavailable ... ok
[INFO] [stdout] test usage::refresh::refresh::tests::enqueue_usage_refresh_for_different_accounts_keeps_queue_progress ... ok
[INFO] [stdout] test usage::refresh::refresh::status_tests::refresh_token_unknown_401_marks_account_unavailable ... ok
[INFO] [stdout] test usage::refresh::refresh::status_tests::refresh_token_invalid_grant_on_forbidden_keeps_account_active ... ok
[INFO] [stdout] test usage::refresh::refresh::tests::schedule_falls_back_to_last_refresh_when_exp_missing ... ok
[INFO] [stdout] test usage::refresh::refresh::tests::schedule_prefers_exp_minus_ahead ... ok
[INFO] [stdout] test usage::refresh::refresh::tests::usage_poll_cursor_advances_by_processed_count ... ok
[INFO] [stdout] test usage::scheduler::tests::blocking_poll_loop_adds_jitter_on_top_of_base_delay ... ok
[INFO] [stdout] test usage::scheduler::tests::blocking_poll_loop_applies_failure_backoff_with_cap_and_reset ... ok
[INFO] [stdout] test usage::scheduler::tests::blocking_poll_loop_calls_error_filter_before_sleep ... ok
[INFO] [stdout] test usage::scheduler::tests::blocking_poll_loop_runs_task_and_respects_interval ... ok
[INFO] [stdout] test usage::scheduler::tests::parse_interval_secs_falls_back_and_applies_minimum ... ok
[INFO] [stdout] test usage::refresh::refresh::tests::usage_poll_batch_indices_rotate_from_cursor ... ok
[INFO] [stdout] test usage::refresh::refresh::status_tests::usage_refresh_failure_throttle_splits_401_reason_classes ... ok
[INFO] [stdout] test usage::refresh::refresh::status_tests::usage_refresh_failure_events_are_throttled_by_error_class ... ok
[INFO] [stdout] test usage::refresh::refresh::tests::enqueue_usage_refresh_for_same_account_is_deduplicated_until_finish ... ok
[INFO] [stdout] test storage::helpers::tests::open_storage_reopens_when_db_path_changes ... ok
[INFO] [stdout] test http::proxy_runtime::tests::backend_send_failure_returns_502 ... ok
[INFO] [stdout] test http::proxy_runtime::tests::request_without_content_length_over_limit_returns_413 ... ok
[INFO] [stdout] test gateway::runtime_config::tests::set_upstream_proxy_url_updates_env_and_cache ... ok
[INFO] [stdout] test gateway::runtime_config::tests::set_upstream_stream_timeout_ms_updates_env_and_cache ... ok
[INFO] [stdout] test gateway::runtime_config::tests::stable_proxy_index_is_deterministic ... ok
[INFO] [stdout] test auth::account::tests::export_codex_cli_profile_auth_rejects_missing_token_without_touching_auth_file ... ok
[INFO] [stdout] test usage::http::tests::usage_http_default_headers_follow_gateway_runtime_profile ... ok
[INFO] [stdout] test auth::account::tests::switch_current_account_force_syncs_manual_preferred_for_unavailable_target ... ok
[INFO] [stdout] test auth::account::tests::switch_current_account_rejects_disabled_account_without_touching_codex_auth_file ... ok
[INFO] [stdout] test auth::account::tests::switch_current_account_syncs_target_codex_auth_file ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 455 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.54s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/app_settings.rs (/opt/rustwide/target/debug/deps/app_settings-3d24ecd469373c9d)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test app_settings_get_loads_env_backed_dedicated_settings_when_storage_missing ... ok
[INFO] [stdout] test app_settings_get_seeds_full_env_override_snapshot ... ok
[INFO] [stdout] test app_settings_set_env_overrides_patch_preserves_other_values_and_reset_to_default ... ok
[INFO] [stdout] test app_settings_set_persists_env_overrides_and_exposes_catalog ... ok
[INFO] [stdout] test app_settings_set_persists_snapshot_and_password_hash ... ok
[INFO] [stdout] test app_settings_set_rejects_reserved_and_bootstrap_env_override_keys ... ok
[INFO] [stdout] test app_settings_set_preserves_dark_one_theme ... ok
[INFO] [stdout] test sync_runtime_settings_from_storage_applies_saved_runtime_values ... ok
[INFO] [stdout] test sync_runtime_settings_from_storage_preserves_explicit_process_env_over_persisted_override ... ok
[INFO] [stdout] test sync_runtime_settings_from_storage_preserves_process_env_when_override_not_persisted ... ok
[INFO] [stdout] test app_settings_get_drops_reserved_env_overrides_from_persisted_snapshot ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 31.97s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/default_addr.rs (/opt/rustwide/target/debug/deps/default_addr-bfd33b94544fe11a)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test default_addr_is_localhost ... ok
[INFO] [stdout] test default_bind_addr_is_all_interfaces ... ok
[INFO] [stdout] test listener_bind_addr_defaults_to_loopback ... ok
[INFO] [stdout] test listener_bind_addr_maps_loopback_to_all_interfaces_when_enabled ... ok
[INFO] [stdout] test listener_bind_addr_keeps_explicit_all_interfaces ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e.rs (/opt/rustwide/target/debug/deps/e2e-2964f456663b347b)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test e2e_initialize_writes_event ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.72s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/gateway_logs.rs (/opt/rustwide/target/debug/deps/gateway_logs-29ae1640919db7db)
[INFO] [stdout] 
[INFO] [stdout] running 29 tests
[INFO] [stdout] test anthropic::gateway_claude_protocol_end_to_end_uses_codex_headers ... ok
[INFO] [stdout] test anthropic::gateway_claude_failover_same_workspace_preserves_session_affinity_headers ... ok
[INFO] [stdout] test openai::gateway_openai_compact_invalid_success_body_is_mapped_to_502 ... ok
[INFO] [stdout] test openai::gateway_openai_compact_route_aligns_with_codex_remote_compact_request ... ok
[INFO] [stdout] test cpa::gateway_cpa_no_cookie_header_mode_binds_prompt_cache_key_to_session_only ... ok
[INFO] [stdout] test cpa::gateway_cpa_no_cookie_header_mode_keeps_account_header_on_compact ... ok
[INFO] [stdout] test openai::gateway_openai_non_stream_sse_with_plain_content_type_is_collapsed_to_json ... ok
[INFO] [stdout] test openai::gateway_chatgpt_primary_drops_turn_state_without_thread_anchor ... ok
[INFO] [stdout] test openai::gateway_chatgpt_primary_preserves_turn_state_headers_without_openai_fallback ... ok
[INFO] [stdout] test basic::gateway_logs_invalid_api_key_error ... ok
[INFO] [stdout] test openai::gateway_chatgpt_primary_uses_prompt_cache_anchor_for_session_without_inventing_request_id ... ok
[INFO] [stdout] test openai::gateway_invalid_refresh_token_marks_first_account_unavailable_and_fails_over ... ok
[INFO] [stdout] test cpa::gateway_cpa_no_cookie_header_mode_suppresses_affinity_headers_on_responses ... ok
[INFO] [stdout] test retry_logging::gateway_stateless_retry_strips_encrypted_content_on_invalid_encrypted_content ... ok
[INFO] [stdout] test openai::gateway_models_returns_cached_without_upstream ... ok
[INFO] [stdout] test openai::gateway_openai_api_base_suppresses_cookie_and_account_headers ... ok
[INFO] [stdout] test openai::gateway_openai_compact_html_non_success_is_mapped_to_structured_403 ... ok
[INFO] [stdout] test anthropic::gateway_claude_failover_cross_workspace_strips_session_affinity_headers ... ok
[INFO] [stdout] test basic::gateway_tolerates_non_ascii_turn_metadata_header ... ok
[INFO] [stdout] test openai::gateway_openai_compact_uses_conversation_id_as_session_anchor ... ok
[INFO] [stdout] test openai::gateway_openai_html_non_success_logs_debug_ids_for_responses ... ok
[INFO] [stdout] test cpa::gateway_cpa_no_cookie_header_mode_skips_post_retries_on_404 ... ok
[INFO] [stdout] test openai::gateway_openai_non_stream_without_usage_keeps_tokens_null ... ok
[INFO] [stdout] test openai::gateway_openai_stream_logs_cached_and_reasoning_tokens ... ok
[INFO] [stdout] test openai::gateway_openai_stream_usage_with_plain_content_type ... ok
[INFO] [stdout] test openai::gateway_unauthorized_refreshes_access_token_and_retries_once ... ok
[INFO] [stdout] test retry_logging::gateway_error_logging_writes_only_trace_log_file ... ok
[INFO] [stdout] test retry_logging::gateway_request_log_keeps_only_final_result_for_multi_attempt_flow ... ok
[INFO] [stdout] test openai::apikey_models_refresh_includes_client_version_query ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 43.97s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/rpc.rs (/opt/rustwide/target/debug/deps/rpc-04597e7e820a17c2)
[INFO] [stdout] 
[INFO] [stdout] running 22 tests
[INFO] [stdout] test rpc_initialize_roundtrip ... ok
[INFO] [stdout] test rpc_account_list_empty_uses_default_pagination ... ok
[INFO] [stdout] test rpc_account_delete_many_deletes_requested_accounts ... ok
[INFO] [stdout] test rpc_account_switch_reactivates_inactive_target_and_rejects_disabled_target ... ok
[INFO] [stdout] test rpc_usage_aggregate_returns_backend_summary ... ok
[INFO] [stdout] test rpc_accepts_loopback_origin ... ok
[INFO] [stdout] test rpc_account_codex_cli_profile_export_is_side_effect_free ... ok
[INFO] [stdout] test rpc_account_list_active_filter_uses_backend_filtered_pagination ... ok
[INFO] [stdout] test rpc_account_switch_updates_current_account_without_marking_previous_inactive ... ok
[INFO] [stdout] test rpc_account_update_status_toggles_manual_enable_disable ... ok
[INFO] [stdout] test rpc_chatgpt_auth_tokens_login_read_logout_roundtrip ... ok
[INFO] [stdout] test rpc_chatgpt_auth_tokens_refresh_updates_access_token ... ok
[INFO] [stdout] test rpc_app_settings_can_roundtrip_free_account_max_model ... ok
[INFO] [stdout] test rpc_account_list_supports_pagination ... ok
[INFO] [stdout] test rpc_login_start_returns_url ... ok
[INFO] [stdout] test rpc_login_status_pending ... ok
[INFO] [stdout] test rpc_rejects_cross_site_origin ... ok
[INFO] [stdout] test rpc_rejects_missing_token ... ok
[INFO] [stdout] test rpc_requestlog_list_and_summary_support_pagination ... ok
[INFO] [stdout] test rpc_app_settings_set_invalid_payload_returns_structured_error ... ok
[INFO] [stdout] test rpc_usage_list_empty ... ok
[INFO] [stdout] test rpc_usage_read_empty ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 18.34s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/shutdown_flag.rs (/opt/rustwide/target/debug/deps/shutdown_flag-ad5f95e69bfc8cab)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test shutdown_flag_can_toggle ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests codexmanager_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] [stderr]    Doc-tests codexmanager_service
[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" "05816cf0fd2c1cd6424de8f728a32005143af69159a2e291a134cefa2215bafa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "05816cf0fd2c1cd6424de8f728a32005143af69159a2e291a134cefa2215bafa", kill_on_drop: false }`
[INFO] [stdout] 05816cf0fd2c1cd6424de8f728a32005143af69159a2e291a134cefa2215bafa
